Changeset 10165
- Timestamp:
- 01/10/08 03:42:18 (2 years ago)
- Files:
-
- 1 modified
-
dotorg/trunk/html/tracker_peer_obfuscation.rst (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
dotorg/trunk/html/tracker_peer_obfuscation.rst
r9851 r10165 2 2 ================================== 3 3 4 This exten sion extends the tracker protocol to support simple obfuscation4 This extends the tracker protocol to support simple obfuscation 5 5 of the peers it returns, using the info hash as a shared secret between 6 6 the peer and the tracker. The obfuscation does not provide any security 7 7 against eavesdroppers that know the info-hash of the torrent, it does 8 however make it a lotharder for an eavesdropper to listen on tracker8 however make it a harder for an eavesdropper to listen on tracker 9 9 traffic in general to pick up the responses. 10 10 11 11 The goal is to prevent internet service providers and other network 12 administrators to block or disrupt bittorrent traffic in general. It13 will leave the possibility to block or disrupt bittorrent traffic for 14 a certain torrent (given the attacker knows the info-hash).12 administrators from blocking or disrupting bittorrent traffic 13 connections that span between the receiver of a tracker response and any peer 14 IP-port appearing in that tracker response. 15 15 16 16 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", … … 43 43 same as if the ``info_hash`` was passed, except that any field that contains 44 44 peer information (such as ``peers``, ``peers6`` or any other field defined 45 by another extension) MUST be bit-wise XORed by the info-hash. 45 by another extension) MUST be bit-wise XORed by the info-hash. So that 46 XORed peer lists can be precomputed and retained in tracker memory 47 without sacrificing the tracker's ability to return a random subset of 48 peers, each ip-port pair MUST be XORed independently aligned to the 49 beginning of the infohash. 46 50 47 51 In the case ``peers`` (or another filed containing peer info) is not a single … … 53 57 ----------------------- 54 58 59 Trackers that support obfuscation are identified in the .torrent file 60 by the inclusion of the letter 'o' following 'http' in the URL, e.g., 61 httpo://tracker.bittorrent.com. 62 55 63 A client that is configured to use this extension should always send the 56 ``xor_ih`` to any new tracker first. If it fails, the standard ``info_hash`` 57 parameter should be used instead. It is important to never send both 58 parameters in the same request, since that would defeat the purpose with 59 the shared secret (since the secret would be sent in plain text in the announce). 64 ``xor_ih`` to any tracker supporting 'o'. Peers that do not recognize 65 the 'httpo' will not contact that tracker. If the tracker wishes 66 to allow legacy peers to connect to the tracker then the announce 67 URL should appear twice in the announce list. Once with the 'httpo' and 68 once with 'http'. Even if a tracker appears twice in the announce list, 69 if the tracker appears with an 'httpo' protocol in any announce URL, then 70 peers that support obfuscation SHOULD NOT query the tracker without 71 obfuscation since this would enable an attack where ISPs always discard 72 the first tracker request. 73 74 Peers SHOULD never send both infohash and XOR'd infohash 75 parameters in the same request, since that would defeat the purpose of 76 the shared secret. 60 77 61 78 rationale 62 79 --------- 63 80 64 The reason to XOR the info-hash with itself is because the tracker then 65 only needs one extra lookup table for XORed hashes. Instead of applying 66 a scheme where a shared secret is exchanged. This will add no computational 67 overhead on the tracker for the torrent lookup. 81 By XORing the info-hash with itself the tracker is able to identify 82 torrents without sending the plaintext infohash and without 83 requiring an additional prior exchange of a shared secret. 84 Where trackers now maintain mappings from infohash to the 85 corresponding torrent's peerlist and other torrent-specific state. 86 Trackers would need one additional mapping from XORed infohash to 87 the existing torrent's state. If XORed peerlists are precomputed then 88 this method adds no computational overhead when a peer queries the 89 tracker for a peerlist. 90 91 This method requires decidedly less computational or communication 92 overhead than SSH or similar symmetric encryption methods. 93 68 94 69 95 authors