一种多服务器环境下轻量级匿名认证与密钥协商方法
技术领域
本发明专利属于信息安全技术领域,具体说是一种在移动互联网多服务环境下,移动终端用户基于生物信息特征进行远程服务器认证登录并协商后继会话密钥获得远程服务的轻量级匿名认证与密钥协商方法。
背景技术
现有的远程认证技术主要有基于口令的认证技术、基于智能卡的认证技术、基于人体生物信息的认证技术等。低熵的口令容易遭到离线猜测攻击,在多服务器环境中,高熵口令容易给用户带来识记和管理困难。智能卡容易被盗,且存储在智能卡上的信息易被边信道技术攻击而不经意泄漏。基于人体生物信息(如指纹,虹膜,人脸识别)不易复制丢失,相比智能卡和口令而言,是一个相对稳定的认证因子。不过单一认证因子已被多因子认证技术全面取代。现有结合以上三因子的认证方案主要存在以下问题,因此在目前的应用中受局限:
(1)扩展性差。大多数多因子认证方案基本都是适应于单服务器环境,也就说如果用户同时想登录不同的服务器获得不同的服务,需要用户在多个不同服务器上都进行注册,并记住不同的用户名和登录口令(用户在不同的服务器上采用相同的用户名和口令,账户易遭受冒充攻击),研究表明互联网上的用户平均每月要登录20多个不同的服务器,大量的用户名和登录口令给用户带来了识记、存储、管理的不便,并引发了安全隐患。此外,目前多数多因子认证方案只能提供双方身份的认证,功能单一,不能提供密钥协商功能,应用情景和范围受限。
(2)效率低。绝大多数多因子认证技术无一例外的用到了公钥加解密算法或者数字签名算法,甚至要求服务器、用户均在一个公钥基础设施PKI(PublicKeyInfrastructure)中申请用于加密的公私钥对和用于签名的公私钥对,以及权威机构颁发的证书。目前比较盛行的加解密算法RSA和椭圆曲线加密算法均需要用户终端有较强的计算能力,来计算特殊群上的标量乘和幂乘运算。而目前发展的趋势是,移动终端用户持有的都是计算能力、存储能力以及通信能力受限的移动终端,包括smartphone,Tablets,掌上电脑PDA,无法完成复杂的计算任务。所以多数现有的多因子认证技术不能直接迁移到资源受限的移动终端上,需另设计只涉及Hash运算和异或运算等低功耗的多因子认证技术。
(3)鲁棒性差。目前大部分多因子认证方案系统允许用户在适当的情况下更改自己的口令,以防止敌手离线或者在线猜测口令攻击,但是生物信息却无法适应性动态更新。但实际上个人注册时生物信息,如指纹,因劳作而损伤,需要升级更改为新的生物认证信息,而现有的多因子认证方案不能满足该应用需求,不能彰显认证技术动态更新的鲁棒性。
(4)不提供隐私保护和匿名服务。一般移动终端用户远程登录服务器,均需要获得服务器的相关服务,用户不愿意让服务器获得自己的兴趣爱好和行为习惯,所以需要实现匿名认证来保护自己的隐私权。在数据挖掘技术日新月异的当下,不对用户进行匿名保护,很容易暴漏用户隐私,降低用户对方案的信任和采用意愿,从而影响到方案的应用广度和范围。
随着Smartphone等移动终端的普及和移动互联网的迅猛发展,移动终端用户通过远程登陆服务器并获得相关服务,已是大趋势,各种云盘、网盘已经深入人心,成为人们生活中不可缺少的一部分。远程登陆最关键的一步就是认证,可以说接入认证是移动网络最重要的第一道栅栏,所有后继的安全业务都依赖于安全接入认证,认证接入为安全可靠的移动网络运营提供了安全保障。
目前的认证技术基本上都采用了必要的密码技术来进行保障,比如数字签名来说明认证请求者的身份,有些认证技术更是需要计算耗时耗能量的对运算,特殊数域上点乘运算和幂乘运算,这些认证技术对认证用户要求有较高的计算能力和存储能力。而目前用户基本上是通过smartphone,PDA等计算能力和存储能力有限的移动终端进行操作,因此绝大多数基于密码技术的多因子认证技术不适合直接迁移到目前移动终端用户。
此外,目前的多因子认证技术中,绝大多数没有考虑到用户匿名性保护。而移动用户通过Internet访问服务器时,并不希望服务器知道自己是谁,也不愿意让服务器知道自己消费喜好和行为,服务器只需知道用户是一个合法用户,且能保证其能为服务买单(通过可控匿名性保证)。随着人们隐私保护意识的提高,可以断言未来的移动电子商务、移动电子政务等应用中,就会要求系统须提供相应的匿名服务,来有效保护移动终端用户的消费隐私(微信快速超越qq就是微信能比qq给用户提供更多的隐私保护)。
发明内容
为了克服上述技术所存在的不足,本发明提供了一种通信代价低、安全性高、扩展性好可控匿名且适用于移动互联网环境下移动终端用户远程登录的多服务器环境下轻量级匿名认证与密钥协商方法。
本发明为了实现上述目的所采用的技术方案是由以下步骤组成:
(1)系统建立与选择系统参数
注册中心RC根据系统的安全要求选择合适的密码学安全Hash函数h(.)和模糊提取器(Gen(.),Rep(.))并将其公开,之后将该h(.)算法和生物信息模糊提取器的Rep(.)算法写入用户智能卡SC中;
(2)服务器和用户在注册中心RC注册
(2.1)服务器Sj选择公开的注册名SIDj和lbit私钥yj,并将注册名SIDj发送给注册中心RC,其中j=1,2,...,t,t表示当前在注册中心RC所注册的服务器个数,注册中心RC收到服务器所注册的注册名SIDj后选择一个随机数串rj,通过PSIDj=h(SIDj||rj||x)计算出PSIDj,并将PSIDj返回给服务器Sj,x为注册中心RC的私钥,||表示数字串的级联,服务器通过计算出私密信息BSj并将其秘密保存;
(2.2)用户Ui选择注册名IDi和对应的口令pwi,该注册名IDi选自于用户Ui的身份信息,提取该用户Ui的生物信息bi,利用模糊提取器Gen(.)算法生成该用户Ui的生物密钥Gen(bi)=(Δi,θi),用户通过Ai=h(pwi||θi)计算出口令和生物密钥的哈希值Ai,并将注册名IDi和Ai发给注册中心RC,注册中心RC收到注册名IDi和Ai后选择随机数zi,分别计算PIDi=h(IDi||zi||x),Ci=h(IDi||PIDi),{Dij=h(Ci||PSIDj)},注册中心RC将所得Bi、<SIDj,Eij>保存在用户智能卡SC中,并将用户智能卡SC发给用户Ui,用户Ui计算Fi=h(IDi||Ai),且将Fi和自己的生物密钥辅助生成信息Δi存在用户智能卡上,最终,用户智能卡中存有{Δi,Fi,Bi,<SID1,Ei1>,<SID2,Ei2>,...,<SIDt,Eit>,h(.),Rep(.)};
(3)用户和服务器认证与密钥协商
(3.1)用户Ui将用户智能卡SC插入读卡器,并输入其注册名IDi、口令pwi、生物信息b′i、目标服务器Sk的注册名SIDk以及随机数Ni1,k∈{1,2,...,t},用户Ui智能卡利用所存储的模糊提取器Rep(.)算法恢复Rep(Δi,b′i)=θi,再计算出A′i=h(pwi||θi),验证Fi=h(IDi||A′i)是否成立,若不成立,则用户智能卡SC自动终止远程连接,中断登录请求;若成立,则用户智能卡SC计算C′i=h(IDi||PID′i)、 M2=h(Ni1||D′ik),用户智能卡SC将用户登录请求msg1={C′i,M1,M2}发给目标服务器Sk;
(3.2)目标服务器Sk收到用户登录请求msg1,计算D″ik=h(C′i||PSID′k),检查M2=h(N′i1||D″ik)是否成立,若不成立,则拒绝该登录请求;否则,目标服务器Sk选择随机数Ni2,计算 key=h(N′i1||Ni2),M4=h(N′i1||Ni2||D″ik||key),并将msg2={M3,M4}发给用户Ui;
(3.3)用户收到msg2,计算key'=h(Ni1||N′i2),验证M4=h(Ni1||N′i2||D′ik||key')是否成立,若等式不成立,则终止该认证过程;否则计算并将msg3={M5}发给目标服务器Sk;
(3.4)目标服务器Sk收到msg3,检验等式是否成立,若成立,则双向认证结束,用户Ui和目标服务器Sk拥有会话密钥key=key'。
上述步骤(1)中的Hash函数为MD系列或SHA系列算法。
上述MD系列算法的输出长度l为128比特,SHA系列算法的输出长度l为160、224、256、384或512比特。
上述步骤(2.1)中的服务器注册名为服务器域名或者中文唯一标识;所述步骤(2.2)中的用户的身份信息为身份证号码或电话号码、Email信息,生物信息bi是指纹信息或人脸信息、虹膜信息。
上述步骤(2)中服务器和用户在注册中心RC的注册过程所需信道为安全信道,保证注册信息保密,步骤(3)的msg1、msg2以及msg3的传输信道可以是公开信道。
在上述步骤(3)用户和服务器认证与密钥协商之前还包括步骤(a),口令pwi和/或生物信息bi的动态更新,具体方法为:
用户Ui将用户智能卡SC插入读卡器并输入IDi,pwi,b′i,用户智能卡SC利用模糊提取器的Rep(.)算法恢复该用户Ui的生物密钥Rep(Δi,b′i)=θi,并计算A′i=h(pwi||θi),验证Fi=h(IDi||A′i)是否成立,若不成立,则用户智能卡SC自动中断请求;若成立,提示用户输入新的口令和/或生物信息用户Ui重新采集自己的生物信息并选择新的口令通过 计算出该用户Ui的新生物密钥重新计算 将用户智能卡SC中原来存储信息{Δi,Fi,Bi}更新为
与现有技术相比,本发明具有以下优点:
(1)轻量级,本专利体现了移动终端用户的移动设备内存小,计算能力低的特性,也考虑到在远程服务器同时处理多个登陆请求时面临的并行处理能力,整个密钥协商过程不需要复杂的密码系统和耗时的密码运算,仅仅用hash运算和异或运算,整个过程的计算与存储要求都不构成双方负担,让双方的沟通变得轻松容易;与同类轻量级技术方案相比,本发明的计算量、存储量和通信量都较低。
(2)可控匿名性,本发明采用了可控匿名,一般情况下服务器不知道认证用户的具体身份,仅仅知道其是RC处注册过的合法用户。一旦在后继通信中该用户有不法行为,服务器可求助RC打开用户的身份,保障服务提供商的权益。根据目前的研究成果,这种可控匿名的方式在保护用户匿名性和保障服务提供商权益的系统均衡效果是最好的。
(3)安全性好,本发明双方协商的会话密钥由双方选的随机数Ni1,Ni2决定,即使某次通信的会话密钥不慎泄露,通信双方及时协商新的会话密钥,也不会影响前后会话密钥的安全性,保证了会话密钥间的独立性和前后向安全性。
(4)扩展性好,本发明在移动终端与远程服务器在相互认证的同时,产生了会话密钥,若协议只想实现的是认证功能,该值充当了响应的测试消息;若后继需要服务器进一步给用户发送用户需要的加密电子文件或者源程序代码,该值又能充当临时会话密钥来加密远程传输的数据,该值的存在,大大地增加了方案的灵活性,让方案易于扩展,适用于目前的电子商务、移动通讯领域。
(5)鲁棒性强,本发明不仅允许用户动态更新口令和生物信息,而且更新不需要注册中心RC的频繁协助,自己通过读卡器独立对智能卡进行写入,动态更新自己的口令和生物认证信息,有效抵抗敌手口令猜测攻击,系统的鲁棒性强。
附图说明
图1为多服务器环境下基于口令、智能卡和生物信息的认证密钥协商应用系统。
图2为用户3和服务器6之间的认证与密钥协商过程示意图。
具体实施方式
图1表示一个多服务器环境下基于口令、智能卡和生物信息的认证密钥协商系统应用系统,其中RC为注册中心,管理在RC处认证过的用户和服务器,用于确认服务器身份和进行用户可控追踪,系统中有用户U1、用户U2和用户U3作为移动用户,服务器S1~S6的多服务器环境,假设S1为某web服务器,S2为Ftp服务器,S3为某知识库服务器,…,用户和服务器均在注册中心注册,用户可以匿名通过一个口令和密码,凭自己的身份ID和生物信息与服务器进行远程双向认证,并且产生后继通信的会话密钥:
实施例1
现以用户U3对服务器S6进行匿名认证与密钥协商为例,具体方法如下:
(1)系统建立与选择系统参数
注册中心RC根据系统的安全要求选择SHA-2算法和模糊提取器,并将SHA-2算法和模糊提取器公开,之后将SHA-2算法和模糊提取器的Rep(.)算法写入用户智能卡SC中,该智能卡是有一定的存储能力、计算能力和连接远程服务器的能力,例如开源的32位处理器RISC的OR1200。
(2)服务器和用户在注册中心RC注册
假设服务器和用户的在注册中心注册自己真实身份,并成为系统中的合法成员,先设注册中心RC选择一个二进制长度为l的密钥x和一个单向Hash函数h(.),即将任意长的0,1数字串映射成固定l长度的0,1数字串。凡在该注册中心注册的用户或者服务器,其信息计算都有RC的x值影子,具体为:
(2.1)服务器S1~S6分别选择公开的注册名SID1~SID6和160bit私钥y1~y6,并分别将注册名SID1~SID6发送给注册中心RC,注册中心RC收到服务器所注册的注册名SID1~SID6后选择随机数串r1~r6,通过PSIDj=h(SIDj||rj||x)计算出PSID1~PSID6,并将PSID1~PSID6返回给对应服务器S1~S6,x为注册中心RC的私钥,||表示数字串的级联,服务器S1~S6分别通过计算出私密信息BS1~BS6并将其秘密保存。
本实施例的服务器注册名可以用服务器域名或者中文唯一标识,如网易新闻、百度糯米等中文标识。
(2.2)用户U1~U3选择注册名ID1~ID3和对应的口令pw1~pw3,注册名ID1~ID3是该用户的身份证号码,提取该用户U1~U3的指纹信息b1~b3,利用模糊提取器的Gen(.)算法生成该用户U1~U3的生物密钥Gen(b1)=(Δ1,θ1),Gen(b2)=(Δ2,θ2)以及Gen(b3)=(Δ3,θ3),用户通过Ai=h(pwi||θi)分别计算出口令和生物密钥的哈希值A1、A2、A3,并将注册名ID1~ID3和对应的A1~A3发给注册中心RC,注册中心RC收到注册名ID1~ID3和A1~A3后选择随机数z1~z3,根据PIDi=h(IDi||zi||x),Ci=h(IDi||PIDi),{Dij=h(Ci||PSIDj),},分别计算出用户U1~U3与服务器S1~S6所对应的PIDi、Bi、Ci以及{Dij,Eij},其中i=1,2,3,j=1,2,3,4,5,6。注册中心RC将所得Bi、<SIDj,Eij>保存在用户Ui智能卡SC中发给用户Ui,如将B1、<SID1,E11>,<SID2,E12>,<SID3,E13>,<SID4,E14>,<SID5,E15>,<SID6,E16>保存在用户智能卡SC并发给U1。用户U1~U3获得用户智能卡SC后利用Fi=h(IDi||Ai)计算出F1~F3,且将自己的生物密钥辅助生成信息Δ1~Δ3和F1~F3分别存储在对应的用户智能卡上,如用户U3智能卡中存有{Δ3,F3,B3,<SID1,E31>,<SID2,E32>,<SID3,E33>,<SID4,E34>,<SID5,E35>,<SID6,E36>,h(.),Rep(.)}。
上述服务器S1~S6和用户U1~U3在注册中心RC的注册过程所需信道为安全信道。
(3)用户和服务器认证与密钥协商
现将服务器S6作为用户U3的目标服务器,认证与密钥协商的过程为:
(3.1)用户U3将用户智能卡SC插入读卡器,并输入其注册名ID3、口令pw3、生物信息b′3(允许b′3与注册时的生物信息b3有w比特的误差)、目标服务器S6的注册名SID6以及随机数N31,用户智能卡利用所存储的模糊提取器Rep(.)算法计算Rep(Δ3,b′3)=θ′3,再计算出A′3=h(pw3||θ′3),检查F3=h(ID3||A′3)是否成立,若不成立,则用户智能卡SC自动终止远程连接,中断登录请求;若成立,则用户智能卡SC计算 C′3=h(ID3||PID′3)、 M2=h(N31||D′36),用户智能卡SC将用户登录请求msg1={C′3,M1,M2}发给目标服务器S6;
(3.2)目标服务器S6收到用户登录请求msg1,计算D″36=h(C′3||PSID′6),检查M2=h(N′31||D″36)是否成立,若不成立,则拒绝该登录请求;否则,目标服务器S6选择随机数N32,计算 key=h(N′31||N32),M4=h(N′31||N32||D″36||key),并将msg2={M3,M4}发给用户U3;
(3.3)用户U3收到msg2,计算key'=h(N31||N′32),验证M4=h(N31||N′32||D′36||key′)是否成立,若等式不成立,则终止该认证过程;否则计算并将msg3={M5}发给目标服务器S6;
(3.4)目标服务器S6收到msg3,检验等式是否成立,若成立,则双向认证结束,双方拥有会话密钥key=key'。
本实施例中msg1、msg2以及msg3的传输信道均可采用一般公开信道。
实施例2
本实施例中,在步骤(2)服务器和用户在注册中心RC全部注册完成后因用户3的指纹受意外损坏,需要更改口令pw3和/或生物信息b3,具体步骤如下:
(a)口令pw3和/或生物信息b3的动态更新
具体方法为:用户U3将用户智能卡SC插入读卡器并输入ID3、pw3、b′3,用户智能卡SC利用模糊提取器的Rep(.)算法恢复该用户U3的生物密钥Rep(Δ3,b′3)=θ′3,并计算A′3=h(pw3||θ′3),验证F3=h(ID3||A′3)是否成立,若不成立,则用户智能卡SC自动中断请求;若成立,提示用户输入新的口令和/或生物信息用户U3重新采集自己的生物信息并选择新的口令通过 计算出该用户U3的新生物密钥重新计算 将用户智能卡SC中原来存储信息{Δ3,F3,B3}更新为
本实施例允许b′i与注册时的生物信息bi有w比特的误差,b′i与bi汉明距离为w,w为输入生物信息的容错率,以应对指纹等突然受损导致的精度误差。
(3)用户和服务器认证与密钥协商
(3.1)用户U3将用户智能卡SC插入读卡器,并输入其注册名ID3、 目标服务器S6的注册名SID6以及随机数N31,用户智能卡SC利用所存储的模糊提取器Rep(.)算法计算再计算出 检查 是否成立,若不成立,则用户智能卡SC自动终止远程连接,中断登录请求;若成立,则用户智能卡SC计算 C′3=h(ID3||PID′3)、 M2=h(N31||D′36),用户智能卡SC将用户登录请求msg1={C′3,M1,M2}发给目标服务器S6;
(3.2)目标服务器S6收到用户登录请求msg1,计算D″36=h(C′3||PSID′6),检查M2=h(N′31||D″36)是否成立,若不成立,则拒绝该登录请求;否则,目标服务器S6选择随机数N32,计算 key=h(N′31||N32),M4=h(N′31||N32||D″36||key),并将msg2={M3,M4}发给用户U3;
(3.3)用户U3收到msg2,计算key'=h(N31||N′32),验证M4=h(N31||N′32||D′36||key′)是否成立,若等式不成立,则终止该认证过程;否则计算并将msg3={M5}发给目标服务器S6;
(3.4)目标服务器S6收到msg3,检验等式是否成立,若成立,则双向认证结束,双方拥有会话密钥key=key'。
其他的步骤与实施例1相同。
上述实施例1~2中,所用SHA算法可以用输出长度l分别为224、256、384或512比特的SHA-224、SHA-256、SHA-384或SHA-512来替换或者也可以用输出长度l为128比特的MD系列算法来替换。
上述实施例1~2中,所用指纹信息还可以用人脸信息或虹膜信息等其他生物特征信息来替换,所用身份证号码也可以用电话号码或Email信息来替换,其认证与协商过程与对应实施例相同。