Un document de protocol és un contracte entre implementacions, i llegir-lo amb atenció us diu què intercanviaran dos iguals conformes i quines propietats pretenien garantir els dissenyadors. No us diu quin binari s’executa al servidor al qual us connecteu, com es va configurar aquest servidor ni què passa després amb el registre del vostre compte. Són tres tipus diferents de proves, i tractar l’especificació com si fos les tres és com un nom de protocol comença a fer una feina que no pot fer. Mantenir les tres separades és tot l’exercici.

El document és el començament d’un argument, no la seva conclusió.

Què especifica realment el document

Per a WireGuard, la descripció del protocol defineix una encaixada de mans Noise IK, un conjunt fix de primitives, dissenys de missatge i l’enquadrament de transport que després transporta els paquets. Per a IKEv2, l’artefacte comparable és l’RFC 7296, que especifica intercanvis, càrregues útils i la negociació de propostes. En tots dos casos l’abast és precís: els missatges, la màquina d’estats i els supòsits sota els quals es compleixen els objectius de seguretat.

Els modes opcionals compliquen la lectura. Una propietat que es compleix per a una encaixada de mans pot no aplicar-se a un desplegament amb un altre arranjament d’autenticació o una configuració de reserva.

On s’aturen les garanties

Una anàlisi formal respon una pregunta sobre un model. La feina de verificació de WireGuard fa servir un model simbòlic al provador Tamarin, que pot mostrar que el disseny resisteix certs atacs sota els seus supòsits; no mostra que una implementació d’espai d’usuari distribuïda no tingui cap error de seguretat de memòria. Aquest buit entre el model i la màquina és on viuen els incidents reals. Llegir una prova com un certificat d’implementació és un error de categoria.

La confidencialitat cap endavant il·lustra la mateixa frontera. La propietat depèn que les claus es destrueixin tal com el protocol pretén, i això és una propietat de la implementació i del seu entorn, no del format del missatge. Un disseny que especifica l’esborrat no pot imposar-lo en una plataforma que envia la memòria al disc.

Les dependències per capes eixamplen encara més el buit: la biblioteca TLS darrere d’un túnel basat en TLS, la interfície del nucli que fa servir un túnel d’espai d’usuari i el generador de nombres aleatoris se situen tots fora del text del protocol.

Seguiu els bytes fins a la compilació

Passeu del document als artefactes identificant versions i comparant-les després amb allò que realment serveix trànsit. Un producte que anomena un protocol pot afegir components d’aprovisionament, telemetria i gestió que l’especificació no descriu mai.

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

Les compilacions reproduïbles i les sumes de comprovació publicades fan possible enllaçar un arbre de codi font amb un binari distribuït. Sense aquest enllaç, el codi publicat només demostra que la inspecció és possible, no que el fitxer en execució hi coincideixi.

La configuració pertany al mateix pas. Els conjunts de xifratge, els iguals permesos i els paràmetres d’encaminament són decisions de desplegament, i una compilació conforme configurada amb descuit encara produeix un túnel feble.

Manteniu les pràctiques operatives a part

Els registres de compte, les dades de pagament i les sol·licituds d’assistència són decisions de l’operador que cap text de protocol no restringeix. Un informe d’auditoria cobreix components anomenats dins d’un abast declarat, i una política de privadesa descriu intencions i pràctiques; cap substitueix l’altra i cap de les dues no és una afirmació criptogràfica.

La conclusió precisa és acumulativa: l’especificació explica el disseny, la compilació i la configuració expliquen el túnel, i les pràctiques documentades de l’operador expliquen tot allò que el túnel no veu mai. Digueu què n’heu verificat i l’afirmació es manté certa.

Articles relacionats