从字面上来看,Corona-Warn-App 的意思是“新冠病毒预警 App”。看过项目介绍后我们发现,原来该项目是世界第三大独立软件供应商,全球第二大云公司为德国开发的官方新冠疫情追踪应用程序,基于苹果和谷歌的 Exposure Notification API(曝光通知 API)。这些应用程序适用于 ios 和 android 设备,可使用蓝牙技术与附近同样安装了该 App 的手机交换匿名的加密数据。本项目的存储库包含用于 Corona-Warn-App(下文简称 CWA)加密密钥的服务器实现,但是实现仍在进行中,当前在 GitHub 上开源的为 alpha 代码。看到这段介绍,有人可能要问,这里的 Exposure Notification API 是什么?其实这个方案在刚推出时就已经引发了大家关于疫情期间从技术上防疫的关注。简单来说,Exposure Notification API(曝光通知 API)是谷歌和苹果联合发布的一个新冠病毒追踪 API,基于此框架开发的 App 可以把用户分为两类,一类是受影响的用户(affected users),一类为暴露的用户(exposed users)。受影响的用户是 COVID-19 的确诊或疑似病例,而暴露的用户可能与前者有过接触。这样,当其中用户 A 被确诊时,曾经同样使用过这款 App 并与 A 安装了 App 的设备近距离接触时,用户 B 会在 A 确诊后得到通知,提醒 B 可能感染了病毒。值得注意的是,这个 API 是基于蓝牙技术,需要打开蓝牙开关才能交换附近设备的数据。为了加强隐私,这个 API 把谷歌和苹果定义的加密协议的重大变化考虑进来了。最初,该协议使用了两个加密密钥,一个是用户唯一的 Tracing Key,永远留在本地设备上,另一个是 Daily Tracing Key,它是基于前者生成的一个跟踪密钥。Daily Tracing Keys 用于生成 Rolling Proximity Identifiers(又称伪随机蓝牙标识符),用于检测特定的时间段内设备的距离。理论上来说,这种方法可以让用户在自己的信息不会泄露的前提下获取新冠病毒数据,从而达到及早发现及早治疗的目的。
技术实现解析,如何实现隐私保护?
如果这样的方法果真能够既保护用户隐私,又达到疫情防控的目的,那就非常值得探讨一番了。
后端架构
CWA 服务器在 Open Shift(“ OSP”)平台上的 Kubernetes 集群中运行。其主要目的是使用户能够使用基于 Apple / Google 规范的曝光通知框架。贡献者也说明了,尽管 CWA 尽可能地符合协议规范,但并不意味着将可以实现所有功能,主要还要l考虑数据隐私和保护(DPP)问题。Google / Apple 的最新规范:
Google Spec(https://static.googleusercontent.com/media/www.google.com/en//covid19/exposurenotifications/pdfs/Exposure-Key-File-Format-and-Verification.pdf)