一种认证动态口令的方法和设备的制造方法

文档序号:10473746阅读:270来源:国知局
一种认证动态口令的方法和设备的制造方法
【专利摘要】本发明公开了一种认证动态口令的方法和设备,该方法包括以下步骤:客户端与NFC动态令牌建立NFC通信,获取所述NFC动态令牌的令牌序列号以及来自所述NFC动态令牌的动态口令;所述客户端使用所述令牌序列号和自身保存的第二随机数,对所述动态口令进行加密,得到第三密文,并将所述第三密文、所述第二随机数和所述令牌序列号发送给令牌服务器;所述客户端接收应用服务器返回的认证成功消息或认证失败消息。本发明通过NFC通道获取NFC动态令牌生成的动态口令,并将该动态口令发送给令牌服务器进行认证,避免用户在手动输入动态口令时出错和泄密,提高了动态令牌的安全性。
【专利说明】
_种认证动态口令的方法和设备
技术领域
[0001]本发明涉及信息安全领域,特别是涉及一种认证动态口令的方法和设备。
【背景技术】
[0002]动态令牌是一种用于生成动态口令的设备,广泛应用于网银、电信运营商和电子政务等应用领域。动态令牌所生成的动态口令可用于身份认证,能够有效提高身份认证的安全性。
[0003]现有技术中,动态令牌生成动态口令后,需要由用户将动态口令手动输入到网页或者客户端,容易出错,且安全性较差。

【发明内容】

[0004]本发明提供了一种认证动态口令的方法和设备,以解决现有技术中的动态令牌安全性较差的缺陷。
[0005]本发明提供了一种认证动态口令的方法,包括以下步骤:
[0006]客户端与NFC动态令牌建立NFC通信,获取所述NFC动态令牌的令牌序列号以及来自所述NFC动态令牌的动态口令;
[0007]所述客户端使用所述令牌序列号和自身保存的第二随机数,对所述动态口令进行加密,得到第三密文,并将所述第三密文、所述第二随机数和所述令牌序列号发送给令牌服务器;
[0008]所述客户端接收应用服务器返回的认证成功消息或认证失败消息。
[0009]本发明还提供了一种认证动态口令的方法,包括以下步骤:
[0010]令牌服务器接收来自客户端的第三密文、第二随机数和令牌序列号,使用所述令牌序列号和所述第二随机数,对所述第三密文进行解密,得到动态口令;
[0011]所述令牌服务器根据所述令牌序列号检索对应的种子文件,使用检索到的种子文件,对所述动态口令进行认证,如果认证通过,则向应用服务器发送认证成功消息;否则,向应用服务器发送认证失败消息。
[0012]本发明还提供了一种客户端,包括:
[0013]通信模块,用于与NFC动态令牌建立NFC通信;
[0014]第一获取模块,用于获取所述NFC动态令牌的令牌序列号;
[0015]第二获取模块,用于获取来自所述NFC动态令牌的动态口令;
[0016]存储模块,用于保存第二随机数;
[0017]加密模块,用于使用所述令牌序列号和所述第二随机数,对所述动态口令进行加密,得到第三密文;
[0018]发送模块,用于将所述第三密文、所述第二随机数和所述令牌序列号发送给令牌服务器;
[0019]接收模块,用于接收应用服务器返回的认证成功消息或认证失败消息。
[0020]本发明还提供了一种令牌服务器,包括:
[0021]接收模块,用于接收来自客户端的第三密文、第二随机数和令牌序列号;
[0022]解密模块,用于使用所述令牌序列号和所述第二随机数,对所述第三密文进行解密,得到动态口令;
[0023]检索模块,用于根据所述令牌序列号检索对应的种子文件;
[0024]认证模块,用于使用所述检索模块检索到的种子文件,对所述动态口令进行认证;
[0025]发送模块,用于在所述认证模块对所述动态口令认证通过后,向应用服务器发送认证成功消息;在所述认证模块对所述动态口令认证未通过后,向应用服务器发送认证失败消息。
[0026]本发明通过NFC通道获取NFC动态令牌生成的动态口令,并将该动态口令发送给令牌服务器进行认证,避免用户在手动输入动态口令时出错和泄密,提高了动态令牌的安全性。
【附图说明】
[0027]图1为本发明实施例中的一种认证动态口令的方法流程图;
[0028]图2为本发明实施例中的另一种认证动态口令的方法流程图;
[0029]图3为本发明实施例中的一种客户端的结构示意图;
[0030]图4为本发明实施例中的一种令牌服务器的结构示意图。
【具体实施方式】
[0031]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0032]本发明实施例提供了一种认证动态口令的方法,如图1所示,包括以下步骤:
[0033]步骤101,客户端与NFC(Near Field Communicat1n,近场通信)动态令牌建立NFC通信。
[0034]步骤102,客户端向NFC动态令牌发送第二指令,接收NFC动态令牌返回的令牌序列号,并对该令牌序列号进行保存。
[0035]例如,客户端向NFC动态令牌发送第二指令“0x4402043A”,接收NFC动态令牌返回的令牌序列号“15357”。
[0036]步骤103,客户端向NFC动态令牌发送第三指令,接收NFC动态令牌返回的动态口令。
[0037]例如,客户端向NFC动态令牌发送第三指令“0x44020110”,接收NFC动态令牌返回的动态口令“355569”。
[0038]步骤104,客户端使用令牌序列号和自身保存的第二随机数,对动态口令进行加密,得到第三密文,并将第三密文、第二随机数和令牌序列号发送给令牌服务器。
[0039]具体地,客户端根据自身保存的第二随机数生成加密密钥,根据令牌序列号生成初始化向量,使用加密密钥和初始化向量,对动态口令进行加密,得到第三密文。
[0040]本实施例中,客户端可以对第二随机数和预设值进行散列,将得到的散列值作为加密密钥;对令牌序列号和预设值进行散列,将得到的散列值作为初始化向量。其中,第二随机数可以为Utc秒数。
[0041 ] 例如,客户端使用第二随机数“0x297A”和令牌序列号“I 5357”对动态口令“355569”进行加密,得到第三密文“D465A1”,并将第三密文“D465A1”、第二随机数“0x297A”和令牌序列号“15357”发送给令牌服务器。
[0042]步骤105,令牌服务器使用接收到的令牌序列号和第二随机数,对接收到的第三密文进行解密,得到动态口令。
[0043]具体地,令牌服务器根据接收到的第二随机数生成加密密钥,根据接收到的令牌序列号生成初始化向量,使用加密密钥和初始化向量,对接收到的第三密文进行解密,得到动态口令。
[0044]本实施例中,令牌服务器可以对接收到的第二随机数和预设值进行散列,将得到的散列值作为加密密钥;对接收到的令牌序列号和预设值进行散列,将得到的散列值作为初始化向量。
[0045]例如,令牌服务器使用接收到的令牌序列号“15357”和第二随机数“0x297A”,对接收到的第三密文“D465A1”进行解密,得到动态口令“355569”。
[0046]步骤106,令牌服务器根据接收到的令牌序列号检索对应的种子文件,使用检索到的种子文件,对解密得到的动态口令进行认证,如果认证通过,则执行步骤107;否则,执行步骤110。
[0047]例如,令牌服务器根据接收到的令牌序列号“15357”检索到对应的种子文件“0x8D5828922FEBFC8597”,并使用该种子文件,对解密得到的动态口令“355569”进行认证。
[0048]步骤107,令牌服务器向应用服务器发送认证成功消息。
[0049]步骤108,应用服务器向客户端发送认证成功消息。
[0050]步骤109,客户端根据接收到的认证成功消息,显示认证成功信息。
[0051]步骤110,令牌服务器向应用服务器发送认证失败消息。
[0052]步骤111,应用服务器向客户端发送认证失败消息。
[0053]步骤112,客户端根据接收到的认证失败消息,显示认证失败信息。
[0054]本发明实施例通过NFC通道获取NFC动态令牌生成的动态口令,并将该动态口令发送给令牌服务器进行认证,避免用户在手动输入动态口令时出错和泄密,提高了动态令牌的安全性。
[0055]本发明实施例还提供了另一种认证动态口令的方法,如图2所示,包括以下步骤:
[0056]步骤201,客户端与NFC动态令牌建立NFC通信。
[0057]步骤202,客户端向NFC动态令牌发送第三指令,接收NFC动态令牌返回的动态口令。
[0058]例如,客户端向NFC动态令牌发送第三指令“0x44020110”,接收NFC动态令牌返回的动态口令“355569”。
[0059]步骤203,客户端根据用户名获取对应的令牌序列号,使用令牌序列号和自身保存的第二随机数对动态口令进行加密,得到第三密文,并将第三密文、第二随机数和令牌序列号发送给令牌服务器。
[0060]具体地,客户端根据自身保存的第二随机数生成加密密钥,根据令牌序列号生成初始化向量,使用加密密钥和初始化向量,对动态口令进行加密,得到第三密文。
[0061]本实施例中,客户端可以对第二随机数和预设值进行散列,将得到的散列值作为加密密钥;对令牌序列号和预设值进行散列,将得到的散列值作为初始化向量。其中,第二随机数可以为Utc秒数。
[0062]例如,客户端根据用户名“admin”获取对应的令牌序列号“15357”,使用第二随机数“0x297A”和令牌序列号“15357”对动态口令“355569”进行加密,得到第三密文“D465A1”,并将第三密文“D465A1”、第二随机数“0x297A”和令牌序列号“15357”发送给令牌服务器。
[0063]步骤204,令牌服务器使用接收到的令牌序列号和第二随机数,对接收到的第三密文进行解密,得到动态口令。
[0064]具体地,令牌服务器根据接收到的第二随机数生成加密密钥,根据接收到的令牌序列号生成初始化向量,使用加密密钥和初始化向量,对接收到的第三密文进行解密,得到动态口令。
[0065]本实施例中,令牌服务器可以对接收到的第二随机数和预设值进行散列,将得到的散列值作为加密密钥;对接收到的令牌序列号和预设值进行散列,将得到的散列值作为初始化向量。
[0066]例如,令牌服务器使用接收到的令牌序列号“15357”和第二随机数“0x297A”,对接收到的第三密文“D465A1”进行解密,得到动态口令“355569”。
[0067]步骤205,令牌服务器根据接收到的令牌序列号检索对应的种子文件和令牌偏移值,使用检索到的种子文件和令牌偏移值,对解密得到的动态口令进行认证,如果认证通过,则执行步骤206;否则,执行步骤209。
[0068]例如,令牌服务器根据接收到的令牌序列号“15357”检索到对应的种子文件“0x8D5828922FEBFC8597”和令牌偏移值“254”,并使用该种子文件和令牌偏移值,对解密得到的动态口令“355569”进行认证。
[0069]步骤206,令牌服务器向应用服务器发送认证成功消息。
[0070]步骤207,应用服务器向客户端发送认证成功消息。
[0071 ]步骤208,客户端根据接收到的认证成功消息,显示认证成功信息。
[0072]步骤209,令牌服务器向应用服务器发送认证失败消息。
[0073]步骤210,应用服务器向客户端发送认证失败消息。
[0074]步骤211,客户端根据接收到的认证失败消息,显示认证失败信息。
[0075]本发明实施例通过NFC通道将NFC动态令牌生成的动态口令发送给移动设备,避免用户在手动输入动态口令时出错和泄密,提高了动态令牌的安全性。
[0076]需要说明的是,在本发明的其他实施方式中,客户端还可以获取用户输入的令牌序列号,使用该令牌序列号和自身保存的第二随机数对动态口令进行加密,得到第三密文,并将第三密文、第二随机数和令牌序列号发送给令牌服务器,同样能够实现本发明的发明目的。
[0077]例如,客户端获取用户输入的令牌序列号“15357”,使用第二随机数“0x297A”和令牌序列号“15357”对动态口令“355569”进行加密,得到第三密文“D465A1”,并将第三密文“D465A1”、第二随机数“0x297A”和令牌序列号“15357”发送给令牌服务器。
[0078]此外,令牌服务器使用种子文件和令牌偏移值,对动态口令进行认证通过后,还可以对令牌偏移值进行更新。
[0079]本发明实施例通过NFC通道获取NFC动态令牌生成的动态口令,并将该动态口令发送给令牌服务器进行认证,避免用户在手动输入动态口令时出错和泄密,提高了动态令牌的安全性。
[0080]基于上述认证动态口令的方法,本发明实施例还提供了一种客户端,包括:
[0081 ]通信模块310,用于与NFC动态令牌建立NFC通信;
[0082]第一获取模块320,用于获取所述NFC动态令牌的令牌序列号;
[0083]第二获取模块330,用于获取来自所述NFC动态令牌的动态口令;
[0084]存储模块340,用于保存第二随机数;
[0085]加密模块350,用于使用所述令牌序列号和所述第二随机数,对所述动态口令进行加密,得到第三密文;
[0086]发送模块360,用于将所述第三密文、所述第二随机数和所述令牌序列号发送给令牌服务器;
[0087]接收模块370,用于接收应用服务器返回的认证成功消息或认证失败消息。
[0088]具体地,上述第一获取模块320,具体用于向所述NFC动态令牌发送第二指令,接收所述NFC动态令牌返回的令牌序列号;
[0089]或者,根据用户名获取对应的令牌序列号。
[0090]进一步地,上述加密模块350,包括:
[0091 ]第一生成子模块,用于根据所述第二随机数生成加密密钥;
[0092]第二生成子模块,用于根据所述令牌序列号生成初始化向量;
[0093]加密子模块,用于使用所述加密密钥和所述初始化向量,对所述动态口令进行加密,得到第三密文。
[0094]进一步地,上述第一生成子模块,具体用于对所述第二随机数和预设值进行散列,将得到的散列值作为加密密钥;
[0095]上述第二生成子模块,具体用于对所述令牌序列号和预设值进行散列,将得到的散列值作为初始化向量。
[0096]进一步地,上述第二获取模块330,具体用于向所述NFC动态令牌发送第三指令,接收所述NFC动态令牌返回的动态口令。
[0097]本发明实施例通过NFC通道获取NFC动态令牌生成的动态口令,并将该动态口令发送给令牌服务器进行认证,避免用户在手动输入动态口令时出错和泄密,提高了动态令牌的安全性。
[0098]基于上述认证动态口令的方法,本发明实施例还提供了一种令牌服务器,如图4所示,包括:
[0099]接收模块410,用于接收来自客户端的第三密文、第二随机数和令牌序列号;
[0100]解密模块420,用于使用所述令牌序列号和所述第二随机数,对所述第三密文进行解密,得到动态口令;
[0101]检索模块430,用于根据所述令牌序列号检索对应的种子文件;
[0102]认证模块440,用于使用所述检索模块检索到的种子文件,对所述动态口令进行认证;
[0103]发送模块450,用于在所述认证模块对所述动态口令认证通过后,向应用服务器发送认证成功消息;在所述认证模块对所述动态口令认证未通过后,向应用服务器发送认证失败消息。
[0104]具体地,上述检索模块430,具体用于根据所述令牌序列号检索对应的种子文件和令牌偏移值;
[0105]相应地,上述认证模块440,具体用于使用所述检索模块检索到的种子文件和令牌偏移值,对所述动态口令进行认证。
[0106]进一步地,上述解密模块420,包括:
[0107]第一生成子模块,用于根据所述第二随机数生成加密密钥;
[0108]第二生成子模块,用于根据所述令牌序列号生成初始化向量;
[0109]解密子模块,用于使用所述加密密钥和所述初始化向量,对所述第三密文进行解密,得到动态口令。
[0110]进一步地,上述第一生成子模块,具体用于对所述第二随机数和预设值进行散列,将得到的散列值作为加密密钥。
[0111]上述第二生成子模块,具体用于对所述令牌序列号和预设值进行散列,将得到的散列值作为初始化向量。
[0112]本发明实施例通过NFC通道获取NFC动态令牌生成的动态口令,并将该动态口令发送给令牌服务器进行认证,避免用户在手动输入动态口令时出错和泄密,提高了动态令牌的安全性。
[0113]结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0114]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【主权项】
1.一种认证动态口令的方法,其特征在于,包括以下步骤: 客户端与NFC动态令牌建立NFC通信,获取所述NFC动态令牌的令牌序列号以及来自所述NFC动态令牌的动态口令; 所述客户端使用所述令牌序列号和自身保存的第二随机数,对所述动态口令进行加密,得到第三密文,并将所述第三密文、所述第二随机数和所述令牌序列号发送给令牌服务器; 所述客户端接收应用服务器返回的认证成功消息或认证失败消息。2.如权利要求1所述的方法,其特征在于,所述客户端获取所述NFC动态令牌的令牌序列号,具体为: 所述客户端向所述NFC动态令牌发送第二指令,接收所述NFC动态令牌返回的令牌序列号; 或者, 所述客户端根据用户名获取对应的令牌序列号。3.如权利要求1所述的方法,其特征在于,所述客户端使用所述令牌序列号和自身保存的第二随机数,对动态口令进行加密,得到第三密文,具体为: 所述客户端根据所述第二随机数生成加密密钥,根据所述令牌序列号生成初始化向量,使用所述加密密钥和所述初始化向量,对所述动态口令进行加密,得到第三密文。4.如权利要求3所述的方法,其特征在于,所述客户端根据所述第二随机数生成加密密钥,具体为: 所述客户端对所述第二随机数和预设值进行散列,将得到的散列值作为加密密钥; 所述客户端根据所述令牌序列号生成初始化向量,具体为: 所述客户端对所述令牌序列号和预设值进行散列,将得到的散列值作为初始化向量。5.如权利要求1所述的方法,其特征在于,所述客户端获取来自所述NFC动态令牌的动态口令,具体为: 所述客户端向所述NFC动态令牌发送第三指令,接收所述NFC动态令牌返回的动态口令。6.一种认证动态口令的方法,其特征在于,包括以下步骤: 令牌服务器接收来自客户端的第三密文、第二随机数和令牌序列号,使用所述令牌序列号和所述第二随机数,对所述第三密文进行解密,得到动态口令; 所述令牌服务器根据所述令牌序列号检索对应的种子文件,使用检索到的种子文件,对所述动态口令进行认证,如果认证通过,则向应用服务器发送认证成功消息;否则,向应用服务器发送认证失败消息。7.如权利要求6所述的方法,其特征在于,所述令牌服务器根据所述令牌序列号检索对应的种子文件,使用检索到的种子文件,对所述动态口令进行认证,具体为: 所述令牌服务器根据所述令牌序列号检索对应的种子文件和令牌偏移值,使用检索到的种子文件和令牌偏移值,对所述动态口令进行认证。8.如权利要求6所述的方法,其特征在于,所述令牌服务器使用所述令牌序列号和所述第二随机数,对所述第三密文进行解密,得到动态口令,具体为: 所述令牌服务器根据所述第二随机数生成加密密钥,根据所述令牌序列号生成初始化向量,使用所述加密密钥和所述初始化向量,对所述第三密文进行解密,得到动态口令。9.如权利要求8所述的方法,其特征在于,所述令牌服务器根据所述第二随机数生成加密密钥,具体为: 所述令牌服务器对所述第二随机数和预设值进行散列,将得到的散列值作为加密密钥。10.如权利要求8所述的方法,其特征在于,所述令牌服务器根据所述令牌序列号生成初始化向量,具体为: 所述令牌服务器对所述令牌序列号和预设值进行散列,将得到的散列值作为初始化向量。11.一种客户端,其特征在于,包括: 通信模块,用于与NFC动态令牌建立NFC通信; 第一获取模块,用于获取所述NFC动态令牌的令牌序列号; 第二获取模块,用于获取来自所述NFC动态令牌的动态口令; 存储模块,用于保存第二随机数; 加密模块,用于使用所述令牌序列号和所述第二随机数,对所述动态口令进行加密,得到第三密文; 发送模块,用于将所述第三密文、所述第二随机数和所述令牌序列号发送给令牌服务器; 接收模块,用于接收应用服务器返回的认证成功消息或认证失败消息。12.如权利要求11所述的客户端,其特征在于, 所述第一获取模块,具体用于向所述NFC动态令牌发送第二指令,接收所述NFC动态令牌返回的令牌序列号; 或者,根据用户名获取对应的令牌序列号。13.如权利要求11所述的客户端,其特征在于,所述加密模块,包括: 第一生成子模块,用于根据所述第二随机数生成加密密钥; 第二生成子模块,用于根据所述令牌序列号生成初始化向量; 加密子模块,用于使用所述加密密钥和所述初始化向量,对所述动态口令进行加密,得到第三密文。14.如权利要求13所述的客户端,其特征在于, 所述第一生成子模块,具体用于对所述第二随机数和预设值进行散列,将得到的散列值作为加密密钥; 所述第二生成子模块,具体用于对所述令牌序列号和预设值进行散列,将得到的散列值作为初始化向量。15.如权利要求11所述的客户端,其特征在于, 所述第二获取模块,具体用于向所述NFC动态令牌发送第三指令,接收所述NFC动态令牌返回的动态口令。16.一种令牌服务器,其特征在于,包括: 接收模块,用于接收来自客户端的第三密文、第二随机数和令牌序列号; 解密模块,用于使用所述令牌序列号和所述第二随机数,对所述第三密文进行解密,得到动态口令; 检索模块,用于根据所述令牌序列号检索对应的种子文件; 认证模块,用于使用所述检索模块检索到的种子文件,对所述动态口令进行认证; 发送模块,用于在所述认证模块对所述动态口令认证通过后,向应用服务器发送认证成功消息;在所述认证模块对所述动态口令认证未通过后,向应用服务器发送认证失败消息。17.如权利要求16所述的令牌服务器,其特征在于, 所述检索模块,具体用于根据所述令牌序列号检索对应的种子文件和令牌偏移值;所述认证模块,具体用于使用所述检索模块检索到的种子文件和令牌偏移值,对所述动态口令进行认证。18.如权利要求16所述的令牌服务器,其特征在于,所述解密模块,包括: 第一生成子模块,用于根据所述第二随机数生成加密密钥; 第二生成子模块,用于根据所述令牌序列号生成初始化向量; 解密子模块,用于使用所述加密密钥和所述初始化向量,对所述第三密文进行解密,得到动态口令。19.如权利要求18所述的令牌服务器,其特征在于, 所述第一生成子模块,具体用于对所述第二随机数和预设值进行散列,将得到的散列值作为加密密钥。20.如权利要求18所述的令牌服务器,其特征在于, 所述第二生成子模块,具体用于对所述令牌序列号和预设值进行散列,将得到的散列值作为初始化向量。
【文档编号】H04L29/06GK105827652SQ201610350413
【公开日】2016年8月3日
【申请日】2016年5月24日
【发明人】陆舟, 于华章
【申请人】飞天诚信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1