- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
IPv6的安全机制和实施
录入:edatop.com 点击:
(解放军广州通信学院 广州 510500)
摘 要 本篇文章介绍了IPv6中用以实现IPSec安全服务功能的认证报头AH和封装安全载荷ESP两个协议的工作模式,并重点讨论了IPSec的实施。
关键词 IPv6 IPSec 认证报头 安全封装载荷
IP是网络层最重要的协议,是实现多个网络互连的关键。IPv6作为IP的新版本,其目的是继承和取代IPv4。由于IP设计之初没有考虑安全性,因而在早期的互联网上时常发生诸如企业或机构网络遭到攻击、机密数据被窃取等事情。从1995年开始,IETF着手研究制定了一套用于保护IP通信的IP安全(IP Security,IPSec)协议,来保证IP数据传输的安全。
1 安全标准IPSec
IETF在RFC 1825、RFC 1826和RFC 1827中定义了IP的安全体系结构(IP Security,IPSec)。IPSec是IPv6的一个组成部分,也是IPv4的一个可选扩展协议。它由7个文件(体系结构、ESP、AH协议、加密算法、认证算法、解释域、密钥管理)组成,IPSec提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭到改动。加密机制通过对数据进行编码来保证数据的机密性。
1.1 IPSec的工作原理
IPSec提供了3种不同的形式来保护通过IP网络传送的数据。
认证:确定所接受的数据与所发送的数据一致,同时可以确定申请发送者实际上是真实发送者,而不是伪装的。
数据完整:保证数据从原发地到目的地的传送过程中没有任何不可检测的数据丢失与改变。
机密性:保证相应的接收者能获取发送的真正内容,而未被授权的接收者无法获知数据的真正内容。
IPSec通过3个基本要素来提供以上3种保护形式:认证协议头(AH)、安全加载封装(ESP)和互联网密钥管理协议(IKM)。认证协议头和安全加载封装可以通过分开或组合使用来达到所希望的保护等级。
认证协议头(AH)是在所有数据包头加入一个密码。AH通过一个只有密钥持有人才知道的“数字签名”来对用户进行认证。这个签名是数据包通过特别的算法得出的独特结果;AH还能维持数据的完整性,因为在传输过程中无论多小的变化被加载,数据包头的数字签名都能把它检测出。两个最普遍的AH标准是MD5和SHA-l,MD5使用最高到128bit的密钥,而SHA-1通过最高到160bit的密钥提供更强的保护。
安全加载封装(ESP)通过对数据包的全部数据和加载内容进行全加密来保证传输信息的机密性,这样可以避免其他用户通过监听来打开信息交换的内容,只有拥有密钥的用户才能打开内容。ESP也能提供认证和维持数据的完整性。最主要的ESP标准是数据加密标准(DES)。DES最高支持56bit的密钥,而3DES使用3套密钥加密,那就相当于使用最高到168bit的密钥。由于ESP实际上加密所有的数据,因而它比AH需要更多的处理时间,从而导致性能下降。
密钥管理包括密钥确定和密钥分发两个方面,最多需要4个密钥:AH和ESP各两个发送和接收密钥。密钥本身是一个二进制字符串,通常用十六进制表示。密钥管理包括手工和自动两种方式,手工管理系统保证有限的安全需要,而自动管理系统能满足其他所有的应用要求。
使用手工管理系统时,密钥由管理站点确定,然后分发到所有的远程用户。真实的密钥可以用随机数字生成器或简单的任意拼凑计算出来,每一个密钥可以根据用户的安全策略进行修改。使用自动管理系统,可以动态地确定和分发密钥。自动管理系统具有一个中央控制点,集中的密钥管理者可以令自己更加安全,最大限度地发挥IPSec的效用。
IPSec的一个最基本的优点是它可以使用在共享网络访问设备上,甚至在所有的主机和服务器上完全实现,这在很大程度上避免了升级任何网络的相关资源。在客户端,IPSec架构允许使用远程访问介入路由器和基于纯软件方式、使用普通Modem的PC机和工作站。而ESP通过两种模式在应用上提供更多的弹性:传送模式和隧道模式。
传送模式通常当ESP在一台主机(客户机或服务器)上实现时使用,传送模式使用原始明文IP包头,并且只加密数据,包括它的TCP和UDP包头。隧道模式通常是当ESP在关联到多台主机的网络访问介入装置实现时使用,隧道模式处理整个IP包——包括全部TCP/IP或UDP/IP包头和数据,它用自己的地址作为源地址加入到新的IP包头。当隧道模式用在用户终端设置时,它可以提供更多的便利来隐藏内部服务器主机和客户机的地址。
1.2 安全关联(SA)
在IP的身份验证的机密性技术中有一个关键概念是安全关联(SA),它提供通信量安全服务的发送方和接受方的单项关系。对于双向安全交换来说如果需要对等关系,那么就需要两个安全关联。安全服务提供给使用AH或ESP的安全关联,但并不同时提供这两者的安全关联。在任何IP包中,SA都是通过IPv6报头中的目的地址和AH或ESP中的SPI唯一的标识。
2 IPv6的安全机制
IPSec的安全服务通过IPv6的身份验证头(AH)和安全加载封装(ESP)相结合的机制提供,辅以相关的密钥管理协议。各个安全性包头可以单独使用,也可以一起使用。如果同时使用多个安全性扩展头,AH应当置于ESP之前,这样,先进行身份验证,再对ESP头负载进行解密。在使用IPSec隧道时,这些安全性扩展头也可以嵌套,也就是源节点对IP包进行加密,应用数字签名,然后发送给本地的安全网关,由网关再次进行加密和应用数字签名,然后发送到下一个安全网关。
2.1 身份验证头(AH)
AH有如下作用:IP数据报的完整性检验服务;为IP数据报提供身份验证;使用顺序号字段来防止攻击。AH可以在传送模式和隧道模式下使用,既可以用于为两个节点间简单直接的数据报传送提供身份验证和保护,也可以将发给安全网关或者由安全网关发出的数据报流进行封装。
AH在与其他扩展头一起使用时,必须置于由中间路由处理的扩展头之后,以及只能由目的地处理的扩展头之前。在传送模式中,AH保护IP包的净负载,也保护在路由转发中不发生变化的部分IP包头。
当AH用于隧道模式时,使用上有所不同。目的IP地址与整个IP包一起,封装在新的IP包内,然后发送到安全性网关。因此,整个IP包以及传输中不变的IP封装头都得以保护。
·负载长度:此字段表示AH字段的长度,等于序列号字段加上身份验证数据的长度。
·安全性参数索引:用于标识AH使用的安全协议(SA)。
·序列号:起计数器的作用,由发送者将其插入IP包头,从0开始,每发送一个数据包,计数器增加1。若接收者收到了与己接收数据包序列号相同的数据包,则接收者将其丢弃,这样可以防止重放攻击。如果接收者接收到了232 个数据包,那么必须与发送者重新协商新的SA才能继续接收,否则将由于计数器复位导致所接收的数据全部丢弃。
·身份验证数据:该字段的长度为32字节的整数倍。在远程通信系统中,数据的完整性通常是由对数据的适当计算和检查来得到保证的,这种技术被称为信息摘要(Message Digest,MD)。通过摘要算法,例如,加密MD5,产生信息摘要,填充在该字段中。
2.2 安全加载封装头(ESP)
ESP头的功能包括:
·通过加密保证数据包的机密性。
·通过使用公共密钥加密对数据源进行身份验证。
·通过由AH提供的序列号机制对抗重放攻击。
·通过使用安全网关来保证业务流的机密性。
ESP既可以用于隧道模式,也可以用于传送模式。在传送模式中,如果有AH包头,IP包头和逐跳扩展头、选路头等在ESP包头前,后面是AH包头。ESP头之后的扩展头将被加密。
使用隧道模式时,ESP包头对整个IP包进行加密,并作为IP包头的扩展将数据包定向发送到安全性网关。安全性网关直接与节点连接,同时连接到下一个安全性网关。对于单个节点,可以在隧道模式中使用ESP,将所有流出网络的数据包加密,并将其封装在单独的IP包流中,再发送给安全性网关,然后由目的地的网关将业务流解密,将解密后的IP包发给目的地。
3 IPSec的实施
IPSec规定的组件包括安全协议验证头(AH)和安全加载封装(ESP)、安全策略数据库(SPD)和安全关联数据库(SAD)、IKE密钥交换及加密和验证算法。
3.1 总体结构
如图5所示,IPSec实现的总体结构分为IPSec协议引擎、策略管理、IKE密钥交换及密码算法4个模块。其中IPSec安全协议的处理是数据流程的核心,策略管理模块为其直接提供所需参数,IKE密钥交换用于自动管理SAD,而密码算法是达到安全的基本工具。
3.2 功能分配
(1)策略管理:位于操作系统的内核中,管理SPD和SAD,对数据包(要进行IPSec处理的数据报或数据包的统称)的安全保障起决定作用。功能包括SPD和SAD的管理(记录的增加、删除、修改、刷新和查询)、同IPSec协议引擎的接口和同IKE的接口。
(2)IPSec协议引擎:位于操作系统的内核中,实现安全协议AH和ESP。功能包括外出数据包的处理、进入数据包的处理、同IP层和TCP层的接口。
(3)IKE密钥交换:为一用户级进程,用于动态管理SAD。功能包括IKE间的交互、同SAD和SPD的接口。
(4)密码算法:至少应实现AES、DES、3DES等。
3.3 实现策略管理模块和协议引擎
(1)策略管理模块
①SPD和SAD在系统中的组织和管理:IPSec系统所使用的策略库一般保存在一个策略服务器中。该服务器为域中的所有节点(主机和路由器)维护策略库。各节点可将策略库拷贝到本地,也可使用轻型目录访问协议(LDAP)动态获取。一个IPSec系统中SPD分为进入SPD和外出SPD,均处于内核中。系统初始化时,将策略库中的每一条记录分别装入进入SPD和外出SPD中。为了确保SPD的有效性和安全性,应定期进行更新和刷新。
SAD的每一条记录对应一个SA(安全关联)。SA经IKE协商得到,并以有序散列链表的形式组织。SAD也分为进入SAD和外出SAD,分别与进入散列链表和外出散列链表相对应。进入散列链表用SA中的IPSec源地址计算散列值,外出散列链表用SA中的IPSec目的地址计算散列值。
SA的维护视SA的建立方式而定。如采用自动方式协商SA,则根据SA生存期的状态和序号计数器的溢出标志来决定SA的有效性。生存期分为软生存期和硬生存期。软生存期状态决定发送方是否可用SA发送数据包,硬生存期状态决定接收方是否可用SA来处理收到的数据包。当一个SA的软生存期期满时,发送方不能继续用其来发送数据包,此时,可以启动或触发IKE再协商一个。使用软、硬生存机制可保证通信的持续性。如采用手工方式建立SA,则不存在生存期,仅根据序号计数器的溢出标志来决定SA的有效性。
②SPD和SAD间的关系:对数据包进行IPSec处理时,要查询SPD和SAD。为了提高速度,SPD的每一条记录都应有指向SAD中相应记录的指针,反之亦然。对于外出处理,先查询SPD,获得指向SA的指针,再在SAD查询进行处理所需参数。如SA未建立,则应使用IKE协商,并建立SPD和SAD间的指针。对于进入处理,先查询SAD,对IPSec包进行还原,取出指向SPD的指针,然后验证该包应用的策略与SPD中规定的是否相符。
(2)IPSec协议引擎
①外出处理:对于外出数据包,不论是本机产生的还是转发的,IPSec协议引擎要先调用策略管理模块,查询SPD,确定为数据包应使用的安全策略。根据策略管理模块的指示,协议引擎对该数据包作出3种可能的处理:
·丢弃:丢弃数据包,并记录出错信息。
·绕过IPSec:给数据包添加IP头,然后发送。
·应用IPSec:调用策略管理模块,查询SAD,确定是否存在有效的SA。
若存在有效的SA,则取出相应的参数,将数据包封装(包括加密、验证,添加IPSec头和IP头等),然后发送;若尚未建立SA,策略管理模块启动或触发IKE协商,协商成功后按上述步骤处理,不成功则应将数据包丢弃,并记录出错信息;若存在SA但无效,策略管理模块将此信息向IKE通告,请求协商新的SA,协商成功后按上述步骤处理,不成功则应将数据包丢弃,并记录出错信息。
②进入处理:对于进入数据包,IPSec协议引擎先调用策略管理模块,查询SAD。如得到有效的SA,则对数据包进行解封(还原),再查询SPD,验证为该数据包提供的安全保护是否与策略配置的相符。如相符,则将还原后的数据包交给TCP层或转发。如不相符,或要求应用IPSec但未建立SA,或SA无效,则将数据包丢弃,并记录出错信息。
4 验证加保密性
AH和ESP安全报头可以单独使用,也可以一起使用。当AH和ESP一起使用时,即把加密和验证结合起来,以在主机之间传输具有验证和机密性的IP包。可以通过以下几种方法实现两者的结合。
4.1 具有验证选项的ESP
该方法中,用户首先对数据使用ESP来保护它,然后附加身份验证数据字段。实际上有以下两种情况。
·传输模式ESP:验证和加密应用于交付到主机的IP有效载荷,但IP包头没有保护。
·隧道模式ESP:验证应用于交付到外部IP目标地址(如防火墙)的整个IP包,并且身份验证将会在目标执行。整个内部IP包被保密机制保护,以交付到内部IP目标。
对于这两种情况,身份验证将应用于密文中,而不是明文。
4.2 捆绑传输
在加密之后应用身份验证的另一种方法是,使用两个捆绑的SA包,内部是ESP SA,外部是AH的SA。在这种情况下,ESP的使用没有身份验证选项。因为内部SA是一个传输SA,加密应用在IP有效载荷。最终的包包含IP包头,随后是ESP。然后在传输模式中应用AH,这样,验证将会包括ESP加上除可变字段之外的起始报头和扩展。这种方法的优点是仅用ESP身份验证选项使用一个ESP SA,身份验证覆盖了更多的字段,包括源和目标IP地址。缺点是需要两个SA开销,而不是一个。
4.3 隧道传输
在加密之前使用身份验证,由于身份验证数据是通过加密保护的,对任何人来说,要想截取消息并改变身份验证数据而不被发觉是不可能的。
在两个主机之间,加密之前应用身份验证的一种方法是使用一个SA包,它由一个内部AH传输SA和一个外部ESP隧道SA构成。在这种情况下,身份验证应用于IP有效载荷及IP包头和扩展,但易变的字段除外。最终的IP包由ESP在隧道模式中处理;结果就是加密已经验证的整个内部包并加上一个新的外部IP包头和扩展。
5 结束语
随着Internet应用的不断发展,人们对Internet上传输信息的安全性提出了更高的要求,并希望使用的协议的安全性级别更加提高,IPv6也不例外,它正在尽力达到这个目的。当前AH包头和ESP包头正在以下方面进行修改:充分地改变AH包头的格式,以便能够适应新的、功能更加强大的身份验证算法,这些算法支持对分组的重新发送以及取消操作的预防功能;ESP包头则仅仅进行或多或少的修改,以便获得与算法更好的正交性,简化不同解密算法的应用程序。这些改动的好处是将能够获得在网络层次上更高的安全性,这样,应用程序就可以集中各种不同方面的安全性。
----《中国数据通信》
上一篇:浅谈通信电源监控系统的智能化建设
下一篇:移动IPv6技术研究的实验系统概述