Wat ’n VPN-protokolspesifikasie bewys en nie bewys nie
’n Spesifikasie lê boodskapformate, algoritmes en bedreigingsaannames vas. Dit kan nie instaan vir die bou wat jy geïnstalleer het of die operateur se hantering van jou rekening nie.
’n Protokoldokument is ’n kontrak tussen implementasies, en as jy dit noukeurig lees, sien jy wat twee konformerende eweknieë sal uitruil en watter eienskappe die ontwerpers bedoel het om te geld. Dit sê nie vir jou watter binêre lêer op die bediener loop nie, hoe daardie bediener opgestel is nie, of wat later met jou rekeningrekord gebeur nie. Dit is drie verskillende soorte bewyse, en as jy die spesifikasie as al drie behandel, begin ’n protokolnaam werk doen wat dit nie kan doen nie. Om die drie uitmekaar te hou, is die hele oefening.
Die dokument is die begin van ’n argument, nie die gevolgtrekking daarvan nie.
Wat die dokument werklik spesifiseer
Vir WireGuard definieer die protokolbeskrywing ’n Noise IK-handskud, ’n vaste stel primitiewe, boodskapuitlegte en die vervoerraamwerk wat later pakkette dra. Vir IKEv2 is die vergelykbare dokument RFC 7296, wat uitruilings, nutsladinge en die onderhandeling van voorstelle spesifiseer. In albei gevalle is die omvang presies: die boodskappe, die toestandmasjien en die aannames waaronder die veiligheidsdoelwitte geld.
Opsionele modusse maak die lees ingewikkelder. ’n Eienskap wat vir een handskud geld, is dalk nie van toepassing op ’n ontplooiing met ’n ander verifikasie-reëling of ’n terugval-opset nie.
Waar die waarborge ophou
’n Formele ontleding beantwoord ’n vraag oor ’n model. WireGuard se verifikasiewerk gebruik ’n simboliese model in die Tamarin-bewyser, wat kan wys dat die ontwerp sekere aanvalle weerstaan gegewe sy aannames; dit wys nie dat ’n gelewerde gebruikersruimte-implementering geen geheueveiligheidsfout het nie. Daardie gaping tussen model en masjien is waar werklike voorvalle leef. Om ’n bewys as ’n implementeringsertifikaat te lees, is ’n kategorie-fout.
Voorwaartse geheimhouding illustreer dieselfde grens. Die eienskap hang daarvan af dat sleutels vernietig word soos die protokol beoog, en dit is ’n eienskap van die implementering en sy omgewing, nie van die boodskapformaat nie. ’n Ontwerp wat uitwissing voorskryf, kan dit nie afdwing op ’n platform wat geheue na skyf skryf nie.
Gelaagde afhanklikhede vergroot die gaping verder: die TLS-biblioteek agter ’n TLS-gebaseerde tonnel, die kernkoppelvlak wat ’n gebruikersruimte-tonnel gebruik, en die ewekansige getalgenerator lê almal buite die protokolteks.
Volg die grepe tot in die bou
Beweeg van dokument na artefakte deur weergawes te identifiseer en dit dan te vergelyk met wat werklik verkeer bedien. ’n Produk wat ’n protokol noem, kan voorsiening, telemetrie en bestuurskomponente byvoeg wat die spesifikasie nooit beskryf nie.
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
Herproduseerbare bousels en gepubliseerde kontrolesomme maak dit moontlik om ’n bronboom aan ’n verspreide binêre lêer te koppel. Sonder daardie skakel bewys gepubliseerde bron net dat inspeksie moontlik is, nie dat die lopende lêer daarmee ooreenstem nie.
Opstelling hoort in dieselfde stap. Syferreekse, toegelate eweknieë en roeteringinstellings is ontplooiingskeuses, en ’n konformerende bou wat sorgeloos opgestel is, lewer steeds ’n swak tonnel.
Hou bedryfspraktyke apart
Rekeningrekords, betalingsdata en ondersteuningsbydraes is operateurbesluite wat geen protokolteks beperk nie. ’n Ouditverslag dek genoemde komponente teen ’n gestelde omvang, en ’n privaatheidsbeleid beskryf bedoelings en praktyke; nie een vervang die ander nie, en nie een is ’n kriptografiese verklaring nie.
Die presiese gevolgtrekking is opbouend: die spesifikasie verduidelik die ontwerp, die bou en opstelling verduidelik die tonnel, en die operateur se gedokumenteerde praktyke verduidelik alles wat die tonnel nooit sien nie. Sê watter van dié jy geverifieer het, en die bewering bly waar.