Optag en krypteret tunnel i dag, stjæl serverens langsigtede private nøgle næste år, og prøv at dekryptere optagelsen. Forward secrecy er den egenskab, der siger, at den stjålne nøgle ikke vil være nok alene. Det er en udtalelse om optagede sessioner og specifikke hemmeligheder, ikke et generelt løfte om, at tunnelen var sikker. At få omfanget rigtigt er det, der gør begrebet nyttigt.

Spørgsmålet handler om en optagelse, ikke den levende session

Den langsigtede nøgle identificerer endepunktet og signerer håndtrykket. Sessionsnøgler krypterer den faktiske trafik, og i et forward-secret design udledes de af frisk nøgleudvekslingsmateriale, som begge sider genererer og senere kasserer. En angriber, der kun har den langsigtede nøgle, kan ikke genskabe disse kasserede værdier. En angriber, der har levende sessionstilstand, kan stadig, og derfor handler garantien om fortiden frem for nutiden.

Påstanden er betinget: den gælder kun, hvis de efemære hemmeligheder virkelig blev ødelagt, og protokollen er den, du tror, den er. En blandet udrulning kan opfylde den på én tunnel og fejle på en anden.

Én hemmelighed må ikke genopbygge de andre

Kontroller den forhandlede tilstand frem for marketingssiden. Håndtrykkets output angiver nøgleudvekslingen og protokolversionen.

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

s_client-resuméet viser TLS-versionen og nøgleudvekslingsgruppen, og en efemær gruppe er det synlige tegn på en forward-secret nøgleaftale. swanctl-listen viser IKE- og CHILD-associationer med deres nøglefornyelsestimere, så du kan se, om udrulningen fornyer nøgler efter en tidsplan. En statisk RSA-nøgleudveksling eller en gammel kompatibilitetstilstand mister egenskaben uanset cipher-navnet. Noter den tilstand, du observerede, ikke den leverandøren annoncerede.

Nøglefornyelse er ikke automatisk forward secrecy

Hvor ofte en tunnel fornyer nøgler, er et separat spørgsmål fra, hvordan hver nøgle udledes. Et design, der genskaber nøgler fra en langsigtet hemmelighed, kan forny nøgler hvert minut og stadig dumpe testen, fordi en senere kompromittering genskaber dem alle. Omvendt kan en protokol med sjælden fornyelse stadig være forward secret, når hver udveksling er uafhængig. Læs udledningen, ikke intervallet, og forveksl ikke en kort genopkoblingstimer med en kryptografisk garanti.

Den samme forvirring ses med cipher-navne: en moderne cipher siger intet om, hvordan dens nøgle ankom.

Hvad der forbliver synligt efter garantien

Forward secrecy beskytter klarteksten i optagede sessioner mod en fremtidig nøglekompromittering, og det gør intet ved en angriber, der læser levende trafik på et kompromitteret endepunkt. Det fjerner ikke destinationsadresser, timing eller volumen fra optagelsen, og det begrænser ikke, hvor længe en operatør opbevarer forbindelseslogs. Det gør heller ikke en kompromitteret klient troværdig, fordi angriberen allerede sidder der, hvor indholdet findes i klartekst.

Når en udbyder hævder forward secrecy, spørg hvilken langsigtet hemmelighed der antages stjålet, og hvilke sessionshemmeligheder der forbliver utilgængelige. Hvis de to spørgsmål har klare svar, betyder påstanden noget.

Relaterede artikler