凯哥stack

苹果和谷歌联手打造新冠接触者追踪应用?

getting-better

背景

近期大量新闻报道,苹果和谷歌要联手通过蓝牙技术,帮助美国追踪新冠接触者,通过仔细阅读,其实他们并不是要开发一个APP应用,而是为官方应用在iOS和安卓平台上提供接口,由公共卫生部门的APP在使用者的授权下通过访问该接口,达到追踪接触者的目的。
其实早在MIT(麻省理工)就已经做过通过GPS+Bluetooth方式开发过一款名叫safe-path(Private-kit)的APP,用来追踪新冠接触者,但是由于记录个人位置信息,并不被大多数人接受,然而现实的问题,新冠病毒潜伏时间长,如果某个人确诊了新冠肺炎后,卫生部门如何能够确切知道接触者的范围呢?靠人的记忆很难完整回忆出过去14天与他接触的人,尤其是各种场合接触的陌生人。
而本次MIT的林肯实验室在苹果的Find My(查找我的iphone/ipad/macbook)应用的启发下,开发了一款完全不需要GPS位置的追踪系统,其工作机制下面详细介绍。

Image: Christine Daniloff, MIT

Image: Christine Daniloff, MIT

先从Find My说起

在以往的Find My的工作机制,在追踪丢失iphone的时候,一般需要iphone开机并联网,这样iphone可以通过GPS或者网络确定自己的位置,然后将位置信息通过网络上报icloud服务器,用户通过icloud的查找我的iphone获取设备的实时位置,还可以下发指令擦除iphone的数据,但是如果iphone被偷走后,一般的操作是关机和断网,在这种情况下,根本没有机会上报任何位置信息,造成追踪的困难。同时这种追踪的方式也对个人隐私造成了一定的困扰,只要能拿到AppleID的密码,可以时刻追踪使用者的位置。
直到2019年6月,苹果发布了一个新技术,声称即使丢失的iphone被关机、断网,依然能够追踪iphone的下落,其原理如下:

  • 配置Find My
    需要至少2台以上的苹果设备,在这些设备上生成一个RSA(非对称加密)密钥对,该密钥对只保存在设备上,不会被上传到icloud,公钥用来加密数据,这些加密的数据只能使用设备上的私钥解开。

凯哥版权

图片: 密钥同步,凯哥stack
  • 工作机制
    一旦配置Find My生效后,设备会通过蓝牙定时向外广播公钥,作为信标,无论设备是开机还是关机,都会向外广播,附近的苹果设备收到这个蓝牙广播的公钥后,把两个信息上报到icloud服务器:
    • 通过收到的公钥加密的位置信息(只能用预先设定的私钥解开)
    • 公钥的hash值(作为ID标识)

同时为了保证公钥不被作为使用者的标识,公钥是循环变化的,同时保证在加密的信息仍然可以使用前面设定的私钥解开,苹果没有公布具体实现细节(有一种可能是公钥+时间类的盐值,通过AES类对称加密后发送)。

凯哥版权

图片: iphone定位过程,凯哥stack
  • 丢失后处理
    当你用刚才配置的另外一台苹果设备获取丢失iphone位置时,会将之前配置好的公钥的hash值上传,icloud将hash值作为ID,查找上报信息,然后将匹配的位置信息下载到当前的设备上,并使用之前配置好的私钥解密这些信息,得到确切的位置信息,苹果声称,因为私钥是本地存储,苹果不会拿到,因此所有的数据苹果是无法解开的,所谓解铃还需系铃人。

MIT追踪工作机制

MIT的林肯实验室正是受到苹果的Find My机制的启发,他们正在开发一个系统,这个系统由云和手机APP组成,其工作机制如下:

凯哥版权

图片: MIT的接触者追踪机制,凯哥stack
  • 手机APP
    任何安装了该APP的手机上,该APP会定时调用手机的接口,通过蓝牙发送随机的字符串作为信标,并记录到手机中,同时APP也会通过手机的接口接收到其他人发送的字符信标(大概6英尺范围内,通过蓝牙定位),同样记录在手机中。

  • 查询机制
    当任何使用该APP的人确诊后,这个人会收到一个类似二维码的东西,扫描后把自己APP记录的自身发送和接收的字符信标上传到云上,任何使用该APP的人都可以向云发起记录查询,如果有字符信标与自己匹配,则会收到一个通知,告知该用户在多长时间之前与确诊者接触的距离和时间长度。

该系统与之前的机制相比最大的优势就是不需要记录使用者的位置信息,很好的保护了用户的隐私,当然这个系统要能良好的运作,需要满足如下条件:

  • 大部分手机支持这种蓝牙的接口供APP使用,目前基本都是苹果和安桌的手机
  • 大部分人都安装该APP,隐私是最大的问题,而MIT就是为了解决隐私问题
  • 需要得到公共卫生部门或者立法支持

苹果和谷歌的任务

苹果的手机目前已经在Find My应用中支持了该机制的框架,只需要开放额外的接口即可,而安桌则可能需要通过开发来提供该功能,相信苹果在该领域一定有专利等产权保护,因此此次有两个条件要求苹果和谷歌在该问题上走到一起,一个是两种系统的手机占据了市场的极高份额,一个是兼容或者相同的接口标准,以及可能涉及的知识产权问题。
另外提到一点,为何苹果和谷歌不直接开发这个APP,其实很简单,这两家都是生态玩家,做的是平台,一个是iOS,一个是安桌,相比做一个小的APP对于他们来说不是重点,他们更希望完善平台的特性,让更多的人基于这个平台来开发,平台才能长盛不衰,同时又能体现大公司的担当。

另外,如何保证发送随机字符的安全性,即字符是否真随机,字符会不会通过手机内置标识产生,如IMEI、DeviceID、用户ID等,随机字符应该是不能被解密,且不可预测的,否则会给使用者带来隐私安全隐患。

最后

虽然在当前科技异常发达的当下,科技给我们带来了很多的便利,很多问题可以通过技术手段得到解决,但是还是希望新冠早点过去,大家相安无事,快乐的嗨起来。

参考材料
[1] http://news.mit.edu/2020/bluetooth-covid-19-contact-tracing-0409
[2] https://www.wired.com/story/apple-find-my-cryptography-bluetooth

凯哥stack

著作权归作者所有,禁止转载


专题:

本文发表于 2020-04-12,最后修改于 2020-04-18。

本站永久域名kaige86.com,也可搜索「 凯哥stack 」找到我。

期待关注我的 ,查看最近的文章和动态。


上一篇 « 细说windows dll加载,一个cygwin错误引发的思考 下一篇 » Nginx+hexo建站小结

推荐阅读

Big Image