Spill inn en kryptert tunnel i dag, stjel serverens langsiktige private nøkkel neste år, og prøv å dekryptere opptaket. Forward secrecy er egenskapen som sier at den stjålne nøkkelen ikke vil være nok alene. Det er en uttalelse om innspilte økter og bestemte hemmeligheter, ikke et generelt løfte om at tunnelen var sikker. Å få omfanget riktig er det som gjør begrepet nyttig.

Spørsmålet handler om et opptak, ikke den levende økten

Den langsiktige nøkkelen identifiserer endepunktet og signerer håndtrykket. Øktnøkler krypterer den faktiske trafikken, og i et forward-secret design utledes de fra ferskt nøkkelutvekslingsmateriale som begge sider genererer og senere forkaster. En angriper som bare har den langsiktige nøkkelen, kan ikke gjenoppbygge disse forkastede verdiene. En angriper med levende økttilstand kan fortsatt, og derfor handler garantien om fortiden fremfor nåtiden.

Påstanden er betinget: den gjelder bare hvis de efemære hemmelighetene virkelig ble ødelagt og protokollen er den du tror den er. En blandet utrulling kan oppfylle den på én tunnel og feile på en annen.

Én hemmelighet må ikke gjenoppbygge de andre

Kontroller den forhandlede modusen fremfor markedsføringssiden. Håndtrykkets utdata navngir nøkkelutvekslingen og protokollversjonen.

openssl s_client -connect vpn.example.com:443 -tls1_3 -brief
swanctl --list-sas

s_client-sammendraget viser TLS-versjonen og nøkkelutvekslingsgruppen, og en efemær gruppe er det synlige tegnet på en forward-secret nøkkelavtale. swanctl-listen viser IKE- og CHILD-assosiasjoner med sine nøkkelfornyelsestimere, slik at du kan se om utrullingen fornyer nøkler etter en tidsplan. En statisk RSA-nøkkelutveksling, eller en gammel kompatibilitetsmodus, mister egenskapen uansett siffernavnet. Noter modusen du observerte, ikke den leverandøren annonserte.

Nøkkelfornyelse er ikke automatisk forward secrecy

Hvor ofte en tunnel fornyer nøkler, er et separat spørsmål fra hvordan hver nøkkel utledes. Et design som gjenoppretter nøkler fra en langsiktig hemmelighet, kan fornye hvert minutt og fortsatt dumpe testen, fordi en senere kompromittering gjenoppbygger dem alle. Omvendt kan en protokoll med sjelden fornyelse fortsatt være forward secret når hver utveksling er uavhengig. Les utledningen, ikke intervallet, og ikke forveksle en kort gjenoppkoblingstimer med en kryptografisk garanti.

Den samme forvirringen dukker opp med siffernavn: en moderne siffer sier ingenting om hvordan nøkkelen dens kom frem.

Hva som forblir synlig etter garantien

Forward secrecy beskytter klarteksten i innspilte økter mot en fremtidig nøkkelkompromittering, og det gjør ingenting mot en angriper som leser levende trafikk på et kompromittert endepunkt. Det fjerner ikke destinasjonsadresser, timing eller volum fra opptaket, og det begrenser ikke hvor lenge en operatør oppbevarer tilkoblingslogger. Det gjør heller ikke en kompromittert klient pålitelig, fordi angriperen allerede sitter der innholdet finnes i klartekst.

Når en leverandør hevder forward secrecy, spør hvilken langsiktig hemmelighet som antas stjålet og hvilke økthemmeligheter som forblir utilgjengelige. Hvis disse to spørsmålene har klare svar, betyr påstanden noe.

Relaterte artikler