IPv6 无法解决全部安全问题

伴随着IPv6 Day的到来,Google,Facebook,Yahoo!,Akamai以及Limelight Networks等公司均通过IPv6网络发布内容,并进行了为期24小时的IPv6测试。

IPv6 Day的目的

为了鼓励企业,互联网服务供应商,硬件设备厂商,操作系统厂商以及网络公司为IPv6服务做好准备,确保IPv4网络向IPv6网络过渡的顺利进行。

IPv6无法解决全部安全问题

IPv6解决了很多IPv4难以解决的安全问题,但是同时它又引进了新的安全风险。其中一个常被人质疑的是,全部网络设备都将拥有自己的可被路由到的IPv6 地址,这将使得这些设备都暴露在互联网的复杂环境下。

降低隐私能见度

如果所有网络设备都可以通过互联网访问,那么个人用户就很容易通过网络被追踪。这个问题很早就被弗吉尼亚理工大学的研究团队发现了,他们在较早前的一份报告中解释说:默认的地址系统如果采用IPv6,在自动配置地址的情况下,第三方将可以通过简单的指令,诸如ping以及trace route 等在全球范围追踪和监视目标用户。同时用户发送数据的接受方信息,也会被第三方监视者获取。

该研究团队还发现,如果采用默认的IPv6地址方案,设备的MAC地址也将暴露在互联网环境中。于是他们开发了一种防御方案,叫做Moving Target IPv6 Defense (MT6D)。该方案可以提供以下功能:

主机之间通过互联网进行通信时,对于定位,跟踪和数据流截获等都保持匿名状态。

这是一个很重要的工作,该研究团队的Stephen Groat, Matthew Dunlop, William Urbanski, Randolph Marchany, 和Joseph Tront为这项方案申请了专利,并且为此获得了2011年美国全国安全创新竞赛的第三名。

为了让广大读者更好的了解MT6D,我们有必要通过团队的成员来了解一下他们的具体工作。以下是该团队成员接受采访时的记录:

记者提问: 你们的研究报告提到,在使用IPv6的无状态地址自动配置功能时,隐私泄漏问题就凸现出来了。你能解释一下什么是无状态地址自动配置功能,还有这个功能为什么会影响用户隐私的安全性?

Research team: 无状态地址自动配置 (SLAAC)是采用IPv6协议的主机自己配置网络地址的一种方式。主机自己配置IP地址,可以减少网络管理者的管理负担。这与IPv4网络环境中使用的DHCP方式有所改变。

使用SLAAC的问题在于,不论主机是否连接子网,它的地址或接口ID(IID)都是相同的。而默认的地址体系也就是64位扩展唯一标识 (EUI64)是采用MAC地址作为IID的。这样做的结果就是,攻击者拥有了子网列表以及主机的MAC地址,就可以从世界任何位置对该主机展开攻击。

记者提问: 据说微软在新版本操作系统中使用了隐私扩展技术来隐藏主机的部分MAC地址,这样做是不是就够了?

Research team: 隐私扩展技术可以算是一种改进,但是只能保护客户端系统,而服务器系统仍然处于威胁中。因为隐私扩展技术不能频繁的变化地址来防止网络攻击,对于网站服务器或企业VPN服务器这样需要全天候开通并且保持固定IP地址的系统来说,并没有什么防护效果。

这样的系统还是容易被锁定和攻击。另外,隐私扩展技术主要应用于Web通信,其他应用领域,诸如VoIP,VPN等,都无法在隐私扩展模式下工作。

Windows系统下应用的隐私扩展还需要依赖于另一个IPv6地址进行邻居发现,本地DNS以及其它相关功能。而这个地址必须是静态的,并且能够被其它主机获取。如果黑客获取了该地址,同样可以用来进一步攻击目标主机。

记者提问: 你们的团队给出的方案是通过MT6D来提高隐私安全性,在这个系统中,发送方和接收方的IP地址都是动态变化的。这是怎么实现的呢?

Research team: 动态变化的地址可以保护隐私,使得通信双方实现匿名和安全的通信。我们的技术有些类似于跳频技术。当现实中两台主机在IPv6网络中通信时,攻击者拦截到的是多个独立主机地址的配对。攻击者无法得知其中哪个地址配对才是真正的通信双方,也无法简单的对某个地址进行攻击。

记者提问: MT6D 同时还会将信息流加密,那是否意味着IPsec就该退休了?

Research team: MT6D可以被看做是一个增强型的IPsec。IPsec可以对网络数据流进行加密,但是需要固定IP地址。如果主机或网关上配备了IPsec ,那么攻击者就可以通过发起拒绝服务攻击的方式对主机或网关进行攻击。

MT6D提供了网络层加密以及动态地址。和IPsec一样,攻击者无法对通过MT6D封装的数据包进行侦听,同时,攻击者也无法锁定主机地址,因此无法发动拒绝服务攻击。

记者提问: 你们的报告指出:MT6D的一个关键功能是它可以在两个主机进行通信时在线程中段进行地址变化,而不会引起通信的重置或崩溃。这一点非常独特,你们是不是将TCP的三次握手进行了改进?

Research team: MT6D建立了一个通道并将所有数据流封装进去,并没有修改TCP的三次握手规则。隧道通过平衡所有4层协议,限制了TCP线程开销。在线程中段改变地址并不会中断已有的线程,也不会导致额外增加三次握手通信。

记者提问: 论文里提到MT6D的设计是为了阻止特定的网络攻击。那么这个特定的网络攻击是什么呢?是否因为这个攻击的特点才使用了动态地址呢?

Research team: MT6D可以防止多种针对某个地址发动的网络攻击,比如拒绝服务攻击,同时也可以对应用层攻击进行防护。这都是通过对通信双方主机IP地址进行动态模糊来实现的。由于IPv6网络地址数量相当庞大,理论上黑客是不可能通过范围扫描来定位主机的。

就算黑客获知了目标主机的IP地址,其所能攻击的时间也仅限于主机地址再次进行变换之前。

记者提问: 论文里还提到,弗吉尼亚理工大学是进行IPv6应用的一个最佳地点,为什么这么说呢?

Research team: 弗吉尼亚理工大学是美国全境内少数几个完全支持IPv6协议的网络环境。实际上,它是美国最大规模的校园IPv6网络,包含了大约3万个网络节点。这种规模能够支持我们进行MT6D的现实环境测试。

记者提问: 听说MT6D也可以用于IPv4 网络。这有可能吗?还是说它首先会应用于IPv6网络。

Research team: 虽然MT6D的概念也适用于IPv4网络,但是还是存在两个问题。首先, IPv4的子网规模太小,攻击者可以在几分钟内将整个子网扫描一遍,这使得黑客锁定目标主机变得更加容易了。其次,IPv4已经没有足够多的可用地址用来进行地址变换了,如果采用MT6D很容易出现地址冲突。

IPv6的子网是64位的,这意味着整个IPv4网址空间都可以放在一个IPv6子网中,所占用的地址空间还不及总空间的四十亿分之一。目前来看对这样大范围的子网进行详细扫描还不太可能完成。

同样,由于IPv6拥有足够大的地址空间,地址变换时出现地址冲突的可能性就非常小了。因此MT6D最好还是在IPv6环境中使用。

总结

由此看来,尽管在IPv6环境中,我们的电脑都将直接面对互联网,但是MT6D却能够帮助我们保护隐私,消除很多潜在的被攻击风险。