具有私密保护及口令找回功能的身份认证方法

文档序号:2403636阅读:374来源:国知局

专利名称::具有私密保护及口令找回功能的身份认证方法
技术领域
:本发明属于计算机网络安全技术,具体涉及一种具有私密保护及口令找回功能的身份认证方法。
背景技术
:如今,人们越来越依赖于网络,各种各样的网络服务正在逐步渗透到人们的学习、生活、工作之中。但出于各种各样的原因,人们使用某个网络服务时往往需要先注册一个账号,然后在登录服务网站时要输入此账号及相应的口令。出于安全的考虑,一个人对于不同的服务网站,往往要设计不同的账号口令,例如,你绝不会将你的银行帐号口令用于你的QQ。在网络服务遍地开花的今天,一个人拥有5、6个甚至更多的账号并不稀奇。而且,不少网站规定了独特的账号与口令的设计规则,使得用户不能按自己的习惯"^殳计账号与口令。同时,一个经常发生且令人头疼的问题也随之而来,这就是口令的遗忘。尤其是那些不经常使用的邮箱或其他账号,其口令更易遗忘。为了使用户不至于因忘了口令而不能继续使用已有的账号,也为了服务器在清除用户长期不用的废弃账号时,尽可能少地连同用户希望继续使用的账号一起清除掉,不少服务器设置了"口令找回"功能。归纳起来,有以下几种方法1注册时用户提供某个邮箱地址,"找回口令"时,由服务器将新口令发到此邮箱中。2注册时设置"问题"与"答案",欲"找回口令"时,用户根据显示的问题,输入答案,若答案正确,则用户可重新设定口令或由服务器返回口令。3借助其他通信方式。例如,注册时用户提供手机号,"找回口令"时,由服务器将新口令发到用户手机中。4同时提供上述各种方法,用户可选择使用。方法l十分简便,但存在以下问题首先,其要求用户提供一个邮箱地址,这是一个极大的限制和不便,因为有相当一部分人是不经常使用电子邮件甚至从来不使用电子邮件的。对于不经常使用电子邮件的用户来说,其邮箱的口令更容易被遗忘。其次,发到用户邮箱的口令显然只能是明文或实质上是明文的,这是一个极大的安全隐患。此外,由于一个人的邮箱、QQ等需要与其他人交往的账号是近于公开的,若采用这种方法极易被人搞恶作剧,甚至成为一种新的安全问题。所以,这类网络服务不宜釆用这种方法。方法2目前也存在安全问题。这主要是问题答案以明文存储或者采用对称密钥加密算法加密,易遭受来自品行不端的网络管理员的攻击。方法3就目前而言,相对比较安全,但不够方i^更,而且许多人并不愿意向网站提供自己的手机号。从口令的安全性需求出发,口令安全需要能够抵御各种网络攻击。首先是保密性。对口令而言,保密性应当是除了用户本人外,其他任何人在任何条件下都无法知晓此口令,即口令应当具备个人隐私的特性。其次是具有绝对的认证性,即能够抵御各种主动攻击,保证在服务器端得到的口令信息,是直接来自于用户本人的。
发明内容本发明的目的在于提供一种在进行网络注册及口令找回时,对用户身份认证的方法。本发明的技术方案为具有私密保护及口令找回功能的身份认证方法,它是在用户进行网络注册和/或登陆时,对用户输入的原始数才务进行数据溶合隐去原始数据;再利用单向散列函数对数据溶合所得到的数据进行加密,然后仅将变换结果传输到服务器端,服务器程序在用户注册时存储这些变换结果,在用户登录或找回口令时将此变换结果与注册时所存储的结果进行比对来认证用户身份。所述用户进行网络注册时采用数据溶合技术隐去原始的"问题"与"答案"私密数据;利用单向散列函数对数据溶合所得到的"问题"与"答案"数据进行加密,然后仅将变换结果传输到服务器端然后将变换结果传输到服务器端;服务器程序存储此变换结果到用户账号记录中;所述由客户端程序实施下列操作(l)由用户选择一个服务器给出的"问题"并输入"答案";U)采用数据溶合方法将"账号"、"问题"与"答案"溶合,隐去原始的"答案"数据;(3)釆用单向散列函数加密由"问题"与"答案"等数据溶合所得到的数据,然后将变换结果传输到服务器端;服务器程序存^f渚此变换结果到用户账号记录中。用户执行找回"口令,,程序时,由客户端程序对用户输入的口令找回"问题,,"答案,,施行与注册时相同算法的处理,然后将变换结果传输到服务器端;服务器程序根据账号及此变换结果与用户账号记录中的数据进行比对,实现用户身份的认证,认证比对结果一致通过,则启动口令重置流程,否则作无效处理通过上述方法,使找回口令所需的"问题"与"答案,,数据成为网络管理员不可见的,从而可抵御来自品行不端的网络管理员或其他可看到"答案"的人士的攻击。同时,本发明也是一套完整的能够满足口令安全性需求的口令认证方法。本发明以上述技术为核心,由相互关联的数据库框架结构、注册方法、登录方法、口令找回方法几部分组成。A.数据库框架结构从保密及私密保护角度分,用户信息分为明文与私密信息两大类型。明文信息包括用户必须向网站提供的"真实"信息,如用户真实身份等;私密信息包括用户登录账号、口令、口令找回问题答案等。一般情况下,只需一张表存^c这些信息。表结构及各字段属性如下表所示。<table>tableseeoriginaldocumentpage7</column></row><table>说明1用户实名的含义与作用根据服务性质而变。例如,网上银行必是用户的真实姓名,而QQ只是一个化名而已。2登录账号是否加密可随服务性质而变。加密可进一步加强安全性。3身份证号不唯一,意味着同一个用户可使用多个账号。4未设口令找回问题字段。本发明采取在注册及找回口令时,由服务器提供若干标准问题,用户仅选择一个问题给出答案即可。实际上,本系统允许用户给出任意的结果。如此可给攻击者增加难度。B.数据溶合与单向散列函数"加密"1.数据溶合的概念数据溶合指将两组或更多的数据溶合成一组新的数据;欲从新数据推导出原数据是计算上不可行的。针对本发明所描述的口令找回问题的数据溶合模型有以下一般形式Y:R(公开数据,共享秘密数据,私密数据)或者Y二R(公开数据,有限集合数据,无限集合数据)其中,第一个参数(公开数据)至少对网络管理员是公开的,可取用户登录账号;第2个参数(有限集合数据)指从若干个预置数据中取一个数据,本发明中即由服务器提供的标准问题中用户所选择的问题;第3个参数(无限数据集合)即问题的答案。具体的算法R不限于下列所描述的一种,但须满足以下条件(l)欲从Y导出参数3在计算上是不可行的;(2)Y总有足够的长度(3)对于不同的参数,出现Y相同的概率极小。2.数据溶合算法R的描述设公开数据A二Aw-A-2.........AAA。((数据长度为m字节),参数有限集合数据B二BhB^.........B朋。((数据长度为n字节),参数无限集合数据C二ChCv—2.........Gd"((数据长度为v字节)。设Y二YwYj-2.........Y^Y。(数据长度为J字节,为描述简单起见,取J为固定值16)设D二dwdx—2.........ckW。(数据长度为X比特,X^X7。此处,X=112。以下均以J46进行描述))①若V=l,则扩展C到2字节长,即C=C0b7C0b6C0b5C0b4Cob3C0b2CoblCob0C0b0C0blC0b2C(Jb3C0b4C0b5C0b6C0b7,中,Cob7^^"h^Co的弟7位,依次类推,同时V变为2;②若V^14,则D二C,3d2.........CsdC。否则,扩展到14字节。例如,当V二13时,D=C13C12.........C2dCod3;又如,当V二3时,DK^dCoCAQAdQAdCoCA③Yk:AkaBkbCKC式中ka=DVKmodmkb=DVKmodnKC=DVKmodv其中,DVk是取自D中的7比特无符号整数DVk=d7K+6d7K+5d7K+4d7K+3d7K+2d7K+ld7K+o3.单向散列函数"加密,,与SHA-1算法利用单向散列函数的单向性变换,即可"加密"源数据。当源数据满足一定条件时,即使网络管理员或攻击者获得了变换结果,亦无法导出源数据,从而无法实施攻击。本方案建议采用SHA-l算法或安全性更强的SHA-224或SHA-256算法。SHA算法由美国国家标准和技术协会(NIST)与美国国家安全局(NSA)设计,并且被美国政府采纳,成为美国国家标准,于1993年颁布。SHA-1是其改进版,于1995年颁布。以下是根据本发明的具体需要经过删减的该算法的处理流程,分为4个步骤步骤l:构造512bit分组。首先,对输入的数据进行填充,使得数据位长度为448。填充比特串的最高位补一个l,其余位补O。其次,将64比特加在报文后表示报文的原始长度。为方便描述,将此分组记为16个32位字的组合(W。,W"W2,w3,w4,w5,w6,w7,ws,w9,w10,w,w12,w13,w14,w15)步骤2:初始化MD缓存。一个160位MD緩冲区用以保存中间和最终散列函数的结果。它可以表示为5个32位的寄存器(A,B,C,D,E)。初始化为A=67452301B=EFCDAB89C=98BADCFED=10325476E=C3D2E1F0并按big-endianformat(大端格式)存储。步骤3:处理分组。这是此算法的核心,包括4次循环,每次循环又包含20个循环处理步骤。4次循环具有相似的结构,但每次循环使用不同的基本逻辑函数,分别记为f"f2、f3和"。第i次循环中每一次小循环的运算逻辑为A,B,C,D,E—(E+fi(t,B,C,D)+S5(A)+Ut+Kt),A,S30(B),C,D其中fi线C,D)定义为t函数名运算0《t《19(BAC)V(BAD)20《t《39f2B0C〇D40《t《59f3(BAC)V(BAD)V(CAD)60《t《79t4B0C〇D表中,A:与运算;V:或运算;非运算;0:异或运算。S'=32bit参数循环左移L位。Ut=当t《15时,取分组的第t个字,即Ut=Wt;当t>16时,按下式计算Ut=S'(Ut-16〇Ut-140Ut.8〇Ut-3)式中S':32bit参数循环左移l位;0:异或运算。Kt=一个额外的常数值,如下表所示。t0《t《195A82793920《t《396ED9EBA140C8F1BBCDC60《t《79CA62C1D6+=模232加法运算。步骤4:输出。输出160位緩冲区MD的值。该方法利用数据溶合和利用单向散列函数对用户输入的原始"问题,,"答案"数据进行加密,大大提高了用户数据的私密性,使得网络管理员不易攻击,大大增加了网络安全,避免用户数据被盗造成用户的损失,适用于各种网络用户进行网络注册和/或登陆,特別是QQ网络注册和/或登陆,及口令找回,这样能有效地避免QQ号及Q币的被盗。图1用动态链"l妄库方式实施本发明时的网络应用系统示意图。图2用可执行应用程序方式实施本发明时的网络应用系统示意图。图3用脚本程序方式实施本发明时的网络应用系统示意图。图4用户注册流程图。图5用户登录流程图。图6找回口令流程图。具体实施方式1.动态《连4妄库方式(通用方式)如图l所示,客户机应用进程的cslog子进程与服务器端的一个sslog子进程协同完成本发明所描述的注册、登录、口令找回各个过程。服务器端可同时拥有多个sslog子进程。cslog子进程通过调用cslog.dll库函数生成;sslog子进程通过调用sslog.dll库函数生成。动态链接库分为2个库文件,不妨命名为cslog.dll与sslog.dll。其中,cslog.dll包括客户端的注册、登录、口令找回3个才莫块czhuce、cdenglu、cklzh;sslog.dll包括服务器端的4个模块szhuce、sdenglu、sklzh及idatabase。除idatabase外,每个模块^皮调用时作为一个线程运行,而idatabase^是供与用户数据库的接口及相关设置,包括网络参数设置。用本方式实施时,可在服务器与客户端传递服务器随才几产生的隐含附加数据,例如时间戳,以抵御重放攻击、替身攻击;替身攻击指使用伪造的客户端动态链接库模块替代原模块的攻击方式。亦可强制用户使用软键盘输入,以抵御客户端间谍软件盗取用户输入数据。基于本实施方式的应用系统可以是客户/服务器模式,也可以是浏览器/服务器模式。若在cslog.dll与sslog.dll各增加一个"设置与协商"才莫块,则可实现由用户选择具体的加密变换算法及抵御攻击的措施,提升系统的灵活性。2可执4亍应用程序方式如图2所示,客户机应用进程的cslog子进程(或模块)与服务器端的一个sslog子进程协同完成本发明所描述的注册、登录、口令找回各个过程。服务器端可同时拥有多个sslog子进程。用可执行应用程序方式实施的系统构成见附图2。本实施方式采用客户/服务器模式,分为客户程序与服务器程序2个应用程序。不妨命名为cslog.exe与sslog.exe。其中,cslog.exe程序包括客户端的注册、登录、口令找回3个才莫块czhuce、cdenglu、cklzh及其它应用模块;sslog.exe禾呈序包括月良务器端对应的3个才莫块szhuce、sdenglu、sklzh及其它应用模块。用本方式实施时,可在服务器与客户端传递服务器随机产生的隐含附加数据,例如时间戳,以抵御重放攻击、替身攻击;替身攻击指使用伪造的客户端动态链接库模块替代原模块的攻击方式。亦可强制用户使用软键盘输入,以抵御客户端间谍软件盗取用户输入数据。3脚本程序方式如图3所示,本实施方式采用浏览器/服务器才莫式,包4舌客户端脚本与服务器端脚本。不妨以ASP脚本为例,将与注册、登录、口令找回对应^f脚本文4牛分另l]命名为zhucel.asp、zhuce2.asp、denglu.asp、klzh.asp等。其中,注册过程用2个脚本文件,分作两个阶段实现,是为了降低实现难度。用户注册算法及流程,如图4所示,1用户进入注册页面第一页。2用户在客户端填写用户身份数据及用户登录账号。3用户发出"提交"命令。4在客户端对用户填写的数据进行完备性、合法性、合理性检测。若有问题,给出相应提示并返回l。5在客户端使用单向散列函数对用户登录账号进行加密变换。注册到服务器的账号实际上就是这种经过了变换的账号。(若应用服务器需要原始的账号,则取消本步骤)。6上传用户身份数据及账号数据到服务器端,同时保持客户端原始数据。7服务器进行账号冲突性检测,若有冲突,给出相应提示并返回2,令用户修改或重新输入数据;若无冲突,则创建新账号。8服务器发出进入用户注册页面第二页指令。9呈现用户注册页面第二页。IO用户在客户端继续填写口令、确认口令,选择口令找回问题并填写答案。11用户发出"提交"命令。12在客户端对用户填写的口令、确认口令进行有效性及一致性检测,对口令找回问题答案进行有效性检测。若有问题,给出相应提示并返回10。13在客户端顺序进行数据溶合计算YPW^R(账号,系统常量,口令)、YANS=R(账号,问题,答案),及单向散列函数计算,即ZPW=SHA1(YPW)、ZANS=SHA1(YANS),对口令、口令找回问题答案等进行加密变换。此处的系统常量指应用程序设定的永久性的秘密常量。14上传ZPW、ZANS等数据到服务器端,存入步骤7所建账号记录中。注意对于使用ASP/JSP—类脚本语言的算法实现,第二次上传凄t据到服务器时,需包含账号数据。一个简单且对用户友好的解决办法是在第二页表单中设置一个隐藏对象,用来存放服务器从第一次上传时获得的账号数据。用户登录算法及流程,如图5所示1客户端向服务器端发出服务请求。2服务器向请求客户发出进入登录页面指令,同时附上校验码图傳^(使用校验码技术抵御自动输入攻击)或/和加盖时间戳(抵御重放攻击)。3用户进入登录页面。4用户在客户端输入账号及口令。5用户发出"提交"命令。6在客户端使用单向散列函数对用户登录账号进行加密变换。(若应用服务器需要原始的账号,则取消本步骤)。7在客户端顺序进行数据溶合计算YPW二R(账号,系统常量,口令),及单向散列函数计算ZPW=SHA1(YPW),对口令进行加密变换。此处的系统常量指应用程序设定的永久性的秘密常量。8上传数据到服务器端。服务器端查找账号与口令均吻合的记录。若有则继续;若没有则给出4是示并返回2口令找回算法及流程如图6所示1客户端向服务器端发出服务请求。2服务器向请求客户发出进入口令找回页面指令,同时附上校验码图像(使用校验码技术抵御自动输入攻击)或/和加盖时间戳(抵御重放攻击)。3用户进入登录页面。4用户在客户端选择口令找回问题,并输入账号、口令找回问题答案、新口令、确认新口令。5用户发出"提交"命令。6客户端系统对新口令、确认新口令进行有效性及一致性检验,若有问题,则给出提示并返回4。7在客户端使用单向散列函数对用户登录账号进行加密变换。(若应用服务器需要原始的账号,则取消本步骤)。8在客户端顺序进行数据溶合计算YPW^R(账号,系统常量,'口令)、YANS=R(账号,问题,答案),及单向散列函数计算,即ZPW-SHA1(YPW)、ZANS=SHA1(YANS),对口令、口令找回问题答案等进行加密变换。此处的系统常量指应用程序设定的永久性的秘密常量。9上传数据到服务器端。10服务器端查找账号与口令找回问题答案均吻合的记录。若有则继续;若没有但输入未达到规定次数者则给出提示并返回2,否则关闭网页。为彻底防止试探性输入攻击可将输入次数存放在数据库中,设置新口令时置0,每次找回l俞入时加l。11服务器将新口令存入该账号记录。本发明并不限于上述描述的内容,具体实现时可进行一定的修改,例如,各图中均未对账号进行加密,具体实现时可根据系统需要取舍。图4、图6中的问题表中的问题是永久性的,只能在表尾添加新问题,而不能删除、修改或插入。图5、图6中的函数参数sysc即
发明内容中所述的系统常量,而出错处理应当向客户端返回相应的信息,且一般应给予用户有限次的重试才几会。权利要求1、一种具有私密保护及口令找回功能的身份认证方法,它是在用户进行网络注册和/或登陆时,对用户输入的原始数据进行数据融合隐去原始数据;再利用单向散列函数对数据溶合所得到的数据进行加密,然后仅将变换结果传输到服务器端,服务器程序在用户注册时存储这些变换结果,在用户登录或找回口令时将此变换结果与注册时所存储的结果进行比对来认证用户身份。2.如权利要求1所述具有私密保护及口令找回功能的身份认证方法,其特征在于所述用户输入的数据包括帐号、口令、问题与答案中的一种或一种以上。3、如权利要求1所述具有私密保护及口令找回功能的身份认证方法,其特征在于用户进行网络注册时釆用数据溶合技术隐去原始的"问题"与"答案"私密数据;利用单向散列函数对数据溶合所得到的"问题"与"答案"数据进行加密,然后仅将变换结果传输到服务器端;服务器程序存储此变换结果到用户账号记录中;用户执行找回"口令,,程序时,由客户端程序对用户输入的口令找回"问题""答案"施行与注册时相同算法的处理,然后将变换结果传输到服务器端;服务器程序才艮据账号及此变换结果与用户账号记录中的数据进行比对,实现用户身^f分的认证,认证比对结果一致通过,则启动口令重置流程,否则作无效处理。4、如权利要求1所述具有私密保护及口令找回功能的身份认证方法,其特征在于用户注册时,由客户端程序实施下列才喿作(l)由用户输入自拟的"问题,,及"答案,,,并将"问题,,数据以明文存入服务器端的数据库中;(2)采用数据溶合方法将"账号"、"问题"与"答案"溶合,隐去原始的"答案,,数据;(3)釆用单向散列函数加密由"问题"与"答案"等数据溶合所得到的数据,然后将变换结果传输到服务器端;服务器程序存储此变换结果到用户账号记录中;用户执行找回口令程序时,由服务器提供用户注册时存在数据库中的问题,提示用户输入答案。然后由客户端程序对用户输入的口令找回问题答案施行与注册时相同算法的处理,然后将变换结果传输到服务器端。服务器程序根据账号及此变换结果与用户账号记录中的数据进行比对,实现用户身份的i^证,认证通过比对结果一致,则启动口令重置流程,否则作无效处理。5、如权利要求1所述具有私密保护及口令找回功能的身份认证方法,其特征在于在用户注册时,由客户端程序实施下列操作(l)由用户选择一个服务器给出的"问题"并输入"答案";(2)采用数据溶合方法将"账号"、"问题"与"答案"溶合,隐去原始的"答案,,数据;(3)采用单向散列函数"加密"由"问题"与"答案"等数据溶合所得到的数据,然后将变换结果传输到服务器端。服务器程序存储此变换结果到用户账号记录中。用户执行找回口令程序时,由服务器提供用户注册时存在数据库中的问题,提示用户输入答案。然后由客户端程序对用户输入的口令找回问题答案施行与注册时相同算法的处理,然后将变换结果传输到服务器端。服务器程序才艮据账号及此变换结果与用户账号记录中的数据进行比对,实现用户身份的认证,认证比对结果一致通过,则启动口令重置流程,否则作无效处理。6、如权利要求l、3、4、5中的任意项所述具有私密保护及口令找回功能的身份认证方法,其特征在于数据溶合方法为Y二R(公开数据,共享秘密数据,私密数据)或者Y二R(公开数据,有限集合数据,无限集合数据)其中,参数公开数据指至少对网络管理员或系统管理人员是公开的,且一般情况下,其他第三方也是可见的;参数共享秘密数据指只有系统与用户双方可见的数据,有限集合数据指从若干个预置数据中取一个数据;无限数据集合即只有用户一方掌握的私密数据。其算法是设公开数据A二AM—A-2.........AAA。((数据长度为m字节),共享秘密数据B=Bn—.........B朋。((数据长度为n字节),私密数据C二a—(v-2.........C2C'C0((数据长度为v字节)。设Y二Y:-Jj-2.........Y2Y,Y。(数据长度为J字节,为描述简单起见,取J为固定值16)设D二dwdx-2.........dAdo(数据长度为X比特,X二JX7,此处,X=112。以下均以J二16进行描述))①若V=l,则扩展C到2字节长,即C=C0b7C0b6Cob5C0b4C0b3C0b2C0biC0boC0b0CobiC0b2Cob3C0b4Cob5C0b6Cob7,中,Cob7^^不Co的弟7位,依次类推,同时V变为2;②若V〉14,则D二d3d2.........C2dC。否则,扩展到14字节;例如,当V二13时,D=C13C12.........C2CiC0Ci3;又如,当V二3时,D-CudCoCsCiCiACiCoC^dCoQiCi③Yk二AkaBkbCKc式中<formula>formulaseeoriginaldocumentpage4</formula>其中,DVk是取自D中的7比特无符号整数:<formula>formulaseeoriginaldocumentpage4</formula>全文摘要本发明公开了一种具有私密保护及口令找回功能的身份认证方法。它是在用户进行网络注册和/或登陆时,对用户输入的原始数据进行数据溶合隐去原始数据;再利用单向散列函数对数据溶合所得到的数据进行加密,然后仅将变换结果传输到服务器端,服务器程序在用户注册时存储这些变换结果,在用户登录或找回口令时将此变换结果与注册时所存储的结果进行比对来认证用户身份。该方法利用数据溶合和利用单向散列函数对用户输入的原始“问题”“答案”数据进行加密,大大提高了用户数据的私密性,使得网络管理员不易攻击,大大增加了网络安全,避免用户数据被盗造成用户的损失,适用于各种网络用户进行网络注册和/或登陆。文档编号H04L9/32GK101145911SQ20071005370公开日2008年3月19日申请日期2007年10月30日优先权日2007年10月30日发明者程元斌申请人:江汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1