BitTorrent protocol encryption

BitTorrent protocol encryption

Protocol encryption (PE), message stream encryption (MSE), or protocol header encrypt (PHE)[1] are related features of some peer-to-peer file-sharing clients, including BitTorrent clients. They attempt to enhance privacy and confidentiality. In addition, they attempt to make traffic harder to identify by third parties including internet service providers (ISPs).

MSE/PE is implemented in aria2, BitComet, BitTornado, Deluge, Flashget, KTorrent, Mainline, rTorrent, µTorrent, Transmission, and Vuze. 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.[2]

Contents

Purpose

As of January 2005, BitTorrent traffic made up more than a third of total residential internet traffic[3], although this is dropping to less than 20% as of 2009[4]. Some ISPs deal with this traffic by increasing their capacity whilst others use specialised systems to slow peer-to-peer traffic. Obfuscation and encryption make traffic harder to detect and therefore harder to throttle. These systems were designed initially to provide anonymity or confidentiality, but became required in countries where Internet Service Providers were granted the power to throttle a bit-torrent user and even ban those they believed were guilty of illegal file sharing.

History

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[5]. 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 developers of Azureus, now known as Vuze, 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[6].

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. In µTorrent, the new protocol was called protocol encryption (PE).

MSE/PE in BitTorrent client versions

  • aria2 supports MSE/PE as of aria2-0.13.0.
  • 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[7].
  • 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[8].
  • BitTorrent (Mainline) supports MSE/PE since version 4.9.2-beta on May 2, 2006[9].
  • Deluge supports MSE/PE as of Deluge-0.5.1[10].
  • KTorrent implemented MSE/PE in SVN version 535386[11] on April 29, 2006[12].
  • rTorrent supports MSE/PE as of rTorrent-0.7.0[13].
  • Transmission supports MSE/PE as of Transmission-0.90[14].
  • Vuze (formerly Azureus) supports the final spec since 25 January 2006 (CVS snapshot 2307-B33)[15]. 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[16].
  • µTorrent premiered MSE/PE 4 days after Azureus with beta 1.4.1 build 407[17]. µTorrent version 1.5 (build 436) was released on 7 March 2006; it was the first stable version of µTorrent with PE.

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 output is discarded to prevent the Fluhrer, Mantin and Shamir 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[18]. Cryptographically, this effective keylength is quite low, but appropriate in that the protocol was not designed as a secure transport protocol but rather 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 Diffie–Hellman 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 effective.[citation needed]

Analysis of the BitTorrent protocol encryption (a.k.a. MSE) has shown that statistical measurements of packet sizes and packet directions of the first 100 packets in a TCP session can be used to identify the obfuscated protocol with over 96% accuracy[19].

Remains vulnerable to disrupted peer traffic

The Sandvine application uses a different approach to disrupt BitTorrent traffic that makes seeding impossible. The Sandvine application intercepts peer-to-tracker communication to identify peers based on the IP address and port numbers in the peer list returned from the tracker. When Sandvine later sees connections to peers in the intercepted peer lists, it may (according to policy) break these connections by sending counterfeit TCP resets. Various solutions exist to protect against Sandvine's attack including encrypting both peer-to-tracker and peer-to-peer communication, using Microsoft's Teredo so that TCP connections are tunneled within UDP packets, filtering TCP resets before they reach the TCP layer in the end-host, or switching entirely from a TCP-based transport to a UDP-based transport. Each solution has its trade-offs. Filtering out TCP resets typically requires kernel access, and the participation of the remote peer since Sandvine sent the reset packet to the local and remote peers. Teredo is not available on all BitTorrent clients. Rewriting TCP reliability, in-order delivery and congestion control in a new UDP protocol represents a substantial engineering effort and would require upgrading both ends of any peer-to-peer connection. Increasing robustness to TCP resets solves Sandvine's attack, but it does not prevent internet applications from using the peer lists to perform other attacks such as blocking peer-to-peer connections completely. Encryption also won't stop a traffic shaping system configured to universally slow down all encrypted, unidentifiable or unknown protocols using a method as simple as packet loss. Encrypting tracker communications prevents eavesdropping on peer lists and does not require upgrading both ends of peer-to-peer connections, but it requires imposing computational overhead on the tracker.

Criticism

Bram Cohen, the inventor of BitTorrent, opposed adding encryption to the BitTorrent protocol. Cohen stated he was worried that encryption could create incompatibility between clients. He also stressed the point that the majority of ISPs don't block the torrent protocol. Cohen wrote "I rather suspect that some developer has gotten rate limited by his ISP, and is more interested in trying to hack around his ISP's limitations than in the performance of the internet as a whole"[20]. Many BitTorrent community users responded strongly against Cohen's accusations[21]. Cohen later added the ability to receive but not originate encrypted connections on his Mainline client[22]. Notably, when µTorrent was purchased by BitTorrent, Inc. and then became the next mainline release, the ability to originate encrypted connections was retained, but it became turned off by default.

Notes and references

  1. ^ . It is usually referred to as the more correct protocol header encryption instead.
  2. ^ "eMule protocol obfuscation (encryption)". 2006-09-16. http://www.emule-project.net/home/perl/help.cgi?l=1&rm=show_topic&topic_id=848. Retrieved 2010-03-11. 
  3. ^ "Wired: The Bittorrent Effect". 2007-05-30. http://www.wired.com/wired/archive/13.01/bittorrent.html. 
  4. ^ "2009 Global Broadband Phenomena". 2009-11-16. http://www.sandvine.com/downloads/documents/2009%20Global%20Broadband%20Phenomena%20-%20Executive%20Summary.pdf. 
  5. ^ "IPP2P homepage - News". 2006-01-04. http://www.ipp2p.org/news_en.html. 
  6. ^ "CVS Snapshot Azureus2307-B29.jar has been released !". 2006-01-19. http://sourceforge.net/mailarchive/forum.php?thread_id=9517694&forum_id=40629. 
  7. ^ "BitComet Client Release Notes". 2006-03-07. http://www.bitcomet.com/doc/changelog.htm. 
  8. ^ "BitTornado T-0.3.18". 2007-01-05. http://forums.degreez.net/viewtopic.php?t=7074. 
  9. ^ "Version Notes". BitTorrent. 2006-05-02. http://www.bittorrent.com/versionnotes.html. 
  10. ^ "Deluge 0.5.1 Release Announcement". 2007-06-11. http://deluge-torrent.org/?p=15. 
  11. ^ . The SVN server is at svn://anonsvn.kde.org/home/kde/trunk/extragear/network/ktorrent
  12. ^ "Encryption has been added !". 2006-04-29. http://ktorrent.pwsp.net/forum/viewtopic.php?t=432. 
  13. ^ "Announcement of rTorrent-0.7.0". 2006-12-13. http://rakshasa.no/pipermail/libtorrent-devel/2006-December/000982.html. 
  14. ^ "Transmission 0.90 Release Announcement". 2007-10-24. http://transmission.m0k.org/forum/viewtopic.php?t=2631. 
  15. ^ "CVS Snapshot Azureus2307-B33.jar has been released !". 2006-01-25. http://sourceforge.net/mailarchive/message.php?msg_id=14596518. 
  16. ^ "Azureus : Java BitTorrent Client - Changelog". http://azureus.sourceforge.net/changelog.php?version=2.4.0.2. 
  17. ^ "µTorrent 1.4.2 beta 435". 2006-01-29. http://forum.utorrent.com/viewtopic.php?id=5384. 
  18. ^ "RFC 3526 chapter 8". http://tools.ietf.org/html/rfc3526#section-8. 
  19. ^ Hjelmvik, Erik; John, Wolfgang (2010-07-27). "Breaking and Improving Protocol Obfuscation". http://www.iis.se/docs/hjelmvik_breaking.pdf. 
  20. ^ Cohen, Bram (2006-01-29). "Obfuscating BitTorrent". http://bramcohen.livejournal.com/29886.html. 
  21. ^ "Debate over Protocol Encryption". http://forum.utorrent.com/viewtopic.php?id=5742. 
  22. ^ "BitTorrent Mainline Version History". 2006-10-15. http://www.bittorrent.com/versionnotes.html. 

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • BitTorrent protocol encryption — Protocol encryption (PE, brouillage de protocole), message stream encryption (MSE, brouillage des flux de message) ou protocol header encrypt (PHE, brouillage d en tête de protocole) sont des fonctionnalités de clients de partage de fichier poste …   Wikipédia en Français

  • BitTorrent (protocol) — BitTorrent is a peer to peer file sharing protocol used to distribute large amounts of data. The initial distributor of the complete file or collection acts as the first seed . Each peer who downloads the data also uploads them to other peers.… …   Wikipedia

  • BitTorrent, Inc. — BitTorrent, Inc. Тип Частная компани …   Википедия

  • BitTorrent (Logiciel) — Pour les articles homonymes, voir BitTorrent. BitTorrent …   Wikipédia en Français

  • Bittorrent (logiciel) — Pour les articles homonymes, voir BitTorrent. BitTorrent …   Wikipédia en Français

  • BitTorrent-трекер — BitTorrent трекер  сервер, осуществляющий координацию клиентов BitTorrent. Содержание 1 Координация клиентов 2 Роль трекера …   Википедия

  • BitTorrent (software) — This article is about the original BitTorrent client. For bittorrent clients in general, see Comparison of BitTorrent clients. BitTorrent Original author(s) Bram Cohen …   Wikipedia

  • BitTorrent (protocole) — Pour les articles homonymes, voir BitTorrent. BitTorrent est un protocole de transfert de données Pair à pair (P2P) à travers un réseau informatique. Le protocole a été conçu en avril 2001 et mis en place à l été 2002 par le programmeur Bram …   Wikipédia en Français

  • BitTorrent — Эта статья о протоколе. Статья о клиенте: BitTorrent (программа). BitTórrent (букв. англ.  «битовый поток»)  пиринговый (P2P) сетевой протокол для кооперативного обмена файлами через Интернет. Файлы передаются частями, каждый torrent… …   Википедия

  • BitTorrent (logiciel) — Pour les articles homonymes, voir BitTorrent. BitTorrent …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”