I client BitTorrent possono essere rilevati con le impronte digitali?

10

Come dimostra link , i browser Web sono molto inclini alle impronte digitali, sia attive che passive (spesso è possibile impronte digitali di un browser Web semplicemente monitoraggio del filo).

La mia domanda è: Lo stesso è possibile con i client BitTorrent?

La mia ricerca finora suggerisce che l'"indirizzo" DHT potrebbe essere persistente e / o rivelare l'elenco di hash di informazioni che il client torrent ha, rendendo così banali le impronte digitali passive, perché le liste di hash delle informazioni sono quasi uniche. È vero?

Ricordo anche di aver letto che è possibile ottenere da remoto l'elenco di tutti gli hash di informazioni attualmente nel client bittorrent, anche se alcuni di essi sono in pausa, nella maggior parte dei client. Ciò suggerisce una possibilità attiva di rilevamento delle impronte digitali. Non sono riuscito a trovare la fonte però.

La stringa di versione del client fornisce anche alcune informazioni, anche se troppo poco per servire come unica fonte di informazioni sulle impronte digitali.

È fingerprinting basato sul flusso una minaccia in caso di client BitTorrent?

Ci sono altre fonti di informazione che possono essere utilizzate per le impronte digitali di cui non sono a conoscenza?

    
posta Shnatsel 09.06.2013 - 11:39
fonte

1 risposta

13

Una volta avviato, un client BitTorrent genera un identificatore di 20 byte chiamato peer_id , costituito da ClientIdentifierClientVersion-RandomNumbers . Certo, ClientIdentifier e ClientVersion non forniscono alcuna identificazione, ma il RandomNumbers potrebbe essere usato per identificare un cliente, e ci sono alcune cose che devono essere capite:

  • Il peer_id potrebbe essere qualsiasi cosa desideri dai clienti, quindi inviare. Il protocollo non definisce come dovrebbe essere generato, né definisce come dovrebbe essere strutturato.

  • Il client assegna il suo peer_id a chi lo richiede (fa parte dell'handshake).

  • L'impostazione del flag no_peer_id consente che la comunicazione avvenga senza la necessità di rivelare peer_id .

  • Il peer_id viene generato ogni volta che viene riavviato il client. uTorrent 3.3 genera anche un nuovo peer_id mentre è in esecuzione di tanto in tanto.

Tuttavia, BitTorrent utilizza un DHT chiamato Kademlia , che è un'ottima notizia per le ricerche sulla sicurezza (stalker dell'AKA). Qualche tempo fa, ho analizzato uTorrent e Transmission, entrambi usano la crittografia per DHT / PEX (se abilitata e forzata).

Quando un client entra nella "rete" DHT esegue il bootstrap connettendosi ad un server bootstrap. Questo di solito accade la prima volta che si esegue un nuovo client. Ma questa non è l'unica cosa che succede quando si avvia Kademlia.

Quando un client si unisce alla rete, viene assegnato un identificatore generato in modo casuale chiamato node ID . Questo ID di nodo viene scelto casualmente dallo stesso spazio a 160 bit degli "hash di informazioni" di BitTorrent. In qualsiasi momento, puoi cancellare le tue informazioni DHT e ricongiungerti alla rete, il che ti darebbe un nuovo identificatore. Poiché non molti utenti lo fanno, puoi contare su di esso come identificatore.

Per ottenere node ID di un cliente è sufficiente inviare loro un messaggio% d_di% DHT, e risponderà con il suo ID

ping "}}

  • {"t":"T_ID", "y":"q", "q":"ping", "a":{"id":"THE_SENDER_ID è ID transazione, identifica il messaggio e viene rinviato con la risposta
  • t è il tipo di messaggio e il valore y indica che si tratta di una query.
  • "q" è il è il tipo della query e qui è una query ping.
  • q rappresenta gli argomenti della query. Qui contiene semplicemente l'ID del nodo del mittente.

Un client risponderà

Response = {"t":"T_ID", "y":"r", "r": {"id":"MY_ID"}}

il valore a per "r" significa che questa è una risposta.

Questi sono principalmente i due modi per identificare un client fornito dal protocollo stesso.

    
risposta data 09.06.2013 - 13:05
fonte

Leggi altre domande sui tag