写点什么

谷歌和苹果发布 Exposure Notification API 草案

  • 2020-05-08
  • 本文字数:1369 字

    阅读完需:约 4 分钟

谷歌和苹果发布Exposure Notification API草案

几周前,谷歌和苹果宣布,他们将联合在移动操作系统上为接触者跟踪应用程序提供可靠的支持。现在,这一合作达到了一个关键的里程碑:Exposure Notification API的初步草案及其 iOS 测试版。


需要说明的是,苹果和谷歌已经将他们的技术解决方案重新命名为暴露通知(exposure notification),这比接触者跟踪(contact tracing)好。重新命名的原因是,接触者跟踪是一种更广泛的解决方案,会涉及到某种集中式系统,用户可以连接到上面,而这应该由区域卫生当局提供。苹果和谷歌只是为这类应用程序提供技术基础,因此这个名称更合适。


为了加强隐私,新 API 考虑了由谷歌和苹果定义的加密协议的显著变化。最初,该协议使用了两个加密密钥,一个用户唯一的 Tracing Key,永远不会离开设备,另一个是 Daily Tracing Key,它是基于前者生成的一个跟踪密钥。Daily Tracing Keys 用于生成 Rolling Proximity Identifiers(又称伪随机蓝牙标识符),用于检测特定的时间段内设备的邻近性。


实际上,当设备可以直接访问时,有一个与其相关联的唯一密钥会打开高级攻击的大门。因此,新版本的协议使用完全随机的 Temporary Exposure Keys 来生成 Rolling Proximity Identifier Keys,然后再用它们生成 Rolling Proximity Identifier。按照苹果和谷歌的说法,由于 Rolling Proximity Identifier 不是由一个生存期为 24 小时的完全随机的密钥生成的,所以在不知道相应的 Temporary Exposure Keys 的情况下,攻击者在 Rolling Proximity Identifier 上找到碰撞攻击的机会在计算上是不可行的。这减少了重播攻击和伪装攻击的机会。


新的 Exposure Notification 框架包含两个用户角色:*受影响的用户(affected users)*和暴露的用户(exposed users)。受影响的用户是 COVID-19 的确诊或疑似病例,而暴露的用户可能与前者有过接触。当用户被确诊时,他们的 Temporary Exposure Keys 将通过外部诊断服务器与其他可能暴露的用户共享。此步骤需要用户显式授权。暴露的用户可以使用 ENSelfExposureInfoRequest 检索一组 Temporary Exposure Keys,并请求框架使用 ENExposureDetectionSession 确定本地是否检测到了这些密钥。


Exposure Notification 框架的核心类是 ENManager,它负责一些准备任务,比如检查 App 的授权状态。ENManager 可以使用其 setExposureNotificationEnabled:completionHandler 方法启用暴露通知,在请求使用授权后启动或停止蓝牙广播和扫描。在任何时候,都可以使用 getDiagnosisKeysWithCompletionHandler:completionHandler 来检索此设备使用的 Temporary Exposure Keys,并与诊断服务器共享。此步骤也需要显式授权。


ENExposureDetectionSession 类是和 ENManager 配对的类,因为它可以检查从诊断服务器接收到的 Temporary Exposure Keys 是否被检测到了。这可以使用 addDiagnosisKeys:completion 和 finishedDiagnosisKeysWithCompletion:方法来完成。如果检测到用户暴露过,则可以使用 getExposureInfoWithMaxCount:completionHandler 检索更多信息,如接触时长和日期。


了解更多关于新 API 的细节,请查阅Exposure Notification框架官方文档。


新的Exposure Notification API刚刚在iOS 13.5开发者版本Beta 3中提供,感兴趣的开发者可以试着开始接触者跟踪的实验了。


原文链接:


Google and Apple Publish Exposure Notification API Draft


2020-05-08 09:001658

评论

发布
暂无评论
发现更多内容

阿里大牛耗时三年整理出来的4588页Java面试诛仙手册,已全面开源

java小李

Linux 面试

阿里内网流传的9w字图解网络(全彩版)GitHub现已下载量过百万

java小李

HTTP

我看 JAVA 之 并发编程【二】java.util.concurrent.locks

awen

Java AQS lock Condition LockSupport

模块四作业

燕燕 yen yen

架构实战营

大专的我狂刷29天“阿里内部面试笔记”最终直接斩获十七个Offer

java小李

大数据 面试

香到爆!SpringBoot/SpringCloud全套学习脑图+面试笔记免费分享

java小李

SpringCloud Alibaba

柏益美康系统开发案例详解,柏益美康开发源码

系统开发咨询1357O98O718

我们向华为公司学什么?

石云升

学习 华为 7月日更

阿里内网疯传的P8“顶级”分布式架构手册,GitHub上线直接霸榜了

java小李

微信业务架构 P8

纷多多拼团系统开发案例详解,纷多多拼团现成源码

系统开发咨询1357O98O718

泪目!跳槽太不容易,蚂蚁金服三轮面试,四个小时灵魂拷问

java小李

面试 Leader

史上最全面Java面试指南手册宝典!轻松拿腾讯等大厂offer

愚者

Java 面试

短视频平台获客软件系统开发

阿里资深架构师倾情力荐:Java全线成长宝典,P5到P8一应俱全

愚者

Java 面试

阿里云技术三面Java岗,只需半个月,就可以成功拿25k offer ,轻松任职阿里云

愚者

Java 阿里云

拿来吧你!从阿里P8手里抢来的的JDK源码解析手册,Alibaba真的强

java小李

jdk

LeetCode题解:61. 旋转链表,闭合为环,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

对话交互:封闭域任务型与开放域闲聊算法技术

OPPO小布助手

人工智能 深度学习 对话 智能助手 语义理解

北鲲云超算在生命科学领域的使用场景中有什么作用?

北鲲云

系统性能优化-数据结构

短视频营销系统开发内容

阿里这份15w字Java核心面试笔记!GitHub凭借百万下载量位居榜首

java小李

面试 Java核心笔记

HarmonyOS学习路之开发篇——线程管理

爱吃土豆丝的打工人

多线程 HarmonyOS 线程管理

渣本展示Spring Cloud 架构绝活!最后成功入职阿里

java小李

Spring Cloud

秀出新天际的SpringBoot笔记,让开发像搭积木一样简单

java小李

Spring Boot java架构

阿里巴巴中高级java面试题详解,吃透这20道面试题,offer拿到你手软

愚者

Java 面试

独家!精挑细选三个月的臻品Java面试题,无糟粕!高质量

白亦杨

Java 编程 程序员 架构师 计算机

阿里云飞天论文获国际架构顶会 ATC 2021最佳论文:全球仅三篇

阿里云大数据AI技术

声网 Agora 音频互动 MoS 分方法:为音频互动体验进行实时打分

声网

算法 网络

对于大部分Java开发者说“60W年薪是无法逾越沟壑”你赞同吗?

愚者

Java 后端

Fil还有希望吗?目前Fil发展如何了?

区块链 IPFS Filecoin fil filecoin生态

谷歌和苹果发布Exposure Notification API草案_移动_Sergio De Simone_InfoQ精选文章