Changeset 10892 for dotorg/trunk/html/beps
- Timestamp:
- 02/19/2008 03:44:24 PM (10 months ago)
- Location:
- dotorg/trunk/html/beps
- Files:
-
- 3 modified
-
bep_0000.html (modified) (2 diffs)
-
bep_0008.html (modified) (14 diffs)
-
bep_1000.html (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
dotorg/trunk/html/beps/bep_0000.html
r10883 r10892 38 38 <tr class="field"><th class="field-name">Title:</th><td class="field-body">Index of BitTorrent Enhancement Proposals</td> 39 39 </tr> 40 <tr class="field"><th class="field-name">Version:</th><td class="field-body">108 52</td>40 <tr class="field"><th class="field-name">Version:</th><td class="field-body">10883</td> 41 41 </tr> 42 <tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference external" href="https://svn.bittorrent.com/trac.cgi/browser/dotorg/trunk/html/beps/bep_0000.rst">2008-02-1 5 16:07:57 -0800 (Fri, 15Feb 2008)</a></td>42 <tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference external" href="https://svn.bittorrent.com/trac.cgi/browser/dotorg/trunk/html/beps/bep_0000.rst">2008-02-19 14:39:51 -0800 (Tue, 19 Feb 2008)</a></td> 43 43 </tr> 44 44 <tr class="field"><th class="field-name">Author:</th><td class="field-body">David Harrison <dave at bittorrent.com></td> … … 116 116 </tr> 117 117 <tr><td><span class="raw-html"><A HREF="bep_0017.html">17</A></span></td> 118 <td><span class="raw-html"><A HREF="bep_0017.html">HTTP Seeding </A></span></td>118 <td><span class="raw-html"><A HREF="bep_0017.html">HTTP Seeding (Hoffman-style) </A></span></td> 119 119 </tr> 120 120 <tr><td><span class="raw-html"><A HREF="bep_1000.html">1000</A></span></td> -
dotorg/trunk/html/beps/bep_0008.html
r10883 r10892 38 38 <tr class="field"><th class="field-name">Title:</th><td class="field-body">Tracker Peer Obfuscation</td> 39 39 </tr> 40 <tr class="field"><th class="field-name">Version:</th><td class="field-body">108 51</td>41 </tr> 42 <tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference external" href="https://svn.bittorrent.com/trac.cgi/browser/dotorg/trunk/html/beps/bep_0008.rst">2008-02-1 5 15:04:41 -0800 (Fri, 15Feb 2008)</a></td>40 <tr class="field"><th class="field-name">Version:</th><td class="field-body">10891</td> 41 </tr> 42 <tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference external" href="https://svn.bittorrent.com/trac.cgi/browser/dotorg/trunk/html/beps/bep_0008.rst">2008-02-19 15:44:01 -0800 (Tue, 19 Feb 2008)</a></td> 43 43 </tr> 44 44 <tr class="field"><th class="field-name">Author:</th><td class="field-body">David Harrison <dave at bittorrent.com>, Anthony Ciani <tony at ciani.phy.uic.edu>, Arvid Norberg <arvid at bittorrent.com>, Greg Hazel <greg at bittorrent.com></td> … … 58 58 <p class="topic-title first">Contents</p> 59 59 <ul class="simple"> 60 <li><a class="reference internal" href="#announce-parameter " id="id8">Announce Parameter</a></li>60 <li><a class="reference internal" href="#announce-parameters" id="id8">Announce Parameters</a></li> 61 61 <li><a class="reference internal" href="#announce-response" id="id9">Announce Response</a></li> 62 <li><a class="reference internal" href="# peer-list-obfuscation" id="id10">Peer List Obfuscation</a></li>62 <li><a class="reference internal" href="#obfuscation-method" id="id10">Obfuscation Method</a></li> 63 63 <li><a class="reference internal" href="#optimizations" id="id11">Optimizations</a></li> 64 64 <li><a class="reference internal" href="#backwards-compatibility" id="id12">Backwards Compatibility</a></li> … … 79 79 "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are 80 80 to be interpreted as described in IETF <a class="reference external" href="http://tools.ietf.org/html/rfc2119">RFC 2119</a> <a class="footnote-reference" href="#id6" id="id7">[5]</a>.</p> 81 <div class="section" id="announce-parameter ">82 <h1>Announce Parameter </h1>81 <div class="section" id="announce-parameters"> 82 <h1>Announce Parameters</h1> 83 83 <p>When using this extension, instead of passing the <tt class="docutils literal"><span class="pre">info_hash</span></tt> parameter 84 84 to the tracker, a <tt class="docutils literal"><span class="pre">sha_ih</span></tt> is passed.</p> … … 91 91 <tt class="docutils literal"><span class="pre">sha_ih</span></tt> above when url encoded becomes 92 92 <tt class="docutils literal"><span class="pre">kO%89%A5N-%27%EC%D7%E8%DA%05%B4%AB%8F%D9%D1%D8%B1%19</span></tt>.</p> 93 <p>If the <tt class="docutils literal"><span class="pre">sha_ih</span></tt> is passed then the value for the <tt class="docutils literal"><span class="pre">port</span></tt> parameter 94 should be treated as a 16 bit integer and must be obscured in the same 95 manner as the peer list as described in the <a class="reference internal" href="#obfuscation-method">Obfuscation Method</a> 96 section. Similarly if the optional <tt class="docutils literal"><span class="pre">ip</span></tt> parameter is passed in the 97 announce then its value MUST also be so oscured.</p> 93 98 <p>This extension does not change the semantics of any parameter passed 94 99 in the peer's announce.</p> … … 104 109 These are discussed in the <a class="reference internal" href="#optimizations">optimizations</a> section.</p> 105 110 </div> 106 <div class="section" id="peer-list-obfuscation"> 107 <h1>Peer List Obfuscation</h1> 111 <div class="section" id="obfuscation-method"> 112 <h1>Obfuscation Method</h1> 113 <p>The values for the``ip`` and <tt class="docutils literal"><span class="pre">port</span></tt> announce parameters, the 114 <em>returned peer list</em> and any other values that contain peer 115 information are obscured using the method described in this section.</p> 108 116 <p>We distinguish between the <em>tracker peer list</em> and the <em>returned peer 109 117 list</em>. The <em>tracker peer list</em> contains the ip-port pairs of all … … 115 123 sufficiently large then the returned ip-port pairs constitute a subset 116 124 of the ip-port pairs in the <em>tracker peer list</em>.</p> 117 <p> The returned peer list is encrypted using RC4-drop768 encryption using118 the infohash as a shared secret and optionally employing an 119 initialization vector.</p>125 <p>When a parameter is obscured, it is encrypted using RC4-drop768 126 encryption using the infohash as a shared secret and optionally 127 employing an initialization vector.</p> 120 128 <p>For the remainder of this document RC4 refers to RC4-drop768. In the 121 129 process of encryption, RC4 generates a pseudorandom string that is … … 127 135 discussed in the next section.</p> 128 136 <p>To communicate an initialization vector, the tracker includes in the 129 bencoded response the key<tt class="docutils literal"><span class="pre">iv</span></tt> with value set to a byte string137 bencoded response the parameter <tt class="docutils literal"><span class="pre">iv</span></tt> with value set to a byte string 130 138 containing the initialization vector. The initialization vector can 131 be of arbitrary length and is sent in plaintext.</p> 139 be of arbitrary length and is sent in plaintext. Initialization 140 vectors can only be applied to parameters in tracker responses and NOT 141 to announces.</p> 132 142 <p>If the tracker sends no initialization vector then the infohash is 133 143 used as the RC4 key (160 bit key). If the tracker provides an … … 168 178 generated by RC4 and reuse it as peers arrive and depart.</p> 169 179 <p>The tracker MAY also cache the encrypted tracker peer list. To 170 support this the tracker MUST pass two additional keys <em>i</em> and <em>n</em>180 support this the tracker MUST pass two additional parameters <em>i</em> and <em>n</em> 171 181 each with 32-bit integer values, except the tracker MAY omit <em>i</em> and 172 182 <em>n</em> when <em>i=0</em> and the <em>returned peer list</em> is the entire <em>tracker peer … … 182 192 arbitrarily long pseudorandom string to support large swarms, we 183 193 assume the tracker bounds the length of the pseudorandom string and 184 reports the length in ip-port pairs as the value to key<em>n</em>. <em>n</em>194 reports the length in ip-port pairs as the value to parameter <em>n</em>. <em>n</em> 185 195 excludes reserved and discarded bytes. We RECOMMEND that <em>n</em> be equal 186 196 to the length of the tracker peer list or random but within constant … … 197 207 <img alt="bep_0008_pseudo.png" src="bep_0008_pseudo.png" /> 198 208 <p class="caption"><strong>Figure 1:</strong> The first 768 bytes of the RC4 pseudorandom 199 string are discarded. The key<em>i</em> in the tracker response has200 value <tt class="docutils literal"><span class="pre">x</span> <span class="pre">xor</span> <span class="pre">i</span></tt>. The key<em>n</em> has value <tt class="docutils literal"><span class="pre">y</span> <span class="pre">xor</span> <span class="pre">n</span></tt>.</p>209 string are discarded. The parameter <em>i</em> in the tracker response has 210 value <tt class="docutils literal"><span class="pre">x</span> <span class="pre">xor</span> <span class="pre">i</span></tt>. The parameter <em>n</em> has value <tt class="docutils literal"><span class="pre">y</span> <span class="pre">xor</span> <span class="pre">n</span></tt>.</p> 201 211 </div> 202 212 <p>We describe encryption in the following example for an ipv4 tracker peer … … 241 251 <p>Trackers that support obfuscation are identified in the .torrent file 242 252 by the inclusion of an <tt class="docutils literal"><span class="pre">obfuscate-announce-list</span></tt> which otherwise has the 243 same semantics as the <tt class="docutils literal"><span class="pre">announce-list</span></tt> key. Peers that do not support253 same semantics as the <tt class="docutils literal"><span class="pre">announce-list</span></tt> parameter. Peers that do not support 244 254 obfuscation simply ignore the <tt class="docutils literal"><span class="pre">obfuscate-announce-list</span></tt>.</p> 245 255 <p>A client that is configured to use this extension should always send … … 303 313 <ul class="simple"> 304 314 <li>The entire plaintext of the peer list is not easily obtained even if 305 an eavesdropper identifies ip-port pairs from subsequent connections 306 initiated by a peer that has received a tracker response.</li> 315 an eavesdropper identifies one or more subsequent connections as 316 using BitTorrent and the corresponding ip-port pairs appeared in the 317 ciphertext of the tracker response.</li> 307 318 <li>Even when a subsequent connection from a peer that has received a 308 319 tracker response is observed by an eavesdropper, it is difficult to … … 325 336 and subsequent connections, it is possible to attack the encryption. 326 337 RC4 is known to have a number of weaknesses especially in the way it 327 was used with WEP <a class="footnote-reference" href="#borisov" id="id3">[2]</a> <a class="footnote-reference" href="#scott" id="id4">[3]</a> <a class="footnote-reference" href="#stubblefeld" id="id5">[4]</a>. However, 328 with tracker peer obfuscation, the number of bytes transferred between 329 t he tracker and a client is likely significantly smaller than transferred338 is used with WEP <a class="footnote-reference" href="#borisov" id="id3">[2]</a> <a class="footnote-reference" href="#scott" id="id4">[3]</a> <a class="footnote-reference" href="#stubblefeld" id="id5">[4]</a>. However, with 339 tracker peer obfuscation, the number of bytes transferred between the 340 tracker and a client is likely significantly smaller than transferred 330 341 between a wireless computer and a basestation. An attacker faces a 331 much larger task in obtaining sufficient probable plaintext to332 directly breakthe encryption.</p>342 much larger task in obtaining sufficient ciphertext to directly break 343 the encryption.</p> 333 344 <p>Hobbling the RC4 encryption by using a bounded-length RC4 pseudorandom 334 345 string for small swarms is likely to have negilgible impact on … … 344 355 Furthermore more direct methods of traffic analysis applied to 345 356 peer-to-peer communication is available to network operators.</p> 346 <p>For larger swarms, hobbling RC4 may more significantly impact breaking 347 the encryption since the same pseudorandom string is used repeatedly 348 across the peer list. Some study is in order on this point taking 349 into account that the tracker can periodically change intiailization 350 vectors.</p> 357 <p>For larger swarms, hobbling RC4 may simplify breaking the encryption 358 since the same pseudorandom string is used repeatedly across the peer 359 list. Some study is in order taking into account that the tracker can 360 periodically change intiailization vectors.</p> 351 361 <p>We know from experience that periodically reshuffling peer lists on 352 362 the order of the rerequest interval negligibly impacts tracker -
dotorg/trunk/html/beps/bep_1000.html
r10883 r10892 38 38 <tr class="field"><th class="field-name">Title:</th><td class="field-body">Pending Standards Track Documents</td> 39 39 </tr> 40 <tr class="field"><th class="field-name">Version:</th><td class="field-body">108 48</td>40 <tr class="field"><th class="field-name">Version:</th><td class="field-body">10883</td> 41 41 </tr> 42 <tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference external" href="https://svn.bittorrent.com/trac.cgi/browser/dotorg/trunk/html/beps/bep_1000.rst">2008-02-1 5 14:53:10 -0800 (Fri, 15Feb 2008)</a></td>42 <tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference external" href="https://svn.bittorrent.com/trac.cgi/browser/dotorg/trunk/html/beps/bep_1000.rst">2008-02-19 14:39:51 -0800 (Tue, 19 Feb 2008)</a></td> 43 43 </tr> 44 44 <tr class="field"><th class="field-name">Author:</th><td class="field-body">David Harrison <dave at bittorrent.com></td> … … 81 81 <td>Super-seeding</td> 82 82 </tr> 83 <tr><td>19</td> 84 <td>HTTP Seeding (GetRight Style)</td> 85 </tr> 83 86 </tbody> 84 87 </table>