Envelope Encryption with asymmetric keys vs KMS (Norsk)
On februar 18, 2021 by adminI Envelope-kryptering brukes en symmetrisk hemmelig nøkkel til å signere dataene, og deretter brukes en annen nøkkel til å kryptere hemmeligheten for å produsere en kryptert hemmelig nøkkel. De krypterte meldingene pakkes med den krypterte hemmelige nøkkelen og sendes til klienten / forbrukeren som deretter dekrypterer den krypterte hemmelige nøkkelen for å få den hemmelige nøkkelen, som igjen brukes til å dekryptere meldingen
Det er to måter for å implementere det:
- Asymmetrisk kryptering: Produsenten krypterer den (de) hemmelige nøkkelen (e) med den offentlige nøkkelen til forbrukerne. Forbrukeren bruker en privat nøkkel til å dekryptere den krypterte hemmeligheten
- KMS (for eksempel AWS KMS): Den hemmelige nøkkelen krypteres av KMS, og klienten som trenger tilgang til den hemmelige nøkkelen må be KMS om dekryptere det
Fordelen med KMS-tilnærmingen er at nøkkeladministrasjon er sentralisert, og tilbakekalling av tillatelser fra en klient kan gjøres ved å fjerne klienten fra KMS og rotere nøkkelen.
Er det noen gode grunner til å bruke asymmetriske nøkler i stedet for KMS?
Kommentarer
- Foruten det faktum at et KMS er en egen tjeneste for å vedlikeholde, administrere og blir et eneste feilpunkt i et distribuert miljø? Er spørsmålet ditt et " kryptering " spørsmål eller et " logistikk " spørsmål?
Svar
Hvis KMS har nøkkelen, kan de lese meldingen. Hvis KMS blir brutt, kan en angriper lese alle meldinger knyttet til alle nøklene de stjal. Asymmetriske nøkler der den private nøkkelen bare holdes av mottakeren, lar bare mottakeren lese meldingen, så det er ingen bekymring for å kikke KMS-systemer. Hvis den private nøkkelen blir stjålet, er det bare for e-post til den brukeren som brukte den nøkkelen. , ikke alle i systemet.
Svar
Det handler om hvor du lagrer hemmeligheten og hvem som har tilgang til den .
Først en avklaring: Du er forvirret. KMS bruker ikke asymmetrisk kryptering (også kalt Public-Key-kryptering). Den bruker privat nøkkelkryptering for å aktivere konvoluttkryptering. De er to forskjellige ting.
I asymmetrisk kryptering trenger produsenten av kryptering aldri tilgang til hemmeligheten, de trenger bare den offentlige nøkkelen. Produsenten bruker den offentlige nøkkelen til å kryptere, forbrukeren bruker den tilsvarende private nøkkelen til å dekryptere. For å legge til rette for nøkkelrotasjon legger produsenten noen ganger til den offentlige nøkkelen som ble brukt til å kryptere, slik at forbrukeren vet hvilken privatnøkkel som skal brukes til å dekryptere. Uansett hvor mye data som er kryptert, er det ingen hint til den private nøkkelen. Algoritmen for dekryptering er vanligvis mer beregningskrevende enn privat nøkkelkryptering.
I konvoluttkryptering må produsenten og forbrukeren være den samme (eller begge har tilgang til hovednøkkelen). Du bruker en hovednøkkel til å generere en sekundær nøkkel kalt en datanøkkel. Deretter krypterer du datanøkkelen ved hjelp av hovednøkkelen og selve dataene ved hjelp av datanøkkelen, så legger du den krypterte datanøkkelen til de krypterte dataene. Når du dekrypterer, bruker du hovednøkkelen til å dekryptere den vedlagte datanøkkelen, og deretter bruker du den dekrypterte datanøkkelen til å dekryptere dataene.
Fordelen med dette er at du kostnadseffektivt kan lagre hovednøkkelen din i formål- bygget Hardware Security Module og aldri utsette den for noe annet uten å måtte overføre alle dataene du krypterer til HSM. Du kan til og med generere nøkkelen inne i HSM og ikke ta den ut slik at det ikke er noen sjanse for at den noen gang har blitt utsatt for noe eksternt. KMS gir deg en skybasert HSM og den støttes av fysiske HSMer hos Amazon.
Hvis du ikke bryr deg om å beholde hovednøkkelen i en HSM, kan du gjøre den samme typen kryptering ved å bruke din egen nøkkel som du prøver å holde deg trygg ved å sette inn på en hoppeserver eller noe sånn. Også så lenge du ikke krypterer mer enn 250 millioner TB, kan du hoppe over konvolutten.
Hvis du leter etter et eksempelkode, kan du snappe opp for å implementere enten enkel AES-kryptering eller konvoluttkryptering kan det være lurt å sjekke open source-prosjektet vårt. Det har en implementering for hver du kan utnytte …
Legg igjen en kommentar