基于随机字符组的动态口令身份认证方法

文档序号:7685120阅读:195来源:国知局

专利名称::基于随机字符组的动态口令身份认证方法
技术领域
:'本发明主要涉及到计算机系统下的身份认证领域,特指一种基于随机字符组的动态口令身份认证方法。
背景技术
:众所周知,身份认证是一切信息安全的基础。当前网络或计算机系统采用的身份认证技术主要有五种,即静态口令、密码保护卡、动态口令、PKI和数字证书以及生物特征识别。静态口令由于简单易用,当前使用最为普遍,但其安全性极差,仅能应用于对安全要求不高的场合。密码保护卡是一个一n数字矩阵,用户将帐号与密码保护卡绑定后,每次登录系统时将收到来自系统的随机提示,用户只需填入密码保护卡上相应坐标的数字即可登陆。密码保护卡使用成本低,操作比较简单,安全性高于静态密码。但其存在携带不方便,使用麻烦等缺点,而且其安全性不够高,木马通过监控用户的每一次输入,即可破解。因而密码保护卡的使用寿命短。目前作为一种辅助手段,配合静态密码保护帐号。PKI和数字证书技术的安全性较高,其除了身份认证以外还能提供数字签名功能以实现不可否认的特征,但是这种系统使用比较麻烦,管理较复杂,成本较高,因此目前只适用于需要数字签名等场合,而无法普及。生物特征识别的技术形式很多,虽然它们在安全性上有其特点,但是在实际使用中还存在一些问题,例如识别率不高、系统成本较高、远程识别困难、个人隐私难以保护等,所以fe前未在信息网络系统大量采用。动态口令技术由于口令一次一变,安全性较高。目前较多使用的是采用一种叫做令牌的动态口令生成器,用户根据令牌产生的一次性口令来登录系统。动态口令技术很好的适用于企业身份认证系统,但对于数量级别更大的互联网在线系统来说,大量的令牌需要的费用太高,令牌分发困难;另外由于令牌对于各种网络在线系统来说不具有通用性,以及令牌携带不方便,这些不足影响了动态口令技术的普遍使用。
发明内容本发明要解决的问题就在于针对现有技术存在的技术问题,本发明提供一种原理简单、操作简便、安全性更高、适用范围广、易推广的基于随机字符组的动态口令身份认证方法。为解决上述技术问题,本发明提出的解决方案为一种基于随机字符组的动态口令身份认证方法,其特征在于步骤为(1)设置用户密码用户从由K个字符组成的密码字符组中选取L个依次排列形成用户密码,其中0〈L〈K;(2)设置记忆矩阵编码用户设置并记住一个MXN的记忆矩阵,其中M与N可以相等,在记忆矩阵中每个方格内设置一个字符,保证所有方格内的字符均不相同;G)请求认证用户向计算机或服务器发出认证请求后,计算机或服务器随机生成一个与步骤(2)中记忆矩阵对应的生成矩阵,步骤(1)中密码字符组的K个字符随机布置于生成矩阵的方格内,生成矩阵的方格内包含所有K个字符且不重复;(4)找出动态口令:用户根据用户密码中第一位字符在生成矩阵中的具体位置MiNj,找出与生成矩阵对应的记忆矩阵中MiNj方格内的字符作为动态口令的第一位字符;依次类推,用户根据所有L个用户密码在生成矩阵的具体位置,找出其在与生成矩阵对应的记忆矩阵中方格内的字符作为动态口令的字符,按照用户密码的排列顺序,将各自对应的字符依次排列形成动态口令;(5)认证结束用户将步骤(4)中得到动态口令输入计算机或服务器,计算机或服务器根据步骤(1)到(4)的原则核对动态口令是否正确,完成身份认证。所述步骤(1)中密码字符组由10个阿拉伯数字09和26个英文字母az组成,其中K二36。所述步骤(2)中记忆矩阵和步骤(3)中生成矩阵均为3X3或3X4或2X3的方阵,36个字符分布于生成矩阵中的方格内,所有字符不重复出现。所述步骤(2)的记忆矩阵中所有字符组成字符集H,字符集H由IO个阿拉伯数字09和26个英文字母az组成。所述步骤(3)中,计算机或服务器随机生成一个与步骤(2)中记忆矩阵对应的生成矩阵,所述生成矩阵以图片格式呈现在用户面前。所述步骤(1)和步骤(2)在同一时间于计算机或服务器上完成,或者在计算机或服务器上完成步骤(1),然后通过手机与服务商联系完成步骤(2)。与现有技术相比,本发明的优点就在于1、本发明基于随机字符组的动态口令身份认证方法,具有原理简单、操作简便、安全性更高、适用范围广、易推广等优点;本发明的实现不需要专用的硬件设备,软件的开发实现简单,只需要在静态密码认证模式上简单升级;企业维护成本低,企业不涉及分发,更换令牌的维护,由于本方法使用简单,大大减少受理客服的成本。对用户来说,设置密码完全符合用户的使用习惯,设置矩阵编号是在一种平面空间上设置数字,容易记忆,査找字符也是一种直观操作,因而易于被普通老百姓接受,好推广;2、本发明基于随机字符组的动态口令身份认证方法,防截取能力好,入侵者通过检测键盘输入、搜索进程内存、拦截通信数据包、拷贝电脑屏幕等方式均不能窃取用户的帐号和密码等信息。本发明在帐号注册阶段,将用户密码和记忆矩阵编码分开设置,比如用手机短信通过移动网络设置密码,用PC通过门户网站设置矩阵编码。入侵者截取密码,没有截取矩阵编码,无法登录账号;同样截取矩阵编码,没有截取密码,也无法登录账号。这样大大减少密码泄密的概率。在账号登录阶段,入侵者截取字符图片和动态口令,也无法推算出密码和矩阵编码,当然不排除跟踪字符图片和动态口令的次数达到很多数目可以破解密码和矩阵编码,但是入侵者需要付出很大的时间和精力,从而是入侵者失去耐心;3、本发明基于随机字符组的动态口令身份认证方法,能够有效防止暴力穷举法盗取帐号和密码。由于最后生成的动态口令是动态变化的,是随字符图片变化的,因此能够有效防止入侵者的暴力穷举。入侵者很难准确的图片识别字符,给入侵者分析跟踪动态口令带来困难。本发明的字符图片与图片验证码技术能达到同样的技术效果,因而两者可以合二为一;4、本发明基于随机字符组的动态口令身份认证方法,防猜测能力增强,由于需要同时猜测密码和矩阵编号,大大降低猜测成功的概率;5、本发明基于随机字符组的动态口令身份认证方法,能够有效防止钓鱼攻击,有效防止入侵者做一个与系统同样的登录界面来欺骗用户,达到截取用户密码的目的。入侵者可以按自己的规律来显示字符图片,这样破解密码和矩阵编码可以大大减少跟踪字符图片和动态口令的次数。根据计算,入侵者就算采用这种方式来破解密码和矩阵编码,也需要骗取用户输入动态口令至少几十次。显然一种假登录界面一般只能欺骗用户一次或者几次。因此这种认证方法也能有效防止钓鱼攻击。图l是本发明的流程示意图。具体实施方式以下将结合附图和具体实施例对本发明做进一步详细说明。如图1所示,本发明基于随机字符组的动态口令身份认证方法,其步骤为-(1)设置用户密码用户从由K个字符组成的密码字符组中选取L个依次排列形成用户密码,其中(KL〈K;(2)设置记忆矩阵编码用户设置并记住一个MXN的记忆矩阵,其中M与N可以相等,在记忆矩阵中每个方格内设置一个字符,保证所有方格内的字符均不相同;(3)请求认证用户向计算机或服务器发出认证请求后,计算机或服务器随机生成一个与步骤(2)中记忆矩阵对应的生成矩阵,步骤(1)中密码字符组的K个字符随机布置于生成矩阵的方格内,生成矩阵的方格内包含所有K个字符且不重复;每个方格内的字符数可以相同也可以不同。(4)找出动态口令:用户根据用户密码中第一位字符在生成矩阵中的具体位置MiNj,找出与生成矩阵对应的记忆矩阵中MiNj方格内的字符作为动态口令的第一位字符,其中0<i<n,0<j<m;依次类推,用户根据所有L个用户密码在生成矩阵的具体位置,找出其在与生成矩阵对应的记忆矩阵中方格内的字符作为动态口令的字符,按照用户密码的排列顺序,将各自对应的字符依次排列形成动态口令;(5)认证结束用户将步骤(4)中得到动态口令输入计算机或服务器,计算机或服务器根据步骤(1)到(4)的原则核对动态口令是否正确,完成身份认证。在较佳实施例中,在步骤(3)中,计算机或服务器随机生成一个与步骤(2)中记忆矩阵对应的生成矩阵,所述生成矩阵以图片格式呈现在用户面前,字符字体为手写体,可以整张显示出来,也可以根据矩阵的排列分成若干组,每一组字符生成一张字符图片,字符组与字符图片一一对应。同时,也将步骤(1)和步骤(2)在同一时间于计算机或服务器上完成,或者在计算机或服务器上完成步骤(1),然后通过手机与服务商联系完成步骤(2)。实施例1:本实施例中,步骤(1)中密码字符由10个阿拉伯数字09和26个英文字母az组成,其中K二36。在步骤(2)中,记忆矩阵和步骤(3)中生成矩阵均为3X3的方阵,36个字符平均分布于生成矩阵中的方格内,所有字符不重复出现。记忆矩阵内所有字符组成字符集H,字符集H由10个阿拉伯数字09和26个英文字母az组成。其具体步骤为(1)设置用户密码abcl23(2)设置记忆矩阵编码,见下表l:表l<table>tableseeoriginaldocumentpage8</column></row><table>G).请求认证用户登录时,计算机或服务器随机生成以图片形式显示的与记忆矩阵对应的生成矩阵,见表2:表2<table>tableseeoriginaldocumentpage8</column></row><table>(4)找出动态口令用户根据用户密码计算动态口令,密码第一个字符为a,从以上生成矩阵中找含有a的图片,位于第一行第三列,由于设置的第一行第三列的记忆矩阵编码为3,那么动态口令的第一位为3。用户密码第二个字符为b,从以上生成矩阵中找含有b的图片,位于第二行第一列,由于记忆矩阵编码中第二行第一列的矩阵编码为6,那么动态口令的第二位为6。按照上面的方法,可以得出6位动态口令为365416。(5)认证结束计算机或服务器收到用户输入的动态口令365416后,査找生成矩阵中编号为3的位置的字符组是否存在密码第一个字符a,如果没有,认证失败,如果有,査找生成矩阵中编码为6的位置的字符组是否存在密码第二个字符b,如果有,继续以上类似的验证,直到6位口令验证完成;把验证结果返回用户。实施例2:本实施例中,步骤(1)中密码字符由10个阿拉伯数字09和26个英文字母az组成,其中K二36。在步骤(2)中,记忆矩阵和步骤(3)中生成矩阵均为3X4的方阵,36个字符平均分布于生成矩阵中的方格内,所有字符不重复出现。记忆矩阵内所有字符组成字符集H,字符集H由10个阿拉伯数字09和26个英文字母az组成。其具体步骤为-(1)设置用户密码设置密码def233d4(2)设置记忆矩阵编码,见下表3:表3<table>tableseeoriginaldocumentpage8</column></row><table>(3)请求认证用户登录时,计算机或服务器随机生成以图片形式显示的与记忆矩阵对应的生成矩阵,见表4:表4<table>tableseeoriginaldocumentpage9</column></row><table>(4)找出动态口令用户计算动态口令,用户密码第一个字符为d,从生成矩阵中找含有d的图片,位于第三行第四列,由于设置的记忆矩阵中第三行第四列的编码为a,那么动态口令的第一位为a。用户密码第二个字符为e,从生成矩阵中找含有e的图片,位于第三行第四列,由于设置的记忆矩阵中位于第三行第四列的矩阵编码为a,那么动态口令的第二位为a。用户密码的第三个字符为f,从生成矩阵中找含有e的图片,位于第一行第四列,由于设置的记忆矩阵中位于第一行第四列的矩阵编码为i,那么动态口令的第三位为i。按照上面的方法,可以得出8位动态口令为aaigiiac。(5)认证结束计算机或服务器收到用户输入的动态口令aaigiiac后,査找生成矩阵编码为a的位置的字符组是否存在用户密码第一个字符d,如果没有,认证失败,如果有,查找生成矩阵编码为a的位置的字符组是否存在用户密码第二个字符e,如果有,继续以上类似的验证,直到8位口令验证完成;把验证结果返回用户。权利要求1、一种基于随机字符组的动态口令身份认证方法,其特征在于步骤为(1)设置用户密码用户从由K个字符组成的密码字符组中选取L个依次排列形成用户密码,其中0<L<K;(2)设置记忆矩阵编码用户设置并记住一个M×N的记忆矩阵,其中M与N可以相等,在记忆矩阵中每个方格内设置一个字符,保证所有方格内的字符均不相同;(3)请求认证用户向计算机或服务器发出认证请求后,计算机或服务器随机生成一个与步骤(2)中记忆矩阵对应的生成矩阵,步骤(1)中密码字符组的K个字符随机布置于生成矩阵的方格内,生成矩阵的方格内包含所有K个字符且不重复;(4)找出动态口令用户根据用户密码中第一位字符在生成矩阵中的具体位置MiNj,找出与生成矩阵对应的记忆矩阵中MiNj方格内的字符作为动态口令的第一位字符;依次类推,用户根据所有L个用户密码在生成矩阵的具体位置,找出其在与生成矩阵对应的记忆矩阵中方格内的字符作为动态口令的字符,按照用户密码的排列顺序,将各自对应的字符依次排列形成动态口令;(5)认证结束用户将步骤(4)中得到动态口令输入计算机或服务器,计算机或服务器根据步骤(1)到(4)的原则核对动态口令是否正确,完成身份认证。2、根据权利要求l所述的基于随机字符组的动态口令身份认证方法,其特征在于所述步骤(1)中密码字符组由10个阿拉伯数字09和26个英文字母az组成,其中K=36。3、根据权利要求2所述的基于随机字符组的动态口令身份认证方法,其特征在于-所述步骤(2)中记忆矩阵和步骤(3)中生成矩阵均为3X3或3X4或2X3的方阵,36个字符分布于生成矩阵中的方格内,所有字符不重复出现。4、根据权利要求1或2或3所述的基于随机字符组的动态口令寿份认证方法,其特征在于所述步骤(2)的记忆矩阵中所有字符组成字符集H,字符集H由10个阿拉伯数字09和26个英文字母az组成。5、根据权利要求1或2或3所述的基于随机字符组的动态口令身份认证方法,其特征在于所述步骤(3)中,计算机或服务器随机生成一个与步骤(2)中记忆矩阵对应的生成矩阵,所述生成矩阵以图片格式呈现在用户面前。6、根据权利要求4所述的基于随机字符组的动态口令身份认证方法,其特征在于所述步骤(3)中,计算机或服务器随机生成一个与步骤(2)中记忆矩阵对应的生成矩阵,所述生成矩阵以图片格式呈现在用户面前。7、根据权利要求1或2或3所述的基于随机字符组的动态口令身份认证方法,其特征在于所述步骤(1)和步骤(2)在同一时间于计算机或服务器上完成,或者在计算机或服务器上完成步骤(1),然后通过手机与服务商联系完成步骤(2)。8、根据权利要求6所述的基于随机字符组的动态口令身份认证方法,其特征在于所述步骤(1)和步骤(2)在同一时间于计算机或服务器上完成,或者在计算机或服务器上完成步骤(1),然后通过手机与服务商联系完成步骤(2)。全文摘要一种基于随机字符组的动态口令身份认证方法,其步骤为(1)从由K个字符组成的密码字符组中选取并设置用户密码;(2)设置M×N的记忆矩阵,记忆矩阵中每个方格内设置一个字符且方格内的字符均不相同;(3)发出认证请求后,计算机或服务器随机生成与记忆矩阵对应的生成矩阵,密码字符组随机布置于生成矩阵的方格内,其中方格内包含所有字符且不重复;(4)用户根据用户密码中第一位字符在生成矩阵中的具体位置M<sub>i</sub>N<sub>j</sub>,找出与生成矩阵对应的记忆矩阵中M<sub>i</sub>N<sub>j</sub>方格内的字符作为动态口令的第一位字符;依次类推形成动态口令;(5)认证结束计算机或服务器判断用户输入的动态口令是否正确。本发明具有原理简单、安全性更高、易推广等优点。文档编号H04L9/32GK101316166SQ20081003169公开日2008年12月3日申请日期2008年7月7日优先权日2008年7月7日发明者张寄望申请人:张寄望
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1