Gli URL sono visualizzati durante le transazioni HTTPS verso uno o più siti Web da un singolo IP distinguibile?

60

Ad esempio, supponiamo che i seguenti URL siano HTTPS a due siti Web di un IP su 5 minuti: "A.com/1", "A.com/2", "A.com/3", "B.com/1", "B.com/2".

Il monitoraggio dei pacchetti potrebbe rivelare:

  • nulla,
  • rivela che solo l'IP aveva visitato "A.com" e "B.com" (che significa solo DNS),
  • rivela che solo l'IP ha visitato "A.com/1" e "B.com/1" (la prima richiesta HTTPS per ciascun sito),
  • mostra un elenco completo di tutti gli URL HTTPS visitati,
  • mostra solo gli IP di "A.com" e "B.com",
  • o qualcos'altro?

Domanda correlata la mia azienda può vedere quali siti HTTPS sono andato a ?

Sebbene questa domanda abbia informazioni aggiuntive, per quanto sono in grado di dire non si riferisce specificamente allo scenario di "rivelare solo l'IP che ha visitato" A.com/1 "e" B.com/1 " (la prima richiesta HTTPS per ogni sito) "- anche se la possibilità di sbagliare su questo è alta, e felice di cancellare la domanda se si tratta di un duplicato.

NOTA: questa è una domanda successiva a un risposta che è stato pubblicato come: Perché HTTPS non è il protocollo predefinito?

    
posta blunders 06.06.2011 - 14:22
fonte

3 risposte

72

TLS rivela a un intercettore le seguenti informazioni:

  • il sito che stai contattando
  • la lunghezza (possibilmente approssimativa) del resto dell'URL
  • la lunghezza (possibilmente approssimativa) dell'HTML della pagina che hai visitato (supponendo che non sia memorizzata nella cache)
  • il numero (possibilmente approssimativo) di altre risorse (ad es. immagini, iframe, fogli di stile CSS, ecc.) sulla pagina che hai visitato (supponendo che non siano memorizzati nella cache)
  • il momento in cui ogni pacchetto viene inviato e ogni connessione viene avviata. (@nealmcb sottolinea che l'intercettatore impara un lotto sui tempi: l'ora esatta in cui è stata avviata ogni connessione, la durata della connessione, il tempo di invio di ciascun pacchetto e il momento in cui è stata inviata la risposta, il tempo per il server di rispondere a ciascun pacchetto, ecc.)

Se interagisci con un sito Web facendo clic su collegamenti in serie, l'intercettatore può vedere ciascuno di questi per ogni clic sulla pagina web. Questa informazione può essere combinata per cercare di dedurre quali pagine stai visitando.

Pertanto, nel tuo esempio, TLS rivela solo A.com vs B.com, perché nel tuo esempio, il resto dell'URL ha la stessa lunghezza in tutti i casi. Tuttavia, il tuo esempio è stato scelto male: non è rappresentativo della pratica tipica sul web. Di solito, le lunghezze degli URL su un determinato sito variano e quindi rivelano informazioni sull'URL a cui si sta accedendo. Inoltre, anche le lunghezze delle pagine e il numero di risorse variano, il che rivela ancora più informazioni.

Sono state condotte ricerche che suggeriscono che queste perdite possono rivelare informazioni sostanziali agli intercettatori su quali pagine si stanno visitando. Pertanto, dovresti non presumere che TLS nasconda le pagine che stai visitando da un intercettatore. (Capisco che questo è controintuitivo.)

Aggiunto: Ecco alcune citazioni per alcune ricerche nella letteratura sull'analisi del traffico di HTTPS:

risposta data 07.06.2011 - 21:02
fonte
18

La seconda scelta. Per lo più.

Quando un browser visita un sito Web HTTPS, stabilisce un tunnel TLS , che implica uno scambio di chiavi asimmetriche (client e il server concordano su un segreto condiviso). Questo meccanismo di scambio delle chiavi utilizza la chiave pubblica del server, che il server mostra come parte del suo certificato. Il certificato del server contiene il nome del server (ad esempio A.com ) e il client verifica che il nome corrisponda a quello che si aspetta (ovvero il nome del server nell'URL). Il certificato del server viene inviato, fatalmente, prima dello scambio di chiavi, quindi in bella vista.

Il resto dell'URL viene inviato come parte della richiesta HTTP che si verifica all'interno del tunnel crittografato, quindi invisibile a terzi. Un determinato tunnel può essere riutilizzato per diverse altre richieste HTTP, ma (per costruzione) sono tutte per lo stesso server (lo stesso nome di dominio).

    
risposta data 06.06.2011 - 15:11
fonte
-3

Questa è in realtà una domanda vaga. Ecco perché. Quando si accede a un server https, http (qui si vede che https è semplicemente http su TLS) è uno strato superiore rispetto a TLS che viene eseguito al di sotto. La prima cosa che viene fatta è negoziare le impostazioni TLS, come la suite di crittografia, le chiavi, l'handshake, ecc. Ciò avviene sulla porta https, ma non ci sono ancora dati http. Quindi il client o il server passa alla modalità di crittografia in cui tutto è crittografato.

Una volta terminata la negoziazione, si passa ai dati dell'applicazione che è semplicemente un vecchio protocollo HTTP come payload.

Ma questi dati sono crittografati quindi non vengono mostrati URL. Tuttavia, come è noto, l'indirizzo IP del server e del client NON è crittografato perché non viene utilizzato nel livello TLS ma è il livello IP che si trova sotto TLS e questo livello inferiore. TLS è il payload del pacchetto IP che contiene l'indirizzo IP, il numero di porta, il protocollo IP come tcp, ecc. Come intestazioni. Pertanto, poiché solo TLS è crittografato, questi elementi non sono crittografati.

Inoltre, l'intercettazione non è un problema, a condizione che il certificato del server o del client possa essere "collegato" all'autorità di root o che disponga di un certificato valido.

Infine vorrei dire che TLS e quindi HTTPS sono in realtà un framework e un algoritmo per negoziare il massimo livello di sicurezza, in base alle preferenze client e server e ai framework minimi supportati. In sostanza, TLS non definisce la crittografia effettiva utilizzata. Si tratta di suite di crittografia che sono in genere regolate in un'impostazione di tipo RFC separata rispetto al protocollo TLS. Pertanto, sulla base del solo HTTPS, non è sufficiente affermare la qualità della sicurezza nelle aree che fornisce. Si può presumere solo una minima sicurezza e difficoltà. La qualità effettiva delle suite di crittografia è una domanda complessa e specifica per ogni tipo, poiché molti si affidano a meccanismi completamente diversi.

Modifica Inoltre è stato portato alla mia attenzione che l'estensione del TLS del Server Name Indicator (utilizzato per più server che condivide un indirizzo IP) di TLS rende facilmente a chiunque il nome di dominio del server a cui si accede. Solo nei primi messaggi inviati al server, un campo conterrà il testo ASCII del nome di dominio come "google.com". Quindi questa informazione è facilmente visibile da chiunque controlli il primo pacchetto. Questa è una scelta che è comune tra molti host di siti web in questi giorni. Ma nessun URL dovrebbe essere non protetto.

Infine dipende in realtà dai semi di crittografia, non sono tutti uguali, come la suite di crittografia predefinita che non è crittografia. Quindi chiunque vedrebbe semplicemente http se il browser e il sito Web sono configurati per supportare tali semi. Quindi, a seconda del browser Web e del server, ovunque solo dall'indirizzo IP, all'indirizzo IP e il nome del dominio (TLS con estensione SNI, a volte può essere elaborato anche altrove, che è meno facile), per tutto in altri casi a seconda dei punti di forza dei semi cifrari.

    
risposta data 13.01.2018 - 05:21
fonte

Leggi altre domande sui tag