一种在密码验证系统中保持用户匿名的方案

2022-06-15 15:52陈金木
现代信息科技 2022年2期
关键词:密码

摘  要:通過采用一种基于密码的匿名验证系统,探讨了在匿名验证系统中针对第三方攻击者的用户匿名性的有效性。首先,在验证系统方案中展示了第三方攻击者可以指定哪个用户实际向服务器发送了访问请求,第三方攻击者可以根据此次攻击来链接到同一用户稍后发送的不同登录请求。其次,给出了一种有效的对抗这种攻击的方法,该方法因不需要存储用户的密码保护凭证,能更有效地保证用户访问的匿名性。

关键词:用户匿名;密码;用户验证;密码凭证

中图分类号:TP309.7           文献标识码:A文章编号:2096-4706(2022)02-0107-04

Abstract: By adopting an anonymous authentication system based on password, this paper discusses the effectiveness of user anonymity against third-party attackers in the anonymous authentication system. Firstly, the authentication system scheme shows that the third-party attacker can specify which user actually sent an access request to the server. The third-party attacker can link to different login requests sent by the same user later according to this attack. Secondly, an effective method against this attack is given. This method can more effectively ensure the anonymity of user access because it does not need to store the user’s password protection credentials.

Keywords: user anonymity; password; user authentication; password credential

0  引  言

匿名身份验证是确认用户访问网页或其他服务的权限的过程,可以允许用户登录到系统而不暴露其实际身份[1]。目前基于密码的匿名验证是应用较为广泛的一种用户验证技术,其主要作用是提供基于密码的匿名性和用户的匿名性[2]。截至目前已经出现几种方案[3-5],这些方案的潜在应用包括企业保密人员访问、对特殊人员进行问卷调查、匿名咨询等。

在文献[6]中,作者等人提出了一种基于密码的匿名认证方案,该方案通过以密码为保护的凭证为人员的访问提供匿名性。该方案是基于Camenisch群签名[7]和Paillier加密算法[8]构造的,前者用于实例化用户的认证证书,后者用于服务器的同态加密。认证证书的某些元素(即用户身份上的签名)是用用户密码加密的,而其他元素是用服务器的公钥(同态)加密的。为了提高效率,作者等人提出了另一个基于密码的匿名认证方案[9],该方案是基于BBS+SIG-Nature[10]的一种新型方案。为方便论证,以下我们对此方案取名为RT1001。方案中使用新的签名与加密技术代替了Camenisch群签名[7]和Paillier加密算法[8],同时通过Knowl-Edge协议的零知识证明来限制签名对服务器的验证能力。

在本文中,我们主要讨论了RT1001方案对被动/主动第三方攻击者的用户匿名性。首先,在第三章中我们展示了在RT1001方案中,第三方攻击者可以指定哪个用户实际向服务器发送了登录请求。此攻击还包括攻击者可以将同一用户稍后发送的不同登录请求链接起来。从攻击中可以清楚地看出,RT1001方案不提供针对第三方攻击者的用户匿名性。在第四章中,我们针对第三方攻击给出了有效的对策。在第五章中,通过验证证明对策中由于不需要任何安全措施来存储用户受密码保护的凭据,以此能有效地保证用户访问的匿名性。

1  知识准备

1.1  符号注释

a∈RS表示a是从S中随机选择的,设G1,G2,GT是素数q的循环群,设g是G1的生成元,h是G2的生成元。双线性映射e:G1×G2→GT具有以下性质:

(1)双线性:∀u∈G1,v∈G2和x,y∈RZq,e(ux,vy)=e(u,v)xy

(2)非退化性:e(g,h)≠1

1.2  BBS+签名

BBS+签名是一种签名方案,具有在提交值上发布签名和在提交值上证明签名零知识的有效协议。BBS+签名方案的公钥为(W=hχ,h∈G2,a,b,d∈G1),私钥是(χ∈Zq)。在消息m上签名的BBS+签名定义为(M,k,s),其中k,s∈RZq,M=(am · bs · d)1/(k+χ)∈G1。

BBS+签名(M,k,s,m)相对于公钥被验证为e(M,W · hk)=e(a,h)M · e(b,h)s · e(d,h)。该验证可以在用于表示拥有签名的知识协议的零知识证明中进行。

2  RT1001方案

2.1  R-BBS签名

作为RT1001方案的主要组成部分,R-BBS签名是BBS+签名的一个普遍版本。为便于区分,以下R-BBS签名由ΠR-BBS表示。

证明人代替BBS+签名的(M,k,s),拥有(M,k,γ,e(B,h)),其中M=(au · bs · d)1/(k+χ),u是用户恒等式,r∈RZq,γ=r-1,并且B=br · s,如下:

设g0,g1∈G1可以是预定义的参数。首先是校准器选择α,ru,rk,rγ,rα,r∈RZq,然后计算Cmt(ΠR-BBS)={T1,T2,R1,R2,R3},如下:

校准器发送Cmt(ΠR-BBS)发送给验证者,验证人发送质询c∈RZq。在收到质询后校准器计算Res(ΠR-BBS)={su,sγ,sk,sα,s}如下:su=ru+c×u,sγ=rγ+c×γ,sk=rk+c×k,sα=rα+c×α,s=r+c ·,其中=α · k。校准器发送Res(ΠR-BBS)提交给验证者,验证者接受以下内容保持不变,如下:

根据文献[9],上述R-BBS签名是一个数组(M,k,γ,u)服从e(M,W · hk)=e(a,h)u · e(B,h)γ · e(d,h)知识的零知识证明。

2.2  基本方案部署

这里,我们描述了RT1001方案的一个基本方案。基本方案由系统设置、注册登记和认证协议组成。

2.2.1  系统设置

为了设置系统参数,服务器执行以下操作:

(1)将BBS+信号的公钥设置为(W=hχ,h∈G2,a,b,d∈G1),将私钥设置为(χ∈Zq);

(2)将g,g0,G1∈G1作为公共参数;

(3)为ElGamal加密选择公钥/私钥对,并对其进行加解密分别用E( · )和D( · )表示;

(4)选择一个哈希函数H:{0,1}*→{0,1}k0和MAC:{0,1}k1×G12→{0,1}k1,其中k0,k1是适当的数字。

2.2.2  注册登记

在基本方案中,所有用户都需要提前向服务器注册,每个用户都获得一个身份验证凭证。服务器向每个用户ui发放一个凭证,这是一个在用户标识ui上簽名的BBS+签名(Mi,ki,si)。用户将密码保护的凭证Ci放入他/她的首选存储目录,例如,硬盘、手机、U盘或公共设施/目录。

2.2.3  认证协议流程

假设用户ui具有受密码保护的凭据Ci=<ui,[Mi,ki]pwi,E(si)>在登录时可用。下面是用户ui和服务器之间的身份验证协议流程。

Step1:用户ui执行以下操作

(1)用户使用他/她的密码pwi从[Mi,ki]pwi恢复(Mi,ki);

(2)用户选择r∈RZq,并通过计算s*=E(r)· E(si)随机化E(si);

(3)用户选择x∈RZq并计算X=gx;

(4)用户选择NA∈R{0,1}k1并计算=E(NA);

(5)用户使用R-BBS信号(Mi,ki,γ=r-1(modq),ui)计算Cmt(ΠR-BBS);最后,用户向服务器发送s*,X,,Cmt(ΠR-BBS)作为登录请求。

Step2:在收到登录请求后,服务器执行以下操作

(1)服务器计算r · si=D(s*),由于ElGamal的乘法同态性质,B=br · si;

(2)服务器选择y∈RZq并计算Y=gy;

(3)服务器计算NA=D()及V=MAC(NA,Y,X);

(4)服务器选择NB∈RZq,并将NB、Y、V发送回用户。

Step3:用户ui执行以下操作

(1)用户验证V,如果无效则中止;

(2)以NB为例进行质询,用户计算并发送Res(ΠR-BBS)到服务器;

(3)用户通过合成共享密钥sk=H(NA,NB,Y x)来结束协议。

Step4:服务器在验证Res(ΠR-BBS)后计算sk=H(NA,NB,Xy)。

注意:Step1中的Cmt(ΠR-BBS)可以由用户ui计算,用户ui不知道r · si,因为用户将e(B,h)作为Eq.(1)。在上面,用户ui通过显示拥有正确的凭证向服务器授权,而服务器的身份验证依赖于ElGamal加密。

3  第三方攻击者的用户匿名性验证

在文献[9]中,作者等人声称,RT1001方案支持针对服务器的不可链接性,服务器并不俱怕外部攻击,因为服务器不能链接同一个用户进行的不同登录。在本节中,我们将展示第三方攻击者可以指定是哪个用户发送了登录请求。实际上,这足以让第三方攻击者链接同一用户发送的不同登录请求。

3.1  第三方攻击者的可链接性

为了清楚起见,假设只有两个用户u1和u2的密码保护凭据(C1=<u1,[M1,k1]pw1,E(s1)>对于用户u1和C2=<u2,[M2,k2] pw2,E(s2)>对于用户u2)委托给公共目录。

Step1:用户u1执行以下操作

(1)用户u1用他/她的密码pw1从[M1,k1]pw1恢复(M1,k1);

(2)用户u1选择r∈RZq,并通过计算s*=E(r)· E(s1)· E(t)随机化E(s1)· E(t);

(3)~(4)与第2.2.3节的Step1步骤相同;

(5)用户u1使用(M1,k1,γ=r-1,u1)上的R-BBS签名计算Cmt(ΠR-BBS)={T1,T2,R1,R2,R3},最后,用户u1向服务器发送s*,X,,Cmt(ΠR-BBS)作为登录请求。

Step2:在收到登录请求后,服务器执行以下操作:

(1)由于El-Gamal的乘法同态性质,服务器计算r · s1 · t=D(s*)和B′=br · s1 · t;

(2)~(4)这些操作与第2.2.3节的Step2步骤相同。

Step3:用户u1执行以下操作

(1)这些操作与第2.2.3节的Step3步骤相同;

(2)通过将NB作为挑战(即c=NB),用户u1计算Res(ΠR-BBS)={su,sγ,sk,sα,s}如下:su=ru+c · u1,sγ=rγ+c · γ,sk=rk+c · k1,sα=rα+c · α,s=r+c · ,其中=α · k1,然后向服务器发送Res(ΠR-BBS);

(3)用户通过合成共享密钥sk=H(NA,NB,Yx)来结束协议。

Step4:这些操作与第2.2.3节的Step4步骤相同。

如果服务器在以上Step4步骤中中止协议(即,Res(ΠR-BBS)无效),攻击者就会知道刚刚发送登录请求的用户是用户u1。因此,攻击者就能得出的结论:刚刚发送登录请求的用户是用户u1。以上Step4步驟中Res(ΠR-BBS)的无效性可以从以下不相等性中很容易地检查出来,如下:

注:假设攻击者用随机值t替换[M1,k1]pw1。在用他/她的传递字pw1解密t之后,用户u1得到一对(M1′,k1′)。如果用户可以检查M1′∉G1或k1′∉Zq的格式,用户u1可以注意到t不是正确的t并中止身份验证原型。在这种情况下,攻击者无法破坏用户匿名性。在上述攻击中,为了保持各数值格式的一致性,攻击者仅利用E( · )的同态性将s1的密文随机化为E(s1)· E(t)。此攻击有1%的概率可以成功,并且用户u1不能注意到E(s1)的变化,因为受密码保护的凭证不需要任何安全的存储设施,并且E(s1)和E(s1)· E(t)同时具有相同的格式。

3.2  用户链接性分析

从以上可以看出,第三方攻击者只需将密码保护凭证C1替换为C1′后,窃听用户与服务器之间的通信,就可以以1%的概率指定用户u1和u2。此攻击表示攻击者可以链接用户u1稍后发送的不同登录请求。处于第三方攻击过程中,有可能是用户无法检查E(s1)的完整性,同时服务器无法从随机化的s*中恢复s1。以上攻击同样适用于RT1001方案中的多用户ui(i>2)。例如,如果|ui|=8,并且用户执行2.2.3的身份验证协议时,第三方攻击者连续重复3次攻击后,可以以1%的概率指定用户。

从上面可以看出,RT1001方案无法提供针对第三方攻击者的用户匿名性。

4  本文提出的应对方案

第三方攻击者发起的可链接性攻击,如果使用保持完整性的便携设备或公共目录来存储用户受密码保护的凭据,第三方攻击者可以轻易发起可链接性攻击。在这一节中,我们将给出一个简单有效的对抗攻击的对策:不需要任何安全性的用于存储用户受密码保护的凭据。

4.1  系统设置

为了设置系统参数,服务器执行以下操作:

(1)将BBS+信号的公钥设置为(W=hχ,h∈G2,a,b,d∈G1),将私钥设置为(χ∈Zq);

(2)将g,g0,G1∈G1作为公共参数;

(3)为ElGamal加密选择公钥/私钥对,并对其进行加解密分别用E( · )和D( · )表示;

(4)选择一个哈希函数H:{0,1}*→{0,1}k0和MAC:{0,1}k1×→{0,1}k1,其中k0,k1是适当的数字。

4.2  注册登记

所有用户都需要提前向服务器注册,每个用户都获得一个身份验证凭证。服务器向每个用户ui发放一个凭证,这是一个在用户标识ui上签名的BBS+签名(Mi,ki,si)。用户将密码保护的凭证Ci放入他/她的首选存储目录,例如,硬盘、手机、U盘或公共设施/目录,服务器在本地存储所有用户ui的密码保护凭据为{Ci}i。

4.3  认证协议

假设用户ui在登录时具有受密码保护的凭据Ci=<ui,[Mi,ki]pwi,E(si)>。下面是用户ui和服务器之间的身份验证协议。

Step1:用户ui执行以下操作

(1)用户使用他/她的密码pwi从[Mi,ki]pwi恢复(Mi,ki);

(2)用户选择r∈RZq,并通过计算s*=E(r)· E(si)随机化E(si);

(3)用户选择x∈RZq并计算X=gx;

(4)用户选择NA∈R{0,1}k1并计算=E(NA);

(5)用户使用R-BBS信号(Mi,ki,γ=r-1(modq),ui)计算Cmt(ΠR-BBS);最后,用户向服务器发送s*,X,,Cmt(ΠR-BBS)作为登录请求。

Step2:在收到登录请求后,服务器执行以下操作

(1)服务器计算r · si=D(s*),由于ElGamal的乘法同态性质,B=br · si;

(2)服务器选择y∈RZq并计算Y=gy;

(3)服务器计算NA=D()及V=MAC(NA,Y,X);

(4)服务器选择NB∈RZq,并将NB、Y、V发送回用户;

(5)服务器计算NA=D()和V=MAC(NA,Y,X,{Ci}i)其中{Ci}i是本地存储的密码保护凭据(针对所有用户)。

Step3:用户ui执行以下操作

(1)用户验证V,如果无效则中止;

(2)以NB为例进行质询,用户计算并发送Res(ΠR-BBS)到服务器;

(3)用户通过合成共享密钥s=H(NA,NB,Yx)来结束协议。

Step4:服务器在验证Res(ΠR-BBS)后计算s=H(NA,NB,Xy)。

5  方案验证

同样,我们假设两个用户u1和u2的密码保护凭据(C1 =<u1,[M1,k1]pw1,E(s1)>对于用户u1和C2=<u2,[M2,k2]pw2,E(s2)>对于用户u2)委托给公共目录。

首先,攻击者选择t∈RZq,计算E(t),然后用C1′=<u1,[M1,k1]pw1,E(s1)· E(t)>替换C1=<u1,[M1,k1]pw1,E(s1)>。下面是服务器和用户u1之间的身份验证协议,用户u1具有C1′=<u1,[M1,k1]pw1,E(s1)· E(t)>。在身份验证协议中,第三方攻击者只是在用户u1和服务器之间窃听通信。当然,攻击者不知道哪个用户即将在此协议中执行。

5.1  验证步骤

Step1:用户u1执行以下操作

(1)用户u1用他/她的密码pw1从[M1,k1] pw1恢复(M1,k1);

(2)用户u1选择r∈RZq,并通过计算s*=E(r)· E(s1)· E(t)随机化E(s1)· E(t);

(3)用戶u1选择x∈RZq,计算X=gx;

(4)用户u1选择NA∈R{0,1}k1,计算=E(NA);

(5)用户u1使用(M1,k1,γ=r-1,u1)上的R-BBS签名计算Cmt(ΠR-BBS)={T1,T2,R1,R2,R3},如下:

最后,用户u1向服务器发送s*,X,,Cmt(ΠR-BBS)作为登录请求。

Step2:在收到登录请求后,服务器执行以下操作:

(1)由于El-Gamal的乘法同态性质,服务器计算r · s1 · t=D(s*)和B′=br · s1 · t;

(2)服务器选择y∈RZq并计算Y=gy;

(3)服务器计算NA=D()和V=MAC(NA,Y,X,{Ci}i)其中{Ci}i是本地存储的密码保护凭据(针对所有用户)。

(4)服务器选择NB∈RZq,并将NB、Y、V发送回用户。

Step3:用户u1执行以下操作

(1)用户验证V,如果无效则中止;

(2)以NB为例进行质询,用户计算并发送Res(ΠR-BBS)到服务器;

(3)用户通过合成共享密钥sk=H(NA,NB,Yx)来结束协议。

Step4:服务器在验证Res(ΠR-BBS)后计算sk=H(NA,NB,Xy)。

5.2  用户匿名的安全性分析

在以上Step2通过对MAC地址使用“用于任意长度消息的安全CBC-MAC”或HMAC,可以获得其大小与消息大小无关的固定长度标记V。用户ui可以通过验证V来检查{Ci}i(包括E(si))的完整性。如果第三方攻击者对密码保护凭据{Ci}i添加任何修改,则用户ui中止协议。由于V的无效性(即V≠MAC(NA,Y,X,{Ci}i′)不向服务器发送Res(ΠR-BBS),因此攻击者无法在的攻击中指定用户ui。

6  结  论

虽然上述对策对第三方攻击者发出的可链接性攻击是有效的,但在用户数量大时并不实用。这就是为什么每个用户必须下载所有受密码保护的凭据{Ci}i(如果它们被委托给一个公共目录),或者必须在本地存储所有{Ci}i(如果它们被委托给一个用户的便携式设备)以便验证V。因此,使RT1001方案安全和有效(即独立于用户的数量)将是一项具有挑战性的任务。

参考文献:

[1] 罗远哲,刘瑞景,孟小钰,等.一种匿名认证方法及系统:CN112364331A [P].2021-02-12.

[2] 阮鸥,王子豪,张明武.一种高效的匿名口令认证密钥交换协议 [J].中南民族大学学报(自然科学版),2018,37(2):109-113+127.

[3] 胡如会,张起荣,贺道德.基于双线性映射直接匿名认证方案的改进 [J].科学技术与工程,2018,18(3):4.

[4] 王震,范佳,成林,等.可监管匿名认证方案 [J].软件学报,2019,030(006):1705-1720.

[5] 曹守启,何鑫,刘婉荣.一种改进的远程用户身份认证方案 [J].计算机工程与科学,2021,43(11):7.

[6] LUO S,HU J,CHEN Z. An Identity-Based One-Time Password Scheme with Anonymous Authentication [C]//2009 International Conference on Networks Security,Wireless Communications and Trusted Computing.Wuhan:IEEE,2009:864-867.

[7] CAMENISCH J,LYSYANSKAYA A. A Signature Scheme with Efficient Protocols [C]//SCN 2002:Security in Communication Networks.Springer,2002:268–289.

[8] YANG Y J,ZHOU J Y,WONG J W,et al. Towards practical anonymous password authentication [C]//ACSAC ‘10:Proceedings of the 26th Annual Computer Security Applications Conference.New York:Association for Computing Machinery,2010:59-68.

[9] PAILLIER P.Public-Key Cryptosystems Based on Composite Degree Residuosity Classes [C]//EUROCRYPT’99.Springer-Verlag,1999:223-238.

[10] AU M H,SUSILO W,MU Y. Constant-size dynamic k –TAA [C]// International Conference on Security and Cryptography for Networks.Springer,2006:111-125.

作者简介:陈金木(1985—),男,汉族,福建厦门人,信息系统项目管理师,实验师,本科,主要研究方向:计算机科学、软件技术、信息安全。

猜你喜欢
密码
三位数密码
平博士密码
谁泄露了密码
密码藏在何处
教你破译微表情密码
破译密码
找回密码
密码
怪盗基德的密码
娃娃密码盒