Sign in to follow this  
Followers 0
Gamesh

Protocol Obfuscation

13 posts in this topic

Ok here goes, a new emule version just came up, and there is a realy nice feature called Protocol Obfuscation. it is explained very vell right HERE.

in Short:

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 idenitfied 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 completly blocked from a network by identifying its packets.

And i was just thinking if somewhere in the near future it could be inplemented into the ApexDC too if it is at all possible. Best of all since the emule project is opensource the idea and the code could also be borrowed :D

Share this post


Link to post
Share on other sites

Ok here goes, a new emule version just came up, and there is a realy nice feature called Protocol Obfuscation. it is explained very vell right HERE.

in Short:

And i was just thinking if somewhere in the near future it could be inplemented into the ApexDC too if it is at all possible. Best of all since the emule project is opensource the idea and the code could also be borrowed :D

i've not looked at the details of the protocol eMule uses, but there is already a way to establish SSL connections on an ADC hub. wait and see... :D

Share this post


Link to post
Share on other sites

any changes to the protocol should be recomended on the dc++ forums

Share this post


Link to post
Share on other sites

I checked the code and it shouldn't be hard to implement SSL in NMDC client-2-client connections. The only problem is how to say that the connection will be SSL, I thought about 2 possibilites:

a) send SSL support in $Supports command and when it's detected, just disconnect the connection and initiate it again by via SSLSocket

:) send SSL support in $MyInfo (in description) but it can easily be avoided, because anyone without SSL support can write it to description and muzz the clients with SSL support.

any other possibility?

Share this post


Link to post
Share on other sites

Is it applicable to use a "non-user serviceable" part in My Info? Is it so easy to edit this data at all?

Share this post


Link to post
Share on other sites

if you want to add something special in $MyInfo, you can add it only to description part, but this part can be easily modified in Settings.

EDIT: or there's one another possibility. User connects to you, so commands like $ConnectToMe will be normally visibled. Then sends you some command (for example "Encrypt On|") and you must respond him with some other command (for example "Encrypted|") and this will change socket mode to some encrypting way and following data will be encrypted. We can use for example ZLIB to encrypt protocol data.

Share this post


Link to post
Share on other sites

Ok here goes, a new emule version just came up, and there is a realy nice feature called Protocol Obfuscation.

[...]

And i was just thinking if somewhere in the near future it could be inplemented into the ApexDC too if it is at all possible. Best of all since the emule project is opensource the idea and the code could also be borrowed ^_^

Well, I'm not sure since I can't use DC in the internet but only in our local network. Anyway, isn't the "Send garbage on [incoming|outgoing] connection (to avoid ISP P2P throttling)" option in Settings > Advanced supposed to avoid exactly such ISP sniffing and limiting and therefore already doing the job? Or is that not enough?

Share this post


Link to post
Share on other sites

I would like to see anything that stops throttling since Pipex (who I used to think where the most amazing ISP ever NOT!!) have starting throttling anything that looks remotely like p2p unless it's encrypted beyond the send garbage part.

Share this post


Link to post
Share on other sites

I would like to see anything that stops...

Just look at the website of another provider and you will see it :)

Share this post


Link to post
Share on other sites

I cant unfortunately :) I'm not around to often and I upgraded to pipex max before I realised they where doing this. Only thing is, i'm now tied in and stuck with them for 12 months....

Share this post


Link to post
Share on other sites

i dont even have a remotely similar problem here, we still dont have "any" laws let alone strict ones about P2P, heh, our only good IPS even gives divx players for free uppon buyng one of their plans, i consider myself lucky, they dont throttle or limit P2P in any way. :) but having a feature that would trick them just in case they change, would be a welcome idea.

Share this post


Link to post
Share on other sites

i dont even have a remotely similar problem here, we still dont have "any" laws let alone strict ones about P2P, heh, our only good IPS even gives divx players for free uppon buyng one of their plans, i consider myself lucky, they dont throttle or limit P2P in any way. :) but having a feature that would trick them just in case they change, would be a welcome idea.

Same here, although we receive just one month free, and in case of slow speed we can freely report, ask or quarrel. They do not care what we do, as long as we pay. :)

Share this post


Link to post
Share on other sites
Sign in to follow this  
Followers 0