Che cosa dimostra una specifica di protocollo VPN e che cosa no
Una specifica fissa formati dei messaggi, algoritmi e assunzioni sulle minacce. Non può garantire per la build che avete installato né per la gestione del vostro account da parte dell’operatore.
Un documento di protocollo è un contratto tra implementazioni, e leggerlo con attenzione vi dice che cosa si scambieranno due pari conformi e quali proprietà i progettisti intendevano garantire. Non vi dice quale binario è in esecuzione sul server a cui vi collegate, come è stato configurato quel server né che cosa accade poi al record del vostro account. Sono tre tipi diversi di prova, e trattare la specifica come se fosse tutti e tre è il modo in cui un nome di protocollo comincia a fare un lavoro che non può fare. Tenere separati i tre è l’intero esercizio.
Il documento è l’inizio di un’argomentazione, non la sua conclusione.
Che cosa specifica davvero il documento
Per WireGuard, la descrizione del protocollo definisce una stretta di mano Noise IK, un insieme fisso di primitive, layout dei messaggi e il framing di trasporto che poi trasporta i pacchetti. Per IKEv2 l’artefatto comparabile è l’RFC 7296, che specifica scambi, payload e la negoziazione delle proposte. In entrambi i casi l’ambito è preciso: i messaggi, la macchina a stati e le assunzioni sotto le quali valgono gli obiettivi di sicurezza.
Le modalità opzionali complicano la lettura. Una proprietà valida per una stretta di mano può non applicarsi a un dispiegamento con un’altra disposizione di autenticazione o una configurazione di riserva.
Dove si fermano le garanzie
Un’analisi formale risponde a una domanda su un modello. Il lavoro di verifica di WireGuard usa un modello simbolico nel dimostratore Tamarin, che può mostrare che il progetto resiste a certi attacchi date le sue assunzioni; non mostra che un’implementazione distribuita nello spazio utente non abbia un difetto di sicurezza della memoria. È in quello scarto tra modello e macchina che vivono gli incidenti reali. Leggere una prova come un certificato di implementazione è un errore di categoria.
La segretezza in avanti illustra lo stesso confine. La proprietà dipende dal fatto che le chiavi vengano distrutte come il protocollo intende, e questa è una proprietà dell’implementazione e del suo ambiente, non del formato del messaggio. Un progetto che prescrive la cancellazione non può imporla su una piattaforma che sposta la memoria su disco.
Le dipendenze a strati allargano ulteriormente lo scarto: la libreria TLS dietro un tunnel basato su TLS, l’interfaccia del kernel usata da un tunnel nello spazio utente e il generatore di numeri casuali stanno tutti fuori dal testo del protocollo.
Seguite i byte fin dentro la build
Passate dal documento agli artefatti identificando le versioni e confrontandole poi con ciò che serve davvero il traffico. Un prodotto che nomina un protocollo può aggiungere componenti di provisioning, telemetria e gestione che la specifica non descrive 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
Le build riproducibili e i checksum pubblicati rendono possibile collegare un albero dei sorgenti a un binario distribuito. Senza quel legame, il sorgente pubblicato dimostra solo che l’ispezione è possibile, non che il file in esecuzione vi corrisponda.
La configurazione appartiene allo stesso passo. Le suite di cifratura, i pari consentiti e le impostazioni di routing sono scelte di dispiegamento, e una build conforme configurata con negligenza produce comunque un tunnel debole.
Tenete separate le pratiche operative
I record degli account, i dati di pagamento e le richieste di assistenza sono decisioni dell’operatore che nessun testo di protocollo vincola. Un rapporto di audit copre componenti nominati entro un ambito dichiarato, e un’informativa sulla privacy descrive intenzioni e pratiche; nessuno dei due sostituisce l’altro, e nessuno dei due è un’affermazione crittografica.
La conclusione precisa è cumulativa: la specifica spiega il progetto, la build e la configurazione spiegano il tunnel, e le pratiche documentate dell’operatore spiegano tutto ciò che il tunnel non vede mai. Dite quale di questi avete verificato, e l’affermazione resta vera.