IPv6更新:在安全和隐私方面有所改进

日期: 2017-06-29 作者:Fernando Gont翻译:邹铮 来源:TechTarget中国 英文

近日,国际互联网工程任务组(也被称为IETF)发布了一套新标准:RFC 8064,《有关稳定IPv6接口标识符的建议》。这个新标准正式更新了14个IETF标准,包括IPv6寻址架构。本质上来看,RFC 8064建议部署和使用RFC 7217以生成稳定IPv6地址。该RFC的发布是先前IPv6寻址安全和隐私方面工作的成果,特别是RFC 7217本身,还有RFC 7707和RFC 7721。

IPv6背景知识

传统算法通过无状态地址自动配置(SLAAC)生成稳定IPv6地址,这种算法被设计为使用底层链路层地址作为地址的接口标识符来生成地址。

随着时间的推移,人们已经意识到通过IPv6地址执行主机跟踪的风险。由于MAC地址通常为独一无二,并且它们被嵌入在IPv6地址中,所以主机标识符容易由IPv6地址泄漏。为了应对这个问题,IETF发布了针对临时地址的标准,这些临时地址通常与传统(稳定)IPv6地址一起使用。然而,尽管临时地址可帮助缓解主机跟踪的特定向量,但IPv6主机跟踪的其他向量以及传统地址扫描机制的漏洞等问题仍然未被解决。

IETF在IPv6地址安全和隐私方面不断努力,最终发布了一个提案,以替代传统算法来生成IPv6地址。不过,这个IPv6更新提案在相关IETF工作组(被称为6man)被推迟。6man工作组决定将所提出的算法作为RFC7217发布,但不会正式取代传统SLAAC算法。这意味着没有正式更新IETF标准。

虽然RFC7217的发布是IPv6更新,但没有任何标准推荐或者强制执行其部署和使用,因此,当时传统SLAAC算法仍然是生成稳定IPv6地址的推荐方法。

随后,有关IPv6地址安全和隐私的两个RFC的发布(即RFC 7707和RFC 7721)为IETF采取最后一步奠定了基础,即让RFC 7217中提到的算法取代传统SLAAC算法。

这最终在2017年2月发布RFC 8064得以实现,该RFC建议部署和使用RFC 7217生成稳定地址,并建议不要使用在IPv6地址嵌入链路层地址的任何地址生成机制。

语义模糊的接口标识符

RFC 7217 IPv6更新指定了算法来生成IPv6接口标识符(以及IPv6地址),在相同网络内稳定,但随着节点从一个网络移动到另一个网络而发生变化。该算法可用以下表达式来总结和体现:

IPv6_IID = Hash(Net_Prefix, Net_ID, Net_Iface_ID, Secret_Key)

其中:

  • Hash():加密安全哈希函数
  • Net_Prefix:本地路由器发布的IPv6前缀
  • Net_ID:可选网络标识符,例如WiFi网络的服务集标识符
  • Net_Iface_ID:底层网络接口的标识符(例如网络接口名称)
  • Secret_Key:秘密值,通常在系统安装期间作为随机值初始化,并在重新启动时保持不变

基本上来说,IPv6接口标识符是通过对多个参数连接计算安全散列来获得,最常见的是本地路由器(Net_Prefix)和秘密密钥(Secret_Key)公布的网络前缀。

只要节点保持在相同网络,它将维护和配置相同的IPv6地址,这是因为散列函数的所有参数保持不变。另一方面,由于网络前缀会改变,所以一旦节点连接到不同的网络,IPv6接口标识符将会改变。同时,如果节点返回到之前连接的网络,它将配置与之前相同的IPv6地址,因为用于计算该IPv6接口标识符的所有参数都将与原来情况相同。

部署IPv6更新

截至本文发稿时,至少存在以下RFC 7217部署:

  • Linux kernel v4.0;
  • NetworkManager v1.2.0-0.3.20151112gitec4d653.fc24;
  • dhcpcd 6.4.0; 以及
  • macOS Sierra.

Linux内核部署是第一个RFC 7217部署,因此,也可作为参考部署。然而,Ubuntu以及Fedora等最受欢迎的Linux版本使用NetworkManager应用程序包进行网络配置而部署依靠内核。自1.2.0-0.3.20151112gitec4d653.fc2版本起,NetworkManager已经部署RFC 7217。随着主流Linux版本的新版本发布,所以主流版本都应该会支持RFC 7217规定的新算法。Fedora等受欢迎的Linux发行版已经提供默认启用的新算法。

在很多Linux发行版(例如Raspbian)中,dhcpcd安装包被用于网络配置。Dhcpcd自6.4.0版本就已经支持RFC 7217,当前版本的Raspbian已经在默认情况下启用RFC 7217规定的算法。

最后,主流操作系统macOS Sierra也增加对RFC 7217 IPv6更关心支持,并在默认情况下启用该新算法。

还有一些最流行的操作系统最新版本也已经支持RFC 7217,Android也将支持RFC 7217。

在笔者撰写本文时,Microsoft Windows并不支持RFC 7217,但根据Windows中增加的很多其他安全和隐私改进(例如MAC地址随机化),再加上RFC 8064的共同作者隶属于微软的事实,微软应该会在未来某个时间增加对RFC 7217的支持。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

Fernando Gont
Fernando Gont

来自SI6 Networks的互联网安全和工程顾问

翻译

邹铮
邹铮

相关推荐