Forward secrecy för en VPN: vad en stulen nyckel kan låsa upp
Forward secrecy begränsar vad en senare stulen identitetsnyckel avslöjar om inspelade sessioner. Det skyddar inte levande klartext på en komprometterad enhet.
Spela in en krypterad tunnel i dag, stjäl serverns långsiktiga privata nyckel nästa år och försök dekryptera inspelningen. Forward secrecy är egenskapen som säger att den stulna nyckeln inte räcker på egen hand. Det är ett påstående om inspelade sessioner och specifika hemligheter, inte ett allmänt löfte om att tunneln var säker. Att få omfattningen rätt är det som gör termen användbar.
Frågan gäller en inspelning, inte den levande sessionen
Den långsiktiga nyckeln identifierar ändpunkten och signerar handskakningen. Sessionsnycklar krypterar den faktiska trafiken, och i en design med forward secrecy härleds de från färskt nyckelutbytesmaterial som båda sidor genererar och sedan kastar. En angripare som bara har den långsiktiga nyckeln kan inte återskapa dessa kastade värden. En angripare med levande sessionstillstånd kan fortfarande, och därför gäller garantin det förflutna snarare än nuet.
Påståendet är villkorat: det gäller bara om de efemära hemligheterna verkligen förstördes och protokollet är det du tror. En blandad utrullning kan uppfylla det på en tunnel och misslyckas på en annan.
En hemlighet får inte återuppbygga de andra
Kontrollera det förhandlade läget i stället för marknadsföringssidan. Handskakningens utdata anger nyckelutbytet och protokollversionen.
openssl s_client -connect vpn.example.com:443 -tls1_3 -brief
swanctl --list-sass_client-sammanfattningen visar TLS-versionen och nyckelutbytesgruppen, och en efemär grupp är det synliga tecknet på en forward-secret-nyckelöverenskommelse. swanctl-listan visar IKE- och CHILD-associationer med deras nyckelförnyelsetimers, så du kan se om utrullningen förnyar nycklar enligt ett schema. Ett statiskt RSA-nyckelutbyte, eller ett gammalt kompatibilitetsläge, förlorar egenskapen oavsett chiffernamnet. Anteckna läget du observerade, inte det leverantören annonserade.
Nyckelförnyelse är inte automatiskt forward secrecy
Hur ofta en tunnel förnyar nycklar är en separat fråga från hur varje nyckel härleds. En design som återskapar nycklar från en långsiktig hemlighet kan förnya varje minut och ändå misslyckas i testet, eftersom en senare kompromettering återskapar dem alla. Omvänt kan ett protokoll med sällsynt förnyelse fortfarande vara forward secret när varje utbyte är oberoende. Läs härledningen, inte intervallet, och blanda inte ihop en kort återuppkopplingstimer med en kryptografisk garanti.
Samma förvirring dyker upp med chiffernamn: ett modernt chiffer säger ingenting om hur dess nyckel kom fram.
Vad som förblir synligt efter garantin
Forward secrecy skyddar klartexten i inspelade sessioner mot en framtida nyckelkompromettering, och det gör ingenting mot en angripare som läser levande trafik på en komprometterad ändpunkt. Det tar inte bort destinationsadresser, timing eller volym från inspelningen, och det begränsar inte hur länge en operatör behåller anslutningsloggar. Det gör inte heller en komprometterad klient pålitlig, eftersom angriparen redan sitter där innehållet finns i klartext.
När en leverantör hävdar forward secrecy, fråga vilken långsiktig hemlighet som antas stulen och vilka sessionshemligheter som förblir otillgängliga. Om dessa två frågor har tydliga svar betyder påståendet något.