1. 引言
新型冠状病毒(COVID-19)和猴痘疫情(mpox)等[1] [2]紧急公共医疗卫生事件所引发的全球持续性疫情,给全球经济、健康和人类生活带来了严重的影响。以新冠疫情为例,在全球防疫大背景下,为有效抑制病毒的传播以及对病毒传播的溯源,多类公共场所成为了各国防疫工作重点化、常态化管控的对象。各个国家/地区为此推出了相关的基于防疫凭证的认证技术[3] [4] [5] [6] [7],但是目前存在的技术方案都存在着用户隐私泄漏[8]或者用户身份无法核验的问题。
因此,在公共场所下以用户防疫认证数据出示及防疫监管者验证为核心的应用场景中,存在以下安全及隐私挑战亟待解决:
1) 在用户侧,恶意用户可以通过篡改、伪造等行为欺骗验证者从而进入公共场所,这无疑会造成严重的防疫隐患。因此,如何在保障用户认证信息隐私的前提下,避免恶意用户的伪造、冒充等恶意行为是本文解决的问题之一;
2) 在防疫监管验证侧,恶意的监管人员会收集用户进入公共场所的相关信息,造成用户信息泄漏。因此,如何在保障防疫认证信息有效性可验证的基础上,对用户实现匿名性保护是本文解决的问题之二;
3) 在凭证颁发方侧,由于存在多个防疫凭证发行方,用户根据不同访问策略需要出示不同凭证。因此,在保证多源防疫凭证可聚合的基础上,出示相应的聚合后的防疫凭证,是本文需要解决的问题之三。
为应对上述挑战,在满足用户出入公共场所防疫展码可认证性基础上,且保证用户隐私安全以及确诊用户可追溯的核心需求下,本文利用“区块链 + 匿名认证 + 生物特征验证”相结合的技术提出了面向紧急医疗事件的高效匿名认证方案。本文从功能性、安全性、性能三个维度出发,文章贡献如下:
1) 在功能性方面,围绕公共场所防疫展码特点及功能需求,设计了方案的总体框架并给出了方案中各个实体及运行功能的形式化定义。
2) 在安全性方面,围绕公共场所防疫展码应用场景下的特点以及上述挑战,给出了方案的安全及隐私需求,包括匿名性、不可伪造性等。
3) 在性能方面,为确保方案在实际防疫展码场景下的可用性,利用具有线性同态的密码学算法实现了基于场所访问策略的多源防疫属性凭证可聚合。
简而言之,本文所提出的匿名认证方案不但可以有效解决现有的紧急医疗卫生事件的公共场所匿名认证方案所存在的问题,而且结合区块链技术和生物认证可以实现有效溯源并保证用户身份的真实性,为防疫精准流调提供了数据支撑。
2. 相关工作
针对公共场所防疫所暴露出来的用户隐私安全问题,国内外政府、企业及研究机构提出了相关的解决方案。主要可以分为两类:第一类是以用户为中心的公共场所密接追踪方法,但该方法的前置条件太过理想不利于实际部署,因此本文后续不在讨论此类方案;第二类则是以公共场所为中心的防疫凭证匿名认证方法。
防疫凭证匿名认证方法相较于第一类密接追踪方法,匿名认证方法疫情防控效果更加精准有效,因此成为了世界各国选择的主要防疫方法。但文章开篇所提及的防疫凭证方案均存在不同程度安全性和隐私性挑战。因此,围绕这些挑战,各国专家学者给出了相应的解决方案。
Abid A等人[9]提出数字健康证书解决方案能够实现对用户流调同时增强用户的隐私性,但文章为保证防疫凭证不可转移性,用户需要出示物理证件从而破坏了匿名性;Dima S M等人[10]提出了一个结合区块链等技术的防疫证书签发和验证平台,然而该方案只采用了简单的数据脱敏方式保证用户隐私,这无法有效抵御数据推理和蛮力攻击。同样为了解决目前现存方案存在的安全隐私问题,Yao等人[11]提出了一种基于区块链的多维可追溯隐私保护的健康码方案,然而该方案也不支持匿名状态下用户出示信息的可认证性,即无法确保用户给予验证者信息的真实性,类似的方案还有[12] [13]。
虽然上述方案对防疫展码场景下用户的隐私问题进行了阐述和解决,但围绕本文开篇提出的四个关键问题,现有的方案仍存在着一些共性不足。一是没有实现对多源防疫凭证的聚合出示;二是不支持非法用户系统访问权限的撤销,这无法阻止非法用户继续申请新的防疫凭证;三是现有方案都没有实现对用户真实身份的匿名认证(保证用户信息匿名且凭证与用户身份匿名绑定),即未同时实现匿名和认证。
3. 方案的定义以及安全需求
围绕目前现有方案仍面临的不同挑战,本节首先设计了面向紧急医疗卫生事件的高效匿名认证方案的整体架构,并对架构中涉及的实体类型以及相关算法、协议进行了定义;其次,基于方案的整体架构给出了方案应具备的安全性及功能性需求。
3.1. 方案的定义
所提出方案的模型如图1所示。模型主要包含了五类实体,即注册中心、防疫凭证发行方、用户、公共场所防疫监管者和智能合约。注册中心颁发、更新和撤销令牌,并进行密接者溯源;防疫凭证发行方签发凭证;用户与注册中心和发行方交互获取令牌和凭证,并生成匿名认证信息展示给验证方;防疫监管者验证凭证有效性并上传信息给智能合约;智能合约验证事务并上传认证信息至区块链。方案包括六个阶段:初始化、注册、签发、认证阶段,详见表1。在表1中对方案中涉及的主要变量符号进行了说明。
1) 初始化阶段
:输入为安全参数
,输出全局公开参数pp。
:注册中心执行,输出签发令牌密钥对
和密钥对
。
:颁发方
运行,生成密钥对
。
:用户
执行,输入用户的生物特征
,用户可以通过生物特征派生算法中的FE.PkGen与FE.SkGen计算出密钥对
。
:算法由防疫监管者
执行,生成用于事务认证的签名密钥对
。
Figure 1. System model diagram
图1. 系统模型图
2) 注册阶段
在注册阶段,用户与注册中心交互获取到身份令牌并验证。算法定义如下:
:由用户执行,生成身份令牌获取证明
。
:由注册中心执行,验证令牌获取证明
,若验证通过则为用户
分配一条完全二叉树上的路径
以及相应的令牌
,其中
。RA将
存储至本地数据库
包含在用户获取证明
中。
:由用户执行,输入注册中心验证公钥
,用户公钥
以及用户令牌
和路径
进行验证,若验证通过输出1,否则输出0。
3) 签发阶段
在防疫凭证签发阶段,由于防疫凭证生成的非实时性,例如核酸、疫苗报告等,用户无法实时获取到新的防疫凭证。因此在该阶段颁发方将生成的防疫凭证利用用户注册时的公钥
进行加密生成密文,并存储在本地凭证数据库
。当用户
请求时,颁发方查询相应的密文结果并返回给用户。算法定义如下:
:输入用户公钥
以及身份标识
和发行方私钥
,
生成基于用户公钥加密的属性凭证
,并存储
到本地凭证数据库
,
为公钥加密算法,例如ElGamal公钥加密算法。
:输入用户私钥
以及身份标识
,加密的属性凭证
和验证公钥
,用户解密出
并验证
的有效性,如果有效输出
,否则输出
。
4) 认证阶段
在认证阶段,根据访问属性策略集,其中
表示所需属性的个数,用户利用令牌及符合的防疫凭证生成匿名认证信息并出示。防疫监管方对出示的认证信息进行验证,验证通过则表明该用户是未撤销用户且满足访问属性策略集。算法定义如下:
:输入用户通过生物特征恢复
,验证公钥
,追踪公钥
和满足的防疫凭证集合
以及公共场所访问属性策略集,其中
表示防疫发行方的数量,算法输出匿名认证信息
和盲化后的聚合凭证
。
:算法由公共场所防疫监管者
运行,用于验证用户所出示的认证信息是否有效。算法输入RA的验证公钥
,用户的匿名认证信息
,盲化后的聚合凭证
以及访问属性策略集。若无效则输出
。否则,
生成签名值
,其中
包含认证场所信息以及时间戳等信息,并将验证事务
通过智能合约(SC)验证上传至区块链,Σ为签名算法,例如EdDSA签名算法。
:智能合约使用验证算法
对上传的事务进行验证,若验证通过则将数据上传至区块链中,并输出1。否则,表示验证失败输出0。
3.2. 方案的安全性以及功能性需求
本方案需要满足以下的安全性以及功能性需求:
匿名性:匿名性是指在凭证认证过程中,除了访问策略的属性值及认证结果外,攻击者无法从匿名认证信息中获取关于用户的任何有效个人信息。
不可伪造性:不可伪造性包含两方面,一是攻击者不能够伪造其它合法用户的匿名认证信息;二是攻击者无法伪造注册中心颁发的有效撤销令牌以及凭证发行方颁发的防疫凭证。
可撤销性:可撤销性是指注册中心能够对非法用户(例如隔离人员等)的身份令牌进行撤销,使其无法生成有效的匿名认证信息,从而保障方案的后向安全性。
不可转移性:不可转移性是指攻击者在认证阶段不能通过伪造用户私钥或派生出用户私钥进行匿名认证信息出示。
不可冒充性:不可冒充性是指攻击者在凭证认证阶段不能够冒充合法用户的身份出示匿名认证信息。
不可篡改性:不可篡改性是指单一的攻击者不能篡改用户进入公共场所的匿名认证信息以及相关公共场所信息。
选择性属性暴露:选择性属性暴露是指用户可以根据公共场所访问策略进行选择性的属性凭证聚合,而不需要出示所有用户的属性凭证。
4. 性能分析
在本节中,首先对部分算法性能进行了理论分析,如表1所示。在表1中,
分别表示在群
上完成一次幂运算的时间;
表示完成一次配对运算所消耗的时间,
表示运行一次FE.SkGen算法所消耗的时间,
指的是防疫凭证发行方的数量,
是防疫凭证发行方
为用户签发凭证中包含的属性数量,
撤销后系统中根节点的数量,l是完全二叉树的深度,K表示公共场所数量与公共场所接受认证信息数量乘积(即
)。此外,在本文的性能分析中,仅考虑幂运算、FE.SkGen算法和配对运算等计算代价较大的运算耗时。
表1给出了本方案中的实体在不同阶段运行各算法时的理论计算代价。为进一步测试本方案各个实体所涉及的算法在不同主流椭圆曲线,包含不同安全级别下的BLS12_381 [14]和BN462 [15]以及BN254 [16]的实际性能(基准测试如表2所示),本节利用密码学库MCL和区块链工具HyperledgerFabric框架[17]对本文所提出的匿名认证方案中较为频繁运行的Show、
、Update等算法进行了仿真实验,各个实验具体的相关测试平台配置信息如表3所示。
Table 1. Theoretical calculation cost table
表1. 理论计算代价表
实体 |
注册中心 |
颁发方 |
验证方 |
用户 |
初始化阶段 |
|
|
- |
- |
注册阶段 |
|
|
- |
|
签发阶段 |
- |
|
- |
|
认证阶段 |
- |
- |
|
|
在认证阶段,验证方对接收的认证信息进行签名并调用智能合约上链。由于公有链,例如比特币、以太坊等,对事务处理速率较低,因此本方案采用了Hyperledger Fabric联盟链框架并编写智能合约(链码)进行了性能验证,通过实验表明批量验证100条签名事务平均耗时0.031 s (吞吐量为962 TPS),能够实现高效的批量签名事务验证,满足实际需求。
Table 2. Different elliptic curve benchmarks
表2. 不同椭圆曲线基准测试
|
BN462 |
BLS12_381 |
BN254 |
Android |
PC |
Android |
PC |
Android |
PC |
|
5.27 ms |
0.82 ms |
1.21 ms |
0.19 ms |
0.47 ms |
0.074 ms |
|
12.01 ms |
1.64 ms |
3.35 ms |
0.456 ms |
1.29 ms |
0.177 ms |
|
0.07 ms |
0.005 ms |
0.045 ms |
0.0032 ms |
0.025 ms |
0.0017 ms |
|
34.01 ms |
2.5 ms |
11.09 ms |
0.814 ms |
4.71 ms |
0.346 ms |
在通信代价方面,用户在认证阶段出示的认证信息中需要4个
群元素和7个
群元素以及信息字符串,即通信代价的理论值为
。通过基准实验能够得出在BN254曲线上
群和
群的元素长度分别是192字节和64字节。以用户出示包含5个属性的匿名凭证为例,在用户出示过程中需要耗费大约371 ms,用户在BN254曲线下出示一个匿名凭证需要发送1216字节
字节长度的信息,而常规的移动端可展示二维码信息容量最大为4 KB,因此匿名凭证的内容能够以二维码的形式进行展示。
Table 3. The configuration of test platform
表3. 测试平台配置
实体名称 |
平台信息 |
测试算法 |
User |
CPU:Snapdragon 870 MEM:12.0GB OS:Android 12 |
Show |
Verifier |
|
RA |
CPU: Intel(R) Core(TM) i7-7700HQ 2.80 GHz×8 RAM:16.0GB OS:Windows11 perfessional |
RReg |
SC (Fabric 链码) |
区块链配置信息 |
Number of Channels: 1 Database: CouchDB Number of Nodes: 3 Consensus Mechanism: Kafka |
SVerify |
平台配置信息 |
CPU: Intel(R) Xeon(R) Platinum 8369HB 3.30GHz×6 RAM:16.0GB OS: Debian GNU/Linux 11 |
根据对上述实验过程中的理论计算代价和通信代价的分析可得,本文提出的匿名认证方案可以作为紧急医疗卫生事件场景下实际有效的隐私保护认证解决方案。