This article documents a current event. Information may change rapidly and initial news reports may be unreliable. The latest updates to this article may not reflect the most current information. |
Protocol header encrypt (PHE), Message stream encryption (MSE), or Protocol encryption (PE) are features of some BitTorrent clients that attempt to make BitTorrent hard to throttle. Some ISPs throttle BitTorrent traffic because it makes up a large porportion of total traffic and the ISPs don't want to spend money buying extra capacity. Instead, the ISPs spend money on hardware that look for BitTorrent traffic and slow them down.
History
Protocol header encrypt was conceived by RnySmile and first implemented in the BitComet client version 0.60 on 8 September 2005. Some software like IPP2P claims BitComet is detectable even with PHE. [1]
Message stream encryption using the old method was implemented in Azureus CVS snapshot 2307-B29 on 19 January 2006. [2] CVS snapshot 2307-B33 implements the new MSE method compatable with µTorrent on 25 January 2006. [3]
Protocol encryption was implemented in µTorrent version 1.4.1 build 407 on 29 January 2006.
Due to a lack of cooperation between the Azureus and µTorrent developers, µTorrent was planning to use its own protocol. However, recent developments means they will collaborate on the protocol after all. [4] A new protocol specification was created by various developers and it was agreed that it is better than the method previously used in Azureus. Because of this, both clients implemented the same new encryption protocol. The new protocol is called MSE in Azureus and PE in µTorrent.
Bram Cohen, the inventor of BitTorrent, recently commented disfavouring on the ongoing development to obfuscate the BitTorrent protocol. [5]
Operation
The BitComet PHE method is not published.
With MSE, users can choose between encrypting all the data or just the headers, and whether to accept non-encrypted connections. It uses a D-H exchange to establish the key, then it either uses RC4 as the encryption method or just send the message as plaintext.
PE uses the same D-H exchange to establish the key, but it always encrypt the whole connection with RC4.
They are incompatible with each other.