Apple的创始人贾伯斯曾经因为感到背叛,和Google的前董事长施密特势不两立。而如今全人类面临新冠病毒威胁,两家一度不共戴天的公司走到了一起,共同开发了一套接触者追踪(Contact Tracing)技术。主要基于蓝牙,设计体现了对隐私保护的考虑。今天我们来了解一下Contact Tracing 的工作原理。



 欢迎加入T客邦telegram  ( https://t.me/TechbangNEWS )  

Contact Tracing 的工作原理大致如下:



设备之间透过低功耗蓝牙beacon 的方式,同时作为发送者和接受者,交换并保存彼此的讯息。 



当某人甲确诊之后,甲的设备讯息上传到云端的一个确诊者资料库,所有的使用者都会每天从这个云端资料库下载讯息并在本地查验。如果乙曾经收到过相同的讯息,则可以认为乙是甲的接触者。



当然,如果直接使用设备唯一辨识讯息,会有较大的隐私风险。所以出于隐私保护的目的,Apple和Google费尽心机设计了一个「三码合一」的机制。



为了方便更多读者理解,我们简单把这三码分别简称为A码(Tracing Key)、B码(Daily Tracing Key)、C码(Rolling proximity Identifier)。



  1. 首先,每台使用者的手机都会产生一个固定不变的A 码,不会上传;
  2. 透过A 码,手机可以每天产生一个B 码,平时不会上传;
  3. 既然要做到接触追踪,所以手机需要每隔一段时间(API 建议的是15分钟)对外广播一次。此时广播出来的是用B码来产生的C码,每15分钟/一个广播周期内更新一次。平时只有这个C码会被上传。

由于这种Contact Tracing 是透过API 完成的,iOS 和Android 设备都可以互相广播和接收。





透过这种设计,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已经发布在两家公司的网站上。




《最后生还者 第 II 章》将于 6 月 19 日推出,官方呼吁别再欣赏剧透片段

知名游戏开发商 Naughty Dog 今天在官方 Twiiter 上宣布,玩家期待已久的《最后生还者 第 II 章》,将在 6 月 19 日于 PS4 平台正式登场,不过最近这些日子对顽皮狗来说,却是有一些难过。  欢迎加入T客邦telegram  ( https://t.me/TechbangNEWS )   在今年 4 月初时,许多网友发现 Naughty Dog 即将推出的 PlayStation 平台大作《最后生还者 第 II 章》(The Last of Us Part II),其开发中的剧情片段与部分游戏内容,开始在各大讨论区跟 YouTube 上流窜。 虽然说随后 Sony 与 Naughty Dog 立即展开动作,要求平台将这些不该曝光的影片进行下架,但显然伤害

申博Sunbet官网声明:该文看法仅代表作者自己,与本平台无关。转载请注明:Apple和Google的Contact Tracing技术怎么追踪疫情又能保护隐私?
发布评论

分享到:

三星推出超平价 Galaxy M11 新机,售价不到 4,000 元
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。