Sign In | Sign Up

crossmann's BLOG

Many people says "I know!", but many people don't understand what they knows.

Post

BitTorrent protocol encryption
Size: Large, Medium, Small Thu Oct 2, 08 12:41 PM | Category: All
0

BitTorrent protocol encryption

Protocol encryption (PE), Message stream encryption (MSE), or Protocol header encrypt (PHE) are related features of some peer-to-peer file-sharing clients, including BitTorrent clients. They attempt to make traffic harder to identify by third parties including internet service providers (ISPs).

MSE/PE is implemented in Azureus, BitComet, BitTornado, Deluge, Halite Client, KTorrent, Mainline, µTorrent, Transmission (v0.90) and rTorrent. PHE was implemented in old versions of BitComet. Similar protocol obfuscation is supported in up-to-date versions of some other (non-BitTorrent) systems including eMule.

Purpose

Peer-to-peer file-sharing traffic makes up more than a third of total internet traffic. Some ISPs deal with this traffic by increasing their capacity whilst others use specialised systems to throttle (i.e. slow down) BitTorrent traffic. Obfuscation and encryption make traffic harder to detect and therefore harder to throttle. These systems are not designed to provide anonymity or confidentiality.

 

Early approach

Protocol header encryption (PHE) was conceived by RnySmile and first implemented in BitComet version 0.60 on 8 September 2005. Some software like IPP2P claims BitComet traffic is detectable even with PHE. PHE is detectable because only part of the stream is encrypted. Since there are no open specifications to this protocol implementation the only possibility to support it in other clients would have been via reverse engineering.

 

 

Development of MSE/PE

In late January 2006 the Azureus developers decided to design and simultaneously implement a new, open protocol obfuscation method, called message stream encryption (MSE). It was included in Azureus CVS snapshot 2307-B29 on 19 January 2006.

This first draft was heavily criticized since it lacked several key features. After negotiations between different BitTorrent developers a new proposal was written and then implemented into the Azureus and µTorrent betas within days. The developers were ludde, uau, The 8472, Parg and Nolar. In µTorrent, the new protocol was called protocol encryption (PE).

 

MSE/PE in BitTorrent client versions

Azureus supports the final spec since 25 January 2006 (CVS snapshot 2307-B33). Azureus version 2.4.0.0 was released 10 February 2006, and was the first stable version of a client to support MSE/PE. However, glitches in Azureus' implementation resulted in improperly encrypted pieces that failed hash checking. The glitches were rectified as of version 2.4.0.2.

µTorrent premiered MSE/PE 4 days after Azureus with beta 1.4.1 build 407. µTorrent version 1.5 (build 436) was released on 7 March 2006; it was the first stable version of µTorrent with PE.

 

BitComet version 0.63 was released 7 March 2006. It removed the old protocol header encryption and implemented the new MSE/PE to be compatible with Azureus and µTorrent.

 

KTorrent implemented MSE/PE in SVN version 535386 on April 29, 2006.

 

Mainline supports MSE/PE since version 4.9.2-beta on May 2, 2006.

 

BitTornado supports MSE/PE as of build T-0.3.18. As of January 5, 2007, this build is still marked "experimental" on the Download page.

 

rTorrent supports MSE/PE as of rTorrent-0.7.0.

 

Deluge supports MSE/PE as of Deluge-0.5.1.

 

Transmission supports MSE/PE as of Transmission-0.90.

 

aria2 supports MSE/PE as of aria2-0.13.0.

  

Operation

The BitComet PHE method used in versions 0.60 to 0.62 is neither published, nor is it compatible with MSE/PE.

MSE/PE uses key exchange combined with the infohash of the torrent to establish an RC4 encryption key. The key exchange helps to minimize the risk of passive listeners, and the infohash helps avoid man-in-the-middle attacks. RC4 is chosen for its speed. The first kilobyte of the RC4 output is discarded to prevent a particular attack.

The specification allows the users to choose between encrypting the headers only or the full connection. Encrypting the full connection provides more obfuscation but uses more CPU time.

To ensure compatibility with other clients that don't support this specification, users may also choose whether unencrypted incoming or outgoing connections are still allowed.

Supported clients propagate the fact that they have MSE/PE enabled through PEX and DHT.

 

Security

The estimated strength of the encryption corresponds to about 60–80 bits for common symmetrical ciphers. This is quite low for today's standards but one has to keep in mind that this protocol wasn't designed as a secure transport protocol but as a fast and efficient obfuscation method. AES was proposed as the encryption method but not adopted because it consumed too much CPU time and the required D-H keys to achieve a security equal to AES would have been much bigger or require elliptic curve cryptography, making the handshake more expensive in terms of used CPU time.

 

Effectiveness

Some ISPs are now using more sophisticated measures (e.g. pattern/timing analysis or categorizing ports based on side-channel data) to detect BitTorrent traffic. This means that even encrypted BitTorrent traffic can be throttled. However, with ISPs that continue to use simpler, less costly methods to identify and throttle BitTorrent, the current solution remains extremely effective.


Link: http://blog.bitcomet.com/crossmann/post_68724/ ©
Add to favorites | Quote Reads (1065) | Comments (0)

CommentsReload

N/A

TOP