APP下载

基于区块链与零知识证明的物流隐私保护研究

2021-05-25刘明瑶余益民

软件导刊 2021年5期
关键词:数字签名密钥加密

刘明瑶,余益民,2

(1.云南财经大学信息学院;2.云南财经大学信息管理中心,云南昆明 650221)

0 引言

对物流业务流程进行研究,发现造成物流用户隐私数据泄露的因素主要有两个方面:①中转过程的隐私泄露,快递运单明文信息容易被不法分子获取;②服务器造成的隐私泄露,服务器隐私泄露包括不安全存储和访问权限管理不到位。国外一些发达国家主要通过政府和法律来规范监督物流企业,这些强制手段在一定程度上能保护物流隐私数据,但是隐私数据泄露风险仍然存在[1]。物流隐私保护研究有:韦茜等[2-3]通过分析快递单造成的隐私泄露,提出一种K-匿名模型对物流信息进行匿名处理,将数据匿名化以保护隐私数据。虽然通过K-匿名模式降低了敏感信息的关联度,但快递单仍保留了电话和地址信息,容易造成隐私泄露。基于RSA 算法的快递信息隐私保护方式通过对RSA 算法进行改进,使用变型的RSA 算法对个人信息加密以保证快递运输过程中用户的隐私安全。将信息加密存储在Android 手机中,但未考虑密钥和解密后的安全性,因此还需继续改进。张新文[4]研究了一种面向大数据的物流个人信息隐私保护方法,通过分析物流流转过程特征,提出基于QR 二维码的物流中转过程隐私保护方法(LPPS),实行分段加密物流信息,解决物流中转和数据存储中的隐私泄露,使用二维码存储加密后的信息并设计权限分级机制实现物流中转操作。张克落[5]提出一种分层加密的隐私数据保护机制,将物流用户隐私数据分为3 个安全等级进行加密,采用改进的CP-ABE 算法实现基于属性的访问权限设置,根据可读取隐私数据的范围对隐私数据分级访问。

本文提出基于区块链和零知识证明的物流隐私保护方案,首先对用户的身份进行认证,采用RSA 数字签名零知识证明身份认证方案完成用户身份真实性、合法性验证,认证通过才可加入区块链网络进行安全交易;然后通过访问权限管理方法对访问者进行权限设置,实现数据的安全访问;最后采用分级加密方案对物流用户隐私数据进行混合加密,生成密文和密钥,将密文及密钥上传至IPFS存储服务器,实现用户隐私数据的安全存储。

1 储备知识

1.1 私有链

私有链是许可链的一种,参与到区块链网络中的节点必须经过验证许可,加入节点的用户资格严格限制。由于节点的有限和可控,因此私有链具有较快的交易速度、更好的隐私性和更低的交易成本,能够防止机构内单节点故意隐瞒或篡改数据,物流系统使用私有链可以保证较高的隐私性和处理速度。

1.2 RSA 数字签名

数字签名可保证数据传输的完整性、发送者的身份认证、防止交易中的抵赖发生,是常用的身份认证方法。RSA公钥加密算法是目前应用最广泛的公钥密码体制之一,广泛应用于数字签名,其安全性依赖于大数分解的困难性,只有合法的签名者才能获得签名私钥,其他任何人均不能假冒签名者进行签名[6]。

1.3 零知识证明

零知识证明指证实者使验证者确信证实者知道某秘密值但不向验证者泄露有关该秘密的任何有用信息[7],采用交互式零知识证明方法对访问者身份进行认证。交互式零知识证明指执行协议的双方连接过程以交互式应答为实现方式,证实者P 执行完一步协议后,验证者V 作出应答,P 再根据V 的应答作出相应反应,重复该过程直至完成整个交互[8]。

2 物流隐私数据保护方案

我国物流信息系统要求用户实名认证,以便身份信息真实可查,避免投递危险品等行为。为保证实名认证操作下用户数据的隐私安全,加入物流系统前需要对用户的身份信息进行认证审查,确保真实与安全,为此本文提出基于区块链和零知识证明的物流隐私保护方案(见图1),方案包括用户身份管理、访问权限管理和隐私数据分级加密3 个模块。用户身份管理模块是在私有链环境下对进入区块链网络的用户进行身份认证,认证通过后可加入区块链网络成为一个实体节点。访问权限管理模块允许加入区块链网络的数据访问者对保存在分布式数据库中的物流数据权限状态进行查看,并根据相应权限获取对应级别的隐私数据存储地址,根据地址和角色权限从IPFS 获取相应的密钥对隐私数据进行解密操作。隐私数据分级加密模块通过对物流用户隐私数据划分为3 个安全等级进行分级加密,并上传至IPFS 进行安全存储。

2.1 基于零知识证明的用户身份管理

Fig.1 Logistics privacy protection scheme based on blockchain and zero knowledge proof图1 基于区块链和零知识证明的物流隐私保护方案

物流隐私数据保护方案中的用户包括收件方和物流企业方,物流企业方包括发件方、中转方和快递方等物流工作人员,收件方为隐私数据拥有者,而物流企业方为隐私数据访问者。无论是数据拥有者还是数据访问者在加入区块链网络之前都必须完成身份认证,获得唯一身份证书以确保身份的真实性和安全性,采用基于RSA 数字签名的零知识证明身份认证方案为加入区块链网络的用户提供匿名可验证身份。

基于RSA 数字签名的零知识证明身份认证方案由用户(A)、认证服务器(B)和可信授权中心(CA)3 部分组成。首先用户在CA 处获得身份证书,身份证书包括数字签名和私钥,然后通过数字签名向B 证明自己是经过CA 认证过的合法用户。整个过程中,用户对验证方B 具有匿名性,B 无法获知任何有关用户的身份信息。方案整体过程包括用户注册、身份认证和加入节点3 个阶段。

2.1.1 用户注册阶段(A→CA)

在认证过程开始前,A 首先必须到授权中心CA 进行注册,A 将自己的身份信息(包括用户名、电话、身份证、地址等信息)发送给CA,CA 根据RSA 密钥生成算法产生RSA 公钥和私钥,然后对公钥进行数字签名,最后CA 将数字签名和私钥发送给A,A 保存数字签名和私钥。以后A每次在身份认证之前必须将该数字签名发送给B,只有验证签名合法后才能开始零知识证明。具体步骤如下:①用户A 将自身信息(Name、IDnumber、Telephone、Address 等)m 发送给可信授权中心CA;②CA 随机选取p 和q 两个大质数,计算n=p×q;任取整数e 并计算d,满足ed=1modφ(n),其中(n,e)为公钥,(p,d,q)为私钥,p,q 可销毁,d 作为私钥;③CA 对信息m 的RSA 数字签名为s=md(modn),签名后的文件即身份证书,包括信息m 和签名s;④CA 将身份证书、公钥(n,e)和私钥d 发送给用户A,A将此保存,为接下来的身份认证提供数据支持。

2.1.2 身份认证阶段(A→B)

在身份认证阶段,A 首先将数字签名发送给B,B 检验数字签名是否有效。如果为无效数字签名,则零知识身份认证过程中断。如果为有效的,那么A 与B 开始认证过程。经过几次的零知识证明后,若验证成功,则B 相信A的身份是真实的,允许A 加入到区块链节点中成为一个实体节点。具体步骤如下:①A 将身份证书和公钥(n,e)发送给B;②B 接收信息,使用公钥d 计算=se(modn),证明m=则签名是正确的;③如果检验签名正确,则进行零知识证明身份认证过程。

采用交互式零知识证明方法进行身份认证,用户A 执行以下零知识证明协议:

其中,α表示用户的秘密信息,即对身份信息m 的RSA 签名,H(•) 是{0,1}*→{0,1}l的公开抗碰撞的哈希函数,n,e 和H(m)为共享信息,Pid代表用户A 的身份标识,可以是固定的IP 或者公钥证书中标记的名字等,Time⁃stamp 是标记零知识证明的时间戳,Nonce 是防重放攻击的一次性随机数。

具体认证过程如下:

(1)认证服务器B 任选r1∈RZn*发送给用户A。

(2)用户A 任选r2∈RZn*,计算:

并利用自己的数字签名s 计算k=modn,则{c,k}∈{0,1}l×Zn*。

(3)A 将零知识证明证据{s1,c,k,Pid,Timestamp,Nonce}传递给B。

(4)B 接收零知识证明证据后,验证下列等式是否成立:

若等式成立,则B 相信用户A 拥有该数字签名,接受该证明,说明用户A 的身份是真实合法的,可以加入到区块链网络中。

2.1.3 加入节点阶段

用户为了加入区块链网络,必须在CA 处获得身份证书并通过认证服务器的身份认证,认证通过后即可加入区块链网络成为一个实体节点,然后加入由认证服务器B 维护的合法用户列表UL,用户生成自己的区块链交易密钥对(t_pub,t_pri),并将其中的交易公钥t_pub 作为加入UL 的对象,之后用户在认证服务器处获得对称密钥交易公钥t_pub 返回给服务器,认证服务器解密后将公钥t_pub 加入UL,这样区块链的共识机制在处理该用户交易时才能认定交易是合法的,由此用户才能通过该交易完成分布式账本的读取和更新操作。

2.2 访问权限管理

物流工作分工明确,物流人员角色较单一,有明显的职责等级和权限,所以采用改进的RBAC 模型对物流用户的访问权限进行管理,对原RBAC 模型中权限分配工作量大且不灵活的问题进行改进,引入混合授权模式、用户区块和时间约束,参见参考文献[9]。混合授权将数据访问者进行角色和用户双授权;用户区块指将工作性质相同的用户分为一个组即一个区块,为用户区块分配角色权限;时间约束规定用户对数据的访问时间。基于表1 的设定为用户区块分配角色权限。

将访问权限设置嵌入智能合约中,并将新的隐私数据权限状态记录在分布式账本上,共识机制判断交易合法后,访问者可访问该数据权限状态,然后根据所分配的角色权限判断自己是否拥有访问该隐私数据的权限。

2.3 隐私数据分级加密及安全存储

考虑物流中转效率和方便快递人员投递包裹,对物流用户隐私数据进行安全等级划分,划分方法如表1 所示。安全等级分为低、中、高,分别对应1 级、2 级和3 级,使用AES 与RSA 混合加密方式分别对划分后的数据进行加密并上传至IPFS 安全存储,获得不同存储地址的Addri保存在分布式数据库中,便于节点中认证通过的用户获取,隐私数据加密及安全存储模型如图2 所示。

Table 1 Privacy data partition method表1 隐私数据划分方法

Fig.2 Privacy data encryption and secure storage model图2 隐私数据加密及安全存储模型

2.3.1 隐私数据分级加密

根据安全等级划分将隐私数据分为收件方个人信息、收件方购物信息(购买费用、商品等信息)、发件方个人信息和物流中转路线信息4 个部分,客户端为4 个部分进行加密及密钥密文上传操作。具体步骤如下:

(1)使用哈希算法SHA-256 对源数据文件Pfi进行哈希处理,得到并保存哈希值Hf,无论是收件方还是发件方都可在后续用来校验数据文件的完整性。

(2)生成随机密钥。客户端通过密钥生成函数为4 个部分生成随机数作为对称加密AES 算法的密钥K1、K2、K3、K4。

密切关注国内同行业同工况下进口黑水角阀和国产黑水角阀在GE水煤浆煤气化装置中的使用情况,并和阀门企业技术人员做技术交流,了解掌握不同阀门企业、不同结构的阀门,通过对比研究,逐步实现阀门的国产化。

(3)对源数据加密。使用对称加密算法AES 和密钥Ki对提交的原始数据文件Pfi进行加密,得到密文K_Pfi。

(4)对密钥Ki加密。非对称加密RSA 算法的密钥生成函数生成公钥Rki和私钥Pki,使用公钥Rki对密钥Ki进行加密,加密后的密钥记为Mki。

(5)密文及密钥安全存储。将步骤(3)得到的密文K_Pfi和步骤(4)得到的密钥Mki一起上传至IPFS,得到并保存存储地址Addri,将地址保存在分布式数据库中。

2.3.2 IPFS 安全存储机制

物流用户隐私数据由分布式的IPFS 网络和以太网P2P 网络共同实现存储操作。IPFS 的去中心化分布式存储保证黑客不易攻击、文件不易丢失,其作为存储服务器安全性较高、存储成本较低。步骤5 中将密文及密钥保存到IPFS 分布式节点中时,IPFS 会根据密文及密钥信息利用哈希函数生成一个与信息唯一对应的哈希值,即返回一个Base58 编码的文件存储地址,地址保存在分布式数据库中。IPFS 系统采用multihash 得到文件地址,文件地址由哈希函数编码、哈希值的长度及哈希值3 部分组成。IPFS与区块链相结合的数据存储方案可验证IPFS 存储数据的真实性[10]。

2.3.3 隐私数据解密

经过身份认证加入节点的合法数据访问者即物流企业方,根据访问权限管理模块所设置的权限级别去获取对应的隐私数据。首先需要请求一个区块ID 从分布式数据库获取相应的存储地址,然后根据地址从IPFS 获取对应隐私数据,解密得到明文信息。对于收发双方来说可以获取全部的隐私数据,快递方可以获取收件方、发件方和物流中转路线信息,而中转方只能获取物流中转路线信息。

3 方案安全性分析

3.1 身份认证安全性

身份认证过程中,用户持有其秘密信息的私钥d 和数字签名s,可以避免除其本人以外的其他任何人通过特殊途径获取到明文信息从而冒充其进行身份认证。同时,交互式零知识证明协议中添加了用户的身份标识Pid和验证签名的时间戳Timestamp 以及防止重放攻击的一次性随机数Nonce,能够有效防止第三方非法获取零知识证明证据以冒充用户对签名进行确认,因此无法伪造用户签名。

3.1.2 匿名性和不可关联性

认证服务器为验证加入区块链网络的用户身份合法性,使用零知识证明方法确信用户身份是真实合法,但不能得到数字签名s 的任何有关信息,保证了用户身份的匿名性。每当服务器接收到零知识证明后就开始使用一系列共享信息进行验证,而这些共享信息不含有任何用户的私密信息,因此服务器不能获得用户的身份信息。即便连续访问服务器也不能计算出用户的身份信息,因为用户每次选择的一次性随机数Nonce 不同,因此用户和认证服务器之间不可关联。

3.2 混合加密安全性

数据加密是保证隐私数据安全性的基本要求,AES 算法是对称加密算法中的高级加密标准,能有效抵抗差分攻击、线性攻击等多种攻击方法[9],采用AES 对隐私数据进行加密具有较高的安全性。结合非对称加密RSA 算法对AES 算法产生的密钥进行加密,混合加密机制保证了物流用户隐私源数据安全性,同时也保证了密钥传输和管理的安全性。

4 方案拟测试环境

在Ubuntu 操作系统下采用Truffle 开发框架开发和编译设计好的智能合约,并将其部署在Ganache 搭建的以太坊私有链环境中,随后部署IPFS 对本文设计的隐私保护方案进行测试。

5 结语

通过分析物流隐私泄露问题,提出使用区块链技术解决物流中转和服务器存储及访问造成的隐私泄露。本文的隐私保护方案注重用户的身份认证和隐私数据加密及安全存储,RSA 零知识证明身份认证方法可保证加入区块链网络完成物流交易用户的身份真实性和安全性,只有通过身份认证的用户才能获取访问权限对隐私数据进行安全访问,同时将隐私数据划分为3 个安全等级进行分级混合加密,在保证安全性的同时提高加密效率。后续将在访问者权限管理方面进一步研究,完善访问权限管理方案,加强隐私保护安全性。

猜你喜欢

数字签名密钥加密
探索企业创新密钥
密码系统中密钥的状态与保护*
浅析计算机安全防护中数字签名技术的应用
一种基于熵的混沌加密小波变换水印算法
一种对称密钥的密钥管理方法及系统
基于ECC的智能家居密钥管理机制的实现
基于数字签名的QR码水印认证系统
数字签名简述
认证加密的研究进展
基于ECC加密的电子商务系统