De sleutels voor de versleuteling

Versleutelen van je data is een hot item maar als je je sleutel niet goed onder controle hebt, kun je de toegang tot je data verliezen of anderen kunnen bij jouw gegevens. Vooral als je je gegevens buiten je eigen omgeving gaat opslaan in omgevingen die niet 100% onder controle zijn.

Als je je data wilt versleutelen is er een sleutel nodig en de beveiliging van dit sleutelmateriaal is dan een hele belangrijke stap. Niet alleen om je data te beveiligen maar ook omdat je je data ooit wel weer wilt lezen. De sleutel kun je op diverse manieren beveiligen en opslaan maar ook backup/restore van het sleutelmateriaal is van levensbelang want zonder de sleutel kun je nooit meer bij je data.

Er zijn diverse soorten sleutels in een omgeving die allemaal hun eigen functie en beveiliging hebben.

  • Master key
  • Key Encryption Key (KEK)
  • Data Encryption Key (DEK)

Van alle sleutels kunnen er meerdere zijn maar voor de Master key wordt er vaak maar één per omgeving gegenereerd. Mede omdat de Master key vaak tijdrovend en duur is om te onderhouden.

Sleutelmateriaal om data te versleutelen (DEK) zijn altijd symmetrische sleutels. Het beveiligen van deze sleutels wordt dan soms met asymmetrische sleutels uitgevoerd of met andere symmetrische sleutels. Het maakt niet zo uit of de onderliggende sleutels symmetrische of asymmetrische zijn, het principe is bijna hetzelfde.

In dit stuk leg ik uit hoe het sleutelmateriaal gebruikt, welke sleutels er zijn, hoe deze sleutels globaal gebruikt worden en hoe je deze onder controle kan krijgen.

De Master key

Dit is de belangrijkste sleutel van de omgeving. Met dit sleutelmateriaal beveilig je alle andere  sleutels en wordt ook moedersleutel of Root key genoemd. Er is er vaak maar één per omgeving van en het is daarom belangrijk deze goed te beveiligen. Een Master key worden daarom vaak in specifieke hardware opgeslagen, Hardware Security Modules (HSM’s) genoemd, en de beveiliging rondom deze HSM’s is hoog. Voorbeelden van de beveiliging is dat als de hardware opengemaakt wordt, de sleutel automatisch verwijderd wordt maar ook bewegingen en temperatuur wordt gemeten en als dan vreemde waarden gedetecteerd wordt, zal het systeem de sleutels actief verwijderen.

Dit is nodig omdat je met deze sleutel alle andere, in software opgeslagen, sleutels beveiligd en daardoor moet kunnen vertrouwen dat het sleutelmateriaal niet misbruikt kan worden.

Ook de eigenaarschap, backup/restore en offline opslag is een belangrijk onderwerp voor deze Master keys. Na het genereren van de Master key wordt er een offline kopie gemaakt. Het offline opslaan wordt altijd in meerdere delen gedaan zodat niemand de gehele sleutel kan bezitten. Elk deel wordt afzonderlijk in een fysieke kluis opgeslagen en er zijn veel procedures en ceremonies omheen zodat de sleutel te allen tijden veilig blijft. Dit zijn vaak tijdrovende en dure processen en worden daardoor zo min mogelijk uitgevoerd.

Omdat deze sleutel alle andere sleutels kan beveiligen is het belangrijk deze goed onder controle te hebben. Indien je deze sleutel niet onder controle hebt, kunnen derden de andere sleutels gebruiken en daarmee jouw data ontsleutelen.

De Key Encryption Key’s (KEK)

Deze wordt gebruikt om ander sleutelmateriaal te versleutelen en wordt versleuteld opgeslagen op een harddisk of ander soort storage systeem. Je kunt deze alleen ontsleutelen met de onderliggende sleutel en daarna wordt de KEK in geheugen van die machine geplaatst zodat deze automatisch gebruikt kan worden om ander sleutelmateriaal mee te ontsleutelen of als het nodig is weer te versleutelen.

In een omgeving kunnen er meerdere KEK’s zijn, zowel horizontaal als verticaal, omdat er vaak meerdere tussenliggende systemen zijn. Deze KEK’s versleutelen altijd andere sleutels. Dat kunnen bovenliggende KEK’s zijn maar ook Data Encryption Keys (DEK). Een KEK kan meerder KEKs ontsleutelen en als het de laatste is, ontsleuteld deze de DEK of meerdere DEK’s. KEKs kunnen ook een soort boomstructuur hebben en dan versleutelen ze sleutels voor verschillende systemen in de omgeving.

Het ontsleutelen van een KEK kan met een Master key in een HSM zijn maar ook met een andere KEK of met een wachtwoord. Dat laatste wordt gedaan op bv database servers als er geen hoge beveiliging nodig is.

KEK’s worden vaak in geheugen gezet en daar zijn deze een bepaalde tijd beschikbaar. Veel systemen controleren eens in de zoveel tijd of de Master key en HSM’s nog beschikbaar zijn en als dat niet zo is, wordt de sleutel uit het geheugen gewist.

Backup en restore van deze KEK’s is een belangrijk onderwerp en wordt vaak meegenomen in de backup van de Key management systemen waar deze gebruikt worden. Deze backups zijn vaak onder controle van de leverancier en die heeft daardoor toegang tot het versleutelde sleutelmateriaal en de daarmee versleutelde data.

De Data Encryption Key’s (DEK)

De DEK is een sleutel die de data kan ontsleutelen en versleutelen en is de laatste in de boomstructuur. Net als de KEK wordt ook de DEK door de onderliggende sleutel (KEK) ontsleuteld en in geheugen van de machine geplaatst om automatisch de data te ontsleutelen of te versleutelen.

Er kan één DEK zijn maar meestal worden er meerdere DEK’s gebruikt. Op storage systemen vaak één per bestand en deze wordt dan gezamenlijk met het bestand door de onderliggende KEK versleuteld opgeslagen. Voor database servers geldt ongeveer hetzelfde en zijn er meerdere DEK’s per database, tabel of per kolom of per tijdseenheid.

Doordat deze sleutels bij de data of database worden opgeslagen kunnen ze ook eenvoudig meegenomen worden in de backups. Bij een restore komen ze dan weer beschikbaar en als je de KEK’s en Master key  nog hebt, kun je deze weer ontsleutelen en is de data weer toegankelijk.

Key Renewal

Het hernieuwen van sleutelmateriaal is een lastig onderwerp. Vooral het hernieuwen van de Master key zorgt voor de nodige problemen omdat alle KEK’s dan opnieuw versleuteld moeten worden met de nieuwe Master key. Indien je de Master key op hoog niveau beveiligd hebt, is het vernieuwen van deze sleutel vaak maar eens in de 10 of 15 jaar noodzakelijk. Het is geen automatisch proces en je moet er goed over nadenken wat en hoe je dit uitvoert. Hernieuwen van dit soort sleutels is een duur en tijdrovend proces waar meerdere mensen bij betrokken moeten zijn.

De KEK’s vernieuwen is vaak eenvoudiger want dat kun je voor een deel automatiseren. Je genereert een nieuwe en dan ontsleutel je de bovenliggende sleutel (KEK of DEK) met de oude KEK en versleuteld deze daarna met de nieuwe KEK. Je slaat het versleutelde sleutelmateriaal op en je hebt dan een nieuwe sleutel. Omdat je alleen sleutelmateriaal met de KEK versleuteld, kan dit snel uitgevoerd worden en je ziet dat dit op sommige omgevingen zelfs elke dag gedaan wordt of zelfs elk uur.

De DEK vernieuwen kan eigenlijk niet zo goed. Dan moet je alle data ontsleutelen, nieuwe DEK maken en de data opnieuw versleutelen. Voor data die je zelden gebruikt, is dit lastig in te regelen en wordt daardoor niet vaak gedaan. Je genereert nieuwe DEK’s voor nieuwe data waardoor de sleutel wel verloopt maar die verlopen sleutel is dan ook voor oudere data. Het kan zijn dat je met een data policy hiermee kan voorkomen dat sleutels hernieuwd moeten worden, als de oude data eerder verwijderd wordt dan dat de sleutel verlopen is.

Conclusie

Al met al is het belangrijk je data onder controle te hebben en indien je dan versleuteling gebruikt, verleg je dit naar het sleutelmateriaal. Versleutelde data kun je dan opslaan onder lagere controle maar dan moet de betreffende sleutels wel onder controle zijn. Is data bijvoorbeeld versleuteld opgeslagen in de Cloud, dan is het is daardoor belangrijk de Master key volledig onder controle te hebben zodat alle andere sleutels alleen ontsleuteld kunnen worden als de Master key beschikbaar is.

De toegang tot de juiste sleutels wordt daardoor belangrijker dan toegang tot de versleutelde data. Indien iemand die de versleutelde data heeft, kan deze niet de data inzien zonder dat je de Master key tot je beschikking hebt. Omdat niet alleen de versleutelde data in een backup zit maar ook alle key management systemen in backups zijn opgenomen, is een restore van de gehele omgeving afhankelijk van de Master key. Zit deze in een HSM en liggen de sleuteldelen in de kluis bij jou, dan kan niemand deze restore gebruiken zonder dat jij daar iets voor moet doen.

Vooral in Cloud omgevingen zie je dat access control en key management omgevingen onder controle liggen van de Cloud leverancier. Dan is je laatste redmiddel om de data onder controle te houden, een volledig onder controle zijnde Master key.

  • Aangemaakt op .