讲解win10上的MAC地址随机化运行机制

阅读量586831

|评论2

|

发布时间 : 2016-03-08 16:37:33

x
译文声明

本文是翻译文章,文章来源:360安全播报

原文地址:http://www.mathyvanhoef.com/2016/03/how-mac-address-randomization-works-on.html

译文仅供参考,具体内容表达以及含义原文为准。

https://p5.ssl.qhimg.com/t019bb6d8257c18a48b.png

苹果公司在其设备联入Wi-Fi网络时,会使用随机生成的MAC地址。当苹果公司宣布这一消息时,也引起了各大媒体和人民群众的广泛关注。当然了,这种机制能够防止公司追踪你的上网行为,而苹果公司也是业内首家采用这种安全机制的公司。除此之外,Windows和安卓操作系统的各大手机制造商也在悄悄地试图赶上这一发展趋势。所以,某些运行了Windows操作系统的设备目前也支持MAC地址随机化了。我们将在这篇文章中对MAC地址随机化技术进行讨论,并且还会对此项技术中的一些设计缺陷进行分析。需要注意的是,我们在这篇文章中所讨论的内容仅仅是最近所发表的一篇论文(论文标题为“为什么MAC地址随机化仍然不够: Wi-FI网络发现机制的分析报告”)中的一部分。

MAC地址随机化的工作机制

微软首先在其Windows 10操作系统中引入了MAC地址随机化技术。不幸的是,只有当你的电脑中安装有WiFi无线网卡和相应驱动程序的情况下,你才可以使用这一功能。比如说,如果你使用的是英特尔7265 AC,那么你必须在安装了最新版本的驱动程序之后,你才可以使用这一功能。你可以通过下图所示的方法来查看你的硬件设备是否支持使用MAC地址随机化功能:

http://p6.qhimg.com/t012057823a5632857c.png

如果你的硬件支持使用MAC地址随机化功能,那么你将会在窗口顶部看到下图所示的选项:

http://p4.qhimg.com/t0114bcc2d500af87af.png

正如你所看到的那样,我的笔记本电脑开启了这一功能。目前为止,设备运行一切正常。但是,我还发现了一件非常有趣的事情,当Windows设备连接至无线网络之后,它也会使用MAC地址随机化技术。相比之下,苹果设备只会在搜索附近可用的无线网络时才会使用随机生成的MAC地址,然后当设备连接至了某一目标无线网络之后,设备仍然会使用其原始的MAC地址。所以,从这个角度来分析的话,Windows10能够给提供的隐私安全保障要比苹果设备所提供的要强得多。

如果在用户进行身份验证的过程中需要使用设备的MAC地址的时候,那么使用随机生成的MAC地址来接入网络将会引起一些问题。有趣的是,Windows设备在每次与某一特定的网络进行连接时,使用的都是同样的随机MAC地址,所以这也就成功避免了用户在身份验证过程中可能会遇到的问题。比如说,当你需要使用某一收费的Wi-Fi热点时,路由会利用设备的MAC地址来对你的身份进行验证。目前看来,一切都没有问题。当你首次连接至这一无线网络时,Windows将会生成一个随机的MAC地址。但是,当你经过一段时间之后,想要再次连接这个无线网络时,Windows将会再次使用之前针对这一无线网络所生成的MAC地址。因此,目标路由仍然可以识别你的身份,所以你就不需要再次进行付费了。但是,这种机制有一个缺点:因为当你连接至某一特定的网络时,设备所使用的MAC地址都是一样的。所以攻击者就可以了解到某一特定设备联入网络的时间。然而,与之前使用原始的MAC地址相比,Windows 10中所采用的MAC地址随机化技术还是可以从一定程度上保护你的隐私安全。

从技术层面来看,当设备连接至某一无线网络时,系统生成随机MAC地址的计算方式如下:

address = SHA-256(SSID, real MAC address, connectionId, secret)

在上面这条公式中,“SSID”为你所要连接的网络名称;“real MAC address”为设备网卡的原始MAC地址;“connectionId”是一个值,当用户断开(或者重新连接)与目标网络的连接之后,这个值就会改变(当Windwos 10的用户点击了“忘记此网络”选项之后,这个值也会改变)。“secret”参数是一个在系统初始化的过程中所生成的256位加密随机数,这个值在设备重启之后仍然不会改变。每一个接口的“secret”参数值都不相同,目的就是为了保证每一个接口所分配到的随机MAC地址都不一样。当Huitema首次向大家介绍了此项技术的工作机制之后,我们这篇文章是第一个对此计算公式进行详细讲解的文章。

当然了,我们也可以针对特定的网络环境来禁用MAC地址随机化功能。在这种情况下,Windows操作系统将会使用设备原始的MAC地址来连接目标网络。你可以通过下图所示的操作步骤来对特定的网络进行相应的配置:

http://p2.qhimg.com/t018b812f643f1f9362.png

在对每一个特定的网络进行配置时,用户将会看到下列三种选项:

l   On(打开):当设备与该网络进行链接时,总是使用相同的随机化MAC地址。

l   Off(关闭):当设备与该网络进行链接时,总是使用设备的原始MAC地址。

l   Change daily(每天生成新的随机MAC地址):系统每天都会随机生成一个新的MAC地址来供用户使用。

请注意,如果设备没有通过上述选项来启用随机化MAC地址功能,那么Windows 10操作系统在扫描附近可用的无线网络时,将会一直使用随机生成的MAC地址。当你连接或断开某一特定的无线网络,或者重启设备之后,扫描地址都会发生变化。即使MAC地址并不会经常发生变化,但是这也足以防止他人对你的上网行为进行跟踪了。相比之下,苹果设备在扫描网络地址的过程中,其MAC地址几乎每隔几分钟就会改变一次,这也就更加能够保护你的隐私安全了。

基本的安全分析

Windows 10所采用的这种随机化技术能够有效地保护你的隐私安全。所以,请广大用户尽快开启这一功能吧!不幸的是,这项技术目前并不完美,因为我们仍然可以有很多的办法来绕过这一保护机制。

首先。我们讨论其中的一个设计缺陷。当设备的随机MAC地址改变时,设备WiFi数据帧中的序列号并没有被重置。系统在检测和重发数据包时,需要使用到这个序列号,当系统成功发送了一个帧之后,相应的值会加1。正如下图所示,当用户连接至了某一网络之后,MAC地址会发生改变,但是序列计数器却没有复位:

http://p7.qhimg.com/t014efae696917d6516.png

最后一个数据帧是由ea:69:0a:*发送的,其序列号为92。而地址7c:5c:f8:*所对应的序列号为94。这也就意味着,攻击者只要能够在其数据中包含这两个数据帧,那么他就可以向目标设备发送信息了。换句话来说,只要攻击者能够发现哪个设备使用了这两个数据帧,他就可以绕过MAC地址随机化这一保护技术了。

其次,当Windows 10与Hotspot 2.0网络进行连接时,将会暴露其真实的MAC地址。简而言之,Hotspot 2.0(HS 2.0)是由Wi-Fi联盟和无线带宽联盟一同开发的,旨在实现移动网络和Wi-Fi网络之间的无缝流量切换,它不需要额外的用户注册和验证。Hotspot 2.0采用最新批准的IEEE 802.11u协议,能够实现设备和接入端(AP)之间的通信,支持自动发现网络、授权和分配访问权限。

http://p8.qhimg.com/t01ac2bc6f87720be1e.png

详细的安全分析

如果大家想要了解更多关于MAC地址随机化技术的信息,请点击这里获取。我在这篇文章中详细介绍了其中的技术细节。

本文翻译自360安全播报 原文链接。如若转载请注明出处。
分享到:微信
+11赞
收藏
WisFree
分享到:微信

发表评论

内容需知
  • 投稿须知
  • 转载须知
  • 官网QQ群8:819797106
  • 官网QQ群3:830462644(已满)
  • 官网QQ群2:814450983(已满)
  • 官网QQ群1:702511263(已满)
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 360网络攻防实验室 安全客 All Rights Reserved 京ICP备08010314号-66