1、P2P技术浅析,引言,如今,P2P迅速成为计算机界关注的热门话题之一,财富杂志更将P2P列为影响Internet未来的四项科技之一。,内容,P2P综述 P2P的代表BT通信原理分析 P2P的安全问题,P2P综述,P2P是对等计算( Peer-to-Peer)的简称,它是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源需要由网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。,P2P综述,P2P打破了传统的Client/Server (C/S)模式,在网络中的每个结点的地位都是对等的。在此网络中的参与者
2、既是资源(服务和内容)提供者(Server),又是资源(服务和内容)获取者(Client)。Client/Server 模式 Peer to Peer 模式,P2P综述,应用 提供文件和其它内容共享的P2P网络,例如 Napster, BitTorrent, eMule,P2P电视等 即时通讯交流, 例如腾讯QQ 、 ICQ、OICQ、YahooMessenger等 安全的P2P通讯与信息共享,例如Skype、Crowds等 基于P2P方式的协同处理与服务共享平台,例如JXTA、Magi、.NET My Service等,P2P技术的特点,非中心化 可扩展性 健壮性 高性能/价格比 隐私保护,
3、BT原理分析,BT由如下几部分组成:.torrent文件、种子提供站点、目录服务器和内容发布者/下载者。 .torrent文件是一个文本文件,包含了tracker信息和文件信息两部分。tracker信息主要是BT下载中需要用到的tracker服务器的地址和针对tracker服务器的设置;文件信息是指将目标文件计算处理后再根据BT协议的B编码规则网编码后得到的信息。,BT原理分析,种子提供站点也就是.torrent文件的提供站点,为下载者提供.torrent文件下载服务。 目录服务器记录被下载的文件的索引信息及下载该文件的用户的信息(主要是IP地址及端口号)。,BT原理分析,BT的主要原理是把提
4、供下载的文件虚拟分成大小相等的块,块大小必须为2 Kbyte的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入.torrent文件中,所以.torrent文件就是被下载文件的“索引”。,BT原理分析,BT协议主要包括3个部分: .torrent文件的格式 tracker HTTP/HTTPS协议 Peer wire协议(使用TCP)tracker HTTP/HTTPS协议是BT客户机与tracker服务器之间的通信协议,Peer wire协议是BT客户机之间的通信协议。,BT原理分析,.torrent文件的结构 采用B编码。B编码是一种简洁的数据组
5、织方式,支持4种数据类型:byte strings、integers、lists和dictionaries。integers、lists和dictionaries类型分别以字母i、l、d作为首定界符,以字母e作为尾定界符。byte strings类型不使用首/尾定界符,其格式为:,如4:spam表示字符串“spam”。,BT原理分析,其中的一些主要成份如下: announce:tracker服务器的URL,例:http:/:8080/announce。 announce-list:备用tracker服务器的URL列表。 creation date:.torrent文件的创建日期,使用标准的UN
6、IX时间。 comment:.torrent文件制作者添加的任意格式的说明。 created by:制作.torrent文件的工具。 encoding:发布的资源使用的编码方式。 info:发布的文件的信息。有两种格式,单文件格式和多文件格式。,BT原理分析,tracker HTTP/HTTPS协议 BT客户机依次向.torrent中的tracker服务器发送连接请求,以获得正在下载该文件的对等方列表(主要是IP地址和监听端口)。如果连接成功获得列表,就关闭连接,尝试与列表中的对等方建立连接;如果不成功,尝试下一个tracker服务器。,BT原理分析,Peer wire协议 BT客户机会尝试与
7、返回的对等方列表中的部分对等方建立TCP连接。 建立TCP连接之后,对等方之间的交互过程包括以下几步:(1)握手,通过Handshake分组实现。(2)互换所拥有的资源的情况。通过Bitfield分组实现。,BT原理分析,(3)互通对资源的意愿情况,包括interested、not interested、choke、unchoke等4种。(4)互相请求资源,通过request piece、piece分组实现。 (5)断开连接。因Peer wire协议使用了TCP方式,对等方A与对等方B断开连接时,只需要断开它们之间的TCP连接即可。,P2P的安全问题,P2P网络采用的分布式结构在提供扩展性和灵
8、活性的同时,也使它面临着巨大的安全挑战。 它需要在没有中心节点的情况下,提供身份验证、授权、数据信息的安全传输、数字签名、加密等机制。但目前的P2P技术距离实现这一目标尚有一定的距离。 P2P网络面临的主要安全威胁有:,P2P的安全问题,P2P信息共享与知识产权保护 由于数字内容可以很容易地被复制与传输,尤其是P2P共享软件的繁荣加速了盗版媒体的分发,增加了知识产权保护的难点。美国唱片工业协会(RIAA,Recording Industry Association of America)与这些共享软件公司展开了漫长的官司拉锯战,著名的Napster便是这场战争的第一个牺牲者。,P2P的安全问题
9、,路由攻击 攻击者可以宣称(当然是不正确的)一个随机节点负责保存某个关键字。这将会导致关键字被保存在一个不正确的节点上,当然也就不可能被其他节点检索到。由于每个节点都是通过和其他节点进行交互来构造自己的路由表,因此攻击者可以向其他节点发送不正确的路由信息来破坏其他节点的路由表。,P2P的安全问题,穿越防火墙 P2P网络节点既可以位于公网,也可以处在内部局域网。P2P软件经过特殊设计,能够通过防火墙使内外网用户建立连接,这就像是在防火墙上开放了一个秘密通道(Security Hole),使得内网直接暴露在不安全的外部网络环境下。,P2P的安全问题,P2P带来的新型网络病毒传播问题 P2P网络提供了方便的共享和快速的选路机制,为某些网络病毒提供了更好的入侵机会。而且由于参与P2P网络的节点数量非常大,因此通过P2P系统传播的病毒,波及范围大,覆盖面广,从而造成的损失会很大。,