- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
外文文献译文(样例)
MSE协议攻击
引言
2004年,CacheLogic公司(现名Velocix)根据一项六个月的调查指出,BitTorrent(以下简称BT)流量约占Internet总流量的33%[1]。尽量各项调查得出的结论之间存在一定差异,但不可否认的是,BT的应用已经越来越广泛。
BT的大规模应用给网络性能带来了一定的负面影响。因此,一些ISP已经开始对BT进行限速。为了应对这一情况,BT客户端的开发者设计了MSE协议,其主要目的是对数据流提供混淆功能,其次提供一定的保密和认证功能[2]。
BT客户端的开发者并没有基于已知的公有协议(例如IPSec),而是完全重新设计了MSE协议。本文描述了MSE协议的大量漏洞,利用这些漏洞可以完全恢复出密钥和导致种子指纹的泄露。我们把这种攻击应用到不同平台下的各种客户端。结果显示,MSE协议具有大量漏洞,且协议本身有许多细节之处仍待完善。
BitTorrent协议
BitTorrent协议的设计目的是在网络上高效地传输大型文件。当需要分发大型文件时,将之分解为文件块,并由多个节点提供下载,以减轻网络中单个节点的成本和负载。当使用BitTorrent协议下载文件时,几乎将同时开始上传文件块。
BT网络由四个部分组成:下载者、做种者、Web服务器和Tracker服务器。在使用BT协议共享某个文件之前,必须先创建一个种子文件。这个种子文件包含了需要下载的共享文件中各个文件块的信息,包括Tracker信息、共享的文件块总数、所有文件块的哈希值等基本信息。当下载完成后,可以利用这些哈希值来验证文件的完整性。此外,文件中还包含一个用其它部分的元数据计算得到的哈希值InfoHash。InfoHash值可以用来确定某个特定的种子文件。除了将种子文件分发给用户下载外,还必须将文件信息报告给Tracker服务器。Tracker服务器的工作是跟踪记录所有做种者的信息,并保持下载者之间的相互通信。
当用户使用BT协议下载文件时,首先从Web服务器上下载种子文件。文件可以通过多种方式下载,一般为HTTP或HTTPS。下载完成后,BT客户端联系Tracker服务器并获取正在为此文件做种的节点列表。
获得节点列表后,客户端将每次连接一个节点来下载它提供的某个文件块。在一个(或多个)文件块下载完成后,客户端可以使用种子文件中的相关信息来验证文件的完整性。
与传统下载方式相比,使用BT协议下载能获得更高速率的原因是它从多个节点下载文件。传统Web下载通过单个TCP连接从单个服务器下载文件,而BT网络中的所有节点只是通过多个TCP连接上传很小的文件块。另外,HTTP采用顺序方式下载文件,而BT则下载随机序列的文件块。Torrent握手
我们简要地描述一下BitTorrent协议的握手过程[3]。它是MSE的上层协议。握手是客户端之间传输的第一个消息,用来确定两个客户端之间确实正在共享相同的文件。握手消息有(49+PStr)字节长度,依次由以下域组成:
PStrLen:1字节。表示PStr域的长度。
PStr:PStrLen字节。表示协议标识符,对BT协议,为BitTorrent protocol”且PStrLen=19。
Reserved:8字节。初始值为全零,用来修改协议行为。
InfoHash:20字节。元文件中info部分的SHA1哈希值,是种子文件的唯一标识。
PeerID:20字节。客户端唯一的字符串标识。实际应用中,用两个字节表示客户端软件,四个字节表示其版本,其余为随机值。
如果正在做种的客户端收到一个含有不同InfoHash值的握手信息,则将放弃此连接。
MSE协议
MSE协议的主要目的是在BT协议的下层完成封装,对数据流提供混淆功能,以此来防止窃听者识别出正在使用的协议。最近,一些ISP开始监控用户数据流,在某些情况下甚至对使用BT客户端的用户进行限速已经成为了人们热议的话题。
除了数据混淆之外,MSE协议的第二个目的是在一定程度上为相互通信的节点提供保密和认证功能。显然,这将使用加密原语。
图2 MSE协议握手过程
BT协议的握手过程如图2所示。由于存在预共享的密文,协议没有采用任何标准的密钥认证交互过程[5-7],而是使用Diffie-Hellman密钥交换协议[4]来生成会话密钥。此外,在密钥交换过程中,弱共享密钥在一定程度上提供了认证功能。种子文件中的InfoHash值用来生成这个弱共享密钥,因此,这个值与P2P网络中的预共享密钥的内容类似。
Diffie-Hellman密钥协商完成后,其余的握手过程使用RC4加密。数据包前面的1024字节将被丢弃以防止文献[9,10]中提到的攻击,并且对那些不参与下载的节点进行了数据保密。RC4密钥基于Diffie-Hellman密钥和弱共享密钥,因此,传统的中间人攻击无法实
文档评论(0)