Pagare un tunnel non deve per forza significare presentare l'identità di fatturazione a ogni connessione. Una progettazione può verificare l'idoneità una volta, consegnare al cliente token crittografici e lasciare che il gateway accetti più tardi un token senza vedere l'account che gli sta dietro. Se questo nasconda davvero qualcosa dipende dalle scelte di emissione e riscatto, quindi trattalo come un esercizio di specifica in quattro sezioni e non come una funzione che accendi.

Separa la fase di acquisto dalla fase di sessione

L'architettura Privacy Pass nella RFC 9576 fornisce il vocabolario: un client, un attestatore, un emittente e un'origine. Il client dimostra una proprietà all'emittente e riceve dei token; più tardi ne presenta uno all'origine, che decide se servirlo. Applicata a una VPN, la proprietà attestata potrebbe essere una singola unità di accesso.

La fatturazione vede comunque ciò che serve al suo processo, e nessuno sostiene il contrario. L'obiettivo più ristretto è che il riscatto successivo non possa essere ricondotto all'acquisto che ha prodotto il token. È una proprietà concreta e verificabile, ed è quella che vale la pena scrivere.

Una stringa di trasporto dall'aspetto casuale non la fornisce. Se l'emittente conserva il valore accanto a un record del cliente e il gateway può chiedere quella corrispondenza, le due interazioni sono collegate da un database invece che dalla crittografia. La costruzione deve rendere l'emittente incapace di rispondere a quella domanda, e la distribuzione deve impedire all'emittente e al gateway di unire le loro vedute.

Decidi che cosa autorizza un token

«Un token compra l'accesso» non risponde quasi a nulla sul piano operativo. L'unità è una singola connessione, una quota di tempo o un volume? Un client che ha perso la risposta può riprendere la stessa concessione? Che cosa succede quando un dispositivo si riconnette durante un cambio di rete? Queste risposte decidono se la progettazione è utilizzabile, e ciascuna ha una conseguenza sulla privacy.

Reuse ruleWhat it buysWhat it leaks
Single use per connectionStrongest unlinkability between sessionsFrequent reissuance, more purchase-to-use timing pairs
Bounded time windowFewer tokens, reconnects workActivity inside the window is linkable
Long-lived grantOperationally simpleBehaves like an account reference with extra steps

Scegline una deliberatamente e scrivi accanto il comportamento in caso di guasto. Un client che riprova con un nuovo diritto dopo un timeout consuma un'altra unità, il che è insieme una sorpresa di fatturazione e un segnale sulla privacy.

Scrivi la politica di riutilizzo e revoca

La revoca è il punto in cui le progettazioni anonime di solito tradiscono la propria promessa. Annullare un abbonamento e invalidare token già emessi sono operazioni diverse, e un gateway che fa tranquillamente una ricerca dell'account per decidere non è più anonimo in quel momento.

Scegli una scadenza, un limite di emissione e una storia di revoca che stiano insieme. Poi controlla i registri del gateway stesso per cercare campi che reintroducano il collegamento che hai rimosso.

sudo grep -rIl --include='*.log' -e 'Bearer ' -e 'account_id' /var/log/vpn/

Quella ricerca elenca i file di log che contengono campi di token o di account, ed è il primo punto in cui una progettazione accurata perde in pratica. Un record di sessione che conserva il valore del token accanto a un identificatore di account annulla tutta la costruzione, e di solito arriva attraverso una modifica di debug che nessuno ha più rivisto.

Definisci anche che cosa conserva il gateway quando una sessione finisce. Durata, byte ed endpoint sono utili per le operazioni, e ciascuno di essi è un pezzo del puzzle che un osservatore vorrebbe avere. Mantieni breve il periodo di conservazione e breve l'elenco dei campi, poi riesamina entrambi quando una modifica di debug aggiunge una colonna. Nessuno nota un nuovo campo di log prima che sia lì da un anno.

Enuncia l'affermazione, poi le osservazioni che restano

Scrivi l'affermazione sulla privacy in una frase con le sue ipotesi: quale parte deve essere incapace di collegare quali contesti, e che cosa succede se l'emittente e il gateway confrontano gli appunti. Una progettazione che sopravvive a quella frase è riesaminabile; una descritta solo come «conoscenza zero» no.

Poi elenca ciò che resta visibile comunque. Indirizzi di origine, orari di connessione, dimensioni dei pacchetti e il semplice fatto che un acquisto sia avvenuto poco prima che comparisse l'unica nuova connessione restano tutti fuori dalla crittografia. Un singolo cliente che compra un'unità e si connette una volta è correlabile solo dal momento, e nessuna progettazione di token lo cambia.

Il risultato onesto è un collegamento più stretto tra account e utilizzo, non una sessione invisibile. Vale comunque la pena costruirlo, purché la documentazione lo dica e i registri operativi corrispondano all'affermazione.

Articoli correlati