APP下载

Apple和Google的Contact Tracing技术怎么追踪疫情又能保护隐私?

消息来源:baojiabao.com 作者: 发布时间:2026-02-02

报价宝综合消息Apple和Google的Contact Tracing技术怎么追踪疫情又能保护隐私?

透过这种设计,Apple和Google希望最大限度确保:

  1. 交换的讯息本身是匿名化的;
  2. 即便满足隐私保护的要求,在需要的时候仍可以对讯息进行解密,定位到接触者。

稍微详细点的解释:

A码叫做Tracing Key,在手机上首次启动Contact Tracing时产生,长度为32字节,设备唯一,不会变化。虽然名字里有个“追踪”,实际上A码不会被上传,只保存在手机上,也没有辨识作用,只是作为下一步运算B、C码时的输入。

A码是一个随机数,使用加密学随机数产生器(CRNG) 产生。

当你首次在自己的iPhone 或者Android 手机上使用其它-、公司或机构基于AppleGoogle方案开发的接触追踪软件时,你的手机就会自动产生这样随机、唯一的A码。

这个码和你手机的已知辨识码,比如序列号、mac地址,都没有关系,而且不会上传,所以几乎不存在隐私风险。

B码叫做Daily Tracing Key,是从A码使用HKDF函数派生而来的,长度为16个字节。每24小时更新一次,

B码没事的时候也不会上传。它平时的主要作用是作为输入,产生C码。只在确诊时,B码才会派上用场。如果使用者健康且没有接触风险,B码也是永远保存在手机上的,不会上传。

假设使用者甲在过去几天内和确诊的乙发生过接触,存在感染的风险,甲在这几天里的B码就会被作为“诊断码“(Diagnostic Keys),被提取用于确认身份。B码只在此时才会被提取走。总的来说,不管怎样,B 码都不会被预设(自动)上传。

上传的C码又是什么呢?

C码叫做Rolling Proximity Identifier,是对B码进一步进行加密产生的消息认证码(HMAC),长度为16个字节,透过低功耗蓝牙每15分钟对周围的所有设备广播一次,安装了Contact Tracing的手机可以接收到并保存这个码。

为了保护隐私避免追踪,从蓝牙4.2版本开始设备的蓝牙MAC地址可以随机变化。顺应了这一点,Contact Tracing 会在每次蓝牙MAC地址改变的时候,产生一个新的C码。

除了广播出去之外,手机还会保存在过去一段时间内产生的所有C码,用于在追踪接触者时进行校验。

如何追踪接触者?

如果你理解了前一节,那么这里就更好理解了。

我们假设甲确诊了,比如追溯期是14天内,就用甲手机在过去14天里的B码作为“诊断码”,上传到云端。

所有使用者的手机每天都会从服务器下载一次所有的确诊患者的诊断码,然后在本地采用和运算C码一样的加密算法算一遍。

我们假设过去14天里甲和乙曾经共处一室一段时间,那么乙的手机上一定保存了来自甲的C码。如果乙的手机经过计算,得到的C码出现在自己保存的过去14天的记录里,就完成了接触者的追踪和验证。

Apple和Google发布的Contact Tracing 蓝牙工作原理提供了一张图片,阐释这个过程:

优势和劣势

总的来说,这套技术实现方式最直接的优势,就是在满足功能的前提下最大限度保护使用者隐私。

在Contact Tracing 加密和蓝牙工作原理白皮书中,两家公司指出,前两种码的产生周期是固定的,能够避免其它应用获取并用于无关的追踪目的。

上传的讯息中不包括地理位置讯息,严格仅限使用低功耗蓝牙beacon。

C码是和B码绑定的,没有B码,获得了C码也没有意义。

比方说某国-用这套API 开发了一个追踪工具,管理员在服务器端也是无法了解到某健康使用者接触了哪些其它使用者——管理员只可以对确诊患者这样做。

即使有确诊患者出现,对其上传的诊断码的计算也只是在其它使用者的手机上进行,而非在服务器端。

由于设定了蓝牙广播和扫描间隔,以及每个C码的长度只有16字节,这套技术实现方式也比较省电、省存储空间。总体来看,它的电量消耗应该不会很可观,至少不会达到夸张的成都。当然,具体的广播和扫描间隔可以由追踪工具的运营者自行设定,Apple和Google也建议运营者考虑电量消耗。

Apple和Google还在白皮书中告诫追踪工具的运营者,不要从使用者的手机上提取其它无关的元数据。

这套技术实现方式也有一些劣势。

其中最直接的劣势,来自于蓝牙本身的工作原理。

低功耗蓝牙的最远理论距离可以达到100米,而且也有一定的穿墙能力(隔一堵水泥墙往往没什么问题,金属的阻隔效果更强)。

这意味着如果你只是在空气流动的户外隔着几十米“擦肩”了陌生人,或者明明和他分别处在两个房间,只要你们的手机都装了Contact Tracing,都开了蓝牙— —只要那人被确诊,你也有很大可能“不幸”成为接触者。

另外,有人应该能看出来Contact Tracing是不完善的:就算发现并通知了接触者,仅靠这个机制本身,无法定位到他。知道自己成为接触者的,只有接触者本人。接下来他是否愿意主动配合居家隔离,最终还是依赖于个人意志,权威机构很大程度上是无能为力的。

这些功能可能需要 app 开发者自行开发,但是这样做的话也一定程度违背了Contact Tracing 隐私保护设计的初衷。

针对这一点,Apple和Google提供的说明书写到,当接触者收到通知之后接下来该怎么做,需要卫生部门的网站或app 进一步说明。

另外也存在一种捣乱的可能性,就是故意产生并广播大量的伪造的C码。不过除了占据使用者手机的储存空间之外,目前这种攻击方式还没有其它可见的危害。

当然,这还只是一个相对比较早期的技术,Apple和Google也不是实际的实施者,具体使用的效果要看采用这套技术的-或其它公司。

iOS和Android的API已经发布在两家公司的网站上。

  • 本文授权转载自Pingwest
2020-04-28 13:50:00

相关文章