Sleutelrotatie: waarom digitale sloten regelmatig vervangen moeten worden
Stel je een hotel voor dat nooit de sloten op de deuren vervangt. Iedere medewerker die ooit een sleutel heeft gehad, kan jarenlang binnenkomen, ook lang nadat hij is vertrokken. Verstandige hotels veranderen daarom periodiek de sloten of gebruiken keycards die na een tijdje automatisch ongeldig worden. Sleutelrotatie is precies dat principe, maar dan voor de digitale wereld: de cryptografische sleutels die data versleutelen, berichten ondertekenen of gebruikers inloggen, worden na verloop van tijd vervangen door nieuwe.
Een cryptografische sleutel is in essentie een lange, willekeurige reeks getallen die als geheim wachtwoord functioneert voor een wiskundig proces: versleutelen, ontsleutelen of digitaal ondertekenen. Hoe langer diezelfde sleutel in gebruik blijft, hoe groter het risico wordt. Er is meer tijd voor een aanvaller om de sleutel te stelen, er is meer versleutelde data die bij een lek in één keer kwetsbaar wordt, en er is meer materiaal beschikbaar om de sleutel via rekenkracht te kraken. Sleutelrotatie beperkt die risico's door sleutels een houdbaarheidsdatum te geven, net zoals een keycard.
Wat is het precies?
In de praktijk komt sleutelrotatie neer op een aantal stappen die meestal automatisch verlopen. Eerst wordt een nieuwe sleutel gegenereerd door een sleutelbeheersysteem, vaak een Key Management System (KMS), een dienst die uitsluitend is gebouwd om sleutels veilig te maken, te bewaren en te beheren.
Daarna wordt bepaald wat er met de oude sleutel gebeurt. Bij symmetrische versleuteling (waarbij dezelfde sleutel wordt gebruikt om te versleutelen én te ontsleutelen) moet oude data vaak nog jarenlang leesbaar blijven. Daarom bewaren systemen meestal meerdere sleutelversies tegelijk: nieuwe gegevens worden met de nieuwste sleutel versleuteld, terwijl oudere sleutels bewaard blijven om bestaande data te kunnen blijven lezen. Dit heet sleutelversiebeheer.
Bij asymmetrische cryptografie, gebruikt voor bijvoorbeeld TLS-certificaten (de beveiliging achter het slotje in je browser), werkt het net iets anders: er is een publieke sleutel die iedereen mag kennen en een private sleutel die geheim blijft. Rotatie betekent hier dat er een nieuw sleutelpaar wordt gemaakt en dat het bijbehorende certificaat, het digitale bewijs dat een sleutel bij een bepaalde website hoort, opnieuw wordt uitgegeven en het oude certificaat wordt ingetrokken of laten verlopen.
Een derde vorm is envelope encryption: een systeem versleutelt data met een 'data-sleutel', en die data-sleutel wordt op zijn beurt versleuteld met een hoofdsleutel die in een KMS blijft staan. Zo hoeft bij rotatie alleen de hoofdsleutel te wijzigen, niet alle onderliggende data opnieuw versleuteld te worden, wat rekenkracht en tijd bespaart.
De frequentie van rotatie verschilt sterk per toepassing: TLS-certificaten worden tegenwoordig soms elke negentig dagen ververst, sleutels in cloud-KMS-diensten vaak jaarlijks, en sommige sessiesleutels in chatapps zelfs bij ieder bericht.
Wat wil men ermee bereiken?
Het belangrijkste doel is het beperken van de schade als een sleutel toch in verkeerde handen valt. Cryptografen noemen dit de cryptoperiode: de periode waarin een sleutel geldig en in gebruik is. Hoe korter die periode, hoe kleiner het tijdvenster waarin een gestolen sleutel bruikbaar is en hoe minder data er onder één sleutel is verzameld die een aanvaller in één keer kan buitmaken.
Een tweede reden is verdediging tegen cryptanalyse: hoe meer versleutelde berichten er onder dezelfde sleutel bestaan, hoe meer materiaal een aanvaller in theorie heeft om patronen te zoeken. Door regelmatig te wisselen, blijft de hoeveelheid data per sleutel beperkt.
Een derde motivatie is compliance: standaarden als de betaalkaartenstandaard PCI DSS en overheidsrichtlijnen zoals de Amerikaanse NIST-publicatie SP 800-57 schrijven concrete maximale geldigheidstermijnen voor sleutels voor, afhankelijk van het gebruik en het type sleutel.
Ten slotte speelt sleutelrotatie een steeds grotere rol in wat wel crypto-agility wordt genoemd: het vermogen van een organisatie om snel van cryptografisch algoritme of sleutel te wisselen. Dat is relevant omdat kwantumcomputers in de toekomst bepaalde huidige versleutelingsmethoden zouden kunnen breken. Organisaties die hun sleutelbeheer en -rotatie al geautomatiseerd hebben, kunnen makkelijker overstappen op nieuwe, kwantumbestendige algoritmen wanneer dat nodig blijkt.
Voorbeelden uit de praktijk
AWS Key Management Service: Amazon's clouddienst voor sleutelbeheer biedt al jaren de optie om klantsleutels automatisch te laten roteren, meestal op jaarbasis, waarbij oude sleutelversies bewaard blijven zodat eerder versleutelde data leesbaar blijft.
Google Cloud KMS en Microsoft Azure Key Vault bieden vergelijkbare functionaliteit, met instelbare rotatieperiodes en geautomatiseerde meldingen wanneer een sleutel bijna verloopt.
Let's Encrypt, de non-profit certificaatautoriteit die sinds 2015/2016 gratis TLS-certificaten uitgeeft, koos bewust voor een geldigheidsduur van slechts negentig dagen in plaats van de destijds gangbare één tot twee jaar. Dat dwingt websitebeheerders tot frequente automatische rotatie en heeft de norm in de hele TLS-industrie richting kortere levensduur verschoven.
HashiCorp Vault, een veelgebruikt open source sleutel- en geheimenbeheersysteem sinds 2015, gaat nog een stap verder met 'dynamic secrets': tijdelijke, automatisch verlopende inloggegevens en sleutels die per sessie of taak worden aangemaakt in plaats van langdurig herbruikt te worden.
Signal Protocol, ontwikkeld door Trevor Perrin en Moxie Marlinspike (destijds Open Whisper Systems, nu de Signal Foundation), gebruikt een techniek die bekendstaat als de 'Double Ratchet'. Daarbij wordt voor vrijwel ieder verzonden bericht een nieuwe sleutel afgeleid, zodat het compromitteren van één sleutel niet betekent dat eerdere of latere berichten ook leesbaar worden. Dit is een extreem voorbeeld van sleutelrotatie op microniveau en wordt onder meer gebruikt in Signal, WhatsApp en andere versleutelde chatapps.
Hoe ver is de techniek?
Sleutelrotatie zelf is geen nieuwe of experimentele technologie; het principe bestaat al decennialang in de cryptografie en wordt uitgebreid beschreven in standaarden zoals NIST SP 800-57. Wat wel volop in ontwikkeling is, is de mate van automatisering en de snelheid waarmee rotatie kan plaatsvinden zonder dat systemen daarbij uitvallen.
Bij grote cloudaanbieders is geautomatiseerde rotatie inmiddels vrij volwassen: sleutels wisselen op de achtergrond, applicaties merken er in de regel niets van. Bij oudere, lokaal beheerde systemen en bij organisaties die zelf infrastructuur onderhouden, blijft rotatie vaak een handmatig en foutgevoelig proces, met als risico dat verlopen certificaten of sleutels tot storingen leiden. Dat soort incidenten, waarbij een vergeten certificaatvernieuwing een dienst laat uitvallen, komt in de praktijk geregeld voor.
Een duidelijke trend is de verkorting van de levensduur van TLS-certificaten. Waar twintig jaar geleden certificaten met een geldigheid van meerdere jaren normaal waren, is de industrie via het CA/Browser Forum, het samenwerkingsverband van certificaatautoriteiten en browserleveranciers, bezig de maximale geldigheidsduur stapsgewijs te verkorten richting enkele weken. Dit vergroot de noodzaak van volledig geautomatiseerde rotatie, aangezien handmatige vernieuwing bij zulke korte termijnen niet meer haalbaar is.
Het belangrijkste obstakel is niet zozeer de cryptografie zelf, maar de complexiteit van bestaande IT-omgevingen: verouderde systemen, hardcoded sleutels in software, en afhankelijkheden tussen systemen die niet gelijktijdig kunnen worden bijgewerkt. Met het oog op toekomstige kwantumcomputers wordt daarnaast gewerkt aan bredere crypto-agility, zodat organisaties niet alleen sleutels, maar ook hele versleutelingsalgoritmen relatief snel kunnen vervangen; dat proces staat nog in een vroeg stadium en zal naar verwachting jaren in beslag nemen.
Wie werken eraan?
Standaarden en richtlijnen komen grotendeels van het Amerikaanse National Institute of Standards and Technology (NIST), dat via publicaties zoals SP 800-57 aanbevelingen geeft over cryptoperiodes en sleutelbeheer, en dat ook de wereldwijde standaardisatie van kwantumbestendige cryptografie leidt.
Op het gebied van infrastructuur zijn de grote clouddienstverleners, Amazon Web Services, Google Cloud en Microsoft Azure, de partijen die geautomatiseerde sleutelrotatie op grote schaal toegankelijk hebben gemaakt. Daarnaast levert HashiCorp met Vault gespecialiseerde open source software voor sleutel- en geheimenbeheer die breed wordt ingezet, ook buiten de grote clouds.
Voor certificaatrotatie op het web speelt het CA/Browser Forum, met leden zoals certificaatautoriteiten en browserbouwers als Apple, Google en Mozilla, een sturende rol bij het vaststellen van maximale geldigheidstermijnen. De non-profit Let's Encrypt, ondergebracht bij de Internet Security Research Group, heeft met gratis kortlopende certificaten de praktijk van automatische rotatie voor gewone websitebeheerders toegankelijk gemaakt.
Op het vlak van versleutelde communicatie is de Signal Foundation toonaangevend met het Double Ratchet-protocol, dat inmiddels ook door andere berichtendiensten is overgenomen. Tot slot houden overheidsinstanties voor digitale veiligheid, zoals het Nederlandse Nationaal Cyber Security Centrum (NCSC) en de Amerikaanse CISA, toezicht op en geven advies over goede praktijken rond sleutelbeheer bij kritieke infrastructuur.