Cina tutte le connessioni HTTPS che utilizzano il protocollo TLS 1.3 e l'estensione TLS ESNI (Encrypted Server Name Indication), garantendo la crittografia dei dati riguardanti l'host richiesto. Il blocco avviene sui router di transito, sia per le connessioni stabilite dalla Cina verso il mondo esterno, sia per quelle dal mondo esterno verso la Cina.
Per il blocco vengono scartati i pacchetti dal client al server, anziché inserire pacchetti con il flag RST, come avveniva in precedenza con il blocco selettivo basato sul contenuto SNI. Una volta attivato il blocco del pacchetto con ESNI, per un periodo di 120-180 secondi vengono bloccati anche tutti i pacchetti di rete corrispondenti alla coppia di IP sorgente, IP di destinazione e numero di porta di destinazione. Le connessioni HTTPS basate su versioni precedenti di TLS e TLS 1.3 senza ESNI sono consentite come al solito.
Ricordiamo che per consentire il funzionamento di più siti HTTPS su un unico indirizzo IP, è stata sviluppata l'estensione SNI, che consente la trasmissione del nome host in chiaro nel messaggio ClientHello, inviato prima dell'instaurazione di un canale di comunicazione crittografato. Questa caratteristica permette al fornitore di servizi Internet di filtrare selettivamente il traffico HTTPS e analizzare quali siti visita l'utente, il che non consente di raggiungere una completa riservatezza nell'uso di HTTPS.
La nuova estensione TLS ECH (precedentemente ESNI), che può essere utilizzata insieme a TLS 1.3, elimina questo difetto e esclude completamente la fuoriuscita di informazioni sul sito richiesto durante l'analisi delle connessioni HTTPS. In combinazione con l'utilizzo della rete di distribuzione dei contenuti, l'uso di ECH/ESNI consente anche di nascondere al fornitore l'indirizzo IP della risorsa richiesta. I sistemi di ispezione del traffico vedranno solo le richieste al CDN e non potranno applicare il blocco senza sostituire la sessione TLS, nel qual caso il browser dell'utente mostrerà una corrispondente notifica di sostituzione del certificato. Un possibile canale di fuoriuscita rimane il DNS, ma per nascondere le richieste DNS da parte del client, si può utilizzare DNS-over-HTTPS o DNS-over-TLS.
I ricercatori hanno già alcuni mezzi per eludere il blocco cinese sia dal lato client sia dal lato server, ma potrebbero perdere validità e devono essere considerati solo come misure temporanee. Ad esempio, attualmente vengono bloccati solo i pacchetti con l'identificatore dell'estensione ESNI 0xffce (encrypted_server_name), che è stato utilizzato in , ma attualmente passano i pacchetti con l'identificatore attuale 0xff02 (encrypted_client_hello), proposto in .
Un'altra opzione per eludere il blocco è l'uso di un processo di negoziazione della connessione non standard, ad esempio, il blocco non si attiva se viene inviata in anticipo un'ulteriore SYN con un numero di sequenza errato, manipolazioni con i flag di frammentazione dei pacchetti, l'invio di un pacchetto con i flag FIN e SYN impostati simultaneamente, l'inserimento di un pacchetto RST con un checksum errato o l'invio, prima dell'instaurazione della connessione, di un pacchetto con flag SYN e ACK. I metodi descritti sono già stati implementati sotto forma di plugin per strumenti , per oltrepassare i metodi di censura.
Fonte: opennet.ru
