一种移动商务身份认证方法

文档序号:7764421阅读:690来源:国知局
专利名称:一种移动商务身份认证方法
技术领域
本发明属于移动商务信息安全技术领域,尤其涉及一种移动商务身份认证方法及 系统。
背景技术
依据传统电子商务考虑的安全问题及移动商务自身的特点,移动商务在安全性上 需要达到移动终端本身的安全性、无线通信网络的安全性、移动商务中交易双方的身份认 证和不可否认性四个方面的要求,这四点安全性要求无一不以身份认证问题为实现安全性 要求的基础。由此可见,身份认证系统在安全系统中的地位极其重要,是最基本的安全服 务,其它的安全服务都要依赖于它。一旦身份认证系统被攻破,那么系统的所有安全措施将 形同虚设。黑客攻击的目标往往也就是身份认证系统。而作为安全系统中的第一道关卡, 身份认证机制在安全性要求比较高的移动商务系统中尤为显得重要。然而移动商务活动极 大程度地依赖于无线网络和移动终端。基于无线网络的开放性特征,移动平台的安全性成 为了移动商务的关键问题,移动终端存储量小、运算能力低和电池供应有限等特点增加了 实现移动平台安全性的难度。受限于无线网络和移动终端的特性,传统商务中发展较为成 熟的安全体制,无法直接应用于移动商务,给移动商务带来了极大的隐患。现有移动商务身份认证方案存在的主要问题包括(1)离线字典攻击。如果一次性口令以明文的方式在网络上传输,则攻击者能截获 它们,若动态口令之间的关系是一个已知的Hash函数,那攻击者就可以用这个函数来猜测 口令,若猜测结果与当前登录的口令相匹配,则用户剩下的登录口令自然也已经暴露。(2)公钥密码体制应用于移动商务环境下的局限性。现有身份认证系统大都使用 公钥密码体制,而公钥密码体制大都建立在大数运算的基础上,导致整个认证系统的运算 负载巨大,这是传统认证协议无法直接应用于移动商务环境的主要原因。(3)有限长的口令序列或哈希链需要重复注册。如果认证双方每次通过计算一定 长度N的口令序列或者哈希链值,在达到一定次数后,散列次数或序列次数已经用完,需要 重置。而且如果在移动终端一次性计算固定长度的哈希链值,由于该长度N通常是一个较 大的整数,多次散列将会影响移动终端的认证效率。(4) 口令序列方式容易遭受小数攻击。S/KEY OTP系统只能支持服务器对用户的 单方面鉴别,无法防范假冒的服务器欺骗合法用户。当用户向服务器请求认证时,攻击者首 先截获服务器传来的随机数(即种子值和散列次数值),再修改散列次数值为一个较小的 值,然后攻击者把伪造的随机数发给用户。用户用伪造的随机数计算登录口令,攻击者再次 截获用户传来的口令,解析出用户的通行密语,并根据真实的随机数,利用已知的单向函数 依次计算一次性口令,就可获知该用户后继的一系列口令,进而在一段时间内冒充合法用 户而不被察觉。(5)挑战/应答方式的运算负载可能不符合移动终端的运算能力。挑战/应答方 式多数应用于固定网络的PC计算,过于复杂的应答算法不适应于移动终端。
(6)时间同步方案不易在移动网络实现。如果要采用时间戳方案,移动终端的运算 效率和可信的时间服务器是最大的问题。由于移动商务的可信第三方认证机构的建设和发 展仍然不如固定网络,所以在移动网络中利用时间戳实现同步需要花费的代价是巨大的。(7)多数OTP方式没有支持双向认证。如果有攻击者截获服务器的认证信息,可以 利用窃取数据库、口令重放等手段冒充服务器来欺骗客户端。

发明内容
本发明的目的在于针对上述现有方案存在的问题,提供一种适用于移动商务环境 的身份认证方案,使得其能够快速、便捷、有效的保证移动商务的通信安全性。本发明的目的是通过如下技术方案实现的构建身份认证模型,该模型基本假设a)参与协议的主体包含诚实的合法用户和攻击者;b)密码系统是完善的,即只有掌握密钥的主体才能理解密文消息;c)无加密项冲突,即若有{MJK = (M2} κ,则一定有M1 = M2 ;或者若{Μ、= {M}Ki, 则一定有K1 = K2 ;d)密文块不能被篡改,也不能用几个小密文块组成一个新的大密文块;e) 一条消息中的两个密文块被视为分两次分别到达。模型符号说明C:参与认证的用户端。S 表示用来认证的服务器端。UID 用户注册提供的用户身份标识。UPW:用户提供的口令,在注册时第一次提供,存储在客户端。以后每次认证,用户 都需提供正确的用户密码。IMEI^-Pt-IgiK (International Mobile Equipment Identity), iii^^J 手机串号,IMEI作为客户端与服务器的认证口令因子而存在。HashO 哈希函数,为了叙述简便,以下使用H()代替。I I 运算符表示两端的信息或文字进行连接。ECC 服务器端生成的安全椭圆曲线密码系统的参数集。KUR:用户公钥。KUS:用户私钥。KSR:服务器公钥。KSS:服务器私钥。EO 加密过程。DO 解密过程。i 表示客户端第i次登录。CPi 客户端的第i次认证口令。SPi 服务器端的第i次认证口令。Counter 客户接受服务的次数。OTPCi 用于验证客户端身份的一次性因素。
OTPSi 用于验证服务器端身份的一次性因素。本发明所提供方案将认证分成两级,一是移动设备对用户身份的认证,二是移动 设备与服务器的双向身份认证。第一级验证使用该移动设备的用户为合法用户,第二级验 证移动设备和服务器的合法性,即不是仿冒的终端。若第一级验证没有通过,那么移动设备 与服务器间不会进行通信。若第一级验证通过,移动设备自动与服务器间通信,用户对过程 不可见,仅能知晓是否验证通过。注册阶段完成用户的口令和密码选择、客户端和服务器端的公钥密钥产生。由于 本模型采用的是二级验证的办法,实现手机丢失情况下,拾获者仍无法假冒进行交易,同时 利用公钥加密体制进行第一次密钥分配和敏感信息传输加密。初始阶段,用户在手机中注 册一个简单易记的注册用户名,并输入口令,作用为实现第一级验证。此用户名和口令始终 保存在手机内存卡中。注册阶段流程如下Sl-I 服务器端S初始化生成安全椭圆曲线,选取自己的公钥KSR和私钥KSS ;S1-2 客户端C向服务器端S发起注册请求;S1-3 服务器端S将椭圆曲线系统参数集ECC连同服务器公钥KSR发送给客户端 C ;S1-4 客户端C存储KSR,并根据安全椭圆曲线系统选取自己的密钥对KUR和KUS ;S1-5 用户输入注册用户名UID、口令UPW,客户端C存储UID和H(UPW),并向服务 器端S发送利用服务器公钥加密的注册用户名、经过散列的用户口令H(UPW)、移动设备标 识IMEI、用户公钥KUR以及生成随机数Ra,即EKSR _,H(UPEff),IMEI,KUR, Ra);S1-6 服务器端S接收到EKSR _,H(UPff),IMEI,KUR, Ra),利用服务器私钥做 DKSS(EKSR(UID, H(UPff),IMEI,KUR, Ra)运算,得到 UID、H(UPW)、IMEI 和 KUR。服务器验证 UID是否已经存在服务器的用户数据库中,如果存在,则向客户端C发送用户名重复的注册 失败信息;S1-7 如果UID验证成功,则服务器将UID与H(UPW)、H(IMEI)绑定,将服务计数 Counter初始化为0,将Counter与UID、H(IMEI)绑定;生成随机数Rb,计算H(Ra, Rb),生 成一次性因素OTPtl = H(IMEI)并向客户端发送注册成功信息m以及利用用户公钥KUR加 密的Rb和OTPtl,即(m,Ekue(Rb, OTP0),OTP0将作为认证阶段的随机因子而被服务器存储。S1-8 客户端C接收(m, Ekue(Rb, OTP0)),并利用用户私钥KUS解出Rb,OTP0,计算 H(Ra, Rb),存储在客户端C,将服务计数Counter也初始化为0,注册阶段完成;登录阶段流程如下S2-1 用户输入用户名UID、口令UPW,移动设备计算H(UPW),比较此计算值是否与 移动设备中存储的H(UPW)相同,若相同,继续;否则提示用户,口令错误;S2-2 移动设备向服务器端S发起登录请求,使用Ki = Hi (Ra,Rb) (i = Counter+1) 作为密钥,发送用K加密后的用户名UID、认证一次性口令OTPCi, 口令散列值H (UPW),即CPi =EK(UID,OTPCi, H(UPW)),其中认证一次性口令OTPCi的计算如下OTPCi = H (OTPSh I I Counter)对于第一次登录的用户,OTPCtl= OTPS0 = H(IMEI);S2-3 服务器接收CPi,利用K做解密,即执行Dli(CPi),得到注册用户名UID、0TPCi、H(UPW),服务器比较UID、H(UPW),若与数据库中存储的相同,则计算OTPC ‘i;否则提示用户 该用户无法享受此服务,OTPCi的计算如下OTPCi = H (OTPSh I I Counter)S2-4 若服务器计算出的OTPC、与OTPCi相同,则说明客户端合法;若计算结果 不正确,则终止会话,认证结束;S2-5 服务器端S验证客户端成功后,计算Hi+1 (Ra,Rb)作为下一次登陆的密钥,发 送用K加密的服务器端验证一次性口令OTPSi和成功信息,即SPi = Ek (成功信息,OTPSi), 其中认证一次性口令OTPSi的计算如下OTPSi = H (Counter | | OTPCi^1)对于第一次验证,OTPC0= OTPS0 = H(IMEI);S2-6 客户端C接收到服务器的信息后利用K解密,计算OTPS’ i,与解密得到的 OTPSi比较,若相同,则说明服务器合法,否则终止会话,认证结束;32_7:客户端(计算庄+10^,Rb)作为下一次登陆的密钥,并和服务器端S的 Counter分别增加1 ;同步情况为用户手机未丢失的情况。当一次性口令认证不成功时,服务器要求移 动终端与服务器进行同步,通过IMEI码的比对验证用户合法性。同步阶段流程如下S3-1 用户输入用户名UID、口令UPW,移动设备计算H(UPW),比较此计算值是否与 移动设备中存储的H(UPW)相同,若相同,继续;否则提示用户,口令错误;S3-2:移动设备向服务器端S发起登录请求,发送用服务器公钥加密后的用户名 UID、认证一次性口令 OTPCi, 口令散列值 H(UPW),即 CPi = Ekse(UID, OTPCi, H(UPff));S3-3 服务器接收CPi,利用KSS做解密,即执行Dkss (CPi),得到注册用户名UID、 OTPCpH(UPW),服务器比较UID、H(UPW),若与数据库中存储的相同,则计算OTPC ‘i;发现不 相同,向客户端发送同步请求;S3-4 客户端C将移动设备标识IMEI加密后传送给服务器端,即Eksk(IMEI);S3-5 服务器端S接收到Ekse (IMEI),利用服务器私钥做Dkss (IMEI)运算,得 到IMEI ;服务器端验证IMEI与本地储存的IMEI是否相同,若相同,则发送Ekuk(OTPCV1, OTPSp1,Counter)给客户端进行同步;S3-6 客户端 C 接收 Ekiik(OTPCh,OTPSi^1, Counter),并利用用户私钥 KUS 解出 OTPCV1,OTPS",Counter,存储在客户端C,同步阶段完成。本发明的有益效果包括(1)消除用户重复注册以满足系统对用户名唯一性的要求所给用户带来的不便;(2)使用高效的公钥加密算法进行重要信息的传说或密钥协商;(3)实现双向认证,防抵赖,防攻击;(4)密钥管理简化,减轻客户端和服务器端的工作压力;(5)与移动电子商务的背景相协调,认证过程消除随机散列值和时间因素带来的 同步问题,使认证过程简化。


下面结合附图对本发明作详细说明图1为身份认证模型架构权利要求
一种移动商务身份认证方法,其特征在于,该方法选择基于椭圆曲线的公钥密码体制来实现密钥协商,将认证分成两级,第一级是移动设备对用户身份的认证,第二级是移动设备与服务器的双向身份认证;注册阶段完成用户的口令和密码选择、客户端和服务器端的公钥密钥产生;注册阶段流程为S1 1服务器端S初始化生成安全椭圆曲线,选取自己的公钥KSR和私钥KSS;S1 2客户端C向服务器端S发起注册请求;S1 3服务器端S将椭圆曲线系统参数集ECC连同服务器公钥KSR发送给客户端C;S1 4客户端C存储KSR,并根据安全椭圆曲线系统选取自己的密钥对KUR和KUS;S1 5用户输入注册用户名UID、口令UPW,客户端C存储UID和H(UPW),并向服务器端S发送利用服务器公钥加密的注册用户名、经过散列的用户口令H(UPW)、移动设备标识IMEI、用户公钥KUR以及生成随机数Ra,即EKSR(UID,H(UPW),IMEI,KUR,Ra);S1 6服务器端S接收到EKSR(UID,H(UPW),IMEI,KUR,Ra),利用服务器私钥做DKSS(EKSR(UID,H(UPW),IMEI,KUR,Ra))运算,得到UID、H(UPW)、IMEI和KUR。服务器验证UID是否已经存在服务器的用户数据库中,如果存在,则向客户端C发送用户名重复的注册失败信息;S1 7如果UID验证成功,则服务器将UID与H(UPW)、H(IMEI)绑定,将服务计数Counter初始化为0,将Counter与UID、H(IMEI)绑定;生成随机数Rb,计算H(Ra,Rb),生成一次性因素OTP0=H(IMEI)并向客户端发送注册成功信息m以及利用用户公钥KUR加密的Rb和OTP0,即(m,EKUR(Rb,OTP0),OTP0将作为认证阶段的随机因子而被服务器存储。S1 8客户端C接收(m,EKUR(Rb,OTP0)),并利用用户私钥KUS解出Rb,OTP0,计算H(Ra,Rb),存储在客户端C,将服务计数Counter也初始化为0,注册阶段完成;登录阶段流程如下S2 1用户输入用户名UID、口令UPW,移动设备计算H(UPW),比较此计算值是否与移动设备中存储的H(UPW)相同,若相同,继续;否则提示用户,口令错误;S2 2移动设备向服务器端S发起登录请求,使用Ki=Hi(Ra,Rb)(i=Counter+1)作为密钥,发送用K加密后的用户名UID、认证一次性口令OTPCi,口令散列值H(UPW),即CPi=EK(UID,OTPCi,H(UPW)),其中认证一次性口令OTPCi的计算如下OTPCi=H(OTPSi 1||Counter)对于第一次登录的用户,OTPC0=OTPS0=H(IMEI);S2 3服务器接收CPi,利用K做解密,即执行DK(CPi),得到注册用户名UID、OTPCi、H(UPW),服务器比较UID、H(UPW),若与数据库中存储的相同,则计算OTPC‘i,否则提示用户该用户无法享受此服务,OTPCi的计算如下OTPCi=H(OTPSi 1||Counter)S2 4若服务器计算出的OTPC‘i与OTPCi相同,则说明客户端合法;若计算结果不正确,则终止会话,认证结束;S2 5服务器端S验证客户端成功后,计算Hi+1(Ra,Rb)作为下一次登陆的密钥,发送用K加密的服务器端验证一次性口令OTPSi和成功信息,即SPi=EK(成功信息,OTPSi),其中认证一次性口令OTPSi的计算如下OTPSi=H(Counter||OTPCi 1)对于第一次验证,OTPC0=OTPS0=H(IMEI);S2 6客户端C接收到服务器的信息后利用K解密,计算OTPS’i,与解密得到的OTPSi比较,若相同,则说明服务器合法,否则终止会话,认证结束;S2 7客户端C计算Hi+1(Ra,Rb)作为下一次登陆的密钥,并和服务器端S的Counter分别增加1;当一次性口令认证不成功时,服务器要求移动终端与服务器进行同步,通过IMEI码的比对验证用户合法性,同步阶段流程如下S3 1用户输入用户名UID、口令UPW,移动设备计算H(UPW),比较此计算值是否与移动设备中存储的H(UPW)相同,若相同,继续;否则提示用户,口令错误;S3 2移动设备向服务器端S发起登录请求,发送用服务器公钥加密后的用户名UID、认证一次性口令OTPCi,口令散列值H(UPW),即CPi=EKSR(UID,OTPCi,H(UPW));S3 3服务器接收CPi,利用KSS做解密,即执行DKSS(CPi),得到注册用户名UID、OTPCi、H(UPW),服务器比较UID、H(UPW),若与数据库中存储的相同,则计算OTPC‘i,发现不相同,向客户端发送同步请求;S3 4客户端C将移动设备标识IMEI加密后传送给服务器端,即EKSR(IMEI);S3 5服务器端S接收到EKSR(IMEI),利用服务器私钥做DKSS(IMEI)运算,得到IMEI;服务器端验证IMEI与本地储存的IMEI是否相同,若相同,则发送EKUR(OTPCi 1,OTPSi 1,Counter)给客户端进行同步;S3 6客户端C接收EKUR(OTPCi 1,OTPSi 1,Counter),并利用用户私钥KUS解出OTPCi 1,OTPSi 1,Counter,存储在客户端C,同步阶段完成。
全文摘要
本发明提出了一种移动商务身份认证方法,该方法选择公钥密码体制中最高效的基于椭圆曲线的公钥密码体制来实现密钥协商。结合椭圆曲线算法的计算量小、安全性高的特点,将其用于产生公钥和私钥,实现不需第三方的公钥密码体制,并将其应用到客户端和服务器端的双向认证服务中。
文档编号H04L29/06GK101969446SQ20101053426
公开日2011年2月9日 申请日期2010年11月2日 优先权日2010年11月2日
发明者华蕊, 尚小溥, 张润彤, 朱晓敏, 李丹丹, 杨泽东, 谷秀君 申请人:北京交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1