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封包做出有效的比对。

参考资料