Over the past few days, more and more users were horrified that search results turned up nothing but the following: “please use emule 0.47c and enable protocol obfuscation to get results from this server.”
Note: This is an article I wrote that was published elsewhere first. It has been republished here for archival purposes
Why was this happening? Some hypothesized that users were merely using a fake server, but the reports grew and grew. It was discovered that ‘Donkey Server No. 1’ was the root cause of this. No, it wasn’t a fake server as some thought it was – it was the real deal. The move was relatively unannounced and has caused a stir in the eDonkey2000 community.
It’s no secret that fake servers exist in the eDonkey2000 network. It’s also no secret that they have been known to make strange errors occur. What happens when a clean server blocks the ED2K search results though? Rumours started circulating that the Donkey Server has limited itself to the latest eMule client and demanded all users to enable Protocol obfuscation.
On any other server, performing a global search will work normally. There is no sign of any demand that obfuscation be enabled or a specific client must be used. Connect to ‘Donkey Server No. 1’ with a client other then eMule v 0.47c and there’s a whole world of difference with Global Server search results.
When early reports of ‘Donkey Server No. 1’s activity surfaced, some thought that the user reporting was merely connecting to one of the fake servers. All the other Donkey servers appear to have not enabled this function as of yet. The following are screenshots of an eMule v 0.47c client with obfuscation disabled:
You can see that eMule is connected to ‘Donkey Server No. 1.’ Protocol obfuscation has been disabled during this test.
The above screenshot demonstrates what the end user can expect after a search is conducted. The search field is, in a sense, flooded with results telling you to use eMule v 0.47c with protocol obfuscation enabled. You can also note that actual transfers are unaffected by this new measure.
Why the need for protocol obfuscation? It is currently unclear why this change was specifically made, but what is confirmed is what the intention of obfuscation is. The eMule website states, “Protocol Obfuscation is a feature which causes eMule to obfuscate or “hide” its protocol when communicating with other clients or servers. Without obfuscation, each eMule communication has a given structure which can be easily recognized and identified as an eMule packet by any observer. If this feature is turned on, the whole eMule communication appears like random data on the first look and an automatic identification is no longer easily possible. This helps against situations were the eMule Protocol is unjustly discriminated or even completely blocked from a network by identifying its packets.
It is however important to note what Obfuscation is not intended to do: It will not increase your anonymity, it will not make you “invisible” in any way and it will also not protect you effective (sic)against eavesdroppers.”
For those wanting to get around this issue for operating platform or other reasons, it’s not too hard to do. There are many ways, including connecting to another server. Currently, you can even connect to any other ‘Donkey Server’ which is devoid of this restriction for now. There are a number of other ‘clean’ servers on server white lists a user can connect to. Some eDonkey2000 users are recommending the removal of the Donkey Server No. 1 from static lists which make clients connect to certain eDonkey2000 servers. Performing global searches on other clean servers will not result in these results showing up. Another way is to move to the Kad network. Ever since Kad was created as an alternative to the eDonkey2000 network, a growing number of users have chosen to ‘go pure Kad’ and disable the eDonkey2000 network for fear of connecting to an unsafe server. eMule currently can perform searches strictly through Kad. Of course, if worse comes to worse, a user can simply install the latest eMule client and enable protocol obfuscation.
This may effectively block out all clients that connect to ed2k which do not support protocol obfuscation for the time being. The fact remains, because of eMule’s open source nature, many fork projects are possible. Could this potentially undermine the security of going open source, if other clean servers choose to block all non 0.47c clients? Is there a solution to be had?
On hearing these reports, an aMule developer commented, “I am checking eMule encryption code right now. Coding will be started really soon.” aMule, of course, has been known as a great alternative for eMule, mostly for users who are on the Mac or a Linux operating system and would like to use eMule because eMule is for Windows users only.
A MorphXT user offered a guide for users to enable protocol obfuscation who wouldn’t otherwise know how.
While there are no answers available at this time as to why the server is making such demands, some suggest that it is to stop older versions of clients including ‘leecher mods’ which hammer servers with request data (like Vagaa.) This could also be an attempt to filter out clients which are considered to have poor ed2k implementation. Slyck was unable to get any information on this situation.
So the question remains, why are these restrictions placed on this server? At this point, no conclusive answers have appeared.
Drew Wilson on Twitter: @icecube85 and Google+.