发明名称 一种移动商务身份认证方法
摘要 本发明提出了一种移动商务身份认证方法,该方法选择公钥密码体制中最高效的基于椭圆曲线的公钥密码体制来实现密钥协商。结合椭圆曲线算法的计算量小、安全性高的特点,将其用于产生公钥和私钥,实现不需第三方的公钥密码体制,并将其应用到客户端和服务器端的双向认证服务中。
申请公布号 CN101969446B 申请公布日期 2013.08.21
申请号 CN201010534263.2 申请日期 2010.11.02
申请人 北京交通大学 发明人 华蕊;张润彤;尚小溥;李丹丹;谷秀君;杨泽东;朱晓敏
分类号 H04L29/06(2006.01)I;H04L9/32(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 北京众合诚成知识产权代理有限公司 11246 代理人 黄家俊
主权项 一种移动商务身份认证方法,其特征在于,该方法选择基于椭圆曲线的公钥密码体制来实现密钥协商,将认证分成两级,第一级是移动设备对用户身份的认证,第二级是移动设备与服务器的双向身份认证;注册阶段完成用户的口令和密码选择、客户端和服务器端的公钥密钥产生;注册阶段流程为: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);H()为哈希函数;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、认证一次性口令OTPGi,口令散列值H(UPW),即CPi=EK(UID,OTPCi,H(UPW)),其中认证一次性口令OTPCi的计算如下:OTPCi=H(OTPSi‑1||Counter)对于第一次登录的用户,OTPC0=OTPS0=H(IMEI);||运算符表示两端的信息或文字进行连接,CPi为客户端的第i次认证口令;S2‑3:服务器接收CPi,利用K做解密,即执行DK(CPi),得到注册用户名UID、OTPCi、H(UPW),服务器比较UID、H(UPW),若与数据库中存储的相同,则计算OTPC′i,否则提示用户该用户无法享受此服务,OTPC′i的计算如下:OTPC′i=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);||运算符表示两端的信息或文字进行连接;SPi为服务器端的第i次认证口令;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,同步阶段完成。
地址 100044 北京市西直门外上园村3号北京交通大学科技处