舒 琴,王圣宝,韩立东
(杭州师范大学信息科学与工程学院,浙江 杭州 311121)
1981年,Lamport[1]提出首个基于可记忆口令的用户身份认证协议.口令基认证协议沿用至今,具有极好的易用性.1997年,Yen和Liao[2]指出在传统口令基协议中,服务器上维护的口令列表的丢失,将导致敌手针对用户的冒充攻击.为避免口令列表的使用,Hwang等[3]在2000年首次将智能卡引入口令基认证协议.随后,为消除所谓的智能卡被盗攻击,研究者又进一步引入生物信息(包括指纹、掌纹以及声音等)来作为第三类认证因子.2002年,Lee等[4]提出首个同时使用口令、智能卡和指纹这三类认证因子的认证协议.不久,许多三因子认证协议被陆续提出[5-7].
大多数现有认证协议都基于单服务器模式,它要求用户对每一个想要访问的服务器都执行注册程序,以获得访问权限.在许多实际应用中,为了提高可扩展性、可用性和运行效率,可采用多服务器认证架构.这种架构中,只要求用户在注册中心服务器注册一次,便可借此访问该系统中其他服务器.
最近,Lwamo等[8]提出了一个全新的多服务器环境下的三因子认证协议,并声称该协议安全且高效.我们对该协议进行了详细的安全审查,结果发现它无法抵抗多种攻击,例如拒绝服务攻击、智能卡被盗攻击和用户伪造攻击等.进一步,本文针对这些安全缺陷分别提出相应改进措施.
Lwamo等的协议假设注册中心和授权服务器基于可信计算架构,可确保敌手无法从注册中心及授权服务器上获取主密钥.该协议包含4个阶段,即服务器注册阶段、用户注册阶段、登录认证阶段、口令修改阶段.
表1给出了本文使用的符号及其含义.
表1 符号及其说明Tab.1 Notations and their descriptions
4)SK=H(a‖Vi‖SIDj‖b)
2)SC收到新的口令后计算Vi=Xi⊕H(H(H(IDi‖Ri‖PWi)⊕BIOi))和Xinew=Vi⊕H(H(H(IDi‖Ri‖PWi)⊕BIOi)).最后,SC将内存中的Xi替换为Xinew.
该协议无法抵抗拒绝服务攻击、智能卡被盗攻击和用户伪造攻击.下面,逐一给出这些攻击的详细描述,并紧接着提出改进措施.
改进建议造成上述用户登录异常的主要原因是将指纹信息直接作为了哈希函数的输入,存在如下两种改进方案:
方案1 使用模糊提取器对用户录入的生物信息进行提取.模糊提取器使用容错的方法可靠地对生物信息BIO做出微调.如果每次录入的生物信息与BIO相比只有验证阈值[10]内的微小改变,那么提取器将提取出BIO.一个模糊提取器包括一对高效的随机函数,生成函数Gen()和再生函数Rep(),具体定义如下:
·Gen(BIO)=(R,P),BIO为用户的生物信息,R和P为Gen()生成的随机字符串.P将被公开,R为用户私有.
·R*=Rep(BIO*,P),其中BIO*为用户录入的生物信息.
方案2 采用低误差率的Biohashing函数[11]替代Lwamo等使用的单向哈希函数.Biohashing是一种将生物信息随机映射到具有用户特定标记的伪随机二进制字符串上的技术.这个二进制字符串被称为“生物哈希密钥”.在验证一个生物信息时,通过比较其生物哈希密钥与SC中存储的生物哈希密钥之间的汉明距离得到识别结果.Biohashing可降低拒绝登录的概率,同时不增加错误接收的概率.
本文详细指出了Lwamo等所提出的新协议中存在的若干安全漏洞,例如无法抵抗拒绝服务攻击、智能卡被盗攻击和用户伪造攻击;分析了该协议无法抵抗这些攻击的内在原因,并相应提出了改进措施.