VPN技术详解(下)(3) 接受方使用相同的密钥将密文还原成明文。RSA RC4算法,数据加密标准(DES),国际数据加密算法(IDEA)以及Skipjack加密 技术都属于对称加密方式。 非对称加密,或公用密钥,通讯各方使用两个不同的密钥,一个是只有发送方知道的专用密钥,另一个则是对应的公用密钥,任何 人都可以获得公用密钥。专用密钥和公用密钥在加密算法上相互关联,一个用于数据加密,另一个用于数据解密。 公用密钥加密技术允许对信息进行数字签名。数字签名使用发送发送一方的专用密钥对所发送信息的某一部分进行加密。接受方收 到该信息后,使用发送方的公用密钥解密数字签名,验证发送方身份。 证书 使用对称加密时,发送和接收方都使用共享的加密密钥。必须在进行加密通讯之前,完成密钥的分布。使用非对称加密时,发送方 使用一个专用密钥加密信息或数字签名,接收方使用公用密钥解密信息。公用密钥可以自由分布给任何需要接收加密信息或数字签 名信息的一方,发送方只要保证专用密钥的安全性即可。 为保证公用密钥的完整性,公用密钥随证书一同发布。证书(或公用密钥证书)是一种经过证书签发机构(CA)数字签名的数据结 构。CA使用自己的专用密钥对证书进行数字签名。如果接受方知道CA的公用密钥,就可以证明证书是由CA签发,因此包含可靠的信 息和有效的公用密钥。 总之,公用密钥证书为验证发送方的身份提供了一种方便,可靠的方法。IPSec可以选择使用该方式进行端到端的验证。RAS可以使 用公用密钥证书验证用户身份。 扩展验证协议(EAP) 如前文所述,PPP只能提供有限的验证方式。EAP是由IETF提出的PPP协议的扩展,允许连接使用任意方式对一条PPP连接的有效性进 行验证。EAP支持在一条连接的客户和服务器两端动态加入验证插件模块。 交易层安全协议(EAP-TLS) EAP-TLS已经作为提议草案提交给IETF,用于建立基于公用密钥证书的强大的验证方式。使用EAP-TLS,客户向拨入服务器发送一 份用户方证书,同时,服务器把服务器证书发送给客户。用户证书向服务器提供了强大的用户识别信息;服务器证书保证用户已经 连接到预期的服务器。 用户方证书可以被存放在拨号客户PC中,或存放在外部智能卡。无论那种方式,如果用户不能提供没有一定形式的用户识别信息 (PIN号或用户名和口令),就无法访问证书。 IPSEC IPSEC是一种由IETF设计的端到端的确保基于IP通讯的数据安全性的机制。IPSEC支持对数据加密,同时确保数据的完整性。按照 IETF的规定,不采用数据加密时,IPSEC使用验证包头(AH)提供验证来源验证(source authentication),确保数据的完整 性;IPSEC使用封装安全负载(ESP)与加密一道提供来源验证,确保数据完整性。IPSEC协议下,只有发送方和接受方知道秘密密 钥。如果验证数据有效,接受方就可以知道数据来自发送方,并且在传输过程中没有受到破坏。 可以把IPSEC想象成是位于TCP/IP协议栈的下层协议。该层由每台机器上的安全策略和发送、接受方协商的安全关联(security association)进行控制。安全策略由一套过滤机制和关联的安全行为组成。如果一个数据包的IP地址,协议,和端口号满足一个过 滤机制,那么这个数据包将要遵守关联的安全行为。 协商安全关联(NegotiatedSecurityAssociation) 上述第一个满足过滤机制的数据包将会引发发送和接收方对安全关联进行协商。ISAKMP/OAKLEY是这种协商采用的标准协议。在一 个ISAKMP/OAKLEY交换过程中,两台机器对验证和数据安全方式达成一致,进行相互验证,然后生成一个用于随后的数据加密的个 共享密钥。 验证包头 通过一个位于IP包头和传输包头之间的验证包头可以提供IP负载数据的完整性和数据验证。验证包头包括验证数据和一个序列号, 共同用来验证发送方身份,确保数据在传输过程中没有被改动,防止受到第三方的攻击。IPSEC验证包头不提供数据加密;信息将 以明文方式发送。 封装安全包头 为了保证数据的保密性并防止数据被第3方窃取,封装安全负载(ESP)提供了一种对IP负载进行加密的机制。另外,ESP还可以提 供数据验证和数据完整性服务;因此在IPSEC包中可以用ESP包头替代AH包头。