加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

IPv6协议及安全浅谈

发布时间:2019-04-03 19:53:21 所属栏目:教程 来源:IPv6头跳
导读:1、前言 在我国,IPv6一直在稳步发展,早已不是多年前只在实验环境中存在的场景了,很多互联网大厂、高校都用上了IPv6,部分地址宽带用户也使用了IPv6。就在前些日子,安全研究员Dirk-jan Mollema发表基于委派攻击并结合NTLM Relaying,实现对同网段的在域
副标题[/!--empirenews.page--]

 1、前言

在我国,IPv6一直在稳步发展,早已不是多年前只在实验环境中存在的场景了,很多互联网大厂、高校都用上了IPv6,部分地址宽带用户也使用了IPv6。就在前些日子,安全研究员Dirk-jan Mollema发表基于委派攻击并结合NTLM Relaying,实现对同网段的在域主机进行攻击文章详情,其中就使用了基于IPv6的mitm6工具,通过IPv6网络实现攻击。

尽管IPv6发展了很多年,但相对很多人而言,它还是一个陌生的对象,需要我们逐步去了解和认识,以备后续的工作和生活需要。IPv6内容很多,由于篇幅有限,无法详细描述,本文仅介绍IPv6相对关键的组成部分及其相关安全性。

2、IPv6协议

2.1、从一个包结构认识IPv6

IPv6协议及安全浅谈

(图片来源:https://pcedu.pconline.com.cn/1038/10387664.html)

IPv6在RFC2460中描述,相比IPv4,IPv6具有以下特征:

  1. 固定的报文结构,更高效的封装和性能。
  2. Source/Destination Address:128位bit的地址空间,号称地球上每个沙子都能分配到独立的IP地址。
  3. Flow Label:流标签能力,实现流量标记区分。
  4. 可扩展头部:在固定头部后面,可以链式附加许多扩展头部,实现更多功能支持。

2.2、看懂IPv6地址

和IPv4不同,IPv6采用16进制来表示,将整个地址分为8个段,每段之间用冒号隔开,每段的长度为16位,表示如下: XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX/X,并且IPv6有地址简化的写法,通过下图可以了解简化写法。

(图片来源:https://baijiahao.baidu.com/s?id=1611121709439510290&wfr=spider&for=pc)

2.3、不同地址作用大不相同

在RFC2373定义了IPv6的地址类型,我们需要了解的主要类型如下:

  1. 全局单播地址:IPv6公网地址,所有以2或3开头的地址属于该类地址,掩码是64位。
  2. 链路本地地址:链路本地地址非常重要,用于邻居发现、地址配置、路由协议的协商等。顾名思义,它仅用于本地链路通讯,在本地链路有效,无法跨下一跳。所有以 FE80开头的地址属于该类地址。通常情况下,启用IPv6协议的接口会根据MAC地址,自动生成一个链路本地地址,这个机制称为EUI-64。
  3. 站点本地地址:站点本地地址类似IPv4中的私网地址,这些地址无法在互联网上进行路由。所有以 FEC0开头的地址属于该类地址。
  4. 组播地址:组播地址用来表示一组设备或接口,所有以 FF开头的地址属于该类地址。其中 FF02::1表示本地链路上的所有主机, FF02::2表示本地链路上的所有路由器。

3、邻居发现协议(NDP)

3.1、NDP是什么

在IPv6网络中,采用NDP协议取代ARP来学习MAC地址,NDP的数据封装在ICMP v6包中,它主要实现了以下功能:

  1. 链路地址管理:维护一个IP地址和MAC的关系状态表
  2. 无状态地址自动配置(SLAAC):能够在没有DHCP服务器的情况下实现主机自动学习配置IPv6地址
  3. 路由器重定向:与IPv4一样

3.2.1、主机之间如何通信

链路地址管理既然是替代ARP的功能,它所实现的就是帮助主机找到目标IP的MAC地址,并且维护这些IP地址和MAC的对应关系,在必要的时候进行删除和更新。在IPv6网络中,为了学习一个MAC地址,一个简单的NDP交互过程大致如下:

(图片来源:https://blog.csdn.net/qq_38265137/article/details/80466128)

  1. 当一个主机第一次与对方通信时,它会在网络中发送一个邻居请求(NS)包,这个NS包携带了发送者的IP和MAC地址,以及发送者需要请求MAC地址的目标IP,这个NS包被发送到一个“被请求节点多播地址”;
  2. 拥有目标IP的主机会侦听“被请求节点多播地址”,当它收到这个NS数据包后,就知道谁要找它,然后这个主机会用一个邻居通告(NA)单播回应NS请求,告诉对方自己的MAC地址信息。

通过这样一个简单的过程,双方就能够学习并创建一条IP-MAC对应记录。NDP有复杂的状态机制,这里不做详细介绍。想了解的可查看H3C IPv6邻居发现经典讲义。

这里需要解释一个名词,那就是“被请求节点组播地址”,这是一种特殊的组播地址,每一个主机配置好单播IPv6地址后,都会根据这个IP地址自动生成一个对应的“被请求节点组播地址”,这个“被请求节点组播地址”只在本地链路上有效,且在链路上唯一。这个“被请求节点组播地址”的前缀是:FF02::1:FFxx:xxxx/104,后24位是接口IPv6地址的后24位。

3.2.2、无感知的IP地址自动配置

在IPv6网络中,我们可以不需要DHCP实现主机自动获取网络的前缀信息、链路环境信息、并检测地址冲突等,完成节点无感知接入网络。一个简单的地址配置交互过程如下:

(图片来源:https://blog.csdn.net/qq_38265137/article/details/80466128)

  1. 在IPv6网络中,网关会周期性发送RA数据包到多播地址 fe02::1以宣布自己的存在。这个时候,网络上的主机会接收到RA包,通过RA包携带的信息,主机可以学习到接入网络所需要配置的地址信息,从而自动进行IP地址的配置。
  2. 反过来,当主机接入到一个IPv6网络中时,主机会自动发起一个RS包请求地址配置,目的地址为标识所有路由器的多播地址( fe02::2)。路由器收到RS包后,需要马上发送一个RA包以回应该主机,以便主机进行地址配置。

3.2.3、DAD-地址冲突检测机制

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读