eMule模糊协议

模糊协议(英语:Protocol Obfuscation,又称迷惑协议协议迷惑协议加密迷惑协议)是eMule在0.47b之后的版本正式加入的一项功能,这个功能主要是针对ISP的流量限制做出反击。

简介

在网络上传输的数据包,大致上可以很简单的分为两个部分:标头与资料。在标头的部分都含有特定的识别信息,因此只要透过特定的观察器,去截取在网络上传播的数据包,就可以知道“谁”正在用何种“通信协议”在传输消息。而eMule所使用的eD2k通信协议,在每个数据包的标头的部分,自然也包含着特定的识别信息。最近几年,各国的ISP业者因为感受到P2P流量对自身网络所带来的冲击,因此纷纷开始研究去限制P2P的流量。而eMule所使用的eD2k通信协议,自然是主要的目标之一,因为同时在使用eMule的人可能有数百万到数千万人以上。

为了对ISP的流量限制做出反制,eMule的开发团队,开发出“模糊协议”这项功能。开启这个功能,eMule传输的数据包标头看起来就会变成一群随机数而无意义的资料,因为缺乏固定的特征,所以没有办法被简单的识别出来,如此一来ISP的流量限制也就变得毫无效果。

注意事项

“模糊协议”经常在某些地方会被误解:

  • 模糊协议无法增加隐匿性,因为这个功能不会加密数据包,它只是利用某种算法让数据包标头的信息变成一串看似无意义的随机数。
  • 因为数据包没有加密,对那些告密者而言,他们还是能知道“谁”正在传输“特定的资料”。

目前模糊协议已经在eD2k TCP与UDP、服务器的TCP与UDP、Kad的TCP上实现,至于Kad的UDP则尚未实现。

开启这项功能会使CPU的占用率稍微提高,并且在传输资料时,会需要多传数Bytes的资料,然而这并不是什么大问题。

L7-filter与IPP2P

L7-filter是针对OSI模型的第七层-应用层所设计,是Linux防火墙Netfilter的分类器。它可以对每个数据包所使用的通信协议做出分类,进而让Netfilter对特定的通信协议进行阻挡或者是带宽控管。目前针对eD2k的比对档只测试到eMule 0.47a的版本,之后的版本因为模糊协议的关系,应该无法对经过模糊化的eD2k数据包做出有效的比对。

IPP2P则是Netfilter的模块,专门针对P2P通信协议来设计。在IPP2P的网站并没有任何关于成功识别模糊协议的消息,因此可以认定IPP2P无法对经过模糊化的eD2k数据包做出有效的比对。

参考资料