porcellana
Il blocco viene effettuato rilasciando i pacchetti dal client al server, anziché mediante la sostituzione dei pacchetti RST precedentemente eseguita dal blocco selettivo del contenuto SNI. Dopo l'attivazione del blocco di un pacchetto con ESNI, anche tutti i pacchetti di rete corrispondenti alla combinazione di IP di origine, IP di destinazione e numero di porta di destinazione vengono bloccati per un periodo compreso tra 120 e 180 secondi. Le connessioni HTTPS basate su versioni precedenti di TLS e TLS 1.3 senza ESNI sono consentite come di consueto.
Ricordiamo che per organizzare il lavoro su un indirizzo IP di più siti HTTPS, è stata sviluppata l'estensione SNI, che trasmette il nome host in chiaro nel messaggio ClientHello trasmesso prima dell'installazione di un canale di comunicazione crittografato. Questa funzionalità consente da parte del provider Internet di filtrare selettivamente il traffico HTTPS e di analizzare quali siti apre l'utente, il che non consente di ottenere la completa riservatezza quando si utilizza HTTPS.
La nuova estensione TLS ECH (ex ESNI), che può essere utilizzata insieme a TLS 1.3, elimina questa lacuna ed elimina completamente la fuga di informazioni sul sito richiesto durante l'analisi delle connessioni HTTPS. In combinazione con l'accesso tramite una rete di distribuzione dei contenuti, l'utilizzo 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 alla CDN e non saranno in grado di applicare il blocco senza lo spoofing della sessione TLS, nel qual caso una notifica corrispondente sullo spoofing del certificato verrà mostrata nel browser dell'utente. Il DNS rimane un possibile canale di fuga, ma il client può utilizzare DNS-over-HTTPS o DNS-over-TLS per nascondere l'accesso DNS da parte del client.
I ricercatori lo hanno già fatto
Un'altra soluzione alternativa consiste nell'utilizzare un processo di negoziazione della connessione non standard, ad esempio il blocco non funziona se viene inviato in anticipo un pacchetto SYN aggiuntivo con un numero di sequenza errato, manipolazioni con flag di frammentazione dei pacchetti, invio di un pacchetto sia con FIN che SYN flag impostati, sostituzione di un pacchetto RST con una quantità di controllo errata o invio prima che inizi la negoziazione della connessione del pacchetto con i flag SYN e ACK. I metodi descritti sono già stati implementati sotto forma di plugin per il toolkit
Fonte: opennet.ru