李超群,陈智罡,宋新霞,周云慧
1.浙江万里学院 信息与智能工程学院,浙江 宁波315100
2.浙江万里学院 基础学院,浙江 宁波315100
3.北京科技大学 计算机与通信工程学院,北京100083
由SARS-COV-2病毒引起的新冠肺炎(COVID-19)成为了全球性流行病,该疾病已蔓延到全球大多数国家,对医疗保健系统和社会经济均构成了挑战[1]。截至到2020年12月26日,全球累计确诊新冠肺炎102 159 376例,累计死亡2 208 947例[2]。由于2020年初尚无COVID-19疫苗,全球大多数国家实施了非药物干预(NPIs),即采取严格的措施(包括关闭工作场所、学校、社交场所以及旅游等)来降低民众之间的接触率,从而减慢疾病传播[3]。
NPIs在COVID-19大流行中是有效的,以致于死亡率大大降低。但是严格地限制对经济结构造成了威胁,因为经济本身的下滑会对社会许多方面产生不利影响。Goldman 预测,到2020 年第二季度,美国的经济可能会萎缩24%,是有史以来下滑最多的一次。基于此原因,各国开始制定新的平衡策略,用以兼顾社会经济和COVID-19 的反弹。一直以来,接触跟踪是公共卫生中应对疾病的有效手段。由于疫苗的研究没有明显发展[4],全球大多数国家的缓解策略更多地集中在接触跟踪上。该策略将进一步有助于经济发展,并且缓解疾病传播。
过去使用的人工接触跟踪被证明是有用的[5]。但随着感染人数指数级增长,人工接触跟踪暴露了众多缺陷,不足以应对这种传播迅速,具有高度传染性和致命性的病毒[6]。但是,基于手机等智能设备实现的自动接触人跟踪(Automatic Contact Tracking,ACT)可以弥补人工接触跟踪的不足。ACT可以通过追踪接触人,检测他们的感染情况,治疗感染者以及依次追踪他们的接触人,可以显著降低人群中疾病的最终感染率。
学术界陆续提出了若干解决方案,世界各国也都尝试使用接触人跟踪系统来防范疫情。最为突出的是泛欧洲隐私保护接触跟踪项目(PEPP-PT)提出的DP-3T系统[7],苹果&谷歌合作共同开发的曝光通知(AGEN)应用程序接口以及PACT系统。
接触人跟踪系统可以分为两类:(1)中心化的接触人跟踪系统。其特点是用户需要上传个人信息到中央服务器中进行登记并获取假名。然后,中央服务器返还与假名相关联的临时标识符,并且接触风险计算也由中央服务器完成。主要有新加坡政府提出的TraceTogether系统,采用Bluetrace协议和蓝牙低功耗(Bluetooth Low Energy,BLE)技术以及对称加密[8];Recchert等人提出的基于全球定位系统(Global Positioning System,GPS)的接触人跟踪系统,利用安全多方计算(Secure Multi-Party Computation,MPC)和遗忘随机储存器(Oblivious Random Access Memory,ORAM)进行会话[9]。
(2)去中心化的接触人跟踪系统。其特点是密钥和临时标识符均由本地设备随机生成,减少中央服务器在接触跟踪过程中的参与度。用户通过服务器下载感染者上传的临时标识符列表,然后在本地设备计算风险。现在,大多数研究工作都集中在设计去中心化接触人跟踪系统上,该系统具有两种不同设计模式。第一种设计模式是上传用户广播过的数据,感染者上传其发送过的信息到授权服务器与其他用户共享。主要有DP-3T 系统[7],该系统提出了不同协议来支持风险检测和跟踪:①低成本的接触跟踪协议,效率得到提升但减弱了对用户的隐私保护;②不可链接的接触跟踪协议,通过布谷鸟过滤器(Cuckoo Filter)增加了成本但提高了用户的隐私保护;Avitabile 提出的基于公告板、盲签名和Diffie-Hellman 协议的解决方案[10]。该方案引入了区块链,利用区块链的不可篡改性。另一种设计模式则是上传用户接收到的数据,感染者将接收到的临时标识符列表上传到授权服务器,然后由其进行共享。主要有Joseph 等人提出的基于组签名和零知识证明(Zero-Knowledge Proof,ZKP)的接触人跟踪系统[11]。卫生当局为用户提供伪随机公共密钥,并且提供ZKP以证明其接触过的事实。
如今,所有的接触人跟踪系统都采用BLE 技术,不仅因为BLE 是短程交互的有效手段[12],而且GPS、蜂窝基站定位等技术在接近度检测上都有不足之处:(1)在密集的室外表现不佳,会泄露用户的敏感信息(例如住所或者工作地址)。(2)工作时提供的精度较低[13]。(3)需要有基础设施做支撑。另外,区块链技术在接触人跟踪系统中也有很大用途。一方面,由于区块链的不可篡改性,可以保证上链信息不被篡改。另一方面,用户只需保存区块链上临时身份的地址即可,有效解决蓝牙信标存储容量的限制。
图1 隔离计划
相对于SARS-CoV-1,COVID-19 的传染性更强,并且跟踪症状较轻或无症状感染的个体的难度较大,如图1所示。Ferretti等人分析了COVID-19传播的四个途径(症状性传播、症状前传播、无症状传播、环境传播),使用SARS-CoV-2的可解析模型,得出发生在个体症状发作之前2~3天的疾病传染占总传播的一半,仅仅隔离症状发作后的个体是很难控制流行病的结论[6]。接触人跟踪是一种传染病控制策略,旨在识别可能与感染者接触过的人。它不是一项新的技术,在过去也都使用过,例如2003 年的SARS 和2009 年的H1N1。由于人工接触跟踪在隔离患者和跟踪他们的接触人方面既耗时又耗费资源,并且病毒的感染窗口期长达14天,即使进行深入面谈,收集到的接触人列表也是不完整的。因此,ACT的应用是有必要的。ACT可以减轻人工接触跟踪的负担,提高跟踪精度。现如今,智能手机的普及率很高(到2020年为止,在美国手机普及率为80%)[14]。通过智能手机丰富的感应功能可以在用户未检测出感染病毒之前就对用户进行数据采集,确保在感染期内收集到完整的信息。整个过程不需要专业人员特地去采访接触人,而且不像人工接触跟踪,会因为人的记忆问题存在信息遗漏现象。但是,要使ACT成功应用,就需要群众的广泛采用。有些专家认为不应该将模拟评估ACT使用率的有效性作为硬性限制,因为应用程序在较低的采用率下并不会变得无用[15-16]。而且另一项研究也表明了即使只有20%的人口使用跟踪应用程序,ACT仍比人工接触跟踪更有效[17]。
影响采用的一个因素是公众的看法。人们普遍认为,被视为监视工具的系统并不值得信赖,并且他们不愿意在其设备上安装相应的ACT应用程序[18]。因此,有些地方已将使用本地ACT应用程序作为使用公共交通和参与公共生活的要求。对于大多数国家而言,这不是一个选择,因为此类措施引发了人们对公民自由的严重关注,并歧视了没有现代智能手机的人[19]。
在接触跟踪过程中,若用户之间交互信息没有得以保护,则容易导致用户的隐私泄露,造成大规模监视。因此专家们会采用多种密码学技术来设计接触人跟踪系统。例如非对称加密技术,该技术的安全性取决于多个密钥之间的数学关系,其中分为公钥与私钥,只有用户自身拥有私钥[20]。又如私有集相交协议(Private Set Intersection,PSI),该协议允许拥有集合的各方共同计算集合的交集,并且各方不会得到除交集以外的任何一方的信息[21]。其次,还有布谷鸟过滤器[22]。布谷鸟过滤器有两张哈希表,当新的数据插入时,它会计算该数据在两张表中存放的位置。然后通过往复替换数据在表的位置,最终所有数据都存放在哈希表中。Altuwaiyan等人利用同态加密(Homomorphic Encryption,HE)能对加密数据进行计算并得到一个输出,然后对这个输出进行解密的原理,既保护了信息又能读取数据[8]。Reichert等人利用MPC在互不信任的情况下处理创建用于多方联合计算的原理,确保了各方的数据安全[9]。如今,密码学技术在数字生活中愈发普遍,因为它几乎不需要终端用户的知识或意识。因此,加密技术的使用在提高接触人跟踪系统的安全性上起着至关重要的作用。
在过去的几年中,蓝牙被广泛应用于测量设备之间的有效距离。该技术利用蓝牙的信号强度指示(Received Signal Strength Indication,RSSI)来测量接收器和发送器的距离,从而确定位置[23-24]。Raghavan 等人证明了蓝牙2.0 可用于位置定位,并且误差小于45 cm[25]。Liu 等人建立了一个使用RSSI 读数估计的接近度模型,证明了蓝牙可以有效检测人与人之间的互动[26]。随后在蓝牙标准规范4.0中,引入了BLE技术,该技术最大限度地降低了功耗。由于BLE的节能,短距离的特性,BLE被新加坡团队所采纳并实现TraceTogether 系统。BLE 用于接近度检测和接触人跟踪的缺点之一是不同智能手机类型上的传输功率差异很大。RSSI读数必须根据各自的设备进行校准[27]。出于可用性的原因,使用这些技术的ACT可以在后台运行也很重要。
BLE 技术并不是接触人跟踪中使用的唯一技术。像GPS、WiFi、蜂窝基站定位之类的技术也应用于ACT,如表1所示。但是,这些技术都存在缺点。GPS通常会显示用户的敏感数据,例如住所和工作地址等。同时,GPS 的精度不够,不足以检测人与人之间的互动,特别是在建筑内部。COVID-19 是空气传播疾病,因此检测不到建筑内人的活动是很危险的。所以,使用GPS或蜂窝基站定位时,这种类型的误报很难缓解。WiFi虽然跟BLE 一样可以检测室内活动,但与蜂窝基站定位相似,它需要的基础设施并非任何地方都可建设,尤其在街道或偏远地区。因此它也不适用于需要在任何地方都可使用的ACT。与用户相关的磁力计读数是另一个适用于ACT 的技术,该技术在工作中消耗的能量很少。通过两个磁力计读数在相同时间段内具有相同的变化,可以说明他们记录了同一个位置。但是,该技术无法推测记录这些数据的人之间的距离,并且使用磁力计进行共址检测的研究很少。因此,此方法不足以支持ACT。
BLE 是最适合ACT 的基础技术。因此,建议大多数系统都基于这种技术来检测用户之间的距离。
表1 定位技术比较
ACT系统的实用性与移动设备连续至少12个小时保持开启此应用程序的可能性成正比。这意味着,ACT系统要尽可能地消耗很少电量。因此,让ACT 系统在后台运行是十分重要的。但是,在后台运行BLE扫描需要特殊的权限并需要对操作系统进行更改,否则会耗尽电池电量。并且,对于iOS设备,有些ACT的BLE扫描根本无法进行。谷歌和苹果是全球智能手机操作系统的两个主要提供商[28]。由于他们已经按照基于广播的设计实现了自己的后台API,并且大多数接触人跟踪应用程序都采用此API技术。因此任何其他不使用此API的应用程序都将十分消耗电池电量。
香港推行StayHomeSafe 应用程序[29-30]。抵达香港的用户需要使用智能手机下载该应用,并且佩戴一个带有QR码的电子手环。通过扫描手环上的QR码和填写联系方式来完成首次注册操作。在隔离期间,应用程序会检测和分析你的住处环境信号,并且会随时要求你通过扫描手环上的QR码来确认你是否在你的住处。如果未经许可离开住所,应用程序会记录此信息,并且政府会采取进一步措施,例如抽查或起诉。
韩国则有所不同,韩国疾病预防控制中心(KCDC)运行一个COVID-19 智能管理系统[31],通过使用来自国家警局,信贷金融协会,三个智能手机公司以及22个信用卡公司等28 个组织的数据来跟踪COVID-19 感染者[32-33]。该系统使用GPS,每10 min 分析一次感染者的活动,并且韩国手机公司要求客户提供真实姓名和政府登记号码。
以色列政府推出了一款名为HaMagen 的接触追踪应用程序,可以将用户的数据存储在设备上,随后被诊断出COVID-19 的用户必须决定是否向当局公布他们的位置数据[34]。
上述接触人跟踪系统的缺点之一是采集的数据都是基于GPS 的全景图,涉及接触人位置范围过大,容易波及周围的社区与企业。并且GPS 定位无法采集室内的数据,导致有关接触人的数据不完整,不利于防范疫情。
TraceTogether 是由新加坡团队提出的[35]。该系统不同于早先其他国家提出的接触人跟踪系统,它是最先将BLE技术应用于ACT的。TraceTogether采用了由新加坡团队设计的Bluetrace 协议,通过RSSI 的读数随时间变化在设备上产生的信息来估计用户之间的相遇时间和持续时间。
TraceTogether 可以收集用户的联系方式与身份信息,能够为卫生当局(Health Authority,HA)提供整个新加坡人口的病毒传染情况。此外,还引入自适应的无线扫描方法来解决手机能耗问题[36]。但是,该系统几乎没有为感染者提供隐私安全保障,目前大约180万用户下载了该应用程序。
系统执行过程如下:
(1)初始阶段。用户i将电话号码NUMi发送给HA 并且接收由HA 发回的临时密钥IDi,HA 将(NUMi,IDi)存储在其数据库中。然后,HA 生成密钥K,在每[tx,tx+1] 时间间隔内将TIDi,x=Enc(IDi,tx;K)推送给用户。
(2)广播阶段。用户i在[tx,tx+1] 的时间间隔内广播TIDi,x。例如,当用户i和用户j在[tx,tx+1] 时刻相遇时,他们将交换TIDi,x和TIDj,x。然后,他们分别在自己的智能手机中本地存储(TIDi,x,TIDj,x,Sigstren)数据组。其中参数Sigstren表示设备之间的蓝牙信号强度。
(3)报告阶段。假设用户i在COVID-19 测试中检测为阳性,则用户i必须与HA 共享有关于j的本地存储对(TIDi,x,TIDj,x),Sigstren以及在该时间间隔内收集的其他用户数据。
(4)跟踪阶段。HA 在收到用户i的数据后,解密TIDj,x并获得IDj,然后与用户j联系并且通知对方。如图2所示。
图2 TraceTogether接触跟踪
TraceTogether要求用户高度信任HA。由于通知接触人是否暴露于COVID-19的工作是由HA执行,HA知道用户的联系方式以及身份信息。基于这一事实,如果中央服务器是恶意的,那么用户数据就会被曝光。其次,TraceTogether中的Bluetrace协议很大程度依赖于蓝牙交换信息,这使得其容易受到重放和中继攻击,攻击者可以复制交换的信息通过在多个位置重放/中继它,使它看起来就像感染者与许多其他用户有密切接触。但是,与其他接触人跟踪系统相比,TraceTogether 的优势在于它使HA 能够在已安装该应用程序的人群中绘制COVID-19的传输图,并且它生成的临时标识符可以帮助HA识别单个用户。
基于MPC 的接触人跟踪系统是由Reichert 等人提出的[9]。该系统主要利用GPS 采集用户带有时间戳的位置数据,通过MPC 实现多个用户在互不信任的情况下进行协同计算,并且每个用户仅获得属于自己的信息。此外,还引入了ORAM 来解决MPC 中存在的索引泄露的隐患,它位于与MPC执行操作的单个服务器上,以秘密索引存储的数据进行读取和写入。
但是,该系统只是理论上的解决方案,缺乏计算感染风险的详细信息。考虑到相关用户之间存在的多种移动模式,目前尚不清楚如何在时间戳上设置阈值。另外,Tang 等人研究发现当接触人发起会话时,HA 都要准备乱码电路,如果感染人数增多,HA将面临庞大的计算任务的问题[8]。
执行过程如下:
(1)初始阶段。HA 准备用于生成乱码电路的加密密钥,以备之后使用。
(2)广播阶段。用户i在设备上存储自己的地理位置点,用[t0,t1,…] 表示时间间隔。假设在时间tx处,用户i存储位置点为(tx,lx,u,lx,v),其中,lx,u、lx,v分别表示位置的纬度和经度。
(3)报告阶段。假如用户i被检测为COVID-19 阳性,则他将与HA共享所有位置点(tx,lx,u,lx,v),HA将用户i的数据存储在ORAM中。
(4)跟踪阶段。假设用户j要检查自己是否与用户i有过密切接触。用户j向HA发送请求,HA根据用户i共享的数据点,均舍入为固定在网格中的点,构成一个乱码电路,并与用户j会话。用户j在ORAM中发起二进制搜索,查找是否与用户i有交集点,根据交集的数量计算风险。如图3所示。
图3 用户会话过程
Reichert等人在研究过程中使用ACK库中的二进制搜索测试该系统,测试过程在Intel®Core™i7-8565U CPU @ 1.80 GHz和16 GB内存的配置下完成。根据需要存储的数据量,ACK库可以在四种不同类型的ORAM中进行选择。关于测量值,默认使用CPRG(Constant Pseudo-Random Generator)作为Floram(又称ORAM 构造函数),并采用接触跟踪算法O(n×lbm×m)进行计算[37]。最终执行时间需要(26.40±6.63)s(标准偏差)。
Berke 等人提出了基于PSI 的接触人跟踪系统[38]。该系统主要是通过GPS 收集用户带有时间戳的位置数据,然后采用划分地理空间的方法将位置点映射到三维网络,并对点间隔进行单向哈希函数加密。最后,PSI计算交集。
关于PSI 的大多数工作都是基于半诚实的环境下进行的,如果系统采集的位置数据过多,并且由于将GPS点划分为点间隔,用户的应用程序需要对照服务器的点集检查点间隔,该操作过程过于繁杂。可以考虑让服务器只保存其地理区域内的数据,减少存储的数据集。PSI 协议可用于允许用户了解交集的大小,允许其了解哪些元素出现在服务器上,并且HA不会知道用户提供了哪些数据,当且仅当交集泄露后,才会暴露出用户的相遇地点。
执行过程如下:
(1)数据采集和转换。每分钟收集用户带有时间戳的GPS 点,每个点以经纬度和时间元组构成。例如(tx,lx,u,lx,v),lx,u、lx,v分别表示位置的纬度和经度。利用H3网格的六角形全球地理空间索引方法划分地理空间,然后将GPS 点映射到3 维网络形成点间隔,利用单向哈希函数对点间隔加密,储存在智能手机中。
(2)数据交换。当用户检测为感染者后,将点间隔上传到中央服务器,接触人在以PSI与中央服务器进行交互。PSI能使双方以隐私保护的方式计算其数据的交集,从而仅显示公共数据值。
Berke 等人使用了Diffie-Hellman PSI 协议算法[39]来说明该系统的运行机制。假设一个点间隔为P,收集到的点间隔序列为P=[P1,P2,…] ,用户的点间隔存储在他们的智能手机PU中。当用户被诊断为阳性后,将手机中的点间隔与服务器PI共享。然后,接触人通过PSI计算H(PU)和H(PI)的交集。
算法过程如下:
①客户端使用密钥a加密用户的哈希点间隔H(PU),并将此数据发送到服务器。
②服务器使用密钥b加密其存储的哈希点间隔H(PI),并将此数据发送到客户端。
③服务器在接收到由用户客户端发送的加密的点间隔H(PU)a时,服务器进一步用其密钥b对该数据进行加密,并将结果发送回客户端。
图4 Diffie-Hellman私有集相交协议
(3)风险评估通知。用户根据共享的点间隔来计算感染风险。如图5所示。
图5 接触人跟踪过程
Berke 等人考虑扩大系统采用率,即开发为软件开发套件(SDK),并集成到已经收集了用户位置的合作应用程序中,例如Google Maps。另外,可以采取中间步骤实现接触人跟踪,通过以PSI 设置安全服务器之前,就将已诊断用户的散列点间隔发布到平面数据文件中,以供其他用户下载。
去中心化的接触人跟踪与中心化接触人跟踪大不相同。该系统将服务器的核心功能转移到了用户设备上,从而使服务器在接触跟踪过程中参与最少。主要通过在用户设备上随机生成临时标识符,并且验证感染情况以及暴露通知是在本地设备上进行而不是服务器上,有效增强用户隐私性。
泛欧洲隐私保护近距离追踪项目(PEPP-PT)提出了DP-3T系统[8]。DP-3T系统有三种协议:(1)低成本设计的接触人跟踪协议;(2)不可链接的接触人跟踪协议;(3)混合式的接触人跟踪协议。三种协议共享同一个框架,即智能手机都会在本地生成临时标识符(EphID),并通过BLE进行广播。其他智能手机将它们的时间指示和测量结果一起存储以估计风险。以下只概述前两种协议。
低成本设计方法的主要问题是在感染前的两周内,被感染的用户的EphID可链接。该方法具有良好的隐私属性和较小的带宽要求,每次工作都需要存储32 Byte的密钥,并且该数据是静态存在的,可以通过内容分发网络(Content Delivery Network,CDN)有效地提供服务。不可链接设计协议以增加带宽为代价提供了比低成本协议更好的隐私属性,并且该协议不生成包含阳性患者的临时密钥列表,而是将临时标识符存储在布谷鸟过滤器中,然后分发给其他用户。
DP-3T系统中的参与者有:用户、后端服务器、卫生当局。执行过程如下:
(1)低成本设计的接触人跟踪协议
①初始阶段。用户i随机产生密钥SKi,x,基于哈希计算,智能手机生成SKi,x=(SKi,x-1) 来轮换当时的密钥SKi,x。运用HMAC-SHA256生成第x天用户i的EphID,如下所示:
②广播阶段。用户i以随机顺序定期通过蓝牙将当前EphIDi,x广播出去。同时,每个用户将收到的EphID和曝光测量以及接近度存储在本地设备。
③报告阶段。如果用户i进行COVID-19 核酸检测,HA将通知用户将密钥SKi,x发送给后端服务器,然后用户以当天为新的日期生成新的临时密钥,为以后做准备。
④跟踪阶段。用户i被检测为阳性患者,则后端服务器接受卫生当局授权,开始定期广播密钥SKi,x。其他用户到后端服务器下载用户i的临时密钥,用其密钥重建用户i的EphIDi,x列表进行匹配,计算风险。如图6所示。
图6 低成本设计的接触跟踪过程
(2)不可链接的接触人跟踪协议
不可链接的接触人跟踪协议是低成本设计的接触人跟踪协议的变体。在该设计中不使用系统生成的密钥列表,而是智能手机在每个时期i内随机产生一个32字节的seedi,并设置EphID为:
其中,H是加密哈希函数,LEFTMOST128 为接受哈希输出的最左边的128位。与低成本设计协议不同的是,在用户诊断为阳性后,用户可以编辑与敏感位置、时间或时间段相对应的EphID来避免掉一些自身隐私信息。
后端服务器会每隔两小时创建一个新的布谷鸟过滤器,将感染者上传的每对(seedi,i)计算EphIDi,然后插入到布谷鸟过滤器中。为了安全起见,需要外部哈希函数。后端服务器发布布谷鸟过滤器给用户。所有智能手机都会下载它进行风险估计。
在不可链接的接触人跟踪系统中,将时期i包含在哈希函数中,以确保在最初广播的时间之外不会重播EphID,不会导致假冒事件(无论EphID是否对应于后来报告阳性诊断的用户)。布谷鸟过滤器的误报率很低,但不是非零。为了避免不必要的警告用户,通过修改布谷鸟过滤器的参数,使系统在几年内只产生一个误报。
Vaudenay 针对DP-3T 解决方案提供了详细的安全性和隐私分析[40]。他认为分散化会引入针对隐私的新攻击媒介。例如,低成本设计协议易受到Paparazzi 攻击,即使用受信任的服务器跟踪感染者。对手可以链接COVID-19 阳性病例报告的EphID,了解哪些蓝牙标识符属于同一设备。再者,DP-3T的白皮书中缺少许多实际细节。例如,目前尚不清楚如何实例化后端服务器;尚不清楚不同国家的卫生当局和后端服务器如何有效地相互协调,以迅速做出响应等问题。
Brack 等人提出了使用分布式哈希表(Distributed Hash Table,DHT)的接触人跟踪系统,该系统适用于其他的接触人跟踪系统(如DP-3T等),是他们的拓展而不是替代[41-42]。该系统主要采用DHT 为用户构建一个去中心化的“邮箱”系统,每个参与者充当DHT 中的一个节点,都能够存储和检索数据,并且可以实现用户之间的加密和签名消息的传递。此外,感染者可以通过请求HA 进行盲签名来证明他们的感染状态,并且不必透露他们的敏感数据[43]。未来能否使用这一方法,还需要做进一步的评估,才可以充分实施。该系统引入了去中心化思想,中央服务器在其过程中不参与,只有疾病检测是由中央政府进行。利用DHT解决了感染数据分发问题,用户之间直接相互通信,比Dingledine 等人的匿名代理访问中心数据库更具有伸缩性[44]。再者,使用盲签名既验证用户ID感染状态,又保证HA不能了解到用户隐私信息。
执行过程如下:
(1)初始阶段。系统为用户生成非对称密钥对,将私钥sku存储在设备中,然后将公钥pku作为临时密钥向附近的人进行广播。同时,手机收集其他用户发布的临时密钥。
(2)发布阶段。当用户诊断患有COVID-19 时,为了不对HA泄露个人历史数据,感染者将临时密钥与一个唯一的随机数ce相乘,从而盲化他在过去时期使用过的每个密钥。假设Bob 是Alice 的接触人之一,Alice 发送他盲化过的b(IDAlice)给HA,HA 用公钥进行签名,返还σ(b(IDAlice))给Alice。Alice 对签名进行去除盲化,得到有效的签名σ(IDAlice)。由于每个临时密钥都是公钥,则Alice 用Bob 的公钥对自己的IDAlice进行加密,形成了加密的IDAlice(EBI)。然后Alice将加密的IDAlice(EBI)和签名σ(IDAlice)存储在与Bob相对应的DHT地址上。
(3)轮询阶段。Bob 使用IDBob在DHT 里检索,返回Alice存储的信息。由于EBI加密原理,Bob可以使用相应私钥解密Alice 的消息,得到IDAlice和签名。这个签名表明Alice的检测结果。如图7和图8所示。
图7 发布和轮询机制的示例
图8 盲签名过程
使用DHT 虽然可以完全删除中央服务器,但它也会产生之前没有的新的攻击,例如Sybil 攻击或者试图获取特定邮箱控制权的恶意方。在CAUDHT 中,记录的相遇过程中使用的临时密钥是发送出去的消息中的一部分,这意味着感染者可能能够使用自己的相遇时间来识别出感染他的用户。另外,应进一步关注DHT 创建的数据流量,在按计量的移动连接完成时,许多用户将与DHT进行交互。为了确保哈希表不会溢出过时的数据,一旦不再有用的条目就需要删除。这可以通过在每个数据上添加一个时间戳来指定何时可以安全地删除它,但是时间戳超过两周的DHT值将不再使用。
Joseph等人提出了基于ZKP的接触人跟踪系统[11]。系统主要采用ZKP协议(即允许一方在不露任何其他消息的情况下,使另一方相信某事是真实的)来确保经过身份验证记录他们的密切接触人,防止任何人发送伪造信息。感染者可以在不必透露敏感信息的情况下,通过请求HA进行组签名来证明他们的感染状态。Joseph等人给出了正式的安全模型,为系统提供安全证明。在可扩展性方面,已将该系统实施到Android智能手机中,评估结果表明了该实用性[45]。
(1)注册阶段。政府选择非对称密钥对(SKG,PKG)←KeyGen(λ) 并且发布公共参数(λ,H,PKG,u,u1,u2,g,g1,g2)[46]。每个用户(假设Alice)在其应用程序中生成密钥对{SKA,PKA} ,并将公钥PKA和个人信息上传至政府(GV)进行注册,以便将密钥与用户身份关联起来。政府为Alice随机生成IDA以及σA=(SKG,{“-VE”,PKA,IDA,DATE}),然后返还给Alice。Alice运行Verify(PKG,σA,{“-VE”,PKA,IDA,DATE})检查签名是否有效。如果有效,Alice将IDA和σA存储在智能手机中,每天重复此过程。医生拥有医院给予的用户密钥(GSK,GPK),用于生成组签名。
(2)会话阶段。用户(假设Alice)在一定时间间隔向其他用户广播hA=H(“-VE”,IDA,PKA,σA)。对于已确诊的用户,将使用“+VE”包来表示已被医生确认为肯定患者,其他用户接收到验证签名后立即向政府报告。在特定时间段内,Alice 收到相同的哈希广播的数量达到阈值数,则通过验证协议确认其他用户(假设Bob)是否为亲密接触人。
(3)检测阶段。若Alice 检测出患病后,Alice 告诉医生在可能传播期间内她的亲密接触人。为了提供隐私,爱丽丝不会直接给医生她的亲密联系人的标识符或公钥。取而代之的是,她将为每个亲密接触人生成伪公共密钥,然后和零知识证明一起发送给医生,以证明他/她与其他用户的密切关系。医生用组签名签署信息,并把伪公钥发到公告板上。
(4)跟踪阶段。在每天结束时(例如23:59),每个未感染(或未测试为阳性)的用户都执行以下步骤:假设Bob 在公告板上检索新信息,对于每个信息都运行Verify(σD,GPK,{h,B,DATE})验证签名。如果有效,则用户已在DATE与确诊的患者密切接触过,如图9所示。
图9 接触人跟踪过程
该系统已经在Android 8.0 和Android 10.0 上进行了测试。为了描述方案中所需的延迟,在应用程序中测量了三个阶段(会议、医疗和跟踪阶段)。Joseph等人执行包括广播数据,接收和处理数据包的过程100 次,并计算每个阶段的延迟。它们的平均延迟和标准偏差分别为94 ms(49),4 829 ms(19)和124 ms(4)。此外,他们还评估医生验证所需的时间,观察到平均经过时间为(515±224)ms(标准偏差)。
为了提高系统的性能,Joseph等人建议可以将协议参数化到市级或州级,通过调整组签名使得整个城市形成一个组(而不只是医院),用户只需检查那些由医生签名的群组城市即可。这样可以大大减少新感染者的数量。在实际问题上,该系统认为要在接触跟踪之后形成群集,以便查看密切接触人与感染者的更多情况。另外,还考虑将公告板托管给具有访问控制权力的COVID-19网站。只有授权的医生可以在此网站上发布信息,并且医生的信息将被隐藏。
为了更好地理解接触人跟踪系统的设计思想,通过分析各个系统的接触跟踪过程,总结出一个通用框架。如图10所示。
接触人跟踪应用程序主要有四个模块:设备搜寻模块、服务器模块、密码管理模块以及实用程序模块。首次安装应用程序时,通过一系列操作(密钥生成、下载公钥参数等)初始化密码管理模块,然后应用程序启动后台服务,并与其他模块进行交互。
(1)密码管理模块。封装了大多数加密算法操作,例如用于生成密钥SK 的伪随机数函数,用于生成假名gSK的椭圆曲线算法,卫生机构的盲签名以及进行接触风险计算的Diffile-Hellman 协议等。该模块每天生成密钥和对应假名(SK,gSK)分配给用户,用户在将假名上传到后端服务器中并用于广播。
(2)设备搜寻模块。该模块是一项后台服务,用于监听与用户物理接近的其他用户的广播出来的假名数据包,并且可以自动过滤掉多余的不必要数据。例如在同一时间内多次发送的数据包以及已经曝光过后的数据。每隔一段时间,密码管理模块会生成新的假名发送给用户来进行替换之前的假名,避免被恶意链接。用户通过蓝牙信标广播假名并接收其他用户的假名。
(3)服务器模块。在该模块中,后端服务器用于数据存储作用,存储每个用户上传的假名和盲签名,还提供接触人验证信息的渠道。感染者获取医疗机构的认证码并对其进行盲签名,然后将盲签名以及假名等上传到服务器供接触人计算风险,盲签名可以确保上传的信息的准确性。
(4)实用程序模块。该模块处理常规作业,例如用户界面操作,网络IO 以及支持该程序的其他模块。例如感染者与医疗机构的交互,获取认证码以及用户上传信息到服务器。
图10 系统通用框架
表2 系统整体比较
为了更好地了解中心化系统与去中心化系统,下面将从临时标识符的产生、上传临时标识符、临时标识符的曝光时间、风险计算、安全性、隐私风险、公开社交图以及数据存储等方面进行比较[47-48]。具体如表2,表3所示。
从中心化系统与去中心化系统的对比可以看出,两者各有各的特点。中心化系统的临时标识符由中央服务器生成,HA可以知道所有用户的信息。例如,可以快速知道感染者是谁,与哪个人接触过,在哪接触。但是,该系统在安全方面存在误报、中继和重播攻击。而去中心化系统注重保护用户隐私,临时标识符由本地设备随机生成,减少了服务器在接触跟踪过程中的参与度。从实用角度来看,去中心化系统与中心化系统并不是非此即彼的关系,两者可以互相协作。通过让政府发起中心化数据管理系统,如我国的健康码统一服务平台,既能发挥数据完整、准确的优势,也能够为决策提供实时数据支撑。其次,让企业以去中心化方式研发接触人跟踪系统,以用户自愿参与为原则,共同发挥数据对于疫情防控的价值。
ACT 系统涉及大量的参与者,除了用户之外,还有医疗机构,应用程序开发人员等参与其中,并且对系统的安全性产生影响。安全性是确保系统完整性和可用性的同时,限制对手在系统中引入错误信息的能力。其进行攻击的动机各不相同,范围也是不尽相同。
本文将从卫生当局、感染者以及用户(未感染COVID-19)三方面对文章中列举的各个系统进行分析,该分析不同于4.3 节中安全性比较,并不说明系统遭受哪些攻击,而是说明在这三方面下存在的安全威胁,如表4所示。
对文中提到的接触人跟踪系统从技术手段、用户隐私风险、安全性以及系统中存在的不足等方面进行了比较,直观地了解各个系统之间的特点。如表5所示。
基于MPC和PSI的接触人跟踪系统都依赖于GPS,不仅计算精度较差,而且计算过于繁琐,缺乏实际操作情况;TraceTogether 系统在新加坡的使用率较好,但TraceTogether 是中心化系统,高度依赖政府,可能存在用户对隐私的考虑;DP-3T系统设计了多种接触人跟踪协议,考虑适用于多个场景,但系统还需要解决Orwell攻击、Matrix 攻击等攻击方式;基于DHT 的接触人跟踪系统充分利用了分布式哈希表和盲签名,可以避免隐私泄露和安全攻击,但是缺乏操作经验,可能存在其他系统问题;而基于零知识证明的接触人跟踪系统是这些系统中表现较好的,即有组签名和ZKP的技术支撑,而且运行测试结果理想。随着研究的逐步深入,会有更多接触人跟踪系统接踵而来。例如从ROBERT 演变而来的DESIRE系统,该系统是混合式接触人跟踪系统,它结合了中心化和去中心化系统中的精华[49]。在该系统中,加密生成的私人令牌(Private Encounter Token,PET)的使用为用户提供了更多的控制权,避免了收集接触人数据进行社交图分析。其次,服务器上存储的所有数据均使用存储在本地设备上的密钥进行加密,如果服务器发生数据泄露,也不会影响到本地设备的数据。最后,风险分析和通知由服务器处理,这限制了其他用户发起枚举和链接攻击的可能性。
表4 系统安全性分析
接触人跟踪系统在许多国家和地区得到广泛应用。通常情况下,该系统的下载量是作为用户可接受性的指标。例如,在澳大利亚首次发布Covid-Safe的两周内,就有超过500 万用户下载了该系统。同样,印度的Aarogya Setu的下载量突破了1.14亿。除此之外,还需要如会话时间长度、应用程序的加载时间等指标来衡量接触人跟踪系统的影响和有效性。本文介绍了各个系统的特点,对中心化系统和去中心化系统进行了对比。下面将从用户的角度提出一些相关问题。概括起来有以下几个方面:
(1)电池消耗问题。电池消耗过快是系统经常出现的问题。电池的消耗受许多因素的影响,例如系统处理器的利用率,交换的消息数等。大多数接触跟踪系统都依赖BLE 通信协议来与对方交换信息,因为BLE 协议可以使系统定期与对方交换少量数据,可以降低电池消耗。但是,有些系统使用的是蜂窝基站三角网定位[50]或GPS来与服务器进行通信。
另一方面,系统与服务器的通信依赖于传统的安全应用协议,例如HTTP。这些协议对电池利用率的影响与服务器交换信息的数量有关。去中心化系统的上载率低于中心化系统的上载率。但是,中心化系统在设备上的处理性能更好。
(2)自动接触人跟踪与人工接触跟踪的协调。接触人跟踪可以使用技术手段来完成大部分的自动化数据处理,匿名掉不必要的用户信息,但是系统的最终安全性还是离不开机构和人工的协作。早期将蓝牙技术用于接触人追踪的新加坡技术专家也认同自动接触人跟踪不可能完全取代人工接触跟踪。通过人工接触跟踪,专业人员可以根据专业知识和用户分析现状情况,可以帮助用户消除不必要的焦虑并提供其他有用的建议。
(3)接触人跟踪的透明度问题。系统透明度是用户广泛采用的关键。公众真正关心的是信息的收集过程以及各方对系统的使用。发布系统源码可以提高系统的透明度和信任度,因为研究专家和学术界可以仔细检查实现的隐私和安全功能。但是这会给系统带来更多的风险。必须知道的是使用任何系统都需要对其有一定程度的信任。这包括信任开发人员,独立的测试和验证团队,服务运营商以及所有者[51-52]。
(4)接触人跟踪的未来发展。经过COVID-19大流行后,各国都出现大规模使用接触人跟踪系统的趋势。如果这些系统在大流行开始之前就已经充分准备,经过多次测试,就能更好地为疾病大流行做准备。全球已经开展大量的研究活动,以开发下一代接触跟踪系统,以便在世界面临类似甚至更危险的疾病大流行时可以立即进行部署[53]。未来需要更多地提高接近精度,只有精确地获取信息才能做到精准预防。另外,COVID-19 危机暴露的隐藏信息之一是必须解决隐私问题,以使公众更广泛地接受它。上述的所有接触人跟踪系统都不能被视为完全去中心化结构,它们都以不同的程度使用了中央服务器。未来应当研究使用某种形式的对等网络以促进用户设备之间的隐私保护信息共享的去中心化系统。
表5 接触人跟踪系统比较