不得不面对的随机MAC问题

Android Wi-Fi 随机Mac Wi-Fi 随机MAC 阅读详情

一、现状

为了完善安全机制、保护用户隐私,各个设备厂商开发了 MAC 地址随机功能,防止用户信息泄露。随机 MAC 地址,就是一个随机生成的伪 MAC 地址,一个假 MAC 地址,使用随机 MAC 地址进行网络通信,而不是真实 MAC 地址。

二、随机MAC带来的影响和问题

  • 设备线索冗余,查看某账号下的设备,当前以mac为粒度展示数量膨胀
  • 设备轨迹漂移,当前以mac为粒度的轨迹信息,可能是多设备贡献的
  • 虚实转换关联到多人,无法准确定位背后实人
  • 虚到虚的设备扩线失效

三、中期方案

建立随机mac识别公共服务层,所有涉及mac的下游应用及模型的调用先检查一次

业务结果上的目标,随机mac的落位准确率

业务指标评估成果

将正常mac、随机mac、不可用mac分为白灰黑三类。

  • 白mac:目前的数据服务主力军,占大头
    1. imei和mac合法
    2. 1个mac关联不超过2个imei
    3. 如果有2个imei,则这两个imei的品牌一致(双卡双待机型)
    4. 1个imei只关联到一个mac
  • 灰mac:随机mac,核心是识别随机mac
    1. 单imei有2个及以上的mac(已实现)
    2. 实人 + 设备nick粒度关联2个及以上的mac(已实现,可升级为账号 + 设备nick粒度)
    3. mac在短时间内有长距离移动(模型评估中)
  • 黑mac:串码、刷机修改、设备克隆、不合法

四、长期方案,探索中(N码转换)

扩充四码,加入新的设备标识符号,如IDFA(苹果专属)、OAID(国内厂商联合)、SSAID(谷歌框架)

基本上IDFA、OAID比较靠谱

img

对OAID的支持

厂商版本
小米MIUI10.2 及以上
vivoFuntouchOS 9 及以上
华为全版本
OPPOColor OS 7.0 及以上
LenovoZUI 11.4 及以上
华硕Android Q
场景imeimacutdidoaid数据变化规律
双卡双待主卡切换可能会变不变不变不变只会影响imei变化
wifi网络切换(MAC变化)不变可能会变不变不变wifi切换只会影响mac地址变化
一键换机场景可能会变可能会变可能会变可能会变首次启动不变,后续启动可能会变,卸载一定会变
应用卸载重装不变不变不变不变

五、要做的事

  1. 提升随机mac识别率
    1. 基于mac位置漂移,新增一批随机mac
  2. 建立与机型品牌的关联关系
    1. 引入更多数据,关联到机型和设备
    2. 新的账号设备粒度的位置域数据,
  3. 引入新的码值,如IDFA、OAID这类广告ID,建立六码关系

二、新方向-概率推荐

如果我们不做随机mac的区分,每一个mac进来,我们都为他做概率推荐。无非是0-100%的问题。比如一个正常mac,那它的信息就是干净的,我们理解为100%推荐此条信息。

最先想到的就是跟mac关联性很强的imei和账号。

仍然回到我们最初设定的问题来分情况讨论。

2.1 IMEI的情况

在一个mac能够关联到过个imei的情况下,计算各个imei对该mac的数据贡献度。或者换句话理解,就是关系程度。这里我定义为活跃度。

很自然能够联想到某imei与该mac出现关系的时间越接近当下,出现的频次越高,他们的关系越紧密,活跃度越高。

所以这里有两个概念:关系的新鲜和关系的稳定,简称为 新和常。但到底是新重要还是常重要,这里根据我们的倾向和需求可以有多种处理方式。

所以我们要定义一个公式,来描述活跃度与 新和常 两个因子之间的关系,并且需要分配权重。

这里抛砖引玉,丢个公式:
在这里插入图片描述
这里n为统计周期,可以取180天。这里Wi为新鲜度权重,越接近当下,权重越大,代表 新 这个影响因子;同时,出现的天数越多,求和项也越多,代表 常 这个因子。当然,这里权当举个例子,具体活跃度分值的计算等 模型 大佬再研究下。

2.1.1 轨迹不完整问题
  1. 如果只能关联到一个imei。则输出这个imei的全部轨迹,完毕
  2. 关联到多个imei,根据活跃度推荐前3个imei,提醒下游应用大概率是这几个设备,分别输出展示
2.1.2 轨迹碰撞问题
  1. 同上的第二条,推荐活跃度前3的imei的信息,分别输出展示
2.1.3 设备线索过多问题
  1. 同上

2.2 账号的情况

其实随机mac场景下,imei有很大一部分是取不到的。 Android 10 带来的影响总结下来就两句话:mac越来越脏,imei越来越少。

我们不得不得考虑,没有合适的设备id的情况下,用什么来代替mac去输出信息。

实际上最适合串联各方数据的,就是账号了。

三个经典问题不再分别展示,参考imei的情况

三、设计方案

核心在于建立一张mac粒度的维表,用于描述活跃度前几的其他信息。

大概可能长这样:

macimei_listid_listxx_list
mac1imei1:100,imie2:67,imei3:10id1:32,id2:11xx
mac2imei4:91,imei5:33id3:87yy
……………………

所有以mac为入口的需求,都先走一次维表(可以做成数据服务,对外提供快速查询),按照mac+imei或者mac+id的形式提供给下游应用。而且可以按照要求的严密度限制活跃度分数,筛选出高活跃度的,排除掉低活跃度的。减少下游应用的查询复杂度和可靠性。

结构上比较简单,不再绘图。

四、终极方案?

做自己的ID-Mapping。

说白了,我们最大的痛点在于缺少一个唯一代表一台设备的设备id。

基于这么多码值之间的关联关系,我们利用ID-Mapping,将各种各样的设备级id,系统级id,应用级id等等等码值聚类。利用无向图的联通分量(最大连通图),将大部分正常设备ID聚簇在一起,形成一个自然设备ID簇。其簇的成员包含了各种类型的id。一个id簇,我们就认为是一台设备。

附录:各种各样的ID

在这里插入图片描述

Android 随机分配 MAC 地址的行为 借助随机分配 MAC 地址功能,设备可以在连接到 WLAN 网络时使用随机分配的 MAC 地址。如需了解实现说明,请参阅。本页将介绍 Android 中的随机分配 MAC 地址的行为。设备在连接到 WLAN 网络或接入点时会使用 MAC 地址。由于这些 MAC 地址未经加密即被传输,因此可能会被捕获并用于跟踪用户的位置。过去,设备使用出厂 MAC 地址连接到 WLAN 网络。出厂 MAC 地址在全球范围内是唯一的静态地址,可以跟踪和逐个识别设备。 阅读详情

相关推荐

Windows 11 随机MAC地址实战:基于SHA-256的算法复现与网络调试

本文深入解析Windows 11随机MAC地址技术,详细介绍了基于SHA-256算法的生成原理与实现方法,并提供了网络调试的实战指南。通过工具配置、验证流程和高级调试技巧,帮助用户理解并应用随机MAC地址技术,有效平衡隐私保护与网络管理需求。

weixin_32430941的博客 318

随机MAC地址原理

当设备进行Wi-Fi扫描以发现和连接已知的无线局域网时,它会使用一个随机生成的MAC地址,而不是真实的MAC地址。在主动扫描中,设备广播一个包含虚拟MAC地址的请求,而在被动扫描中,设备只是监听周围的beacon包。这个虚拟的MAC地址不会对后续的关联阶段和数据传输阶段产生影响,因为在那些阶段,设备会使用真实的MAC地址。Windows中的随机分配MAC地址算法是为了提高用户在网络中的隐私保护,通过使用SHA-256哈希函数来生成一个与特定网络和设备相关的临时地址,以此来防止设备被跟踪和关联。

win71的博客 5411

Android 实现随机分配 MAC 地址

从 Android 8.0 开始,Android 设备在未连接到网络的情况下探测新网络时,会使用随机分配的 MAC 地址。在 Android 9 中,您可以启用一个开发者选项(默认处于状态),使设备在连接到 Wi-Fi 网络时使用随机分配的 MAC 地址。在 Android 10 中,默认为客户端模式、SoftAp 和 WLAN 直连启用随机分配 MAC 地址功能。随机分配 MAC 地址可防止监听器使用 MAC 地址来生成设备活动的历史记录,从而加强对用户隐私的保护。此外,在和。

华南烹鱼宴 1811

网卡mac地址

网卡MAC地址   一、MAC地址介绍   网卡MAC地址,被称为物理地址、硬件地址,长度是48比特(6字节),分为前24位和后24位。 前24位叫做组织唯一标志符(Organizationally Unique Identifier,即OUI),是由IEEE的注册管理机构给不同厂家分配的代码,区分了不同的厂家。 后24位是由厂家自己分配的,称为扩展标识符。同一个厂家生产的网卡中MAC

hello_123_hello的专栏 2870

Android 13.0 Wi-Fi如何使用固定mac地址,禁用随机mac地址,以及framework 实现原理的分析

文章主要包括以下几部分: 1、如何禁用wifi的随机mac地址,使用wifi自带的固定mac地址。 2、讲解wifi mac地址相关的代码,弄明白函数之间的调用关系。 3、简单画了关于wifi mac地址的函数调用关系。

qq_15125719的博客 5099

随机硬件地址?私有 WiFi 地址?随机 MAC 地址?

随机MAC地址

networktp的博客 1万+

易语言随机生成MAC源码

这里推荐一个生成随机模拟MAC的源码,非常简洁实用,比如我们在hook物理网卡地址时,需要生成这样的效果. 易语言api hook GetAdaptersAddresses 劫持网卡物理地址 测试输入: 模块封装: 效果输出: 随机生成MAC源码: .版本 2 .支持库 spec .局部变量 i, 整数型 .局部变量 tmp, 字节型, , "20" .局部变量 mac, 文本型, , "0" .局部变量 n .局部变量 文本, 文本型 置随机数种子 () .计次循环...

511遇见 4567

Android 13 WIFI随机MAC切换

MTK路径:vendor/mediatek/proprietary/packages/overlay/vendor/WifiResOverlay/res/values/config.xml。在Android系统中,WIFI隐私默认使用的随机MAC地址。MTK平台客制化需要改为使用设备MAC地址(去掉随机MAC地址选项)或者默认使用设备MAC地址(可切换)。此时更改后默认显示设备MAC地址,同时隐私可手动切换为随机MAC地址。此时更改后无隐私选项,默认显示设备MAC地址。

zy814819798的博客 1728

AndroidQ 以上禁用 wifi 随机mac功能

有关随机mac相关介绍可以查看官方文档 隐私安全:随机分配 MAC 地址 根据文档中修改默认配置 config_wifi_connected_mac_randomization_supported 修改为 false $ find -name “config.xml” | xargs grep “config_wifi_connected_mac_randomization_supported” ./frameworks/base/core/res/res/values/config.xml: fal

cczhengv 3670

在线MAC地址查询和在线随机生成MAC地址

1.在线MAC地址查询: 这个在线工具可以根据MAC地址查询网卡厂商信息。工具链接:http://www.atoolbox.net/Tool.php?Id=808 2. 在线MAC地址生成器: 这个在线工具可随机生成指定组MAC地址。工具链接:http://www.atoolbox.net/Tool.php?Id=807 3.查询本机MAC地址的方法 在Windows系统中查...

WP8HUB 1万+

C语言随机生成mac地址的代码

函数,它会生成一组随机MAC 地址。该函数将第一个字节和第二个字节分别设置为 0,并将余下的 4 个字节填充为随机数。需要注意的是,在实际使用中,可能需要对生成的 MAC 地址进行格式检查和校验,以确保其符合规范并可以被网络设备正确识别和使用。函数用于生成指定范围内的随机整数。函数输出生成的 MAC 地址。该示例中,首先定义了一个。

MrWangHao的博客 1876

使用设备mac好还是随机mac好_了解 “MAC 地址随机化” 刻不容缓

MAC地址随机化在网络行业并不是一个新名词,它已经存在了好几年。无线客户端在还没有和无线网络关联并建立连接时发送探测请求时可以使用随机生成的MAC地址以防止设备的位置被跟踪。而在真正关联期间,客户端设备将使用其“真实”硬件MAC地址。但是,随着即将发布的iOS 14 / WatchOS 7,Android 10+,甚至是Windows 10的一些最新版本,这种情况正在改变。移动设备行业...

weixin_39605278的博客 7万+

(笔记)检测MAC地址是否随机地址

这个函数正确地识别了第一个字节的第二个最低有效位(LSB),并根据它是否为1来判断MAC地址是否是随机的。检查MAC地址的第一个字节的第二个最低有效位(LSB)。将其转换为二进制,然后检查第二个LSB是否为1。为了判断给定的MAC地址是否是随机MAC地址,,那么这个MAC地址是随机的;MAC地址通常以16进制形式表示,如。取MAC地址的第一个字节(例如。在这个例子中,第一个字节是。将这个字节转换为二进制形式(中,从右向左数的第二位是。

u011046452的博客 2484

随机生成 mac 地址

推荐一款MAC地址生成器 在线MAC地址批量生成工具 - 我查139查询网。

羊逸羊的博客 526

使用设备mac好还是随机mac好_iOS 14 MAC地址随机化隐私功能可能导致思科企业网络出现问题...

思科周四警告说,一个新的iOS 14隐私功能可能会给企业或教育网络和设备管理设置带来潜在问题。有关的隐私功能是在连接Wi-Fi网络时使用 "私人"或随机化的媒体访问控制(MAC)地址的选项。一般来说,设备在连接网络时都会使用相同的MAC地址来识别自己,这可以让网络运营商进行追踪。但随机MAC地址也会破坏某些网络或设备管理系统。例如,在周四的一份通知中,思科警告说,如果用户启用了该功能,其身份服务...

weixin_39743369的博客 1万+

Linux ARM生成随机MAC地址

这就导致获取的IP都是一样的,需要让他们启动后获取各自不一样的IP,因此每个板子都需要获得其自己的MAC地址(后三个BYTE区分身份): “00:00:35:XX:XX:XX”有一批产品ARM板出来全都是同一个MAC地址: 00:00:35:00:11:55。1、临时设定网卡的MAC地址(重启后失效)用shell脚本来实现随机MAC备用方法。

luthane的博客 1056

随机MAC地址的设置实现

随机Mac地址的实现方法: 1. shell脚本来实现随机Mac; 2. 使用Linux的接口实现随机Mac; 1. shell脚本实现设置随机Mac shell中获取随机mac地址语句(指定前3段mac地址为00:60:2F, 后3段mac地址随机获取): echo -n 00:60:2F; dd bs=1 count=3 if=/dev/random 2>/dev/n

一点先森 1万+

windows10开启随机mac

1、打开“网络和internet设置”➡WLAN➡使用随机硬件地址(全局,打开后所有无线网络使用随机mac地址) 2、管理已知网络➡可对单个网络

qq_32691287的博客 1万+
上一篇: 不得不学的经典聚类算法K-Means
下一篇: 连接池PgBouncer部署与踩坑实践
喜碧夫人听众
博客等级 码龄14年 196粉丝 53原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值