Dokument protokola ugovor je između implementacija, i pažljivo čitanje govori vam što će dva usklađena partnera razmijeniti i koja su svojstva dizajneri namjeravali zajamčiti. Ne govori vam koja binarna datoteka radi na poslužitelju na koji se povezujete, kako je taj poslužitelj konfiguriran ni što se poslije događa sa zapisom vašeg računa. To su tri različite vrste dokaza, a tretiranje specifikacije kao sva tri način je na koji ime protokola počinje raditi posao koji ne može. Razdvajanje tih triju cijela je vježba.

Dokument je početak argumenta, ne njegov zaključak.

Što dokument zapravo specificira

Za WireGuard, opis protokola definira Noise IK rukovanje, fiksni skup primitiva, izglede poruka i transportno uokvirivanje koje poslije nosi pakete. Za IKEv2 usporediv je artefakt RFC 7296, koji specificira razmjene, korisna opterećenja i pregovaranje prijedloga. U oba slučaja opseg je precizan: poruke, stroj stanja i pretpostavke pod kojima sigurnosni ciljevi vrijede.

Neobavezni načini rada kompliciraju čitanje. Svojstvo koje vrijedi za jedno rukovanje možda se ne odnosi na postavljanje s drukčijim rasporedom autentifikacije ili pričuvnom konfiguracijom.

Gdje jamstva prestaju

Formalna analiza odgovara na pitanje o modelu. WireGuardov rad na verifikaciji rabi simbolički model u Tamarin dokazivaču, koji može pokazati da se dizajn odupire određenim napadima pod svojim pretpostavkama; ne pokazuje da isporučena implementacija u korisničkom prostoru nema grešku sigurnosti memorije. Taj jaz između modela i stroja mjesto je gdje žive stvarni incidenti. Čitati dokaz kao certifikat implementacije kategorijska je pogreška.

Tajnost unaprijed ilustrira istu granicu. Svojstvo ovisi o tome da se ključevi unište kako protokol predviđa, a to je svojstvo implementacije i njezina okruženja, a ne formata poruke. Dizajn koji propisuje brisanje ne može ga nametnuti na platformi koja prenosi memoriju na disk.

Slojevite ovisnosti dodatno šire jaz: TLS biblioteka iza TLS tunela, sučelje jezgre koje rabi tunel u korisničkom prostoru i generator slučajnih brojeva svi stoje izvan teksta protokola.

Pratite bajtove do builda

Prijeđite s dokumenta na artefakte tako što ćete identificirati verzije, a zatim ih usporediti s onim što stvarno poslužuje promet. Proizvod koji navodi protokol može dodati komponente za osiguravanje resursa, telemetriju i upravljanje koje specifikacija nikada ne opisuje.

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

Reproducibilni buildovi i objavljene kontrolne sume omogućuju povezivanje izvornog stabla s distribuiranom binarnom datotekom. Bez te veze, objavljeni izvor dokazuje samo da je pregled moguć, a ne da datoteka koja se izvršava odgovara njemu.

Konfiguracija pripada istom koraku. Skupovi šifri, dopušteni partneri i postavke usmjeravanja izbori su postavljanja, a usklađeni build konfiguriran nemarno i dalje daje slab tunel.

Držite operativne prakse odvojeno

Zapisi računa, podaci o plaćanju i zahtjevi za podrškom odluke su operatera koje nijedan tekst protokola ne ograničava. Revizorsko izvješće pokriva imenovane komponente u okviru navedenog opsega, a politika privatnosti opisuje namjere i prakse; nijedno ne zamjenjuje drugo i nijedno nije kriptografska izjava.

Precizan zaključak kumulativan je: specifikacija objašnjava dizajn, build i konfiguracija objašnjavaju tunel, a dokumentirane prakse operatera objašnjavaju sve što tunel nikada ne vidi. Recite što ste od toga provjerili i tvrdnja ostaje točna.

Povezani članci