有点好奇 airtag 是怎么实现的用蓝牙追踪 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
drrrtt
V2EX    Apple

有点好奇 airtag 是怎么实现的用蓝牙追踪

< href="Javascript:" Onclick="upVoteTopic(773279);" class="vote">
  •  
  •   drrrtt 2021-04-26 10:39:34 +08:00 4372 次点击
    这是一个创建于 1679 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果 airtag 不联网,纯靠蓝牙连接和所有 i 设备网络上报,那么果果就得准备一个全球同步的硬件设备库;虽然可以参考 APNs 网络,但本身记录的 airtag 位置和状态是非实时的,那么还得做一套设备状态实时回扫的大数据库还得全球同步,非常好奇是怎么做到的。其他同类型设备的后台虽然也会有这种问题,但果果是动用了所有的 i 设备,这种架构属实没见过,不知道有没有懂哥来聊聊该咋实现

    11 条回复    2021-04-27 16:11:35 +08:00
    richard881027
        1
    richard881027  
       2021-04-26 11:05:51 +08:00
    现在 iphone 的查找网络不就可以离线定位,原理应该都一样吧
    huntrue
        2
    huntrue  
       2021-04-26 11:11:46 +08:00
    看网上说是用了什么 UWB 超宽带技术,咱也不懂
    wy315700
        3
    wy315700  
       2021-04-26 11:22:48 +08:00
    其实就是任何一个 iPhone 接收到 airtag 的信号就会把当前的位置和这个 airtag 的信息发回苹果的服务器。。

    然后接下来就是数据库查询了。查询 airtag 最后发回的信号。
    wanguorui123
        4
    wanguorui123  
       2021-04-26 11:36:26 +08:00
    AirTag 会就近通过蓝牙连接苹果设备上报定位信息
    imTerry
        5
    imTerry  
       2021-04-26 11:38:50 +08:00 via iPhone
    *“‘查找’网络”是一个由数百万台 Apple 设备以加密、匿名方式构成的网络,可帮助您定位自己的设备。
    https://support.apple.com/zh-cn/HT210400
    Pazakui1259
        6
    Pazakui1259  
       2021-04-26 11:50:10 +08:00   5
    《 Apple 平台安全保护》详细的介绍了“离线查找”功能是如何运作的,参考目前尚未对 AirTag 更新的《 Apple 平台安全保护( 2020 年春)》:

    《“查找”中的端对端加密》
    https://support.apple.com/zh-cn/guide/security/sec60d770ba/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 整合以生成更精确的位置。”
    drrrtt
        7
    drrrtt  
    OP
       2021-04-26 13:41:45 +08:00   1
    @Pazakui1259 #6 所以苹果把加解密都下放到端上进行了,而服务端只是一个存了 N 个哈希值的大 hash table,更新周期有 15min 所以也不会造成超大并发,是这个意思吧
    Pazakui1259
        8
    Pazakui1259  
       2021-04-26 14:29:40 +08:00   1
    @drrrtt 根据我的理解是这个意思。在 Apple 的 AirTag 新闻稿( https://www.apple.com.cn/newsroom/2021/04/apple-introduces-airtag/ )里也提到了“由 AirTag 传输的蓝牙信号标识符会频繁地轮换,以防止意外的位置跟踪。”所以应该是和上述相似的一种运作方式。具体还要等《 Apple 平台安全保护》更新来进一步解释其他的信息了,不知道 Apple 是如何保障 AirTag 在和 iPhone 配对时交换密钥的安全的?
    drrrtt
        9
    drrrtt  
    OP
       2021-04-26 14:35:08 +08:00
    @Pazakui1259 #8 又是私有协议或者私有芯片?跟 airpods 这种连接方式可能比较像?不过要说回来做这种及时性能和几十亿台设备的大后台 果果还是有钱啊
    beijiaoff
        10
    beijiaoff  
       2021-04-26 19:20:58 +08:00
    所以每个 200 块钱的价格,有一部分是花在了软件和网络服务费上
    cskeleton
        11
    cskeleton  
       2021-04-27 16:11:35 +08:00 via iPad
    看起来做的事情和新冠用那个暴露通知是很相似的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2602 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 08:02 PVG 16:02 LAX 00:02 JFK 03:02
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86