Kva ein VPN-protokollspesifikasjon bevisar og ikkje bevisar
Ein spesifikasjon fastset meldingsformat, algoritmar og trugselantakingar. Han kan ikkje garantera for bygget du installerte eller for korleis operatøren handterer kontoen din.
Eit protokolldokument er ein kontrakt mellom implementasjonar, og nøye lesing fortel deg kva to konforme partar vil utveksla og kva eigenskapar designarane meinte skulle halda. Det fortel deg ikkje kva binærfil som køyrer på tenaren du koplar til, korleis den tenaren vart konfigurert eller kva som seinare skjer med kontooppføringa di. Dette er tre ulike slag bevis, og å handsame spesifikasjonen som alle tre er måten eit protokollnamn byrjar å gjere arbeid det ikkje kan. Å halda dei tre frå kvarandre er heile øvinga.
Dokumentet er byrjinga på eit argument, ikkje konklusjonen.
Kva dokumentet faktisk spesifiserer
For WireGuard definerer protokollskildringa eit Noise IK-handtrykk, eit fast sett primitiv, meldingslayoutar og transportinnramminga som deretter ber pakkar. For IKEv2 er det samanliknbare artefaktet RFC 7296, som spesifiserer utvekslingar, nyttelaster og forhandlinga av framlegg. I båe tilfelle er omfanget presist: meldingane, tilstandsmaskinen og antakingane som tryggingsmåla gjeld under.
Valfrie modusar gjer lesinga meir komplisert. Ein eigenskap som gjeld for eitt handtrykk, gjeld kanskje ikkje for ein utrulling med eit anna autentiseringsarrangement eller ein reservekonfigurasjon.
Kvar garantia stoppar
Ein formell analyse svarar på eit spørsmål om ein modell. Verifiseringsarbeidet til WireGuard brukar ein symbolsk modell i Tamarin-provasjonen, som kan visa at designet står imot visse åtak gitt antakingane; det visar ikkje at ein utlevert brukarromsimplementasjon ikkje har ein minnetryggleiksfeil. Det er i dette gapet mellom modell og maskin verkelege hendingar lever. Å lesa eit bevis som eit implementasjonssertifikat er ein kategorifeil.
Forward secrecy illustrerer den same grensa. Eigenskapen er avhengig av at nøklar vert øydelagde slik protokollen har tenkt, og det er ein eigenskap ved implementasjonen og miljøet hans, ikkje ved meldingsformatet. Eit design som føreskriv sletting, kan ikkje handheva det på ein plattform som sider minne til disk.
Lagdelte avhengnader utvidar gapet ytterlegare: TLS-biblioteket bak ein TLS-basert tunnel, kjernegrensesnittet ein brukarromstunnel brukar, og tilfeldig tal-generatoren ligg alle utanfor protokollteksten.
Følg byta inn i bygget
Flytt deg frå dokument til artefakt ved å identifisera versjonar og deretter samanlikna dei med det som faktisk tenar trafikk. Eit produkt som namngjev ein protokoll, kan leggja til komponentar for klargjering, telemetri og administrasjon som spesifikasjonen aldri skildrar.
openvpn --version | head -3 wg --version dpkg -l | grep -E 'openvpn|wireguard|libssl' ss -lunp | grep -E '1194|51820' sha256sum ./wireguard-tools_1.0.20210914_amd64.deb
Reproduserbare bygg og publiserte kontrollsummar gjer det mogleg å kopla eit kjelderetre til ein distribuert binærfil. Utan den koplinga bevisar publisert kjeldekode berre at inspeksjon er mogleg, ikkje at fila som køyrer samsvarar med han.
Konfigurasjon høyrer til same trinn. Chiffersuitar, tillatne partar og rutinginnstillingar er utrullingsval, og eit konformt bygg som er konfigurert slurvete gjev framleis ein svak tunnel.
Hald driftspraksis åtskild
Kontooppføringar, betalingsdata og støtteinnsendingar er operatørvedtak som ingen protokolltekst avgrensar. Ein revisjonsrapport dekkjer namngjevne komponentar innanfor eit oppgjeve omfang, og ei personvernfråsegn skildrar intensjonar og praksis; ingen av dei erstattar den andre, og ingen av dei er ei kryptografisk fråsegn.
Den presise konklusjonen er kumulativ: spesifikasjonen forklarer designet, bygget og konfigurasjonen forklarer tunnelen, og den dokumenterte praksisen til operatøren forklarer alt tunnelen aldri ser. Sei kva av dette du verifiserte, og påstanden vert verande sann.