IPv6的安全问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IPv6的安全问题
1.绪论
IPv6是“互联网协议第六版”的缩写。

IPv6是由IETF设计的下一代互联网协议,目的是取代现有的互联网协议第四版(IPv4)。

IPv4的设计思想成功地造就了目前的国际互联网,其核心价值体现在:简单、灵活和开放性。

IPv6能够解决IPv4的许多问题,如地址短缺、服务质量保证等。

同时,IPv6还对IPv4作了大量的改进,包括路由和网络自动配置等。

IPv6和IPv4将在过渡期内共存几年,并由IPv6渐渐取代IPv4。

1.1 IPv6的地址类型
IPv6地址长度为128比特,地址按照其传输类型分为三种,即单播地址(UnicastAddress)、多播地址(Multicast Address)和任播地址(Anycast Address)。

单播和多播地址在IPv4中已经存在,任播地址是IPv6中新的成员,RFC 2723将IPv6地址结构中的的任播地址定义为一系列网络接口(通常属于不同的节点)的标识,其特点是:发往一个任播地址的分组将被转发到由该地址标识的“最近”的一个网络接口(“最近”的定义是基于路由协议中的距离度量)。

单播地址是每个网络接口的唯一的标识符,多个接口不能分配相同的单播地址,带有同样目的地地址的数据包被发往同一个节点;另一方面,多播地址被分配给一组节点,组中所有成员拥有同样的组播地址,而带有同样地址的数据包同时发给所有成员;类似于多播地址,单一的任播地址被分配给多个节点(任播成员),但和多播机制不同的是:每次仅有一个分配任播地址的成员与发送端通信。

一般与任播地址相关的有三个节点,当源节点发送一个目的地地址为任播地址地数据包时,数据包被发送给三个节点中的一个,而不是所有的主机。

任播机制的优势在于源节点不需要了解服务节点或目前网络的情况,而可以接收特定服务,当一个节点无法工作时,带有任播地址的数据包又被发往其他两个主机节点,从任播成员中选择合适的目的地节点取决于任播路由协议。

1.2 IPv6地址分配状况
IP地址分配是分级进行的.ICANN(The Internet Corporation for Assigned Names and
Numbers)是负责对全球互联网上的IP地址进行编号分配的机构(原来是由IANA负责).根据ICANN的规定,ICANN将部分IP地址分配给区域互联网注册机构RIR(Regional Internet Registry),然后由这些RIR负责该区域的登记注册服务.现在,全球一共有5个RIR;ARIN(北美)、RIPE(欧洲)、APNIC(亚太)、LACNIC(拉丁美洲)、AfriNIC(非洲)。

在RIR之下还可以存在一些IR,如国家级IR(NIR)、普通地区级IR(LIR)。

这些IR都可以从RIR那里得到Internet地址及号码,并可以向其各自的下级进行分配。

亚太地区国家的IP地址分配由APNIC管理。

APNIC对IP地址的分配采用会员制,直接将IP地址分配给会员单位。

我国的CNNIC(China Internet Network Information Center)以国家NIC的身份于1997年1月份成为APNIC(Asia Pacific Network Information Center)的联盟会员,是我国最高级别的IP地址分配机构。

2.IPv6的地址配置
IPv6拥有大量的地址资源,大量的小型终端设备可以通过IPv6接入到网络中来,地址自动配置就能实现对从多设备的高效管理,简化了网络管理者的工作。

2.1 IPv6中的重新编址
地址自动配置包括无状态地址自动配置和有状态地址自动配置。

在无状态地址自动配置下,需要配置地址的网络接口先使用邻居发现机制获得一个链路本地地址。

网络接口得到这个链路本地地址之后,再接收路由器宣告的地址前缀,结合接口标识得到一个全球单播地址。

而有状态地址自动配置的方式,如动态主机配置协议(DHCP),需要一个DHCP服务器,通过客户机/服务器模式从DHCP服务器处得到地址配置的信息。

一个主机也可以同时使用无状态地址自动配置和有状态地址自动配置两种模式。

例如,可以用无状态地址自动配置来配置自己的本机地址,同时使用有状态地址自动配置模式获得其他信息。

当一个站点不很关心所使用的精确地址,只要各节点地址唯一并可路由时,可以使用无状态地址自动配置。

但当需要严格控制地址分配时,还是应该使用有状态地址自动配置。

站点管理员可以通过路由器公告报文来制定本站点的地址自动配置方式。

当然自动配置并不是IPv6节点分配地址的唯一方法,手动配置也可以分配网络接口地址。

对路由器来说,手动配置是必须的。

2.2 IPv6中的重新编址
IPv4中,地址是用户拥有的。

也就是说,一旦用户从某机构申请到一段地址,他就永远使用该段地址,而不管他是从哪个因特网服务提供者(ISP)处获得服务。

这种方式的缺点是ISP必须在路由表中为每个用户的网络号维护一条表项。

随着用户数的增加,会出现大量无法汇聚的特殊路由,即使无类别域间路由(CIDR)也不能处理这样的路由表爆炸现象。

对IPv4来说,重新编址是一个费时又复杂的工作。

组织机构得到一个新的IPv4空间后,必须改变网络上所有的路由器、服务器和主机的IPv4地址。

路由协议和DNS服务器也得更新。

因此,重新编址对IPv4用户来说,会有一段时间的网络服务停止。

IPv6改变了地址的分配方式,从用户拥有变化成ISP拥有。

全球网络号由因特网地址分配机构IANA分配给ISP,用户的全球网络地址是ISP地址空间的子集。

当用户改变ISP 时,全球网络地址必须更新为新ISP提供的地址。

这样有效地控制了路由信息,避免路由爆炸现象的出现。

IPv6通过执行严格聚合来保持因特网全球的IPv6路由表尽可能小,但是当一个组织改变它的上游IPv6提供商时,必须对网络重新编址。

IPv6协议的优势是改变一个新的前缀时,它能提供完全透明的网络重新编址能力。

前缀重新编址由本地公告路由器执行。

首先,站点中所有的路由器继续公告原来的前缀,但是它的有效生存期被减少。

然后由本地路由器公告新的前缀地址。

在需要重新编址的本地链路上,同时存在两个不同的前缀。

收到这些路由器公告后,节点发现有效生存期小的IPv6前缀就停止使用这个,转而使用新的前缀。

在这个转换期间,重新编址的所有节点同时有两个单播地址。

当旧的前缀生存期过期时,就会被停止使用。

IPv6中,路由器不能由自动配置方式来配置它的网络接口,路由器上的接口地址必须手工配置。

路中器上的接口地址被本地链路上的主机和服务器看成是本地链路地址。

所以,即使在重新编址期间,路由器还是能够被访问。

但是在转换的时候,不能保证主机和服务器之间的TCP和UDP会话不丢失。

地址管理方案中还包括地址解析协议(ARP)和可达性检测。

IPv4中ARP是独立的协议,负责IP地址到链路层地址的转换,对不同的链路层协议要定义不同的ARP协议。

可达性检测的目的是确认相应IP地址代表的主机或路由器是否还能收发报文,IPv4没有统一的解决方案。

IPv6定义邻居发现协议(NDP),把ARP纳入NDP并运行于因特网控制报文协议(ICMP)上,使ARP更具有一般性,包括更多的内容,而且不用为每种链路层协议定义一种ARP。

NDP
中还定义了可达性检测过程,保证IP报文不会发送给“黑洞”。

3.IPv6地址解析
IPv6不再执行地址解析协议( ARP )或反向地址解析协议( R ARP )。

在IPv4中,这些协议用于计算I P地址与本地链路网络地址的关联,换言之,以以太网为例,这些协议将节点的以太网M A C地址链接到I P地址。

这些协议的必要性在于,节点要计算出将I P包使用链路层发往同一本地子网的哪一个节点。

ARP简单易行,它可在以太网和任一使用4 8位MAC地址的网络媒体上执行,也可用于任意长度的MAC地址。

在IPv6中没有继续使用ARP有如下原因:
首先, ARP依赖于IPv6和使用组播的ICMP v6报文。

这意味着,没有必要为使用ARP的每个不同类型网络都重新构造ARP,任一支持IPv6和组播的节点应该也支持邻居发现。

对组播的支持很重要,在链路层更是如此。

和广播一样,组播在诸如以太网之类的支持多路同时访问同一媒体的网络上很容易实现。

但是,对于所谓的非广播多址接入( NBMA )网络,例如ATM和帧中继,组播则很难处理。

这些NBMA网络依赖于电路而非包,要求为将接收组播信息的每个节点都建立一条单独的电路,这导致组播更加复杂。

但是只要有机制能提供组播功能,这些网络上的节点也能够支持邻居发现,而无需显式建立ARP之类的服务。

3.1 地址解析(Address Resolution)中的邻居发现协议
除多播地址以年,节点在仅仅知道邻居节点IP地址的情况下,通过邻居请求报文和邻居公告报文,得到邻居的链路层地址的过程,就是地址解析。

节点的地址解析由发送多播邻居请求报文开始,该邻居请求报文要求目标路由器返回它的链路层地址。

源路由器在邻居请求报文中包含了它自己的链路层地址,并将邻居请求报文以多播的方式发送到目标地址相关的多播地址上;目标路由器在单播邻居公告报文中返回它自己的链路层地址。

大致过程如图:
当具有多播能力的接口变得可用时,节点必须为其赋予全节点多播地址,(ff02::1)和被请求节点多播地址。

分配给接口的一系列地址随时都可以增加、删除和修改,所以节点也必须能够随时加入新的多播地址或者离开原来的多播地址。

要注意的是,多个多播地址可能映射为同一个多播地址。

但是,直到与一个多播地址相关联的同一个节点拥有的所有地址都离开,该节点才会离开这个多播组。

当一个节点要发送一个单播数据报给它的邻居节点,但又不知道其链路层地址时,就要进行地址解析。

对于具有多播能力的接口,在这种情况下,就要创建一个“不完全”状态(INCOMPLETE)邻居缓存条目,给邻居节点发送邻居请求报文,该报文被送给与目标地址相关联的被请求节点多播地址。

如果发出请求的源地址与分配给输出接口的地址在的一个是同一个地址,那么地址应该加入到输出请求的IP源地址之中。

然而,任何一个分配给接口的地址都应该被使用。

3.2 邻居发现协议的安全问题
IPv6使用邻居发现协议(Neighbor Discovery Protocol)来发现同一链路上的其他节点,进行地址解析,发现链路上的路由器,维持到活跃邻居的可达信息等。

邻居发现协议是IPv6中的一个重要协议,但同样存在很多安全隐患。

利用邻居发现协议,通过发送错误的路由器宣告、错误的重定向消息等可以让IP数据报流向不确定的地方,进而可以达到拒绝服务、拦截和修改数据报的目的。

如下图中的攻击者位于网络内部,它通过伪造的路由宣告消息使得链路上的其他节点以它作为默认网关,数据流到达攻击者后,攻击者可以查看敏感
消息,篡改后再将数据报发往目的节点,或者直接将数据报丢弃。

邻居发现协议在没有认证保护时,规定跳限制域(Hop Limit field)最大值必须是255,这可以防止来自链路外的攻击。

但这种措施对链路内发起的攻击却无能为力,而IPv6的无状态地址自动配置恰恰为链路内攻击提供了便利。

因为攻击者可以利用无状态地址自动配置很方便地接入到同一链路上,在无线环境中尤其如此。

IETF在2002年成立了安全邻居发现协议工作组SEND(Secure Neighbor Discovery)来研究和解决邻居发现协议中的安全问题,并于2005年3月通过了RFC3971安全邻居发现协议协议SEND。

4.IPv6的迁移
由于在IPv4网络下产生的诸如IP地址资源即将枯竭及其缺乏安全保证等问题,为了彻底解决IPv4存在的问题,IETF从1995年开始,着手研究开发下一代IP协议,即IPv6。

由于现阶段IPv6与IPv4两种网络共存,由于IPv4网络规模庞大,而且我们重新组建一个世界范围内的纯IPv6的网络的投入又太大,IPv4向IPv6过渡就成了我们的首选,这种过渡也就形成了IPv4向IPv6的迁移,必然会引起新的安全问题,或由此产生新的安全漏洞。

4.1 IPV4向IPV6过渡的主要实现技术
(1)双协议栈。

IPv4 / IPv6 双协议栈是最主要的过渡机制。

在网络一侧的接入服务器上实现双栈,成为IPv4与IPv6的接入点,使终端接入IPv4与IPv6服务,以免在网络中使用
额外的翻译器。

(2)协议隧道。

协议隧道在一端把IPv6包封装为IPv4包的数据内容,然后在另一端解封复原成IPv6包。

隧道要求在封装/解封的节点上有IPv4 / IPv6双栈能力。

这可能是未来采用最多的一种方式。

(3)协议转换。

协议转换是一个处在纯IPv4终端和纯IPv6终端之间的部件,它可使这些终端之间能直接进行通信,且不需要对终端进行任何修改。

4.2 迁移的安全问题
4.2.1. 双栈机制的安全威胁
双协议栈会带来新的安全问题,对于同时支持IPv4 和IPv6 的主机,黑客可以同时用两种协议进行协调攻击,发现两种协议中存在的安全弱点和漏洞,或者利用两种协议版本中安全设备的协调不足来逃避检测。

目前已经发现从IPv4向 IPv6转移时出现的一些安全漏洞,例如黑客可以非法访问采用了IPv4和IPv6两种协议的LAN网络资源,攻击者可以通过安装了双栈的IPv6主机建立由IPv6到IPv4的隧道,从而绕过防火墙对IPv4进行攻击。

4.2.2. 隧道机制的安全威胁
由于隧道机制对任何来源的数据包只进行简单的封装和解封,而不对IPv4 和IPv6 地址的关系做严格的检查,所以隧道机制的引入,会给网络安全带来更复杂的问题,也较多的出现安全隐患。

隧道机制带来的安全威胁主要有以下几种:
(1)利用源地址伪造躲避追踪
IPv4 网络中的攻击者可以通过发送伪造的封装数据包给隧道端点,对IPv6 节点进行攻击,同时通过伪造源IPv4 地址躲避追踪。

(2)利用源地址伪造进行反射DoS 攻击
IPv4 网络中的攻击者可以发送源IPv6 地址伪造为被攻击者的IPv6 地址的封装数据包给隧道端点,对IPv6 节点进行反射DoS 攻击。

(3)利用ND(邻居发现协议)消息欺骗
隧道技术将IPv4 网络看作链路层,IPv4 网络中的攻击者可以伪造使用Link Local 地址的IPv6ND 消息,封装后发送给隧道端点,从而对隧道端点进行欺骗和DoS 攻击。

(4)利用IPv4 广播地址DoS 攻击
攻击者可以将目的地址伪造为由6to4 路由器或者Relay 路由器子网广播地址映射形
成的6to4 地址,使得数据封装后直接在路由器子网内广播,进行攻击。

(5)服务窃取
自动隧道的Relay 节点一般只能由特定的合法运营商提供,但非法用户可以通过在IPv6 主干网络中扩散特定地址前缀信息,同时在IPv6 孤岛内使用IPv6路由扩展头指定回传路径的方法,非法提供Relay 服务,从而窃取用户数据信息。

4.2.3协议转换机制安全威胁
转换技术(地址与协议转换技术)目标是为IPv6网络节点与IPv4网络节点相互通信提供透明的路由。

NAT网关使用一个IPv4地址(全局唯一)池,并把这些地址和相应工IPv6地址绑定在一起,不需要对终端节点做任何修改。

只有其他转换机制都不可能使用时,且由于某种原因需要避免双栈操作时,才能使用这种转换机制,这种机制有很多缺点。

例如,无法充分利用IPv6所提供的高级功能。

使用任何NAT时都无法提供端到端的安全性,而IPv6最大的优势在于保证端到端的安全,可以满足用户对端到端安全和移动性的要求。

IPv6限制使用NAT,允许所有的网络节点使用其全球惟一的地址进行通信。

每当建立一个IPv6的连接,都会在两端主机上对数据包进行 IPSec封装,中间路由器实现对有IPSec扩展头的IPv6数据包进行透明传输,通过对通信端的验证和对数据的加密保护,使得敏感数据可以在IPv6 网络上安全地传递,因此,无需针对特别的网络应用部署ALG(应用层网关),就可保证端到端的网络透明性,有利于提高网络服务速度。

正是这一点限制了该技术的使用范围。

另外,该技术需要IPSEC级别安全性的两个端点必须使用纯IPv4或纯IPv6。

5.移动IPv6协议
移动IPv6协议中定义了三种操作实体:移动节点(Mobile Node,MN)、通信节点(Correspondence Node,CN)和家乡代理(Home Agent,HA)。

在移动IPv6协议中并没有定义外地代理。

因为节点移动到外地链路可以通过IPv6基本协议的邻居发现(Neighbor Discovery)协议判定自己网络链路的变化情况,同时通过有状态或者无状态的自动地址分配机制得到外地链路上的转交地址。

移动IPv6提供两种基本的通信模式,即双向隧道机制和路由优化。

双向隧道机制是指在移动节点和家乡代理之间建立隧道。

通信节点发给移动节点的报文,首先路由到家乡代理,家乡代理通过代理邻居发现机制截获该报文,并且采用IPv6封装格式通过隧道转发到移动节点;移动节点发往通信节点的报文则采用反向隧道先路由到家乡代理,然后按照正常
的路由机制转发到通信节点。

另一种通信模式是路由优化,移动节点和通信节点直接通过转交地址进行报文交互。

5.1移动IPv6面临的主要安全问题
移动IPv6协议通过定义移动节点、家乡代理和通信节点之间的控制信令,实现“三角路由”的优化,同时也引入了新的安全威胁。

如果攻击者在移动节点、通讯节点的链路上或者是在发送数据包路径的链路上截获相关的控制报文,那么它就能够轻易的进行攻击。

目前。

移动IPv6可能遭受的攻击主要包括拒绝服务攻击、重放攻击以及信息窃取攻击三大类。

5.1.1拒绝服务攻击(DoS)
拒绝服务攻击是指一个攻击者为阻止合法用户的正常工作而采取的攻击。

这种攻击主要包括两种方式:一种是通过向服务器或主机发送大量数据包,使得主机忙于处理这些无用的数据包而无法响应有用的数据包;另一种是直接干扰正常通信。

在移动IPv6中攻击者可以通过如下的攻击方式达到上述目的:
(1)发送大量的地址绑定更新消息来消耗家乡代理和通信节点的资源,如CPU、内存资源。

从而导致绑定Cache表溢出或者是无法及时处理真正的绑定更新报文。

(2)冒充移动节点的身份向家乡代理或是通信节点发送含有伪造转交地址的绑定更新报文,从而截获后续的数据包,或者是将通信流量重定向到第三方节点,导致分布式的DoS 攻击。

(3)在移动节点和家乡代理通信路径上的攻击者可以通过篡改Home Address Option域值,将通信节点的流量重定向到其它第三方节点(包括攻击者自己)。

(4)在移动节点和通信节点通信路径上的攻击者可以通过篡改Routing HEADER域值,将通信节点的流量重定向到其它第三方节点(包括攻击者自己)。

(5)在移动节点和家乡代理通信路径上的攻击者可以通过篡改MPA(Mobile Prefix Advertisement)消息的前缀信息来阻止移动节点与家乡代理和通信节点之间的正常通信。

5.1.2重放攻击
重放攻击是指攻击者将一个有效的注册请求消息保存起来,等待一段时间后再重新发送这个消息来注册一个伪造的转交地址,从而达到攻击的目的。

在移动节点和通信节点通信路径上的攻击者可以通过这种方式将数据流重定向到第三方实体。

5.1.3 信息窃取攻击
信息窃取可以分为被动监听和主动会话截取。

(1)被动的监听
移动IPv6可以使用包括无线链路在内的多种传输媒介。

由于无线链路的信道特性,攻击者可以不需要物理地连接到网络上就可以进行侦听,而对于有线链路,未经授权的用户也可能通过某些手段设法接入网络进行侦听。

对于此类的攻击最好的解决办法就是在通信双方实现端到端的加密。

(2)会话窃取
会话窃取攻击是指一个攻击者等待合法的用户认证完成并且开始进行会话后,通过假扮合法节点来窃取会话的攻击。

在移动IPv6中,当移动节点向它的家乡代理注册后,攻击者先侦听移动节点和家乡代理之间的会话,当发现某些感兴趣的信息后,攻击者一方面向移动节点发送大量无用的数据包,另一方面假冒移动节点发送数据包。

并截获发往移动节点的数据包。

5.2 移动IPv6协议解决上述安全问题的机制:
互联网协议设计的一个基本安全要求就是新协议的设计不能够引入新的安全威胁,如果存在安全威胁,那么协议本身必须要规定相应的安全机制来克服。

同样,移动IPv6协议也不例外。

对于上节描述的各种安全威胁,协议都定义了相应的安全机制。

5.2.1 防御重放攻击的策略
为防止重放攻击,移动IPv6协议在注册消息中定义了序列号,并且在RR协议报文中引入随机数(Nonce)。

家乡代理和通信节点可以通过比较前后两个注册消息序列号(通信节点还可以依据Nonce散列值),判定出被攻击者保存下来的已经过时的注册消息而不予处理。

5.2.2 对家乡代理的地址绑定消息的保护
在移动IPv6协议中建议通过建立IPSec安全联盟来保护发送到家乡代理的地址绑定消息和数据流量。

由于移动节点家乡地址和家乡代理都是已知的,所以可以预先为移动节点和家乡代理配置安全联盟,然后使用IPSec AH和ESP机制建立安全隧道,提供数据源认证,完整性检查,数据加密和防重放攻击保护。

5.2.3对MPS/MPA消息的保护
考虑到移动网络前缀发现机制可能会造成网络拓扑信息的泄露,移动IPv6协议建议采用IPSec安全联盟来保护MPS/MPA数据的完整性以及对数据源身份进行认证,例如可以使用ESP传输模式非空载荷认证算法。

5.2.4 对通信流量的保护
在移动IPv6协议中建议使用IPSec体系中AH和ESP机制提供数据流的数据源认证、完整性和机密性保护。

5.3 移动IPv6还需进一步完善
移动IPv6的发展还处在初级阶段,目前提出来的还只是移动解决方案的基础理论。

移动IPv6的最终目标是实现全球范围真正的移动网络。

它会满足移动计算和个人通信的所有要求。

而要真正实现全球范围内的移动网络,还需要进一步完善Mobile IPv6,IPSec,Diameter等协议,解决服务质量及安全性问题。

6.IPv6安全工具的升级
IPv6不向下兼容。

用于整个网络的通信路由和安全分析的硬件和软件都要进行升级,以支持IPv6协议,否则这些硬件和软件都不支持IPv6。

当使用边界保护设备的时候,记住这一点是非常重要的。

为了兼容IPv6,路由器、防火墙和入侵检测系统都需要软件或者硬件升级。

IPv6网络最显著的特点在于128位的地址,这样趋于无穷大的地址范围,拓扑管理的实现变得更加复杂,原来的工具不能解决问题。

同时,由于IPv6无状态地址自动配置的技术和组播地址类型实现的变化,配置管理部分需要考虑 IPv6独特的地址分配技术。

另一个问题是: 性能管理、流量管理和故障管理基本依赖于SNMP(简单网络管理协议)、流统计(比如Netflow协议)工具和ICMP等协议和技术,IPv6网络设备必须能够支持,但是目前各个厂商的网络设备对这些协议支持的接口不统一,使网络管理平台需要对不同的设备建立不同的网络管理软件。

这些都是保证IPv6网络的健康发展需迫切解决的问题。

其次我们先从防火墙方面考虑,防火墙主要作为一个IP封包的过滤器,能够套用一个安全性政策在通过的流量上。

他们用来增强某个网络边界的安全性,来避免内部的主机遭到外部的攻击,也避免内部的使用者去攻击外部的主机。

RFC3775 [MIP6]中详细定义了对移动IPv6的支持,但是由于移动IPv6是一个新的标准的应用,所以在目前来说,大多数适合IPv6网络的防火墙都不支持移动IPv6。

除非防火墙检测到移动IPv6协议的细节,否则这些安全设施将妨碍协议的平滑操作,对协议的使用也是一种阻碍。

下面我们从以下几个方面进行讨论:。

相关文档
最新文档