一、Internet层的安全性
对Internet层的安全协议进行标准化的想法早就有了。在过去十年里,已经提出了一些方案。例如,“安全协议3号(SP3)”就是美国国家安全局以及标准技术协会作为“安全数据网络系统(SDNS)”的一部分而制定的。“网络层安全协议(NLSP)”是由国际标准化组织为“无连接网络协议(CLNP)”制定的安全协议标准。“集成化NLSP(I-NLSP)”是美国国家科技研究所提出的包括IP和CLNP在内的统一安全机制。SwIPe是另一个Intenet层的安全协议,由Ioannidis和Blaze提出并实现原型。所有这些提案的共同点多于不同点。事实上,他们用的都是IP封装技术。其本质是,纯文本的包被加密,封装在外层的IP报头里,用来对加密的包进行Internet上的路由选择。到达另一端时,外层的IP报头被拆开,报文被解密,然后送到收报地点。
Internet工程特遣组(IETF)已经特许Internet协议安全协议(IPSEC)工作组对IP安全协议(IPSP)和对应的Internet密钥管理协议(IKMP)进行标准化工作。IPSP的主要目的是使需要安全措施的用户能够使用相应的加密安全体制。该体制不仅能在目前通行的IP(IPv4)下工作,也能在IP的新版本(IPng或IPv6)下工作。该体制应该是与算法无关的,即使加密算法替换了,也不对其他部分的实现产生影响。此外,该体制必须能实行多种安全政策,但要避免给不使用该体制的人造成不利影响。按照这些要求,IPSEC工作组制订了一个规范:认证头(Authentication Header,AH)和封装安全有效负荷(Encapsulating Security Payload,ESP)。简言之,AH提供IP包的真实性和完整性,ESP提供机要内容。
IP AH指一段消息认证代码(Message Authentication Code,MAC),在发送IP包之前,它已经被事先计算好。发送方用一个加密密钥算出AH,接收方用同一或另一密钥对之进行验证。如果收发双方使用的是单钥体制,那它们就使用同一密钥;如果收发双方使用的是公钥体制,那它们就使用不同的密钥。在后一种情形,AH体制能额外地提供不可否认的服务。事实上,有些在传输中可变的域,如IPv4中的time-to-live域或IPv6中的hop limit域,都是在AH的计算中必须忽略不计的。RFC 1828首次规定了加封状态下AH的计算和验证中要采用带密钥的MD5算法。而与此同时,MD5和加封状态都被批评为加密强度太弱,并有替换的方案提出。
IP ESP的基本想法是整个IP包进行封装,或者只对ESP内上层协议的数据(运输状态)进行封装,并对ESP的绝大部分数据进行加密。在管道状态下,为当前已加密的ESP附加了一个新的IP头(纯文本),它可以用来对IP包在Internet上作路由选择。接收方把这个IP头取掉,再对ESP进行解密,处理并取掉ESP头,再对原来的IP包或更高层协议的数据就象普通的IP包那样进行处理。RFC 1827中对ESP的格式作了规定,RFC 1829中规定了在密码块链接(CBC)状态下ESP加密和解密要使用数据加密标准(DES)。虽然其他算法和状态也是可以使用的,但一些国家对此类产品的进出口控制也是不能不考虑的因素。有些国家甚至连私用加密都要限制。
AH与ESP体制可以合用,也可以分用。不管怎么用,都逃不脱传输分析的攻击。人们不太清楚在Internet层上,是否真有经济有效的对抗传输分析的手段,但是在Internet用户里,真正把传输分析当回事儿的也是寥寥无几。
1995年8月,Internet工程领导小组(IESG)批准了有关IPSP的RFC作为Internet标准系列的推荐标准。除RFC 1828和RFC 1829外,还有两个实验性的RFC文件,规定了在AH和ESP体制中,用安全散列算法(SHA)来代替MD5(RFC 1852)和用三元DES代替DES(RFC 1851)。
在最简单的情况下,IPSP用手工来配置密钥。然而,当IPSP大规模发展的时候,就需要在Internet上建立标准化的密钥管理协议。这个密钥管理协议按照IPSP安全条例的要求,指定管理密钥的方法。
因此,IPSEC工作组也负责进行Internet密钥管理协议(IKMP),其他若干协议的标准化工作也已经提上日程。其中最重要的有:
IBM 提出的“标准密钥管理协议(MKMP)”
SUN 提出的“Internet协议的简单密钥管理(SKIP)”
Phil Karn 提出的“Photuris密钥管理协议”
Hugo Krawczik 提出的“安全密钥交换机制(SKEME)”
NSA 提出的“Internet安全条例及密钥管理协议”
Hilarie Orman 提出的“OAKLEY密钥决定协议”
在这里需要再次强调指出,这些协议草案的相似点多于不同点。除MKMP外,它们都要求一个既存的、完全可操作的公钥基础设施(PKI)。MKMP没有这个要求,因为它假定双方已经共同知道一个主密钥(Master Key),可能是事先手工发布的。SKIP要求Diffie-Hellman证书,其他协议则要求RSA证书。
1996年9月,IPSEC决定采用OAKLEY作为ISAKMP框架下强制推行的密钥管理手段,采用SKIP作为IPv4和IPv6实现时的优先选择。目前已经有一些厂商实现了合成的 ISAKMP/OAKLEY方案。Photuris以及类Photuris的协议的基本想法是对每一个会话密钥都采用Diffie-Hellman密钥交换机制,并随后采用签名交换来确认Diffie--Hellman参数,确保没有“中间人”进行攻击。这种组合最初是由Diffie、Ooschot和Wiener在一个“站对站(STS)”的协议中提出的。Photuris里面又添加了一种所谓的“cookie”交换,它可以提供“清障(anti-logging)”功能,即防范对服务攻击的否认。
Photuris以及类Photuris的协议由于对每一个会话密钥都采用Diffie-Hellman密钥交换机制,故可提供回传保护(back-traffic protection,BTP)和完整转发安全性(perfect-forward secrecy,PFS)。实质上,这意味着一旦某个攻击者破解了长效私钥,比如Photuris中的RSA密钥或SKIP中的Diffie-Hellman密钥,所有其他攻击者就可以冒充被破解的密码的拥有者。但是,攻击者却不一定有本事破解该拥有者过去或未来收发的信息。
值得注意的是,SKIP并不提供BTP和PFS。尽管它采用Diffie-Hellman密钥交换机制,但交换的进行是隐含的,也就是说,两个实体以证书形式彼此知道对方长效Diffie--Hellman 公钥,从而隐含地共享一个主密钥。该主密钥可以导出对分组密钥进行加密的密钥,而分组密钥才真正用来对IP包加密。一旦长效Diffie-Hellman密钥泄露,,则任何在该密钥保护下的密钥所保护的相应通信都将被破解。而且SKIP是无状态的,它不以安全条例为基础。每个IP包可能是个别地进行加密和解密的,归根到底用的是不同的密钥。
SKIP不提供BTP和PFS这件事曾经引起IPSEC工作组内部的批评,该协议也曾进行过扩充,试图提供BTP和PFS。但是,扩充后的SKIP协议版本其实是在BTP和PFS功能的提供该协议的无状态性之间的某种折衷。实际上,增加了BTP和PFS功能的SKIP非常类似于Photuris以及类Photuris的协议,唯一的主要区别是SKIP(仍然)需要原来的Diffie-Hellman证书。这一点必须注意:目前在Internet上,RSA证书比其他证书更容易实现和开展业务。
大多数IPSP及其相应的密钥管理协议的实现均基于Unix系统。任何IPSP的实现都必须跟对应协议栈的源码纠缠在一起,而这源码又能在Unix系统上使用,其原因大概就在于此。但是,如果要想在Internet上更广泛地使用和采纳安全协议,就必须有相应的DOS或Windows版本。而在这些系统上实现Internet层安全协议所直接面临的一个问题就是,PC上相应的实现TCP/IP的公共源码资源什么也没有。为克服这一困难,Wagner和Bellovin实现了一个IPSEC模块,它象一个设备驱动程序一样工作,完全处于IP层以下。
Internet层安全性的主要优点是它的透明性,也就是说,安全服务的提供不需要应用程序、其他通信层次和网络部件做任何改动。它的最主要的缺点是: Internet层一般对属于不同进程和相应条例的包不作区别。对所有去往同一地址的包,它将按照同样的加密密钥和访问控制策略来处理。这可能导致提供不了所需的功能,也会导致性能下降。针对面向主机的密钥分配的这些问题,RFC 1825允许(甚至可以说是推荐) 使用面向用户的密钥分配,其中,不同的连接会得到不同的加密密钥。但是,面向用户的密钥分配需要对相应的操作系统内核作比较大的改动。
虽然IPSP的规范已经基本制订完毕,但密钥管理的情况千变万化,要做的工作还很多。尚未引起足够重视的一个重要的问题是在多播 (multicast)环境下的密钥分配问题,例如,在Internet多播骨干网(MBone)或IPv6网中的密钥分配问题。
简而言之,Internet层是非常适合提供基于主机对主机的安全服务的。相应的安全协议可以用来在Internet上建立安全的IP通道和虚拟私有网。例如,利用它对IP包的加密和解密功能,可以简捷地强化防火墙系统的防卫能力。事实上,许多厂商已经这样做了。RSA数据安全公司已经发起了一个倡议,来推进多家防火墙和TCP/IP软件厂商联合开发虚拟私有网。该倡议被称为S-WAN(安全广域网)倡议。其目标是制订和推荐Internet层的安全协议标准.
摘自:http://hackers.home.chinaren.net