APP下载

基于区块链技术的生物特征和口令双因子跨域认证方案

2018-08-28周致成李立新李作辉

计算机应用 2018年6期
关键词:跨域口令密钥

周致成,李立新,郭 松,李作辉

(信息工程大学,郑州450001)

(*通信作者电子邮箱alphalilixin@163.com)

0 引言

在分布式环境中,各个地区、行业、部门为了方便管理用户,设置相应的资源访问控制系统,形成相对独立的域。然而单个独立的域不能提供完整的应用服务,用户访问其他域的资源需要进行跨域认证。传统的跨域认证主要基于对称密码体制和公钥密码体制。而基于对称密码体制的跨域认证主要指Kerberos提供的跨域认证服务,但Kerberos系统所有用户的密钥都存储在中心服务器,危及服务器的安全的行为将危及所有密钥的安全。而基于公钥密钥体制(Public Key Cryptography,PKC)的跨域认证方案主要基于公钥基础设施(Public Key Infrastructure,PKI)和基于身份的公钥密码体制(IDentity-based Public Key Cryptography,ID-PKC)。基于 PKI的跨域认证存在证书管理复杂、认证路径过长的问题;而ID-PKC存在密钥托管的问题,且认证效率不高,实际应用困难。

生物特征具有唯一性和在一定时间内不显著改变的稳定性[1],使用生物特征进行认证具有简便、快捷、易用的特点,因此生物特征识别在身份认证领域得到了广泛的应用。传统的生物特征识别方案在识别匹配时要传输生物特征模板。生物特征模板是由采集到的生物特征图像通过提取细节点的方式产生,所以生物特征模板存储的是该生物特征细节点的相关信息,而不是该生物特征图像。以指纹特征为例,指纹特征模板的数据结构通常由指纹细节点的位置、方向等信息构成。由于生物特征模板具有唯一性与隐私性,在开放的网络上直接传输生物特征模板是不安全的,因此后来出现了借助智能卡的支持在客户端上进行生物识别。文献[2]最早提出将生物特征引入智能卡认证,通过识别阶段重新采集的指纹特征模板与注册阶段采集并已经存储在智能卡中的指纹特征模板进行识别匹配,然后借助于ElGamal公钥加密系统和离散对数问题实现远程的用户身份认证。但当智能卡受到攻击甚至丢失时,远程身份认证方案将受到严重的安全威胁,甚至方案不能实现。因此如何从两个差别不大的生物特征中提取出相同的秘密值作为远程生物特征比对匹配的因子,是实现在分布式开放网络中实现生物特征识别的关键。

2004年,Dodis等[3]提出了模糊提取技术,实现了将两个在误差允许范围内的生物特征模板通过模糊提取产生一个相同且秘密的随机字符作为用户的随机密钥,不仅解决了同一个生物特征在噪声等干扰因素下能够提取出一个唯一的秘密值的问题,而且解决了因生物特征表征信息或生物模板泄露导致的生物特征永久不可用的问题。文献[4]提出将模糊提取技术与口令放大技术结合,克服基于低熵口令认证的低安全性问题,但其对模糊提取的安全性假设是基于被动攻击的,不能应对遭受主动攻击面临被篡改公开信息的威胁。文献[5]提出了无线传感器网络下使用智能卡和模糊提取器的认证与密钥协商协议,但是用户需要携带智能卡,如果智能卡丢失,用户将不能登录认证服务器,必须重新注册,所以使用智能卡在一定程度上对用户带来了不便。文献[6]基于模糊提取技术和椭圆曲线性Diffie-Hellman假设,提出生物特征和口令双因子认证与密钥协商协议,实现了用户无需智能卡的认证。虽然,文献[4]实现了远程认证,文献[5]的无线传感器网络环境是一种分布式的网络环境,但文献[4-6]均未实现基于生物特征与口令的跨域认证。

区块链技术最早由Nakamoto[7]提出,作为比特币的底层技术。区块链技术整合了分布式存储、现代密码学、点对点网络、共识机制和智能合约这几个关键技术,对数据进行交换、存储和处理,是一个安全高效、共享智能的新技术。近几年区块链技术在各领域得到了广泛的研究与应用。文献[8]提出使用区块链技术保护个人数据,将区块链交易附上用户的操作指令,使用户在系统中维护数据、操作数据,但未提及具体应用;文献[9-11]是基于区块链技术在传统PKI身份认证领域应用的研究,解决了传统 PKI领域存在单一 CA(Certifacate Authority)节点故障和使用 CRL(Certificate Revocation List)造成通信量过大的问题,但未提及跨PKI信任域的身份认证问题的解决方案;文献[12]提出将区块链技术应用于基于生物特征的身份认证问题,使用区块链技术存储指纹形成一个基于区块链的身份认证系统,但是该方案直接将未加密的指纹存储在区块链上,存在安全性与隐私性威胁。

针对传统跨域认证方式单一且方案复杂,以及生物特征认证采用的模糊提取技术中公开信息值易遭受篡改等问题,本文提出了基于区块链技术的生物特征和口令双因子跨域认证方案。基于不易篡改且分布式存储的区块链作为底层数据存储架构,存储生物特征公开信息,便于用户恢复作为生物特征因子的随机密钥。基于离散对数问题把用户在注册与认证阶段输入的静态口令转化为动态口令,作为口令因子。利用对称加解密与生物特征随机密钥的识别匹配,实现了生物特征与口令的双因子认证。本文利用模糊提取技术解决了传统的生物识别认证方案存在的用户生物特征泄露将永久不可用的问题;基于区块链分布式账本不易篡改的特点解决了文献[4]存在的模糊提取器遭受主动攻击的威胁,解决了文献[5]中用户携带智能卡不便且易丢失的问题,实现了用户在不使用智能卡的条件下在任意客户端进行身份认证。

1 相关知识

1.1 模糊提取技术

Dodis等[3]提出的模糊提取技术存在两个概念:

1)模糊提取器(Fuzzy Extractor)。从输入的生物特征信号中提取出均匀分布的随机字符串R。

2)安全梗概(Secure Sketch)。从输入的生物特征信息ω中提取出公开信息P,当再次输入的ω'与ω非常相近时,可以由P和ω'恢复出ω。

模糊提取技术将输入的生物特征信息ω分别使用模糊提取器和安全梗概以容错的方式提取出一个均匀的随机字符串R和一个公开信息P。当再次输入一个与首次输入的生物特征信息ω偏差不大的生物特征信息ω'时,借助公开信息P,使用安全梗概恢复出ω,并作为输入再次通过模糊提取器获得随机字符串R。为简化模糊提取技术的流程,下面将模糊提取技术使用形式化表述:

1)随机字符生成算法Gen(ω)→(R,P):输入用户的生物特征信息ω,通过随机字符生成算法,输出一个对应于用户生物特征的字符串R作为用户的随机密钥和一个公开信息值P。

2)随机字符恢复算法Rep(ω',P)→R:输入用户的生物特征ω',和对应用户的公开信息P,如果满足两次输入的生物特征的误差在给定容许的范围ε内,即dis(ω,ω')≤ε,则输出对应于用户生物特征的字符串R。

1.2 区块链技术

区块链技术简单来讲主要包含以下三个概念:1)交易。在比特币系统[7]中指以比特币为货币的价值的交换,引申为系统中以某个关键数据为基础的数据的交换。2)区块。记录一定时间内系统的所有的交易和状态。3)链。代表整个账本,从以时间顺序产生的区块连接而成。

区块链作为数据账本存储在点对点网络中[13]。每一个区块存储网络中一段时间产生的交易。交易由网络节点经广播机制广播到全网中,参与记账的节点按照共识机制把交易记录在区块内,成为新的区块。如图1所示,后一个区块记录前一个区块的哈希值,通过这种方式将每一个区块连接成区块链[14]。

图1 区块链结构Fig.1 Blockchain architecture

2 系统架构与区块链设计

2.1 系统架构

本文方案的跨域认证系统由多个分布式独立域和区块链网络组成。系统架构如图2所示,系统由多个独立的域和区块链网络组成,每个独立的域的内部由认证服务器、客户端和区块链网络节点组成。客户端上连接生物特征采集器。区块链网络由众多服务器和主机节点以点对点网络的组网方式构成,这些节点位于各分布式独立的域内。在实际应用时节点可以建在认证服务器内,也可以建在认证服务器外。

图2 系统架构Fig.2 System architecture

2.2 区块链网络模型

由于联盟链具有分布式多中心的特点,满足多个独立域存在的分布式网络环境,因此本方案使用区块链联盟链技术设计针对生物特征识别的数据存储区块链网络,命名为生物公开信息联盟链(Biometrics Public Information Consortium Blockchain,BPICB),BPICB架构如图3所示。

图3 BPICB架构Fig.3 BPICB architecture

BPICB网络节点建立在不同的域内,通过网络互相连接。每个域可以选择节点部署的方式,可以部署在认证服务器里,也可以独立于认证服务器之外部署。节点类型分为以下两类:

1)记账节点(Keep Account Peer,KAP)。由服务器充当,主要负责维护区块链账本。参与共识机制将交易记录在区块链内,保存有区块链账本。

2)服务节点(Service Peer,SP)。由主机充当,主要负责为客户端提供区块链数据存储与查询服务。通过接收客户端的操作请求,组合交易并广播至网络中。通过与记账节点的同步保存有区块链账本,提供客户端对账本的查询功能。

在BPICB网络中,记账节点记录区块链数据,服务节点提供区块链服务。每一个独立的域内至少有一个记账节点和服务节点,提供完整的区块链数据存储、查询与审计的功能。记账节点通常是运算效率较高的服务器,采用记账节点记账而不是由全网所有节点竞争记账,可以有效提高区块链记账的效率。服务节点可以是主机也可以是服务器,连接客户端,为客户端提供区块链数据存储与查询服务。将区块链网络中记录数据和查询数据的节点分离,各司其职,一方面提高区块链记账的效率,减少资源浪费;另一方面更好地提供区块链账本服务。

2.3 区块链交易

区块链的交易对应区块链账本内的一条条数据。本方案使用BPICB网络存储模糊提取后的公开信息值P,所以区块链的交易由公开信息P及其相关信息组成。交易的数据结构如图4所示。其中:Tx-id表示交易号;IDDomain-Number表示每个域的用户的账户号,代表用户的唯一标识;Data表示模糊提取技术产生的公开信息P;Operation表示对公开信息P的操作,分为注册(Register)、查询(Query)、撤销(Revoke),记录对公开信息P的全部操作;Signature表示向服务节点发送关于公开信息P及其相关操作的认证服务器或客户端的签名。

图4 交易的数据结构Fig.4 Data structure of the transaction

1)当用户注册时,客户端的生物特征采集器提取生物特征模板ωU,使用模糊提取技术的随机字符生成算法产生公开信息 P,然后将用户 IDDomain-Number、公开信息 P、注册操作Register,以及签名Signature发送给服务节点,服务节点组装交易Transaction并附上交易号Tx-id广播至区块链网络,记账节点把一定时间内收到的区块链网络中的交易通过共识机制记录在新的区块中,形成最新的区块链。用户注册时产生交易的具体流程如图5所示。

图5 用户注册时产生交易的流程Fig.5 Process of generating a transaction when user registers

2)当用户查询时,客户端向区块链网络的服务节点发送用户的唯一标识符 ID、查询操作Query和客户端的签名Signature,服务节点根据用户的唯一标识符IDDomain-Number查询区块链得到用户对应的公开信息P,返回给客户端。然后服务节点组装交易并附上交易号Tx-id广播至区块链网络,记账节点把区块链网络中一定时间内的交易通过共识机制记录在新的区块中,形成最新的区块链。用户查询时产生交易的具体流程如图6所示。

3)当用户注销时,认证服务器向区块链网络的服务节点发送用户的唯一标识符IDDomain-Number、公开信息值P、注销操作Revoke和认证服务器的签名Signature,服务节点组装交易Transaction并附上交易号Tx-id并发往记账节点处理,记账节点通过共识机制将交易存储在新的区块中,形成最新的区块链。用户注销时产生交易的具体流程如图7所示。

图6 用户查询时产生交易的流程Fig.6 Process of generating a transaction when user queries

图7 用户注销时产生交易的流程Fig.7 Process of generating a transaction when user revokes

2.4 区块链共识算法

在区块链体系的高度自治去中心化的分布式环境中,如何让区块链节点记账并使全网节点达成数据上的共识,是设计区块链系统和应用方案的关键。本方案选用适合于联盟链环境的的Raft共识机制[15]使全网数据达成共识。根据Raft共识机制,将BPICB网络中的节点分为以下3个角色:

1)领袖:记账节点投票选举一名担任;

2)群众:落选的记账节点和服务节点担任;

3)候选人:所有记账节点担任。

在BPICB网络中,网络中的记账节点作为候选人投票表决选举唯一的领袖,投票时参考记账节点的计算速度以及吞吐量,获得选票最多的记账节点成为领袖。投票结束后候选人自动变为群众。担任领袖的记账节点将一段时间内的交易验证后记录在区块中连接成为最新的区块链账本,作为群众的节点同步区块链账本。

3 基于区块链技术的双因子跨域认证协议

本章主要介绍基于区块链技术的生物特征和口令双因子跨域认证协议。由于BPICB实现了生物特征公开信息的数据共享,用户在任意客户端通过查询区块链便可得到用户对应的公开信息,通过模糊提取器技术可在客户端上恢复出随机密钥,因此能够实现用户在本地与异地进行跨域认证。方案具体分为用户注册、本地认证、本地跨域认证、异地跨域认证四个阶段。方案中使用的参数如表1所示。

3.1 注册阶段

用户在注册阶段的流程如图8所示。

用户在注册阶段的具体流程如下:

第1步 A域用户在本地客户端ClientA-t上输入用户名IDA-i和静态口令PWA-i,通过生物特征采集器采集生物特征ωA-i。

第2步 客户端使用模糊提取技术的随机密钥生成函数Gen(),对输入的生物特征模板ωA-i进行处理,产生随机密钥RA-i和公开信息 PA-i,将用户的静态口令 PWA-i作哈希运算H(PWA-i),记为 y,然后将生物特征模板 ωA-i和静态口令PWA-i删除。客户端将 IDA-i、RA-i和 y 通过安全的信道发送到本地认证服务器ASA。

第 3 步 本地认证服务器 ASA收到包含有 IDA-i、RA-i和y的消息,检查该用户的身份标识是否已经存在,如果不存在则可以注册,把 IDA-i、RA-i、y 存储在数据库内。

第4步 客户端ClientA-t将公开信息PA-i发送到服务节点组装交易记录在区块链上。

表1 方案参数说明Tab.1 Description of scheme parameters

图8 注册阶段流程Fig.8 Flow chart of registration phase

3.2 本地认证阶段

用户在本地认证阶段的流程如图9所示。

用户在本地认证阶段的具体流程如下:

第1步 用户在客户端ClientA-t输入用户名IDA-i和静态口令PWA-i'并在生物特征采集器上采集得到生物特征模板ωA-i'。

第2步 客户端ClientA-t向服务节点查询区块链数据,得到公开信息PA-i(具体过程见2.3节),使用模糊提取技术的恢复算法Rev(ωA-i',PA-i),生成随机密钥RA-i'。将静态口令作哈希运算H(PWA-i') 记为y',将生物特征模板 ωA-i'和静态口令PWA-i'删除。然后产生随机数x,计算X=gx,使用y'生成 d'=gxy',d'作为密钥对称加密 Ed'(RA-i'),将消息(IDA-i,X,Ed'(RA-i'))通过安全的信道发送给认证服务器ASA。

第3步 认证服务器ASA接收到客户端ClientA-t发来的消息(IDA-i,X,Ed'(RA-i')),根据IDA-i查找注册时存储在数据库中的y,计算d=Xy。使用d对Ed'(RA-i')解密,有以下两种情况:

a) 如果使用 d 能够解密 Ed'(RA-i'),得到 RA-i',然后根据IDA-i查找注册时存储在数据库中的 RA-i,执行第4步;

b)如果使用d无法解密Ed'(RA-i'),则认证失败,原因为口令错误。

第4步 认证服务器ASA验证RA-i和RA-i'是否相等。有以下两种情况:

a) 如果 RA-i=RA-i',认证成功,向 B 域认证服务器返回认证成功的消息;

b) 如果 RA-i≠ RA-i',认证失败,向 B 域认证服务器返回认证失败的消息,原因为生物特征错误。

3.3 本地跨域认证阶段

用户在本地跨域认证阶段的流程如图10所示。

用户在本地跨域认证阶段的具体流程如下:

第1步 用户在客户端ClientA-t输入用户名IDA-i和静态口令PWA-i'并在生物特征采集器上采集得到生物特征模板ωA-i'。

第2步 客户端ClientA-t向服务节点查询区块链数据,得到用户IDA-i的公开信息PA-i,使用模糊提取技术的恢复算法 Rev(ωA-i',PA-i) 恢复出随机密钥 RA-i'。计算静态口令的哈希值 H(PWA-i'),记为 y',客户端将生物特征模板ωA-i'和静态口令 PWA-i'删除。将用户的 IDA-i、RA-i'、y'用 B 域的认证服务器ASB的公钥PKASB加密生成EPKASB(IDA-i,RA-i',y'),发送消息(IDA-i,EPKAS(IDA-i,RA-i',y')) 给 A 域认证服务器 ASA。B

第3步 A域认证服务器ASA根据IDA-i查找存储在数据库中的 y和RA-i。产生一个随机数x,计算X=gx,使用y生成动态口令d=gxy,使用d作为密钥进行对称加密Ed(RA-i),将消息(Ed(RA-i),X,EPKAS(IDA-i,RA-i',y')) 发给 B 域认证服B务器ASB。

图9 本地认证阶段流程Fig.9 Flow chart of local authentication phase

图10 本地跨域认证阶段流程Fig.10 Flow chart of local cross domain authentication phase

第4步 B域认证服务器ASB收到数据包后,使用私钥对EPKASB

(IDA-i,RA-i',y') 解密得到 IDA-i、RA-i'和 y',使用 X 和y'计算动态口令 d'=Xy'。使用 d 对 Ed'(RA-i') 解密,有以下两种情况:a) 如果使用d能够解密Ed'(RA-i'),得到RA-i',执行第5步;b)如果使用d无法解密Ed'(RA-i'),则认证失败,原因为口令错误。

第5 步 认证服务器ASB验证 RA-i和RA-i'是否相等。以下分两种情况:

a) 如果 RA-i=RA-i',认证成功;

b)如果 RA-i≠ RA-i',认证失败,原因为生物特征错误。

3.4 异地跨域认证阶段

用户在异地跨域认证阶段的流程如图11所示。

用户在异地跨域认证阶段的具体流程如下:

第1步 用户输入IDA-i和静态口令PWA-i'并通过生物特征采集器采集生物特征模板ωA-i'。

第2步 客户端向最近的服务节点查询区块链得到用户IDA-i的公开信息 PA-i,使用模糊提取技术 的 恢 复算法Rev(ωA-i',PA-i) 恢复出生物特征随机密钥 RA-i',计算静态口令的哈希值H(PWA-i'),记为y',将生物特征模板ωA-i'和静态口令 PWA-i'删除。发送消息(IDA-i,RA-i',y') 给 B 域的认证服务器ASB。

第3步 B域认证服务器ASB根据用户的唯一标识符IDA-i识别用户的本地服务器,并向其本地服务器ASB发送用户名IDA-i,请求该用户的生物特征随机密钥RA-i和共享密钥X。

第4步 A域认证服务器ASA根据IDA-i查找注册时存储在数据库中的 y和RA-i,产生一个随机数x,计算X=gx,使用y生成动态口令d=gxy,并将d作为密钥进行对称加密Ed(RA-i),A 域认证服务器 ASA发送消息(IDA-i,X,Ed(RA-i))到B域认证服务器ASB。

第5步 B域认证服务器ASB计算d'=Xy',使用d'解密Ed(RA-i),分为以下两种情况:

a) 如果使用 d'能够解密 Ed(RA-i),得到 RA-i,执行第 6步;

b)如果使用d'无法解密Ed(RA-i),则认证失败,原因为口令错误。

第6 步 认证服务器ASB验证 RA-i和RA-i'是否相等。以下分两种情况:

a) 如果 RA-i=RA-i',认证成功,向 B 域认证服务器返回认证成功的消息;

b) 如果 RA-i≠ RA-i',认证失败,向 B 域认证服务器返回认证失败的消息,原因为生物特征错误。

图11 异地跨域认证阶段流程Fig.11 Flow chart of remote cross domain authentication phase

4 方案分析

4.1 安全性分析

4.1.1 抗中间人攻击

本方案在用户注册与登录认证时,客户端将随机密钥R和静态口令的哈希值y通过安全的信道或者直接通过内部局域网发送给认证服务器,保证认证信息不被篡改。在本地跨域认证和异地跨域认证阶段,需要进行两个域的认证服务器间的通信,在这种多域间的公共网络下发送消息,采用对称与非对称加密技术,并基于离散对数问题,可以不使用安全的信道在公开的信道传输。以下是各个阶段关于中间人BPICB攻击的安全性分析:

1)注册阶段。客户端ClientA-t与本地认证服务器ASA通信,客户端通过安全的信道发送消息(IDA-i,RA-i,y) 到本地认证服务器,攻击者无法窃取和篡改。客户端与BPICB服务节点SP通信,通过安全的信道传输PA-i及相关信息,攻击者无法篡改。

2)本地认证阶段。客户端ClientA-t与本地认证服务器ASA通信,客户端通过安全的信道发送消息(IDA-i,X,Ed'(RA-i'))到本地认证服务器。由于X=gx基于离散对数问题,攻击者即使窃取到X也无法计算出随机数x,并且攻击者没有静态口令的哈希值,也无法根据X计算出动态口令。客户端使用与服务器协商的动态口令d'作对称加密Ed'(RA-i'),攻击者无法篡改和窃取RA-i'。

3)本地跨域认证阶段。首先客户端ClientA-t与本地认证服务器ASA通信,客户端通过安全的信道发送消息(IDA-i,EPKAS(IDA-i,RA-i',y')) 给本地认证服务器,由于本地认证服B务器没有B域认证服务器ASB的私钥,只对其进行转发,无法解密,因此不存在本地认证服务器修改消息的可能。然后本地认证服务器ASA和B域认证服务器ASB通信,发送消息(E(R),X,E(ID,R',y')),由于 X=gx基于离散dA-iPKASBA-iA-i对数问题,攻击者即使窃取到X也无法计算出随机数x,并且攻击者没有静态口令的哈希值,也无法根据X计算出动态口令。两认证服务器间采用对称加密和非对称加密通信,攻击者没有相关密钥无法获取有用的信息。

4)异地跨域认证阶段。首先客户端ClientB-i与B域的认证服务器ASB通信,客户端通过安全的信道发送消息(IDA-i,RA-i',y')给认证服务器ASB,攻击者无法窃取和篡改消息。A域认证服务器ASA与B域认证服务器ASB通信,发送消息(IDA-i,X,Ed(RA-i)),由于 X=gx基于离散对数问题,攻击者即使窃取到X也无法计算出随机数x,并且攻击者没有静态口令的哈希值,也无法根据X计算出动态口令。两认证服务器间采用对称加密和非对称加密,攻击者没有相关密钥无法获取有用的信息。

4.1.2 抗重放攻击

1)本地认证阶段。客户端产生随机数x,计算X=gx发给A域认证服务器ASA。客户端与认证服务器两方分别拥有登录与注册阶段两次输入的静态口令y'和y,根据随机数x和X可以分别计算出动态口令d'=gxy'和d=Xy。动态口令在认证时只使用一次,攻击者即使截取了消息也无法进行重放攻击。

2)本地跨域认证阶段。A域认证服务器产生随机数x,计算X=gx发给B域认证服务器。A域认证服务器与B域认证服务器分别拥有注册与登录阶段两次输入的静态口令y和y',根据随机数x和X可以分别计算出动态口令d=gxy和d'=Xy'。动态口令在认证时只使用一次,攻击者即使截取了消息也无法进行重放攻击。

3)异地跨域认证阶段。A域认证服务器产生随机数x,计算X=gx发给B域认证服务器。A域认证服务器与B域认证服务器分别拥有注册与登录阶段两次输入的静态口令y和y',根据随机数x和X可以分别计算出动态口令d=gxy和d'=Xy'。动态口令在认证时只使用一次,攻击者即使截取了消息也无法进行重放攻击。

4.1.3 抗口令猜测攻击

用户在客户端上输入静态口令后,客户端便直接将静态口令作哈希运算把静态口令的哈希值发送出去,并将静态口令的缓存删除,动态口令由静态口令的哈希值和随机数生成。所以用户输入静态口令由客户端作哈希运算后系统中不再出现静态口令,攻击者无法对静态口令进行窃取。将静态口令通过哈希算法变成随机散列值,可以有效避免遭受口令猜测攻击;同时由于哈希函数具有单向性,也无法将静态口令的哈希值还原回静态口令。

4.1.4 防止随机密钥与静态口令的哈希值双因子泄露

如果攻击者攻击本地认证服务器的数据库,存储随机密钥和静态口令的哈希值出现泄露的情况:

1)如果用户随机密钥泄露,本地认证服务器对该用户重新注册,使用不同与以往的模糊提取算法重新生成新的随机密钥保存在认证服务器的数据库中,同时将区块链上旧的公开信息值添加注销指令,将生成的新的公开信息值记录在区块链上。用户登录认证时客户端使用与重新注册时使用的模糊提取技术配套的恢复算法恢复随机密钥,然后进行匹配识别。

2)如果用户的静态口令的哈希值泄露,本地服务器对该用户进行重新注册,用户输入新的静态口令进行哈希运算并保存到本地认证服务器的数据库内。

4.1.5 公开信息一致性

在注册阶段,客户端将用户生物特征对应的公开信息值发送到区块链服务节点组装交易,由区块链网络的共识节点通过共识算法将交易数据记录在区块链分布式账本中。由于共识算法实现了全网的区块链节点对账本的共识,因此保证了记录在区块链账本中的数据的一致性。另外,区块链具有分布式存储的高冗余特性,任何一个节点的任意一个数据被篡改将在下一次共识的时候被检测到。所以公开信息一旦记录在区块链上,用户在进行认证时使用的其本人对应的公开信息与注册时提取的公开信息是一致的。

4.2 效率分析

本节对方案的计算开销进行分析,并与同类型的基于生物特征与口令的身份认证方案如文献[4-5]方案作比较,计算开销对比如表2所示。

表2 不同方案计算开销对比Tab.2 Comparison of computation overhead for different schemes

本文方案与文献[4]方案比较,使用模糊提取操作次数相同,比文献[4]方案少1次指数运算,少2次哈希运算,多1次对称加密与解密运算,多2次签名验证操作。本文方案与文献[4]方案整体上除了最后一项指标外,前四项指标的计算开销基本相同。但是文献[4]方案提到使用模糊提取器不能抵抗主动攻击,所以本文方案使用区块链技术存储公开信息值,在用户注册与认证阶段使用了注册与查询操作生成2个交易,并附上2个签名,因此本文方案多使用2个签名的计算开销解决文献[4]方案模糊提取器易受主动攻击的威胁。

本文方案与文献[5]方案比较,使用模糊提取操作的次数相同,比文献[5]方案多2次指数运算,少10次哈希运算,多1次对称加密与解密运算,多2次签名验证操作。本文方案与文献[5]方案相比计算开销较高,原因是本方案客户端与服务器使用指数运算将静态口令协商并转化为动态口令,将随机密钥通过对称加密在网络中传输,代替文献[5]方案中使用智能卡存储大多数据的哈希值参与生物特征和动态口令的双因子认证。文献[5]方案的认证方案完全依赖智能卡存储相关数据,任何过程中智能卡丢失将造成整个方案失败。本文方案虽然增加了系统计算开销,在保证安全的基础上为用户提供了便捷的服务,避免智能卡丢失造成的安全威胁。

4.3 方案优点

1)双因子的双向认证。

在本地认证、本地跨域认证、本地异地认证三个场景中,在客户端上使用模糊提取技术的随机字符生成与恢复算法,注册阶段与认证阶段分别进行随机字符的提取与恢复,随机字符作为生物特征因子参与生物识别。方案将认证服务器上在注册阶段保存的静态口令的哈希值与客户端上用户认证时输入的静态口令的哈希值转化为动态口令,作为口令因子和对称密钥,对随机字符加密,通过对称加解密和生物因子识别认证,实现客户端与认证服务器的双向认证。

2)保护生物特征不易失效。

生物特征具有唯一性和稳定性,假如生物特征或生物特征模板丢失会导致用户特定的生物特征永久的不可使用。比如一个用户的一个指纹特征或模板泄露,将导致使用该指纹存在永久性的不安全,攻击者可以根据泄露的生物特征对用户的活动进行追踪,还可能伪装成用户进行重放攻击。本方案将生物特征模糊提取得到的随机密钥作为生物因子,而不直接使用生物特征或生物模板作为生物因子在系统内传输和认证,对生物特征及模板起到了良好的保护作用,避免用户生物特征泄露造成的永久无法使用。如果随机密钥出现泄露,添加密码算法对随机密钥进行保护,或使用新的模糊提取算法提取新的随机密钥,不会造成生物特征泄露造成的永久不可用问题。

3)用户无需使用智能卡在多域间任意客户端登录。

利用区块链技术的分布式账本功能,每个域的区块链节点都存储了经模糊提取技术密钥生成阶段产生的生物特征公开信息值。BPICP网络中的服务节点可以为客户端提供查询服务,客户端上连接有生物特征采集器。用户可以在任何客户端查询区块链分布式账本,也可以在任何连接有生物特征采集器的客户端作生物特征的模糊提取。方案不需要用户签名所以不需要将私钥提前保存到特定的客户端中,也不需要使用智能卡存储私钥和公开信息值,因而用户可以在多域间任意客户端上进行登录。

4)生物特征公开信息的全生命周期记录。

基于区块链不可篡改与分布式存储的特点,建立生物公开信息联盟链,对生物特征模糊提取得到的公开信息值进行全生命周期的记录。通过记录用户生物公开信息及其相关操作,实现了对公开信息的全周期与全面的记录。通过记录生物公开信息的区块链账本,实现对用户及客户端的监控与审计。

5 结语

针对传统的跨域认证方式较少、方案复杂,以及生物特征认证采用的模糊提取技术中公开信息值易遭受篡改等问题,本文提出了基于区块链技术的生物特征和口令双因子跨域认证方案。该方案将模糊提取技术产生的生物特征公开信息值保存在不易篡改且去中心化的区块链账本中,并分别设计了用户本地认证、本地跨域认证、异地跨域认证协议,在保证安全的基础上,实现了多域间的互联互通,避免了传统模糊提取技术易遭受主动攻击的威胁,解决了用户携带智能卡存在的易丢失和易受攻击的便携性与安全性问题。下一步将采用形式化的方法对本文方案进行逻辑验证,并改进区块链共识算法,提升区块链网络对数据达成共识的效率。

猜你喜欢

跨域口令密钥
基于多标签协同学习的跨域行人重识别
为群众办实事,崂山区打出“跨域通办”组合拳
幻中邂逅之金色密钥
幻中邂逅之金色密钥
G-SRv6 Policy在跨域端到端组网中的应用
密码系统中密钥的状态与保护*
高矮胖瘦
口 令
TPM 2.0密钥迁移协议研究
好玩的“反口令”游戏