软件学报  2016, Vol. 27 Issue (6): 1511-1522   PDF    
标准模型下隐私保护的多因素密钥交换协议
魏福山1,2, 张刚2, 马建峰1, 马传贵2     
1. 西安电子科技大学 计算机学院, 陕西 西安 710071 ;
2. 数学工程与先进计算国家重点实验室, 河南 郑州 450001
摘要: 多因素认证密钥交换协议融合多种不同的认证因素来实现强安全的身份认证和访问控制,在具有高级别安全应用需求的移动泛在服务中具有巨大的应用潜力.现阶段多因素协议的研究成果还不丰富,并且已有协议都是在随机预言模型下可证明安全的.以两方口令认证密钥交换协议、鲁棒的模糊提取器以及签名方案为基本组件提出了一个标准模型下可证明安全的多因素协议.协议中服务器不知道用户的生物模板,因此实现了对生物信息的隐私保护.与已有的随机预言模型下的多因素协议相比,该协议在满足更高安全性的同时具有更高的计算效率和通信效率,因此更满足高级别安全的移动泛在服务的应用需求.
关键词: 多因素认证密钥交换协议     标准模型     模糊提取器     签名方案    
Privacy-Preserving Multi-Factor Key Exchange Protocol in the Standard Model
WEI Fu-Shan1,2, ZHANG Gang2, MA Jian-Feng1, MA Chuan-Gui2     
1. School of Computer Science and Technology, Xidian University, Xi'an 710071, China ;
2. State Key Laboratory of Mathematical Engineering and Advanced Computing, Zhengzhou 450001, China
Foundation item: Foundation item: National Natural Science Foundation of China (61309016, 61379150, 61201220, U1135002, U1405255); National High-Tech R&D Program of China (863) (2015AA011704); China Postdoctoral Science Foundation (2014M562493); Shaanxi Province Postdoctoral Science Foundation; The Funding of Science and Technology on Information Assurance Laboratory (KJ-13-02); Fundamental Research Funds for the Central Universities (JB161501); Key Scientific and Technological Project of He’nan Province (092101210502, 122102210126)
Abstract: Multi-factor authenticated key exchange (MFAKE) protocols combine different authentication factors to realize strong secure identity authentication and access control, and have great application potential in mobile ubiquitous services with high-level security requirements. Until now, literatures about MFAKE protocols are rare and far from satisfactory. Moreover, existing multi-factor authenticated key exchange protocols are proven secure only in the random oracle model. The study proposes a MFAKE protocol using two-party password authenticated key exchange protocols, fuzzy extractors and signature schemes as building blocks. The security of this MFAKE protocol is conducted in the standard model. The server does not need to know the biometric template of the user, thus the biometric privacy of the user is preserved. Compared with existing MFAKE protocols, our protocol achieves stronger security with lower computation and communication costs. Consequently, the proposed protocol is more suitable for mobile ubiquitous services with high-level security requirements.
Key words: multi-factor authenticated key exchange protocol     standard model     fuzzy extractor     signature scheme    

随着云计算等新一代信息技术的迅猛发展,用户可以通过移动终端便捷地享受到几乎无所不在的服务.在云计算框架中,所有的资源以服务的形式交租给用户,用户可以按照需求获取相应的服务.伴随云储存和外包计算的兴起,越来越多的用户将个人数据外包于云服务器端.但是,数据所有权和管理权的分离使得用户数据面临泄露和被篡改的风险,同时网络的开放性和计算环境的不可控性易导致用户的密钥泄露,给云计算中用户的数据安全带来了巨大的安全威胁.为了保护用户的个人隐私信息以及敏感数据的安全性,必须采用高强度的认证对用户进行鉴权以实现高级别安全的访问控制,并进一步在认证的基础上建立共享的会话密钥来实现用户与云服务器之间的保密通信.当前,在云计算环境中采用了包括口令、对称密钥、公钥证书、指纹、虹网膜等多种认证方式用于实现用户鉴权.上述认证方式可以归类为3类与用户相关的认证因素:第1类认证因素是用户所能够记忆的秘密(something the user knows),例如人脑可以记忆的低熵口令;第2类认证因素是用户所拥有的设备(something the user has),比如用户持有的智能卡、硬件令牌和USB KEY等;第3类认证因素是用户自身独一无二的生物特征(something the user is),比如用户的指纹、虹膜等.研究者对如何利用某一类认证因素实现安全认证进行了大量的研究并取得了单因素认证协议的丰富成果.但是,每类认证因素都存在无法通过密码技术克服的缺陷.敌手可以利用虚假网站进行“网络钓鱼”或者通过间谍软件窃取用户的口令,而用户无法察觉;用户所持有的密码设备可能丢失或被窃取,攻击者可以通过逆向工程恢复出其中储存的密钥进而复制用户的密码设备;用户的生物特征容易被攻击者复制,复制的生物信息不仅可以在远程登录中通过服务器的验证,更为致命的是被复制的生物特征难以撤销.针对单因素认证协议存在的安全缺陷,密码学家提出了将多种认证因素结合以实现强安全的多因素认证密钥交换协议(multi-factor authenticated key exchange protocols,以下简称多因素协议).多因素协议的安全目标是只有攻击者同时获得用户所有的认证因素才能够通过认证,具有很高的安全强度.因此,多因素协议特别适用于云计算中具有高级别安全需求的移动泛在服务,一经提出就引起了广泛的关注,成为当前安全协议研究领域的一个热点问题.

目前对双因素认证协议的研究已较为成熟,本文主要关注采用3认证因素的多因素协议.2006年,Spantzel等人[1]结合口令、生物特征以及公钥加密设计了具有隐私保护功能的多因素协议;该协议通过零知识证明来实现生物特征认证,因此效率较低并且没有严格的安全性证明.2008年,著名密码学家Pointcheval等人[2]建立了多因素协议的第一个可证明安全模型,然后利用ElGamal加密算法的同态性对生物模板进行逐比特加密以实现生物特征与公钥的绑定,并在此基础上设计了一个在随机预言模型下可证明安全的多因素协议.该协议为很多后续多因素协议的研究奠定了基础.2009年,Fan等人[3]设计了基于口令、智能卡和生物特征的多因素协议,该协议通过3轮交互实现了对生物特征的隐私保护.2010年,Stebila等人[4]以BPR 2000口令模型[5]为基础,提出了新的多因素协议安全模型,并设计了使用长期口令、一次口令和生物特征的多因素协议.同年,Liu等人[6]将Pointcheval的多因素协议设计方法从两方推广到了三方,并且在随机预言模型下基于CDH假设证明了其安全性.2011年,Huang等人[7]提出了利用口令、智能卡和生物特征设计多因素协议的通用框架,通过模糊提取器(fuzzy extractor)[8]将“智能卡-口令”双因素认证协议与生物特征结合构造多因素协议,但其框架的效率有待提高.2012年,Hao等人[9]发现Pointcheval的多因素协议存在安全缺陷.攻击者只需要得到用户的口令就可以伪装服务器获得用户的生物模板,进而利用口令和生物模板获得用户的私钥,即攻击者仅获得口令就攻破了多因素协议的安全性.Hao等人的攻击也适用于Liu等人设计的三方多因素协议[6].Hao等人还指出必须对Pointcheval等人协议的设计思路进行大幅度的修改才能设计出抵抗上述攻击的多因素协议.2012年,Yang等人[10]提出了结合生物特征、智能卡和口令的多因素协议,在实现生物特征隐私性的同时还具有较低的通信效率,较适用于无线网络环境.密码学家Manulis等人[11]研究了多因素协议的模块化设计和分析方法,提出了多因素协议的安全模型,并且利用基于标签的认证(tag-based authentication)提出了多因素协议的通用构造框架.该框架将基于口令、公钥以及生物特征的单因素协议作为子协议构造多因素协议.但是,该框架实际上是将3个子协议并行独立运行,计算效率和通信效率都较低.2014年,Huang等人[12]研究了针对脆弱通信环境的多因素协议设计方法,提出了可以在低速率通信连接的情形下加速认证进程的认证协议;此外,他们还提出了在无法连接到中心服务器的情形下的Stand-alone认证协议.He等人针对之前的协议所存在的安全攻击,提出了多服务环境下的多因素认证协议[13],以及针对USB存储设备的多因素认证协议[14].Yu等人[15]在Huang等人协议[7]的基础上设计了多因素认证协议的通用框架,通过模糊保险箱(fuzzy vault)将“智能卡-口令”双因素协议与生物特征进行结合得到安全的多因素协议,并给出了可证明安全的具体实例.

当前多因素的研究主要集中在对现有的多因素认证协议进行安全性分析并进行改进,陷入了攻击-改进-攻击-改进的恶性循环,而对于安全模型的研究以及多因素协议的形式化安全证明等方面还没有得到足够的重视,并且为数不多的具有安全性证明的多因素协议都是在随机预言模型下可证明安全的.针对目前多因素研究中存在的不足,我们以两方口令认证密钥交换协议[16]、模糊提取器[17]和签名方案[18]为基本组件设计了一个多因素协议,并且基于所采用密码学组件的安全性在标准模型下证明了协议的安全性.与已有的随机预言模型下的多因素协议相比,我们的多因素协议在具有更强的安全性的同时还具有较高的通信效率和计算效率,因此我们多因素协议更符合高级别安全的移动泛在服务的应用需求.

本文第1节回顾预备知识和多因素协议安全模型.第2节给出我们所设计的多因素协议并且在标准模型下证明其安全性.第3节给出多因素协议与其他相关协议的安全性和效率比较.最后第4节总结全文.

1 预备知识 1.1 模糊提取器

模糊提取器最早由Dodis等人[8]在2004年提出,主要用于解决生物模板认证的问题.模糊提取器允许从一个生物模板W中产生一个生物密钥和一个公开参数,之后可以利用公开参数和与模板W相近的另一个生物模板W′恢复出生物密钥.下面我们回顾关于模糊提取器的相关定义[19].

定义 1(度量空间(metric space)). 度量空间(M,d)是一个定义了距离函数d: M ×MZ+∪{0}的有限集合M,其中距离函数d满足下述性质:

正定性:d(x,y)≥0,且d(x,y)=0当且仅当x=y;

对称性:d(x,y)=d(y,x);

三角不等式:d(x,z)≤d(x,y)+d(y,z).

在生物认证中,我们通常假设生物模板在适当的距离函数定义下构成了一个度量空间.汉明距离是生物认证中最常用的距离函数.在定义模糊提取器时通常不需要具体说明所使用的距离函数,因为大多数距离函数都满足模糊提取器的定义需求.

定义 2(统计距离(statistical distance)). 设X1X2是定义在有限集S上的两个随机变量.定义X1X2之间的统计距离为$SD({X_1},{X_2}) = {1 \over 2}\sum\nolimits_{s \in {\cal S}} {|\Pr [{X_1} = s] - \Pr [{X_2} = s]|} .$如果两个随机变量X1X2之间的统计距离至多为ε,我们称X1X2ε接近的.

定义 3(最小熵(min-entropy)). 一个随机变量X的最小熵定义为${H_\infty }(X) = - \log ({\max _x}\Pr [X = x]).$

定义 4(鲁棒的模糊提取器(robust fuzzy extractor)). 一个定义在度量空间(M,d)上的(m,l,t,e)模糊提取器由两个有效的随机算法(Gen,Rep)组成,其中生物密钥产生算法Gen的输入为一个生物模板WM,输出为一个生物密钥R∈{0,1}l和一个公共参数P∈{0,1}*.生物密钥复制算法Rep的输入为另一个生物模板W′∈M以及公共参数P∈{0,1}*,输出为一个{0,1}l的比特串,并且算法满足以下条件:

(1) 正确性:如果d(W,W′)≤t并且(R,P)是Gen(W)的输出,那么Rep(W′,P)=R;

(2) 安全性:对于M上最小熵为m的所有随机变量,即使在公开P的条件下,R与{0,1}l上的均匀分布之间的统计距离至多为e;

(3) 鲁棒性:对于敌手伪造的公共参数P′≠P,算法Rep(W′,P)≠⊥的概率是可忽略的,即对于敌手伪造的公共参数P′,算法Rep(W′,P′)将以极大的概率停止运行.

1.2 安全模型

本节对Pointcheval等人提出的多因素协议安全模型[2]进行扩展.我们将在第2节给出所设计的多因素协议在此模型下的安全证明.

多因素协议的参与者包括用户和服务器两类.为了简便起见通常假设认证服务器S是唯一的.每个参与者可以激活多个协议实例并且并行运行多个会话实例.我们用$\prod _U^i$表示参与者U的第i个会话实例.定义实例$\prod _U^i$的会话标识$sid_U^i$为$\prod _U^i$发送和接受的所有消息(除了最后一条消息)的级联.我们用伙伴标识$pid_U^i$表示实例$\prod _U^i$想要与之通信的意定通信方的身份.此外,我们还定义布尔函数$acc_U^i$用于表示会话结束时实例$\prod _U^i$是否接受协议运行.

每个用户C拥有一个由认证因素组成的多元组${t_C} = ({{\cal W}_C},s{k_C},p{w_C}),$其中,WC是其生物模板的概率分布,skC是用户C所持有的高熵密钥,pwC是用户C从口令字典空间D中随机选择的低熵口令.认证服务器S持有一个认证因素的列表${t_S} = \left\langle {{t_S}[C]} \right\rangle $,其中每条记录${t_S}[C]$对应于某一个用户且${t_S}[C]$是由tC通过变换得到.认证服务器S也拥有高熵的私钥skS,其对应的公钥pwS在整个系统内是公开的,即每个用户都知道服务器的公钥pwS.

定义 5(伙伴(partnering)). 两个实例$\prod _U^i$和$\prod _{U'}^j$被称为伙伴,如果以下条件能够满足:

(1) $sid_U^i = sid_{U'}^j \ne null;$(2) $acc_U^i = acc_{U'}^j = 1;$(3) $pid_U^i = U'$并且$pid_{U'}^j = U.$

多因素协议的攻击者A是一个概率多项式时间的攻击者.攻击者A控制了用户和认证服务器之间的通信信道,可以窃听所有消息并且任意修改或伪造消息.攻击者A的攻击能力通过以下的谕示询问来模拟:

$Execute(\prod _C^i,\prod _S^j):$此询问模拟攻击者A被动窃听用户实例$\prod _C^i$和服务器实例$\prod _S^j$之间通信消息的能力.在会话结束后,攻击者A将得到本次会话所有交互的消息.

$Send(\prod _U^i,m):$此询问模拟攻击者A对于实例$\prod _U^i$的主动攻击.攻击者A冒充其余的参与者给实例$\prod _U^i$发送消息m,并得到实例$\prod _U^i$接收到消息m后执行协议所返回的消息.

$Reveal(\prod _U^i):$此询问模拟已知密钥攻击或会话密钥丢失.攻击者A通过此询问可以获得用户实例$\prod _U^i$所持有的会话密钥.

Corrupt(S):此询问模拟对认证服务器的入侵攻击,将导致认证服务器被腐化.攻击者A将得到认证服务器S的私钥skS以及所持有的认证因素列表${t_S} = \left\langle {{t_S}[C]} \right\rangle .$

Corrupt(C):对于用户的腐化询问有3类:

● $Corrupt(C,s{k_C},p{w_C}):$攻击者A通过此腐化询问将得到用户C的私钥skC以及口令pwC;

● $Corrupt(C,p{w_C},{W_C}):$攻击者A通过此腐化询问将得到用户C的口令pwC以及一个有效的生物模板WC;

● $Corrupt(C,s{k_C},{W_C}):$攻击者A通过此腐化询问将得到用户C的私钥skC以及一个有效的生物模板WC.

$Test(\prod _U^i):$此询问不模拟攻击者A的实际攻击能力,而是用于衡量协议会话密钥的语义安全.对于参与者实例$\prod _U^i,$如果该实例没有生成会话密钥,那么返回无定义的符号⊥;否则进行一次均匀的抛币,如果抛币结果是1,则返回实例$\prod _U^i$的真实会话密钥,如果抛币结果是0,那么返回一个与会话密钥等长的随机数.攻击者A需要猜测抛币的结果,即猜测其获得的是真实的会话密钥还是随机数.

模型中需要限制攻击者A只能对新鲜的会话实例$\prod _U^i$进行$Test(\prod _U^i)$询问,否则攻击者A将轻易的赢得上述攻击游戏.我们称一个用户C被完全腐化(fully corrupted)当且仅当攻击者A得到该用户的所有认证因素,即攻击者A得到用户C的私钥skC,口令pwC以及一个有效的生物模板WC.我们称认证服务器S被腐化当且仅当攻击者A进行了Corrupt(S)查询.

定义 6(新鲜性(freshness)). 一个实例$\prod _U^i$被称为是新鲜的,如果以下条件能够满足:

(1) 在实例$\prod _U^i$接受协议运行并产生会话密钥之前,无论是参与者U还是实例$\prod _U^i$的伙伴都没有被完全腐化;(2) 攻击者A没有对实例$\prod _U^i$或者其伙伴实例(假如存在的话)进行Reveal查询.

注意,上述的新鲜性定义刻画了前向安全,因为我们仅限制在会话密钥产生之前会话的参与者没有被完全腐化,在会话密钥产生之后即使用户和认证服务器都被完全腐化也不会改变会话的新鲜性.

多因素协议的安全目标包括会话密钥安全和认证安全.在定义会话密钥安全的时候,给定攻击者A所有谕示询问的能力,但是限定攻击者A只能对新鲜的会话进行Test询问.攻击者的目标是猜测模拟Test询问时抛币的结果.如果攻击者A成功猜测到抛币的结果,则认为A成功,记此事件为Succ.给定一个多因素协议P,攻击者A破坏协议P会话密钥安全的优势定义为$Adv_{{\cal P},{\cal D}}^{mfake}({\cal A}) = 2 \cdot \Pr [Succ] - 1.$

定义 7(会话密钥安全(session key security)). 给定一个多因素协议P,如果对于任意的概率多项式时间的攻击者A,其破坏协议P会话密钥安全的优势$Adv_{{\cal P},{\cal D}}^{mfake}({\cal A})$至多比$k{{q}_{send}}/k{{q}_{send}}\left| D \right|$大一个可忽略的量,则称多因素协议P满足会话密钥安全,其中qsend是敌手进行主动攻击的次数,|D|表示字典空间的规模,k为常数.

一个多因素协议在满足会话密钥安全的同时还应该提供认证安全从而验证参与者身份的有效性.认证安全保证了除非某个会话参与者被攻击者A完全腐化,否则攻击者A无法仿冒该参与者.我们称攻击者A破坏了多因素协议P的用户认证安全,假如存在一个服务器实例$\prod _S^i$接受了伙伴标识为用户C的某次会话运行,但是用户C被没有被攻击者A完全腐化.我们用$Succ_{CAuth}^{mfake}({\cal A})$来表示攻击者A破坏协议P用户认证安全的优势.

定义 8(用户认证安全(client authentication security)). 给定一个多因素协议P,如果对于任意的概率多项式时间的攻击者A,其破坏协议P用户认证安全的优势$Succ_{CAuth}^{mfake}({\cal A})$至多比$k{{q}_{send}}/k{{q}_{send}}\left| D \right|$大一个可忽略的量,则称多因素协议P满足用户认证安全,其中qsend是敌手进行主动攻击的次数,|D|表示字典空间的规模,k为常数.

我们可以采用与用户认证安全类似的方式来定义服务器认证安全.为了简便起见,我们略去了服务器认证安全的定义.如果一个多因素协议P同时满足用户认证安全和服务器认证安全,则称协议P实现了双向认证.需要说明的是与原模型不同,这里定义的双向认证的安全强度更高,并且刻画了密钥泄漏仿冒(key compromise impersonation,简称KCI)攻击.具体来说,我们的定义允许攻击者A对认证服务器完全腐化,然后仿冒某个用户C来欺骗服务器,如果欺骗成功则认为攻击者A破坏了服务器认证安全,这里唯一的限制是用户C没有被完全腐化.攻击者A可以完全腐化某个参与者然后进行反向的冒充,如果冒充成功则认为攻击者A成功,因此扩展模型中的认证安全涵盖了密钥泄漏仿冒攻击.

2 标准模型下的多因素协议 2.1 协议描述

我们的协议是在共同参考串(common reference string)模型下[16]设计的.在共同参考串模型下,系统中所有的参与者可以访问由一个可信第三方选择的公开参数.本文中共同参考串模型下的系统公开参数包括Gq,q,g,h,pk,UH,PRF,H,其中,Gq是一个阶为大素数q的循环群,g,h为随机选择的Gq的两个生成元,且h关于g的离散对数是难解的;pk是定义在群Gq上的一个自适应选择密文安全(adaptive choose ciphertext secure,简称CCA安全)的公钥加密算法E的公钥,需要说明的是在系统中任何人都不知道pk对应的私钥;$UH:{G_q} \to {\{ 0,1\} ^l}$是一个从通用哈希函数簇UH中随机选择的通用哈希函数;PRF是一个伪随机函数簇,用PRFs(a)表示密钥种子为s、输入为a时的函数输出;$H:{\{ 0,1\} ^*} \to {\{ 0,1\} ^l}$是一个防碰撞的哈希函数,其中,l是安全参数.

在注册阶段,用户C从字典空间D中随机选择其口令pwC.不失一般性,我们假设$p{w_C} \in Z_q^*.$用户C采样一个生物模板WC并通过模糊提取器的生物密钥产生算法计算$Gen({W_C}) = ({R_c},{P_C}),$其中,Rc是产生的生物密钥,PC是用来恢复Rc的公开字符串.此外,用户C拥有用于签名的公私钥对(pkC,skC).用户C将(pwC,RC,PC,pkC)通过安全的信道发送给服务器S,服务器S收到该消息后将关于用户C的记录保存在其数据库中.服务器S同样拥有用于签名的公私钥对(pkS,skS),其中系统中的所有用户都知道服务器S的公钥pkS.

我们所设计的多因素协议在密钥交换阶段共有3轮消息交互,详细步骤如图 1所示,具体的流程如下.

Fig. 1 An MFAKE protocol in the standard model 图 1 标准模型下的多因素协议

第1轮:用户C选择一个随机数$x \in Z_q^*,$然后利用其口令pwC计算${X_1} = {g^x}$以及${X_2} = {h^x}{g^{p{w_C}}}.$用户C发送消息(C,X1,X2)给服务器S.

第2轮:服务器S接收到消息(C,X1,X2)后,首先选择两个随机数${\lambda _1},{\lambda _2} \in Z_q^*,$然后计算$\mu = {g^{{\lambda _1}}}{h^{{\lambda _2}}},$ $X_2^* = {X_2}{g^{ - p{w_C}}}$以及$\delta ={{X}_{1}}^{{{\lambda }_{1}}}X_{2}^{*{{\lambda }_{2}}}.$这里,d是标准模型下两方口令密钥交换协议计算得到的会话密钥.服务器S利用当前的会话标识$sid = ({X_1},{X_2},\mu ,{P_C},C,S)$计算${K_1} = PR{F_\delta }(sid,1) \oplus PR{F_{{R_C}}}(sid,1),$其中,δRc分别是伪随机函数簇的密钥种子,而(sid,1)为伪随机函数的输入.服务器S然后利用其私钥skSK1进行签名并得到签名$\sigma s = SIGsign({K_1},s{k_S}).$服务器Sδ作为输入计算通用哈希函数的输出$r = {\cal U}{\cal H}(\delta )$并计算消息摘要$\sum = H(sid,p{w_C},{K_1},{\sigma _S}).$最后,服务器Sr作为随机输入对消息摘要S利用CCA安全的加密算法E的公钥pk进行加密并计算密文$\omega = {E_{pk}}[\sum ,r],$最终发送消息$(S,\mu ,{P_C},\omega ,{\sigma _S})$给用户C.

第3轮:用户C接收到消息$(S,\mu ,{P_C},\omega ,{\sigma _S})$后,首先利用m计算两方口令认证密钥交换协议的秘密值$\delta = {\mu ^x};$用户C然后采样一个生物模板$W_C^*$并利用模糊提取器的生物密钥复制算法计算${R_C} = Rep({P_C},W_C^*).$用户C计算${K_1} = PR{F_\delta }(sid,1) \oplus PR{F_{{R_C}}}(sid,1)$并验证签名σS是否有效.如果签名无效则拒绝协议运行,否则用户C计算r= UH(δ)并利用r作为随机输入计算密文${E_{pk}}[\sum ,r],$其中,$\sum = H(sid,p{w_C},{K_1},{\sigma _S}).$如果${E_{pk}}[\sum ,r]$与服务器S发送的密文w不相等,那么用户C终止本次会话;否则用户C计算${K_2} = PR{F_\delta }(sid,\omega ,{\sigma _S},2) \oplus PR{F_{{R_C}}}(sid,\omega ,{\sigma _S},2)$并利用其私钥skCK2计算签名${\sigma _C} = SIGsign({K_2},s{k_C}).$用户C最后计算会话密钥$SK = PR{F_\delta }(sid,\omega ,{\sigma _S},{\sigma _C},3) \oplus PR{F_{{R_C}}}(sid,\omega ,{\sigma _S},{\sigma _C},3),$发送消息(C,σC)给服务器S并接受本次会话.

服务器S接收到消息(C,σC)后,计算${K_2} = PR{F_\delta }(sid,\omega ,{\sigma _S},2) \oplus PR{F_{{R_C}}}(sid,\omega ,{\sigma _S},2)$并验证签名σC的有效性.如果签名σC无效,则服务器S终止本次会话;否则,服务器S计算会话密钥$SK = PR{F_\delta }(sid,\omega ,{\sigma _S},{\sigma _C},3) \oplus PR{F_{{R_C}}}(sid,\omega ,{\sigma _S},{\sigma _C},3)$并接受本次会话.

注 1:在协议的第2轮消息中要求服务器S同时发送签名σS和密文w的原因在于,我们需要通过w来证明服务器S知道口令;σS尽管是对会话密钥验证值的签名,但恶意攻击者在不知道口令的情况下,可以直接随机选择$y \in Z_q^*$并且令m=gy从而与用户计算出共同的秘密值gxy.

注 2:为了协议简便起见,我们的协议中并没有给出模糊提取器和签名的具体算法,任何在标准模型下可证明安全的签名算法以及在标准模型下鲁棒的模糊提取器都可以满足我们所提出的多因素协议的要求.

注 3:根据文献[8]中模糊提取器的构造方法,服务器在拥有(Rc,PC)时无法恢复出用户的生物模板WC,因此我们的协议可以实现对用户生物信息的隐私保护.关于模糊提取器构造的更多细节,参见文献[8].

2.2 安全性证明

本节给出多因素协议的安全性证明.通过定理1证明多因素协议的会话密钥安全和认证安全.

定理 1. 设P是第2.1节的多因素协议,A是进行了qsend次主动攻击的概率多项式时间的攻击者.假设DDH假设在循环群Gq中成立,协议中所使用的公钥加密算法E是CCA安全的,签名算法对于适应性选择消息是存在性不可伪造的,并且P中所使用的是一个鲁棒的模糊提取器,那么敌手A攻击本文的多因素协议的会话密钥安全和认证安全的优势的上界分别为

$Adv_{{\cal P},{\cal D}}^{mfake}({\cal A}) \le {{{q_{send}}} \over {\left| {\cal D} \right|}} + neg(l),$
$Succ_{CAuth}^{mfake}({\cal A}) \le {{{q_{send}}} \over {\left| {\cal D} \right|}} + neg(l),$
$Succ_{SAuth}^{mfake}({\cal A}) \le {{{q_{send}}} \over {\left| {\cal D} \right|}} + neg(l),$

其中,neg(l)表示关于安全参数l的一个可忽略函数.

证明:我们通过混合实验的方式来证明定理1.混合实验从真实的攻击游戏开始,然后逐步修改每个混合实验中的模拟规则,直到攻击者的攻击优势为0的混合实验结束.对两个相邻的混合实验,我们将计算攻击者在这两个混合实验中优势差距的上界,最终计算出攻击者攻击多因素协议的优势上界.我们用Di表示混合实验ExpiExpi+1的差别.对于混合实验Expi,我们定义以下的事件:

$S_i^{mfake}:$此事件用于刻画多因素协议的会话密钥安全,此事件表示攻击者A正确猜测到Test查询中的随机抛币结果,即攻击者A赢得了会话密钥安全的攻击游戏;

$A_i^{CAuth}:$此事件用于刻画多因素协议的用户认证安全,此事件表示攻击者A成功仿冒了一个没有被完全腐化的用户并且令服务器接受了仿冒的会话运行,即攻击者A破坏了多因素协议的用户认证安全;

$A_i^{SAuth}:$此事件用于刻画多因素协议的服务器认证安全,此事件表示攻击者A成功仿冒了未被完全腐化的服务器实例并与某个用户建立了会话,即攻击者A破坏了多因素协议的服务器认证安全.

混合实验Exp0:此混合实验模拟了针对多因素协议攻击游戏的真实运行.根据定义有:

$Adv_{{\cal P},{\cal D}}^{mfake}({\cal A}) = 2\Pr [S_0^{mfake}] - 1,$
$Succ_{CAuth}^{mfake} = \Pr [A_0^{CAuth}],$
$Succ_{SAuth}^{mfake} = \Pr [A_0^{SAuth}].$

混合实验Exp1:从此混合实验开始,我们将对攻击者A通过Execute询问实施的被动攻击的会话模拟规则进行修改.首先令用户C在计算第1轮的消息的时候不使用其真实的口令pwC,而是选择口令空间之外的一个虚假口令$pw_C^*,$即用户C正常计算X1=gx,但是令${X_2} = {h^x}{g^{pw_C^*}}.$相应地,服务器S在接收到消息(C,X1,X2)时,同样采用虚假口令$pw_C^*$进行会话模拟.我们可以将真实口令pwC和虚假口令$pw_C^*$看做针对ElGamal加密算法的两个挑战消息,因此混合实验Exp0Exp1的差别至多是攻击者A攻破ElGamal加密算法的CPA安全性的优势,而ElGamal加密算法的CPA安全性又可以归约到DDH假设.我们有:

${\Delta _0} \le neg(l).$

混合实验Exp2:在此混合实验中,我们继续修改对Execute询问的模拟规则.我们令服务器S在接收到消息(C,X1,X2)时,正常计算$\mu = {g^{{\lambda _1}}}{h^{{\lambda _2}}},$但是不计算$X_2^*,$而是直接从循环群Gq中随机选择δ.根据文献[16]中证明的结论知,当密文(X1,X2)不是对真实口令pwC的有效密文时,δ的分布与循环群Gq上的均匀分布是统计不可区分的.我们有:

${\Delta _1} \le neg(l).$

混合实验Exp3:在此混合实验中,我们继续修改对Execute询问的模拟规则.进一步令服务器S在计算r=UH(δ)时不通过通用哈希函数计算,而是直接从相应的值域中随机选择.在上一个混合实验中,我们已经从循环群Gq中随机选择δ的取值.根据通用哈希函数的性质可知,当其输入为随机值时,通用哈希函数簇的输出与其值域中的均匀分布是统计不可区分的.我们有:

${\Delta _2} \le neg(l).$

混合实验Exp4:在此混合实验中,继续修改对Execute询问的模拟规则.令服务器S在计算Σ时,不输入真实的口令,即令$\sum = h(sid,{K_1},{\sigma _S}).$为了保证模拟的一致性,要求用户C在验证密文$\omega = {E_{pk}}[\sum ,r]$的有效性时,采用与服务器S相同的方式计算Σ.混合实验Exp4与上一个混合实验的差别仅仅在于密文w是对$h(sid,p{w_C},{K_1},{\sigma _S})$的加密还是对$h(sid,{K_1},{\sigma _S})$的加密.由于公钥加密算法E是CCA安全的,因此混合实验Exp3Exp4的差别至多是攻击者A破坏公钥加密算法E的CCA安全性的攻击优势.实际上,这里只需要用到公钥加密算法E的CPA安全性,因为对此混合实验的模拟不需要用到解密预言机.我们有:

${\Delta _3} \le neg(l).$

混合实验Exp5:在此混合实验中,我们最后一次修改对Execute询问的模拟规则.令服务器S在计算K1,K2以及SK时,不通过伪随机函数簇PRF计算,而是直接从相应的值域中随机选择上述秘密值.为了保证模拟的一致性,要求用户C采用服务器S选定的K1,K2以及SK的值.由于δ是从循环群Gq中随机选择的,而由模糊提取器的性质可知生物密钥RC的分布与均匀分布是统计不可区分的,因此由 伪随机函数簇PRF的定义可知,攻击者A区分两个混合实验Exp4Exp5的概率是可忽略的.我们有:

${\Delta _4} \le neg(l).$

到目前为止,我们已经完成了对被动会话的模拟修改,使得在被动会话中不会泄露任何关于口令的信息(被动会话的模拟都采用虚假口令或者避免包含真实的口令),并且会话密钥是随机选择的.由于生物密钥和签名私钥都是高熵密钥,因此我们在被动会话中并没有修改对这两类密钥的模拟规则.通过上述模拟,攻击者A通过Execute询问将不会得到口令的任何信息,并且攻击者A区分会话密钥的优势为0.需要强调的是我们仅仅修改了被动会话的模拟规则,对攻击者A通过Send询问进行的主动攻击依然根据多因素协议的描述来模拟.但是对于攻击者A通过Send询问进行的主动攻击,假如攻击者A只是如实传递消息而不对消息进行任何修改,对于这一类主动攻击的会话的模拟规则与对于Execute询问的模拟规则相同.此外,从下一个实验开始,我们在产生公开参数h和公钥pk时记录相应的密钥作为陷门信息.上述修改不会改变攻击者A的视图.

混合实验Exp6:从此混合实验开始,我们将对攻击者A通过Send询问进行的主动攻击的模拟规则进行修改.对于某个用户C,如果攻击者A对该用户进行了Corrupt(C,pwC,WC)询问,即攻击者腐化了用户C的口令和生物模板,此时我们修改服务器S对攻击者A针对用户C进行的Send询问的模拟规则.当服务器S接收到攻击者A发送的$Send(S,(C,{X_1},{X_2}))$询问后,按照协议的描述进行模拟并返回相应的消息.在攻击者A发送的Send(S,(C,σC))询问时,服务器S不验证签名的有效性并直接拒绝本次协议运行.混合实验Exp6Exp5是完全相同的,除非攻击者A伪造了一个有效的签名,但是被服务器S拒绝.由于协议中所采用的签名方案是对适应性选择攻击存在性不可伪造的,攻击者A区分两个混合实验Exp6Exp5的概率至多是破坏签名体制不可伪造性的优势.则有:

${\Delta _5} \le neg(l).$

混合实验Exp7:在此混合实验中,我们继续对攻击者A通过Send询问进行的主动攻击的模拟规则进行修改.对于某个用户C,如果攻击者A对该用户进行了Corrupt(C,pwC,WC)询问,即攻击者腐化了用户C的口令和签名私钥.当服务器S接收到攻击者A发送的$Send(S,(C,{X_1},{X_2}))$询问后,按照协议的描述进行模拟,但是在计算K1,K2以及SK时不通过伪随机函数簇PRF计算,而是在相应的值域中随机选择.其余的模拟规则与协议描述完全相同.进一步,在攻击者A发送的$Send(S,(C,{\sigma _C}))$询问时,服务器S不验证签名的有效性并直接拒绝本次协议运行.混合实验Exp7Exp6是完全相同的,除非攻击者A成功猜测到K2的值并进行了签名,但是该签名被服务器S拒绝.此时攻击者A拥有用户C的签名密钥,但是生物密钥对于攻击者A是完全随机的,由伪随机函数簇PRF的性质得知攻击者A成功猜测到随机值K2的概率是可忽略的,因此我们有:

${\Delta _6} \le neg(l).$

混合实验Exp8:在此混合实验中,我们继续对攻击者A通过Send询问进行的主动攻击的模拟规则进行修改.对于某个用户C,如果攻击者A对该用户进行了Corrupt(C,skC,WC)询问,即攻击者腐化了用户C的生物模板和签名私钥.当服务器S接收到攻击者A发送的$Send(S,(C,{X_1},{X_2}))$询问后,利用记录的h所对应的私钥对密文(X1,X2)进行解密,如果解密得到的是真实的口令,我们将结束整个攻击游戏的模拟并且宣布攻击者A获胜.显然,上述修改只是增加了一种攻击者A获胜的方式,攻击者A获胜的优势将会增加.我们有:

$\Pr [S_8^{mfake}] \ge \Pr [S_7^{mfake}],$
$\Pr [A_8^{CAuth}] \ge \Pr [A_7^{CAuth}],$
$\Pr [A_8^{SAuth}] \ge \Pr [A_7^{SAuth}].$

混合实验Exp9:在此混合实验中,我们继续对攻击者A通过Send询问进行的主动攻击的模拟规则进行修改.对于某个用户C,如果攻击者A对该用户进行了Corrupt(C,skC,WC)询问,即攻击者腐化了用户C的生物模板和签名私钥.当服务器S接收到攻击者A发送的$Send(S,(C,{X_1},{X_2}))$询问后,利用记录的h所对应的私钥对密文(X1,X2)进行解密,如果解密得到的不是正确的口令,我们将从循环群Gq中随机选择d,剩余的模拟则按照协议描述执行.当攻击者A发送$Send(S,(C,{\sigma _C})),$我们令服务器S不验证签名的有效性并直接拒绝本次协议运行.由于(X1,X2)不是真实口令的有效密文,因此δ值将在Gq中均匀分布,因此攻击者A能够猜测到随机值δ并且正确计算K2的概率是可忽略的.我们有:

${\Delta _8} \le neg(l).$

混合实验Exp10:在此混合实验中,我们最后一次修改对攻击者A通过Send询问进行的主动攻击的模拟规则进行修改.对于某个用户C,如果攻击者A仿冒未被腐化的服务器S进行了$Send(C,start)$询问,用户C随机选择X1,X2并将消息(C,X1,X2)返回给攻击者.当用户C接收到攻击者A返回的$Send(C,(S,\mu ,{P_C},\omega ,{\sigma _S}))$询问时,我们令用户C直接拒绝本次会话运行.显然,由于服务器S未被腐化,因此攻击者A无法得到服务器S的签名私钥skS,与混合实验Exp6中的分析类似,混合实验Exp9Exp8的差别至多是攻击者A攻破签名方案的存在性不可伪造的优势.我们有:

${\Delta _9} \le neg(l).$

在混合实验Exp10中,攻击者A通过Execute询问进行的被动会话中都不包含真实口令的信息,并且会话密钥是随机选择的;对于攻击者A通过Send询问进行的主动攻击,只有在攻击者A不知道口令并且在第1条消息中正确猜测到口令的情况下才令攻击者A赢得攻击游戏,其余的所有主动攻击都将被拒绝.而攻击者A正确猜测口令的概率为${{{q_{send}}} \over {\left| {\cal D} \right|}}.$因此,我们有:

$\Pr [S_{10}^{mfake}] \le {{{q_{send}}} \over {\left| {\cal D} \right|}},$
$\Pr [A_{10}^{CAuth}] \le {{{q_{send}}} \over {\left| {\cal D} \right|}},$
$\Pr [A_{10}^{SAuth}] \le {{{q_{send}}} \over {\left| {\cal D} \right|}}.$

综上,定理1得证.

3 协议性能比较

据我们所知,Pointcheval等人的协议[2]是目前仅有的一个采用口令、高熵密钥和生物信息实现认证的多因素协议.本节将对多因素协议与Pointcheval等人的协议(简称PZ协议)从效率和安全性两个方面进行比较.

在效率方面,我们主要从计算代价和通信代价两个方面来衡量.我们采用标准模型下可证明安全的签名方案[18]、标准模型下CCA安全的DHIES公钥加密算法[20]以及标准模型下可证明安全的鲁棒的模糊提取器[17]来对多因素协议进行实例化.通信代价主要通过通信带宽和通信轮数来衡量.用户和服务器的身份可由32比特的字符串表示,循环群中的元素可由160比特长的字符串表示,哈希函数、通用哈希函数以及伪随机函数的输出长度都设为160比特.模糊提取器中的公开参数PC的长度为62 464比特.由于PZ协议采用了逐比特加密的方式来认证生物模板,通常假设生物模板的长度为1 024比特,而其中的认证标签的长度为4比特.计算代价方面,我们只考虑较为耗时的模幂运算(记为e)并将公钥加密和签名方案的代价通过模幂运算的个数来衡量.由模糊提取器的高效性可知,Gen算法和Rep算法的计算代价和哈希函数的计算代价相当,因此我们略去该部分运算的代价.DHIES算法加密时需要2个模幂运算,而签名算法在签名时需要1个模幂运算,验证签名时需要1个模幂运算和1个双线性对运算.注意,形如gxhy的模幂运算的乘积利用并行加速算法可以通过1个模幂运算的代价求得,并且1个双线性对的运算代价约等价于4个模幂运算.从表 1可以看出,我们的标准模型下的多因素协议无论是在计算效率还是通信效率方面都远高于PZ协议.但是需要说明的是,PZ协议之所以效率低主要是假设生物模板是公开的,并且采用了逐比特加密的方式来认证生物信息.

Table 1 Complexity comparison with Pointcheval et al.'s MFAKE protocol 表 1 与Pointcheval等人多因素协议的复杂性比较

表 2总结了多因素协议在标准模型下是安全的,而PZ协议是在随机预言模型下可证明安全的.我们的协议具有双向认证并且真正实现了多因素安全,而PZ协议仅实现了用户向服务器的单向认证,这也是PZ协议被Hao等人[9]所攻击的根本原因.尽管Pointcheval等人声称PZ协议中服务器储存对生物模板进行逐比特加密的密文,从而实现了对用户生物模板的隐私保护,但Hao等人攻击表明该结论是错误的.此外,多因素协议还可以抵抗密钥泄漏仿冒攻击,因此比PZ协议具有更强的安全性.需要说明的是PZ协议中假设生物模板是公开的,而我们的协议中假设生物模板是秘密的.虽然目前研究者对于生物模板究竟应该被假设为公开合理还是假设为秘密合理争论不定,尚未形成统一的意见[9, 11], 但是生物模板是公开的假设下多因素协议的设计难度更大.这是我们的协议相比PZ协议的一个不足之处.

Table 2 Security comparison with Pointcheval et al.’s MFAKE protocol 表 2 与Pointcheval等人多因素协议的安全性比较

4 结束语

本文以模糊提取器为工具设计了一个具有隐私保护功能的多因素认证密钥交换协议,并且在标准模型下基于DDH假设证明了其安全性.我们的协议真正实现了多因素协议的安全目标并且具有前向安全;此外,在认证过程中服务器不需要得到用户的生物模板,因此更好地保护了用户的隐私.安全性和效率比较表明我们的多因素协议不仅具有更高的安全性,同时具备更高的计算和通信效率.

致谢: 在此,我们向匿名的审稿老师的工作表示感谢.
参考文献
[1] Spantzel A, Squicciarini A, Bertino E. Privacy preserving multi-factor authentication with biometrics. In: Proc. of the 2nd ACM Workshop on Digital Identity Management (DIM 2006). New York: ACM, 2006. 63-72. [doi: 10.1145/1179529.1179540]
[2] Pointcheval D, Zimmer S. Multi-Factor authenticated key exchange. In: Bellovin M, et al., eds. Proc. of the Applied Cryptography and Network Security (ACNS 2008). LNCS 5037, Berlin: Springer-Verlag, 2008. 277-295. [doi: 10.1007/978-3-540-68914-0_17]
[3] Fan CI, Lin YH. Provably secure remote truly three-factor authentication scheme with privacy protection on biometrics. IEEE Trans. on Information Forensics and Security, 2009, 4 (4) :933–945 . [doi:10.1109/TIFS.2009.2031942]
[4] Stebila D, Udupi P, Chang S. Multi-Factor password-authenticated key exchange. In: Proc. of the CRPIT 2010. New York: ACM, 2010. 56-66.
[5] Bellare M, Pointcheval D, Rogaway P. Authenticated key exchange secure against dictionary attack. In: Preneel B, ed. Proc. of the EUROCRYPT 2000. LNCS 1807, Berlin: Springer-Verlag, 2000. 139-155. [doi: 10.1007/3-540-45539-6_11]
[6] Liu Y, Wei FS, Ma CG. Multi-Factor authenticated key exchange protocol in the three-party setting. In: Lai XJ, et al., eds. Proc. of the 6th China Int'l Conf. on Information Security and Cryptology (Inscrypt 2010). LNCS 6584, Berlin: Springer-Verlag, 2011. 255-267. [doi: 10.1007/978-3-642-21518-6_18]
[7] Huang XY, Yang X, Chonka A, Zhou JY, Deng RH. A generic framework for three-factor authentication: Preserving security and privacy in distributed systems. IEEE Trans. on Parallel and Distributed Systems, 2011, 22 (8) :1390–1396 . [doi:10.1109/TPDS.2010.206]
[8] Dodis Y, Reyzin L, Smith A. Fuzzy extractors: How to generate strong keys from biometrics and other noisy data. In: Cachin C, Camenisch J, eds. Advances in Cryptology-CEUROCRYPT 2004. LNCS 3027, Berlin: Springer-Verlag, 2004. 523-540. [doi: 10.1007/978-3-540-24676-3_31]
[9] Hao F, Clarke D. Security analysis of a multi-factor authenticated key exchange protocol. In: Bao F, Samaratieds P, Zhou JY, eds. Proc. of the Applied Cryptography and Network Security (ACNS 2012). LNCS 7341, Berlin: Springer-Verlag, 2012. 1-11. [doi: 10.1007/978-3-642-31284-7_1]
[10] Yang DX, Yang B. A novel multi-factor authenticated key exchange scheme with privacy preserving. Journal of Internet Services and Information Security, 2012, 1 (2/3) :44–56 .
[11] Fleischhacker N, Manulis M, Sadrazodi A. Modular design and analysis framework for multi-factor authentication and key exchange. In: Chen LQ, Mitchell C, eds. Proc. of the Security Standardisation Research (SSR 2014). LNCS 8893, Berlin: Springer- Verlag, 2014. 190-214. [doi: 10.1007/978-3-319-14054-4_12]
[12] Huang XY, Xiang Y, Bertino E, Zhou J, Xu L. Robust multi-factor authentication for fragile communications. IEEE Trans. on Dependable and Secure Computing, 2014, 11 (6) :568–581 . [doi:10.1109/TDSC.2013.2297110]
[13] He DB, Wang D. Robust biometrics-based authentication scheme for multi-server environment. IEEE Systems Journal, 2015, 9 (3) :816–823 . [doi:10.1109/JSYST.2014.2301517]
[14] He DB, Kumar N, Lee JH, Sherratt RS. Enhanced three-factor security protocol for consumer USB mass storage devices. IEEE Trans. on Consumer Electronics, 2014, 60 (1) :30–37 . [doi:10.1109/TCE.2014.6780922]
[15] Yu J, Wang G, Mu Y, Gao W. An efficient generic framework for three-factor authentication with provably secure instantiation. IEEE Trans. on Information Forensics and Security, 2014, 9 (12) :2302–2313 . [doi:10.1109/TIFS.2014.2362979]
[16] Jiang SQ, Gong G. Password based key exchange with mutual authentication. In: Handschuh H, Hasan A, eds. Proc. of the SAC 2004. LNCS 3357, Berlin: Springer-Verlag, 2004. 267-279. [doi: 10.1007/978-3-540-30564-4_19]
[17] Dodis Y, Katz J, Reyzin L, Reyzin L, Smith A. Robust fuzzy extractors and authenticated key agreement from close secrets. In: Dwork C, ed. Advances in Cryptology-CRYPTO 2006. LNCS 4117, Berlin: Springer-Verlag, 2006. 232-250. [doi: 10.1007/11818175_14]
[18] Boneh D, Boyen X. Short signatures without random oracles. In: Cachin C, Camenisch J, eds. Advances in Cryptology-EUROCRYPT 2004. LNCS 3027, Berlin: Springer-Verlag, 2004. 56-73. [doi: 10.1007/978-3-540-24676-3_4]
[19] Boyen X, Dodis Y, Katz J, Ostrovsky R, Smith A. Secure remote authentication using biometric data. In: Cramer R, ed. Advances in Cryptology-EUROCRYPT 2005. LNCS 3494, Berlin: Springer-Verlag, 2005. 147-163. [doi: 10.1007/11426639_9]
[20] Abdalla M, Bellare M, Rogaway P. The oracle Diffie-Hellman assumptions and an analysis of DHIES. In: David N, ed. Proc. of the CT-RSA 2001. LNCS 2020, Berlin: Springer-Verlag, 2001. 143-158. [doi: 10.1007/3-540-45353-9_12]