Het crypto-agilitymonster op een bierviltje

Expertblogs

Cryptografie is niet meer weg te denken uit onze moderne informatiebeveiliging. We vertrouwen voor heel veel toepassingen op de beveiligingswaarde die cryptografie levert. Zo worden standaardprotocollen en primitieven zoals TLS, RSA en AES gebruikt om belangrijke processen en informatie te beschermen. Dankzij cryptografie kunnen we veilig betalen met onze bankpas, verkeerslichten aansturen en vertrouwelijke informatie versleutelen. 

De geschiedenis laat zien dat cryptosystemen ‘gebroken’ kunnen worden, bijvoorbeeld door zwaktes in de algoritmes zelf, implementatiefouten, of de komst van nieuwe, krachtigere computers die de cryptografische beveiligingswaarde substantieel verlagen. De aanleiding voor het schrijven van deze blog is een van deze cryptobrekers: de komst van een krachtige quantumcomputer die het mogelijk maakt om veelgebruikte (asymmetrische) cryptografische algoritmes effectief te ‘breken’1.

We moeten hierdoor rekening houden met nieuwe kwetsbaarheden en dreigingen. Een manier om dit te doen is door cryptografie wendbaar (agile) te maken. Die wendbaarheid zorgt er bijvoorbeeld voor dat je snel de sleutellengte kunt veranderen of dat je een ander algoritme kunt implementeren in een protocol. Het PQC-migratiehandboek omschrijft de term crypto-agile als volgt: “het zodanig implementeren van cryptografische protocollen, producten en systemen, dat de betrokken cryptografische algoritmen met minimale inspanning kunnen worden gewijzigd”2. Maar wat houdt deze minimale inspanning in? Wat is een passende wendbaarheid en met welke snelheid moeten veranderingen doorgevoerd kunnen worden? En zijn er ook nadelen aan crypto-agility verbonden?

Als onderdeel van de werkgroep ‘crypto-agility’ van het programma Quantumveilige Cryptografie Rijk (QvC Rijk)3 doken we dieper in op dit begrip. We kwamen hierbij tot de realisatie dat er achter de ogenschijnlijk simpele definitie van crypto-agility een complex monster – het crypto-agility monster – verstopt zit.

We hebben geprobeerd dit monster 'op een bierviltje' te temmen, met onderstaand beeld als resultaat. Klik op de cijfers voor meer informatie. 

agility monster

Uitleg van de nummers in de afbeelding

1. Laten we beginnen bij het monster zelf

Om een begin te maken met het temmen, dat wil zeggen grip krijgen op het concept crypto-agility, maken we een aantal observaties van het monster. • Het is een groot en omvangrijk monster. Cryptosystemen of systemen die gebruik maken van cryptografie kunnen op veel verschillende manieren crypto-agile gemaakt worden. • Het monster heeft goede kanten, namelijk de voordelen die crypto-agile zijn biedt, maar ook kwade kanten, namelijk het risico op het introduceren van nieuwe kwetsbaarheden in het cryptosysteem. • Het is een monster met lange tentakels, waardoor het lastig te overzien is wat de gevolgen van de introductie van agility zijn op de rest van het systeem.

2. Het monster ziet er voor niemand hetzelfde uit

Het monster presenteert zich op verschillende manieren aan ons en meestal op basis van jouw eigen interesses. Ben je bijvoorbeeld een leverancier en wil je je systeem kunnen aanpassen op de wetgeving van de landen van jouw afnemers? Dan bekijk je het monster vooral vanuit het oogpunt van compliance agility. Wil je snel kunnen reageren op de ontdekking van kwetsbaarheden? Dan bekijk je het met de migration agility bril. Maak je gebruik van goedkopere en/of lastig te patchen hardware, waarbij afstoten en vervangen makkelijk moet zijn? Dan denk je aan retirement agility. We zijn ons er vaak niet van bewust dat er nog veel meer verschijningsvormen (en daarmee doelen voor agility) zijn.

3. De verschijningsvormen

We (nou ja, onderzoekers uit de wetenschap en het bedrijfsleven ) hebben een zevental van dit soort verschijningsvormen gevonden die samen crypto-agility definiëren. Door je bewust te zijn van deze verschillende verschijningsvormen ontstaat de mogelijkheid om het monster te temmen. Als je namelijk door de lens van nog maar één verschijningsvorm kijkt, dan blijkt het omvangrijke monster ineens nog maar een klein monstertje te zijn. Hierdoor wordt het vraagstuk van crypto-agility en de bijbehorende doelen voor jouw organisatie tastbaarder en kun je de vervolgstap gaan zetten.

4. Het monster heeft veel (en soms verborgen) tentakels

Er zijn veel verschillende opties om een systeem crypto-agile te maken. Denk bijvoorbeeld aan het aanpassen van sleutellengtes of het onderhandelen van de parameters voor een veilige verbinding. Maar ook zaken als softwaremodulariteit, (her-)configureerbare hardware en de levensduur van certificaten zijn manieren om bepaalde agilitydoelen te behalen. We zien dit soort opties als knoppen waaraan je kan draaien en schuiven. De wendbaarheid van (onderdelen van) het systeem wordt hiermee ingesteld of aangepast. Elk systeem kent dit soort knoppen, waardoor het monster (al dan niet verborgen) in heel het systeem aanwezig is met zijn lange tentakels.

5. Stroeve en soepele knoppen

Sommige knoppen zullen stroever bewegen dan anderen waardoor je dus meer moeite zal moeten doen om een stand te veranderen. Ook geldt dat wanneer er aan de ene knop gedraaid wordt, dit effect kan hebben op de stand van een andere knop. Zo kan het blijven ondersteunen van oudere communicatieprotocollen (wat meer agile is dan dat niet doen) tot gevolg hebben dat er een beperking optreedt in de keuze voor primitieven (PQC-primitieven kunnen bijvoorbeeld niet ondersteund worden), waardoor die knop dus minder mogelijkheden heeft.

6. Hoe ziet jouw knoppenpaneel eruit?

Elk systeem heeft, bedoeld of onbedoeld, een aantal knoppen. Een deel van de knoppen zal makkelijk te identificeren zijn (bijvoorbeeld parameters van primitieven, zoals een sleutellengte) en hun impact op de verschillende modaliteiten is eenvoudig in te zien. Sommige knoppen zijn wat lastiger te herkennen, bijvoorbeeld omdat die nooit als knop zijn bedoeld (zoals de vervanging van smartcards om een kwetsbaarheid te mitigeren). Ook kan het al dan niet bestaan en de soepelheid van knoppen onderdeel zijn van de afspraken die met leveranciers gemaakt worden.

7. Meer knoppen! Dat maakt het monster krachtig! Toch?

Een monster met veel en diepgaande tentakels zorgt voor meer wendbaarheid. Je zou bijna zeggen dat je dus overal tentakels wil hebben! Maar die wendbaarheid kent ook een keerzijde. De kosten van agility kunnen financieel van aard zijn (want ontwikkelen en onderhouden kost geld), maar bijvoorbeeld ook te maken hebben met de performance van het cryptosysteem na aanpassingen of de doorlooptijd of downtime van systemen bij het maken van een aanpassing. Het kan ook leiden tot de introductie van nieuwe risico’s. Zo kan de dreiging van downgrade aanvallen toenemen door een ongelukkige combinatie van instellingen.

8. Monsterlijke afweging

Agile zijn is geen opzichzelfstaand doel voor een systeem, maar is een middel om een doel te bereiken. Het is een verzameling van niet-functionele eisen aan het systeem. Agilitydoelen en de implementatie hiervan kunnen specifieke organisatierisico’s mitigeren. Hou in je risicomanagementproces dus ook rekening met het crypto-agility monster: kies passende agility-doelen en de knoppen die nodig zijn om die doelen te bereiken. Hou daarbij niet alleen rekening met de positieve effecten van wendbaarheid, maar ook de donkere kant van het monster.

Beeld: ©NCSC NL

Bron: De verschijningsvormen. 'onderzoekers uit de wetenschap en het bedrijfsleven: https://arxiv.org/ftp/arxiv/papers/1909/1909.07353.pdf

Wat is het moraal van dit monsterverhaal?

Het crypto-agility monster biedt een eerste basis om de verschillende aspecten van het concept crypto-agility binnen jouw organisatie bespreekbaar te maken. Wat kan je van dit verhaal leren?

  • Crypto-agility is een manier om (toekomstige) kwetsbaarheden in cryptografische protocollen, primitieven en systemen te mitigeren.
  • Houd in je risicomanagementproces niet alleen rekening met de positieve effecten van wendbaarheid, maar ook de risico’s die agility kan introduceren.
  • Kies agility-doelen en de mate van wendbaarheid die passen bij de risico’s van jouw organisatie en bepaal hoe je die doelen kan realiseren.
  • Probeer zo goed mogelijk in kaart te brengen welke mogelijkheden voor agility je hebt of wil hebben in het cryptosysteem en wat de afhankelijkheden daartussen zijn.

Binnen de werkgroep ‘crypto-agility’ van het programma Quantumveilige Cryptografie Rijk (QvC-Rijk) werken we aan handvatten om de Rijksoverheid en aanbieders van essentiële diensten te ondersteunen om systemen passend crypto-agile te maken. Denk bijvoorbeeld aan handvatten om de juiste crypto-agility doelen te identificeren of hoe je deze doelen het beste kan realiseren.

Hoe kijk jij aan tegen het monster? Heb je hier ervaring mee, of ben je bezig met het ontwerp of beheer van een crypto-agile systeem? Neem dan contact met ons op via research@ncsc.nl.

dr.ir. Dion Koeze, Onderzoeker NCSC

dr.ir. Robert Seepers, Specialistisch adviseur NCSC