Informazioni sull'agente utente dal flusso HTTPS

3

Stiamo categorizzando il traffico di rete, come determinare se si tratta di Facebook, Yahoo ecc.

Ora mi è stato chiesto anche di separare i dispositivi mobili (come iPad, Nexus, iPhone). È facile farlo in HTTP con le informazioni sull'agente utente.

Ma devo anche considerare il protocollo HTTPS. C'è un modo per ottenere informazioni su un dispositivo utente nei messaggi "client hello" o "certificato"?

    
posta Kadir Erdem Demir 14.06.2013 - 08:50
fonte

3 risposte

5

Se non stanno usando qualcosa come VPN o Proxy, dovresti essere in grado di controllare alcune cose con un'app come WireShark:

  1. Richieste DNS per diversi siti Web (prima che i dispositivi TLS o HTTPS di solito cerchino sul server). Per esempio. Facebook sta usando Akamai quindi se puoi catturare un pacchetto DNS associato a fb.*\.akamai\.net che ti darà sia gli IP (sia l'indirizzo MAC del client). Quindi puoi tracciare il traffico da quell'IP attraverso la sessione.
  2. Ricerca inversa IP (puoi controllare il registrante IP di un servizio esterno in una directory come ARIN ) - whois -h whois.arin.net 8.8.8.8
  3. Puoi cercare il produttore del dispositivo tramite l'indirizzo MAC
  4. Come stava dicendo Manishearth , puoi provare a catturare un agente utente dalla navigazione web sullo stesso IP durante la stessa sessione , quindi sposare user_agent con l'indirizzo MAC.
risposta data 14.06.2013 - 09:53
fonte
2

Non direttamente. Il messaggio Certificato è inviato dal server. ClientHello può aiutare a classificare le cose, in quanto diversi browser / dispositivi supportano diversi algoritmi.

Invece, può essere d'aiuto usare l'agente utente HTTP per associare un dispositivo a un indirizzo IP e quindi usare quel tag per le connessioni HTTPS.

    
risposta data 14.06.2013 - 09:10
fonte
0

SSL è progettato per tenere lontani gli intercettatori e, dalla descrizione del problema, vuoi essere un intercettatore ...

Nell'handshake, il messaggio Certificate proviene dal server, non dal client, quindi non imparerai i dettagli del client da quel messaggio. Di tutti i messaggi client, solo il ClientHello può insegnarti alcune cose, ma questo sarà limitato. Fondamentalmente, avrai l'elenco delle suite di crittografia supportate (con ordinamento), il supporto per la compressione e la presenza o l'assenza di estensioni SSL (ad esempio Server Indicazione del nome ). Tali parametri dipendono dal browser e dal sistema operativo, ma con solo poche varianti, quindi non aspettatevi miracoli. Se il browser client è Firefox, ha una propria libreria SSL (chiamata NSS), ma non sarà possibile distinguere tra Firefox su uno smartphone Android e Firefox su una macchina Windows. Altrimenti, potresti sperare di riconoscere i sistemi Apple (iPad, iPhone, Mac OS X), Windows e Android / Linux come tre diversi gruppi, ma non otterrai maggiori dettagli. Se conosci il sistema operativo del client e i tipi di browser, potresti essere in grado di calcolare la versione approssimativa in base alla presenza o all'assenza di alcune opzioni.

Almeno alcune persone hanno giocato con l'idea di raccogliere informazioni ClientHello SSL da molti browser per cercare di elaborare tipi e versioni di browser / SO. Per esempio. vedi queste pagine da Qualys SSL Labs. Questo sembra essere ancora allo stadio concettuale (e non sviluppato attivamente).

    
risposta data 16.05.2014 - 23:35
fonte

Leggi altre domande sui tag