安全的COVID-19联系人跟踪的架构

发布日期:2020-12-25 14:56
微信图片_20201215144403
背景
在呼吁使用一种技术来解除对非自我孤立的人们的行动自由的限制之后,在确保诸如英国《人权法》和同等GDPR规定之类的监管义务之后,本文提出了接触配对的参考架构维护隐私的数据库,但可以扩展以支持大规模解除行动限制。

联系人跟踪
《科学杂志》上的这篇文章 提出了一种可以安装在手机上的应用程序,以提醒与有症状的人接触的人们,以使他们能够自我隔离,据报道,NHSX正在开发此应用程序。通过使用这样的系统,将有可能显着提高解除社会距离限制的速度。


类似的解决方案已经在新加坡通过其TraceTogether应用程序以及新项目(如泛欧洲邻近跟踪倡议https://www.pepp-pt.org/ 和https://nexttrace.org/about/ )在运行中。我们的企业级开源软件在提供此类应用程序时提供了强大而有弹性的安全功能,从而支持信任的关键要素,这些功能可以接受监管机构和当局的适当同行审查。

维护隐私
在英国和欧洲,对大规模监视的需求很低,因此,至关重要的是,公众必须对正在开发的解决方案的私密性充满信心。个人与国家之间将存在一种交换条件–通过共享有关您的互动的匿名数据,您可以提高行动自由度。
2016年《调查权力法》涵盖了公共机构对大容量个人数据集的访问,该法案将卫生部列为受监管机构。因此,必须采取保障措施,以确保分析人员的任何访问都是必要的,并且与造成的入侵是相称的。我们将寻求在体系结构中引入保护措施,以防止滥用,从而提高公众对该系统的信任。 

数据模型
将基于三个关键属性提出一个简单的数据模型。
1) 该应用的每次安装都有一个UUID。不会收集任何个人信息(姓名,出生日期,电子邮件地址)。
2) 该应用需要从设备高级访问蓝牙信息,特别是设备的MAC地址和附近设备的MAC地址(有问题的设备将被强制广播其MAC)。
3) 安装后,该应用程序将为用户提供密钥代码,以播种UUID。用户可以提供私钥/密码/生物特征,以便用户可以随时撤销UUID。所得的UUID充当公用密钥。
4) 观察日期。
5) 其他数据集可能包括使用具有适当哈希值的订户属性(已经在预测客户流失分析中普遍使用)的位置感知呼叫描述符记录,但要获得监管部门的批准。
注意:Apple和Google提出了类似的模型 ,其中包括每15分钟更改一次的滚动接近标识符。上面的规范也适用于该模型,但是,Apple / Google方法倾向于将联系人分散存储。
据报道,在中国非接触式温度计可在公共场所用于获取个人的体温读数。这在这里也是可能的,但是我们只会将观察到的温度读数与包含设备UUID的QR码相关联。同样,这里没有收集任何PII,但是可以使用高温读数将有风险的UUID标记到已与该设备接触的设备。

系统架构
为了在人口规模上运行该技术,需要进行仔细的架构设计,以确保解决方案的一致性、完整性和可用性,并确保数据不容易受到未经授权的访问。

数据摄取
对于英国这样的欧洲国家,我们假设软件安装人数为3000万,每天可能会接触多达200人(尤其是在伦敦等高密度地区),因此我们需要一种数据摄取架构每天可以扩展到超过60亿个事件。我们需要确保管道的连续容错能力,以确保我们不会因可用性中断而遭受损失。
Apache Nifi和Apache Kafka是此类摄取架构的理想技术解决方案,受到了全球Web规模的技术公司的信任,并且可以在所有途径中包括传输加密。
在这种情况下,我们将使用带有REST API的Web场来进行转发,然后将其转发到Apache Kafka,然后使用Apache Nifi消耗来自Kafka的事件,然后转发到CDP数据湖中,在该湖中可以执行分析和机器学习。移动应用程序本身将进行REST调用,以通过TLS保护的集合发布UUID、位置数据和观察时间戳,从而确保数据不会被恶意或监视参与者截获。


在需要流分析的地方,也许要提供实时的分析,以了解特定于地理位置的社会隔离措施在多大程度上减少了潜在的传输机会,可以同时使用带结构化流的Apache Flink和/或Apache Spark。


数据存储
对于数据仓库层,我们需要一种解决方案,该解决方案可以处理高吞吐量流接收,快速随机访问和良好的扫描性能以及Cloudera的实时数据仓库产品。Todd Lipcon 最近证明 ,Apache Kudu能够维持高水平的摄取吞吐量,同时提供出色的扫描性能,当我们需要跟踪可疑感染时,我们希望利用这一性能。 
借助Kudu,我们还可以获得以下好处:
• 范围分区允许我们在2-3周内过期时删除分区。
• 通过Apache Impala进行交互式SQL分析
• 通过Apache Ranger使用Impala进行基于属性的访问控制 
• 通过Apache Ranger审核SQL查询
• 与Cloudera Navigator Encryption结合使用时的磁盘上加密。
• 多功能查询支持,具有对Apache Spark和Apache Hive的绑定。


无论是在本地还是在公共云中,我们都可以广泛利用Cloudera数据平台的整体端到端架构。通过结合网络规模证明的Nifi、Impala、Kudu和Spark等技术的优势,再结合Apache Ranger和Apache Atlas的安全性和治理功能,我们可以证明对数据的高度保证正在受到保护。


预警
当收到预警消息表明某个人可能或已确认感染了COVID-19时,联系人跟踪算法就会起作用。利用Apache Kudu的快速扫描性能,我们可以轻松地跟踪患者设备上的应用程序已观察到的那些蓝牙MAC地址,反之亦然(这是被感染患者的MAC反向查找)。
一旦确定了高优先级(48小时内的一阶联系人)和中等优先级(48小时内的二阶联系人,或96小时的一阶联系人)列表,我们将需要生成警报以发送至设备那些有风险的人。注意:目前我们仍未引入任何PII数据。


Apache Kafka的发布/订阅机制非常适合通过REST接口公开的每个UUID发布警报,然后在48小时(或适当的时间段)后可以老化。例如,适当的时间段可以是病毒的潜伏期。现有的警报系统(例如文本消息传递和应用程序)可以使用这些消息,并通过Streams Messaging Manager监视Kafka吞吐量。

分析与机器学习
如上所述,必须有必要访问此数据,并且要与查询该数据的目的成比例。公共卫生用例可能包括响应政策干预措施来监测区域传播率。在这种情况下,我们将使用确保:
1) 在传输和静止时,所有数据均被加密。
2) 系统管理员本身无权访问数据集(职责分离)。
3) 所有访问均由经过身份验证和授权的人员进行。
4) 全部访问已审核。
在这种体系结构中,所有对数据的访问都将通过Apache Impala进行,因此我们可以确信,我们将通过Apache Ranger准确记录谁执行了哪些查询。Apache Knox将通过与公共卫生部的SAML兼容身份提供者解决方案集成来确保对所有用户进行身份验证。
机器学习访问将通过在公共云中的Kubernetes容器上运行的Cloudera机器学习(CML)(或通过本地的Cloudera Data Science Workbench)进行。预测客户流失是机器学习应用程序的一个示例。例如,在电信空间中,通常训练算法以识别倾向于流失的信号,这通常与由于信号覆盖或优质竞争服务而导致的差的服务提供有关。案例追踪可以辅之以类似的技术,该技术可以提醒较高的即时风险,并支持快速简化诸如卫生设备和深层清洁等实际干预措施。一旦使用CML构建了实验和模型,就可以使用CML的“应用程序”功能提供对交互式可视化的访问。


数据治理
此类项目能否成功至关重要的是,适当的治理可以满足诸如GDPR和PCI-DSS之类的既有法规的要求。Cloudera Atlas / Navigator /数据目录可确保管理员和监管人员了解:
• 相关数据所在的位置
• 如何解释该数据以供使用
• 如何创建或修改数据
• 如何保护和保护数据访问
• 审核谁有权访问数据以及如何使用数据


总结
在这篇文章中,我们总结了用于在美国全国范围内基于经过验证的、可扩展的开源技术构建的COVID-19联系人跟踪数据平台的数据结构,系统架构和可视化,默认情况下内置的数据安全性和隐私性,以确保我们能够平衡隐私问题和对快速、准确数据的需求。
分享到:
推荐精彩博文