1 概述
P2P网络技术的核心在于不同网络节点间的资源共享,在P2P网络技术中可以被用来资源共享的有文件、存储空间及计算能力。和其他网络技术相比,P2P网络技术在实际操作中比较灵活,同时成本也较低,基于上述原因,P2P网络技术被广泛应用于商业经营活动中。P2P网络技术最重要的特点便是开放性,P2P网络技术开放性的特带你在带来方便的同时,也伴随着一些缺点,比较突出的便是,由于其开放性使得P2P网络技术的安全性得不到很好的保障。由于商业经营活动的特点,对P2P在商业活动中的安全性要求比较高。从结构特点上看,P2P网络属于一种分布式网络体系结构,同时也可以看成是位于传统TCP/IP网络之上的一种覆盖网络。基于P2P网络的上述特点,特意采用一些比较传统的网络安全措施如防火墙、VPN以及RADIUS等确保P2P网络的安全性。接下来笔者将结合多年的工作经验,对P2P网络中对等节点安全通信做出浅显的探讨。
2 P2P安全通信要求
正是由于P2P网络技术的开放性和灵活性,使得P2P网络技术比较适合运用在商业、企业分布式网络应用中,在实际应用中也取得了很好的效果。由于商业应用的特殊性,P2P网络中的机密性、认证、完整性和可用性等安全问题一直是P2P网络在商业运用中急需解决的问题。
2.1机密性
通常所说的P2P机密性是指P2P网络中两个对等节点安全通信的安全性,为了保障信息的安全性,在两个对等节点之间进行信息传递时必须进行加密。在目前P2P网络技术中比较常用的加密技术有对称加密技术,比如RC5、DES、IDEA、AES等等。同时也可以采用非对称加密技术对节点之间传递的信息进行加密,比较常见的非对称加密技术有RSA公钥加密算法。和非对称加密技术相比,对称加密技术的加密速度比较快,同时加密过程比较易于操作等优势,但是采用对称加密技术时,所用到的秘密密钥在分发过程中的安全问题不能够绝对得到保障。与之相比的是,RSA公钥加密算法虽然在加密过程中效率没有对称加密技术高,同时对计算能力也有着较高的要求,但是RSA公钥加密算法可以很好的保障秘密密钥在分发过程中的安全问题。基于非对称加密技术和对称加密技术的特点,使得其适用情况各不相同。一般而言,RSA公钥加密算法技术适用于秘密密钥交换过程,对称加密技术技术适合应用在真正的数据加密情况。
2.2完整性
在P2P网络中不仅要确保数据传输过程中的安全性,也要确保数据传输过程中的完整性,为了确保数据在P2P网络传输过程中保持完整性,目前比较常用的方法是确保安全散列计算过程的准确性。比前技术比较成熟,应用比较广泛的安全散列算法有MD5和SHA-1。所谓的安全散列算法实质上是一种特殊的函数,这里提到的函数与常见的函数有着较大的差别。这里指的函数指单向安全哈希函数,这种函数可以处理的信息容量比较大,对于任何长度的信息都可以进行安全散列,并得到唯一的固定长度的散列值,在信息传递过程中,得到的固定长度的散列值也一并被传输。当信息被接收者接收到之后,接收者采取同样的方法把接收到的安全哈希函数的信息进行安全散列,并得到一个新的散列值。然后把接受者散列得到的散列值和随着信息传递过来的散列值进行比较,若两者的数值相同,则说明数据在传递过程中没有被篡改,若经过比较两个数值不同,则说明信息在传递过程中被篡改,则需要使用共享密钥或接收方公钥对这个散列值进行加密或签名。
2.3认证
认证时防止信息传递时被人攻击的有效方法之一,所谓的认证是就是确认信息发送者和接收者是不是真正的信息发送者和接收者。为了确保认证的有效性,在实际运用时采用双向认证机制,比较常见的双向认证方式有:
2.3.1账户名和密码认证方式
账户名和密码认证方式是比较常见的一种认证方式,同时也是比较简单的一种认证方式,由于账户名和密码认证方式的安全系数比较低。基于其上述特性使得账户名和密码认证方式适用于传统Telnet、FTP应用中,并不适合在安全系数要求比较高的场合使用。
2.3.2挑战和应答认证方式
在此中应答方式中,由认证方提出挑战,然后由被认证方给出应答,比较常见的认证机制有CHAP、MS-CHAP等等。此种方法相比账户名和密码认证方式安全系数要高。
2.3.3集中式认证方式
集中认证方式主要依靠被大家都信任的集中式安全服务器,通过该服务器可以实现节点之间的双向认证。目前技术成熟的集中式安全认证系统有Kerberos和RADIUS等。
2.3.4公钥签名认证方式
由于在这种认证过程中,每个节点都具有唯一的公私钥对。所以在认证过程中只需要对双方的密钥进行签名,并验证双方的签名。此种认证方式适用于SSL和IPSec等安全协议中实现透明的双向认证。
2.4可用性
所谓的可用性是指,节点之间传递的信息和资源只能被授权的户开放使用。为了确保信息的可用性,在传递过程中是由服务器上的存取控制列表ACL完成。在P2P网络中,可以根据节点的特性把相应的节点分入相应的组内。
3 P2P安全隧道
在目前的P2P网络技术中, P2P安全隧道显得十分重要,根据P2P技术的特点,可以把P2P安全隧道分为网络层、传输层及应用层安全隧道。
3.1网络层安全隧道
网络层安全隧道是近几年新出现的一种技术,也称为IPSec协议,在TCP/IP网络中扮演着不可取代的角色。虽然IPSec协议出现的时间并不长,但是现在已经被广泛的运用于各种VPN技术中。
3.2 IPSec协议
IPSec是P2P网络技术中比较重要的一种技术,其提出的目的就是把网络安全机制引入IPv4和IPv6中。同时IPsec也分为AH和ESP,AH技术是为了确保IP包的完整性,ESP是为了使信息的加密过程有效。
IPSec支持的认证方式也很多,比较常见的有共享密钥、数字签名及公钥加密等双向认证方式。IPSec支持的加密算法和安全散列算法也比较多,如DES、IDEA、BlowFish、 MD5和SHA-1等。
3.3 IKE
IKE与IPSec协议不同,IKE是一种混合型协议,IKE定义与ISAKMP密不可分,同时IKE也充分采用了OAKLEY的密钥交换模式以及SKEME的共享和密钥更新技术。IKE在认证过程中分为如下两步,
首先使用Deffie-Hellman技术得到一个IKESA。其次便是用前面得到的IKESA建立IPsecSA,从而确保传递的信息的完整性和安全性。
3.4 SSL协议
SSL协议时P2P网络对等节点传递信息中常用的一种技术,SSL的原理是用公钥和传统加密技术建立一个安全的加密隧道。通常来说,SSL主要包括SSL记录协议和SSL握手协议。SSL记录协议是为了确保信息在传递过程中的格式正确,而SSL握手协议是为了得到合适的数据加密算法。SSL协议的认证过程如下,首先信息发送方把自己的X.509证书发送给信息接收方,接收方接收到证书后进行认证,认证完成之后生成一个秘密消息,再把得到的秘密消息传送给信息发送方,发送方在进行确认,上述过程完成之后,便可以进行信息交换。
4 P2P安全实现
目前比较常见的开发P2P的平台有C++,Java等,但是采用上述方法并不能把所有的P2P改造成安全的P2P应用,因为需要对程序的源代码做出大量的修改。为了解决上述问题,并保证P2P网络的安全性得到保障。P2P的安全实现方式比较常用的有,采用客户端和服务端SSL代理方式,把不安全的TCP连接嵌套入到由SSL客户端代理和SSL服务端代理建立的SSL安全隧道中。目前,可以实现上述功能的工具平台有Stunnel。随着大数据时代的到来,一个集中策略服务器显得很有必要,通过该策略服务器实现对所有参与通信的Peer节点的自动策略配置,从事保证P2P网络的安全。
5 结束语
随着我国经济的发展,P2P的应用领域必将越来越广泛,同时P2P网络中对等节点间安全通信的问题也必将会越来越受到人们的重视,虽然P2P网络技术有很好的应用前景,但是若安全性得不到保障,其使用必将受到限制。只有P2P网络的安全性得到解决,P2P网络技术的发展才越越来越快。
参考文献:
[1] 梁卫红.对等网络编程源代码解析[M].北京:电子工业出版社,2002,8.
[2] SKent.Security Architectureforthe Internet Protocol.RFC2401,Nov,1998.
[3] Kent Sand RAtkinson.IPEncapsulating Security Payload(ESP).RFC2406,Nov,1998.
[4] HarkinsD,DCarrel.The Internet Key Exchange(IKE).RFC2409,Nov,1998.
[5] Netscape.Inc.,SSL3.0Specification,Mar,1996.