IPv6身份验证和安全性(一)

日期: 2007-12-21 来源:TechTarget中国

        很多年来,人们一直在争论IP层是否需要身份验证和安全性及相关的用法问题。本章将讨论如何在IPv6中通过身份验证头( AH )和封装安全性净荷( ESP )头来实现身份验证和安全性,包括安全密码传输、加密和数据包的数字签名。但在探讨IPv6的安全性头之前,本章将首先介绍IP安全性体系结构以及在IPv6中该体系结构可能实现的部分。该体系结构在RFC 1825(IP的安全性体系结构)中首次进行了描述。

        1. 为IP增加安全性

        IPv4的目的只是作为简单的网络互通协议,因而其中没有包含安全特性。如果IPv4仅作为研究工具,或者在包括研究、军事、教育和政府网络的相对严格的辖区中作为产品型网络协议而使用,缺乏安全性并不是一个严重的缺陷。但是,随着IP网络在商用和消费网络中的重要性与日俱增,攻击所导致的潜在危害将具有空前的破坏性。

        本节主要内容包括:人们已经为IP定义的安全性目标,这些目标如何满足,这些目标和相关论题如何在IP中定义。

        应注意,RFC 1825以及后续文档中所定义的IPsec提供的是IP的安全性体系结构,而不是Internet的安全性体系结构。两者的区别很重要: IPsec定义了在IP层使用的安全性服务,对IPv4和IPv6都可用。如果在适当的IPv4选项格式中实现AH和ESP头,IPv4也可以使用这种安全性功能,只是在IPv6中更容易实现。

        1.1 安全性目标

        对于安全性,可以定义如下三个公认的目标:

        身份验证:能够可靠地确定接收到的数据与发送的数据一致,并且确保发送该数据的实体与其所宣称的身份一致。

        完整性:能够可靠地确定数据在从源到目的地传送的过程中没有被修改。

        机密性:确保数据只能为预期的接收者使用或读出,而不能为其他任何实体使用或读出。

        完整性和身份验证经常密切相关,而机密性有时使用公共密钥加密来实现,这样也有助于对源端进行身份验证。

        AH和ESP头有助于在IP上实现上述目标。很简单, AH为源节点提供了在包上进行数字签名的机制。AH之后的数据都是纯文本格式,可能被攻击者截取。但是,在目的节点接收之后,可以使用AH中包含的数据来进行身份验证。

        另一方面,可以使用ESP头对数据内容进行加密。ESP头之后的所有数据都进行了加密,ESP头为接收者提供了足够的数据以对包的其余部分进行解密。

        Internet安全性(实际上任何一种安全性)的问题在于很难创建安全性,尤其是在开放的网络中,包可能经过任意数量的未知网络,任一个网络中都可能有包嗅探器在工作,而任何网络都无法察觉。在这样的开放环境中,即使使用了加密和数字签名,安全性也将受到严重的威胁。对IP业务流的攻击也包括诸如侦听之类,致使从一个实体发往另一个实体的数据被未经授权的第三个实体所窃取。此外, IP安全性还应该解决下列安全性威胁:

        否认服务攻击:即实体使用网络传送数据,致使某个授权用户无法访问网络资源。例如,攻击者可能使某主机淹没于大量请求中,从而致使系统崩溃;或者重复传送很长的e – m a i l报文,企图以恶意业务流塞满用户或站点带宽。

        愚弄攻击:即实体传送虚报来源的包。例如,有一种愚弄攻击是由攻击者发送e – m a i l报文,报头的“ F r o m :”指明该报文的发信人是美国总统。那些在在包头携带错误源地址的攻击则更加阴险。

        密钥处理问题则更加复杂。为使身份验证和加密更可靠, IP安全性体系结构要求使用密钥。如何安全地管理和分配密钥,同时又能正确地将密钥与实体结合以避免中间者的攻击,这是Internet业界所面临的最棘手的问题之一。这种中间者的攻击是指,攻击者(假设为C )将自己置于两个通信实体(假设为A和B )之间,拦截A和B之间传送的所有数据,冒充A把数据重新发送给B,也冒充B把数据重新发送给A。如果C能够以类似B的公共密钥进行身份验证,从而让A确认它就是B,同样也让B误以为它就是A,那么A和B就会误认为他们之间的传送是安全的。

        IPsec本身不能使Internet更加安全。本章只提出与Internet安全性相关的几个最迫切的问题。对Internet安全性的细节感兴趣的读者,请参考本书作者的另一本书《Personal Encryption Clearly Explained》(AP Professional,1998),书中讨论了加密、数字签名和Internet安全性问题。

        1.2 RFC 1825及建议的更新

        RFC 1825于1995年8月发布,共有2 2页;其第5版修改草案完成于1998年5月,已经达到6 6页。安全性的正确实现要求认真考虑细节问题,这是对原RFC进行扩充的主要原因。更新后的文档在最终发布时,在关于如何实现所有的IP协议(包括I C M P和组播)方面将提供更多的细节,同时将更详细讨论密钥管理相关问题和安全性关联问题。

        2 IPsec

        IPsec的目标是提供既可用于IPv4也可用于IPv6的安全性机制,该服务由IP层提供。一个系统可以使用IPsec来要求与其他系统的交互以安全的方式进行—通过使用特定的安全性算法和协议。IPsec提供了必要的工具,用于一个系统与其他系统之间对彼此可接受的安全性进行协商。这意味着,一个系统可能有多个可接受的加密算法,这些算法允许该系统使用它所倾向的算法和其他系统协商,但如果其他系统不支持它的第一选择,则它也可以接受某些替代算法。

       IPsec中可能考虑如下安全性服务:

        访问控制。如果没有正确的密码就不能访问一个服务或系统。可以调用安全性协议来控制密钥的安全交换,用户身份验证可以用于访问控制。

        无连接的完整性。使用IPsec,有可能在不参照其他包的情况下,对任一单独的IP包进行完整性校验。此时每个包都是独立的,可以通过自身来确认。此功能可以通过使用安全散列技术来完成,它与使用检查数字类似,但可靠性更高,并且更不容易被未授权实体所篡改。

        数据源身份验证。IPsec提供的又一项安全性服务是对IP包内包含的数据的来源进行标识。此功能通过使用数字签名算法来完成。

        对包重放攻击的防御。作为无连接协议, IP很容易受到重放攻击的威胁。重放攻击是指攻击者发送一个目的主机已接收过的包,通过占用接收系统的资源,这种攻击使系统的可用性受到损害。为对付这种花招, IPsec提供了包计数器机制。

        加密。数据机密性是指只允许身份验证正确者访问数据,对其他任何人一律不准。它是通过使用加密来提供的。

        有限的业务流机密性。有时候只使用加密数据不足以保护系统。只要知道一次加密交换的末端点、交互的频度或有关数据传送的其他信息,坚决的攻击者就有足够的信息来使系统混乱或毁灭系统。通过使用IP隧道方法,尤其是与安全性网关共同使用, IPsec提供了有限的业务流机密性。

        通过正确使用ESP头和AH,上述所有功能都有可能得以实现。目前,人们使用了很多密码功能,在下一节中将对此予以简要描述。后续节将扼要描述密钥管理基础设施。

        2.1 加密和身份验证算法
        由于对安全性的攻击方法多种多样,设计者很难预计到所有的攻击方法,因此设计安全性算法和协议非常困难。普遍为人接受的关于安全性方法的观点是,一个好的加密算法或身份验证算法即使被攻击者了解,该算法也是安全的。这一点对于Internet安全性尤其重要。在Internet中,使用嗅探器的攻击者通过侦听系统与其连接协商,经常能够确切了解系统使用的是哪一种算法。

        与Internet安全性相关的重要的密码功能大致有5类,包括对称加密、公共密钥加密、密钥交换、安全散列和数字签名。

        1. 对称加密
        大多数人都熟知对称加密这一加密方法。在这种方法中,每一方都使用相同的密钥来加密或解密。只要掌握了密钥,就可以破解使用此法加密的所有数据。这种方法有时也称作秘密密钥加密。通常对称加密效率很高,它是网络传送大量数据中最常用的一类加密方法。

        常用的对称加密算法包括:

        数据加密标准( D E S )。D E S首先由I B M公司在7 0年代提出,已成为国际标准。它有5 6位密钥。三重D E S算法对D E S略作变化,它使用D E S算法三次加密数据,从而改进了安全性。

        R C 2、R C 4和R C 5。这些密码算法提供了可变长度密钥加密方法,由一家安全性动态公司,R SA数据安全公司授权使用。目前网景公司的N a v i g a t o r浏览器及其他很多Internet 客户端和服务器端产品使用了这些密码。

        其他算法。包括在加拿大开发的用于N o r t e l公司E n t r u s t产品的C A S T、国际数据加密算法( I D E A )、传闻由前苏联安全局开发的G O S T算法、由Bruce Schneier开发并在公共域发表的B l o w f i s h算法及由美国国家安全局开发并用于C l i p p e r芯片的契约密钥系统的S k i p j a c k算法。

        安全加密方法要求使用足够长的密钥。短密钥很容易为穷举攻击所破解。在穷举攻击中,攻击者使用计算机来对所有可能的密钥组合进行测试,很容易找到密钥。例如,长度为4 0位的密钥就不够安全,因为使用相对而言并不算昂贵的计算机来进行穷举攻击,在很短的时间内就可以破获密钥。同样,单D E S算法已经被破解。一般而言,对于穷举攻击,在可预测的将来,1 2 8位还可能是安全的。

        对于其他类型的攻击,对称加密算法也比较脆弱。大多数使用对称加密算法的应用往往使用会话密钥,即一个密钥只用于一个会话的数据传送,或在一次会话中使用几个密钥。这样,如果会话密钥丢失,则只有在此会话中传送的数据受损,不会影响到较长时期内交换的
大量数据。

       2. 公共密钥加密

        公共密钥加密算法使用一对密钥。公共密钥与秘密密钥相关联,公共密钥是公开的。以公共密钥加密的数据只能以秘密密钥来解密,同样可以用公共密钥来解密以秘密密钥加密的数据。这样只要实体的秘密密钥不泄露,其他实体就可以确信以公共密钥加密的数据只能由
相应秘密密钥的持有者来解密。尽管公共密钥加密算法的效率不高,但它和数字签名(参见后续讨论)均是最常用的对网络传送的会话密钥进行加密的算法。

        最常用的一类公共密钥加密算法是R SA算法,该算法由Ron Rivest、Adi Shamir 和L e n A d l e m a n开发,由R SA数据安全公司授权使用。R SA定义了用于选择和生成公共/秘密密钥对的机制,以及目前用于加密的数学函数。

        3. 密钥交换

        开放信道这种通信媒体上传送的数据可能被第三者窃听。在Internet这样的开放信道上要实现秘密共享难度很大。但是很有必要实现对共享秘密的处理,因为两个实体之间需要共享用于加密的密钥。关于如何在公共信道上安全地处理共享密钥这一问题,有一些重要的加密算法,是以对除预定接受者之外的任何人都保密的方式来实现的。

        D i ff i e – H e l l m a n密钥交换算法允许实体间交换足够的信息以产生会话加密密钥。按照惯例,假设一个密码协议的两个参与者实体分别是A l i c e和B o b,A l i c e使用B o b的公开值和自己的秘密值来计算出一个值; B o b也计算出自己的值并发给A l i c e,然后双方使用自己的秘密值来计算他们的共享密钥。其中的数学计算相对比较简单,而且不属于本书讨论的范围。算法的概要是B o b和A l i c e能够互相发送足够的信息给对方以计算出他们的共享密钥,但是这些信息却不足以让攻击者计算出密钥。

        D i ff i e – H e l l m a n算法通常称为公共密钥算法,但它并不是一种公共密钥加密算法。该算法可用于计算密钥,但密钥必须和某种其他加密算法一起使用。但是, D i ff i e – H e l l m a n算法可用于身份验证。Network Associates公司的P G P公共密钥软件中就使用了此算法。

        密钥交换是构成任何完整的Internet安全性体系都必备的。此外, IPsec安全性体系结构还包括Internet密钥交换( I K E )及Internet安全性关联和密钥管理协议( I SA K M P )。在后续章节中将讨论这些标准和其他相关标准。

        4. 安全散列

        散列是一定量数据的数据摘要的一种排序。检查数字是简单的散列类型,而安全散列则产生较长的结果,经常是1 2 8位。对于良好的安全散列,攻击者很难颠倒设计或以其他方式毁灭。安全散列可以与密钥一起使用,也可以单独使用。其目的是提供报文的数字摘要,用来验证已经收到的数据是否与发送者所发送的相同。发送者计算散列并将其值包含在数据中,接收者对收到的数据进行散列计算,如果结果值与数据中所携带的散列值匹配,接收者就可以确认数据的完整性。

        常用的散列方法由R SA数据安全公司提出,包括M D 2、M D 4和M D 5报文摘要函数。安全散列算法( SHA )是由美国国家标准和技术协会( N I S T )所开发的标准摘要函数。散列可以单独使用,也可以和数字签名一起使用。

        5. 数字签名

        前面提到的公共密钥加密依赖于密钥对,而数字签名则依靠公共密钥加密的特性,即允许数据以实体密钥对中的秘密密钥来加密,以公共密钥来解密。发送者首先对于要签名的数据进行安全散列计算,然后对结果使用秘密密钥加密。而接收者首先进行相同的散列计算,

        然后对发送者所附加的加密值进行解密。如果两次计算的值能够匹配,接收者就可以确信公共密钥的主人就是对报文签名的实体,且报文在传送中并没有被修改。

        RSA公共密钥加密算法可以用于数字签名。签名实体为待签名的数据建立散列,然后以自己的密钥对散列加密;证实实体则对接收到的数据进行相同的散列计算,使用签名实体的公共密钥对签名解密,并且比较所得的两个值。如果散列与解密的签名相同,则数据就得到证实。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐

  • 如何实现IPv6安全部署?你必须考虑五大因素

    如何实现IPv6安全部署?除了IPv6协议组自身的安全性能外,有许多因素——技术的和非技术的——大大地影响着新兴的IPv6部署的安全性。

  • IPv6身份验证和安全性(二)

    很多年来,人们一直在争论IP层是否需要身份验证和安全性及相关的用法问题。本文将讨论如何在IPv6中通过身份验证头( AH )和封装安全性净荷( ESP )头来实现身份验证和安全性,包括安全密码传输、加密和数据包的数字签名。