基于IPv6的下一代互联网安全问题初探栗培国清华大学计算机系北京(100084)E-mail(lipeiguo@)摘要随着互联网的大规模商用,安全问题变得日益突出。
IPv6 在解决目前互联网IP 地址不足而应运而生,它引入了加密和认证机制,并且强制实现IPsec。
IPv6实现了基于网络层的身份认证,确保了数据包的完整性和机密性,实现了网络层安全。
但是,这种安全并不是绝对的。
下一代互联网仍存在许多安全威胁,需要建立全方位可信任的计算机网络安全体系,保证下一代互联网的安全性。
关键字:IPv6 网络安全下一代互联网中图分类号: TP393.081 引言互联网刚出现时,主要用于教育科研网,在各大学的研究人员之间传送E-Mail,以及共同合作的职员间共享资源。
在这种使用环境下,网络协议的设计中很少关注网络的安全性,安全性未能引起足够的注意[1]。
但是现在,随着互联网的大规模商用化,大家每天利用互联网进行学习,使用网络来处理银行事务和网上购物。
互联网在国民经济中越来越重要的地位,网络安全问题变得日益突出。
这里所说的安全问题既涉及网络安全也涉及信息安全,网络安全是指运行安全与数据安全;信息安全是指对信息的机密性、完整性、可用性的保护。
安全威胁成为一个必须解决的问题,是发展下一代互联网应注意的最关键问题。
因此,早在90年代初期,互联网工程任务组IETF(Internet Engineering Task Force)就开始着手下一代互联网协议IPng(Internet Protocol the next generation)的制定工作,1994年IETF提出了IPng建议草案,1995年底IETF提出了正式的协议规范,该规范经过进一步修改,成为今天的IPv6 (Internet Protocol version 6)。
在设计基于IPv6的下一代互联网协议时,增加了对网络层安全性的要求,规定所有的IPv6实现必须支持IPSec(Internet Protocol Security)。
IPsec 提供了两种安全机制:加密和认证[2]。
加密是通过对数据进行编码来保证数据的机密性,以防数据在传输过程中被他人截获而失密。
认证使得IP 通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭到改动。
这样基于IPv6的下一代互联网在网络层的安全性得到了大大的增强。
2 IPv6的十大主要技术特点针对目前互联网协议IPv4的不足,IETF提出了下一代互联网协议IPv6。
因而其主要技术特点也是针对IPv4而言。
①. 扩展地址,地址空间增大,IP地址由32bit增加到128bit,地址结构更加层次化,地址空间增加到能支持3.4ⅹ1038 台主机;②. 简化头格式,IP包头格式简化,在IPv4中象校验和,IHL(Internet Header Length),鉴定标识,分段偏移等字段在新IP v6中不再保留。
IP v6仅包含7个字段,简化了数据报文头部,减少了路由表长度,同时减少了路由器处理报头的时间,降低了报文通过网络的延迟;③.支持扩展和选项的改进,对选项的更好支持,以前必需的字段现在只是选项,更加灵活便于分组处理;④.增加流标识,可以标记数据所属的流类型以便路由器进行相应的处理,提供特定的QoS(Quality of Service);⑤.源端分割,只在发送者分段,路由器不再执行分段功能,发送者应该检查所建立路径所需最小MTU (Maximum Transmission Unit);⑥.路由选择: IPv6 路由与物理接口而不是接口关联(绑定)。
IPv6 与 IPv4 的源地址选择功能不同。
允许重复路由以提高稳健性,但在路由查找时将忽略重复路由。
⑦.不需SUM区域检查(Header checksum):在路由器中检查SUM区域的协议数据包被移除,数据包在网络传输前已通过检查,另外高层协议如TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)也允许自我确认,大多数情况下移除SUM区域检查不会产生严重的问题。
⑧.最大传输单元MTU:IPv6 的MTU结构化下限为1280个字节。
也就是,IPv6将不会在低于此极限时对信息包分段。
要通过小于1280MTU的链路发送 IPv6,链路层必须明确地对IPv6信息包进行分段和合并。
⑨.可扩展协议:不像IPv4,IPv6不再定义未来所有可能协议,允许发送人添加数据包信息,这样使IPv6 比IPv4有更广泛的灵活性,以后可设计新需求。
⑩.安全性:身份验证和加密的功能,在IPV6中为支持认证,进行数据完整性及数据保密的扩展。
3 IP Sec安全机制IPSec的安全主要由IP的认证报头AH(Authentication Header,RFC2402中描述)、封装安全载荷ESP (Encapsulating Security Payload,RFC2406中描述)、安全连接SA(Security Associations, RFC2401中描述)和密钥管理协议IKMP(Internet Key Management Protocol, RFC2408中描述)四部分来实现。
它能够为IPv6提供可交互操作的和高质量的基于加密的安全服务,这种安全服务包括访问控制、无连接的完整性、数据源认证、抗重播(replay)保护(序列完整性(sequence integrity)的一个组成部分)、保密性和有限传输流保密性在内的服务[3]。
3.1 认证报头AH认证报头AH是为IP数据报提供无连接完整性与数据源认证,并提供保护以避免重播情况[4]。
认证报头是IPv6的一个安全扩展报头,IPv6的认证主要由认证报头AH来完成。
认证报头AH通过在所有数据包头加入一个密钥,对用户进行认证。
这种认证是IP数据包通过一定加密算法得出的编码结果,相当对IP数据包进行数字签名,只有密钥持有人才知道的“数字签名”来对用户进行认证。
同时这种签名还能维持数据的完整性,因为在传输过程中无论多小的变化被加载,数据包头的数字签名都能把它检测出来。
认证报头AH可被独立使用,或与 IP 封装安全载荷ESP相结合使用,或通过使用隧道模式的嵌套方式。
在应用中它经常和无连接完整性服务结合使用,这为IP数据包提供完整性和数据来源验证,防止反重放攻击,避免IP欺骗攻击。
IPv6 通过认证报头AH使数据包的接收者可以验证数据是否真的是从它的源地址发出的,并提供密码验证或完整性测试。
为IP数据报头和上层协议提供足够多的无连接的完整性验证、数据源认证、选择性抗重播服务。
3.2 封装安全载荷ESP封装安全载荷ESP提供机密性、数据源验证、无连接的完整性、抗重播服务(一种部分序列完整性的形式)和有限信息流机密性[5]。
为了保证Internet传输的原始数据包的机密性,封装被保护的数据是必须的,将被保护的数据和相关控制信息加密并把被加密的编码数据放入封装安全载荷ESP的相应字段部分。
根据安全应用需求, 封装安全载荷ESP提供两种使用方式,即传输模式和隧道模式。
这两种模式分别可理解为用于加密传输层段或用来加密一个完整的IP数据包。
同认证报头AH一样,封装安全载ESP也可以单独应用,可以与IP认证报头AH相结合使用,或者采用嵌套形式。
由于到达的IP分组可能失序,ESP使用对称加密算法,每个分组必须携带所有要求的数据,以便允许接收方为解密建立加密同步,这个数据可能明确地装载在有效载荷字段[5]。
总之,封装安全载ESP规定了使用一种可选的加密算法来提供机密性,并规定了一种可选的认证算法来提供认证和完整性,ESP试图提供信息的机密性和完整性服务。
3.3 安全关联SA安全关联SA是一种简单的逻辑连接,为了安全的目的而生成的。
一个安全关联SA上的所有传输提供相同的安全处理。
在IPSec中,安全关联SA是一个抽象的中间层,由使用认证报头AH或者封装安全载荷ESP 来实现,安全关联SA包含验证或者加密的密钥和算法[3]。
它是一个单向“连接”,它为通过它的传输提供安全服务,为保护两个主机或者两个安全网关之间的双向通信需要建立两个安全关联。
一个安全关联SA需要通三个参数进行识别,它由安全参数索引SPI(Security Parameters Index,AH/ESP报头的一个字段)、目的IP地址和安全协议(AH或者ESP)三者的组合唯一标识。
如果要在同一个通信流中使用认证报头AH和封装安全载荷ESP两个安全协议,那么需要创建两个(或者更多)的安全关联SA来保护该通信流。
3.4 密钥管理协议IKMP在IPSec中,密钥管理协议IKMP主要用于建立和维护安全关联SA,为多重的安全协议和应用程序建立安全关联SA,作为所有另外的安全协议互操作的和普通的框架。
密钥管理协议IKMP对联系的协议提供保护攻击,该保护提供安全关联SA和建立的密钥,保证与需要的部分一起的而不与一个攻击者一起[6]。
集中化管理安全关联SA,减少了在每个安全协议中重复功能的数量,减少连接时间,提高通讯效率。
密钥管理协议IKMP定义交换密钥生产的有效载荷和认证数据,支持不同安全协议的加密算法。
提供认证机制和密钥生成算法,提供多重的密钥的交换技术、加密算法、认证机制和安全服务。
IPSec的四部分是一个有机的整体,前两者是两种主要为认证和加密标记,而后两者为前两者更好发挥作 用服务。
通过对IPsec所提供的新的安全机制的介绍,我们可以看出,IPv6提供了身份认证和加密功能,可以保证数据包的完整性和机密性,所以在安全方面,IPv6有了很大的提高。
4 安全问题从IPv6 主要技术特点和IPsec安全机制来看,基于IPv6的下一代互联网的有了长足的进步,可以说是在网络层安全机制是相当完善的。
但是,这并不能说IPv6 已经可以确保网络系统的安全了。
这里面有很多原因,最重要的是,安全问题包含着各个层次,各个方面的问题,不是仅仅由一个安全的网络层就可以解决得了的。
如果黑客从网络层以上的应用层发动进攻,比如利用系统缓冲区溢出或木马的方法,纵使再安全的网络层也与事无补。
即使仅仅从网络层来看,IPv6 也不是十全十美的。
它毕竟同IPv4 有着极深的渊源。
并且,在IPv6 中还保留着很多原来IPv4 中的选项,如分片,TTL(Time To Live)。
而这些选项曾经被黑客用来攻击IPv4 协议或者逃避检测,很难说IPv6 能够逃避得了类似的攻击。
IPv6的倡导者将着重点放在了保护数据安全之上,将网络安全问题交付给终端用户[7]。
因此,IPv6并没有解决所有网络安全问题,各种网络威胁仍然存在,如最普及的网络攻击病毒和蠕虫攻击、这种看起来简单的的网络攻击行为,在IPv6的网络中仍将存在。