Nascondi SNI chiaro quando si utilizza https

6

Un server con indirizzo IP a.b.c.d ospita più siti Web SSL.

Durante la connessione a ciascun sito Web, un browser appropriato invia una richiesta che include l'host di destinazione in un testo chiaro non crittografato noto come SNI, ad esempio example.com .

Dopo una connessione SSL andata a buon fine, il resto dei dati viene trasmesso con il certificato corrispondente.

Il problema è che l'SNI inviato dal browser sarà registrabile da qualsiasi MITM e quindi bloccabile da un governo.

Come posso evitare che l'altro capo scopra quale sito web sto visitando sul server?

(Ovviamente non usando VPN o proxy.)

    
posta DRS David Soft 27.03.2017 - 02:15
fonte

3 risposte

12

Non è possibile nascondere le informazioni SNI se il server lo richiede per servire il certificato corretto. C'è stata una discussione sulla crittografia di queste informazioni in TLS 1.3. Ma questa idea è stata abbandonata poiché ciò richiederebbe la creazione di un ulteriore livello di crittografia e quindi l'aggiunta di un sovraccarico aggiuntivo alla creazione della connessione. A parte questo, queste informazioni potrebbero comunque fuoriuscire a causa delle ricerche DNS e naturalmente anche attraverso il certificato inviato dal server, il che è evidente. Quindi, se vuoi proteggere meglio la tua privacy, devi utilizzare un ulteriore livello di crittografia, come una VPN.

Per maggiori dettagli vedi anche

risposta data 27.03.2017 - 06:24
fonte
3

How do I prevent the other end from finding out which website I'm visitting on the server?

(Obviously not by using VPN or proxies.)

Hai identificato il metodo principale.

In teoria, è possibile inviare un nome host come parte di SNI e uno diverso nell'intestazione dell'Host http. Tuttavia, Apache almeno ti impedisce di farlo .

    
risposta data 27.03.2017 - 02:43
fonte
3

Potrebbe essere possibile inviare la richiesta senza SNI.

Purché il server di destinazione non disponga di applicazioni di rete SSL (ad esempio, bilanciamento del carico SSL non decrittografante o proxy inverso) che utilizza SNI per reindirizzare le connessioni al server corretto e il server dispone di un singolo certificato SAN o jolly che copre tutti i servizi ospitati lì, il server dovrebbe essere in grado di gestire le richieste senza SNI.

    
risposta data 27.03.2017 - 05:09
fonte

Leggi altre domande sui tag