A protokoll-dokumentum szerződés a megvalósítások között, és figyelmes olvasása megmondja, mit fognak kicserélni két megfelelő fél, és milyen tulajdonságokat szándékoztak a tervezők biztosítani. Nem mondja meg, melyik bináris fájl fut azon a kiszolgálón, amelyhez csatlakozik, hogyan konfigurálták azt a kiszolgálót, vagy mi történik később a fiókja rekordjával. Ez három különböző fajta bizonyíték, és a specifikáció mindháromként kezelése az az út, amelyen egy protokollnév elkezd olyan munkát végezni, amelyet nem tud elvégezni. A három szétválasztása az egész gyakorlat.

A dokumentum egy érv kezdete, nem a következtetése.

Mit határoz meg valójában a dokumentum

A WireGuard esetében a protokoll leírása definiál egy Noise IK kézfogást, primitívek rögzített halmazát, üzenetelrendezéseket és azt a szállítási keretezést, amely később a csomagokat viszi. Az IKEv2 esetében az összehasonlítható artefaktum az RFC 7296, amely meghatározza a cseréket, a hasznos terheket és a javaslatok egyeztetését. Mindkét esetben a hatókör pontos: az üzenetek, az állapotgép és azok a feltevések, amelyek mellett a biztonsági célok érvényesek.

Az opcionális módok bonyolítják az olvasást. Egy kézfogásra érvényes tulajdonság nem feltétlenül érvényes egy más hitelesítési elrendezésű vagy tartalék konfigurációjú telepítésre.

Ahol a garanciák véget érnek

A formális elemzés egy modellre vonatkozó kérdésre válaszol. A WireGuard ellenőrzési munkája szimbolikus modellt használ a Tamarin bizonyítóban, amely megmutathatja, hogy a tervezés feltevései mellett ellenáll bizonyos támadásoknak; azt nem mutatja meg, hogy egy leszállított felhasználói térbeli megvalósításnak nincs memóriabiztonsági hibája. Valós incidensek éppen ebben a modell és gép közötti résben élnek. Egy bizonyíték megvalósítási tanúsítványként való olvasása kategóriahiba.

A továbbítási titoktartás ugyanezt a határt szemlélteti. A tulajdonság attól függ, hogy a kulcsokat a protokoll szándéka szerint megsemmisítik, és ez a megvalósítás és környezetének tulajdonsága, nem az üzenetformátumé. Egy törlést előíró tervezés nem tudja ezt érvényesíteni olyan platformon, amely a memóriát lemezre lapozza.

A rétegzett függőségek tovább szélesítik a rést: a TLS-alapú alagút mögötti TLS-könyvtár, a felhasználói térbeli alagút által használt kernelinterfész és a véletlenszám-generátor mind a protokollszövegen kívül állnak.

Kövesse a bájtokat a buildig

Lépjen a dokumentumtól az artefaktumokhoz úgy, hogy azonosítja a verziókat, majd összehasonlítja őket azzal, ami valójában a forgalmat kiszolgálja. Egy protokollt megnevező termék hozzáadhat olyan kiépítési, telemetriai és kezelési összetevőket, amelyeket a specifikáció soha nem ír le.

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

A reprodukálható buildek és a közzétett ellenőrzőösszegek lehetővé teszik egy forrásfa és egy terjesztett bináris fájl összekapcsolását. E kapcsolat nélkül a közzétett forrás csak azt bizonyítja, hogy az ellenőrzés lehetséges, nem azt, hogy a futó fájl megfelel neki.

A konfiguráció ugyanahhoz a lépéshez tartozik. A titkosítási csomagok, az engedélyezett felek és az útválasztási beállítások telepítési döntések, és egy gondatlanul konfigurált megfelelő build még mindig gyenge alagutat hoz létre.

Tartsa külön az üzemeltetési gyakorlatokat

A fiókrekordok, a fizetési adatok és a támogatási kérelmek olyan üzemeltetői döntések, amelyeket egyetlen protokollszöveg sem korlátoz. Egy auditjelentés megnevezett összetevőket fed le egy megadott hatókörben, az adatvédelmi irányelv pedig szándékokat és gyakorlatokat ír le; egyik sem helyettesíti a másikat, és egyik sem kriptográfiai állítás.

A pontos következtetés kumulatív: a specifikáció a tervezést magyarázza, a build és a konfiguráció az alagutat magyarázzák, az üzemeltető dokumentált gyakorlatai pedig mindent, amit az alagút soha nem lát. Mondja meg, melyiket ellenőrizte ezek közül, és az állítás igaz marad.

Kapcsolódó cikkek