CN1276342C - 基于动态口令的身份鉴别方法 - Google Patents
基于动态口令的身份鉴别方法 Download PDFInfo
- Publication number
- CN1276342C CN1276342C CN 01108417 CN01108417A CN1276342C CN 1276342 C CN1276342 C CN 1276342C CN 01108417 CN01108417 CN 01108417 CN 01108417 A CN01108417 A CN 01108417A CN 1276342 C CN1276342 C CN 1276342C
- Authority
- CN
- China
- Prior art keywords
- user
- server
- password
- random number
- factor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公布了一种基于动态口令的用户身份鉴别方法,可以运用在诸如远程网络登录,数据库访问,电子商务,电子邮件等多种应用中。本发明具有以下特点:(1)不使用类似于IC卡这样的存储介质,以避免增加用户的额外开销;(2)可以抵御重传攻击,“中间人”攻击,字典攻击等,具有很好的安全性;(3)方案简单,易于编程实现。
Description
技术领域
本发明涉及一种在网络通信中基于客户/服务器模式下客户端合法身份的安全鉴别的方法。
发明背景
随着互联网应用,特别是电子商务的迅猛发展,网络用户的身份识别变得越来越重要。目前,已出现许多身份识别方法,但最为流行并行之有效的是基于口令的身份鉴别方法。
目前,基于口令的身份鉴别系统最为常用的做法是:用户在服务器端注册自己的用户名和口令,然后服务器将用户名和口令保留在一个口令文件中。在用户登录识别时,用户端输入用户名和口令并传给服务器;服务器端将接收到的信息与用户注册的用户名和口令进行比较;若两者相同,则认为用户的身份是合法的,否则服务器将拒绝用户的登录访问请求。一般而言,用户的口令在网络传送过程中是经过加密的,故具有一定程度的安全性。
但是,该方法有两个明显的缺陷:(1)若服务器中保留的用户口令文件一旦丢失,则系统中所有用户的口令均有可能被他人盗用,从而使整个系统均不安全;(2)一个非法的第三者可以在口令传输过程中,通过网络截获用户的口令,无论该口令是否加密,非法入侵者都可以使用该截获到的口令冒充合法用户骗取服务器的信任而登录系统,这就是密码学中的所谓重传攻击。
为了解决上述问题,一种方案是服务器首先将用户的口令作一次杂凑运算后再存放在口令文件中。所谓杂凑运算或杂凑算法,就是将一个任意长的数字字符串X通过一个映射方法变成一个较短的定长数字串,记为E(X)。杂凑运算的一个主要特性是已知X,我们很容易计算E(X);反之,已知E(X),却难于计算出X。在这里,“难”定义成:即使世界上所有计算机都用来计算,从E(X)计算出X也要花费数百万年的时间。打碎盘子就是一个很好的杂凑运算的例子。把盘子打碎成数千片碎片是很容易的事情,然而,要把所有的碎片再拼成一个完整的盘子,却是非常困难的事情。典型的杂凑算法有MD4、MD5、SHA等,详情可参阅“吴世忠,祝世雄,张文政等译,《应用密码学:协议、算法与C源程序》,机械工业出版社,第307-330页”。使用杂凑算法处理口令文件的好处是即便服务器保留的口令文件丢失,也不至于暴露整个系统的用户口令。换言之,该方法可以解决上述的问题1,但仍然无法解决问题2。因而,重传攻击的弱点依然存在。
实际上,一个较好的解决思路是让用户每次请求服务时传输的口令信息动态变化。这样,就可以有效地抵御重传攻击。目前,基于该思路的方法有许多种,比如中国专利(98109269,97118429),以及美国专利(6161178,6088143)等。但是,这些方法均要使用类似于IC卡这样的存储介质,并且存在以下的安全隐患和不足:(1)存在字典攻击的可能性。为了便于记忆,用户口令一般只有4-8个字符,非法的第三方可以截获网上传输的用户口令信息,进行字典遍历查找,从而使字典攻击成为一种可能;(2)由于用户要购买类似于IC卡这样的存储介质,不可避免地要增加额外开销;(3)用户不管到世界上任何地方去,都必须带上类似于IC卡这样的存储装置,否则无法上网登录,这给用户带来了许多不便之处。
基于上述分析,本发明提出了一个新的口令鉴别方案。该方案具有以下特点:(1)不用类似于IC卡这样的存储介质;(2)可以抵御重传攻击;(3)可以抵御字典攻击;(4)方案简单,易于编程实现。
发明内容
为了便于描述本项发明内容,下面先就相关数学符号作一个解释说明。
(1)ID表示用户的身份证(如用户名),S表示用户的口令。这里需要说明的是S只是用户登录请求时在口令录入界面中输入的内容,而实际上在网上传输的是对S进行变换后的一个动态口令。而ID一旦选定,则不能变更。
(2)E(X)表示对字符串X进行一次杂凑运算,E2(X)表示对X进行两次杂凑运算。
(3)Nn表示用户在第n次鉴别时产生的一个随机数。
(4)Mn表示服务器第n次鉴别时产生的一个随机数。
(5)Vn表示用户的第n次口令验证因子,由服务器保留。用户每次成功登录后,Vn均会被服务器更新为Vn+1,即它是一个动态变化的值。Vn’是服务器基于接收到的用户数据计算得到的口令验证因子。由于数据通过不安全信道传输,故等式Vn=Vn’不一定成立。若Vn=Vn’,则认为用户身份合法;否则,用户身份非法。
(6)Hnj(j=1,2)表示第n次鉴别时服务器发送给用户端的数据。由于数据通过不安全信道传输,用户接收到的数据不一定是Hnj,为了区分,用Hnj’(j=1,2)表示。
(7)Cnj(j=1,2,3,4)表示第n次鉴别时用户端发送给服务器的数据。由于数据通过不安全信道传输,服务器接收到的数据不一定是Cnj,为了区分,用Cnj’(j=1,2,3,4)表示。
(8)表示通常意义下的异或运算符。
(9)//表示级联运算符,例如,S//N1表示将用户口令S的尾部与随机数N1首部相连接,从而形成一个更长的数据。
本发明分为两个阶段:注册阶段和认证鉴别阶段。
注册阶段(见图1)
1、用户选择自己的身份证ID和口令S,选择一个随机数N1,再利用选定的杂凑函数计算初始口令验证因子V1=E2(S//N1)。
2、用户将身份证ID,随机数N1和计算值V1通过安全信道传给服务器(可通过面对面直接递交、特快专递或挂号邮件递交)。
3、服务器收到上述数据后,在服务器端生成一个系统口令文件,该文件中的每一个记录由用户的身份证ID,一个随机数N1和初始口令验证因子V1组成。其中,V1将作为用户的第一次口令验证因子。
认证鉴别阶段(见图2)
对于第n次身份鉴别,n=1,2,3,…,按如下顺序进行:
1、用户将自己的身份证ID及登录服务请求发送给服务器;
2、服务器由用户ID在系统口令文件中查找用户口令验证因子Vn及用户前一次产生的随机数Nn,若查不到则拒绝服务;查到后,服务器产生一个随机数Mn,计算Hn1=MnVn,即通过用户的口令验证因子将Mn屏蔽,然后将数据Hn1,Hn2=Nn发送给用户;
3、用户使用口令S和接收到的Hn2’计算E(S//Hn2’)和E2(S//Hn2’),并用E2(S//Hn2’)与接收到的数据Hn1’作异或运算,从而得到Mn’;产生一个新的随机数Nn+1,计算下面的数据并发送给服务器,
Cn1=E(S//Hn2’)E(Mn’),Cn2=E2(S//Nn+1)E2(Mn’)
Cn3=E(Nn+1//E2(S//Nn+1)),Cn4=Nn+1
注意:数据Cn1在第n次认证时使用,数据Cn2在第n+1次认证时使用,数据Cn3供服务器检验新口令验证因子E2(S//Nn+1)和随机数Nn+1是否被人为修改或由于网络的不可靠性使数据传输出现差错,从而确保整个系统的可靠性。
4、服务器端用已产生的随机数Mn和计算值E(Mn)对接收到的数据Cn1’做异或运算,并计算Vn’=E(Cn1’E(Mn)),将计算得到的Vn’与存储在服务器口令文件中的合法口令验证因子Vn进行比较验证。
5、若Vn’≠Vn,则认为用户身份非法,服务器将拒绝用户的登录请求,同时已有的用户口令验证因子Vn和随机数Nn将保持不变。
6、若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将保持不变。
安全性分析
本发明方案简单,易于编程实现。由于不使用类似于IC卡这样的存储介质,可以避免增加用户的额外开销。此外,本发明还具有很好的安全性,可以抵御如下攻击:
1、抵御重传攻击
由于每次在信道上传的用户登录验证数据都不同,所以可抵御重传攻击。
2、抵御“中间人”攻击
所谓“中间人”攻击,指非法第三方通过截获相邻两次用户的动态口令,从而可以插入自己的口令来伪造合法用户,对系统实施攻击。假设攻击者截获了下面两组数据:
E(S//Nn)E(Mn),E2(S//Nn+1)E2(Mn)
E(S//Nn+1)E(Mn+1),E2(S//Nn+2)E2(Mn+1)
由于攻击者不知道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)。所以,“中间人”攻击不会成立。
3、抵御字典攻击
假设攻击者截获了下面两组数据:
Nn,MnE2(S//Nn)
E(S//Nb)E(Mn),E2(S//Nn+1)E2(Mn),Nn+1
由于攻击者不知道Mn,S,E(Mn),E2(Mn),故攻击者不可能得到数据E(S//Nn)E(Mn)或E2(S//Nn+1)E2(Mn),所以字典攻击不会成立。
附图说明
图1是用户的注册过程。
图2是用户身份的鉴别过程。
图3是用户端的程序流程图。
图4是服务器端的程序流程图。
实施方案
本发明主要使用了随机数产生函数和一个安全的单向杂凑函数。为了安全起见,建议选择MD5算法或SHA算法完成杂凑运算。
以下举例说明本发明在电子邮件中的一个应用。假设用户已经注册完毕,下面是其鉴别过程:
鉴别过程
1、用户将身份证ID以及要求接收电子邮件的服务请求发给邮件服务器。
2、邮件服务器由用户ID在系统口令文件中查找用户口令验证因子Vn及用户前一次产生的随机数Nn,若查不到则拒绝服务;查到后,服务器选择一个随机数Mn,计算Hn1=MnVn,即通过用户的口令验证因子将Mn屏蔽,然后将数据Hn1,Hn2=Nn发送给用户;
3、用户使用口令S和接收到的Hn2’计算E(S//Hn2’)和E2(S//Hn2’),并用E2(S//Hn2’)与接收到的数据Hn1’作异或运算,从而得到Mn’;产生一个新的随机数Nn+1,计算下面的数据并发送给邮件服务器,
Cn1=E(S//Hn2’)E(Mn’),Cn2=E2(S//Nn+1)E2(Mn’)
Cn3=E(Nn+1//E2(S//Nn+1)),Cn4=Nn+1
4、邮件服务器端用已产生的随机数Mn和计算值E(Mn)对接收到的Cn1’做异或运算,并计算Vn’=E(Cn1’E(Mn)),将计算得到的Vn’与存储在服务器口令文件中的合法口令验证因子Vn进行比较验证;
5、若Vn’≠Vn,则认为用户身份非法,服务器将拒绝用户的登录请求,同时已有的用户口令验证因子Vn和随机数Nn将保持不变。
6、若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将保持不变。
7、邮件服务器从用户邮箱中取出电子邮件,并发送给用户。
程序流程图
为了便于描述,引入变量符号L。当服务器确认用户的身份合法且用户新产生的口令验证因子E2(S//Nn+1)和随机数Nn+1没有被修改时,L=1;否则,L=0。图3表示用户端的程序流程图,图4表示服务器端的程序流程图。
Claims (10)
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),以供下次验证时使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 01108417 CN1276342C (zh) | 2001-05-11 | 2001-05-11 | 基于动态口令的身份鉴别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 01108417 CN1276342C (zh) | 2001-05-11 | 2001-05-11 | 基于动态口令的身份鉴别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1385781A CN1385781A (zh) | 2002-12-18 |
CN1276342C true CN1276342C (zh) | 2006-09-20 |
Family
ID=4657236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 01108417 Expired - Fee Related CN1276342C (zh) | 2001-05-11 | 2001-05-11 | 基于动态口令的身份鉴别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1276342C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101282252B (zh) * | 2007-04-06 | 2011-01-26 | 盛大信息技术(上海)有限公司 | 基于网络的远程服务器的口令管理和登录方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100580680C (zh) * | 2003-06-09 | 2010-01-13 | 汤放鸣 | 一种用于计算机信息系统身份验证的口令验证系统和方法 |
US7555543B2 (en) * | 2003-12-19 | 2009-06-30 | Microsoft Corporation | Server architecture for network resource information routing |
CN101030855B (zh) * | 2006-03-02 | 2011-01-12 | 腾讯科技(深圳)有限公司 | 一种验证帐户注册信息的方法及服务器 |
CN103310161B (zh) * | 2012-03-14 | 2016-08-03 | 北京海泰方圆科技股份有限公司 | 一种用于数据库系统的防护方法及系统 |
CN105024826A (zh) * | 2015-08-06 | 2015-11-04 | 上海莱升信息科技有限公司 | 动态密码验证方法 |
CN106657068A (zh) * | 2016-12-23 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 登录授权方法和装置、登录方法和装置 |
CN109104290A (zh) * | 2018-10-26 | 2018-12-28 | 南京航空航天大学 | 一种无需重注册并支持离线认证的动态口令认证方法 |
-
2001
- 2001-05-11 CN CN 01108417 patent/CN1276342C/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101282252B (zh) * | 2007-04-06 | 2011-01-26 | 盛大信息技术(上海)有限公司 | 基于网络的远程服务器的口令管理和登录方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1385781A (zh) | 2002-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hakak et al. | Approaches for preserving content integrity of sensitive online Arabic content: A survey and research challenges | |
US8381272B1 (en) | Systems and methods for strengthening web credentials | |
Kim et al. | A design of user authentication system using QR code identifying method | |
US8495358B2 (en) | Software based multi-channel polymorphic data obfuscation | |
KR101006322B1 (ko) | 파일 처리 방법 및 파일 인증 방법 장치와 컴퓨터 판독가능한 매체 및 시스템 | |
US7069440B2 (en) | Technique for obtaining a single sign-on certificate from a foreign PKI system using an existing strong authentication PKI system | |
CN114868143A (zh) | 为与分布式账本相关联的交易进行目的地寻址 | |
CN1506873A (zh) | 在全异的网域之间验证和传送可核实授权的方法和系统 | |
CN101064602A (zh) | 一种密码输入方法及系统 | |
CN1925393A (zh) | 一种点对点网络身份认证方法 | |
CN1934823A (zh) | 匿名认证方法 | |
CN1276342C (zh) | 基于动态口令的身份鉴别方法 | |
CN1588853A (zh) | 一种基于网络的统一认证方法及系统 | |
CN101034985A (zh) | 一种利用动态码进行手机防伪的方法及系统 | |
CN1992592A (zh) | 动态口令认证系统和方法 | |
CN107276978A (zh) | 一种基于主机指纹的匿名网络隐藏服务溯源方法 | |
CN1700638A (zh) | 借助安全认证网关的企业网安全接入方法 | |
Puchalski et al. | Stegomalware detection through structural analysis of media files | |
CN1630844A (zh) | 用于存储和传送电子证书的方法 | |
Alzomai et al. | Display security for online transactions: SMS-based authentication scheme | |
CN110572392A (zh) | 一种基于Hyperledger网络的身份认证方法 | |
CN1599314A (zh) | 一种基于s/key系统双向认证的一次性口令验证方法 | |
CN117097472A (zh) | 一种协同签名的身份鉴别方法 | |
CN110505199A (zh) | 基于轻量级非对称身份的Email安全登录方法 | |
Chand et al. | Biometric Authentication using SaaS in Cloud Computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |