CN108377190B - 一种认证设备及其工作方法 - Google Patents

一种认证设备及其工作方法 Download PDF

Info

Publication number
CN108377190B
CN108377190B CN201810153312.4A CN201810153312A CN108377190B CN 108377190 B CN108377190 B CN 108377190B CN 201810153312 A CN201810153312 A CN 201810153312A CN 108377190 B CN108377190 B CN 108377190B
Authority
CN
China
Prior art keywords
module
parameter
authentication
key
application
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
CN201810153312.4A
Other languages
English (en)
Other versions
CN108377190A (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.)
Feitian Technologies 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 CN201810153312.4A priority Critical patent/CN108377190B/zh
Publication of CN108377190A publication Critical patent/CN108377190A/zh
Application granted granted Critical
Publication of CN108377190B publication Critical patent/CN108377190B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token

Abstract

本发明涉及通信领域,尤其涉及一种认证设备及其工作方法。该方法包括:当认证和设备接收到认证请求命令时,从认证请求命令中获取挑战参数、第一应用参数和密钥句柄,从密钥句柄中获取密文密钥句柄和校验值,使用预存的校验值密钥对密文密钥句柄进行加密得到比较值;判断校验值和比较值是否匹配,当匹配时,使用预存的加密密钥对密文密钥句柄进行解密得到第二应用参数和随机参数,判断第二应用参数与第一应用参数是否一致,当一致时,使用随机参数和预存的私钥因子生成用户应用私钥,根据第一应用参数和挑战参数生成待签名数据,使用用户应用私钥对待签名数据进行签名得到签名值,并将签名值返回给上位机,采用该方法占用内存小且更加安全可靠。

Description

一种认证设备及其工作方法
技术领域
本发明涉及通信领域,尤其涉及一种认证设备及其工作方法。
背景技术
随着互联网和电子商务的快速发展,网络信息安全问题日益凸显。FIDO协议使用标准的非对称公私钥对来提供安全保障。当用户登录服务器注册信息时,用户的加密设备产生一对非对称密钥对,私钥在加密设备中保留,黑客无法读取,公钥传给服务器,服务器将此公钥和用户对应的账户相关联。当用户登录服务器验证信息时,用户使用设备中的私钥对服务器的挑战数据做签名,服务器使用对应的公钥做验证。
现有技术中,认证设备产生的密钥对是和服务器关联的,一对密钥对应一个服务器,而不是一个认证设备对应一个服务器。当认证设备需要认证多个服务器时,则必须对应存储每个服务器所对应的私钥,占用内存大。
发明内容
为解决现有技术中存在的技术问题,本发明提出了一种认证设备的工作方法,包括:
步骤S1、认证设备等待上位机下发的命令,当接收到认证请求命令时执行步骤S2;
步骤S2、认证设备从认证请求命令中获取挑战参数、第一应用参数和密钥句柄,从密钥句柄中获取密文密钥句柄和校验值,使用预存的校验值密钥对密文密钥句柄进行加密得到比较值;
步骤S3、认证设备判断校验值和比较值是否匹配,是则执行步骤S4,否则向上位机返回认证失败响应,结束;
步骤S4、认证设备使用预存的加密密钥对密文密钥句柄进行解密得到第二应用参数和随机参数,判断第二应用参数与第一应用参数是否一致,是则执行步骤S5;否则向上位机返回认证失败响应,结束;
步骤S5、认证设备使用随机参数和预存的私钥因子生成用户应用私钥,根据第一应用参数和挑战参数生成待签名数据,使用用户应用私钥对待签名数据进行签名得到签名值,并将签名值返回给上位机。
一种认证设备的工作方法,包括:
步骤R1、认证设备等待接收上位机下发的命令,当接收到认证请求命令时,执行步骤R2;
步骤R2、认证设备从认证请求命令中获取挑战参数、应用参数和密钥句柄,从密钥句柄中获取随机参数和校验值,使用预存的设备私钥对应用参数和随机参数进行加密运算生成用户应用私钥;使用设备私钥对用户应用私钥和应用参数进行加密运算得到比较值;
步骤R3、认证设备判断比较值和校验值是否一致,是则执行步骤R4,否则向上位机返回认证失败响应,结束;
步骤R4、认证设备根据应用参数和挑战参数得到待签名数据,使用用户应用私钥对待签名数据进行签名得到签名值,并将签名值返回上位机,结束。
一种认证设备,包括:
接收模块,用于接收上位机下发的认证请求命令;
获取模块,用于从接收模块接收到的认证请求命令中获取挑战参数、第一应用参数和密钥句柄,从密钥句柄中获取密文密钥句柄和校验值;
加密模块,用于使用预存的校验值密钥对获取模块获取到的密文密钥句柄进行加密得到比较值;
第一判断模块,用于判断获取模块获取到的校验值和加密模块加密得到的比较值是否匹配;
发送模块,用于当第一判断模块判定交易值和比较值不匹配时,向上位机返回认证失败响应,结束;
解密模块,用于当第一判断模块判定校验值与比较值匹配时,使用预设的加密密钥对获取模块获取到的密文密钥句柄进行解密得到第二应用参数和随机参数;
第二判断模块,用于判断解密模块解密得到的第二应用参数与获取模块获取到的第一应用参数是否一致;
第一用户应用私钥生成模块,用于当第二判断模块判定第二应用参数与第一应用参数一致时,使用解密模块解密得到的随机参数和预存的私钥因子生成用户应用私钥;
第一待签名数据生成模块,用于根据获取模块12获取到的第一应用参数和挑战参数生成待签名数据;
第一签名模块,用于使用第一用户应用私钥模块生成的用户应用私钥对第一待签名生成模块生成的待签名数据进行签名得到签名值;
发送模块,还用于将第一签名模块生成的签名值返回给上位机,还用于当第二判断模块判定第二应用参数与第一应用参数不一致时,向上位机返回认证失败响应,结束。
一种认证设备,包括:
接收模块,用于接收上位机下发的认证请求命令;
获取模块,用于从接收模块接收到的认证请求命令中获取挑战参数、应用参数和密钥句柄,从密钥句柄中获取随机参数和校验值;
第一用户应用私钥生成模块,用于使用预存的设备私钥对获取模块获取到的应用参数和随机参数进行加密运算生成用户应用私钥;
第一加密模块,用于使用设备私钥对第一用户应用私钥生成模块生成的用户应用私钥和获取模块获取到应用参数进行加密运算得到比较值;
第一判断模块,用于判断第一加密模块生成的比较值和获取模块获取到的校验值是否一致;
第一待签名数据生成模块,用于当第一判断模块判定比较值与校验值一致时,根据获取模块获取到的应用参数和挑战值得到待签名数据;
第一签名模块,用于使用第一用户应用私钥生成模块生成的用户私钥对第一待签名数据生成模块生成的待签名数据进行签名得到签名值;
发送模块,用于将第一签名模块签名得到的签名值返回给上层应用,结束;还用于当第一判断模块判定比较值和校验值不一致时,向上位机返回认证失败响应,结束。
本发明的有益效果为:认证设备内部生成用户应用私钥的原始数据,当进行认证时根据原始数据临时生成用户应用私钥完成身份认证,占用内存小且更加安全可靠。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的一种认证设备的工作方法的流程图;
图2是本发明实施例2提供的一种认证设备的工作方法的流程图;
图3是本发明实施例3提供的一种认证设备的工作方法的流程图;
图4是本发明实施例4提供的一种认证设备的工作方法的流程图;
图5是本发明实施例5提供的一种认证设备的方框图;
图6是本发明实施例6提供的一种认证设备的方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例提供一种认证设备的工作方法,如图1所示,包括:
步骤S1、认证设备等待上位机下发的命令,当接收到认证请求命令时执行步骤S2;
步骤S2、认证设备从认证请求命令中获取挑战参数、第一应用参数和密钥句柄,从密钥句柄中获取密文密钥句柄和校验值,使用预存的校验值密钥对密文密钥句柄进行加密得到比较值;
步骤S3、认证设备判断校验值和比较值是否匹配,是则执行步骤S4,否则向上位机返回认证失败响应,结束;
步骤S4、认证设备使用预存的加密密钥对密文密钥句柄进行解密得到第二应用参数和随机参数,判断第二应用参数与第一应用参数是否一致,是则执行步骤S5;否则向上位机返回认证失败响应,结束;
步骤S5、认证设备使用随机参数和预存的私钥因子生成用户应用私钥,根据第一应用参数和挑战参数生成待签名数据,使用用户应用私钥对待签名数据进行签名得到签名值,并将签名值返回给上位机。
具体的,步骤S5具体包括:认证设备使用随机参数和预存的私钥因子生成用户应用私钥,更新认证计数器值,根据认证计数器值、第一应用参数和挑战参数生成待签名数据,使用用户应用私钥对待签名数据进行签名得到签名值,并将签名值和认证计数器值返回给上位机。
优选的,步骤S4中,认证设备判定第二应用参数与第一应用参数一致之后,执行步骤S5之前还包括:认证设备判断是否接收到用户触发的允许认证信息,是则执行步骤S5,否则向上位机返回认证失败响应,结束。
更进一步的,认证设备判断是否接收到用户触发的允许认证信息之前还包括:认证设备判断是否需要用户参与认证,是则执行认证设备判断是否接收到用户触发的允许认证信息;否则执行步骤S5。
优选的,步骤S1之前还包括:认证设备上电,判断是否为首次上电,是则生成并保存私钥因子、加密密钥和校验值密钥,执行步骤S1,否则执行步骤S1。
可选的,步骤S1中还包括:当接收到注册请求命令时执行步骤A1;
步骤A1、认证设备生成随机参数,根据私钥因子和随机参数生成用户应用私钥,并根据用户应用私钥生成用户应用公钥;
步骤A2、认证设备使用加密密钥对随机数参数和注册请求命令中的应用参数进行加密得到密文密钥句柄,并使用校验值密钥对密文密钥句柄进行加密得到校验值,根据密文密钥句柄和校验值得到密钥句柄;
步骤A3、认证设备根据密钥句柄、用户应用公钥、注册请求命令中的应用参数和挑战参数生成待签名数据,并使用预存的设备私钥对待签名数据进行签名得到签名值,并将用户应用公钥、密钥句柄、预存的设备证书和签名值返回给上位机,结束。
可选的,当接收到注册请求命令之后,执行步骤A1之前,还包括:认证设备判断是否接收到用户触发的允许注册信息,是则执行步骤A1,否则向上位机发送注册失败响应,结束。
优选的,步骤A2具体为:认证设备使用加密密钥对预存的安全芯片参数、随机参数以及注册请求命令中的应用参数进行加密得到密文密钥句柄,并使用校验值密钥对密文密钥句柄进行加密得到校验值,根据密钥句柄和校验值得到密钥句柄;
相应的,步骤S4具体为:认证设备使用预存的加密密钥对密文密钥句柄进行解密得到第二应用参数、安全芯片参数和随机参数,判断第二应用参数与第一应用参数是否一致,并判断解密得到的安全芯片参数与预存的安全芯片参数是否一致,当判定均一致时执行步骤S5,否则向上位机返回认证失败响应,结束。
实施例2
本实施例提供了一种认证设备的工作方法,如图2所示,包括:
步骤101、认证设备上电;
步骤102、认证设备判断是否为首次上电,是则执行步骤103,否则执行步骤104;
优选的,认证设备根据上电标志位判断是否为首次上电,若上电标志位没有置位则为首次上电,将上电标志位置位,执行步骤103,否则执行步骤104;
步骤103、认证设备生成并保存私钥因子、加密密钥和校验值密钥,执行步骤104。
步骤104、认证设备等待上位机下发的命令;当接收到命令时,执行步骤105;
步骤105、认证设备判断命令的类型,若是注册请求命令则执行步骤106;若是认证请求命令则执行步骤112;
需要说明的是,认证设备获取接收到的命令的具体构成为:CLA+INS+P1+P2+Lc+Data+Le;CLA为命令的类别字节、INS为命令的指令字节、P1和P2为参数、Lc为命令体内Data中数据的长度、Data为数据、Le是预期返回的最大字节数;
具体的,认证设备获取接收到的命令的第二个字节,若第二个字节为“01”则判断命令的类型为注册请求命令,若第二个字节为“02”则判断命令的类型为认证请求命令。
例如,认证设备接收到的命令为:
00010000000040CFF69B107235A3E56E18BAA270A3A097DDBD75F4713E7C8126491E9057DC32310102030405060708090A0B0C0D0E0F100102030405060708090A0B0C0D0E0F100000;获取接收到的命令的第二个字节为“01”,则判断命令的类型为注册请求命令,执行步骤106;
又如,认证设备接收到的命令为:
00020300000091CFF69B107235A3E56E18BAA270A3A097DDBD75F4713E7C8126491E9057DC32310102030405060708090A0B0C0D0E0F100102030405060708090A0B0C0D0E0F10509C3BDE1387CEDD769DEE530F3618845CB4D0FFFEB57A755B4A7909D762CBDCD9DF5BB2D531858DB4027E41AD071958FD29DEE200BE9C8C62140BA1EE0B26CC6F40BEBC02B8B0A500B9A0D43692A12B290000,获取接收到命令的第二字节为“02”,则判断命令的类型为认证请求命令,执行步骤112;
步骤106、认证设备判断是否接收到用户触发的允许注册信息,是则执行步骤107;否则向上位机返回注册失败响应,结束;
具体的,认证设备判断是否存在有效按键状态,是则执行步骤107,否则向上位机返回错误响应,结束;
步骤107、认证设备生成随机参数,根据私钥因子和随机参数生成用户应用私钥,根据用户应用私钥生成用户应用公钥。
具体的,认证设备生成32字节的随机数作为随机参数,使用私钥因子与随机参数异或得到32字节的用户应用私钥,计算预存的椭圆曲线基点的用户应用私钥倍点得到用户应用公钥。
本实施例中,认证设备生成的用户应用公钥具体为:
876D3449C0E14247EE5A785EAD075C3A949BA61F7F835A8B7B1E605B21718FF663E5FBBEE54CB0466CFE965B8AF88515557760CF4ECC64BD0E6E47F7671FB3D2;
步骤108、认证设备从注册请求命令中获取挑战参数和应用参数,获取预存的安全芯片参数,根据应用参数、安全芯片参数和随机参数得到明文密钥句柄,使用加密密钥对明文密钥句柄进行加密得到密文密钥句柄;
具体的,认证设备从注册请求命令中获取应用参数,获取预存的安全芯片参数,将应用参数、安全芯片参数和随机参数顺序拼接得到明文密钥句柄,使用加密密钥对明文密钥句柄进行AES cbc加密得到密文密钥句柄;
例如,认证设备从注册请求命令中获取第8字节至第39字节的32字节数据作为挑战参数,获取第40字节至72字节的32字节数据作为应用参数;
本实施例中,32字节的挑战参数具体为:
CFF69B107235A3E56E18BAA270A3A097DDBD75F4713E7C8126491E9057DC3231;
32字节的应用参数具体为:
0102030405060708090A0B0C0D0E0F100102030405060708090A0B0C0D0E0F10;
本实施例中,认证设备生成的密文密钥句柄具体为:
A8CCF559C0792DE1E88938AED2975E144FDD5FF1376811B90CA17CDC0666A59B6ACEC983C365BC63C892B24F5C9AE40F51F30D8865E74EABFCB2A997A71F30D7308E047909034150B660353410FB19F0;
步骤109、认证设备使用校验值密钥对密文密钥句柄进行加密得到校验值;根据密文密钥句柄和校验值得到密钥句柄;
本实施例中,认证设备生成的校验值具体为:
8062523A2EA04D244C87BE6A60AF094E;认证设备将密文密钥句柄和校验值顺序拼接得到密钥句柄,具体为:
A8CCF559C0792DE1E88938AED2975E144FDD5FF1376811B90CA17CDC0666A59B6ACEC983C365BC63C892B24F5C9AE40F51F30D8865E74EABFCB2A997A71F30D7308E047909034150B660353410FB19F08062523A2EA04D244C87BE6A60AF094E;
步骤110、认证设备根据密钥句柄、用户应用公钥、应用参数和挑战参数生成待签名数据;使用预存的设备私钥对待签名数据进行签名得到签名值;
具体的,认证设备将00、应用参数、挑战参数、密钥句柄和用户应用公钥顺序拼接,对拼接结果进行SHA256运算得到待签名数据,使用预存的设备私钥对待签名数据进行签名得到签名值;
需要说明的是,设备出厂时预存了设备私钥和设备证书;
步骤111、认证设备根据用户应用公钥、密钥句柄、设备证书和签名值得到响应数据,并将响应数据返回给上位机,结束;
具体的,认证设备将05、用户应用公钥、密钥句柄的长度、密钥句柄、设备证书和签名值顺序拼接得到响应数据,将响应数据返回给上位机,结束。
步骤112、认证设备从认证请求命令中获取挑战参数、第一应用参数和密钥句柄,从密钥句柄中获取密文密钥句柄和校验值,使用校验值密钥对密文密钥句柄进行加密得到比较值;
具体的,认证设备从认证请求命令中获取第8字节至第39字节的32字节的数据作为挑战参数,获取第40字节至第72字节的32字节的数据作为第一应用参数,获取第73字节至第168字节的96字节的数据作为密钥句柄,获取密钥句柄中的前80字节作为密文密钥句柄,获取密钥句柄中的后16字节作为校验值;
本实施例中的认证设备从认证请求命令中获取到的挑战参数具体为:
CFF69B107235A3E56E18BAA270A3A097DDBD75F4713E7C8126491E9057DC3231,第一应用参数具体为:
0102030405060708090A0B0C0D0E0F100102030405060708090A0B0C0D0E0F10,密钥句柄具体为:
A8CCF559C0792DE1E88938AED2975E144FDD5FF1376811B90CA17CDC0666A59B6ACEC983C365BC63C892B24F5C9AE40F51F30D8865E74EABFCB2A997A71F30D7308E047909034150B660353410FB19F08062523A2EA04D244C87BE6A60AF094E,其中密文密钥句柄具体为:
A8CCF559C0792DE1E88938AED2975E144FDD5FF1376811B90CA17CDC0666A59B6ACEC983C365BC63C892B24F5C9AE40F51F30D8865E74EABFCB2A997A71F30D7308E047909034150B660353410FB19F0,校验值为:8062523A2EA04D244C87BE6A60AF094E;
步骤113、认证设备判断校验值和比较值是否一致,是则执行步骤114,否则向上位机发送认证失败响应,结束;
步骤114、认证设备使用加密密钥解密密文密钥句柄得到第二应用参数、安全芯片参数和随机参数;
步骤115、认证设备判断第二应用参数是否与第一应用参数匹配,是则执行步骤116,否则向上位机发送认证失败响应,结束;
步骤116、认证设备判断解密得到的安全芯片参数与预存的安全芯片参数是否一致,是则执行步骤117,否则向上位机发送认证失败响应,结束;
步骤117、认证设备根据随机参数和私钥因子生成用户应用私钥;
具体的,认证设备使用私钥因子与随机参数异或得到32字节的用户应用私钥;
步骤118、认证设备判断是否接收到用户触发的允许认证信息,是则执行步骤119,否则向上位机返回认证失败响应,结束;
优选的,步骤118之前还包括:认证设备判断是否需要用户参与认证,是则执行步骤118,否则执行步骤119;
具体的,认证设备获取认证请求命令中获取第三字节,若第三字节为“03”则判断需要用户参与认证,执行步骤118,若第三字节为“07”则判定不需要用户参与认证,执行步骤119;
步骤119、认证设备根据第一或者第二应用参数和挑战参数得到待签名数据,使用用户应用私钥对待签名数据进行签名得到签名值;并根据签名值组织响应数据,将响应数据返回给上位机,结束。
具体的,认证设备将应用参数、01和挑战参数顺序拼接,对拼接结果进行SHA256运算得到待签名数据,使用用户应用私钥对待签名数据进行签名得到签名值;
优选的,步骤119中具体为:认证设备更新认证计数器值,根据应用参数、认证计数器值和挑战参数得到待签名数据,使用用户应用私钥对待签名数据进行签名得到签名值;并根据认证计数器值和签名值组织响应数据,将响应数据返回给上位机,结束。
具体的,认证设备更新认证计数器值,将应用参数、01、4字节的认证计数器值和32字节的挑战参数顺序拼接,对拼接结果进行哈希运算得到待签名数据,使用用户应用私钥对待签名数据进行签名得到签名值,并将01、认证计数器值和签名值顺序拼接得到认证请求命令的响应数据,并将响应数据返回给上位机,结束;
本实施例中,认证设备生成的认证请求命令的响应数据具体为:
0100000039304402200EFB59F91668F2380343746217D969B46633C49FE3661B903ACCE1B2FDD4191A0220672ECD2DA698FA373483B767DF1CE707465A22F1825023DEB837DDBDDEC0C9D6。
需要说明的是,认证设备中无论是在注册结束或者在认证结束之后,还包括:删除用户应用私钥。
实施例3
本实施例提供一种认证设备的工作方法,如图3所示,包括:
步骤R1、认证设备等待接收上位机下发的命令,当接收到认证请求命令时,执行步骤R2;
步骤R2、认证设备从认证请求命令中获取挑战参数、应用参数和密钥句柄,从密钥句柄中获取随机参数和校验值,使用预存的设备私钥对应用参数和随机参数进行加密运算生成用户应用私钥;使用设备私钥对用户应用私钥和应用参数进行加密运算得到比较值;
步骤R3、认证设备判断比较值和校验值是否一致,是则执行步骤R4,否则向上位机返回认证失败响应,结束;
步骤R4、认证设备根据应用参数和挑战参数得到待签名数据,使用用户应用私钥对待签名数据进行签名得到签名值,并将签名值返回上位机,结束。
优选的,步骤R3中认证设备判定比较值和校验值一致时还包括:认证设备判断是否接收到用户触发的允许认证信息,是则执行步骤R4,否则向上位机返回认证失败响应。
可选的,步骤R1中还包括:当认证设备接收到注册请求命令时执行步骤B1;
步骤B1、认证设备生成随机参数,并使用预存的设备私钥对随机参数和注册请求命令中的应用参数进行加密运算得到用户应用私钥,并根据用户应用私钥生成用户应用公钥;
步骤B2、认证设备使用设备私钥对应用参数和用户应用私钥进行加密运算得到校验值,并根据随机参数和校验值生成密钥句柄;
步骤B3、认证设备根据密钥句柄、用户应用公钥、应用参数和挑战参数生成待签名数据,并使用预存的设备私钥对待签名数据进行签名得到签名值,并将用户应用公钥、密钥句柄、预存的设备证书和签名值返回给上位机,结束。
优选的,当认证设备接收到注册请求命令之后,执行步骤B1之前还包括:认证设备判断是否接收到用户触发的允许注册信息,是则执行步骤B1;否则向上位机返回注册失败响应,结束。
优选的,步骤B1具体为:认证设备生成随机参数,并使用预存的设备私钥对随机参数、预存的安全芯片参数以及注册请求命令中的应用参数进行加密运算得到用户应用私钥,并根据用户应用私钥生成用户应用公钥;
步骤R2具体为:认证设备从认证请求命令中获取挑战参数、应用参数和密钥句柄,从密钥句柄中获取随机参数和校验值,使用预存的设备私钥对预存的安全芯片参数、应用参数和随机参数进行加密运算生成用户应用私钥;使用设备私钥对用户应用私钥和应用参数进行加密运算得到比较值。
可选的,步骤R4具体为:认证设备更新认证计数器值,根据认证计数器值、应用参数和挑战参数得到待签名数据,使用用户应用私钥对待签名数据进行签名得到签名值,并将签名值和认证计数器值返回给上位机,结束。
实施例4
本实施例提供了一种认证设备的工作方法,如图4所示,包括:
步骤201、认证设备上电;
步骤202、认证设备等待上位机下发的命令,当接收到命令时,执行步骤203;
步骤203、认证设备判断命令的类型,当命令的类型为注册请求命令时,执行步骤204;当命令的类型为认证请求命令时,执行步骤210;
需要说明的是,认证设备获取接收到的命令的具体构成为:(CLA+INS+P1+P2)+(Lc+Data+Le);CLA为命令的类别字节、INS为命令的指令字节、P1和P2为参数、Lc为命令体内Data中数据的长度、Data为数据、Le是预期返回的最大字节数;
具体的,认证设备获取接收到的命令的第二个字节,若第二个字节为“01”则判断命令的类型为注册请求命令,若第二个字节为“02”则判断命令的类型为认证请求命令。
例如,认证设备接收到的命令为:
00010000000040CFF69B107235A3E56E18BAA270A3A097DDBD75F4713E7C8126491E9057DC32310102030405060708090A0B0C0D0E0F100102030405060708090A0B0C0D0E0F100000;获取接收到的命令的第二个字节为“01”,则判断命令的类型为注册请求命令,执行步骤204;
又如,认证设备接收到的命令为:
00020300000091CFF69B107235A3E56E18BAA270A3A097DDBD75F4713E7C8126491E9057DC32310102030405060708090A0B0C0D0E0F100102030405060708090A0B0C0D0E0F10509C3BDE1387CEDD769DEE530F3618845CB4D0FFFEB57A755B4A7909D762CBDCD9DF5BB2D531858DB4027E41AD071958FD29DEE200BE9C8C62140BA1EE0B26CC6F40BEBC02B8B0A500B9A0D43692A12B290000,获取接收到命令的第二字节为“02”,则判断命令的类型为认证请求命令,执行步骤210;
步骤204、认证设备判断是否接收到用户触发的允许认证信息,是则执行步骤205;否则向上位机发送注册失败响应,结束;
步骤205、认证设备生成随机数作为随机参数,并从注册请求命令中获取挑战参数和应用参数,使用预存的设备私钥对应用参数和随机参数进行加密运算得到用户应用私钥,根据用户应用私钥生成用户应用公钥;
具体的,认证设备生成32字节的随机数作为随机参数,使用预存的设备私钥对应用参数和随机参数进行HMAC运算得到用户应用私钥,计算预存的椭圆曲线基点的用户应用私钥倍点得到用户应用公钥。
步骤206、认证设备使用预存的设备私钥对应用参数和用户应用私钥进行加密运算得到校验值;
具体的,认证设备使用预存的设备私钥对应用参数和用户应用私钥进行HMAC运算得到校验值;
步骤207、认证设备根据随机参数和校验值生成密钥句柄;
具体的,认证设备将随机参数和校验值顺序拼接得到密钥句柄;
步骤208、认证设备根据密钥句柄、用户应用公钥、应用参数和挑战参数生成待签名数据,使用预存的设备私钥对待签名数据进行签名得到签名值;
具体的,认证设备将00、应用参数、挑战参数、密钥句柄和用户应用公钥顺序拼接,对拼接结果进行SHA256运算得到待签名数据,使用预存的设备私钥对待签名数据进行签名得到签名值;
需要说明的是,设备出厂时预存了设备私钥和设备证书;
步骤209、认证设备根据密钥句柄、设备证书和签名值得到响应数据,并将响应数据返回给上位机,结束;
具体的,认证设备将05、用户应用公钥、密钥句柄的长度、密钥句柄、设备证书和签名值顺序拼接得到响应数据,将响应数据返回给上位机,结束。
步骤210、认证设备从认证请求命令中获取挑战参数、应用参数和密钥句柄,从密钥句柄中获取随机参数和校验值,使用预存的设备私钥对应用参数和随机参数进行加密运算生成用户应用私钥,使用设备私钥对用户应用私钥和应用参数进行加密运算得到比较值;
具体的,认证设备从认证请求命令中获取挑战参数、应用参数和密钥句柄,从密钥句柄中获取随机参数和校验值,使用预存的设备私钥对应用参数和随机参数进行HAMC运算生成用户应用私钥,使用设备私钥对用户应用私钥和应用参数进行HMAC运算得到比较值;
步骤211、认证设备判断比较值和校验值是否一致,是则执行步骤212,否则向上位机返回认证失败响应,结束;
步骤212、认证设备判断是否接收到用户触发的允许认证信息,是则执行步骤213,否则向上位机返回认证失败响应,结束;
步骤213、认证设备根据应用参数和挑战值得到待签名数据,使用用户应用私钥对待签名数据进行签名得到签名值,并根据签名值组织响应数据,将响应数据返回给上位机,结束。
具体的,认证设备将应用参数、01和挑战参数顺序拼接,对拼接结果进行哈希运算得到待签名数据,使用用户应用私钥对待签名数据进行签名得到签名值;
优选的,205具体为:认证设备生成随机参数,并从注册请求命令中获取挑战参数和应用参数,使用预存的设备私钥对随机参数、预存的安全芯片参数以及注册请求命令中的应用参数进行加密运算得到用户应用私钥,并根据用户应用私钥生成用户应用公钥。
相应的,步骤201具体为:认证设备从认证请求命令中获取挑战参数、应用参数和密钥句柄,从所述密钥句柄中获取随机参数和校验值,使用预存的设备私钥对预存的安全芯片参数、应用参数和随机参数进行加密运算生成用户应用私钥;使用设备私钥对所述用户应用私钥和应用参数进行加密运算得到比较值。
优选的,步骤213具体为:认证设备更新认证计数器值,根据认证计数器值、应用参数和挑战参数得到待签名数据,使用用户应用私钥对所述待签名数据进行签名得到签名值,并将签名值和所述认证计数器值返回给上位机。
需要说明的是,认证设备中无论是在注册结束或者在认证结束之后,还包括:删除用户应用私钥
实施例5
本实施例提供一种认证设备,如图5所示,包括:
接收模块11,用于接收上位机下发的认证请求命令;
获取模块12,用于从接收模块11接收到的认证请求命令中获取挑战参数、第一应用参数和密钥句柄,从密钥句柄中获取密文密钥句柄和校验值;
加密模块13,用于使用预存的校验值密钥对获取模块12获取到的密文密钥句柄进行加密得到比较值;
第一判断模块14,用于判断获取模块12获取到的校验值和加密模块13加密得到的比较值是否匹配;
发送模块15,用于当第一判断模块14判定交易值和比较值不匹配时,向上位机返回认证失败响应,结束;
解密模块16,用于当第一判断模块14判定校验值与比较值匹配时,使用预设的加密密钥对获取模块12获取到的密文密钥句柄进行解密得到第二应用参数和随机参数;
第二判断模块17,用于判断解密模块16解密得到的第二应用参数与获取模块12获取到的第一应用参数是否一致;
第一用户应用私钥生成模块18,用于当第二判断模块17判定第二应用参数与第一应用参数一致时,使用解密模块16解密得到的随机参数和预存的私钥因子生成用户应用私钥;
第一待签名数据生成模块19,用于根据获取模块12获取到的第一应用参数和挑战参数生成待签名数据;
第一签名模块110,用于使用第一用户应用私钥生成模块生成的用户应用私钥对第一待签名生成模块19生成的待签名数据进行签名得到签名值;
发送模块15,还用于将第一签名模块110生成的签名值返回给上位机,还用于当第二判断模块17判定第二应用参数与第一应用参数不一致时,向上位机返回认证失败响应,结束。
优选的,认证设备还包括:
第三判断模块,用于当第二判断模块17判定第二应用参数与第一应用参数一致时,判断是否接收到用户触发的允许认证信息;
第一用户应用私钥生成模块18,具体用于当第三判断模块判定接收到用户触发的允许认证信息时,使用解密模块16解密得到的随机参数和预存的私钥因子生成用户应用私钥;
发送模块15,还用于当第三判断模块判定没有接收到用户触发的允许认证信息时,向上位机返回认证失败响应,结束
可选的,认证设备还包括:
第四判断模块,用于当第二判断模块17判定第二应用参数与第一应用参数一致时,判断是否需要用户参与认证;
第三判断模块,用于当第四判断模块判定需要用户参与认证时,判断是否接收到用户触发的允许认证信息;
发送模块15,还用于当第四判断模块判定不需要用户参与认证时,向上位机返回认证失败信息,结束。
优选的,认证设备还包括:
更新模块,用于更新认证计数器值;
第一待签名数据生成模块19,具体用于根据更新模块更新后的认证计数器值、获取模块12获取到的第一应用参数和挑战参数生成待签名数据;
发送模块15,具体用于将第一签名模块110签名得到的签名值和更新模块更新后的认证计数器值返回给上层应用。
可选的,认证设备还包括:
上电模块,用于上电;
第五判断模块,用于判断是否为首次上电;
数据生成模块,用于当第五判断模块判定为首次上电时,生成并保存私钥因子、加密密钥和校验值密钥;
接收模块11,用于当第五判断模块判定不是首次上电时,接收上位机下发的认证请求命令。
更进一步的,认证设备还包括:
接收模块11,还用于接收注册请求命令;
随机参数生成模块,用于当接收模块11接收到注册请求命令时,生成随机参数;
第二用户应用私钥生成模块,还用于根据数据生成模块生成的私钥因子和随机参数生成模块生成的随机参数生成用户应用私钥;
用户应用公钥生成模块,用于根据第二用户应用私钥模块生成的用户应用私钥生成用户应用公钥;
密文密钥句柄生成模块,用于使用数据生成模块生成的加密密钥对随机参数生成模块生成的随机参数和接收模块11接收到的注册请求命令中的应用参数进行机密得到密文密钥句柄;
校验值生成模块,用于使用数据生成模块生成的校验值密钥对密文密钥句柄生成模块生成的密文密钥句柄进行加密得到校验值;
密钥句柄生成模块,用于根据密文密钥句柄生成模块生成的密文密钥句柄和校验值生成模块生成的校验值得到密钥句柄;
第二待签名数据生成模块,用于根据密钥句柄生成模块生成的密钥句柄、用户应用公钥生成模块生成的用户应用公钥、注册请求命令中的应用参数和挑战参数生成待签名数据;
第二签名模块,用于使用预存的设备死要对第二待签名数据生成模块生成的待签名数据进行签名得到签名值;
发送模块15,还用于将用户应用公钥模块生成的用户应用公钥、密钥句柄生成模块生成的密钥句柄、预存的设备证书和第二签名模块生成的签名值返回给上位机,结束。
可选的,认证设备还包括:
第六判断模块,用于判断是否接收到用户触发的允许注册信息;
随机参数生成模块,用于当第六判断模块判定接收到用户触发的允许注册信息之后,生成随机参数;
发送模块15,还用于当第六判断模块判定没有接收到用户触发的允许注册信息之后,向上位机发送注册失败响应,结束。
优选的,密文密钥句柄生成模块,具体用于使用预存的安全芯片参数、数据生成模块生成的加密密钥对随机参数生成模块生成的随机参数和接收模块11接收到的注册请求命令中的应用参数进行机密得到密文密钥句柄;
解密模块16,具体用于当第一判断模块14判定校验值与比较值匹配时,使用预设的加密密钥对获取模块12获取到的密文密钥句柄进行解密得到第二应用参数、安全芯片参数和随机参数;
第二判断模块17,具体用于判断解密模块16解密得到的第二应用参数与获取模块12获取到的第一应用参数是否一致;并判断解密模块16解密得到的安全芯片参数和预存的安全芯片参数是否一致;
第一用户应用私钥生成模块18,用于当第二判断模块17判定第二应用参数与第一应用参数一致,且解密得到的安全芯片参数和预存的安全芯片参数一致时,使用解密模块16解密得到的随机参数和预存的私钥因子生成用户应用私钥;
发送模块15,具体用于当第二判断模块17判定第二应用参数与第一应用参数不一致,或解密得到的安全芯片参数和预存的安全芯片参数不一致时,向上位机返回认证失败响应,结束。
实施例6
本实施例提供一种认证设备,如图6所示,包括:
接收模块21,用于接收上位机下发的认证请求命令;
获取模块22,用于从接收模块21接收到的认证请求命令中获取挑战参数、应用参数和密钥句柄,从密钥句柄中获取随机参数和校验值;
第一用户应用私钥生成模块23,用于使用预存的设备私钥对获取模块22获取到的应用参数和随机参数进行加密运算生成用户应用私钥;
第一加密模块24,用于使用设备私钥对第一用户应用私钥生成模块23生成的用户应用私钥和获取模块22获取到应用参数进行加密运算得到比较值;
第一判断模块25,用于判断第一加密模块24生成的比较值和获取模块22获取到的校验值是否一致;
第一待签名数据生成模块26,用于当第一判断模块25判定比较值与校验值一致时,根据获取模块22获取到的应用参数和挑战值得到待签名数据;
第一签名模块27,用于使用第一用户应用私钥生成模块23生成的用户私钥对第一待签名数据生成模块26生成的待签名数据进行签名得到签名值;
发送模块28,用于将第一签名模块27签名得到的签名值返回给上层应用,结束;还用于当第一判断模块25判定比较值和校验值不一致时,向上位机返回认证失败响应,结束。
优选的,认证设备还包括:
第二判断模块,用于判断是否接收到用户触发的允许认证信息;
第一判断模块25,具体用于当第二判断模块判定接收到用户触发的允许认证信息时,判断第一加密模块24生成的比较值和获取模块22获取到的校验值是否一致;
发送模块28,还用于当第二判断模块判定没有接收到用户触发的允许认证信息时,向上位机返回认证失败响应,结束。
优选的,接收模块21,还用于接收上位机下发的注册请求命令;
随机参数生成模块,用于当接收模块21接收到注册请求命令时,生成随机参数;
第二用户应用私钥生成模块,用于使用预存的设备私钥对随机参数生成模块生成的随机参数生成模块生成的随机参数和接收模块21接收到的注册请求命令中的应用参数进行加密运算得到用户应用私钥;
用户应用公钥生成模块,用于根据第二用户应用私钥生成模块生成的用户应用私钥生成用户应用公钥;
第二加密模块,用于使用设备私钥对应用参数和第二用户应用私钥生成模块生成的用户应用私钥进行加密运算得到校验值;
密钥句柄生成模块,用于根据随机参数生成模块生成的随机参数和第二加密模块生成的校验值生成密钥句柄;
第二待签名数据生成模块,用于根据密钥句柄生成模块生成的密钥句柄、用户应用公钥生成的用户应用公钥生成用户应用公钥、应用参数和挑战值生成待签名数据;
第二签名模块,用于使用预存的设备私钥对待签名数据进行签名得到签名值;
发送模块28,还用于将用户应用公钥生成模块生成的用户应用公钥、密钥句柄生成模块生成的密钥句柄、预存的设备证书和第二签名模块生成的签名值返回给上位机,结束。
可选的,认证设备还包括:
第三判断模块,用于当接收模块21接收到注册请求命令时,判断是否接收到用户触发的允许注册信息;
随机参数生成模块,具体用于当第三判断模块判定接收到用户触发的允许注册信息时,生成随机参数;
发送模块28,还用于当第三判断模块判定没有接收到用户触发的允许注册信息时,向上位机返回注册失败响应,结束。
优选的,第二用户应用私钥生成模块,具体用于使用预存的设备私钥对随机参数生成模块生成的随机参数生成模块生成的随机参数、预存的安全芯片参数和接收模块21接收到的注册请求命令中的应用参数进行加密运算得到用户应用私钥;
相应的,第一用户应用私钥生成模块23,具体用于使用预存的设备私钥对预存的安全芯片参数、获取模块22获取到的应用参数和随机参数进行加密运算生成用户应用私钥。
优选的,认证设备还包括:更新模块,用于更新认证计数器值;
第一待签名数据生成模块26,具体用于当第一判断模块25判定比较值与校验值一致时,根据更新模块更新后的认证计数器值、获取模块22获取到的应用参数和挑战值得到待签名数据;
发送模块28,具体用于将第一签名模块27签名得到的签名值和更新模块更新后的认证计数器值返回给上层应用,结束。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (28)

1.一种认证设备的工作方法,其特征在于,包括:
步骤S1、认证设备等待上位机下发的命令,当接收到认证请求命令时执行步骤S2;
步骤S2、所述认证设备从所述认证请求命令中获取挑战参数、第一应用参数和密钥句柄,从密钥句柄中获取密文密钥句柄和校验值,使用预存的校验值密钥对密文密钥句柄进行加密得到比较值;
步骤S3、所述认证设备判断所述校验值和所述比较值是否匹配,是则执行步骤S4,否则向上位机返回认证失败响应,结束;
步骤S4、所述认证设备使用预存的加密密钥对所述密文密钥句柄进行解密得到第二应用参数和随机参数,判断所述第二应用参数与所述第一应用参数是否一致,是则执行步骤S5;否则向上位机返回认证失败响应,结束;
步骤S5、所述认证设备使用所述随机参数和预存的私钥因子生成用户应用私钥,根据所述第一应用参数和所述挑战参数生成待签名数据,使用所述用户应用私钥对所述待签名数据进行签名得到签名值,并将所述签名值返回给上位机。
2.如权利要求1所述的方法,其特征在于,所述步骤S4中,所述认证设备判定所述第二应用参数与所述第一应用参数一致之后,执行步骤S5之前还包括:所述认证设备判断是否接收到用户触发的允许认证信息,是则执行步骤S5,否则向上位机返回认证失败响应,结束。
3.如权利要求2所述的方法,其特征在于,所述认证设备判断是否接收到用户触发的允许认证信息之前还包括:所述认证设备判断是否需要用户参与认证,是则执行所述认证设备判断是否接收到用户触发的允许认证信息;否则执行步骤S5。
4.如权利要求1所述的方法,其特征在于,所述步骤S5具体包括:所述认证设备使用所述随机参数和预存的私钥因子生成用户应用私钥,更新认证计数器值,根据所述认证计数器值、所述第一应用参数和所述挑战参数生成待签名数据,使用所述用户应用私钥对所述待签名数据进行签名得到签名值,并将所述签名值和所述认证计数器值返回给上位机。
5.如权利要求1所述的方法,其特征在于,所述步骤S1之前还包括:所述认证设备上电,判断是否为首次上电,是则生成并保存私钥因子、加密密钥和校验值密钥,执行步骤S1,否则执行步骤S1。
6.如权利要求5所述的方法,其特征在于,所述步骤S1中还包括:当接收到注册请求命令时执行步骤A1;
步骤A1、所述认证设备生成随机参数,根据私钥因子和所述随机参数生成用户应用私钥,并根据所述用户应用私钥生成用户应用公钥;
步骤A2、所述认证设备使用所述加密密钥对随机参数和注册请求命令中的应用参数进行加密得到密文密钥句柄,并使用校验值密钥对所述密文密钥句柄进行加密得到校验值,根据所述密文密钥句柄和所述校验值得到密钥句柄;
步骤A3、所述认证设备根据所述密钥句柄、所述用户应用公钥、所述注册请求命令中的应用参数和所述挑战参数生成待签名数据,并使用预存的设备私钥对所述待签名数据进行签名得到签名值,并将所述用户应用公钥、所述密钥句柄、预存的设备证书和所述签名值返回给上位机,结束。
7.如权利要求6所述的方法,其特征在于,所述当接收到注册请求命令之后,执行步骤A1之前,还包括:所述认证设备判断是否接收到用户触发的允许注册信息,是则执行步骤A1,否则向上位机发送注册失败响应,结束。
8.如权利要求6所述的方法,其特征在于,所述步骤A2具体为:所述认证设备使用所述加密密钥对预存的安全芯片参数、随机参数以及注册请求命令中的应用参数进行加密得到密文密钥句柄,并使用校验值密钥对所述密文密钥句柄进行加密得到校验值,根据所述密钥句柄和所述校验值得到密钥句柄;
步骤S4具体为:所述认证设备使用预存的加密密钥对所述密文密钥句柄进行解密得到第二应用参数、安全芯片参数和随机参数,判断所述第二应用参数与所述第一应用参数是否一致,并判断解密得到的所述安全芯片参数与预存的安全芯片参数是否一致,当判定均一致时执行步骤S5,否则向上位机返回认证失败响应,结束。
9.一种认证设备的工作方法,其特征在于,包括:
步骤R1、认证设备等待接收上位机下发的命令,当接收到认证请求命令时,执行步骤R2;
步骤R2、所述认证设备从所述认证请求命令中获取挑战参数、应用参数和密钥句柄,从所述密钥句柄中获取随机参数和校验值,使用预存的设备私钥对所述应用参数和随机参数进行加密运算生成用户应用私钥;使用所述设备私钥对所述用户应用私钥和应用参数进行加密运算得到比较值;
步骤R3、所述认证设备判断所述比较值和所述校验值是否一致,是则执行步骤R4,否则向上位机返回认证失败响应,结束;
步骤R4、所述认证设备根据应用参数和挑战参数得到待签名数据,使用所述用户应用私钥对所述待签名数据进行签名得到签名值,并将签名值返回上位机,结束。
10.如权利要求9所述的方法,其特征在于,所述步骤R3中所述认证设备判定所述比较值和所述校验值一致时还包括:所述认证设备判断是否接收到用户触发的允许认证信息,是则执行步骤R4,否则向上位机返回认证失败响应。
11.如权利要求9所述的方法,其特征在于,所述步骤R1中还包括:当所述认证设备接收到注册请求命令时执行步骤B1;
步骤B1、所述认证设备生成随机参数,并使用预存的设备私钥对所述随机参数和所述注册请求命令中的应用参数进行加密运算得到用户应用私钥,并根据所述用户应用私钥生成用户应用公钥;
步骤B2、所述认证设备使用所述设备私钥对所述应用参数和所述用户应用私钥进行加密运算得到校验值,并根据所述随机参数和所述校验值生成密钥句柄;
步骤B3、所述认证设备根据所述密钥句柄、所述用户应用公钥、所述应用参数和所述挑战参数生成待签名数据,并使用预存的设备私钥对所述待签名数据进行签名得到签名值,并将所述用户应用公钥、所述密钥句柄、预存的设备证书和所述签名值返回给上位机,结束。
12.如权利要求11所述的方法,其特征在于,当所述认证设备接收到注册请求命令之后,执行步骤B1之前还包括:所述认证设备判断是否接收到用户触发的允许注册信息,是则执行步骤B1;否则向上位机返回注册失败响应,结束。
13.如权利要求11所述的方法,其特征在于,所述步骤B1具体为:所述认证设备生成随机参数,并使用预存的设备私钥对所述随机参数、预存的安全芯片参数以及所述注册请求命令中的应用参数进行加密运算得到用户应用私钥,并根据所述用户应用私钥生成用户应用公钥;
所述步骤R2具体为:所述认证设备从所述认证请求命令中获取挑战参数、应用参数和密钥句柄,从所述密钥句柄中获取随机参数和校验值,使用预存的设备私钥对预存的安全芯片参数、所述应用参数和随机参数进行加密运算生成用户应用私钥;使用所述设备私钥对所述用户应用私钥和应用参数进行加密运算得到比较值。
14.如权利要求9所述的方法,其特征在于,所述步骤R4具体为:所述认证设备更新认证计数器值,根据所述认证计数器值、应用参数和挑战参数得到待签名数据,使用所述用户应用私钥对所述待签名数据进行签名得到签名值,并将所述签名值和所述认证计数器值返回给上位机,结束。
15.一种认证设备,其特征在于,包括:
接收模块,用于接收上位机下发的认证请求命令;
获取模块,用于从所述接收模块接收到的所述认证请求命令中获取挑战参数、第一应用参数和密钥句柄,从密钥句柄中获取密文密钥句柄和校验值;
加密模块,用于使用预存的校验值密钥对所述获取模块获取到的所述密文密钥句柄进行加密得到比较值;
第一判断模块,用于判断所述获取模块获取到的所述校验值和所述加密模块加密得到的所述比较值是否匹配;
发送模块,用于当所述第一判断模块判定所述校验值和所述比较值不匹配时,向上位机返回认证失败响应,结束;
解密模块,用于当所述第一判断模块判定所述校验值与所述比较值匹配时,使用预设的加密密钥对所述获取模块获取到的所述密文密钥句柄进行解密得到第二应用参数和随机参数;
第二判断模块,用于判断所述解密模块解密得到的所述第二应用参数与所述获取模块获取到的所述第一应用参数是否一致;
第一用户应用私钥生成模块,用于当所述第二判断模块判定所述第二应用参数与所述第一应用参数一致时,使用所述解密模块解密得到的所述随机参数和预存的私钥因子生成用户应用私钥;
第一待签名数据生成模块,用于根据所述获取模块获取到的所述第一应用参数和所述挑战参数生成待签名数据;
第一签名模块,用于使用所述第一用户应用私钥生成模块生成的所述用户应用私钥对所述第一待签名数据生成模块生成的所述待签名数据进行签名得到签名值;
所述发送模块,还用于将所述第一签名模块生成的签名值返回给上位机,还用于当所述第二判断模块判定所述第二应用参数与所述第一应用参数不一致时,向上位机返回认证失败响应,结束。
16.如权利要求15所述的认证设备,其特征在于,还包括:
第三判断模块,用于当所述第二判断模块判定所述第二应用参数与所述第一应用参数一致时,判断是否接收到用户触发的允许认证信息;
所述第一用户应用私钥生成模块,具体用于当所述第三判断模块判定接收到用户触发的允许认证信息时,使用所述解密模块解密得到的所述随机参数和预存的私钥因子生成用户应用私钥;
所述发送模块,还用于当所述第三判断模块判定没有接收到用户触发的允许认证信息时,向上位机返回认证失败响应,结束。
17.如权利要求16所述的认证设备,其特征在于,还包括:
第四判断模块,用于当所述第二判断模块判定所述第二应用参数与所述第一应用参数一致时,判断是否需要用户参与认证;
所述第三判断模块,用于当所述第四判断模块判定需要用户参与认证时,判断是否接收到用户触发的允许认证信息;
所述发送模块,还用于当所述第四判断模块判定不需要用户参与认证时,向上位机返回认证失败响应,结束。
18.如权利要求15所述的认证设备,其特征在于,还包括:
更新模块,用于更新认证计数器值;
所述第一待签名数据生成模块,具体用于根据所述更新模块更新后的认证计数器值、所述获取模块获取到的所述第一应用参数和所述挑战参数生成待签名数据;
所述发送模块,具体用于将所述第一签名模块签名得到的签名值和所述更新模块更新后的认证计数器值返回给上位机。
19.如权利要求15所述的认证设备,其特征在于,还包括:
上电模块,用于上电;
第五判断模块,用于判断是否为首次上电;
数据生成模块,用于当所述第五判断模块判定为首次上电时,生成并保存私钥因子、加密密钥和校验值密钥;
所述接收模块,用于当所述第五判断模块判定不是首次上电时,接收上位机下发的认证请求命令。
20.如权利要求19所述的认证设备,其特征在于,还包括:
所述接收模块,还用于接收注册请求命令;
随机参数生成模块,用于当所述接收模块接收到所述注册请求命令时,生成随机参数;
第二用户应用私钥生成模块,还用于根据所述数据生成模块生成的所述私钥因子和所述随机参数生成模块生成的所述随机参数生成用户应用私钥;
用户应用公钥生成模块,用于根据所述第二用户应用私钥生成模块生成的所述用户应用私钥生成用户应用公钥;
密文密钥句柄生成模块,用于使用所述数据生成模块生成的所述加密密钥对所述随机参数生成模块生成的所述随机参数和所述接收模块接收到的所述注册请求命令中的应用参数进行加密得到密文密钥句柄;
校验值生成模块,用于使用所述数据生成模块生成的所述校验值密钥对所述密文密钥句柄生成模块生成的所述密文密钥句柄进行加密得到校验值;
密钥句柄生成模块,用于根据所述密文密钥句柄生成模块生成的所述密文密钥句柄和所述校验值生成模块生成的所述校验值得到密钥句柄;
第二待签名数据生成模块,用于根据所述密钥句柄生成模块生成的所述密钥句柄、所述用户应用公钥生成模块生成的所述用户应用公钥、所述注册请求命令中的应用参数和挑战参数生成待签名数据;
第二签名模块,用于使用预存的设备私钥对所述第二待签名数据生成模块生成的待签名数据进行签名得到签名值;
所述发送模块,还用于将所述用户应用公钥生成模块生成的所述用户应用公钥、所述密钥句柄生成模块生成的所述密钥句柄、预存的设备证书和所述第二签名模块生成的签名值返回给上位机,结束。
21.如权利要求20所述的认证设备,其特征在于,还包括:
第六判断模块,用于判断是否接收到用户触发的允许注册信息;
随机参数生成模块,用于当所述第六判断模块判定接收到用户触发的允许注册信息之后,生成随机参数;
所述发送模块,还用于当所述第六判断模块判定没有接收到用户触发的允许注册信息之后,向上位机发送注册失败响应,结束。
22.如权利要求20所述的认证设备,其特征在于,所述密文密钥句柄生成模块,具体用于使用预存的安全芯片参数、所述数据生成模块生成的所述加密密钥对所述随机参数生成模块生成的所述随机参数和所述接收模块接收到的所述注册请求命令中的应用参数进行加密得到密文密钥句柄;
解密模块,具体用于当所述第一判断模块判定所述校验值与所述比较值匹配时,使用预设的加密密钥对所述获取模块获取到的所述密文密钥句柄进行解密得到第二应用参数、安全芯片参数和随机参数;
第二判断模块,具体用于判断所述解密模块解密得到的所述第二应用参数与所述获取模块获取到的所述第一应用参数是否一致;并判断所述解密模块解密得到的所述安全芯片参数和预存的安全芯片参数是否一致;
第一用户应用私钥生成模块,用于当所述第二判断模块判定所述第二应用参数与所述第一应用参数一致,且所述解密得到的所述安全芯片参数和预存的安全芯片参数一致时,使用所述解密模块解密得到的所述随机参数和预存的私钥因子生成用户应用私钥;
所述发送模块,具体用于当所述第二判断模块判定所述第二应用参数与所述第一应用参数不一致,或所述解密得到的所述安全芯片参数和预存的安全芯片参数不一致时,向上位机返回认证失败响应,结束。
23.一种认证设备,其特征在于,包括:
接收模块,用于接收上位机下发的认证请求命令;
获取模块,用于从所述接收模块接收到的所述认证请求命令中获取挑战参数、应用参数和密钥句柄,从所述密钥句柄中获取随机参数和校验值;
第一用户应用私钥生成模块,用于使用预存的设备私钥对所述获取模块获取到的所述应用参数和所述随机参数进行加密运算生成用户应用私钥;
第一加密模块,用于使用所述设备私钥对所述第一用户应用私钥生成模块生成的所述用户应用私钥和所述获取模块获取到的所述应用参数进行加密运算得到比较值;
第一判断模块,用于判断所述第一加密模块生成的所述比较值和所述获取模块获取到的校验值是否一致;
第一待签名数据生成模块,用于当所述第一判断模块判定所述比较值与所述校验值一致时,根据所述获取模块获取到的所述应用参数和所述挑战参数得到待签名数据;
第一签名模块,用于使用所述第一用户应用私钥生成模块生成的所述用户应用私钥对所述第一待签名数据生成模块生成的所述待签名数据进行签名得到签名值;
发送模块,用于将所述第一签名模块签名得到的所述签名值返回给上位机,结束;还用于当所述第一判断模块判定所述比较值和所述校验值不一致时,向上位机返回认证失败响应,结束。
24.如权利要求23所述的认证设备,其特征在于,还包括:
第二判断模块,用于判断是否接收到用户触发的允许认证信息;
所述第一判断模块,具体用于当所述第二判断模块判定接收到用户触发的允许认证信息时,判断所述第一加密模块生成的所述比较值和所述获取模块获取到的校验值是否一致;
所述发送模块,还用于当所述第二判断模块判定没有接收到用户触发的允许认证信息时,向上位机返回认证失败响应,结束。
25.如权利要求23所述的认证设备,其特征在于,
所述接收模块,还用于接收上位机下发的注册请求命令;
随机参数生成模块,用于当所述接收模块接收到所述注册请求命令时,生成随机参数;
第二用户应用私钥生成模块,用于使用预存的设备私钥对所述随机参数生成模块生成的随机参数和所述接收模块接收到的所述注册请求命令中的所述应用参数进行加密运算得到用户应用私钥;
用户应用公钥生成模块,用于根据所述第二用户应用私钥生成模块生成的所述用户应用私钥生成用户应用公钥;
第二加密模块,用于使用所述设备私钥对所述应用参数和所述第二用户应用私钥生成模块生成的所述用户应用私钥进行加密运算得到校验值;
密钥句柄生成模块,用于根据所述随机参数生成模块生成的所述随机参数和所述第二加密模块生成的所述校验值生成密钥句柄;
第二待签名数据生成模块,用于根据所述密钥句柄生成模块生成的所述密钥句柄、所述用户应用公钥生成模块生成的所述用户应用公钥、所述应用参数和所述挑战参数生成待签名数据;
第二签名模块,用于使用预存的设备私钥对所述待签名数据进行签名得到签名值;
所述发送模块,还用于将所述用户应用公钥生成模块生成的所述用户应用公钥、所述密钥句柄生成模块生成的所述密钥句柄、预存的设备证书和所述第二签名模块生成的所述签名值返回给上位机,结束。
26.如权利25所述的认证设备,其特征在于,还包括:
第三判断模块,用于当所述接收模块接收到所述注册请求命令时,判断是否接收到用户触发的允许注册信息;
所述随机参数生成模块,具体用于当所述第三判断模块判定接收到用户触发的允许注册信息时,生成随机参数;
所述发送模块,还用于当所述第三判断模块判定没有接收到用户触发的允许注册信息时,向上位机返回注册失败响应,结束。
27.如权利要求25所述的认证设备,其特征在于,
所述第二用户应用私钥生成模块,具体用于使用预存的设备私钥对所述随机参数生成模块生成的随机参数、预存的安全芯片参数和所述接收模块接收到的所述注册请求命令中的所述应用参数进行加密运算得到用户应用私钥;
第一用户应用私钥生成模块,具体用于使用预存的设备私钥对预存的安全芯片参数、所述获取模块获取到的所述应用参数和所述随机参数进行加密运算生成用户应用私钥。
28.如权利要求23所述的认证设备,其特征在于,还包括:更新模块,用于更新认证计数器值;
第一待签名数据生成模块,具体用于当所述第一判断模块判定所述比较值与所述校验值一致时,根据所述更新模块更新后的所述认证计数器值、所述获取模块获取到的所述应用参数和所述挑战参数得到待签名数据;
发送模块,具体用于将所述第一签名模块签名得到的所述签名值和所述更新模块更新后的所述认证计数器值返回给上位机,结束。
CN201810153312.4A 2018-02-14 2018-02-14 一种认证设备及其工作方法 Active CN108377190B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810153312.4A CN108377190B (zh) 2018-02-14 2018-02-14 一种认证设备及其工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810153312.4A CN108377190B (zh) 2018-02-14 2018-02-14 一种认证设备及其工作方法

Publications (2)

Publication Number Publication Date
CN108377190A CN108377190A (zh) 2018-08-07
CN108377190B true CN108377190B (zh) 2020-11-24

Family

ID=63017766

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810153312.4A Active CN108377190B (zh) 2018-02-14 2018-02-14 一种认证设备及其工作方法

Country Status (1)

Country Link
CN (1) CN108377190B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109302286B (zh) * 2018-10-26 2021-03-16 江苏恒宝智能系统技术有限公司 一种Fido设备密钥索引的生成方法
WO2021083349A1 (zh) * 2019-11-01 2021-05-06 浙江地芯引力科技有限公司 一种基于安全芯片的安全认证方法与系统、安全芯片及可读存储介质
CN111414638B (zh) * 2020-04-23 2023-03-24 飞天诚信科技股份有限公司 一种区分密钥生成方式的实现方法及装置
CN111917551B (zh) * 2020-06-23 2021-10-01 深圳奥联信息安全技术有限公司 一种基于无证书公钥的句柄访问保护方法和系统
CN111917552B (zh) * 2020-06-23 2022-03-18 深圳奥联信息安全技术有限公司 一种基于标识密钥的句柄权限控制方法、装置和系统
CN112506267B (zh) * 2020-12-01 2024-04-19 上海银基信息安全技术股份有限公司 一种rtc校准方法、车载终端、用户端和存储介质
CN113079037B (zh) * 2021-03-23 2022-12-02 中国联合网络通信集团有限公司 一种远程更新认证应用证书的方法及系统
CN112995213B (zh) * 2021-04-23 2021-08-03 北京紫光安芯科技有限公司 一种安全认证方法及其应用装置
CN113408309B (zh) * 2021-08-19 2021-11-26 飞天诚信科技股份有限公司 一种数据处理方法、装置及计算机可读存储介质
CN113904767A (zh) * 2021-09-29 2022-01-07 深圳市惠尔顿信息技术有限公司 一种基于ssl建立通信的系统
CN114978543B (zh) * 2022-05-23 2023-09-19 飞天诚信科技股份有限公司 一种凭证注册和认证的方法及系统
CN115037546B (zh) * 2022-06-20 2024-04-26 深圳海星智驾科技有限公司 密钥泄露的判定方法和装置、电子设备和存储介质
CN117807605A (zh) * 2022-09-23 2024-04-02 华为技术有限公司 一种数据保护方法及电子设备
CN115941204B (zh) * 2022-12-06 2024-04-12 镁佳(北京)科技有限公司 一种基于hse的数据防重放方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286848A (zh) * 2008-05-23 2008-10-15 杨筑平 登录认证方法和登录签名程序
CN102231667A (zh) * 2011-07-29 2011-11-02 飞天诚信科技股份有限公司 串口设备注册的方法和装置
CN106327184A (zh) * 2016-08-22 2017-01-11 中国科学院信息工程研究所 一种基于安全硬件隔离的移动智能终端支付系统及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016112338A1 (en) * 2015-01-08 2016-07-14 Intertrust Technologies Corporation Cryptographic systems and methods
US20170295018A1 (en) * 2016-04-08 2017-10-12 Adtran, Inc. System and method for securing privileged access to an electronic device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286848A (zh) * 2008-05-23 2008-10-15 杨筑平 登录认证方法和登录签名程序
CN102231667A (zh) * 2011-07-29 2011-11-02 飞天诚信科技股份有限公司 串口设备注册的方法和装置
CN106327184A (zh) * 2016-08-22 2017-01-11 中国科学院信息工程研究所 一种基于安全硬件隔离的移动智能终端支付系统及方法

Also Published As

Publication number Publication date
CN108377190A (zh) 2018-08-07

Similar Documents

Publication Publication Date Title
CN108377190B (zh) 一种认证设备及其工作方法
KR101999188B1 (ko) 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안
US9467430B2 (en) Device, method, and system for secure trust anchor provisioning and protection using tamper-resistant hardware
JP6226197B2 (ja) 証明書発行システム、クライアント端末、サーバ装置、証明書取得方法、及び証明書発行方法
CN108513704B (zh) 终端主密钥的远程分发方法及其系统
CN110401615B (zh) 一种身份认证方法、装置、设备、系统及可读存储介质
CN101828357B (zh) 用于证书提供的方法和装置
CN111512608B (zh) 基于可信执行环境的认证协议
US10931464B2 (en) Communication system, hardware security module, terminal device, communication method, and program
CN107612889B (zh) 防止用户信息泄露的方法
US8397281B2 (en) Service assisted secret provisioning
JP2005102163A (ja) 機器認証システム、機器認証サーバ、端末機器、機器認証方法、機器認証プログラム、及び記憶媒体
KR101706117B1 (ko) 휴대용 단말기에서 다른 휴대용 단말기를 인증하는 장치 및 방법
JP2019530265A (ja) グラフィックコード情報を提供及び取得する方法及び装置並びに端末
CN108809633B (zh) 一种身份认证的方法、装置及系统
CN108199847B (zh) 数字安全处理方法、计算机设备及存储介质
CN103546289A (zh) 一种基于USBKey的安全传输数据的方法及系统
CN107104795B (zh) Rsa密钥对和证书的注入方法、架构及系统
CN111401901B (zh) 生物支付设备的认证方法、装置、计算机设备和存储介质
KR20150059347A (ko) 휴대 단말기, 단말기 및 보안쿠키를 이용한 인증 방법
WO2018120938A1 (zh) 密钥离线传输方法、终端和存储介质
JP4823704B2 (ja) 認証システムおよび同システムにおける認証情報委譲方法ならびにセキュリティデバイス
CN112989316B (zh) 一种adb授权的认证方法与系统
TW200803392A (en) Method, device, server arrangement, system and computer program products for securely storing data in a portable device
CN108932425B (zh) 一种离线身份认证方法、认证系统及认证设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
OL01 Intention to license declared