Kuvertkryptering med asymmetriska nycklar vs KMS
On februari 18, 2021 by adminI kuvertkryptering används en symmetrisk hemlig nyckel för att signera data och sedan används en nyckel för att kryptera hemligheten för att producera en krypterad hemlig nyckel. De krypterade meddelandena förpackas med den krypterade hemliga nyckeln och skickas till klienten / konsumenten som sedan dekrypterar den krypterade hemliga nyckeln för att få den hemliga nyckeln, som i sin tur används för att dekryptera meddelandet
Det finns två sätt för att implementera det:
- Asymmetrisk kryptering: Producenten krypterar den eller de hemliga nycklarna med konsumentens offentliga nyckel. Konsumenten använder en privat nyckel för att dekryptera den krypterade hemligheten
- KMS (som AWS KMS): Den hemliga nyckeln krypteras av KMS, och klienten som behöver tillgång till den hemliga nyckeln måste be KMS att dekryptera det
Fördelen med KMS-tillvägagångssättet är att nyckelhantering är centraliserad och att återkalla behörigheter från en klient kan göras genom att ta bort klienten från KMS och vrida nyckeln.
Finns det några goda skäl att använda asymmetriska nycklar istället för KMS?
Kommentarer
- Förutom det faktum att ett KMS är en separat tjänst för att underhålla, hantera och blir en enda felpunkt i en distribuerad miljö? Är din fråga en " kryptering " fråga eller en " logistik " fråga?
Svar
Om KMS håller nyckeln kan de läsa budskapet. Om KMS bryts kan en angripare läsa alla meddelanden som är associerade med alla nycklar som de stal. Asymmetriska nycklar där den privata nyckeln bara hålls av mottagaren tillåter bara mottagaren att läsa meddelandet så det finns ingen oro för att kika KMS-system. Om den privata nyckeln stjäls är det bara för e-postmeddelanden till den användaren som använde den nyckeln , inte alla i systemet.
Svar
Det handlar om var du lagrar hemligheten och vem som har tillgång till den .
Först ett förtydligande: Du är förvirrad. KMS använder inte asymmetrisk kryptering (kallas även Public-Key-kryptering). Den använder kryptering av privat nyckel för att aktivera kuvertkryptering. De är två olika saker.
Vid asymmetrisk kryptering behöver krypteringsproducenten aldrig komma åt hemligheten, de behöver bara den offentliga nyckeln. Producenten använder den offentliga nyckeln för att kryptera, konsumenten använder motsvarande privata nyckel för att dekryptera. För att underlätta nyckelrotation lägger producenten ibland till den offentliga nyckeln som användes för att kryptera så att konsumenten vet vilken privat nyckel som ska användas för att dekryptera. Oavsett hur mycket data krypteras finns det inga ledtrådar till den privata nyckeln. Algoritmen för dekryptering är vanligtvis mer beräkningsintensiv än privatnyckelkryptering.
I kuvertkryptering måste producenten och konsumenten vara desamma (eller båda har tillgång till huvudnyckeln). Du använder en huvudnyckel för att generera en sekundär nyckel som kallas en datanyckel. Du krypterar sedan datanyckeln med huvudnyckeln och själva datan med hjälp av datanyckeln, sedan lägger du till den krypterade datanyckeln till den krypterade datan. När du dekrypterar använder du huvudnyckeln för att dekryptera den bifogade datanyckeln och använder sedan den dekrypterade datanyckeln för att dekryptera data.
Fördelen med detta är att du kostnadseffektivt kan lagra din huvudnyckel i syfte- byggd hårdvarusäkerhetsmodul och aldrig utsätta den för något annat utan att behöva skicka all data du krypterar till HSM. Du kan till och med generera nyckeln inuti HSM och inte ta ut den så att det inte finns någon chans att den någonsin har utsatts för något externt. KMS ger dig en molnbaserad HSM och den stöds av fysiska HSMs på Amazon.
Om du inte bryr dig om att behålla din huvudnyckel i en HSM, kan du göra samma typ av kryptering med din egen nyckel som du försöker hålla dig säker genom att sätta in på en hoppserver eller något Så länge du inte krypterar mer än 250 miljoner TB kan du hoppa över kuvertet.
Om du letar efter någon exempelkod kan du rycka upp för att implementera antingen enkel AES-kryptering eller kuvertkryptering kanske du vill kolla vårt öppen källkodsprojekt. Det har en implementering för varje du kan använda …
Lämna ett svar