著录项信息
专利名称 | 基于动态口令的身份鉴别方法 |
申请号 | CN01108417.0 | 申请日期 | 2001-05-11 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2002-12-18 | 公开/公告号 | CN1385781 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F7/58 | IPC分类号 | G;0;6;F;7;/;5;8查看分类表>
|
申请人 | 范平志;袁丁 | 申请人地址 | 四川省成都市西南交通大学北园4408号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 范平志,袁丁 | 当前权利人 | 范平志,袁丁 |
发明人 | 袁丁;范平志 |
代理机构 | 暂无 | 代理人 | 暂无 |
摘要
本发明公布了一种基于动态口令的用户身份鉴别方法,可以运用在诸如远程网络登录,数据库访问,电子商务,电子邮件等多种应用中。本发明具有以下特点:(1)不使用类似于IC卡这样的存储介质,以避免增加用户的额外开销;(2)可以抵御重传攻击,“中间人”攻击,字典攻击等,具有很好的安全性;(3)方案简单,易于编程实现。
1、一种基于动态口令的用户身份鉴别方法,其特征在于:该方法由下述注册阶段和验证阶 段组成,
(1)注册阶段:用户通过一个安全的信道在服务器端注册自己的身份证ID和口令S, 用户任意选择一个随机数N1,并利用选定的杂凑函数计算初始口令验证因子V1= E2(S//N1);在服务器端生成一个系统口令文件,该文件中的每一个记录由用户的身份证 ID,一个随机数N1和初始口令验证因子V1组成;
(2)身份鉴别阶段:对于第n次身份鉴别,n=1,2,3,…,按如下顺序进行,(a)用户 将自己的身份证ID及登录服务请求发送给服务器;(b)服务器由用户ID在系统口令文 件中查找用户口令验证因子Vn及用户前一次产生的随机数Nn,若查不到则拒绝服务;查 到后,服务器产生一个随机数Mn,将Hn1=MnVn与Hn2=Nn一起发回给用户;(c)在用 户端,用户使用口令S和接收到的数据Hn2’计算E(S//Hn2’)和E2(S//Hn2’),并用 E2(S//Hn2’)与接收到的数据Hn1’作异或运算,从而得到Mn’,同时产生一个新的随机 数Nn+1,将计算值Gn1=E(S//Hn2’)E(Mn’),Cn2=E2/S//Nn+1)E2(Mn’),Cn3= E(Nn+1//E2(S//Nn+1))和Cn4=Nn+1一起发送给服务器;(d)服务器端用已产生的随机数Mn 和计算值E(Mn)对接收到的Cn1’做异或运算,并计算Vn’=E(Cn1’E(Mn)),将计算 得到的Vn’与存储在服务器口令文件中的合法口令验证因子Vn进行比较验证;(e)若 Vn’≠Vn,则服务器将拒绝用户的登录请求,同时已有的用户口令验证因子Vn和随机数 Nn将保持不变;(f)若Vn’=Vn,则认为用户身份合法,并利用计算值E2(Mn)从接收到的 数据Cn2’中恢复出新的口令验证因子Vn+1’=Cn2’E2(Mn),同时做如下检验:判断等 式Cn3’=E(Vn+1’//Cn4’)是否成立,若成立,则服务器接受用户的服务请求,存储Vn+1 和Nn+1以供下次登录使用,已有的口令验证因子Vn=E2(S//Nn)和随机数Nn将被Vn+1’和 Cn4’取代;否则,服务器将拒绝用户的登录请求,已有的用户口令验证因子Vn和随机数 Nn将保持不变。
2、如权利1所述的方法,其特征为:服务器接收到用户的服务请求后,产生一个新的随机 数Mn,使用用户的口令验证因子将其屏蔽,并与用户上次产生的随机数Nn一起传给用户; Nn供用户产生其动态口令E(S//Nn)时使用,Mn供用户屏蔽其动态口令E(S//Nn)及新的口 令验证因子Vn+1=E2(S//Nn+1)时使用。
3、如权利1所述的方法,其特征为:服务器验证完用户的动态口令后,对用户新产生的口 令验证因子Vn+1和随机数Nn+1正确性进行验证,以确保服务器口令文件数据的安全性。
4、如权利1所述的方法,其特征为:客户端和服务器端选择MD5或SHA算法完成杂凑运算。
5、如权利1所述的方法,其特征为:在第n次登录时,用户使用自己的口令S和随机数Nn 做相应的运算,以恢复出服务器产生的随机数Mn。
6、如权利1所述的方法,其特征为:第n次登录时,用户使用自己的口令S和随机数Nn 产生自己的动态口令E(S//Nn),用服务器产生的随机数Mn的一次杂凑运算值E(Mn)将其 屏蔽,并发送给服务器,以供服务器验证其身份是否合法。
7、如权利1所述的方法,其特征为:第n次登录时,用户产生一个新的随机数Nn+1和新的 口令验证因子E2(S//Nn+1),用服务器产生的随机数Mn的两次杂凑运算值E2(Mn)将新的口 令验证因子屏蔽,将屏蔽值和随机数Nn+1一起传给服务器,以供服务器下次验证时使用。
8、如权利1所述的方法,其特征为:服务器在第n次鉴别时,首先使用Mn的一次杂凑运算 值E(Mn)和两次杂凑运算值E2(Mn)将用户的动态口令E(S//Nn)和新口令验证因子Vn+1 =E2(S//Nn+1)恢复出来。
9、如权利1所述的方法,其特征为:服务器在第n次鉴别时,需要判断等式Vn=E (Cn1’E(Mn))是否成立;若成立,则用户的身份合法,接受用户的服务请求,否则,拒 绝用户的服务请求。
10、如权利1所述的方法,其特征为:服务器在第n次鉴别并确认用户身份后,需要使 用用户新产生的随机数Cn4’=Nn+1和新的口令验证因子Vn+1’=Vn+1=E2(S//Nn+1)更换文件 记录中用户的随机数Nn和口令验证因子Vn=E2(S//Nn),以供下次验证时使用。
技术领域\n本发明涉及一种在网络通信中基于客户/服务器模式下客户端合法身份的安全鉴别的 方法。\n发明背景\n随着互联网应用,特别是电子商务的迅猛发展,网络用户的身份识别变得越来越重要。 目前,已出现许多身份识别方法,但最为流行并行之有效的是基于口令的身份鉴别方法。\n目前,基于口令的身份鉴别系统最为常用的做法是:用户在服务器端注册自己的用户 名和口令,然后服务器将用户名和口令保留在一个口令文件中。在用户登录识别时,用户 端输入用户名和口令并传给服务器;服务器端将接收到的信息与用户注册的用户名和口令 进行比较;若两者相同,则认为用户的身份是合法的,否则服务器将拒绝用户的登录访问 请求。一般而言,用户的口令在网络传送过程中是经过加密的,故具有一定程度的安全性。\n但是,该方法有两个明显的缺陷:(1)若服务器中保留的用户口令文件一旦丢失,则 系统中所有用户的口令均有可能被他人盗用,从而使整个系统均不安全;(2)一个非法的 第三者可以在口令传输过程中,通过网络截获用户的口令,无论该口令是否加密,非法入 侵者都可以使用该截获到的口令冒充合法用户骗取服务器的信任而登录系统,这就是密码 学中的所谓重传攻击。\n为了解决上述问题,一种方案是服务器首先将用户的口令作一次杂凑运算后再存放在 口令文件中。所谓杂凑运算或杂凑算法,就是将一个任意长的数字字符串X通过一个映射 方法变成一个较短的定长数字串,记为E(X)。杂凑运算的一个主要特性是已知X,我们很 容易计算E(X);反之,已知E(X),却难于计算出X。在这里,“难”定义成:即使世界上所 有计算机都用来计算,从E(X)计算出X也要花费数百万年的时间。打碎盘子就是一个很好 的杂凑运算的例子。把盘子打碎成数千片碎片是很容易的事情,然而,要把所有的碎片再 拼成一个完整的盘子,却是非常困难的事情。典型的杂凑算法有MD4、MD5、SHA等,详情 可参阅“吴世忠,祝世雄,张文政等译,《应用密码学:协议、算法与C源程序》,机械工 业出版社,第307-330页”。使用杂凑算法处理口令文件的好处是即便服务器保留的口令文 件丢失,也不至于暴露整个系统的用户口令。换言之,该方法可以解决上述的问题1,但仍 然无法解决问题2。因而,重传攻击的弱点依然存在。\n实际上,一个较好的解决思路是让用户每次请求服务时传输的口令信息动态变化。这 样,就可以有效地抵御重传攻击。目前,基于该思路的方法有许多种,比如中国专利 (98109269,97118429),以及美国专利(6161178,6088143)等。但是,这些方法均要使 用类似于IC卡这样的存储介质,并且存在以下的安全隐患和不足:(1)存在字典攻击的可 能性。为了便于记忆,用户口令一般只有4-8个字符,非法的第三方可以截获网上传输的 用户口令信息,进行字典遍历查找,从而使字典攻击成为一种可能;(2)由于用户要购买 类似于IC卡这样的存储介质,不可避免地要增加额外开销;(3)用户不管到世界上任何地 方去,都必须带上类似于IC卡这样的存储装置,否则无法上网登录,这给用户带来了许多 不便之处。\n基于上述分析,本发明提出了一个新的口令鉴别方案。该方案具有以下特点:(1)不 用类似于IC卡这样的存储介质;(2)可以抵御重传攻击;(3)可以抵御字典攻击;(4)方 案简单,易于编程实现。\n发明内容\n为了便于描述本项发明内容,下面先就相关数学符号作一个解释说明。\n(1)ID表示用户的身份证(如用户名),S表示用户的口令。这里需要说明的是S只 是用户登录请求时在口令录入界面中输入的内容,而实际上在网上传输的是对S 进行变换后的一个动态口令。而ID一旦选定,则不能变更。\n(2)E(X)表示对字符串X进行一次杂凑运算,E2(X)表示对X进行两次杂凑运算。\n(3)Nn表示用户在第n次鉴别时产生的一个随机数。\n(4)Mn表示服务器第n次鉴别时产生的一个随机数。\n(5)Vn表示用户的第n次口令验证因子,由服务器保留。用户每次成功登录后,Vn均 会被服务器更新为Vn+1,即它是一个动态变化的值。Vn’是服务器基于接收到的 用户数据计算得到的口令验证因子。由于数据通过不安全信道传输,故等式Vn= Vn’不一定成立。若Vn=Vn’,则认为用户身份合法;否则,用户身份非法。\n(6)Hnj(j=1,2)表示第n次鉴别时服务器发送给用户端的数据。由于数据通过不安 全信道传输,用户接收到的数据不一定是Hnj,为了区分,用Hnj’(j=1,2)表示。\n(7)Cnj(j=1,2,3,4)表示第n次鉴别时用户端发送给服务器的数据。由于数据通过不 安全信道传输,服务器接收到的数据不一定是Cnj,为了区分,用Cnj’(j=1,2, 3,4)表示。\n(8)表示通常意义下的异或运算符。\n(9)//表示级联运算符,例如,S//N1表示将用户口令S的尾部与随机数N1首部相连 接,从而形成一个更长的数据。\n本发明分为两个阶段:注册阶段和认证鉴别阶段。\n注册阶段(见图1)\n1、用户选择自己的身份证ID和口令S,选择一个随机数N1,再利用选定的杂凑函数计 算初始口令验证因子V1=E2(S//N1)。\n2、用户将身份证ID,随机数N1和计算值V1通过安全信道传给服务器(可通过面对面 直接递交、特快专递或挂号邮件递交)。\n3、服务器收到上述数据后,在服务器端生成一个系统口令文件,该文件中的每一个记 录由用户的身份证ID,一个随机数N1和初始口令验证因子V1组成。其中,V1将作为 用户的第一次口令验证因子。\n认证鉴别阶段(见图2)\n对于第n次身份鉴别,n=1,2,3,…,按如下顺序进行:\n1、用户将自己的身份证ID及登录服务请求发送给服务器;\n2、服务器由用户ID在系统口令文件中查找用户口令验证因子Vn及用户前一次产生的 随机数Nn,若查不到则拒绝服务;查到后,服务器产生一个随机数Mn,计算Hn1=MnVn, 即通过用户的口令验证因子将Mn屏蔽,然后将数据Hn1,Hn2=Nn发送给用户;\n3、用户使用口令S和接收到的Hn2’计算E(S//Hn2’)和E2(S//Hn2’),并用E2(S//Hn2’) 与接收到的数据Hn1’作异或运算,从而得到Mn’;产生一个新的随机数Nn+1,计算下 面的数据并发送给服务器,\nCn1=E(S//Hn2’)E(Mn’),Cn2=E2(S//Nn+1)E2(Mn’)\nCn3=E(Nn+1//E2(S//Nn+1)),Cn4=Nn+1\n注意:数据Cn1在第n次认证时使用,数据Cn2在第n+1次认证时使用,数据Cn3供服 务器检验新口令验证因子E2(S//Nn+1)和随机数Nn+1是否被人为修改或由于网络的不可 靠性使数据传输出现差错,从而确保整个系统的可靠性。\n4、服务器端用已产生的随机数Mn和计算值E(Mn)对接收到的数据Cn1’做异或运算,并 计算Vn’=E(Cn1’E(Mn)),将计算得到的Vn’与存储在服务器口令文件中的合法 口令验证因子Vn进行比较验证。\n5、若Vn’≠Vn,则认为用户身份非法,服务器将拒绝用户的登录请求,同时已有的用户 口令验证因子Vn和随机数Nn将保持不变。\n6、若Vn’=Vn,则认为用户身份合法,并利用计算值E2(Mn)从接收到的数据Cn2’中恢复 出新的口令验证因子Vn+1’=Cn2’E2(Mn),为确保服务器口令文件数据的安全性, 同时做如下检验:判断等式Cn3’=E(Vn+1’//Cn4’)是否成立。若成立,则服务器接 受用户的服务请求,存储Vn+1和Nn+1以供下次登录使用,已有的口令验证因子Vn= E2(S//Nn)和随机数Nn将被Vn+1’和Cn4’取代;否则,服务器将拒绝用户的登录请求, 同时已有的用户口令验证因子Vn和随机数Nn将保持不变。\n安全性分析\n本发明方案简单,易于编程实现。由于不使用类似于IC卡这样的存储介质,可以避免 增加用户的额外开销。此外,本发明还具有很好的安全性,可以抵御如下攻击:\n1、抵御重传攻击\n由于每次在信道上传的用户登录验证数据都不同,所以可抵御重传攻击。\n2、抵御“中间人”攻击\n所谓“中间人”攻击,指非法第三方通过截获相邻两次用户的动态口令,从而可以插 入自己的口令来伪造合法用户,对系统实施攻击。假设攻击者截获了下面两组数据:\nE(S//Nn)E(Mn),E2(S//Nn+1)E2(Mn)\nE(S//Nn+1)E(Mn+1),E2(S//Nn+2)E2(Mn+1)\n由于攻击者不知道E(Mn),E2(Mn),E(Mn+1),E2(Mn+1),E(Mn+2),E2(Mn+2),故攻击者不可能得到 E(S//Nn),E(S//Nn+1)或E(S//Nn+2)。所以,“中间人”攻击不会成立。\n3、抵御字典攻击\n假设攻击者截获了下面两组数据:\nNn,MnE2(S//Nn)\nE(S//Nb)E(Mn),E2(S//Nn+1)E2(Mn),Nn+1\n由于攻击者不知道Mn,S,E(Mn),E2(Mn),故攻击者不可能得到数据E(S//Nn)E(Mn)或 E2(S//Nn+1)E2(Mn),所以字典攻击不会成立。\n附图说明\n图1是用户的注册过程。\n图2是用户身份的鉴别过程。\n图3是用户端的程序流程图。\n图4是服务器端的程序流程图。\n实施方案\n本发明主要使用了随机数产生函数和一个安全的单向杂凑函数。为了安全起见,建议 选择MD5算法或SHA算法完成杂凑运算。\n以下举例说明本发明在电子邮件中的一个应用。假设用户已经注册完毕,下面是其鉴 别过程:\n鉴别过程\n1、用户将身份证ID以及要求接收电子邮件的服务请求发给邮件服务器。\n2、邮件服务器由用户ID在系统口令文件中查找用户口令验证因子Vn及用户前一次产生 的随机数Nn,若查不到则拒绝服务;查到后,服务器选择一个随机数Mn,计算Hn1= MnVn,即通过用户的口令验证因子将Mn屏蔽,然后将数据Hn1,Hn2=Nn发送给用户;\n3、用户使用口令S和接收到的Hn2’计算E(S//Hn2’)和E2(S//Hn2’),并用E2(S//Hn2’) 与接收到的数据Hn1’作异或运算,从而得到Mn’;产生一个新的随机数Nn+1,计算下 面的数据并发送给邮件服务器,\nCn1=E(S//Hn2’)E(Mn’),Cn2=E2(S//Nn+1)E2(Mn’)\nCn3=E(Nn+1//E2(S//Nn+1)),Cn4=Nn+1\n4、邮件服务器端用已产生的随机数Mn和计算值E(Mn)对接收到的Cn1’做异或运算,并 计算Vn’=E(Cn1’E(Mn)),将计算得到的Vn’与存储在服务器口令文件中的合 法口令验证因子Vn进行比较验证;\n5、若Vn’≠Vn,则认为用户身份非法,服务器将拒绝用户的登录请求,同时已有的用户 口令验证因子Vn和随机数Nn将保持不变。\n6、若Vn’=Vn,则认为用户身份合法,并利用计算值E2(Mn)从接收到的数据Cn2’中恢复 出新的口令验证因子Vn+1’=Cn2’E2(Mn),同时做如下检验:判断等式Cn3’= E(Vn+1’//Cn4’)是否成立。若成立,则邮件服务器接受用户的服务请求,存储Vn+1 和Nn+1以供下次登录使用,已有的口令验证因子Vn=E2(S//Nn)和随机数Nn将被Vn+1’ 和Cn4’取代,并执行第七步;否则,邮件服务器将拒绝用户的登录请求,同时已有 的用户口令验证因子Vn和随机数Nn将保持不变。\n7、邮件服务器从用户邮箱中取出电子邮件,并发送给用户。\n程序流程图\n为了便于描述,引入变量符号L。当服务器确认用户的身份合法且用户新产生的口令验 证因子E2(S//Nn+1)和随机数Nn+1没有被修改时,L=1;否则,L=0。图3表示用户端的程序流 程图,图4表示服务器端的程序流程图。
法律信息
- 2008-07-09
专利权的终止(未缴年费专利权终止)
专利权的终止(未缴年费专利权终止)授权公告日:2006.9.20
- 2006-09-20
- 2002-12-18
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 1 | | 2007-04-06 | 2007-04-06 | | |