跳至主要内容

如果能随机生成Mac地址,每次使用的都是随机生成的Mac地址,设备本身的Mac地址有什么意义? 原创 车小胖谈网络

   

  我用手机连接      WIFI      ,发现随机生成      Mac      地址是默认开启的。  


  

  如果关闭了      随机      MAC      地址      功能,手机就用      设备出厂的      MAC      地址      了,就这么简单。    

  为何手机需要随机      MAC      地址?这个问题会变得更有意义。    

  手机出厂的      MAC      地址,      48            bit      位,      6            byte          

   C4:AC:AA       :5E:9B:28   

  谁家的?    

   Apple      的。    

   00:0c:29       :8e:6e:8d   

  谁家的?    

   Vmware      的。    

  怎么知道的      ?   

   MAC      地址的高      32bit      位,即上文的      C4:AC:AA            00:0c:29             这些      prefix      代表      organizationally unique identifier (OUI)      ,分配给      Apple            Vmware          

  使用手机访问      Wi-Fi      时,无线信号是在开放(      Open      )空气介质里传播的。这里      open      意思是,方圆      100      米以内的人是有可能抓到你的      packet      的。    

  虽然      Wi-Fi      网络大多是加密的,但是      Wi-Fi      的二层头是不加密的,意味着你的      MAC      地址就暴露了。 如果不使用随机      MAC      地址,手机会一直使用出厂的、一成不变的      MAC      地址,这就给第三方跟踪你提供了便利。    

  如果使用随机      MAC      地址,下次连接      Wi-Fi      使用一个和上次连接不一样的      MAC      地址,甚至虚假的      OUI      编号,第三方跟踪你的难度就大大提升了。    

  在一个      Wi-Fi      网络里,多个手机有可能使用相同的随机      MAC      地址,从而造成冲突吗?    

  有这个可能,但概率极其小,小到可以忽略不记。    

  如果真的产生这种小概率事件,会发生什么?    

  任何手机要想上网,必须要      associate      到无线路由器上的。    

  如果老王已经用      MAC = 0000.0000.1234        连上了路由器。    

  此时,老李也想用      MAC = 0000.0000.1234      连接路由器,猜猜路由器会怎么做?    

  路由器内心独白:      MAC = 0000.0000.1234      对应的手机,目前的状态      class 3       (bind)      。怎么又进来一个      class 1            authenticate      报文,状态机不对啊! 按理说,应该给他一个      de-authenticate      报文踢他下线。可是那么一搞,把老王也干下线了,不妥。怎么办?不理他,当作什么也没有发生!    

  老李的手机,没有收到      authenticate reply      报文,心里很着急,来自路由器的周期信标      beacon      是可以收到的,说明路由器是在该信道,也是工作着的,为什么不理我呢?    

  但还是重传了几次      authenticate      报文直到放弃。直到下次      retry      定时器超时,老李手机又一次尝试,这次老李的手机选择了另外一个随机      MAC      地址,和老王不一样的      MAC      地址,终于等来了来自路由器的      Reply      ,老李

评论

此博客中的热门博文

用了 Claude Code 之后,我不再续费 Cursor 了!国内使用 Claude Code 教程 原创 周星星 摆烂工程师

最近深度使用了一段时间的Claude Code,总体感觉: 快、准、贵 。 谷歌也出了对应的Gemini Cli,但是有人翻出对应的源码之后,发现是逆向了Claude Code。 两者我都体验使用过了, 个人感受:Claude Code 强于 Gemini Cli 。 我简单的让Claude Code 生成一个网页介绍如何安装和使用,几十秒之后就完成了。