Röviden: Az envelope encryption egyszerre olcsó és biztonságos — ha a kulcshierarchia tiszta. Elmagyarázzuk a mögötte lévő logikát anélkül, hogy kriptográfusnak kellene lenned.
A kulcskezelés az a téma, amitől sok fejlesztő ösztönösen tart, pedig az alapötlet meglepően egyszerű. A félelem többnyire a szóhasználatból ered: „master key”, „data key”, „envelope encryption”. Ha egyszer megérted a mögöttes logikát, kiderül, hogy a rendszer pont azért van így felépítve, hogy egyszerre legyen olcsó, gyors és biztonságos.
A probléma, amit megold
Képzeld el, hogy sok-sok adatot akarsz titkosítani. Két rossz szélsőség adódik. Az egyik, hogy mindent egyetlen kulccsal titkosítasz — ha az kiszivárog, minden odavan. A másik, hogy minden adatért a központi kulcskezelőt hívod titkosításra — ez lassú és drága, mert minden művelet hálózati hívás. Az envelope encryption e kettő között talál elegáns középutat.
Hogyan működik az „envelope”?
A lényeg a kétszintű kulcshierarchia. Van egy központi, jól őrzött főkulcs, ami sosem hagyja el a kulcskezelőt. Ez nem magát az adatot titkosítja, hanem apró adatkulcsokat.
- Kérsz a kulcskezelőtől egy friss adatkulcsot.
- Ezzel az adatkulccsal titkosítod helyben, gyorsan az adatot.
- Az adatkulcs titkosított változatát az adat mellé teszed (ez a „boríték”).
- A nyílt adatkulcsot eldobod a memóriából.
Visszafejtéskor a kulcskezelő a főkulccsal megnyitja a titkosított adatkulcsot, azzal pedig visszafejted az adatot. A főkulcs így soha nem kerül ki, mégsem kell minden bájtért hálózati hívás.
Miért ez a jó kompromisszum?
| Megközelítés | Biztonság | Sebesség/költség |
|---|---|---|
| Egyetlen kulcs mindenre | Gyenge (egy pont, minden odavan) | Olcsó |
| Minden adat a kulcskezelőn | Erős | Lassú, drága |
| Envelope encryption | Erős (a főkulcs nem kerül ki) | Gyors, olcsó |
Az envelope encryption azért nyer, mert a főkulcs védelmét (a kulcskezelő adja) kombinálja a helyi titkosítás sebességével.
A kulcshierarchia tisztán tartása
Az egész rendszer akkor marad kezelhető, ha a kulcshierarchia átlátható. Külön főkulcs a különböző adatosztályokhoz vagy környezetekhez, világos hozzáférési szabályokkal: ki használhatja melyik kulcsot, és mire. A legtöbb kulcskezelési baleset nem a kriptográfiából, hanem a jogosultságok elrontásából ered — valaki túl széles hozzáférést kapott egy kulcshoz.
A rotáció és az audit
A főkulcs rotációja és a használatának naplózása nem opcionális. A rotáció csökkenti egy esetleges kompromittálás hatókörét, a napló pedig megmutatja, ki mikor mit titkosított vagy fejtett vissza. Compliance szempontból gyakran pont ez a naplózható, ellenőrizhető kulcshasználat a követelmény, nem maga az algoritmus.
A kulcshierarchia tervezése
Az envelope encryption gyakorlati sikere a kulcshierarchia tisztaságán múlik. Ne egyetlen főkulcsot használj mindenre — külön főkulcs a különböző adatosztályokhoz, környezetekhez vagy csapatokhoz. Így egy kulcs kompromittálása vagy egy hozzáférési hiba hatóköre korlátozott marad, és a hozzáférés is finomabban szabályozható: a production kulcshoz más férhet hozzá, mint a fejlesztőihez.
A hierarchia átláthatósága a hibakeresésben és az auditban is segít: világosan látszik, melyik kulcs mit véd, és ki használhatja. A kusza, ad-hoc kulcskezelés a legtöbb kulcskezelési baleset forrása.
A hozzáférés és a jogosultság
A titkosítás annyit ér, amennyire szűk a kulcshoz való hozzáférés. Egy nyugalmi állapotban titkosított adat sem véd a jogosultak — vagy a kompromittált jogosultak — ellen, ha a kulcshasználat joga túl széles. Ezért a kulcshasználati jogot ugyanolyan least-privilege gondolkodással kell kezelni, mint bármely más jogosultságot: pontosan az fér hozzá, akinek kell, és semmi több.
A rotáció és a naplózás
A kulcsok rendszeres rotációja csökkenti egy esetleges kompromittálás hatókörét: minél gyakrabban forog a kulcs, annál kevesebb adatot véd egyetlen kulcsverzió. A kulcshasználat naplózása pedig megmutatja, ki mikor mit titkosított vagy fejtett vissza — ez compliance szempontból gyakran maga a követelmény. A titkosítás akkor teljes, ha nemcsak az algoritmus erős, hanem a kulcs életciklusa (rotáció) és a használatának auditálhatósága is rendben van.
Mit jelent ez neked?
Az envelope encryptiontől nem kell tartani: a lényege, hogy egy jól őrzött főkulcs csak kis adatkulcsokat titkosít, a tényleges adatot pedig helyben, gyorsan titkosítod. A biztonságot a főkulcs védelme és a szűk jogosultságok adják, nem a bonyolultság. Tartsd tisztán a kulcshierarchiát, szabd szűkre a hozzáférést, forgasd és naplózd a kulcshasználatot — a többit a rendszer elvégzi.