【隐语 Serectflow】基于隐私保护的分布式数字身份认证技术研究及实践探索
本文旨在探索分布式数字身份认证技术体系的建设,为用户个人信息的保护和存储提供数字化技术基础。
随着互联网技术的快速发展,个人信息在网络空间的传播速度及范围不断加快和扩大。与此同时,个人信息泄露事件日益增多,用户隐私保护意识也不断提升。
《中华人民共和国个人信息保护法》(简称《个人信息保护法》)明确了个人信息的收集、使用、存储、传输、公开、处理、删除等各个环节的具体要求。
在数字化时代,如何建设一套认证机制既能保护用户隐私又能保证数据在跨机构流通间的安全性是目前面临的一个严峻挑战。构建以用户为中心的分布式数字身份认证技术体系能够有效解决以上问题。
分布式数字身份认证技术概述
技术框架
基于隐私保护的分布式数字身份认证技术架构自下而上分为基础设施层、服务层和应用层(见图 1)。
基础设施层基于区块链技术,主要实现用户私钥托管、凭证托管与溯源等功能。
基于分布式公钥基础设施(Distributed Public Key Infrastructure,DPKI)构建的基础设施层为处于云端的区块链可信网络,主要提供通用的软件即服务(Software as a Service,SaaS)能力,如身份服务与区块链的交互、用户私钥托管、凭证托管与溯源等。
基础设施层使用零知识证明等技术来保护用户的隐私,用户可以选择性地最小化披露自己的信息,同时使用共识算法和分布式节点来提高应用系统的可信度,使其更加抗攻击和安全,进而保障用户个人信息安全。
服务层由边缘云侧和终端侧两部分组成,其中边缘云侧主要负责机构的管理,凭证模板管理,凭证签发、验证,身份验证以及身份管理和联盟管理等,解决凭证颁发机构可信入驻以及身份服务商的可信接入问题,对用户身份进行溯源和互认等操作,实现统一管控与规范化发展。
终端侧实现生态场景的管控,包括分布式身份(Distributed Identity,DID)管理、可验证声明管理;
同时,终端侧还对场景使用的凭证进行约束,包括凭证颁发、凭证验证等,终端侧整合了这两部分功能为用户提供完整的分布式认证能力和服务。
服务层基于分布式身份底层基础设施,把数字身份业务为主的服务资源以分布式的方式对生态成员开放,为数字身份基础服务提供支撑。应用层则是通过终端安全环境,通过可信桥接颁发方、用户和验证方 3 个核心主体,安全应用于整个隐私保护的分布式认证基本体系。
该技术体系不仅能够保护隐私,还能够有效落实《个人信息保护法》中收集个人信息的最小化原则。
技术流程
概述
如图 2 所示,分布式数字身份认证的数据处理流程主要包含 4 类主体和两类关键数据。其中,4 类主体包括凭证颁发方,即为用户或机构的 DID 颁发可验证凭证的机构;
业务服务提供方(Service Provider,SP),即依托于分布式认证能力为用户提供各类业务服务的机构;
DID 持有方,即拥有 DID 私有使用权的机构或个人;身份服务提供方(Identity Provider,IDP),即为分布式认证体系内各个机构和用户提供安全可信的 DID 注册服务的机构。
两类关键数据是可验证凭证(Verifiable Credentials,VC),即由凭证颁发方为 DID 签发的可用于验证的凭证数据;
可验证表达(Verifiable Presentations,VP),即拥有可验证凭证的用户向验证方表明自己身份的数据。
数据处理流程
用户或者机构首先需要向 IDP 注册用户或机构的 DID,在注册身份时,由用户或机构在其自主可控的可信终端(例如移动终端、服务端加密机等)上生成用户的身份密钥对,私钥安全存储在端侧,公钥提交给身份服务提供方上链存证。
在 DID 用户向凭证颁发方主动申请,并选择性披露自己的数字身份属性后,凭证颁发方会为用户签发 VC。
凭证颁发机构面向特定 DID 用户签发 VC 凭证时,组装完凭证信息后,使用机构 DID 私钥对 VC 内容数据进行签名,确保 VC 数据来源可信。用户向业务服务方提供 VC 内容时,需要在终端侧组装完 VP 后,使用用户 DID 私钥对 VP 内容进行签名,确保 VP 数据经由用户授权;
在分布式数字身份认证端、云、链等各节点间进行数据通信时,会基于各节点 DID 密钥构建安全可信的通信信道,确保数据传输过程中 DID 信息、业务敏感数据等不被泄露。
主要技术
基于隐私保护的分布式数字身份认证主要采用密码学算法、区块链技术和新型身份认证技术。
该认证方案对 DID 协议和其 VC 协议进行了扩展,抽象出分级凭证技术,将用户身份凭证和用户属性凭证进行区分,并且在不同类型凭证的基础上进行分级,分为用户身份、业务身份、身份属性、业务属性、操作类结果等凭证。
通过凭证分级全面刻画用户的数字身份,来解决业务活动中面临的凭证撤销以及用户数字资产使用无法追溯等问题。
密码学技术
基于隐私保护的分布式数字身份认证体系中各类基础能力建立在密码学基础之上,例如 DID 创建和认证过程中创建公/私密钥对并对数据进行校验的过程、VC/VP 的签发和核验中使用凭证颁发机构的公钥验证机构身份的过程、节点间数据传输时使用密钥对数据摘要进行签名等。
使用密码学算法加密数据和校验身份,能够保证认证信息可验证、数据的完整性和机密性,避免用户信息被轻易盗用或滥用,大大降低了身份数据造假风险。
本文基于隐语 YACL 库\[1\]中的零知识证明算法提供的一种隐私增强 DID 和 VC 设计,可以进一步增强用户隐私的安全性。
区块链技术
基于隐私保护的分布式数字身份认证体系使用区块链技术存储用户身份信息,区块链技术是用户信息可验证、可溯源、可跨平台使用的基础。
分布式核验是指由分布式认证体系内的任一机构独立完成,不依赖任何中心化节点的身份核验方式,在整个分布式认证链路中占有关键作用。
分布式核验在不依赖任何中心化节点的情况下,将密码、人脸或者指纹等核验方式与 DPKI、零知识证明等技术结合,将核验关键要素、核验方法等信息上链公开,保证任何需要验证用户 DID 的机构均可自主获取链上身份信息,并进一步通过核验私钥签名、校验零知识证明值等方式完成身份的核验。
基于生物识别的身份认证技术
基于隐私保护的分布式数字身份认证体系中,引入了生物模板映射技术和身份零知识证明技术完成 DID 的安全认证。
生物模板映射技术是一种对生物特征进行脱敏和单向不可逆映射的技术,可以在保护生物特征的同时,保持用户特征的身份辨别度。
生物模板映射技术可以和密码学中的承诺方案以及零知识证明技术相结合,隐匿用户的生物特征,让验证方完成对用户身份核验的同时,无法知道具体的隐私数据,建立用户到 DID 的可信连接,保护用户的生物特征。
分布式数字身份隐私保护机制
终端安全机制
在分布式数字身份认证体系中,终端安全基础层、终端核心协议层和终端应用服务层共同为用户提供分布式身份及凭证信息管理等服务。
除了分布式数字身份管理外,终端还为分布式数字身份凭证和身份校验业务提供基于软硬一体的处理环境和相应的安全机制,确保用户身份的安全性。
安全核心 SDK
安全核心软件开发工具包(Software Development Kit,SDK)封装终端底层的安全能力,以接口形式为上层的分布式数字身份应用提供数据安全存储、可信计算、密钥管理、设备认证、隐私计算等安全功能。
设备级安全环境
基于终端可信执行环境(Trusted Execute Environment,TEE)技术,为分布式数字身份提供设备级的安全环境,安全级别可达到 EAL2+。
首先,TEE 为分布式数字身份应用提供安全运行环境和安全通信信道,保障其数据和代码不会被终端其他应用或恶意应用攻击,保障其数据在终端内传输的安全性,能够有效防止用户身份数据被篡改或窃取。
其次,TEE 能够校验系统和应用代码的完整性和真实性,能够有效保证应用启动和更新过程中的安全性。
此外,TEE 还可以在终端内为分布式数字身份应用的数据和密钥单独设置独立的存储区域,一方面能够确保只有分布式数字身份应用本身才能访问其内部的数据,另一方面能够对分布式数字身份应用本身的密钥加密数据,确保身份数据的机密性。
硬件级安全环境
基于终端安全芯片(Secure Element,SE)为分布式数字身份提供独立硬件的安全环境,安全级别可达到 EAL4+及以上。
安全芯片提供独立安全的加解密算法,其中对称加解密算法用于加密用户凭证,加密用的用户私钥存储在安全芯片内无法复制和导出,同时安全芯片还提供抗物理攻击的安全能力,能够保证用户密钥不被侧信道攻击或故障注入攻击获取。
非对称加解密和哈希算法用于验证签名,即验证分布式数字身份应用和终端操作系统代码的完整性和真实性。此外,基于终端一次性可编程的存储能力,存储终端系统启动镜像、版本号等,可保证系统代码未被攻击者篡改,保证系统版本号随着升级递增而不会被攻击者降低系统版本。
若终端采用超级 SIM 卡方案,还可以实现用户密钥随设备迁移,即使用户更换终端,也无需更新整体分布式数字身份认证的密钥。
个人信息披露安全机制
个人信息披露
首先,在采集个人信息时,遵循最小必要原则,采用隐私政策说明等方式告知用户所必需的个人信息范围;
其次,在出示用户身份凭证前,以身份清单等方式提示用户必需与非必需身份属性列表,供用户自行选择披露哪些属性。
个人敏感信息披露
涉及到处理指纹、人脸、虹膜数据等个人敏感信息时,首先采用显著提示的方法,在隐私政策中通过分段、加粗等显著方式向用户明示收集“脸部图像或视频”“身份证件”“指纹”等个人敏感信息,同时在采集时单独弹窗说明采集目的、方式和范围,并获得用户单独同意。此外,采用加密、零知识证明等技术手段对原始生物特征数据进行脱敏,保证用户个人敏感信息的安全性和隐私性。
基于密码学的个人隐私保护机制
主要依靠 3 类用户信息对用户身份进行认证。
一是“所知”,即用户记住的信息,例如口令、密钥等;
二是“所有”,即用户的身份证、护照等;- 三是“个人特征”,即用户的指纹、人脸、掌纹等。
如图 3 所示,在传统 Web 2 基于密码口令的身份认证中,用户在同一业务验证方进行身份注册和登录,需要提交一种或几种个人信息(密码、指纹、身份证等)到验证方进行验证。
由于每个业务方都维护着各自的用户账户系统,彼此不互通,导致用户需要重复上传相似信息。并且,个人信息都是明文上传至业务方,上传后用户无法掌控,存在极大的个人信息泄露隐患。
如图 4 所示,基于密码学的隐私保护身份认证机制,能够在认证过程中充分保护用户的信息,使验证方无法获取验证信息以外的内容。
在传统用户身份认证流程中,业务验证方存储了用户不同的盐值,而在 Web 3 分布式数字身份认证过程中,用户仅需要维护一个盐值来验证自己的身份。
并且,由于各个验证方不参与用户注册过程,为了实现 DID 安全认证,用户需要在本地存储至少 256 比特的随机信息,即盐值作为用户私钥。
为了解决盐值分布式存储的问题,本文提出了一种基于零知识证明技术的分布式用户身份认证方案,既能够让用户通过短口令的传统方式登录注册系统,又能够让用户使用多台设备登录业务系统。
另外,在身份属性认证中,如果验证方仅需要验证用户的部分信息,如“用户年龄大于 18 岁”,那么用户就没有必要提供身份证号、住址信息等。
为了实现最小化收集用户信息,本文基于隐语 YACL\[1\]库的信息披露方法,提出了一种实现身份属性信息披露最小化的方案。
基于零知识证明的 DID 认证
传统认证系统中,用户一般可以通过 8 位以上的短口令登录业务系统,这是因为用户需要在登录时上传明文口令或口令的哈希值,各个业务方会维护一个用户盐值列表,用户口令和业务方维护的盐值组合在一起才是业务校验用户时的最终数据值。
这种实现方式存在碰撞攻击的可能,泄露风险较大。但在分布式网络环境下,业务方不参与用户 DID 注册过程,也不存储全局的用户盐值列表。用户在 DID 验证过程中,不能像在传统网络中那样将自己的明文口令提交给业务验证方。
为了解决上述问题,本文设计了一种安全的 DID 认证方案,该方案基于 ZKP 和不经意伪随机函数(Oblivious Pseudo-Random Function,OPRF)等密码学技术,能够让用户仅使用短口令就能安全地进行 DID 的验证,并可以使用同一个 DID 进行跨设备、跨平台的认证服务。
本文提出的方案基于 Pedersen 承诺及其打开证明\[2\]、分布式密钥生成\[3-4\]和门限部分 OPPF\[5-6\]等密码学技术。
首先根据用户短口令生成盐值,然后将该盐值托管到多个服务器,实现 DID 跨设备、跨平台使用。
具体步骤包括获取盐值(SaltRetrieve)、用户注册(Register)和用户登录(Login),实现方案如下。
假设存在 n 个托管服务器,各自拥有一份门限密钥分片 rki,其中 t 个服务器就可以恢复出实际密钥 Key,则:
SaltRetrieve(pwd):盐值取回算法。选择一个随机数 r,将自己的密码盲化后得到 a=Hash1(pwd)r,发送 a 给任意 t 个托管服务器(设为集合 S)。
各个服务器根据用户 uid 和上传的盲化值 a,进行门限部分 OPPF 计算 yi=pairing(x¯,ti),ti=Hash2(uid)rki·λi(0),i 是服务器在集合 S 中的下标,返回{yi}i∈S 给用户。
用户计算 y¯=∏i∈Syi1/r,最终得到盐值 salt=Hash3(pwd,uid,y¯)。其中,Pairing(·,·)是一种椭圆曲线上的双线性配对操作,Hash1、Hash2 和 Hash3 表示不同的哈希函数,λi(0)表示集合 S 相关的下标 i 拉格朗日公式在位置 0 的取值。
Register(pwd):注册算法。用户调用上述盐值取回算法 SaltRetrieve(pwd)得到盐值 salt;
使用 pwd 和 salt 生成 Pedersen 承诺 c=gpwdhsalt,并生成一份非交互的零知识打开证明 proof={cr=gr1ℎr2,c=Hash(g||ℎ||cr||uid),s1=c·pwd+r1,s2=c·salt+r2},上传证明至注册方;若验证成立则注册成功,注册方将用户承诺信息 c 提交至分布式服务中记录。
Login(pwd,salt):登录算法。用户调用上述盐值取回算法 SaltRetrieve(pwd)得到盐值 salt;用户使用 pwd 和 salt 生成一份非交互的零知识打开证明 proof(同上)上传至业务验证方,若证明成立,则表示登录通过。
支持最小化披露的身份属性认证
用户 DID 注册和登录是数字身份认证过程的第一步,身份属性认证则是实际业务场景的需求。
例如,在出示用户年龄证明场景下,验证方可能会要求验证“用户年龄大于 18 岁”,这类场景属于范围证明。在传统验证方式中,用户需要上传身份证信息进行验证,业务方会额外收集到用户的人脸图像、住址、民族等信息。
在出示用户毕业信息证明场景下,会要求验证用户的毕业学校属于某大学(例如浙江大学、复旦大学等),这类场景属于集合成员证明。在传统验证方式中,用户需要上传毕业证信息进行验证,业务方会额外收集到用户的专业、毕业时间等信息。上述两类场景都不满足收集个人信息的最小必要条件。
为了解决上述问题,本文提出一种在分布式网络中实现最小化的信息披露方案,该方案基于传统的 Sigma 证明(组合)技术\[7-9\]和最新的 BBS 签名方案\[10\],能够让业务方仅获取最小化的、需要验证的信息,而无法获得用户非必要的个人信息。以集合成员证明为例,用户在证书颁发方获取一个关于自身属性 a 的证书,即合格的证书来表示用户属性 a 属于某个合法的总集合Π,能够在业务验证方证明自身的属性 a∈U,U⊂Π是一个业务验证方指定的子集合。
该方案主要有证书颁发和证书披露两个阶段,实现过程如下。
证书颁发阶段(无需考虑证书的业务使用场景):证书颁发方(通常为权威机构,例如政府、学校、公司等)利用自己的签发私钥 sk 对用户的属性值(属于总集合Π)进行签名,用户得到授权证书 cred。
证书披露阶段(无需颁发方参与,不暴露具体的属性值,仅验证是否属于子集合 U):业务验证方指定一个子集合 U⊂Π,表示仅接受子集合中的类型。
此后,用户和业务验证方发起零知识证书核验过程,用户能够基于前述证书 cred 生成一个证明,即拥有一个合法的证书,并且证书中的属性值属于集合 U。
视障用户观影场景实现
在数字化转型的趋势下,各行各业都在进行数字化转型,数字服务已经成为人们生活中不可或缺的一部分。
然而,由于一些数字化平台和工具并未充分考虑到残疾人的需求,导致残疾人无法享受其应有的权益,如因视力障碍导致无法正常观影等。
在联合国版权组织的发起下,美国、英国等超过 100 个国家和地区共同签署了《关于为盲人、视力障碍者或其他印刷品阅读障碍者获得已出版作品提供便利的马拉喀什条约》(简称《马拉喀什条约》),该条约能够保障盲人、视力障碍者或其他印刷品阅读障碍者(简称“视障用户”)平等享用已出版的作品。2022 年 5 月,该条约正式在我国生效。
在为视障用户提供无障碍观影服务的同时,往往需要提供额外的个人信息(例如姓名、身份证号等),如何在身份验证过程中最小化处理个人信息,并保证视障用户的隐私安全,是目前亟需解决的问题。
基于隐私保护的视障用户身份核验方案
依托创新的分布式数字身份认证技术,可以保护残疾人隐私。首先,残疾人联合会等主管单位将视障用户身份核验证明,即 VC 发放到用户本人的终端设备中,并将其加密存储在终端的安全环境中。
然后,用户在终端进行身份授权,授权成功后,在向身份核验方出示凭证时,基于前文所述的零知识证明等隐私保护技术,可将个人信息选择性地出示给音视频服务平台核验。
例如,在无障碍观影场景中,基于隐语 YACL 库提供的零知识证明,支持视障用户实现隐私保护下的数字服务。服务平台仅需验证当前用户是否为视障用户即可,不需要用户的其他敏感信息(如身份证等),使用户个人信息在业务使用过程中实现最小化的披露。
此外,使用隐私保护技术,一方面用户个人信息无需存储到多个业务平台,另一方面仅需用户出示必需信息,能够在保护视障用户隐私的前提下实现视障用户享受线上无障碍观影的权益。
视障用户隐私保护实例
目前,通过支付宝端内搜索“无障碍服务在线”小程序,点击“观影服务”后,选择“线上观影”,视障用户可以在身份认证后向浙江省残疾人联合会一键申领残疾人身份核验凭证,非视障用户则无法获取相应凭证。
随后,当视障用户线上观影时,仅需向观影平台授权“残疾人类型”的可验证凭证,即可获取专属音视频资源,而无需提供额外的身份证等信息,在保护用户隐私安全的前提下极大提升了用户的体验。
结束语
随着《个人信息保护法》的正式实施,全社会越来越重视个人信息保护问题。基于隐私保护的分布式认证技术,能够在用户自主授权的情况下,按照最小化原则向平台披露必要的身份及相关个人信息,有效保护用户隐私、降低用户数据泄露风险。
目前,基于隐私保护的分布式认证技术已在视障人群身份核验方面进行实践,为保障残疾人用户个人信息合法权益提供了有益探索,但由于该技术还处于高速发展阶段,目前仍缺少落地的应用场景。
未来,产业界应持续跟踪国内外技术和产业应用发展情况,发掘更多的应用场景,为构建我国分布式数字身份生态提供参考,助力我国数字化转型。







评论