Kaj dokazuje specifikacija protokola VPN in kaj ne
Specifikacija določa oblike sporočil, algoritme in predpostavke o grožnjah. Ne more jamčiti za gradnjo, ki ste jo namestili, niti za ravnanje operaterja z vašim računom.
Dokument protokola je pogodba med implementacijami, in pozorno branje vam pove, kaj bosta dve skladni strani izmenjali in katere lastnosti so nameravali oblikovalci zagotoviti. Ne pove vam, katera binarna datoteka teče na strežniku, s katerim se povezujete, kako je bil ta strežnik konfiguriran ali kaj se pozneje zgodi z zapisom vašega računa. To so tri različne vrste dokazov, in obravnavanje specifikacije kot vseh treh je pot, po kateri ime protokola začne opravljati delo, ki ga ne more opraviti. Ločevanje teh treh je celotna vaja.
Dokument je začetek argumenta, ne njegov zaključek.
Kaj dokument v resnici določa
Za WireGuard opis protokola določa rokovanje Noise IK, fiksni nabor primitivov, postavitve sporočil in transportno okvirjanje, ki nato prenaša pakete. Za IKEv2 je primerljiv artefakt RFC 7296, ki določa izmenjave, koristne obremenitve in pogajanja o predlogih. V obeh primerih je obseg natančen: sporočila, stroj stanj in predpostavke, pod katerimi veljajo varnostni cilji.
Izbirni načini otežijo branje. Lastnost, ki velja za eno rokovanje, morda ne velja za uvedbo z drugačno ureditvijo overjanja ali nadomestno konfiguracijo.
Kje se garancije ustavijo
Formalna analiza odgovarja na vprašanje o modelu. Delo pri preverjanju WireGuarda uporablja simbolični model v dokazovalniku Tamarin, ki lahko pokaže, da se zasnova pod svojimi predpostavkami upira določenim napadom; ne pokaže, da dobavljena implementacija v uporabniškem prostoru nima napake v varnosti pomnilnika. Prav v tej vrzeli med modelom in strojem živijo resnični incidenti. Brati dokaz kot potrdilo o implementaciji je kategorijska napaka.
Vnaprejšnja tajnost ponazarja isto mejo. Lastnost je odvisna od tega, da se ključi uničijo, kot predvideva protokol, in to je lastnost implementacije in njenega okolja, ne oblike sporočila. Zasnova, ki predpisuje izbris, tega ne more vsiliti na platformi, ki pomnilnik prenaša na disk.
Slojevite odvisnosti vrzel še povečajo: knjižnica TLS za tunelom, ki temelji na TLS, vmesnik jedra, ki ga uporablja tunel v uporabniškem prostoru, in generator naključnih števil so vsi zunaj besedila protokola.
Sledite bajtom do same gradnje
Pojdite od dokumenta do artefaktov tako, da prepoznate različice in jih nato primerjate s tem, kar v resnici streže prometu. Izdelek, ki imenuje protokol, lahko doda komponente za pripravo, telemetrijo in upravljanje, ki jih specifikacija nikoli ne opiše.
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
Ponovljive gradnje in objavljene kontrolne vsote omogočajo povezavo drevesa izvorne kode z distribuirano binarno datoteko. Brez te povezave objavljena izvorna koda dokazuje le, da je pregled mogoč, ne pa, da se izvajajoča datoteka z njo ujema.
Konfiguracija sodi k istemu koraku. Šifrirni nabori, dovoljene strani in nastavitve usmerjanja so odločitve uvajanja, in skladna gradnja, konfigurirana neprevidno, še vedno ustvari šibek tunel.
Operativne prakse držite ločeno
Zapisi računov, plačilni podatki in zahteve za podporo so odločitve operaterja, ki jih nobeno besedilo protokola ne omejuje. Poročilo o reviziji pokriva imenovane komponente v okviru navedenega obsega, pravilnik o zasebnosti pa opisuje namene in prakse; nobeno ne nadomešča drugega in nobeno ni kriptografska izjava.
Natančen zaključek je kumulativen: specifikacija razlaga zasnovo, gradnja in konfiguracija razlagata tunel, dokumentirane prakse operaterja pa razlagajo vse, česar tunel nikoli ne vidi. Povejte, kaj od tega ste preverili, in trditev ostane resnična.