CN104092545B - 一种集成多种动态口令的认证系统及其工作方法 - Google Patents

一种集成多种动态口令的认证系统及其工作方法 Download PDF

Info

Publication number
CN104092545B
CN104092545B CN201410304869.5A CN201410304869A CN104092545B CN 104092545 B CN104092545 B CN 104092545B CN 201410304869 A CN201410304869 A CN 201410304869A CN 104092545 B CN104092545 B CN 104092545B
Authority
CN
China
Prior art keywords
seed
authentication engine
verification system
file
authentication
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.)
Active
Application number
CN201410304869.5A
Other languages
English (en)
Other versions
CN104092545A (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Lewen Information Technology Co ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201410304869.5A priority Critical patent/CN104092545B/zh
Publication of CN104092545A publication Critical patent/CN104092545A/zh
Application granted granted Critical
Publication of CN104092545B publication Critical patent/CN104092545B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种集成多种动态口令的认证系统及其工作方法,所述认证系统中预置有多个认证引擎库,在接收来自所述客户端的认证请求后,从所述认证请求中获取令牌序列号和动态口令,根据所述令牌序列号,从数据库中查找包含所述令牌序列号的令牌信息,从查找到的令牌信息中读取与所述令牌序列号对应的认证引擎标识,调用与读取到的认证引擎标识对应的认证引擎库的认证接口,并获取所述认证接口的返回结果,从而在同一认证系统中集成不同厂商和不同算法的动态口令的认证,提高了认证系统的兼容性,降低了认证系统的工作负担,有效提高了用户的管理方便性和应用灵活性。

Description

一种集成多种动态口令的认证系统及其工作方法
技术领域
本发明涉及信息安全领域,特别是涉及一种集成多种动态口令的认证系统及其工作方法。
背景技术
动态令牌是一种用于生成动态口令的设备,广泛应用于网银、电信运营商和电子政务等应用领域。动态令牌所生成的动态口令可用于身份认证,能够有效提高身份认证的安全性。
现有技术中,为保证动态令牌的正常工作,令牌设备厂商将种子密钥导入到动态令牌的同时,还会将包括种子密钥在内的令牌信息配置到认证系统中,认证系统对多个令牌设备厂商配置的令牌信息进行集成。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:
由于同一认证系统下的多种动态令牌属于不同的厂商,并使用不同的算法生成动态口令,若直接通过同一认证系统进行认证,不仅会加重认证系统的负担,还会降低认证系统的兼容性和管理方便性。
发明内容
本发明提供了一种集成多种动态口令的认证系统及其工作方法,以解决现有技术中认证系统负担重以及认证系统兼容性差的缺陷。
本发明提供了一种集成多种动态口令的认证系统的工作方法,所述认证系统中预置有多个认证引擎库,所述方法包括以下步骤:
S1、所述认证系统接收来自客户端的认证请求,从所述认证请求中获取令牌序列号和动态口令;
S2、所述认证系统根据所述令牌序列号,从数据库中查找包含所述令牌序列号的令牌信息,如果查找到,则执行步骤S3;否则,向所述客户端返回第一错误消息,结束流程;
S3、所述认证系统从查找到的令牌信息中读取与所述令牌序列号对应的认证引擎标识;
S4、所述认证系统使用所述动态口令和所述查找到的令牌信息中与所述令牌序列号对应的种子数据作为参数,调用与读取到的认证引擎标识对应的认证引擎库的认证接口,并获取所述认证接口的返回结果;
S5、所述认证系统根据所述返回结果判断是否认证成功,如果是,则执行步骤S6;否则,则执行步骤S7;
S6、所述认证系统向所述客户端返回认证成功消息,结束流程;
S7、所述认证系统向所述客户端返回认证失败消息,结束流程。
本发明还提供了一种集成多种动态口令的认证系统,包括:
存储模块,用于存储多个认证引擎库和令牌信息;
接收模块,用于接收来自客户端的认证请求,从所述认证请求中获取令牌序列号和动态口令;
第一查找模块,用于根据所述接收模块获取到的所述令牌序列号,从所述存储模块中查找包含所述令牌序列号的令牌信息;
读取模块,用于在所述第一查找模块查找到包含所述令牌序列号的令牌信息后,从所述令牌信息中读取与所述令牌序列号对应的认证引擎标识;
处理模块,用于使用所述接收模块获取到的所述动态口令和所述第一查找模块查找到的所述令牌信息中与所述令牌序列号对应的种子数据作为参数,调用与所述读取模块读取到的所述认证引擎标识对应的认证引擎库的认证接口,并获取所述认证接口的返回结果;
第一判断模块,用于根据所述处理模块获取到的所述返回结果判断是否认证成功;
发送模块,用于在所述第一查找模块查找不到包含所述令牌序列号的令牌信息后,向所述客户端返回第一错误消息;在所述第一判断模块判断出认证成功后,向所述客户端返回认证成功消息;在所述第一判断模块判断出认证失败后,向所述客户端返回认证失败消息。
本发明达到的有益效果:认证系统在接收到认证请求后,调用与认证请求中的令牌序列号对应的认证引擎库的认证接口,对认证请求中的动态口令进行认证,从而在同一认证系统中集成不同厂商和不同算法的动态口令的认证,提高了认证系统的兼容性,降低了认证系统的工作负担,有效提高了用户的管理方便性和应用灵活性。
附图说明
图1为本发明实施例中的一种导入令牌信息的方法流程图;
图2为本发明实施例中的一种集成多种动态口令的认证系统的工作方法流程图;
图3为本发明实施例中的一种集成多种动态口令的认证系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,种子文件系统生成种子文件,并对种子文件进行加密,得到种子数字信封文件;认证系统获取到种子数字信封文件后,对种子数字信封文件进行解密,并对解密得到的种子文件进行解析,将解析得到的令牌信息导入到数据库中;认证系统接收到认证请求后,根据认证请求中的令牌序列号,调用与该令牌序列号对应的认证引擎库的认证接口,并根据认证接口的返回结果确定是否认证成功。
如图1所示,为本发明实施例中的一种导入令牌信息的方法流程图,包括以下步骤:
步骤101,种子文件系统生成种子文件。
例如,种子文件系统生成的种子文件的内容为:
步骤102,种子文件系统生成随机数,将该随机数转换为对称密钥,从预置的证书文件中提取公钥,并使用该公钥对上述对称密钥进行加密,得到密钥密文。
具体地,种子文件系统可以生成长度为16个字节的随机数,将该随机数转换为长度为24个字节的对称密钥,从预置的证书文件中提取长度为1024位的RSA公钥,并使用该RSA公钥对上述对称密钥进行RSA公钥加密,得到长度为128个字节的密钥密文。
本实施例中,种子文件系统可以从随机数中选取前8个字节的数据,将选取的数据作为填充数据添加到随机数后,生成长度为24个字节的对称密钥。
例如,种子文件系统生成的随机数为:00 01 02 03 04 05 06 07 08 09 0a 0b0c 0d 0e 0f,转换得到的对称密钥为:00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e0f 00 01 02 03 04 05 06 07,使用RSA公钥对上述对称密钥进行RSA公钥加密,得到的密钥密文为:d6 5a 50 ea 33 77 5b 81 a5 35 19 18 ff 5d 87 a8 4d be 20 54 63 fc f0c6 1f 67 11 a7 1d 26 6f dd 4f 46 92 1e a3 3d bf f8 59 ff 58 89 5b 19 7e c6 f877 53 96 d0 9b e0 8f be 3b 1b 75 61 41 bd a3 fa f1 a5 ab c9 ae 23 fd 46 c9 97b5 ba 96 2e 56 b5 67 18 91 53 33 e6 1a 87 f1 72 1c 08 b9 a3 1d 69 1a 52 13 d54e 10 9a 9c 92 c9 31 11 8d 7e 99 1f 04 50 7b d3 85 d1 eb 4a ab 16 e9 88 af 56dd。
步骤103,种子文件系统使用对称密钥对种子文件进行对称加密,得到种子密文。
例如,种子文件系统根据步骤101中的种子文件加密得到的种子密文为:c0 f5 df9c 61 09 b4 22 b8 51 62 12 6f 37 27 26 ba 8b bc c7 d8 9b fd 2b c2 fd 62 b0 3053 82 68 d1 cc b8 8d f0 0a d9 62 24 e7 6d 9a c9 5c ad 23 63 4b d8 d4 cf cb af77 0d 7a 95 64 39 bd bf d7 5c da 10 bb e8 05 3a 71 e8 b9 c2 33 e7 53 e5 22 c631 f3 af e3 61 23 a6 d3 47 39 ee 0a a1 19 2d dc e9 6e 21 e6 78 c5 ba 26 a1 3de8 08 3d 20 8c ef 1f be 36 8e a9 04 d7 42 9d b7 14 01 26 1e 11 2b 7f 6c 50 7ddb c9 01 73 8e 6c 19 33 2f ac c5 9e e6 1a 4d 16 11 d2 8a 8a c7 83 ea 9c d6 c732 4b 2f 59 b5 28 6d 7b 4e 54 b7 e3 fe 3f 78 d8 7f 2d f7 34 7f fb 12 86 45 d81c de 05 00 9b 97 e8 f6 23 22 35 6b 94 a0 61 de 74 db 72 32 b9 11 3f 5b 2e 7c17 26 a6 6e e2 36 de 74 3d d0 b3 1b 79 bd a7 ce a5 a0 74 a1 0f 00 92 d8 76 01f3 3f 65 32 8f ce a8 1f 76 96 1c c4 6a 86 84 fe b8 6b 1d 1a f1 1d f8 ed 4b 6835 68 a3 8d 63 0c 77 a1 e5 3c bd 9d fc e2 d0 50 09 1f f7 57 3f 4d ee 1d 54 6bf8 f7 1d 51 39 03 79 85 67 e3 2b bc ab ce da 26 d5 c1 3e 60 29 27 46 ac 72 2f2a d2 0e 6c 65 a0 2f 23 b2 cc c3 0e 32 97 13 c6 48 22 81 44 d7 0b 38 ed b9 5edd 55 64 9d b3 8d 6b b7 fa 1b 02 b1 ce 42 3b f8 c2 8e f2 6e e7 6b 01 c8 05 8108 9f 99 0b 1e b6 a0 d3 cb d5 e6 fe 52 fd 70 47 4a 72 1a ea 05 01 d3 30 19 2f08 9d b6 77 36 a8 ec 02 f9 cd 56 57 f4 65 2d 0c 2a d5 26 fe 2b 62 2e 2d ef dfcb 65 ce a6 1c ce 17 64 23 5a b3 0b bb ba 6d f2 c5 45 5b 74 b4 4d f9 4a 66 560c b2 28 77 a2 82 a8 99 8e 2c a6 3e 51 28 aa f6 0e 26 8c 71 22 56 ea d5 3a 84b9 80 c4 e9 dd b2 ee e7 86 9e ed f4 48 ea 92 6a bc d6 8b eb ad e4 62 a5 83 80b5 ac c3 c7 44 46 ef b9 7f 61 2e 49 6c ae 89 59 dc f6 85 02 48 b9 14 b4 f3 1c25 bb fb d5 d6 ae 86 ca 4c 45 5a a1 06 6d 4e c4 b1 ac e2 3e e7 02 c3 b8 56 f3ab 55 d4 78 b3 0e b7 6c 3f c7 91 4c 7e 1a 17 a0 f1 f0 2b 78 5c 75 04 a2 22 3173 b2 d4 bd d6 a1 80 6f 00 f9 0f 90 e8 80 42 32 ff 12 f3 17 15 af b8 91 d7 e37a e5 9b c3 58 8f 62 61 e9 17 22 f8 c9 15 14 2d b9 9f 64 a7 4d ce 9e f1 d4 2677 cd 6c b5 e2 c8 63 c3 e8 fb e9 61 8c b9 c2 67 1a 12 3e 54 1c 05 ac a1 90 41c5 7a 45 75 32 a6 15 f1 0d 3b 9b c7 ac f3 ed 99 fe e7 fa b1 9c c0 fe ad 4f 0628 93 07 06 7a 1d 8f 9f c2 17 de 60 d5 20 04 30 13 4d 9a e0 d9 99 53 77 10 35d0 59 38 c9 a3 bc 92 cb 9e b0 7b 53 2e a0 40 0e c5 3b c0 e8 ac 29 27 be 9f 1942 a0 1c 3c 88 26 38 73 05 ab fd 6d 3a 74 fc 2e 7e db 64 59 bb 4b a9 e6 8c ee1d bb fc 83 80 b2 3e ca 86 62 54 a3 78 41 64 b0 53 68 05 10 63 28 27 ec e8 c950 ff 87 69 e6 a7 bb 3b 55 6e 65 31 47 60 71 39 55 53 81 2f ef 49 a2 76 50 994f 96 93 8f 21 3f 74 e9 97 b4 f9 36 b6 c7 44 84 d2 6a 24 a1 42 76 cd a8 56 f6aa 3f 7c 95 d1 34 d6 14 19 5b fa 23 1e a8 e3 cc 8e fe 9c 5b a5 c1 06 e1 d6 f00c 5d 3e 56 d1 9e 13 8d f6 e0 91 78 98 6b e3 d3 ab 31 7b 6a 64 6e c3 3a 42 5484 9c d5 85 c1 ad 66 0e 06 36 5f e5 5d 03 49 61 1e 2a d3 8d 32 ed db e2 8d c0fe 0a d5 39 57 fb 8a 56 6f 1e 50 7c 86 74 56 85 10 34 9e 17 ed bf 03 d3 85 61c0 2e cb 2a f6。
步骤104,种子文件系统对种子文件进行摘要计算,得到第一摘要。
其中,第一摘要的长度为20个字节。
例如,种子文件系统计算得到的第一摘要为:64 1f ef 8c 1f 9b 2b a1 b1 b63d cb 20 f6 21 d3 b5 b8 7d ba。
步骤105,种子文件系统根据密钥密文、种子密文和第一摘要生成种子数字信封文件,并使用预设的令牌序列信息对种子数字信封文件的文件名进行设置。
具体地,种子文件系统可以对密钥密文、种子密文和第一摘要进行依序拼接,将拼接得到的数据作为种子数字信封文件的内容,并使用预设的令牌序列信息对种子数字信封文件进行命名。
其中,令牌序列信息可以是起始令牌序列号和/或结束令牌序列号,还可进一步包括种子个数和种子数字信封文件的生成时间。
本实施例中,种子文件系统使用起始令牌序列号、种子个数和种子数字信封文件的生成时间对种子数字信封文件进行命名。
例如,令牌起始序列号为2800107,种子个数为1,种子数字信封文件的生成时间为20140613时,种子文件系统对密钥密文、种子密文和第一摘要依序拼接得到的数据为:d65a 50 ea 33 77 5b 81 a5 35 19 18 ff 5d 87 a8 4d be 20 54 63 fc f0 c6 1f 67 11a7 1d 26 6f dd 4f 46 92 1e a3 3d bf f8 59 ff 58 89 5b 19 7e c6 f8 77 53 96 d09b e0 8f be 3b 1b 75 61 41 bd a3 fa f1 a5 ab c9 ae 23 fd 46 c9 97 b5 ba 96 2e56 b5 67 18 91 53 33 e6 1a 87 f1 72 1c 08 b9 a3 1d 69 1a 52 13 d5 4e 10 9a 9c92 c9 31 11 8d 7e 99 1f 04 50 7b d3 85 d1 eb 4a ab 16 e9 88 af 56 dd
c0 f5 df 9c 61 09 b4 22 b8 51 62 12 6f 37 27 26 ba 8b bc c7 d8 9b fd2b c2 fd 62 b0 30 53 82 68 d1 cc b8 8d f0 0a d9 62 24 e7 6d 9a c9 5c ad 23 634b d8 d4 cf cb af 77 0d 7a 95 64 39 bd bf d7 5c da 10 bb e8 05 3a 71 e8 b9 c233 e7 53 e5 22 c6 31 f3 af e3 61 23 a6 d3 47 39 ee 0a a1 19 2d dc e9 6e 21 e678 c5 ba 26 a1 3d e8 08 3d 20 8c ef 1f be 36 8e a9 04 d7 42 9d b7 14 01 26 1e11 2b 7f 6c 50 7d db c9 01 73 8e 6c 19 33 2f ac c5 9e e6 1a 4d 16 11 d2 8a 8ac7 83 ea 9c d6 c7 32 4b 2f 59 b5 28 6d 7b 4e 54 b7 e3 fe 3f 78 d8 7f 2d f7 347f fb 12 86 45 d8 1c de 05 00 9b 97 e8 f6 23 22 35 6b 94 a0 61 de 74 db 72 32b9 11 3f 5b 2e 7c 17 26 a6 6e e2 36 de 74 3d d0 b3 1b 79 bd a7 ce a5 a0 74 a10f 00 92 d8 76 01 f3 3f 65 32 8f ce a8 1f 76 96 1c c4 6a 86 84 fe b8 6b 1d 1af1 1d f8 ed 4b 68 35 68 a3 8d 63 0c 77 a1 e5 3c bd 9d fc e2 d0 50 09 1f f7 573f 4d ee 1d 54 6b f8 f7 1d 51 39 03 79 85 67 e3 2b bc ab ce da 26 d5 c1 3e 6029 27 46 ac 72 2f 2a d2 0e 6c 65 a0 2f 23 b2 cc c3 0e 32 97 13 c6 48 22 81 44d7 0b 38 ed b9 5e dd 55 64 9d b3 8d 6b b7 fa 1b 02 b1 ce 42 3b f8 c2 8e f2 6ee7 6b 01 c8 05 81 08 9f 99 0b 1e b6 a0 d3 cb d5 e6 fe 52 fd 70 47 4a 72 1a ea05 01 d3 30 19 2f 08 9d b6 77 36 a8 ec 02 f9 cd 56 57 f4 65 2d 0c 2a d5 26 fe2b 62 2e 2d ef df cb 65 ce a6 1c ce 17 64 23 5a b3 0b bb ba 6d f2 c5 45 5b 74b4 4d f9 4a 66 56 0c b2 28 77 a2 82 a8 99 8e 2c a6 3e 51 28 aa f6 0e 26 8c 7122 56 ea d5 3a 84 b9 80 c4 e9 dd b2 ee e7 86 9e ed f4 48 ea 92 6a bc d6 8b ebad e4 62 a5 83 80 b5 ac c3 c7 44 46 ef b9 7f 61 2e 49 6c ae 89 59 dc f6 85 0248 b9 14 b4 f3 1c 25 bb fb d5 d6 ae 86 ca 4c 45 5a a1 06 6d 4e c4 b1 ac e2 3ee7 02 c3 b8 56 f3 ab 55 d4 78 b3 0e b7 6c 3f c7 91 4c 7e 1a 17 a0 f1 f0 2b 785c 75 04 a2 22 31 73 b2 d4 bd d6 a1 80 6f 00 f9 0f 90 e8 80 42 32 ff 12 f3 1715 af b8 91 d7 e3 7a e5 9b c3 58 8f 62 61 e9 17 22 f8 c9 15 14 2d b9 9f 64 a74d ce 9e f1 d4 26 77 cd 6c b5 e2 c8 63 c3 e8 fb e9 61 8c b9 c2 67 1a 12 3e 541c 05 ac a1 90 41 c5 7a 45 75 32 a6 15 f1 0d 3b 9b c7 ac f3 ed 99 fe e7 fa b19c c0 fe ad 4f 06 28 93 07 06 7a 1d 8f 9f c2 17 de 60 d5 20 04 30 13 4d 9a e0d9 99 53 77 10 35 d0 59 38 c9 a3 bc 92 cb 9e b0 7b 53 2e a0 40 0e c5 3b c0 e8ac 29 27 be 9f 19 42 a0 1c 3c 88 26 38 73 05 ab fd 6d 3a 74 fc 2e 7e db 64 59bb 4b a9 e6 8c ee 1d bb fc 83 80 b2 3e ca 86 62 54 a3 78 41 64 b0 53 68 05 1063 28 27 ec e8 c9 50 ff 87 69 e6 a7 bb 3b 55 6e 65 31 47 60 71 39 55 53 81 2fef 49 a2 76 50 99 4f 96 93 8f 21 3f 74 e9 97 b4 f9 36 b6 c7 44 84 d2 6a 24 a142 76 cd a8 56 f6 aa 3f 7c 95 d1 34 d6 14 19 5b fa 23 1e a8 e3 cc 8e fe 9c 5ba5 c1 06 e1 d6 f0 0c 5d 3e 56 d1 9e 13 8d f6 e0 91 78 98 6b e3 d3 ab 31 7b 6a64 6e c3 3a 42 54 84 9c d5 85 c1 ad 66 0e 06 36 5f e5 5d 03 49 61 1e 2a d3 8d32 ed db e2 8d c0 fe 0a d5 39 57 fb 8a 56 6f 1e 50 7c 86 74 56 85 10 34 9e 17ed bf 03 d3 85 61 c0 2e cb 2a f6
64 1f ef 8c 1f 9b 2b a1 b1 b6 3d cb 20 f6 21 d3 b5 b8 7d ba。
种子文件系统将上述数据作为种子数字信封文件的内容,并将该种子数字信封文件的文件名设置为“2800107-1-20140613.dat”。
步骤106,种子文件系统将种子数字信封文件发送给认证系统。
例如,种子文件系统将文件名为“2800107-1-20140613.dat”的种子数字信封文件发送给认证系统。
步骤107,认证系统从种子数字信封文件的文件名中获取令牌序列信息,根据该令牌序列信息查询对应的认证引擎标识,并获取与该认证引擎标识对应的私钥。
具体地,认证系统中存储有令牌序列信息与认证引擎标识的对应关系表,认证系统从种子数字信封文件的文件名中获取令牌序列信息后,根据该令牌序列信息查询上述对应关系表,得到与该令牌序列信息对应的认证引擎标识,再根据该认证引擎标识,获取对应的私钥。其中,令牌序列信息可以是起始令牌序列号和/或结束令牌序列号,私钥可以是长度为1024位的RSA私钥。
例如,认证系统中存储的令牌序列信息与认证引擎标识的对应关系表,如表1所示:
表1令牌序列信息与认证引擎标识的对应关系表
令牌序列信息 认证引擎标识
2799400 A
2799650 B
2799700 C
2799800 D
2800000 E
2800107 F
2800108 G
认证系统接收到文件名为“2800107-1-20140613.dat”的种子数字信封文件后,从该文件名中获取令牌序列信息“2800107”,根据该令牌序列信息查询表1,得到对应的认证引擎标识“F”,再根据该认证引擎标识“F”,获取对应的RSA私钥。
步骤108,认证系统从种子数字信封文件中获取密钥密文,使用获取到的私钥对密钥密文进行解密,得到对称密钥。
具体地,认证系统可以将种子数字信封文件中的前128个字节的数据作为密钥密文,使用步骤107中获取到的长度为1024位的RSA私钥,对密钥密文进行RSA私钥解密,得到对称密钥。
例如,种子数字信封文件中的前128个字节的数据为:d6 5a 50 ea 33 77 5b 81a5 35 19 18 ff 5d 87 a8 4d be 20 54 63 fc f0 c6 1f 67 11 a7 1d 26 6f dd 4f 4692 1e a3 3d bf f8 59 ff 58 89 5b 19 7e c6 f8 77 53 96 d0 9b e0 8f be 3b 1b 7561 41 bd a3 fa f1 a5 ab c9 ae 23 fd 46 c9 97 b5 ba 96 2e 56 b5 67 18 91 53 33e6 1a 87 f1 72 1c 08 b9 a3 1d 69 1a 52 13 d5 4e 10 9a 9c 92 c9 31 11 8d 7e 991f 04 50 7b d3 85 d1 eb 4a ab 16 e9 88 af 56 dd,认证系统使用步骤107中获取到的RSA私钥,对将上述内容进行解密,得到的对称密钥为:00 01 02 03 04 05 06 07 08 090a 0b 0c 0d 0e 0f 00 01 02 03 04 05 06 07。
步骤109,认证系统从种子数字信封文件中获取种子密文,使用解密得到的对称密钥对种子密文进行解密,得到种子文件。
具体地,认证系统可以从种子数字信封文件中获取除前128个字节和后20个字节之外的数据作为种子密文,使用步骤108中解密得到的对称密钥对种子密文进行解密,得到种子文件。
例如,种子数字信封文件中除前128个字节和后20个字节之外的数据为:c0 f5 df9c 61 09 b4 22 b8 51 62 12 6f 37 27 26 ba 8b bc c7 d8 9b fd 2b c2 fd 62 b0 3053 82 68 d1 cc b8 8d f0 0a d9 62 24 e7 6d 9a c9 5c ad 23 63 4b d8 d4 cf cb af77 0d 7a 95 64 39 bd bf d7 5c da 10 bb e8 05 3a 71 e8 b9 c2 33 e7 53 e5 22 c631 f3 af e3 61 23 a6 d3 47 39 ee 0a a1 19 2d dc e9 6e 21 e6 78 c5 ba 26 a1 3de8 08 3d 20 8c ef 1f be 36 8e a9 04 d7 42 9d b7 14 01 26 1e 11 2b 7f 6c 50 7ddb c9 01 73 8e 6c 19 33 2f ac c5 9e e6 1a 4d 16 11 d2 8a 8a c7 83 ea 9c d6 c732 4b 2f 59 b5 28 6d 7b 4e 54 b7 e3 fe 3f 78 d8 7f 2d f7 34 7f fb 12 86 45 d81c de 05 00 9b 97 e8 f6 23 22 35 6b 94 a0 61 de 74 db 72 32 b9 11 3f 5b 2e 7c17 26 a6 6e e2 36 de 74 3d d0 b3 1b 79 bd a7 ce a5 a0 74 a1 0f 00 92 d8 76 01f3 3f 65 32 8f ce a8 1f 76 96 1c c4 6a 86 84 fe b8 6b 1d 1a f1 1d f8 ed 4b 6835 68 a3 8d 63 0c 77 a1 e5 3c bd 9d fc e2 d0 50 09 1f f7 57 3f 4d ee 1d 54 6bf8 f7 1d 51 39 03 79 85 67 e3 2b bc ab ce da 26 d5 c1 3e 60 29 27 46 ac 72 2f2a d2 0e 6c 65 a0 2f 23 b2 cc c3 0e 32 97 13 c6 48 22 81 44 d7 0b 38 ed b9 5edd 55 64 9d b3 8d 6b b7 fa 1b 02 b1 ce 42 3b f8 c2 8e f2 6e e7 6b 01 c8 05 8108 9f 99 0b 1e b6 a0 d3 cb d5 e6 fe 52 fd 70 47 4a 72 1a ea 05 01 d3 30 19 2f08 9d b6 77 36 a8 ec 02 f9 cd 56 57 f4 65 2d 0c 2a d5 26 fe 2b 62 2e 2d ef dfcb 65 ce a6 1c ce 17 64 23 5a b3 0b bb ba 6d f2 c5 45 5b 74 b4 4d f9 4a 66 560c b2 28 77 a2 82 a8 99 8e 2c a6 3e 51 28 aa f6 0e 26 8c 71 22 56 ea d5 3a 84b9 80 c4 e9 dd b2 ee e7 86 9e ed f4 48 ea 92 6a bc d6 8b eb ad e4 62 a5 83 80b5 ac c3 c7 44 46 ef b9 7f 61 2e 49 6c ae 89 59 dc f6 85 02 48 b9 14 b4 f3 1c25 bb fb d5 d6 ae 86 ca 4c 45 5a a1 06 6d 4e c4 b1 ac e2 3e e7 02 c3 b8 56 f3ab 55 d4 78 b3 0e b7 6c 3f c7 91 4c 7e 1a 17 a0 f1 f0 2b 78 5c 75 04 a2 22 3173 b2 d4 bd d6 a1 80 6f 00 f9 0f 90 e8 80 42 32 ff 12 f3 17 15 af b8 91 d7 e37a e5 9b c3 58 8f 62 61 e9 17 22 f8 c9 15 14 2d b9 9f 64 a7 4d ce 9e f1 d4 2677 cd 6c b5 e2 c8 63 c3 e8 fb e9 61 8c b9 c2 67 1a 12 3e 54 1c 05 ac a1 90 41c5 7a 45 75 32 a6 15 f1 0d 3b 9b c7 ac f3 ed 99 fe e7 fa b1 9c c0 fe ad 4f 0628 93 07 06 7a 1d 8f 9f c2 17 de 60 d5 20 04 30 13 4d 9a e0 d9 99 53 77 10 35d0 59 38 c9 a3 bc 92 cb 9e b0 7b 53 2e a0 40 0e c5 3b c0 e8 ac 29 27 be 9f 1942 a0 1c 3c 88 26 38 73 05 ab fd 6d 3a 74 fc 2e 7e db 64 59 bb 4b a9 e6 8c ee1d bb fc 83 80 b2 3e ca 86 62 54 a3 78 41 64 b0 53 68 05 10 63 28 27 ec e8 c950 ff 87 69 e6 a7 bb 3b 55 6e 65 31 47 60 71 39 55 53 81 2f ef 49 a2 76 50 994f 96 93 8f 21 3f 74 e9 97 b4 f9 36 b6 c7 44 84 d2 6a 24 a1 42 76 cd a8 56 f6aa 3f 7c 95 d1 34 d6 14 19 5b fa 23 1e a8 e3 cc 8e fe 9c 5b a5 c1 06 e1 d6 f00c 5d 3e 56 d1 9e 13 8d f6 e0 91 78 98 6b e3 d3 ab 31 7b 6a 64 6e c3 3a 42 5484 9c d5 85 c1 ad 66 0e 06 36 5f e5 5d 03 49 61 1e 2a d3 8d 32 ed db e2 8d c0fe 0a d5 39 57 fb 8a 56 6f 1e 50 7c 86 74 56 85 10 34 9e 17 ed bf 03 d3 85 61c0 2e cb 2a f6,认证系统使用步骤108中解密得到的对称密钥对上述内容进行解密,得到种子文件:
步骤110,认证系统对解密得到的种子文件进行摘要计算,得到第二摘要。
其中,第二摘要的长度为20个字节。
例如,认证系统对步骤109中解密得到的种子文件进行摘要计算,得到第二摘要:64 1f ef 8c 1f 9b 2b a1 b1 b6 3d cb 20 f6 21 d3 b5 b8 7d ba。
步骤111,认证系统判断第二摘要是否与种子数字信封文件中的第一摘要相同,如果相同,则执行步骤112;否则,显示错误信息,结束流程。
具体地,认证系统可以从种子数字信封文件中获取后20个字节的数据作为第一摘要,判断第一摘要是否与通过步骤110计算得到的第二摘要相同。
例如,认证系统从种子数字信封文件中获取到的第一摘要为:64 1f ef 8c 1f 9b2b a1 b1 b6 3d cb 20 f6 21 d3 b5 b8 7d ba,认证系统通过步骤110计算得到的第二摘要为:64 1f ef 8c 1f 9b 2b a1 b1 b6 3d cb 20 f6 21 d3 b5 b8 7d ba,认证系统判断出第一摘要与第二摘要相同。
步骤112,认证系统对种子文件进行解析,将解析得到的令牌信息导入到数据库中。
其中,令牌信息包含令牌序列号,以及与该令牌序列号对应的种子数据、认证引擎标识、令牌生产时间和系统认证有效期,种子数据中包含种子密钥、动态因子和令牌偏移量。
例如,认证系统对步骤109中解密得到的种子文件进行解析,得到的令牌信息包含令牌序列号“2800107”、对应的种子数据“gQANMzYyOTQxMjgwMDEwNyDrSqS6as/rdtzUkyqb308xB4f0csO/yi9qwSoHJirIKnYeAAANBkIAAAAAADwAAAAAAAAAAAAAU5f9DFz/UAQACv////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxIAAAAKAAAABJPVFAtU00zLTY6UU4wNi1UMU0ST1RQLVNNMy02OlFONjQtVDFNDk9UUC1TTTMtNjpRTjA2AAAAAAAAAAAAAAAAAAAAAABggQ==”、认证引擎标识“F”、令牌生产时间“2014-06-1106:54:04”和系统认证有效期“2019-06-1106:53:56”;令牌信息还包含令牌序列号“2800108”,以及对应的种子数据“gQANMzYyOTQxMjgwMDEwOCBYcCRCBh4etj1UtJhcpMHfZd9eGY3f/Kt4cS+dsXHnrri1AAANBkIAAAAAADwAAAAAAAAAAAAAU5f9DFz/UAQACv////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxIAAAAKAAAABJPVFAtU00zLTY6UU4wNi1UMU0ST1RQLVNNMy02OlFONjQtVDFNDk9UUC1TTTMtNjpRTjA2AAAAAAAAAAAAAAAAAAAAAABtrg==”、认证引擎标识“F”、令牌生产时间“2014-06-1106:54:04”和系统认证有效期“2019-06-1106:53:56”。导入到数据库中的令牌信息,如表2所示:
表2令牌信息表
需要说明的是,本发明的另一种实施方式中,种子文件系统生成种子数字信封文件后,可以使用种子文件中的认证引擎标识对该种子数字信封文件的文件名进行设置,相应地,认证系统从种子数字信封文件的文件名中获取认证引擎标识,并根据该认证引擎标识获取对应的私钥,同样可以实现本发明的发明目的。
进一步地,认证系统将令牌信息导入到数据库中后,可以根据数据库中的令牌信息执行认证操作,具体过程如图2所示,包括以下步骤:
步骤201,认证系统接收来自客户端的认证请求,从认证请求中获取令牌序列号和动态口令。
例如,认证系统从认证请求中获取令牌序列号“2800107”和动态口令“463545”。
步骤202,认证系统根据认证请求中的令牌序列号,从数据库中查找包含该令牌序列号的令牌信息,如果查找到,则执行步骤203;否则,向客户端返回第一错误消息,结束流程。
具体地,认证系统可以根据从认证请求中获取到的令牌序列号查询数据库,判断数据库中是否存在包含该令牌序列号的令牌信息,如果是,则确定查找到包含上述令牌序列号的令牌信息,并执行步骤203;否则,向客户端返回第一错误消息。其中,第一错误消息用于表示令牌不存在。
例如,认证系统从认证请求中获取到的令牌序列号为“2800107”,查找到的令牌信息中包含令牌序列号“2800107”、以及对应的认证引擎标识“F”、种子数据“gQANMzYyOTQxMjgwMDEwNyDrSqS6as/rdtzUkyqb308xB4f0csO/yi9qwSoHJirIKnYeAAANBkIAAAAAADwAAAAAAAAAAAAAU5f9DFz/UAQACv////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxIAAAAKAAAABJPVFAtU00zLTY6UU4wNi1UMU0ST1RQLVNNMy02OlFONjQtVDFNDk9UUC1TTTMtNjpRTjA2AAAAAAAAAAAAAAAAAAAAAABggQ==”、令牌生产时间“2014-06-1106:54:04”和系统认证有效期“2019-06-1106:53:56”。
步骤203,认证系统从查找到的令牌信息中读取与认证请求中的令牌序列号对应的认证引擎标识。
例如,认证系统从查找到的令牌信息中读取与认证请求中的令牌序列号“2800107”对应的认证引擎标识“F”。
步骤204,认证系统判断是否已加载与读取到的认证引擎标识对应的认证引擎库,如果是,则执行步骤209;否则,执行步骤205。
具体地,认证系统可以判断内存中的认证引擎列表中是否包含读取到的认证引擎标识,如果是,则确定已加载与读取到的认证引擎标识对应的认证引擎库;否则,确定没有加载与读取到的认证引擎标识对应的认证引擎库。
例如,读取到的认证引擎标识为“F”,内存中的认证引擎列表为“DC、XY、LG”,认证系统判断出认证引擎列表中没有包含读取到的认证引擎标识,确定没有加载与读取到的认证引擎标识对应的认证引擎库。
步骤205,认证系统根据读取到的认证引擎标识,从数据库中查找与该认证引擎标识对应的认证引擎信息,如果查找到,则执行步骤206;否则,向客户端返回第二错误消息,结束流程。
具体地,认证系统中预置有多个认证引擎库,相应地,认证系统的数据库中存储有与各个认证引擎库对应的认证引擎信息,其中,认证引擎信息中包含认证引擎标识和认证引擎库路径,认证引擎路径为对应的认证引擎库的保存路径,认证引擎库为预设操作系统下的动态共享库。
认证系统可以判断数据库中是否存在包含读取到的认证引擎标识的认证引擎信息,如果存在,则将该认证引擎信息作为与读取到的认证引擎标识对应的认证引擎信息;否则,向客户端返回第二错误消息,其中,第二错误消息用于表示认证引擎不存在。
例如,认证系统根据读取到的认证引擎标识“F”查找到的认证引擎信息包含认证引擎标识“F”和认证引擎库路径“/usr/local/bin/t”。
步骤206,认证系统从查找到的认证引擎信息中读取认证引擎库路径,根据认证引擎库路径加载与读取到的认证引擎标识对应的认证引擎库。
具体地,认证系统可以从认证引擎信息中读取认证引擎库路径,对保存在该认证引擎库路径下的认证引擎库进行加载。
例如,认证系统从认证引擎信息中读取认证引擎库路径“/usr/local/bin/t”,对保存在该认证引擎库路径下的认证引擎库“libF_linux32.so”进行加载。
步骤207,认证系统判断是否加载认证引擎库成功,如果是,则执行步骤208;否则,向客户端返回第三错误消息,结束流程。
其中,第三错误消息用于表示加载认证引擎库失败。
步骤208,认证系统将加载成功的认证引擎库对应的认证引擎标识添加到认证引擎列表中。
例如,认证系统将加载成功的认证引擎库“libF_linux32.so”对应的认证引擎标识“F”添加到认证引擎列表中。
步骤209,认证系统使用认证请求中的动态口令和查找到的令牌信息中与认证请求中的令牌序列号对应的种子数据作为参数,调用认证引擎库的认证接口,并获取认证接口的返回结果。
具体地,认证系统将认证请求中的动态口令以及查找到的令牌信息中与认证请求中的令牌序列号对应的种子数据传入到认证引擎库的认证接口,并获取认证接口的返回结果。
例如,认证请求中的动态口令为“463545”,令牌序列号为“2800107”,查找到的令牌信息中与从认证请求中获取到的令牌序列号“2800107”对应的种子数据为:“gQANMzYyOTQxMjgwMDEwNyDrSqS6as/rdtzUkyqb308xB4f0csO/yi9qwSoHJirIKnYeAAANBkIAAAAAADwAAAAAAAAAAAAAU5f9DFz/UAQACv////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxIAAAAKAAAABJPVFAtU00zLTY6UU4wNi1UMU0ST1RQLVNNMy02OlFONjQtVDFNDk9UUC1TTTMtNjpRTjA2AAAAAAAAAAAAAAAAAAAAAABggQ==”。
认证系统使用动态口令“463545”和种子数据“gQANMzYyOTQxMjgwMDEwNyDrSqS6as/rdtzUkyqb308xB4f0csO/yi9qwSoHJirIKnYeAAANBkIAAAAAADwAAAAAAAAAAAAAU5f9DFz/UAQACv////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxIAAAAKAAAABJPVFAtU00zLTY6UU4wNi1UMU0ST1RQLVNNMy02OlFONjQtVDFNDk9UUC1TTTMtNjpRTjA2AAAAAAAAAAAAAAAAAAAAAABggQ==”作为参数,调用认证引擎库的认证接口,即check_dpass接口,获取该接口的返回结果“0”。
需要说明的是,认证引擎库的认证接口获取认证系统传入的动态口令和种子数据,从获取到的种子数据中获取种子密钥、动态因子和令牌偏移量,根据获取到的种子密钥、动态因子和令牌偏移量生成动态口令,并判断生成的动态口令是否与获取到的动态口令相同,如果是,则返回表示认证成功的返回结果;否则,返回表示认证失败的返回结果。其中,表示认证成功的返回结果为预设值。
此外,认证接口根据获取到的种子数据,对获取到的动态口令认证成功后,可以对种子数据中的令牌偏移量进行更新,认证系统对更新后的种子数据进行保存。
步骤210,认证系统根据认证接口的返回结果判断是否认证成功,如果是,则执行步骤211;否则,执行步骤212。
具体地,认证系统可以判断认证接口的返回结果是否为预设值,如果是,则确定认证成功;否则,确定认证失败。
例如,预设值为“0”。
步骤211,认证系统记录第一日志信息,向客户端返回认证成功消息。
其中,第一日志信息可以包括令牌序列号、认证引擎标识和认证成功标志。
例如,第一日志信息中包括令牌序列号“2800107”、认证引擎标识“F”和认证成功标志“0”。
步骤212,认证系统记录第二日志信息,向客户端返回认证失败消息。
其中,第二日志信息可以包括令牌序列号、认证引擎标识、认证失败标志和认证失败码。
例如,第二日志信息中包括令牌序列号“2800108”、认证引擎标识“JL”、认证失败标志“1”和认证失败码“1147”。
本发明实施例中,认证系统对种子文件进行解析,将解析得到的令牌信息导入到数据库中,并在接收到认证请求后,调用与认证请求中的令牌序列号对应的认证引擎库的认证接口,对认证请求中的动态口令进行认证,从而在同一认证系统中集成不同厂商和不同算法的动态口令的认证,提高了认证系统的兼容性,降低了认证系统的工作负担,有效提高了用户的管理方便性和应用灵活性。
本发明实施例还提供了一种集成多种动态口令的认证系统,如图3所示,包括:
存储模块301,用于存储多个认证引擎库和令牌信息;
接收模块302,用于接收来自客户端的认证请求,从认证请求中获取令牌序列号和动态口令;
第一查找模块303,用于根据接收模块302获取到的令牌序列号,从存储模块301中查找包含令牌序列号的令牌信息;
读取模块304,用于在第一查找模块303查找到包含令牌序列号的令牌信息后,从令牌信息中读取与令牌序列号对应的认证引擎标识;
处理模块305,用于使用接收模块302获取到的动态口令和第一查找模块303查找到的令牌信息中与令牌序列号对应的种子数据作为参数,调用与读取模块304读取到的认证引擎标识对应的认证引擎库的认证接口,并获取认证接口的返回结果;
第一判断模块306,用于根据处理模块305获取到的返回结果判断是否认证成功;
发送模块307,用于在第一查找模块303查找不到包含令牌序列号的令牌信息后,向客户端返回第一错误消息;在第一判断模块306判断出认证成功后,向客户端返回认证成功消息;在第一判断模块306判断出认证失败后,向客户端返回认证失败消息。
上述存储模块301,还用于存储与各个认证引擎库对应的认证引擎信息;
相应地,上述认证系统,还包括:
第二判断模块308,用于判断是否已加载与读取模块304读取到的认证引擎标识对应的认证引擎库;
第二查找模块309,用于在第二判断模块308判断出未加载与认证引擎标识对应的认证引擎库后,根据读取模块304读取到的认证引擎标识,从存储模块301中查找与认证引擎标识对应的认证引擎信息;
加载模块310,用于在第二查找模块309查找到与认证引擎标识对应的认证引擎信息后,从认证引擎信息中读取认证引擎库路径,根据认证引擎库路径加载与读取到的认证引擎标识对应的认证引擎库;
第三判断模块311,用于判断加载模块310是否加载认证引擎库成功;
上述处理模块305,具体用于在第二判断模块308判断出已加载与认证引擎标识对应的认证引擎库后,以及,在第三判断模块311判断出加载认证引擎库成功后,使用接收模块302获取到的动态口令和第一查找模块303查找到的令牌信息中与令牌序列号对应的种子数据作为参数,调用与读取模块304读取到的认证引擎标识对应的认证引擎库的认证接口,并获取认证接口的返回结果;
上述发送模块307,还用于在第二查找模块309未查找到与认证引擎标识对应的认证引擎信息后,向客户端返回第二错误消息;在第三判断模块311判断出加载认证引擎库未成功后,向客户端返回第三错误消息。
具体地,上述第二判断模块308,具体用于判断内存中的认证引擎列表中是否包含读取模块304读取到的认证引擎标识,如果是,则确定已加载与读取模块304读取到的认证引擎标识对应的认证引擎库;否则,确定没有加载与读取模块304读取到的认证引擎标识对应的认证引擎库;
相应地,上述认证系统,还包括:
添加模块312,用于在第三判断模块311判断出加载认证引擎库成功之后,将加载成功的认证引擎库对应的认证引擎标识添加到认证引擎列表中。
进一步地,认证引擎库的认证接口,用于获取动态口令和种子数据,从种子数据中获取种子密钥、动态因子和令牌偏移量,根据种子密钥、动态因子和令牌偏移量生成动态口令,并判断生成的动态口令是否与获取到的动态口令相同,如果是,则返回表示认证成功的返回结果;否则,返回表示认证失败的返回结果。
其中,表示认证成功的返回结果为预设值;
相应地,上述第一判断模块306,具体用于判断处理模块305获取到的返回结果是否为预设值,如果是,则确定认证成功;否则,确定认证失败。
进一步地,认证引擎库的认证接口,还用于在判断出生成的动态口令与获取到的动态口令相同后,对种子数据中的令牌偏移量进行更新;
相应地,上述存储模块301,用于对认证接口更新后的种子数据进行保存。
进一步地,上述认证系统,还包括:
获取模块313,用于获取种子数字信封文件,从种子数字信封文件中获取种子密文;
解密模块314,用于对获取模块313获取到的种子密文进行解密,得到种子文件;
导入模块315,用于对解密模块314解密得到的种子文件进行解析,将解析得到的令牌信息导入到存储模块301中。
其中,上述解密模块314,具体用于从种子数字信封文件中获取密钥密文,使用私钥对密钥密文进行解密,得到对称密钥,使用对称密钥对种子密文进行解密,得到种子文件。
进一步地,上述获取模块313,还用于从种子数字信封文件的文件名中获取令牌序列信息,根据令牌序列信息查询对应的认证引擎标识,并获取与认证引擎标识对应的私钥;
相应地,上述解密模块314,具体用于从种子数字信封文件中获取密钥密文,使用获取模块313获取到的私钥对密钥密文进行解密,得到对称密钥,使用对称密钥对种子密文进行解密,得到种子文件。
进一步地,上述获取模块313,还用于从种子数字信封文件的文件名中获取认证引擎标识,并根据认证引擎标识获取对应的私钥;
相应地,上述解密模块314,具体用于从种子数字信封文件中获取密钥密文,使用获取模块313获取到的私钥对密钥密文进行解密,得到对称密钥,使用对称密钥对种子密文进行解密,得到种子文件。
进一步地,上述认证系统,还包括:
验证模块316,用于对解密模块314解密得到的种子文件进行摘要计算,得到第二摘要,判断第二摘要是否与种子数字信封文件中的第一摘要相同,如果相同,则触发导入模块315对种子文件进行解析,将解析得到的令牌信息导入到数据库中;否则,显示错误信息。
本发明实施例中,认证系统对种子文件进行解析,将解析得到的令牌信息导入到数据库中,并在接收到认证请求后,调用与认证请求中的令牌序列号对应的认证引擎库的认证接口,对认证请求中的动态口令进行认证,从而在同一认证系统中集成不同厂商和不同算法的动态口令的认证,提高了认证系统的兼容性,降低了认证系统的工作负担,有效提高了用户的管理方便性和应用灵活性。
结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (22)

1.一种集成多种动态口令的认证系统的工作方法,其特征在于,所述认证系统中预置有多个认证引擎库,所述方法包括以下步骤:
S1、所述认证系统接收来自客户端的认证请求,从所述认证请求中获取令牌序列号和动态口令;
S2、所述认证系统根据所述令牌序列号,从数据库中查找包含所述令牌序列号的令牌信息,如果查找到,则执行步骤S3;否则,向所述客户端返回第一错误消息,结束流程;
S3、所述认证系统从查找到的令牌信息中读取与所述令牌序列号对应的认证引擎标识;
S4、所述认证系统使用所述动态口令和所述查找到的令牌信息中与所述令牌序列号对应的种子数据作为参数,调用与读取到的认证引擎标识对应的认证引擎库的认证接口,并获取所述认证接口的返回结果;
S5、所述认证系统根据所述返回结果判断是否认证成功,如果是,则执行步骤S6;否则,执行步骤S7;
S6、所述认证系统向所述客户端返回认证成功消息,结束流程;
S7、所述认证系统向所述客户端返回认证失败消息,结束流程。
2.如权利要求1所述的方法,其特征在于,所述数据库中存储有与各个认证引擎库对应的认证引擎信息;
所述步骤S3之后,还包括:
S8、所述认证系统判断是否已加载与读取到的认证引擎标识对应的认证引擎库,如果是,则执行步骤S4;否则,执行步骤S9;
S9、所述认证系统根据所述读取到的认证引擎标识,从所述数据库中查找与所述读取到的认证引擎标识对应的认证引擎信息,如果查找到,则执行步骤S10;否则,向所述客户端返回第二错误消息,结束流程;
S10、所述认证系统从查找到的认证引擎信息中读取认证引擎库路径,根据所述认证引擎库路径加载与所述读取到的认证引擎标识对应的认证引擎库;
S11、所述认证系统判断是否加载认证引擎库成功,如果是,则执行步骤S4;否则,向所述客户端返回第三错误消息,结束流程。
3.如权利要求2所述的方法,其特征在于,所述认证系统判断是否已加载与读取到的认证引擎标识对应的认证引擎库,具体为:
所述认证系统判断内存中的认证引擎列表中是否包含所述读取到的认证引擎标识,如果是,则确定已加载与所述读取到的认证引擎标识对应的认证引擎库;否则,确定没有加载与所述读取到的认证引擎标识对应的认证引擎库;
所述认证系统判断加载认证引擎库成功之后,还包括:
所述认证系统将加载成功的认证引擎库对应的认证引擎标识添加到所述认证引擎列表中。
4.如权利要求1所述的方法,其特征在于,所述认证系统使用所述动态口令和所述查找到的令牌信息中与所述令牌序列号对应的种子数据作为参数,调用与读取到的认证引擎标识对应的认证引擎库的认证接口之后,还包括:
所述认证引擎库的认证接口获取所述动态口令和所述种子数据,从所述种子数据中获取种子密钥、动态因子和令牌偏移量,根据所述种子密钥、所述动态因子和所述令牌偏移量生成动态口令,并判断生成的动态口令是否与获取到的动态口令相同,如果是,则返回表示认证成功的返回结果;否则,返回表示认证失败的返回结果。
5.如权利要求4所述的方法,其特征在于,所述表示认证成功的返回结果为预设值;
所述认证系统根据所述返回结果判断是否认证成功,具体为:
所述认证系统判断所述返回结果是否为预设值,如果是,则确定认证成功;否则,确定认证失败。
6.如权利要求4所述的方法,其特征在于,所述认证引擎库的认证接口判断出所述生成的动态口令与所述获取到的动态口令相同之后,还包括:
所述认证引擎库的认证接口对所述种子数据中的令牌偏移量进行更新,所述认证系统对更新后的种子数据进行保存。
7.如权利要求1所述的方法,其特征在于,还包括:
A1、种子文件系统生成种子文件,对所述种子文件进行加密,得到种子密文;
A2、所述种子文件系统根据所述种子密文生成种子数字信封文件;
A3、所述认证系统获取所述种子数字信封文件,从所述种子数字信封文件中获取所述种子密文;
A4、所述认证系统对所述种子密文进行解密,得到所述种子文件;
A5、所述认证系统对所述种子文件进行解析,将解析得到的令牌信息导入到所述数据库中。
8.如权利要求7所述的方法,其特征在于,所述种子文件系统对所述种子文件进行加密,得到种子密文之前,还包括:
所述种子文件系统生成随机数,将所述随机数转换为对称密钥;
所述种子文件系统对所述种子文件进行加密,得到种子密文,具体为:
所述种子文件系统使用所述对称密钥对所述种子文件进行对称加密,得到所述种子密文;
所述种子文件系统将所述随机数转换为对称密钥之后,还包括:
所述种子文件系统从预置的证书文件中提取公钥,并使用所述公钥对所述对称密钥进行加密,得到密钥密文;
所述种子文件系统根据所述种子密文生成种子数字信封文件,具体为:
所述种子文件系统根据所述种子密文和所述密钥密文生成种子数字信封文件;
所述认证系统获取所述种子数字信封文件之后,还包括:
所述认证系统从所述种子数字信封文件中获取所述密钥密文,使用私钥对所述密钥密文进行解密,得到所述对称密钥;
所述认证系统对所述种子密文进行解密,得到所述种子文件,具体为:
所述认证系统使用所述对称密钥对所述种子密文进行解密,得到所述种子文件。
9.如权利要求8所述的方法,其特征在于,所述种子文件系统根据所述种子密文和所述密钥密文生成种子数字信封文件之后,还包括:
所述种子文件系统使用预设的令牌序列信息对所述种子数字信封文件的文件名进行设置;
所述认证系统使用私钥对所述密钥密文进行解密之前,还包括:
所述认证系统从所述种子数字信封文件的文件名中获取令牌序列信息,根据所述令牌序列信息查询对应的认证引擎标识,并获取与所述认证引擎标识对应的所述私钥。
10.如权利要求8所述的方法,其特征在于,所述种子文件系统根据所述种子密文和所述密钥密文生成种子数字信封文件之后,还包括:
所述种子文件系统使用所述种子文件中的认证引擎标识对所述种子数字信封文件的文件名进行设置;
所述认证系统使用私钥对所述密钥密文进行解密之前,还包括:
所述认证系统从所述种子数字信封文件的文件名中获取认证引擎标识,并根据所述认证引擎标识获取对应的所述私钥。
11.如权利要求8所述的方法,其特征在于,所述种子文件系统生成种子文件之后,还包括:
所述种子文件系统对所述种子文件进行摘要计算,得到第一摘要;
所述种子文件系统根据所述种子密文和所述密钥密文生成种子数字信封文件,具体为:
所述种子文件系统根据所述密钥密文、所述种子密文和所述第一摘要生成种子数字信封文件;
所述认证系统对所述种子密文进行解密,得到所述种子文件之后,还包括:
所述认证系统对所述种子文件进行摘要计算,得到第二摘要,判断所述第二摘要是否与所述种子数字信封文件中的所述第一摘要相同,如果相同,则执行步骤A5;否则,显示错误信息,结束流程。
12.一种集成多种动态口令的认证系统,其特征在于,包括:
存储模块,用于存储多个认证引擎库和令牌信息;
接收模块,用于接收来自客户端的认证请求,从所述认证请求中获取令牌序列号和动态口令;
第一查找模块,用于根据所述接收模块获取到的所述令牌序列号,从所述存储模块中查找包含所述令牌序列号的令牌信息;
读取模块,用于在所述第一查找模块查找到包含所述令牌序列号的令牌信息后,从所述令牌信息中读取与所述令牌序列号对应的认证引擎标识;
处理模块,用于使用所述接收模块获取到的所述动态口令和所述第一查找模块查找到的所述令牌信息中与所述令牌序列号对应的种子数据作为参数,调用与所述读取模块读取到的所述认证引擎标识对应的认证引擎库的认证接口,并获取所述认证接口的返回结果;
第一判断模块,用于根据所述处理模块获取到的所述返回结果判断是否认证成功;
发送模块,用于在所述第一查找模块查找不到包含所述令牌序列号的令牌信息后,向所述客户端返回第一错误消息;在所述第一判断模块判断出认证成功后,向所述客户端返回认证成功消息;在所述第一判断模块判断出认证失败后,向所述客户端返回认证失败消息。
13.如权利要求12所述的认证系统,其特征在于,
所述存储模块,还用于存储与各个认证引擎库对应的认证引擎信息;
所述认证系统,还包括:
第二判断模块,用于判断是否已加载与所述读取模块读取到的认证引擎标识对应的认证引擎库;
第二查找模块,用于在所述第二判断模块判断出未加载与所述认证引擎标识对应的认证引擎库后,根据所述读取模块读取到的认证引擎标识,从所述存储模块中查找与所述认证引擎标识对应的认证引擎信息;
加载模块,用于在所述第二查找模块查找到与所述认证引擎标识对应的认证引擎信息后,从所述认证引擎信息中读取认证引擎库路径,根据所述认证引擎库路径加载与所述读取到的认证引擎标识对应的认证引擎库;
第三判断模块,用于判断所述加载模块是否加载认证引擎库成功;
所述处理模块,具体用于在所述第二判断模块判断出已加载与所述认证引擎标识对应的认证引擎库后,以及,在所述第三判断模块判断出加载认证引擎库成功后,使用所述接收模块获取到的所述动态口令和所述第一查找模块查找到的所述令牌信息中与所述令牌序列号对应的种子数据作为参数,调用与所述读取模块读取到的所述认证引擎标识对应的认证引擎库的认证接口,并获取所述认证接口的返回结果;
所述发送模块,还用于在所述第二查找模块未查找到与所述认证引擎标识对应的认证引擎信息后,向所述客户端返回第二错误消息;在所述第三判断模块判断出加载认证引擎库未成功后,向所述客户端返回第三错误消息。
14.如权利要求13所述的认证系统,其特征在于,
所述第二判断模块,具体用于判断内存中的认证引擎列表中是否包含所述读取模块读取到的认证引擎标识,如果是,则确定已加载与所述读取模块读取到的认证引擎标识对应的认证引擎库;否则,确定没有加载与所述读取模块读取到的认证引擎标识对应的认证引擎库;
所述认证系统,还包括:
添加模块,用于在所述第三判断模块判断出加载认证引擎库成功之后,将加载成功的认证引擎库对应的认证引擎标识添加到所述认证引擎列表中。
15.如权利要求12所述的认证系统,其特征在于,
所述认证引擎库的认证接口,用于获取所述动态口令和所述种子数据,从所述种子数据中获取种子密钥、动态因子和令牌偏移量,根据所述种子密钥、所述动态因子和所述令牌偏移量生成动态口令,并判断生成的动态口令是否与获取到的动态口令相同,如果是,则返回表示认证成功的返回结果;否则,返回表示认证失败的返回结果。
16.如权利要求15所述的认证系统,其特征在于,所述表示认证成功的返回结果为预设值;
所述第一判断模块,具体用于判断所述处理模块获取到的所述返回结果是否为预设值,如果是,则确定认证成功;否则,确定认证失败。
17.如权利要求15所述的认证系统,其特征在于,
所述认证引擎库的认证接口,还用于在判断出所述生成的动态口令与所述获取到的动态口令相同后,对所述种子数据中的令牌偏移量进行更新;
所述存储模块,用于对所述认证接口更新后的种子数据进行保存。
18.如权利要求12所述的认证系统,其特征在于,还包括:
获取模块,用于获取种子数字信封文件,从所述种子数字信封文件中获取种子密文;
解密模块,用于对所述获取模块获取到的所述种子密文进行解密,得到种子文件;
导入模块,用于对所述解密模块解密得到的所述种子文件进行解析,将解析得到的令牌信息导入到所述存储模块中。
19.如权利要求18所述的认证系统,其特征在于,
所述解密模块,具体用于从所述种子数字信封文件中获取密钥密文,使用私钥对所述密钥密文进行解密,得到对称密钥,使用所述对称密钥对所述种子密文进行解密,得到所述种子文件。
20.如权利要求19所述的认证系统,其特征在于,
所述获取模块,还用于从所述种子数字信封文件的文件名中获取令牌序列信息,根据所述令牌序列信息查询对应的认证引擎标识,并获取与所述认证引擎标识对应的所述私钥;
所述解密模块,具体用于从所述种子数字信封文件中获取密钥密文,使用所述获取模块获取到的私钥对所述密钥密文进行解密,得到所述对称密钥,使用所述对称密钥对所述种子密文进行解密,得到所述种子文件。
21.如权利要求19所述的认证系统,其特征在于,
所述获取模块,还用于从所述种子数字信封文件的文件名中获取认证引擎标识,并根据所述认证引擎标识获取对应的所述私钥;
所述解密模块,具体用于从所述种子数字信封文件中获取密钥密文,使用所述获取模块获取到的私钥对所述密钥密文进行解密,得到所述对称密钥,使用所述对称密钥对所述种子密文进行解密,得到所述种子文件。
22.如权利要求19所述的认证系统,其特征在于,还包括:
验证模块,用于对所述解密模块解密得到的所述种子文件进行摘要计算,得到第二摘要,判断所述第二摘要是否与所述种子数字信封文件中的第一摘要相同,如果相同,则触发所述导入模块对所述种子文件进行解析,将解析得到的令牌信息导入到所述数据库中;否则,显示错误信息。
CN201410304869.5A 2014-06-30 2014-06-30 一种集成多种动态口令的认证系统及其工作方法 Active CN104092545B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410304869.5A CN104092545B (zh) 2014-06-30 2014-06-30 一种集成多种动态口令的认证系统及其工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410304869.5A CN104092545B (zh) 2014-06-30 2014-06-30 一种集成多种动态口令的认证系统及其工作方法

Publications (2)

Publication Number Publication Date
CN104092545A CN104092545A (zh) 2014-10-08
CN104092545B true CN104092545B (zh) 2017-11-24

Family

ID=51640227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410304869.5A Active CN104092545B (zh) 2014-06-30 2014-06-30 一种集成多种动态口令的认证系统及其工作方法

Country Status (1)

Country Link
CN (1) CN104092545B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104580199B (zh) * 2014-12-31 2018-12-28 上海动联信息技术股份有限公司 一种基于微信的动态口令认证系统及认证方法
US11064358B2 (en) * 2016-05-24 2021-07-13 Feitian Technologies Co., Ltd. One-time-password authentication method and device
CN105827652B (zh) * 2016-05-24 2019-06-18 飞天诚信科技股份有限公司 一种认证动态口令的方法和设备
CN109426763B (zh) * 2017-08-22 2021-02-02 深圳荆虹科技有限公司 一种虹膜识别装置和方法
CN110620659B (zh) * 2019-08-28 2021-08-31 如般量子科技有限公司 基于对称密钥池和二次剩余的抗量子计算rfid认证方法及系统
CN115422568B (zh) * 2022-10-31 2023-03-24 南京芯驰半导体科技有限公司 一种基于SoC的文件加密方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060403A (zh) * 2006-04-18 2007-10-24 钟曦辰 基于无线通讯终端的交互式动态口令安全服务系统
CN101582763A (zh) * 2009-04-02 2009-11-18 北京飞天诚信科技有限公司 基于动态口令进行身份认证的方法和系统
CN101719238A (zh) * 2009-11-30 2010-06-02 中国建设银行股份有限公司 一种统一身份管理、认证和授权的方法及系统
CN102082788A (zh) * 2010-12-15 2011-06-01 北京信安世纪科技有限公司 一种防止网络钓鱼的设备和系统
CN102098162A (zh) * 2011-03-26 2011-06-15 成都勤智数码科技有限公司 一种基于安全令牌的运维安全管理方法
CN103888243A (zh) * 2014-04-15 2014-06-25 飞天诚信科技股份有限公司 一种种子密钥安全传输的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060403A (zh) * 2006-04-18 2007-10-24 钟曦辰 基于无线通讯终端的交互式动态口令安全服务系统
CN101582763A (zh) * 2009-04-02 2009-11-18 北京飞天诚信科技有限公司 基于动态口令进行身份认证的方法和系统
CN101719238A (zh) * 2009-11-30 2010-06-02 中国建设银行股份有限公司 一种统一身份管理、认证和授权的方法及系统
CN102082788A (zh) * 2010-12-15 2011-06-01 北京信安世纪科技有限公司 一种防止网络钓鱼的设备和系统
CN102098162A (zh) * 2011-03-26 2011-06-15 成都勤智数码科技有限公司 一种基于安全令牌的运维安全管理方法
CN103888243A (zh) * 2014-04-15 2014-06-25 飞天诚信科技股份有限公司 一种种子密钥安全传输的方法

Also Published As

Publication number Publication date
CN104092545A (zh) 2014-10-08

Similar Documents

Publication Publication Date Title
CN104092545B (zh) 一种集成多种动态口令的认证系统及其工作方法
CN110324143B (zh) 数据传输方法、电子设备及存储介质
CN106790156B (zh) 一种智能设备绑定方法及装置
JP6180177B2 (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
US20170308580A1 (en) Data Aggregation/Analysis System and Method Therefor
CN111209591B (zh) 一种按时间排序的存储结构与快速查询的方法
CN106850220A (zh) 数据加密方法、数据解密方法及装置
CN108848058A (zh) 智能合约处理方法及区块链系统
US11424919B2 (en) Protecting usage of key store content
US9641328B1 (en) Generation of public-private key pairs
CN112272188A (zh) 一种电商平台数据隐私保护的可搜索加密方法
CN102571355B (zh) 一种不落地导入密钥的方法及装置
CN103853943B (zh) 程序保护方法及装置
CN111680013A (zh) 基于区块链的数据共享方法、电子设备和装置
CN108270791A (zh) 一种安全运行可执行文件的方法及系统
CN111091381A (zh) 一种硬件钱包及其管理方法
CN111709060B (zh) 一种电子设备及其保护种子数据包的方法
CN113722741A (zh) 数据加密方法及装置、数据解密方法及装置
US10831911B2 (en) Method, computer program product and processing system for generating secure alternative representation
CN115168909B (zh) 一种基于比较索引的密文数据范围查询方法和系统
EP2775420A1 (en) Semantic search over encrypted data
CN105264539A (zh) 目录服务装置、客户机装置、密钥云系统、其方法、以及程序
CN115033925A (zh) 一种数据库安全检索方法
JP2004180318A (ja) データの暗号化又は解読方法及びデータの暗号化又は解読装置
CN106789037A (zh) 一种pkcs#11接口调用密码设备的签名方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240621

Address after: No. 129 Huanshan Road, Lixia District, Jinan City, Shandong Province, 250014, No. 66 Yangtouyu Mountain Villa

Patentee after: Shandong Lewen Information Technology Co.,Ltd.

Country or region after: China

Address before: 17th floor, building B, Huizhi building, No.9, Xueqing Road, Haidian District, Beijing 100085

Patentee before: Feitian Technologies Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right