Envelope Encryption with asymmetric keys vs KMS
On februar 18, 2021 by adminI Envelope-kryptering bruges en symmetrisk hemmelig nøgle til at underskrive dataene, og derefter bruges en anden nøgle til at kryptere hemmeligheden for at producere en krypteret hemmelig nøgle. De krypterede meddelelser pakkes med den krypterede hemmelige nøgle og sendes til klienten / forbrugeren, som derefter dekrypterer den krypterede hemmelige nøgle for at få den hemmelige nøgle, som igen bruges til at dekryptere beskeden
Der er 2 måder for at implementere det:
- Asymmetrisk kryptering: Producenten krypterer den eller de hemmelige nøgler med forbrugernes offentlige nøgle. Forbrugeren bruger en privat nøgle til at dekryptere den krypterede hemmelighed
- KMS (såsom AWS KMS): Den hemmelige nøgle krypteres af KMS, og klienten, der har brug for adgang til den hemmelige nøgle, skal bede KMS om dekryptere det
Fordelen ved KMS-tilgangen er, at nøglehåndtering er centraliseret, og tilbagekaldelse af tilladelser fra en klient kan gøres ved at fjerne klienten fra KMS og dreje nøglen.
Er der gode grunde til at bruge asymmetriske nøgler i stedet for KMS?
Kommentarer
- Udover det faktum, at et KMS er en separat tjeneste, der skal vedligeholdes, administreres og bliver et enkelt fejlpunkt i et distribueret miljø? Er dit spørgsmål et " kryptering " spørgsmål eller et " logistik " spørgsmål?
Svar
Hvis KMS har nøglen, kan de læse beskeden. Hvis KMS er brudt, kan en angriber læse alle beskeder, der er knyttet til alle nøgler, som de stjal. Asymmetriske nøgler, hvor den private nøgle kun holdes af modtageren, tillader kun modtageren at læse beskeden, så der er ingen bekymring for at kigge på KMS-systemer. Hvis den private nøgle stjæles, er det kun for e-mails til den bruger, der brugte den nøgle , ikke alle i systemet.
Svar
Det handler om, hvor du gemmer hemmeligheden, og hvem der har adgang til den .
Først en afklaring: Du er forvirret. KMS bruger ikke asymmetrisk kryptering (også kaldet Public-Key-kryptering). Det bruger privat nøglekryptering til at muliggøre konvolutkryptering. De er to forskellige ting.
I asymmetrisk kryptering behøver krypteringsproducenten aldrig at få adgang til hemmeligheden, de har bare brug for den offentlige nøgle. Producenten bruger den offentlige nøgle til at kryptere, forbrugeren bruger den tilsvarende private nøgle til at dekryptere. For at lette nøglerotation tilføjer producenten undertiden den offentlige nøgle, der blev brugt til at kryptere, så forbrugeren ved, hvilken privat nøgle han skal bruge til at dekryptere. Uanset hvor meget data der er krypteret, er der ingen tip til den private nøgle. Algoritmen til dekryptering er normalt mere beregningsintensiv end privat nøglekryptering.
I konvolutkryptering skal producenten og forbrugeren være de samme (eller begge har adgang til masternøglen). Du bruger en masternøgle til at generere en sekundær nøgle kaldet en datanøgle. Derefter krypterer du datanøglen ved hjælp af masternøglen og selve dataene ved hjælp af datanøglen, så tilføjer du den krypterede datanøgle til de krypterede data. Når du dekrypterer, bruger du masternøglen til at dekryptere den vedhæftede datanøgle, og brug derefter den dekrypterede datanøgle til at dekryptere dataene.
Fordelen ved dette er, at du omkostningseffektivt kan gemme din masternøgle med det formål- bygget Hardware Security Module og aldrig udsætte det for noget andet uden at skulle videregive alle de data, du krypterer, til HSM. Du kan endda generere nøglen inde i HSM og ikke tage den ud, så der ikke er nogen chance for, at den nogensinde har været udsat for noget eksternt. KMS giver dig en skybaseret HSM, og den er bakket op af fysiske HSMer hos Amazon.
Hvis du ikke er ligeglad med at beholde din hovednøgle i en HSM, kan du udføre den samme form for kryptering ved hjælp af din egen nøgle, som du prøver at holde dig sikker ved at lægge på en jumpserver eller noget sådan. Også så længe du ikke krypterer mere end 250 millioner TB, kan du springe konvolutten over.
Hvis du leder efter et eksempel på en kode, kan du snuppe op for at implementere enten simpel AES-kryptering eller konvolutkryptering, du måske vil tjekke vores open source-projekt. Det har en implementering for hver, du kan udnytte …
Skriv et svar