¿Se pueden tomar las huellas digitales de los clientes de BitTorrent?

10

Como lo demuestra enlace , los navegadores web son muy propensos a la toma de huellas dactilares, tanto activos como pasivos (a menudo, puede hacer huellas digitales en un navegador web simplemente monitoreando el cable).

Mi pregunta es: ¿Es lo mismo posible con los clientes de BitTorrent?

Mi investigación hasta ahora sugiere que la "dirección" de DHT puede ser persistente y / o revelar la lista de hashes de información que tiene el cliente de torrent, por lo que las huellas dactilares pasivas son triviales, porque las listas de hashes de información son casi únicas. ¿Es esto cierto?

También recuerdo haber leído que se puede obtener de forma remota la lista de todos los hashes de información que se encuentran actualmente en el cliente de bittorrent, incluso si algunos de ellos están en pausa, en la mayoría de los clientes. Esto sugiere una posibilidad activa de huellas dactilares. Aunque no pude encontrar la fuente.

La cadena de la versión del cliente también proporciona cierta información, aunque es demasiado poca para ser la única fuente de información de huellas dactilares.

Es huellas digitales de comportamiento basadas en el flujo una amenaza en caso de los clientes de BitTorrent?

¿Hay alguna otra fuente de información que pueda usarse para la toma de huellas dactilares que no conozco?

    
pregunta Shnatsel 09.06.2013 - 11:39
fuente

1 respuesta

13

Una vez que se inicia, un cliente de BitTorrent genera un identificador de 20 bytes llamado peer_id , que consiste en ClientIdentifierClientVersion-RandomNumbers . Por supuesto, ClientIdentifier y ClientVersion no proporcionan ninguna identificación, pero RandomNumbers podría usarse para identificar a un cliente, y hay algunas cosas que deben entenderse:

  • El peer_id podría ser cualquier cosa que los clientes quieran enviar. El protocolo no define cómo debe generarse, ni tampoco cómo debe estructurarse.

  • El cliente le da su peer_id a quien lo solicite (es parte del saludo).

  • La configuración del indicador no_peer_id permite que la comunicación se realice sin necesidad de revelar el peer_id .

  • El peer_id se genera cada vez que se reinician los clientes. uTorrent 3.3 incluso genera un nuevo peer_id mientras se ejecuta de vez en cuando.

Sin embargo, BitTorrent utiliza un DHT llamada Kademlia , que es una gran noticia para los investigadores de seguridad (acosadores AKA). Hace un tiempo, he analizado uTorrent y Transmission, ambos utilizan el cifrado para DHT / PEX (si está habilitado y forzado).

Cuando un cliente ingresa a la "red" de DHT, arranca conectándose a un servidor de arranque. Esto suele suceder la primera vez que ejecuta un nuevo cliente. Pero eso no es lo único que sucede cuando arranca Kademlia.

Cuando un cliente se une a la red, se le asigna un identificador generado aleatoriamente llamado node ID . Este ID de nodo se elige aleatoriamente del mismo espacio de 160 bits que los 'hashes de información' de BitTorrent. En cualquier momento, puede borrar su información de DHT y volver a unirse a la red, lo que le daría un nuevo identificador. Dado que no hay muchos usuarios que lo hagan, puedes contar relativamente con él como un identificador.

Para obtener el node ID de un cliente, es suficiente enviarles un mensaje DHT ping , y responderá con su ID

{"t":"T_ID", "y":"q", "q":"ping", "a":{"id":"THE_SENDER_ID "}}

  • t es el ID de transacción, identifica el mensaje y se devuelve con la respuesta
  • y es el tipo de mensaje y el valor "q" significa que es una consulta.
  • q es el tipo de consulta y aquí es una consulta de ping.
  • a representa los argumentos de la consulta. Aquí simplemente contiene la ID del nodo del remitente.

Un cliente respondería

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

el valor "r" para y significa que esto es una respuesta.

Esas son principalmente las dos formas de identificar un cliente proporcionado por el propio protocolo.

    
respondido por el Adi 09.06.2013 - 13:05
fuente

Lea otras preguntas en las etiquetas