有点好奇 airtag 是怎么实现的用蓝牙追踪
如果 airtag 不联网,纯靠蓝牙连接和所有 i 设备网络上报,那么果果就得准备一个全球同步的硬件设备库;虽然可以参考 APNs 网络,但本身记录的 airtag 位置和状态是非实时的,那么还得做一套设备状态实时回扫的大数据库还得全球同步,非常好奇是怎么做到的。其他同类型设备的后台虽然也会有这种问题,但果果是动用了所有的 i 设备,这种架构属实没见过,不知道有没有懂哥来聊聊该咋实现
如果 airtag 不联网,纯靠蓝牙连接和所有 i 设备网络上报,那么果果就得准备一个全球同步的硬件设备库;虽然可以参考 APNs 网络,但本身记录的 airtag 位置和状态是非实时的,那么还得做一套设备状态实时回扫的大数据库还得全球同步,非常好奇是怎么做到的。其他同类型设备的后台虽然也会有这种问题,但果果是动用了所有的 i 设备,这种架构属实没见过,不知道有没有懂哥来聊聊该咋实现
然后接下来就是数据库查询了。查询 airtag 最后发回的信号。
《“查找”中的端对端加密》
https://support.apple.com/zh-cn/guide/security/sec60fd770ba/1/web/1
“当设备丢失并无法接入无线局域网或蜂窝网络时,例如,MacBook 被忘在公园长椅上,设备会在短时间内开始定期广播蓝牙有效负载中派生的公钥 Pi 。通过使用 P-224,公钥代表可匹配单个蓝牙有效负载。然后周围的设备就可在公钥中加密自己的位置来帮助查找离线的设备。大约每隔 15 分钟,就会使用计数器的增量值并按照上述流程生成的新公钥进行替换,这样其他人就无法通过永久标识符跟踪用户。派生机制使各种公钥 Pi 无法链接到同一台设备。”
《在“查找”中定位丢失的设备》
https://support.apple.com/zh-cn/guide/security/sece994d0126/1/web/1
“任何位于蓝牙覆盖范围内且打开了离线查找的 Apple 设备都可检测此信号并读取当前广播密钥 Pi 。查找设备使用 ECIES 结构和广播中的公钥 Pi 加密其当前位置信息并中继给 Apple 。加密的位置与服务器索引关联,该索引使用获取自蓝牙有效负载的 P-224 公钥 Pi 计算为 SHA-256 哈希值。Apple 从不拥有解密密钥,因此 Apple 无法读取由查找设备加密的位置。丢失设备的所有者可重构索引并解密已加密的位置。”
“尝试定位丢失的设备时,会为位置搜索期间预估一个计数器值的预期范围。设备所有者知道搜索期间计数器值范围中的原始 P-224 私钥 d 和密钥值 SKi 后,便可重构整个搜索期间的值集 {di, SHA-256(Pi)}。然后,用于定位丢失设备的设备所有者可使用索引值集 SHA-256 (Pi) 来查询服务器并从服务器下载已加密的位置。“查找” App 随后使用匹配的私钥 di 在本地解密已加密的位置,并在 App 中显示丢失设备的大致位置。多台查找设备报告的位置会由所有者的 App 整合以生成更精确的位置。”