浙江工业职业技术学院 王丽丽
美国科学家Leslie Lamport首次提出了利用散列函数产生一次性口令的思想,即用户每次同服务器进行身份认证时,在网上传输的认证口令都是一次有效的。即Lamport方式,但它最大的缺点就是计算量特别大,需要做大量的加密计算。
一次性口令技术在美国最初主要用于军事、情报、科研等对安全级别要求很高的部门。随着信息技术的发展,信息安全受到重视,一次性口令进入商用领域。欧洲的绝大部分银行,采用一次性口令技术对安全风险加以防范。
我国的中科院信息安全国家重点实验室于1998年研制一次性口令身份认证系统。之后,有许多公司开发出不同型号的一次性口令身份认证系统。
目前,我国多家银行在其内部操作员管理或网上银行中采用了一次性口令认证。网络游戏运营商,都先后推出了各自的一次性口令产品,包括矩阵式一次性口令卡和一体化令牌,这些一次性口令产品将为越来越多的网游玩家提供账户和虚拟资产保护。同时,在企业内部管理上,也运用远程用户访问身份认证、操作授权、技术人员进行系统和网络维护登录等操作。
一次性口令也称为动态口令。它是基于某种密码算法,将用户的身份代码和某种不确定因素作为密码算法的输入参数,经过算法变换得到一个变化的结果,将其作为用户的登录口令。认证服务器端使用相应的算法进行计算,并将计算结果与用户的登录口令进行比对,若相同则接受登录。由于在认证过程中产生的口令只能完成一次有效认证,即使非法用户截获了己经通过验证的正确口令,再次提交到认证服务器也不能通过验证,因此不必担心口令在传输认证期间被第三方监听到,从而提高登录过程的安全性。
一次性口令认证技术又发展了三种方式:
1.挑战/应答方式。它由服务器向客户端发送不同的挑战信息,服务器通过验证客户端的响应信息来进行身份认证。
2.时间同步方式。它需要客户端和服务器保持时间同步,双方利用相同的时间作为计算因子计算动态口令,以此实现身份认证。
3.以散列运算和异或运算等低复杂度的运算为基础,认证双方通过计算双方交换的认证数据进行一次性口令身份认证。这种方式的特点是设计简单、运算量较小,而且实施的成本也较低。
在移动支付中,安全性是影响移动商务发展的首要因素。移动支付中的安全需求有:
1.数据机密性。数据在传送中不被泄漏,未被授权的人不能读懂数据。
2.信息完整性。数据在传输存储中不会受到非法的修改,确保信息内容和顺序的完整性。
3.信息可认证性。只有通过认证的用户才可以在授权范围内访问相应的业务。
4.防抵赖性。买卖双方都必须对自己发出和接收的信息不可抵赖。
5.访问控制。确保用户仅仅看到所授权的信息。
一次性口令认证技术采用一次一密的认证方式,实现简单、成本低、无需第三方公证,十分适合移动支付环境。但它只支持服务器对用户的单向认证,无法防范假冒的服务器欺骗合法用户。因此,提出基于移动支付的一次性口令身份认证方案。
本方案设计思路为:
a.利用移动设备PIN码作为解锁码,应用IMEI为认证因子;
b.设计相关运算,避免随机数Ri在网络中明文传输,防止网络窃听;
c.利用基于身份的加密算法,设计实现双向认证,避免中间人冒充攻击;
d.设计代价较小的认证协议,满足移动终端的运算能力要求。
本方案主要有支付平台认证端、客户端及认证协议三部分。
1.支付平台认证端包含用户请求响应模块、用户认证模块和新用户注册模块。
●用户请求响应模块主要负责处理并响应客户端发来的各种请求信息。
●用户认证模块是负责接收并验证用户请求响应模块发送来的认证数据包,也是服务器端的主要功能模块。
●新用户注册模块是实现用户在第一次使用此身份认证方案之前必须在认证端服务器注册,并完成系统初始化。
2.客户端包含客户端请求及响应模块、客户端验证模块和客户端应答模块。
●客户端请求及响应模块负责在用户请求认证或注册服务时,按要求输入用户名和相关信息,将客户端软件生成的请求信息发送给服务器,并接收注册过程中或认证过程中的所有信息,转交至相应模块。
●客户端验证模块主要负责实现解密服务器的挑战信息,比对相关信息验证服务器身份。
●客户端应答模块主要实现移动用户应答信息的计算及产生。
3.认证协议设计分注册阶段和认证阶段两部分。
注册阶段具体流程如图1所示。
1)注册请求。移动用户使用移动终端唯一标识符IMEI作为用户名发送给认证服务器,生成口令为RC1=(IMEI)。
2)返回参数。认证服务器收到用户请求,验证IMEI是否存在于数据库中,若存在,返回已注册信息;否则,接受用户注册。发送给用户服务器公钥KSR,生成口令为RS1=KSR。
图1 注册阶段流程图
图2 认证阶段流程图
3)发送用户信息。用户得到服务器公钥,用其将用户信息加密后发送至认证服务器。生成口令为RC2=EKSR(t,IMEI),其中t为移动支付用户信息,由系统建立时设定。
4)返回注册结果。认证服务器使用服务器私钥KSS进行DKSS(EKSR(t,IMEI))运算,得到用户信息和IMEI,再根据用户公开信息计算出用户公钥,同时系统分配给移动用户一个通行密语SPP。最后把用户信息存到数据库中,建立移动用户的用户账户,并将SPP和注册成功信息发送给用户。
认证阶段流程如图2所示。
1)解锁。移动用户在手机令牌上输入PIN,如果PIN正确,移动终端解锁;否则不能解锁。
2)登录请求。移动终端解锁后,立即显示出用户登录页面。系统自动提取IMEI,使用服务器公钥进行加密,产生的口令为DPCi=EKSR(IMEI)。将口令通过GSM网络发送登录请求到认证服务器。
3)发送挑战信息。认证服务器使用服务器私钥进行解密运算DKSS(EKSR(t,IMEI)),得到IMEI。查询数据库比对移动用户IMEI,若IMEI不存在,返回未认证信息,否则进行下一步处理。服务器生成一个随机数Ri,计算H(IMEI,Ri),并用移动用户公钥KCR对Ri进行加密,生成口令DPSi=(EKCR(Ri),H(IMEI,Ri))发送至移动用户。
4)响应挑战。移动用户收到挑战信息后,用私钥KCS解密运算,提取出Ri和H(IMEI,Ri)。计算H’(IMEI,Ri),比对H(IMEI,Ri)和H’(IMEI,Ri)是否相等,若不相等,结束认证;若相等,则验证了服务器的身份,计算出H(SPP,R)作为应答数发送给认证端服务器。
5)认证结果。认证服务器暂存H(SPP,Ri),取出用户数据库中的SPP计算出H'(SPP,Ri)与收到H(SPP,Ri)进行对比。若相同,移动用户身份认证成功;否则返回认证失败信息。
6)若认证失败的次数大于2小于最大值,用户进入等待状态,在此状态用户输入任何口令都不起作用,同时以手机短信方式向注册用户发出报警。直到等待状态结束,用户才可以再次输入口令进行验证了。若认证失败的次数超过最大值,用户被锁定,认证服务器不再接收用户口令,通过短信方式通知用户到注册中心办理解锁业务。
一次性口令认证技术可以抵御重放攻击、口令猜测攻击等常见的静态口令的攻击,但其难以抵御中间人攻击。本文对一次性口令认证技术和移动支付的安全问题进行了全面分析,指出其存在安全隐患的原因,并在此基础上提出基于移动支付一次性口令认证协议的设计思路和设计内容。
[1]朱美佳.移动支付中动态口令身份认证方案研究[J].西安电子科技大学,2011,1.
[2]王晓娥.移动支付存在的主要问题及市场切入点分析[J].宁夏工程技术,2004,6.
[3]高雪,张焕国,孙晓梅.一种改进的一次性口令认证方案[[J].计算机应用研究,2006,23(6):127-128,132.
[4]王洪莹.移动商务身份认证系统的研究与设计[D].北京交通大学,2007,6.
[5]刘天法,冯启源,杨桂勇.基于一次性口令的认证技术的研究[J].计算机应用与软件,2007,8:177-179.
[6]隋品,方勇,李民,刘林超.一次性口令机制身份鉴别技术的改进设计和实现[J].信息与电子工程,2005,3(4):297-299.
[7]王敏,戴宗坤,方勇.一种新的一次性口令机制及其应用[J].计算机应用研究,2005.