刘卫红,曾建
(广东农工商职业技术学院,广州 510507)
随着云计算技术的发展,越来越多的用户在云服务器上实现数据的计算、存储、处理和共享,云环境中的安全问题也越来越严峻,因此设计一种云环境下用户和服务器之间身份认证和密钥交换的协议具有重要的应用价值。
口令因其简单易记、操作方便,常被用于密钥交换协议中(文献[1-5]),但因其熵值较小,重复利用且易被遗忘,也常成为攻击者的攻击方向。生物特征具有不易遗忘、不易丢失,不易伪造且随身携带等优点,它常被用来与口令一起作为密钥交换协议中身份认证的依据(文献[6-9])。在这些协议中,攻击者不能仅靠口令来破解协议,还需要获得用户的生物特征信息。因此,基于生物特征和口令认证的协议安全性强且又便捷可行。但是目前大部分协议在用户注册阶段都假设用户与服务器之间存在安全的通信信道,并且服务器是安全可信的,这些假设在现实部署中是很难实现的,因此这些协议的安全性和可行性值得商榷。针对上述问题,本文提出了一种云环境下基于指纹和口令认证的密钥交换协议,对用户与服务器之间的通信信道以及服务器本身都没有安全性要求,借助哈希函数、离散对数、计算性Diffie-Hellman问题、盲签名和模糊提取技术既实现了服务器与用户之间的双向认证,又保证了传输数据的完整性和真实性,安全可靠地实现了云环境下用户与服务器之间的密钥协商与共享,安全性分析表明该协议具有语义安全性,密钥保密性、前向安全性,且能对抗重放攻击、恶意服务器攻击、离线字典攻击、不可检测在线字典攻击等常见攻击。
盲签名是一种数字签名的方式,它的签名过程为:
请求者先将消息加密(盲化),然后签名者再对密文签名,最后请求者对签名进行解密(脱盲),从而获取到签名者对消息的签名。
模糊提取(Fuzzy Extractor)技术是一种基于生物特征的密钥产生技术,该技术能从生物特征中提取出重构用户生物特征所需要的冗余信息而不用存储生物特征模板本身,既利用生物特征进行了身份认证,又对生物特征信息进行了保密。该技术包括Gen和Rep两种算法:
Gen(B)→R,P:输入 B,输出辅助数据 P(公开)和均匀随机值R。
Rep(B,P)→R:给定 P,输入 B,重新生成均匀随机值R。
本协议中使用该技术的Gen算法通过输入由生物特征和口令处理的值B,输出一个辅助数据P和一个均匀随机值R作为认证密钥。然后使用Rep算法以B和P为输入,恢复认证密钥R。用户和服务器使用R加密对方的验证信息以实现双向身份认证。
本文用到的所有符号说明如下:
U和S分别表示云环境下的用户和服务器,ID表示用户U的id,A→B:M表示A给B发送消息M;pw和b表示用户U的口令和指纹信息;H表示安全的单向Hash函数;Ek(M)表示用密钥k加密消息M;R表示用户的认证密钥;NU为用户选取的随机数,NS为服务器选取的随机数,表示异或操作;||表示消息的级联;p,q 表示大素数,且 p=2q+1;g表示 q 阶群 GF(p)的生成元;Zq是一个模q的整数环;是Zq的乘法群;表示在中随机选取元素 x;gx表示gx=gx(modp)。
一个云环境下基于指纹和口令认证的密钥交换协议被称为是安全的,如果它满足下列5个条件:
(1)语义安全性:对外部恶意攻击者来说,会话密钥和随机数不可分;
(2)密钥保密性:密钥具有前向安全性;
(3)用户口令、指纹信息和验证密钥安全;
(4)用户与服务器之间都能进行身份认证;
(5)对抗重放攻击、恶意服务器攻击、不可检测在线字典攻击、离线字典攻击。
在以往的口令认证密钥交换协议中,一般都假定用户与服务器之间存在一个安全的通信信道,用来发送用户口令或生物特征信息,并且假定服务器是可信的,将口令或生物特征信息存储在服务器上。这些假设在实际的应用场景中都是难以实现的,所以这些认证方案的可用性和安全性都大大降低。针对这些认证方案的不足,我们提出了一种云环境下基于指纹和口令认证的密钥交换协议,该协议在注册阶段将用户口令和指纹信息通过hash函数和离散对数进行处理,然后发送至服务端存储,用户端和服务器端都不直接保存用户口令和指纹信息。在会话密钥协商阶段,服务器和用户通过盲签名和模糊提取技术进行身份认证并交换会话密钥,实现了云环境下用户与服务器的双向认证,同时也保证了会话密钥的安全性,并能有效地抵抗在线字典攻击、离线字典攻击、恶意服务器攻击。
协议分成注册和密钥协商两个阶段:
(1)注册阶段
U →S:W、Wb、ID
注册阶段,用户通过电脑和指纹采集器录入口令pw和指纹信息b,然后计算W=H(pw)[⊕]H(b)以及Wb,最后将W、Wb、ID发送给S。
服务器收到信息后,将ID、W、Wb保存起来。
(2)密钥协商阶段
用户注册为合法用户之后,如果想接入云服务器使用其服务,则需先与服务器进行双向身份认证并协商一个会话密钥进行安全通信。
Step1:
U→S:ID,NU
用户U选择一个随机数NU,然后向服务器发送用户ID和NU;
S→U:Wc
服务器根据ID检索到W和Wb,系统生成一个盲化因子c,计算Wc,并将Wc发送给用户。
Step2:
U→S:Wcb
用户收到消息后输入口令pw和指纹信息b,然后计算Wc∙b=(H(pw)⊕H(b))c∙b,然后将其发送给服务器。
Step3:
U→S:A2,gy
用户收到消息后计算Wb=(H(pw)⊕H(b))b,然后使用Wb和P恢复R,即Rep(Wb,P)→R,再用R解密A1得到NU,验证NU,如果与之前自己选取的随机数NU不一致,则拒绝,否则用R加密NS和ID,并随机选取,计算gy,将,gy发送给服务器,同时计算sk=H(gxy||ID||NS||NU)。
服务器收到消息后用ER解密A2得到NS和ID,验证如果跟自己选取的随机数一致,则计算sk=H(gyx||ID||NS||NU|=H(gxy||ID||NS||NU)。
用户和服务器最终以sk=H(gxy||ID||NS||NU)最为会话密钥进行安全通信。
该协议中用户口令和指纹信息都是通过hash和离散对数处理后进行传输和存储的,因此对用户与服务器之间的通信信道没有安全性要求,也不要求服务器必须可信,符合实际的部署场景,保证了协议的可行性。在会话密钥协商阶段,服务器和用户通过盲签名和模糊提取技术实现了云环境下用户与服务器的双向认证,同时基于计算性Diffie-Hellman问题的困难性和哈希函数的随机性交换会话密钥,保证了会话密钥的安全性,并能有效地抵抗重放攻击、恶意服务器攻击、不可检测在线字典攻击、离线字典攻击。
(1)语义安全性
因为用户和服务器传递用户口令、指纹信息以及验证信息时都使用了哈希、离散对数或加密处理,并且使用盲签名和模糊提取技术对验证数据进行处理,因此,改进协议相对于外部敌手来说是语义安全的。
(2)密钥保密性
前向安全性:若E窃取了用户的口令和指纹信息,基于计算性Diffie-Hellman问题的困难性,他无法从截获的消息gx和gy计算出gxy,也就无法计算出之前的会话密钥sk=H(gxy||ID||NS||NU),从而保证了协议的前向安全性。
(3)用户口令、指纹信息和验证密钥的安全性。
用户口令、指纹信息和验证密钥都不直接保存在用户端和服务器端,而是通过hash和离散对数处理后保存在服务器端,所以不存在泄漏可能。同时验证密钥也是盲签名和模糊提取技术生成,所以攻击者不可能获取用户口令、指纹信息和验证密钥。
(4)用户与服务器之间的双向认证。
因为验证用户和服务器的过程中都加入了随机数,并使用模糊提取技术生成的验证密钥进行加密,保证了只有拥有真正口令和指纹信息的用户以及注册时的服务器才能加密对方选取的随机数并解密获取和验证自己的随机数,因此,保证了服务器与用户之间身份的双向认证。
(5)对抗重放攻击、恶意服务器攻击、不可检测在线字典攻击、离线字典攻击。
重放攻击:因为验证用户和服务器的过程中都加入了随机数并使用模糊提取技术生成的验证密钥进行加密,所以攻击者不能通过对方的验证,也就无法假冒任何一方发动重放攻击。
恶意服务器攻击:因为服务器并不拥有也不存储用户的指纹信息,因此无法伪冒自己域中用户或其他域中用户进行盲签名,也就无法通过其他服务器的验证,更无法进行后续的密钥交换,故不存在恶意服务器攻击。
不可检测在线字典攻击:敌手选择一个pwd'和b'作为用户的候选口令和指纹信息,然后选择一个随机数发送给服务器后,服务器随机选取c向敌手发送Wc,敌手计算以及W'cb',服务器收到后计算,显然≠,服务器马上能检测到敌手的攻击。
离线字典攻击:如果攻击者选择离线字典攻击,攻击者同样从口令空间中选取一个候选口令和候选指纹信息b'作为用户的真实口令和指纹信息,攻击者通过截获真实会话中的任意一个消息来验证候选口令和候选指纹信息b'的正确性。因为涉及到用户口令、指纹信息和验证密钥的消息都被Hash函数、离散对数或盲签名以及模糊提取技术处理过,由于Hash函数的不可逆性和离散对数问题的困难性以及盲签名和模糊提取技术的安全性可知攻击者从真实消息中验证口令和指纹正确的概率几乎为零。
本文的云环境下基于指纹和口令认证的密钥交换协议结合了口令认证的简单、指纹认证的安全便携,以及离散对数、计算性Diffie-Hellman的高可靠等特点,具有语义安全性,密钥保密性、前向安全性,且能对抗重放攻击、恶意服务器攻击、离线字典攻击、不可检测在线字典攻击等常见攻击。借助哈希函数、离散对数、计算性Diffie-Hellman问题、盲签名和模糊提取技术既实现了服务器与用户之间的双向认证,又保证了传输数据的完整性和真实性,安全可靠地实现了云环境下用户与服务器之间的密钥协商与共享。