IPv4的目的只是作为简单的网络互通协议,因而其中没有包含安全特性。假如IPv4仅作为研究工具,或者在包括研究、军事、教育和政府网络的相对严格的辖区中作为产品型网络协议而使用,缺乏安全性并不是一个严重的缺陷。但是,随着IP网络在商用和消费网络中的重要性与日俱增,攻击所导致的潜在危害将具有空前的破坏性。
本文主要内容包括:
•人们已经为IP定义的安全性目标。
•这些目标如何满足。
•这些目标和相关论题如何在IP中定义。下一节将介绍IP的安全性体系结构(又称为IPsec)本身的细节以及为完成上述目标而安装的一些工具。
应注重,RFC1825以及后续文档中所定义的IPsec提供的是IP的安全性体系结构,而不是Internet的安全性体系结构。两者的区别很重要:IPsec定义了在IP层使用的安全性服务,对IPv4和IPv6都可用。假如在适当的IPv4选项格式中实现AH和ESP头,IPv4也可以使用这种安全性功能,只是在IPv6中更轻易实现。
安全性目标
对于安全性,可以定义如下三个公认的目标:
•身份验证:能够可靠地确定接收到的数据与发送的数据一致,并且确保发送该数据的实体与其所宣称的身份一致。
•完整性:能够可靠地确定数据在从源到目的地传送的过程中没有被修改。
•机密性:确保数据只能为预期的接收者使用或读出,而不能为其他任何实体使用或读出。完整性和身份验证经常密切相关,而机密性有时使用公共密钥加密来实现,这样也有助于对源端进行身份验证。
AH和ESP头有助于在IP上实现上述目标。很简单,AH为源节点提供了在包上进行数字签名的机制。AH之后的数据都是纯文本格式,可能被攻击者截取。但是,在目的节点接收之后,可以使用AH中包含的数据来进行身份验证。
另一方面,可以使用ESP头对数据内容进行加密。ESP头之后的所有数据都进行了加密,ESP头为接收者提供了足够的数据以对包的其余部分进行解密。
Internet安全性(实际上任何一种安全性)的问题在于很难创建安全性,尤其是在开放的网络中,包可能经过任意数量的未知网络,任一个网络中都可能有包嗅探器在工作,而任何网络都无法察觉。在这样的开放环境中,即使使用了加密和数字签名,安全性也将受到严重的威胁。对IP业务流的攻击也包括诸如侦听之类,致使从一个实体发往另一个实体的数据被未经授权的第三个实体所窃取。此外,IP安全性还应该解决下列安全性威胁:
•否认服务攻击:即实体使用网络传送数据,致使某个授权用户无法访问网络资源。例如,攻击者可能使某主机沉没于大量请求中,从而致使系统崩溃;或者重复传送很长的email报文,企图以恶意业务流塞满用户或站点带宽。
•愚弄攻击:即实体传送虚报来源的包。例如,有一种愚弄攻击是由攻击者发送e-mail报文,报头的“From:”指明该报文的发信人是美国总统。那些在在包头携带错误源地址的攻击则更加阴险。
密钥处理问题则更加复杂。为使身份验证和加密更可靠,IP安全性体系结构要求使用密钥。如何安全地治理和分配密钥,同时又能正确地将密钥与实体结合以避免中间者的攻击,这是Internet业界所面临的最棘手的问题之一。这种中间者的攻击是指,攻击者(假设为C)将自己置于两个通信实体(假设为A和B)之间,拦截A和B之间传送的所有数据,冒充A把数据重新发送给B,也冒充B把数据重新发送给A。假如C能够以类似B的公共密钥进行身份验证,从而让A确认它就是B,同样也让B误以为它就是A,那么A和B就会误认为他们之间的传送是安全的。
IPsec本身不能使Internet更加安全。本章只提出与Internet安全性相关的几个最迫切的问题。对Internet安全性的细节感爱好的读者,请参考本书作者的另一本书《PersonalEncryptionClearlyEXPlained》(APProfessional,1998),书中讨论了加密、数字签名和Internet安全性问题。
RFC1825及建议的更新
RFC1825于1995年8月发布,共有22页;其第5版修改草案完成于1998年5月,已经达到66页。安全性的正确实现要求认真考虑细节问题,这是对原RFC进行扩充的主要原因。更新后的文档在最终发布时,在关于如何实现所有的IP协议(包括ICMP和组播)方面将提供更多的细节,同时将更具体讨论密钥治理相关问题和安全性关联问题。
IPsec
IPsec的目标是提供既可用于IPv4也可用于IPv6的安全性机制,该服务由IP层提供。一个系统可以使用IPsec来要求与其他系统的交互以安全的方式进行—通过使用特定的安全性算法和协议。IPsec提供了必要的工具,用于一个系统与其他系统之间对彼此可接受的安全性进行协商。这意味着,一个系统可能有多个可接受的加密算法,这些算法答应该系统使用它所倾向的算法和其他系统协商,但假如其他系统不支持它的第一选择,则它也可以接受某些替代算法。
IPsec中可能考虑如下安全性服务:
•访问控制。假如没有正确的密码就不能访问一个服务或系统。可以调用安全性协议来控制密钥的安全交换,用户身份验证可以用于访问控制。
•无连接的完整性。使用IPsec,有可能在不参照其他包的情况下,对任一单独的IP包进行完整性校验。此时每个包都是独立的,可以通过自身来确认。此功能可以通过使用安全散列技术来完成,它与使用检查数字类似,但可靠性更高,并且更不轻易被未授权实体所篡改。
•数据源身份验证。IPsec提供的又一项安全性服务是对IP包内包含的数据的来源进行标识。此功能通过使用数字签名算法来完成。
•对包重放攻击的防御。作为无连接协议,IP很轻易受到重放攻击的威胁。重放攻击是指攻击者发送一个目的主机已接收过的包,通过占用接收系统的资源,这种攻击使系统的可用性受到损害。为对付这种花招,IPsec提供了包计数器机制。
•加密。数据机密性是指只答应身份验证正确者访问数据,对其他任何人一律不准。它是通过使用加密来提供的。
•有限的业务流机密性。有时候只使用加密数据不足以保护系统。只要知道一次加密交换的末端点、交互的频度或有关数据传送的其他信息,果断的攻击者就有足够的信息来使系统混乱或毁灭系统。通过使用IP隧道方法,尤其是与安全性网关共同使用,IPsec提供了有限的业务流机密性。
通过正确使用ESP头和AH,上述所有功能都有可能得以实现。