Meek e domain fronting: il bridge Tor che si nasconde dentro una CDN
Ogni tipo di bridge in Tor Browser è un esercizio di travestimento, ma meek prende la strada più ambiziosa: non rimodella affatto il traffico Tor, lo trasporta semplicemente come corpo di richieste HTTPS ordinarie destinate a una grande rete di distribuzione dei contenuti. La tecnica sottostante, il domain fronting, un tempo era disponibile presso tutti i grandi fornitori cloud. Un decennio dopo il suo debutto, sopravvive essenzialmente presso uno solo, e il deployment meek-azure è l'ultimo di quella famiglia di bridge ancora presente nel menu.
Come il domain fronting nasconde una connessione Tor
La debolezza che il domain fronting sfrutta è che un handshake TLS consegna al censore un'etichetta comoda: il campo Server Name Indication nomina il sito visitato. Lo studio del 2015 di David Fifield e colleghi che portò la tecnica nell'aggiramento della censura descrive come il fronting rompa quel legame. Un dominio appare all'esterno di una richiesta HTTPS, nella query DNS e nell'handshake TLS, mentre un dominio diverso appare all'interno, nell'header Host di HTTP. Il censore vede solo la facciata. L'header Host è invisibile al censore ma visibile al CDN che riceve la richiesta, che lo legge e inoltra la connessione alla vera destinazione. Bloccare il traffico significherebbe bloccare un sito web ordinario e molto frequentato insieme a tutti i suoi utenti legittimi. meek trasforma quell'idea in un bridge. Il client incarta pezzi di traffico Tor in richieste POST HTTP e le spinge attraverso un CDN con fronting verso un bridge che esegue meek-server, dove un identificatore di sessione rimonta il flusso; quando non c'è nulla in sospeso, il client continua a inviare poll vuoti perché la connessione non taccia. Nel progetto originale quelle richieste venivano addirittura condotte attraverso un vero motore di browser, ed è per questo che lo studio poteva dire del traffico risultante che sembra un browser, perché è un browser.2018: le porte si chiudono
Tutto lo schema riposava sulla tolleranza dei fornitori cloud verso lo scostamento tra i due livelli, e nel 2018 hanno smesso. Secondo il racconto di Signal, Google diede 30 giorni di preavviso ponendo fine al supporto del domain fronting dopo che Signal aveva usato il fronting di App Engine per raggiungere utenti in Iran, che la lettura di Google stessa della legge sanzionaria statunitense aveva già tagliati fuori. Settimane dopo, il 27 aprile 2018, Amazon scrisse a Signal avvertendo che non aveva il permesso di usare il dominio Souq.com come facciata, minacciando la sospensione dell'account CloudFront e introducendo le Enhanced Domain Protections che posero fine al fronting su tutto il CDN. Il Tor Project riferì quello stesso mese che entrambe le società stavano tirando la spina e che meek era diventato inutilizzabile attraverso le loro reti; Access Now contò circa una dozzina di strumenti per i diritti umani colpiti, Signal e Telegram compresi. La conclusione di Signal fu secca: il domain fronting come tecnica di aggiramento della censura era diventato in gran parte non vitale, e la sua osservazione finale catturò perché gli spegnimenti non costarono nulla ai censori."...non hanno dovuto fare altro che aspettare." - Signal, maggio 2018
Perché meek-azure è sopravvissuto
Un fornitore non si unì alla ritirata. Il Tor Project notò all'epoca che il cloud Azure di Microsoft consentiva ancora il domain fronting, e lo studio del 2015 aveva già osservato una ragione strutturale: il CDN di Azure inoltra le richieste solo a domini affiliati ad Azure, mentre il CloudFront di Amazon inoltrava pressoché ovunque. Il deployment Azure di meek si trova interamente dentro quel perimetro, con il suo endpoint ospitato sul CDN di Azure dietro un dominio frontale controllato da Microsoft, così che la richiesta non passa mai tra aziende non correlate. Una volta che Google e Amazon smisero di permettere che il nome visibile e la destinazione reale divergessero, quella tolleranza interna bastò. Il Tor Project avvertì fin dall'inizio di non aver ricevuto alcun preavviso degli altri spegnimenti, e che anche la politica di Azure poteva cambiare, una riserva che accompagna meek-azure da allora.Il prezzo di nascondersi in piena vista
Le proprietà che rendono meek difficile da bloccare lo rendono anche lento e costoso. L'hop CDN in più e il design guidato dalle richieste ridussero le velocità di download misurate di un fattore di circa due-tre nello studio del 2015, e l'attuale documentazione di supporto di Tor è ancora più diretta: meek ha una limitazione di banda, quindi l'opzione sarà piuttosto lenta. Il denaro è l'altro vincolo. Qualcuno paga i corrispettivi di uscita del CDN per ogni byte che un bridge meek sposta, e la fattura del deployment originale ammontava a 565 dollari su Azure, 3.292 su Google App Engine e 3.793 su CloudFront nel corso dello studio. I ricercatori avvertirono anche che un avversario poteva gonfiare quella fattura a piacere, il problema di denial of service finanziario dimostrato quando il Great Cannon scaricò decine di migliaia di dollari di costi di banda sull'hosting cloud delle sue vittime.Quando meek è la scelta giusta
Per la maggior parte degli utenti censurati meek è una riserva, non una prima scelta. Le indicazioni attuali di Tor per la Cina suggeriscono prima WebTunnel ed elencano meek e Snowflake come riserve in caso di fallimento. Le opzioni principali fanno ciascuna un compromisso diverso:- obfs4 mescola il traffico ed è veloce e gratuito, ma ogni bridge è un server individuale il cui indirizzo può trapelare o essere scansionato.
- Snowflake prende in prestito proxy effimeri da volontari, facile da scalare ma di velocità variabile.
- WebTunnel fa sembrare Tor una normale connessione HTTPS a un server web senza necessitare della cooperazione di un gigante del CDN.
- meek si nasconde dietro uno dei domini più trafficati del web e sopravvive alle whitelist più rigide, a bassa velocità.










