Gjør det
Kryptoagilitet: evnen til å bytte algoritmer
Kvantemigrasjon er ikke det siste algoritmeskiftet. Bygg slik at neste skifte blir en rutinejobb.
Hvorfor det trengs
Historien om kryptografi er en historie om algoritmer som blir svekket: MD5, SHA-1, DES, RC4 og tidlige TLS-versjoner. Hver gang har organisasjoner brukt år på å bytte. Post-kvante-algoritmene er nye, og i 2022 ble to kandidater (Rainbow og SIKE) brutt på vanlige datamaskiner. Det er derfor rimelig å forvente at noe må byttes igjen i løpet av systemets levetid.
Kryptoagilitet gjør at du kan:
- ta i bruk ML-KEM og ML-DSA uten å bygge om applikasjonen,
- kjøre hybrid i overgangen og skru av den klassiske delen senere,
- reagere raskt hvis en algoritme blir brutt.
Designprinsipper
Abstraher kryptografi
Samle kryptobruk bak ett internt bibliotek eller en tjeneste. Applikasjonskode skal be om «signer dette» eller «krypter dette», ikke «bruk RSA-PKCS1v1.5 med SHA-1».
Ikke hardkod algoritmer
Algoritmevalg hører hjemme i konfigurasjon eller policy, ikke spredt i koden. Da kan de endres uten kodeendring og utrulling av alt.
Merk data med algoritme og versjon
Sørg for at signaturer, chifferdata og nøkler bærer en identifikator for hva som er brukt. Da kan du lese gamle data samtidig som du skriver nye med ny algoritme.
Støtt flere algoritmer parallelt
Protokoller bør forhandle algoritmer og gjerne støtte hybrid. Unngå «alt eller ingenting»-brytere.
Automatiser sertifikater og nøkler
Korte levetider og automatisk fornyelse (for eksempel ACME) gjør bytte av nøkler og algoritmer til en vane i stedet for et prosjekt.
Dimensjoner for større størrelser
Felter, buffere, databasekolonner, protokollpakker og minne må tåle nøkler og signaturer på flere kilobyte.
Test bytter
Ha automatiske tester som kjører med flere algoritmesett, og øv på å skifte i testmiljø jevnlig. Det du ikke øver på, virker ikke når det trengs.
Hold inventaret oppdatert
Se kryptografisk inventar. Agilitet uten oversikt er bare håp.
Anti-mønstre
- Algoritmenavn og nøkkelstørrelser som konstanter i koden.
- Egenutviklet kryptografi eller egne protokoller.
- Faste feltlengder som antar 32- eller 64-byte nøkler.
- Offentlige nøkler innebygd i produkter uten mulighet for å bytte eller rotere.
- Avhengighet av én enkelt algoritme i en lukket protokoll.
- Manuell sertifikathåndtering med lange levetider.
Modenhetsnivåer
| Nivå | Beskrivelse |
|---|---|
| 0. Ukjent | Ingen oversikt over hvor kryptografi brukes. |
| 1. Kartlagt | Inventar finnes, men algoritmer er hardkodet og byttes ved omskriving. |
| 2. Konfigurerbar | Algoritmevalg kan endres i konfigurasjon, men bytte krever manuelt arbeid per system. |
| 3. Sentralisert | Policy og kryptobiblioteker er sentrale. Bytter kan rulles ut sentralt og testes. |
| 4. Automatisert | Sertifikater, nøkler og algoritmer fornyes automatisk. Nye algoritmer kan rulles ut gradvis med målinger og tilbakerulling. |
De fleste virksomheter ligger i dag på nivå 0–2. Målet i denne omgangen er nivå 2 eller 3 for de viktigste systemene.
Utstyr som ikke kan oppdateres
For maskinvare og innebygde systemer er agilitet vanskeligere. Se på:
- sikker oppdatering av firmware med støtte for rotasjon av signaturnøkler,
- hashbaserte signaturer (LMS, XMSS) for sikker oppstart, som er standardisert og konservative,
- å bruke en dobbel nøkkel, slik at en post-kvante-nøkkel kan aktiveres senere,
- krav til leverandører om oppdateringsløp og levetid.
Vanlige spørsmål
Hva er forskjellen på kryptoagilitet og kvantesikkerhet?
Kvantesikkerhet betyr at en algoritme tåler kvantedatamaskiner. Kryptoagilitet betyr at systemet kan bytte algoritme når det trengs. Du trenger begge: det første for denne omgangen, det andre for den neste.
Koster kryptoagilitet mye?
Det koster mest å ettermontere. For nye systemer er det i hovedsak en designdisiplin: sentrale biblioteker, konfigurasjon i stedet for hardkoding og testing.