CN114938281B - 一种安全设备的实现方法及安全设备 - Google Patents

一种安全设备的实现方法及安全设备 Download PDF

Info

Publication number
CN114938281B
CN114938281B CN202210855758.8A CN202210855758A CN114938281B CN 114938281 B CN114938281 B CN 114938281B CN 202210855758 A CN202210855758 A CN 202210855758A CN 114938281 B CN114938281 B CN 114938281B
Authority
CN
China
Prior art keywords
instruction
certificate
data
preset
response
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
CN202210855758.8A
Other languages
English (en)
Other versions
CN114938281A (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 CN202210855758.8A priority Critical patent/CN114938281B/zh
Publication of CN114938281A publication Critical patent/CN114938281A/zh
Application granted granted Critical
Publication of CN114938281B publication Critical patent/CN114938281B/zh
Priority to PCT/CN2023/095726 priority patent/WO2024016829A1/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
    • 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
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种安全设备的实现方法及安全设备,方法包括:安全设备的FIDO HID接口接收指令,当判断接收到的指令为预置的FIDO指令时,安全设备对预置的FIDO指令进行解析后得到预置参数,根据预置参数得到功能指令,判断功能指令的类型,当功能指令为证书请求生成指令时,安全设备生成密钥对,将密钥对存储到存储文件,使用密钥对的私钥对证书请求生成指令中的用户输入信息和密钥对的公钥进行签名,生成签名值,将签名值、密钥对的公钥和用户输入信息发送给客户端,当功能指令为写入证书指令时,安全设备将写入证书指令中的证书数据写入存储文件,并返回操作成功的响应。本发明扩展了安全设备的使用范围。

Description

一种安全设备的实现方法及安全设备
技术领域
本发明涉及信息安全领域,特别涉及一种安全设备的实现方法及安全设备。
背景技术
现有技术中传统的PKI体系中使用的安全设备通过不同的浏览器需要安装不同的插件才能够访问服务器,限制了PKI体系中使用的安全设备的使用范围。
发明内容
本发明提供了一种安全设备的实现方法及安全设备,解决了上述技术问题。
一种安全设备的实现方法,包括:
步骤1,安全设备等待接收客户端发送指令;
步骤2,当安全设备的第一接口接收到指令时,判断接收到的指令是否为预置的FIDO指令,如果是,执行步骤3, 如果否,执行相应的指令操作,执行步骤1;第一接口为FIDOHID接口;
步骤3,安全设备对预置的FIDO指令进行解析后得到预置参数,根据预置参数得到功能指令,判断功能指令的类型,当功能指令为证书请求生成指令时,执行步骤4; 当功能指令为写入证书指令时,执行步骤5;
步骤4, 安全设备生成密钥对,将密钥对存储到存储文件,使用密钥对的私钥对证书请求生成指令中的用户输入信息和密钥对的公钥进行签名,生成签名值,根据签名值、密钥对的公钥和用户输入信息生成证书请求生成指令的响应,根据证书请求生成指令的响应生成响应数据,根据响应数据生成预置的FIDO指令的响应,将预置的FIDO指令的响应发送给客户端,执行步骤1;
步骤5,安全设备将写入证书指令中的证书数据写入存储文件,根据成功的状态码组成响应数据,根据响应数据生成预置的FIDO指令的响应,将预置的FIDO指令的响应发送给客户端,执行步骤1。
一种安全设备,包括:
等待接收模块,用于等待接收客户端发送命令;
接收模块,用于接收客户端发送的指令;
第一判断触发模块,用于当接收模块通过第一接口接收到指令时,判断接收模块接收到的指令是否为预置的FIDO指令,还用于当第一判断模块的判断结果为是时,触发解析模块;当第二判断模块的判断结果为否时,触发第一操作模块;第一接口为FIDO HID接口;
第一操作模块,用于被第一判断触发模块触发时,执行相应的指令操作;
解析模块,用于对预置的FIDO指令进行解析后得到预置参数并根据预置参数得到功能指令;
第二判断触发模块,用于判断解析模块得到的功能指令的类型,当判断功能指令为证书请求生成指令时,触发第二操作模块;当判断功能指令为写入证书指令时,触发第三操作模块;
第二操作模块,用于被第二判断触发模块触发时,生成密钥对,将密钥对存储到存储文件,使用密钥对的私钥对证书请求生成指令中的用户输入信息和密钥对的公钥进行签名,生成签名值,根据签名值、密钥对的公钥和用户输入信息生成证书请求生成指令的响应,根据证书请求生成指令的响应生成响应数据,根据响应数据生成预置的FIDO指令的响应,将预置的FIDO指令的响应发送给客户端,触发等待接收模块;
第三操作模块,用于将写入证书指令中的证书数据写入存储文件,根据成功的状态码组成响应数据,根据响应数据生成预置的FIDO指令的响应,将预置的FIDO指令的响应发送给客户端,触发等待接收模块。
本发明还提供了一种安全设备,该安全设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现上述安全设备的实现方法。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述安全设备的实现方法。
本发明还提供了一种芯片,该芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行上述安全设备的实现方法。
本发明的有益效果:本发明提供了一种安全设备的实现方法及安全设备,在PKI体系中使用的安全设备上增加FIDO接口,通过FIDO接口实现了对证书的操作,实现了针对不同浏览器的免插件安装的操作,从而扩大了安全设备的应用范围。
附图说明
图1为本发明实施例一提供的一种安全设备的实现方法的流程图;
图2和图3为本发明实施例二提供的一种安全设备的实现方法的流程图;
图4和图5为本发明实施例三提供的一种安全设备的实现方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请中的安全设备为PKI体系中使用的安全设备。
实施例一
本发明提供了一种安全设备的实现方法,如图1所示,包括如下步骤:
步骤1,安全设备等待接收客户端发送指令;
步骤2,当安全设备的第一接口接收到指令时,判断接收到的指令是否为预置的FIDO指令,如果是,执行步骤3,如果否,执行相应的指令操作,执行步骤1;第一接口为FIDOHID接口;
步骤3,安全设备对预置的FIDO指令进行解析后得到预置参数,根据预置参数得到功能指令,判断功能指令的类型,当功能指令为证书请求生成指令时,执行步骤4; 当功能指令为写入证书指令时,执行步骤5;
步骤4, 安全设备生成密钥对,将密钥对存储到存储文件,使用密钥对的私钥对证书请求生成指令中的用户输入信息和密钥对的公钥进行签名,生成签名值,根据签名值、密钥对的公钥和用户输入信息生成证书请求生成指令的响应,根据证书请求生成指令的响应生成响应数据,根据响应数据生成预置的FIDO指令的响应,将预置的FIDO指令的响应发送给客户端,执行步骤1;
步骤5,安全设备将写入证书指令中的证书数据写入存储文件,根据成功的状态码组成响应数据,根据响应数据生成预置的FIDO指令的响应,将预置的FIDO指令的响应发送给客户端,执行步骤1。
在一种可能的实施方式中,存储文件为容器文件,容器文件有对应的容器标识。
在一种可能的实施方式中,步骤4中安全设备生成密钥对,将密钥对存储到存储文件具体为:安全设备生成密钥对,将密钥对存储到与证书请求生成指令中的容器标识所对应的容器文件中;
步骤5中安全设备将写入证书指令中的证书数据写入存储文件具体为:安全设备将写入证书指令中的证书数据写入与写入证书指令中的容器标识所对应的容器文件中。
在一种可能的实施方式中,当功能指令为证书请求生成指令时,执行步骤4具体为:
安全设备判断是否存在与证书请求生成指令中的容器标识所对应的容器文件,如果是,执行步骤4,如果否,安全设备创建与证书请求生成指令中的容器标识所对应的容器文件,执行步骤4。
在一种可能的实施方式中,步骤3还包括:
当功能指令为读取证书指令时,执行步骤6;当功能指令为签名指令,执行步骤7;
步骤6,安全设备从与读取证书指令中的容器标识对应的容器文件中获取证书数据,将获取的证书数据发送给客户端,执行步骤1;
步骤7,安全设备从签名指令中获取容器标识和待签名信息,从与容器标识对应的容器文件中读取私钥,根据找到的私钥对待签名信息进行签名后得到签名结果,根据签名结果组成预置FIDO指令的响应,将预置FIDO指令的响应发送给客户端,执行步骤1。
在一种可能的实施方式中,步骤2还包括:当安全设备的第二接口接收到指令并且接收到的指令类型为读证书指令时,安全设备从与读证书指令所对应的容器文件中获取证书数据,并将证书数据返回给客户端,执行步骤1。
在一种可能的实施方式中,存储文件包含:IKF文件、公有区文件和私有区文件,公有区文件包括容器对象、公钥对象、加速对象和证书对象,私有区文件包括私钥对象,公有区文件具有对应的公有区文件标识,私有区文件具有对应的私有区文件标识。
在一种可能的实施方式中,步骤4中,安全设备生成密钥对,将密钥对存储到存储文件具体为:
步骤4-1,安全设备生成密钥对和密钥标识,将密钥对和密钥标识存储到预置的IKF文件中;
步骤4-2,安全设备创建容器对象、公钥对象、私钥对象;
步骤4-3,安全设备将容器对象的容器名称、证书请求生成指令中的用户输入信息中的证书DN值和密钥标识关联生成加速对象记录,将加速对象记录存储到加速对象中以更新加速对象;
步骤5中,安全设备将写入证书指令中的证书数据写入存储文件具体为:安全设备根据写入证书指令中的证书数据创建证书对象及证书对象标识,将证书对象标识与加速对象中的与证书数据中的证书DN值相对应的加速对象记录相关联以更新加速对象。
在一种可能的实施方式中,步骤3中还包括: 当功能指令为读取证书指令时,执行步骤6’;当功能指令为签名指令时,执行步骤7’;
步骤6’ ,安全设备根据读取证书指令中的证书DN值或容器名称对加速对象中的加速对象记录进行遍历,根据证书DN值或容器名称找到与其对应的加速对象记录,从加速对象记录中获取证书对象标识,根据证书对象标识从证书对象中获取证书数据,根据证书数据生成响应数据,根据响应数据组成预置FIDO指令的响应,将预置FIDO指令的响应发送给客户端,执行步骤1;
步骤7’,安全设备根据签名指令中的证书DN值或者容器名称对加速对象中的加速对象记录进行遍历,找到与证书DN值或者容器名称相对应的加速对象记录,从加速对象记录中获取密钥标识,根据密钥标识从IKF文件中找到对应的私钥,使用私钥对签名指令中的待签名数据进行签名后得到签名结果,根据签名结果组成预置FIDO指令的响应,将预置FIDO指令的响应发送给客户端,执行步骤1。
在一种可能的实施方式中,步骤2还包括:
当安全设备的第二接口接收到指令并且接收到的指令的类型为选择文件指令且选择文件指令中的文件标识为公有区文件标识时,执行步骤a1;
步骤a1, 安全设备将公有区文件作为当前文件;
当安全设备的第二接口接收到指令并且接收到的指令的类型为读指令时,执行步骤b1;
步骤b1, 安全设备将当前文件中容器对象、公钥对象、加速对象、证书对象发送给客户端,返回步骤1。
在一种可能的实施方式中,步骤3中安全设备对预置的FIDO指令进行解析后得到预置参数,根据预置参数得到功能指令,判断功能指令的类型具体为:
安全设备对预置的FIDO指令进行解析得到预置参数,将预置参数的数据进行转换得到转换数据,使用预定算法对转换数据进行解密后得到解密数据,对解密数据执行去除填充数据操作后得到功能指令,根据功能指令中的指令标识获得功能指令的类型。
在一种可能的实施方式中,根据响应数据生成预置的FIDO指令的响应,将预置的FIDO指令的响应发送给客户端具体为:安全设备将响应数据按照预定的规则进行填充得到填充数据,对填充数据进行加密得到密文数据,将密文数据作为验证数据参数,根据验证数据参数组成预置的FIDO指令的响应返回给客户端。
实施例二
本实施例提供了一种安全设备的实现方法,如图2和图3所示,包括:
101,安全设备等待接收客户端发送指令;
在本实施例中,安全设备为复合USB设备,支持至少两个接口,在本实施例中,第一接口为FIDO HID 接口,第二接口可以为UMS接口、HID接口、CCID接口或SCSI接口。
第一接口支持两个端点,分别为中断输出端点和中断输入端点。
第二接口支持两个端点,分别为批量输出端点和批量输入端点。
具体的,安全设备的UMS接口、HID接口、CCID接口、SCSI接口接收到的指令是客户端通过客户端的中间件发送给安全设备的,安全设备通过上述接口将指令处理结果发送给客户端的中间件。
102,安全设备判断第一接口是否接收到指令,如果是,执行步骤103,如果否,执行步骤105;
本步骤具体为:安全设备判断FIDO HID接口是否接收到指令,如果是,执行步骤103,如果否,执行步骤105;
安全设备判断FIDO HID接口是否接收到指令具体为:安全设备判断中断输出端点是否收到指令数据,如果是,执行步骤103,如果否,执行步骤105;
103,安全设备判断接收到的指令是否为凭证生成指令,如果是,执行步骤104, 如果否,安全设备执行其他相应指令操作或者报错,执行步骤101;
104,安全设备对凭证生成指令进行解析得到显示名称参数,对显示名称参数进行处理得到功能指令,判断功能指令的类型,
当功能指令为证书请求生成指令时,执行步骤A1-A4;
当功能指令为写入证书指令时,执行步骤B1-B3;
当功能指令为枚举证书指令时,执行步骤C1;
当功能指令为读取证书指令时,执行步骤C2;
当功能指令为交易签名指令时,执行步骤D1-D5;
在本步骤中,安全设备对凭证生成指令进行解析得到显示名称参数,对显示名称参数进行处理得到功能指令,判断功能指令的类型具体为:安全设备对凭证生成指令进行解析得到显示名称参数(Displayname),将显示名称参数的数据进行转换得到16进制数据,使用AES-128算法对16进制数据进行解密和去填充操作后得到功能指令,根据功能指令中的指令标识获得功能指令的类型。
具体的,安全设备对凭证生成指令进行解析得到客户端数据(clientDataHash)、依赖方标识(rp)、用户信息(user),算法参数(pubkeyCredParams),从用户信息中解析出显示名称参数(displayname)。
例如,安全设备FIDO HID接口接收到客户端发送的凭证生成指令:
01A4015820687134968222EC17202E42505F8ED2B16AE22F16BB05B88C25DB9E602645F14102A26269646861636D652E636F6D646E616D656441636D6503A462696458203082019330820138A0030201023082019330820138A0030201023082019330826469636F6E782868747470733A2F2F706963732E61636D652E636F6D2F30302F702F61426A6A6A707150622E706E67646E616D65766A6F686E70736D697468406578616D706C652E636F6D6B646973706C61794E616D65788033463839313238453933453230373346314332334238323743434335464145454638383538313842304135304338344646343741374133373731303633343836453439454333344341313735414632383632413534414644333444454445343538383530443037453235304638333235313031444438324445343344323437360482A263616C672664747970656A7075626C69632D6B6579A263616C6739010064747970656A7075626C69632D6B6579。
安全设备对上述凭证生成指令进行CBOR解码操作,从解码后的凭证生成指令中获取客户端数据(clientDataHash):015820687134968222EC17202E42505F8ED2B16AE22F16BB05B88C25DB9E602645F141;
依赖方标识(rp) :02A26269646861636D65;
用户信息(user): 03A462696458203082019330820138A0030201023082019330820138A0030201023082019330826469636F6E782868747470733A2F2F706963732E61636D652E636F6D2F30302F702F61426A6A6A707150622E706E67646E616D65766A6F686E70736D697468406578616D706C652E636F6D6B646973706C61794E616D65;
算法参数(pubkeyCredParams): 0482A263616C672664747970656A7075626C69632D6B6579A263616C6739010064747970656A7075626C69632D6B6579;
从用户信息中解析出显示名称参数3346383931323845393345323037334631433233423832374343433546414545463838353831384230413530433834464634374137413337373130363334383645343945433334434131373541463238363241353441464433344445444534353838353044303745323530463833323531303144443832444534334432343736;
将显示名称参数的数据进行转换得到16进制数据3F89128E93E2073F1C23B827CCC5FAEEF885818B0A50C84FF47A7A3771063486E49EC34CA175AF2862A54AFD34DEDE458850D07E250F8325101DD82DE43D2476,使用AES-128算法对16进制数据进行解密和去填充操作后得到功能指令04002D1025D55AD283AA400AF464C76D713C07AD1B520301434E3D5445535430322C4F553D544553542C4F3D49434243,根据功能指令中的指令标识04获得功能指令的类型为证书请求生成指令,执行步骤A1-A4。
在本实施例中,证书请求生成指令中还包括密钥标识和证书类型。
在本实施例中,写入证书指令、读取证书指令、交易签名指令、枚举证书指令的获取过程与上述示例证书请求生成指令相同,不再赘述。
在本实施例中,凭证生成指令可以为任何预置的FIDO指令,显示名称参数可以为FIDO指令的无长度限制的预置参数,例如,当预置的FIDO指令为凭证生成指令时,预置参数可以为扩展项参数;当预置的FIDO指令为凭证认证指令,预置参数为白名单参数。
105,安全设备判断第二接口是否接收到指令,如果是,执行步骤106,如果否,返回步骤101;
本步骤具体为:安全设备判断批量输出端点是否接收到指令,如果是,执行步骤106,如果否,返回步骤101;
在本实施例中,安全设备还可以先判断第二接口是否接收到指令,如果是,则执行步骤106;如果否,则判断第一接口是否接收到指令,如果是,执行步骤103,如果否,返回步骤101。
106,安全设备判断接收到的指令的类型,
当指令为密钥对生成指令时,执行步骤M1,当指令为读取公钥指令时,执行步骤M2,当指令为生成签名指令时,执行步骤M3;当指令为写入容器对象指令时,执行步骤M4;当指令为写入公钥对象指令时,执行步骤M5;当指令为写入证书对象指令时,执行步骤M6;当指令为写入私钥对象指令时,执行步骤M7,当指令为写入加速对象指令时,执行步骤M8;当指令为选择文件指令时,执行步骤M9;当指令为读二进制文件指令时,执行步骤M10;当指令为设置安全环境指令时,执行步骤M11;当指令为发送报文数据指令时,执行步骤M12;当指令为签名请求指令时,执行步骤M13;当指令为获取签名结果指令时,执行步骤M14;
在本实施例中,证书请求生成指令中包括证书DN值。
步骤A1,安全设备生成密钥对;
在本步骤中,密钥设备生成密钥对的同时,还生成与密钥对所对应的密钥标识,并存储密钥对的公钥和私钥。
步骤A2,安全设备使用密钥对的私钥对证书请求生成指令中的用户输入信息和密钥对的公钥进行签名,生成签名值,根据签名值、密钥对的公钥和用户输入信息生成证书请求生成指令的响应;
在本步骤中,用户输入的信息包括证书DN值, 证书DN值可以为发证中心预先颁发的,或者用户按照预定的条件获取的。
例如,安全设备生成的证书请求生成指令的响应如下:
424B423074495A6D6956654432677534693972777A764244504B477852506A66774F745448436B61366F5633792B30567450384E4732787A58644F52352B722B42647A444275306A5A516A327A32494239436B565246553D26264D4948724D494750416745424D433878447A414E42674E5642414D4D426C5246553151774D6A454E4D4173474131554543777745564556545644454E4D417347413155454367774553554E43517A425A4D424D4742797147534D34394167454743437142484D39564159497441304941424B423074495A6D6956654432677534693972777A764244504B477852506A66774F745448436B61366F5633792B30567450384E4732787A58644F52352B722B42647A444275306A5A516A327A32494239436B5652465577444159494B6F45637A3155426733554641414E4A41444247416945417670756574493835673267754D7A6C4B4D35472B52372F2F4E306B654C5144434C6E50716A4F3339555951434951447876677267354C4C45644C72353264585A4F6343596B712F4955534D496F3079304566465331754E6D65413D3D9000;
步骤A3,安全设备创建容器对象和对应的容器对象标识、私钥对象和公钥对象,将容器对象和对应的容器对象标识、公钥对象,私钥对象进行关联,将容器对象和公钥对象写入到公有区文件,将私钥对象写入到私有区文件,更新公有区文件中的加速对象;
在本实施例中,私钥对象包括密钥标识,公钥对象包括密钥标识和密钥对的公钥。
在本实施例中,安全设备具有存储区,存储区包括 IKF文件、公有区文件和私有区文件。
IKF文件为internal key file, 即秘密文件;
公有区文件有对应的公有区文件标识,私有区文件有对应的私有区文件标识,公有区文件和私有区文件均属于存储文件。
在本实施例中,步骤A1还包括:安全设备将生成的密钥对和密钥标识存储到IKF文件中。
本步骤中,安全设备创建容器对象和对应的容器对象标识、私钥对象和公钥对象,将容器对象和对应的容器对象标识、公钥对象,私钥对象进行关联具体为:安全设备创建容器对象和对应的容器对象标识,根据密钥对的公钥进行哈希计算得到容器对象的容器名称,将私钥对象标识和公钥对象标识进行关联后,存储到容器对象中。
本步骤中,更新公有区文件中的加速对象具体为:将密钥标识、证书DN值、容器对象的容器名称相关联生成一条加速对象记录,并将生成的加速对象记录存储到加速对象中。
在本步骤中,更新公有区文件中的加速对象之前还包括:创建加速对象,并将加速对象存储到公有区文件。
步骤A4,安全设备根据证书请求生成指令的响应组成凭证生成指令的响应发送给客户端, 执行步骤101;
在本实施例中,具体的,安全设备从FIDO HID接口接收到指令,并对指令进行处理后获得的处理结果具体的通过中断输入端点返回给客户端。
本步骤具体为:安全设备对证书请求生成指令的响应按照预定的规则进行填充得到填充数据,对填充数据进行加密得到密文数据,将密文数据作为验证数据参数,根据验证数据参数组成凭证生成指令的响应发送给客户端,执行步骤101。
其中,其中预定的规则为:在证书请求生成指令的响应数据的最后填充一个字节0x80得到待处理数据,判断填充后的数据是否为16字节的整数倍,如果为16字节整数倍,则待处理数据为填充数据,否则在待处理数据的末尾继续填充0x00,直至16字节的整数倍得到填充数据。
例如,安全设备对证书请求生成指令的响应424B423074495A6D6956654432677534693972777A764244504B477852506A66774F745448436B61366F5633792B30567450384E4732787A58644F52352B722B42647A444275306A5A516A327A32494239436B565246553D26264D4948724D494750416745424D433878447A414E42674E5642414D4D426C5246553151774D6A454E4D4173474131554543777745564556545644454E4D417347413155454367774553554E43517A425A4D424D4742797147534D34394167454743437142484D39564159497441304941424B423074495A6D6956654432677534693972777A764244504B477852506A66774F745448436B61366F5633792B30567450384E4732787A58644F52352B722B42647A444275306A5A516A327A32494239436B5652465577444159494B6F45637A3155426733554641414E4A41444247416945417670756574493835673267754D7A6C4B4D35472B52372F2F4E306B654C5144434C6E50716A4F3339555951434951447876677267354C4C45644C72353264585A4F6343596B712F4955534D496F3079304566465331754E6D65413D3D9000进行填充,得到填充数据,对填充数据进行AES_128算法加密后得到加密数据C35F118D4DDE91CC9E7DBD979F7FB584CDFE08016AF092019C1618C36D0A6EB7D1808717D8A7AB13CEBCE51FB2889DDB000B40E4C74FBEA0542A26A90E424D9B1EB0EDAC6F0A16FF88C517EE7D96CE568E5BEB1D1ACCFCDBFDDC7E52352A5D6A98EB6BE0F1DC1132B06D513A8108E82BCACD7C87169695E06604A0254BC2F808A6734E8D5AEDEBCA1CA08B003E7D1FB2CBDFBB854850D702421A21F0C2D7013CB13E46EEE939710F60C28F3B20744973BF172BB0E9F662474F2ED938A543282780CB3A349E13D700145E41715448A06DC6D70FEA9A6737B6A8EEA320007B90A96DB26F0DF2AE466FA76576852FF467E3BCD29CFBD3A7751E12E7E05457D16277257035026438887F5A05F7709A169B6ED01E64D6E084A657DAFEE1C4860A23521AF1313B030478FEF72182905F504F9D60F3930900ADCC48EBF286FC4E641405C8367D42DC1636E5AE3AFA1CB1D537FD6FFE8C2B6B31166E63C11CA9ABBA2559BE21394149ABCEA9D0CED41C0CAA0C5E898B07BB475C6ED3E9847E3F9A2D86893FB460E2E252CB24E532357E81E10EA8CD90218FECC459A3080EAAD833F3CE4F,将加密数据作为验证数据参数(AuthData),根据验证数据参数组成凭证生成指令的响应发送给客户端。
在本实施例中,当显示名称参数为写入证书指令、读取证书指令、交易签名指令、枚举证书指令时,凭证生成指令的响应的组成方式与上述示例证书请求生成指令相同,不再赘述。
在本实施例中,客户端接收到安全设备发送的凭证生成指令的响应后将凭证生成指令的响应发送给认证服务器进行验证,当认证服务器验证成功时,认证服务器生成证书数据,并向客户端返回包括验证成功的结果以及证书数据,当认证服务器验证失败时,向客户端返回包括验证失败的结果;
在本实施例中,认证服务验证成功后,根据密钥对公钥,用户输入信息,如证书DN值,使用自身的私钥进行签名,生成签名结果,根据密钥对公钥、用户输入信息和签名结果生成证书数据。
当客户端接收到验证成功的结果和证书数据时,客户端生成写入证书指令,根据写入证书指令组成凭证生成指令发送给安全设备。
具体的,写入证书指令中包含证书DN值和证书数据。
写入证书指令还可以为:包含容器名称和证书数据。
步骤B1,安全设备根据写入证书指令中的证书数据创建证书对象,并为证书对象分配对应的证书对象标识;
在本步骤中,证书数据包括密钥对的公钥,创建的证书对象中包括证书数据。
步骤B2,安全设备将容器对象和证书对象进行关联;
本步骤具体为:安全设备对加速对象进行遍历,判断是否找到与写入证书指令中包含的证书DN值相同的证书DN值所对应的加速对象记录,如果是,获取找到的加速对象记录中与证书DN值相关联的容器对象标识,根据容器对象标识找到对应的容器对象,将证书对象标识存储到容器对象中,如果否,安全设备向客户端返回错误的状态码,执行步骤101。
本步骤还可以具体为:安全设备对加速对象进行遍历,判断是否找到与写入证书指令中包含的容器名称相同的容器名称所对应的加速对象记录,如果是,获取找到的加速对象记录中与容器名称相关联的容器对象标识,根据容器对象标识找到对应的容器对象,将证书对象标识存储到容器对象中,如果否,安全设备向客户端返回错误的状态码,执行步骤101。
步骤B3,安全设备将证书对象写入到公有区文件,并更新公有区文件的加速对象,根据成功的状态码组成凭证生成指令的响应发送给客户端, 执行步骤101;
在本步骤中,更新公有区文件的加速对象具体为:将证书对象标识、证书数据在证书对象中的偏移值以及证书数据的长度与通过遍历找到加速对象记录中的证书DN值以及其所关联的密钥标识、容器对象的容器名称相关联以更新找到的加速对象记录,并将更新的加速对象记录存储到加速对象中。
在本步骤中,更新公有区文件的加速对象还可以具体为:将证书对象标识、证书数据在证书对象中的偏移值以及证书数据的长度与通过遍历找到的容器名称以及其所关联的密钥标识、证书DN值相关联以更新找到的加速对象记录,并将更新的加速对象记录存储到加速对象中。
在本实施例中,根据成功的状态码组成凭证生成指令的响应具体为将成功的状态码进行处理得到验证数据参数,根据验证数据参数组成凭证生成指令的响应。
具体的,将成功的状态码进行处理得到验证数据参数的过程与步骤A4中根据证书请求生成指令的响应得到验证数据参数的处理方式相同,不再赘述。
步骤C1,安全设备枚举加速对象中的所有的证书DN值,根据枚举的所有证书DN值组成凭证生成指令的响应返回给客户端,执行步骤101。
本步骤还可以为:安全设备对加速对象中的加速对象记录进行遍历,枚举加速对象中的所有容器名称,根据枚举的所有容器名称组成凭证生成指令的响应返回给客户端,执行步骤101。
根据枚举的所有证书DN值或容器名称组成凭证生成指令的响应具体为:将枚举的所有证书DN值或容器名称进行处理得到验证数据参数,根据验证数据参数组成凭证生成指令的响应。
具体的,将枚举的所有证书DN值或容器名称进行处理得到验证数据参数的过程与步骤A4中根据证书请求生成指令的响应得到验证数据参数的处理方式相同,不再赘述。
在本步骤中,客户端根据凭证生成指令的响应显示所枚举的所有证书DN值或者容器名称,供用户选择,根据用户选择的证书DN值或者容器名称组成读取证书指令。
步骤C2,安全设备对加速对象进行遍历,找到包括读取证书指令中的证书DN值的加速对象记录,获取加速对象记录中与证书DN值相关联的证书对象标识、证书数据在证书对象中的偏移以及证书数据的长度,根据证书对象标识找到对应的证书对象,根据证书数据在证书对象中的偏移以及证书数据的长度从证书对象中获取证书数据,并根据证书数据组成凭证生成指令的响应发送给客户端,执行步骤101;
在本步骤中,证书DN值还可以为容器名称。
在本实施例中,客户端接收到凭证生成指令的响应后,将凭证生成指令的响应中的证书数据发送给交易服务器,用于交易服务器使用证书数据对客户端发送的签名结果进行验签。
根据证书数据组成凭证生成指令的响应具体为:将证书数据进行处理得到验证数据参数,根据验证数据参数组成凭证生成指令的响应。
具体的,将证书数据进行处理得到验证数据参数的过程与步骤A4中根据证书请求生成指令的响应得到验证数据参数的处理方式相同,不再赘述。
步骤D1,安全设备对交易签名指令进行解析得到证书DN值和报文数据;
本步骤还可以为:安全设备对交易签名指令进行解析得到容器名称和报文数据;
在本实施例中,交易签名指令中的证书DN值或容器名称为枚举所有的证书DN值或容器名称时,用户所选择的证书DN值或容器名称。
步骤D2,安全设备对加速对象进行遍历,找到加速对象中包括相同证书DN值的加速对象记录,获取加速对象记录中与证书DN值相关联的密钥标识,根据密钥标识找到与密钥标识对应的私钥;
本步骤还可以为:安全设备对加速对象进行遍历,找到加速对象中包括相同容器名称的加速对象记录,获取加速对象记录中与容器名称相关联的密钥标识,根据密钥标识找到IKF文件中与密钥标识对应的私钥;
步骤D3,安全设备对报文数据进行解析得到待签名数据和关键信息;
本实施例中,关键信息例如为交易信息或从交易信息中提取的部分信息。
步骤D4,安全设备显示关键信息,并提示用户进行确认;
步骤D5,安全设备接收到用户的确认信息后,根据找到的私钥对待签名数据进行签名,得到签名结果,根据签名结果组成凭证生成指令的响应返回给客户端,执行步骤101;
在本步骤中,根据签名结果组成凭证生成指令的响应具体为:将签名结果进行处理得到验证数据参数,根据验证数据参数组成凭证生成指令的响应。
具体的,将签名结果进行处理得到验证数据参数的过程与步骤A4中根据证书请求生成指令的响应得到的验证数据参数的处理方式相同,不再赘述。
在本实施例中,客户端将通过发送凭证生成指令的响应得到的签名结果发送给交易服务器,交易服务器根据证书数据对签名结果进行验签。
步骤M1,安全设备生成密钥对,向客户端返回成功的状态码,执行步骤101;
在本步骤中,密钥设备生成密钥对的同时,还生成与密钥对所对应的密钥标识。
在本实施例中,具体的,当安全设备判断UMS接口接收到指令时,对指令进行处理后,将处理结果通过批量输入端点返回客户端。
步骤M2,安全设备将密钥对的公钥发送给客户端,执行步骤101;
本步骤具体为:安全设备将密钥对的公钥发送给客户端的中间件,执行步骤101;
在本实施例中,客户端接收到密钥对的公钥后,将密钥对的公钥发送给验证服务器进行验签,验证服务器验证成功后,生成证书数据,将证书数据发送给客户端的中间件;
步骤M3,安全设备使用生成的密钥对的私钥对生成签名指令中的用户输入信息和密钥对的公钥进行签名得到签名值,并将签名值发送给客户端,执行步骤101;
在本实施例中,步骤M3执行之后,客户端的中间件接收签名值,并根据密钥对的公钥、签名值和用户输入信息组成证书生成请求,并将证书生成请求发送给服务器;服务器根据证书生成请求中的密钥对的公钥对证书生成请求中的签名值进行验签,当服务器验证签名值成功时,服务器生成证书数据,并向客户端中间件返回验证成功结果和证书数据;当服务器验证签名值失败时,服务器向客户端中间件返回验证失败的消息。
步骤M4,安全设备将容器对象存储到公有区文件,返回成功的状态码,执行步骤101;
步骤M5,安全设备将公钥对象存储在公有区文件,返回成功的状态码,执行步骤101;
步骤M6, 安全设备将证书对象存储在公有区文件,返回成功的状态码,执行步骤101;
在本实施例中,客户端的中间件接收到验证服务器发送的证书数据后,根据证书数据创建证书对象,根据证书对象组成写入证书对象指令。
步骤M7,安全设备将私钥对象存储在私有区文件,返回成功的状态码,执行步骤101;
步骤M8,安全设备更新公有区文件中的加速对象,返回成功的状态码,执行步骤101。
本步骤中安全设备更新公有区文件中的加速对象具体为:安全设备将写入加速对象指令中关联的密钥标识、密钥类型、证书类型、容器对象标识、证书DN值、容器对象的容器名称、证书对象标识、证书数据在证书对象中的偏移值以及证书数据的长度相关联并存储在加速对象中。
在本实施例中,写入容器对象指令、写入公钥对象指令、写入证书指令和写入私钥对象指令、写入加速对象指令均为写二进制指令;写入容器对象指令包括容器对象;写入公钥对象指令包括公钥对象;写入证书对象指令包括证书对象;写入私钥对象指令中包括私钥对象。
步骤M9,安全设备将选择文件指令中的文件标识所对应的文件作为当前文件,返回成功的状态码, 执行步骤101;
在本步骤中,文件标识为公有区文件标识或者私有区文件标识,文件指令标识所对应的文件为公有区文件或者私有区文件。
步骤M10,安全设备读取当前文件,将读取的当前文件的数据发送给客户端, 执行步骤101;
当步骤M9中的当前文件为公有区文件时,本步骤具体为:安全设备读取公有区文件,将公有区文件中的容器对象、公钥对象、证书对象和加速对象发送给客户端的中间件,执行步骤101。
在一种可能的实施方式中,当客户端的中间件获取到安全设备的容器对象、公钥对象、证书对象和加速对象后,将容器对象、公钥对象和证书对象进行关联,根据证书对象中的证书生成证书列表供用户选择所需的证书,接收到用户选择的证书后,根据证书的证书数据中的公钥计算容器名称,对加速对象进行遍历,找到加速对象中与计算的容器名称关联的密钥标识,并根据获取的密钥标识生成设置安全环境指令。
在一种可能的实施方式中,当客户端的中间件获取到安全设备容器对象、公钥对象、证书对象和加速对象后,将容器对象、公钥对象和证书对象进行关联,根据证书对象中的证书生成对象列表供用户选择所需的证书,接收到用户选择的证书后,根据证书的证书数据中的公钥计算容器名称,找到与容器名称对应的容器对象,对容器对象进行解析后得到公钥对象和私钥对象,从公钥对象中获取密钥标识,或者从私钥对象中获取密钥标识,并根据获取的密钥标识生成设置安全环境指令。
步骤M11,安全设备对设置安全环境指令进行解析,得到密钥标识并保存,返回成功的状态码,执行步骤101;
步骤M12,安全设备对报文数据进行解析,得到待签名数据和交易信息,并显示交易消息,提示用户进行确认,收到用户确认信息后,向客户端发送用户已确认信息,执行步骤101;
步骤M13,安全设备根据通过设置安全环境指令得到并保存的密钥标识,找到与密钥标识对应的私钥,对待签名数据进行签名得到签名结果,返回成功的状态码,执行步骤101;
在本实施例中,通过步骤M9、M10、M11和M13安全设备实现了通过PKI接口来枚举和使用通过FIDO接口创建的证书。
步骤M14,安全设备将签名结果返回客户端, 执行步骤101。
在本实施例中,步骤104中判断功能指令的类型还可以包括,当功能指令的类型为PIN码验证指令时,安全设备对PIN码验证指令中的PIN码进行验证,如果验证成功,则将安全设备自身的安全状态标识设置为预定值,根据验证成功的状态码生成凭证生成指令响应,返回给客户端,执行步骤101;
如果验证失败,根据验证失败的状态码生成凭证生成指令响应,返回给客户端,执行步骤101;
步骤106中判断接收到指令类型还可以包括,当指令的类型为PIN码验证指令时,安全设备对PIN码验证指令中的PIN码进行验证,如果验证成功,则将安全设备自身的安全状态标识设置为预定值并向客户端返回验证成功的状态码,如果验证失败,则返回验证失败的状态码给客户端;
相应的,当安全设备对公有区文件或者私有区文件进行读写之前,安全设备需要判断自身的安全状态标识是否满足当前文件的读写权限,如果是,则执行对公有区文件或者私有区文件的读写操作,返回读取的数据或者写成功的状态码,如果否,则返回读写数据失败的状态码。
实施例三
本实施例提供了一种安全设备的实现方法,如图4和图5所示,包括:
步骤401,安全设备等待接收客户端发送指令;
步骤402,安全设备判断FIDO HID接口是否接收到指令,如果是,执行步骤403,如果否,执行步骤405;
在本实施例中,安全设备为复合USB设备,支持至少两个接口,在本实施例中,第一接口为FIDO HID 接口,第二接口可以为UMS接口、HID接口、CCID接口或SCSI接口。
本实施例中以第二接口为UMS接口为例进行阐述,但并不构成对本发明的限制。
步骤403,安全设备判断接收到的指令是否为预置的FIDO指令,如果是,执行步骤404,如果否,安全设备执行其他相应指令操作或者报错,执行步骤401;
步骤404,安全设备对预置的FIDO指令进行解析得到预置的参数,对预置的参数进行处理得到功能指令,判断功能指令的类型,当功能指令为证书请求生成指令时,执行步骤A11,当功能指令为写入证书指令时,执行步骤B11,当功能指令为枚举容器指令时,执行步骤C11,当功能指令为读取证书指令时,执行步骤C12,当功能指令为交易签名指令时,执行步骤D11;
在本实施例中,预置的FIDO指令可以为任何FIDO指令,预置的参数为相应的预置的FIDO指令中的无长度限制的参数,例如预置的FIDO指令可以为凭证生成指令,则预置的参数可以为显示名称参数或扩展项参数;预置的FIDO指令还可以为凭证认证指令,预置的参数为白名单参数。
步骤405,安全设备判断UMS接口是否接收到指令,如果是,执行步骤406,如果否,返回步骤401;
步骤406, 安全设备判断接收到的指令的类型,当指令为密钥对生成指令时,执行步骤N1;当指令为读取公钥指令时,执行步骤N2;当指令为写入证书时,执行步骤N3; 当指令为枚举容器指令时,执行步骤N4; 当指令为读证书时,执行步骤N5; 当指令为设置安全环境指令时,执行步骤N6; 当指令为发送报文数据指令时,执行步骤N7; 当指令为生成签名指令时,执行步骤N8;
步骤A11,安全设备判断传入的容器标识对应的容器文件是否存在,如果是,执行步骤A13,如果否,执行步骤A12;
步骤A12, 安全设备创建与容器标识对应的容器文件;
步骤A13,安全设备产生密钥对,并将密钥对保存在容器标识对应的容器文件中;
步骤A14,安全设备使用密钥对的私钥对证书请求生成指令中的用户输入信息和密钥对的公钥进行签名,生成签名值,根据签名值、密钥对的公钥和用户输入信息生成证书请求生成指令的响应;
步骤A15,安全设备根据证书请求生成指令的响应组成预置的FIDO指令的响应发送给客户端,执行步骤401;
步骤B11,安全设备将证书数据写入到指定的容器文件中,根据成功的状态码组成预置的FIDO指令的响应发送给客户端,执行步骤401;
步骤C11,安全设备枚举存在的所有的容器标识组成预置的FIDO指令的响应返回给客户端,执行步骤401;
步骤C12,安全设备从传入的容器标识指定的容器文件中,获取证书数据,并根据证书数据组成预置的FIDO指令的响应发送给客户端,执行步骤401;
步骤D11,安全设备对交易签名指令进行解析得到容器标识和报文数据;
步骤D12,安全设备读取容器标识所对应的容器文件中的私钥;
步骤D13,安全设备对报文数据进行解析得到待签名数据和关键信息;
步骤D14,安全设备显示关键信息,并提示用户进行确认;
步骤D15,安全设备接收到用户的确认信息后,根据找到的私钥对待签名数据进行签名,得到签名结果,根据签名结果组成预置的FIDO指令的响应返回给客户端,执行步骤401;
步骤N1,安全设备生成密钥对,返回成功的状态码,执行步骤401;
步骤N2,安全设备将密钥对的公钥发送给客户端,执行步骤401;
步骤N3,安全设备将证书存储到容器文件中,返回成功的状态码,执行步骤401;
步骤N4,安全设备将所有容器标识返回客户端,执行步骤401;
步骤N5,安全设备根据读证书指令中的容器标识对应的容器文件中存储的证书返回客户端,执行步骤401;
步骤N6,安全设备对设置安全环境指令进行解析,得到密钥标识并保存,返回成功的状态码,执行步骤401;
步骤N7,安全设备对报文数据进行解析,得到待签名数据和交易信息,并显示交易消息,提示用户进行确认,收到用户确认信息后,向客户端发送用户已确认信息,执行步骤401;
步骤N8,安全设备通过设置安全环境指令得到并保存的密钥标识找到所对应的密钥对私钥,使用密钥对的私钥对待签名数据进行签名得到签名值,并将签名值发送给客户端,执行步骤401。
在一种可能的实施例中,安全设备将所有容器文件中存储的证书发送给客户端后,中间件根据证书生成证书列表供用户进行选择,当用户选择所需的证书后,中间件根据所述证书所对应的容器标识生成设置安全环境指令。
在本实施例中,通过步骤N4、N5、N6和N8,安全设备实现了通过PKI接口来枚举和使用通过FIDO接口创建的证书。
本申请的实施例还提供了一种安全设备,包括:
等待接收模块,用于等待接收客户端发送命令;
接收模块,用于接收客户端发送的指令;
第一判断触发模块,用于当接收模块通过第一接口接收到指令时,判断接收模块接收到的指令是否为预置的FIDO指令,还用于当第一判断模块的判断结果为是时,触发解析模块;当第二判断模块的判断结果为否时,触发第一操作模块;第一接口为FIDO HID接口;
第一操作模块,用于被第一判断触发模块触发时,执行相应的指令操作;
解析模块,用于对预置的FIDO指令进行解析后得到预置参数并根据预置参数得到功能指令;
第二判断触发模块,用于判断解析模块得到的功能指令的类型,当判断功能指令为证书请求生成指令时,触发第二操作模块;当判断功能指令为写入证书指令时,触发第三操作模块;
第二操作模块,用于被第二判断触发模块触发时,生成密钥对,将密钥对存储到存储文件,使用密钥对的私钥对证书请求生成指令中的用户输入信息和密钥对的公钥进行签名,生成签名值,根据签名值、密钥对的公钥和用户输入信息生成证书请求生成指令的响应,根据证书请求生成指令的响应生成响应数据,根据响应数据生成预置的FIDO指令的响应,将预置的FIDO指令的响应发送给客户端,触发等待接收模块;
第三操作模块,用于将写入证书指令中的证书数据写入存储文件,根据成功的状态码组成响应数据,根据响应数据生成预置的FIDO指令的响应,将预置的FIDO指令的响应发送给客户端,触发等待接收模块。
可选的,本申请的实施例还提供了一种安全设备,此安全设备包括至少一个处理器、存储器及存储在该存储器上并可被至少一个处理器执行的指令,至少一个处理器执行该指令以实现上述实施例中的方法。该设备是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定;该芯片与存储器耦合,用于执行存储器中存储的计算机程序,以执行上述实施例中公开的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机程序。在加载和执行计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个基站、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个基站、服务器或数据中心进行传输。所述计算机可读存储介质可以是本发明的设备能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、 或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (15)

1.一种安全设备的实现方法,其特征在于,所述方法包括:
步骤1,安全设备等待接收客户端发送指令;
步骤2,当安全设备的第一接口接收到指令时,判断接收到的指令是否为预置的FIDO指令,如果是,执行步骤3, 如果否,执行相应的指令操作,执行步骤1;所述第一接口为FIDOHID接口;
步骤3,安全设备对预置的FIDO指令进行解析后得到预置参数,根据所述预置参数得到功能指令,判断所述功能指令的类型,当所述功能指令为证书请求生成指令时,执行步骤4;当功能指令为写入证书指令时,执行步骤5;
步骤4, 安全设备生成密钥对,将所述密钥对存储到存储文件,使用所述密钥对的私钥对所述证书请求生成指令中的用户输入信息和所述密钥对的公钥进行签名,生成签名值,根据所述签名值、所述密钥对的公钥和所述用户输入信息生成证书请求生成指令的响应,根据所述证书请求生成指令的响应生成响应数据,根据所述响应数据生成验证数据参数,根据所述验证数据参数生成预置的FIDO指令的响应,将所述预置的FIDO指令的响应发送给客户端,执行步骤1;
步骤5,安全设备将写入证书指令中的证书数据写入所述存储文件,根据成功的状态码组成响应数据,根据所述响应数据生成验证数据参数,根据所述验证数据参数生成预置的FIDO指令的响应,将所述预置的FIDO指令的响应发送给客户端,执行步骤1。
2.如权利要求1所述的方法,其特征在于,所述存储文件为容器文件,所述容器文件有对应的容器标识。
3.如权利要求2所述的方法,其特征在于,所述步骤4中,安全设备生成密钥对,将所述密钥对存储到存储文件具体为:安全设备生成密钥对,将所述密钥对存储到与所述证书请求生成指令中的容器标识所对应的容器文件中;
所述步骤5中,安全设备将写入证书指令中的证书数据写入存储文件具体为:安全设备将写入证书指令中的证书数据写入与所述写入证书指令中的容器标识所对应的容器文件中。
4.如权利要求2所述的方法,其特征在于,当所述功能指令为证书请求生成指令时,执行步骤4具体为:
安全设备判断是否存在与所述证书请求生成指令中的容器标识所对应的容器文件,如果是,执行步骤4,如果否,安全设备创建与所述证书请求生成指令中的容器标识所对应的容器文件,执行步骤4。
5.如权利要求3所述的方法,其特征在于,所述步骤3还包括:
当所述功能指令为读取证书指令时,执行步骤6;当所述功能指令为签名指令,执行步骤7;
步骤6,安全设备从与读取证书指令中的容器标识对应的容器文件中获取证书数据,将获取的证书数据发送给客户端,执行步骤1;
步骤7,安全设备从所述签名指令中获取容器标识和待签名信息,从与所述容器标识对应的容器文件中读取私钥,根据找到的私钥对待签名信息进行签名后得到签名结果,根据签名结果组成预置FIDO指令的响应,将所述预置FIDO指令的响应发送给客户端,执行步骤1。
6.如权利要求2所述的方法,其特征在于,所述步骤2还包括:当安全设备的第二接口接收到指令并且接收到的指令类型为读证书指令时,安全设备从与所述读证书指令所对应的容器文件中获取证书数据,并将所述证书数据返回给客户端,执行步骤1。
7.如权利要求1所述的方法,其特征在于,所述存储文件包含:IKF文件、公有区文件和私有区文件,所述公有区文件包括容器对象、公钥对象、加速对象和证书对象,所述私有区文件包括私钥对象,所述公有区文件具有对应的公有区文件标识,所述私有区文件具有对应的私有区文件标识。
8.如权利要求7所述的方法,其特征在于,所述步骤4中,安全设备生成密钥对,将所述密钥对存储到存储文件具体为:
步骤4-1,安全设备生成密钥对和密钥标识,将所述密钥对和密钥标识存储到预置的IKF文件中;
步骤4-2,安全设备创建容器对象、公钥对象、私钥对象;
步骤4-3,安全设备将容器对象的容器名称、所述证书请求生成指令中的用户输入信息中的证书DN值和密钥标识关联生成加速对象记录,将所述加速对象记录存储到加速对象中以更新加速对象;
所述步骤5中,安全设备将写入证书指令中的证书数据写入存储文件具体为:安全设备根据写入证书指令中的证书数据创建证书对象及证书对象标识,将证书对象标识与所述加速对象中的与证书数据中的证书DN值相对应的加速对象记录相关联以更新加速对象。
9.如权利要求8所述的方法,其特征在于,所述步骤3中还包括: 当所述功能指令为读取证书指令时,执行步骤6’;当所述功能指令为签名指令时,执行步骤7’;
步骤6’ ,安全设备根据读取证书指令中的证书DN值或容器名称对加速对象中的加速对象记录进行遍历,根据证书DN值或容器名称找到与其对应的加速对象记录,从所述加速对象记录中获取证书对象标识,根据证书对象标识从证书对象中获取证书数据,根据所述证书数据生成响应数据,根据响应数据组成预置FIDO指令的响应,将所述预置FIDO指令的响应发送给客户端,执行步骤1;
步骤7’,安全设备根据签名指令中的证书DN值或者容器名称对加速对象中的加速对象记录进行遍历,找到与所述证书DN值或者容器名称相对应的加速对象记录,从所述加速对象记录中获取密钥标识,根据密钥标识从IKF文件中找到对应的私钥,使用私钥对签名指令中的待签名数据进行签名后得到签名结果,根据所述签名结果组成预置FIDO指令的响应,将所述预置FIDO指令的响应发送给客户端,执行步骤1。
10.如权利要求7所述的方法,其特征在于,所述步骤2还包括:
当安全设备的第二接口接收到指令并且接收到的指令的类型为选择文件指令且选择文件指令中的文件标识为公有区文件标识时,执行步骤a1;
步骤a1, 安全设备将公有区文件作为当前文件;
当安全设备的第二接口接收到指令并且接收到的指令的类型为读指令时,执行步骤b1;
步骤b1, 安全设备将当前文件中容器对象、公钥对象、加速对象、证书对象发送给客户端,返回步骤1。
11.如权利要求1所述的方法,其特征在于,所述步骤3中安全设备对预置的FIDO指令进行解析后得到预置参数,根据所述预置参数得到功能指令,判断所述功能指令的类型具体为:
安全设备对预置的FIDO指令进行解析得到预置参数,将预置参数的数据进行转换得到转换数据,使用预定算法对转换数据进行解密后得到解密数据,对所述解密数据执行去除填充数据操作后得到功能指令,根据功能指令中的指令标识获得功能指令的类型。
12.如权利要求1所述的方法,其特征在于,所述根据所述响应数据生成验证数据参数,根据所述验证数据参数生成预置的FIDO指令的响应,将所述预置的FIDO指令的响应发送给客户端具体为:安全设备将响应数据按照预定的规则进行填充得到填充数据,对所述填充数据进行加密得到密文数据,将所述密文数据作为验证数据参数,根据验证数据参数组成预置的FIDO指令的响应返回给客户端。
13.一种安全设备,其特征在于,所述安全设备包括:
等待接收模块,用于等待接收客户端发送命令;
接收模块,用于接收客户端发送的指令;
第一判断触发模块,用于当所述接收模块通过第一接口接收到指令时,判断所述接收模块接收到的指令是否为预置的FIDO指令,还用于当第一判断模块的判断结果为是时,触发解析模块;当第二判断模块的判断结果为否时,触发第一操作模块;所述第一接口为FIDOHID接口;
所述第一操作模块,用于被第一判断触发模块触发时,执行相应的指令操作;
所述解析模块,用于对所述预置的FIDO指令进行解析后得到预置参数并根据所述预置参数得到功能指令;
第二判断触发模块,用于判断所述解析模块得到的功能指令的类型,当判断所述功能指令为证书请求生成指令时,触发第二操作模块;当判断所述功能指令为写入证书指令时,触发第三操作模块;
所述第二操作模块,用于被第二判断触发模块触发时,生成密钥对,将所述密钥对存储到存储文件,使用所述密钥对的私钥对所述证书请求生成指令中的用户输入信息和所述密钥对的公钥进行签名,生成签名值,根据所述签名值、所述密钥对的公钥和所述用户输入信息生成证书请求生成指令的响应,根据所述证书请求生成指令的响应生成响应数据,根据所述响应数据生成验证数据参数,根据所述验证数据参数生成预置的FIDO指令的响应,将所述预置的FIDO指令的响应发送给客户端,触发所述等待接收模块;
所述第三操作模块,用于将写入证书指令中的证书数据写入所述存储文件,根据成功的状态码组成响应数据,根据所述响应数据生成验证数据参数,根据所述验证数据参数生成预置的FIDO指令的响应,将所述预置的FIDO指令的响应发送给客户端,触发所述等待接收模块。
14.一种安全设备,其特征在于,所述设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现权利要求1至12任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至12任一项所述的方法。
CN202210855758.8A 2022-07-21 2022-07-21 一种安全设备的实现方法及安全设备 Active CN114938281B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210855758.8A CN114938281B (zh) 2022-07-21 2022-07-21 一种安全设备的实现方法及安全设备
PCT/CN2023/095726 WO2024016829A1 (zh) 2022-07-21 2023-05-23 一种安全设备的实现方法及安全设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210855758.8A CN114938281B (zh) 2022-07-21 2022-07-21 一种安全设备的实现方法及安全设备

Publications (2)

Publication Number Publication Date
CN114938281A CN114938281A (zh) 2022-08-23
CN114938281B true CN114938281B (zh) 2022-11-04

Family

ID=82868575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210855758.8A Active CN114938281B (zh) 2022-07-21 2022-07-21 一种安全设备的实现方法及安全设备

Country Status (2)

Country Link
CN (1) CN114938281B (zh)
WO (1) WO2024016829A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114938281B (zh) * 2022-07-21 2022-11-04 飞天诚信科技股份有限公司 一种安全设备的实现方法及安全设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108234509A (zh) * 2018-01-16 2018-06-29 国民认证科技(北京)有限公司 基于tee和pki证书的fido认证器、认证系统及方法
CN109474437A (zh) * 2018-12-19 2019-03-15 中金金融认证中心有限公司 一种基于生物识别信息来应用数字证书的方法
CN110889698A (zh) * 2018-09-07 2020-03-17 深圳市文鼎创数据科技有限公司 一种命令处理方法、电子设备及存储介质
CN111726365A (zh) * 2020-06-29 2020-09-29 深圳前海微众银行股份有限公司 一种在线身份认证的方法及装置
CN112953970A (zh) * 2021-04-01 2021-06-11 国民认证科技(北京)有限公司 一种身份认证方法及身份认证系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180119178A (ko) * 2017-04-24 2018-11-02 라온시큐어(주) 인증체인 기반 fido 및 인증서 등록 방법 및 장치
CN114938281B (zh) * 2022-07-21 2022-11-04 飞天诚信科技股份有限公司 一种安全设备的实现方法及安全设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108234509A (zh) * 2018-01-16 2018-06-29 国民认证科技(北京)有限公司 基于tee和pki证书的fido认证器、认证系统及方法
CN110889698A (zh) * 2018-09-07 2020-03-17 深圳市文鼎创数据科技有限公司 一种命令处理方法、电子设备及存储介质
CN109474437A (zh) * 2018-12-19 2019-03-15 中金金融认证中心有限公司 一种基于生物识别信息来应用数字证书的方法
CN111726365A (zh) * 2020-06-29 2020-09-29 深圳前海微众银行股份有限公司 一种在线身份认证的方法及装置
CN112953970A (zh) * 2021-04-01 2021-06-11 国民认证科技(北京)有限公司 一种身份认证方法及身份认证系统

Also Published As

Publication number Publication date
CN114938281A (zh) 2022-08-23
WO2024016829A1 (zh) 2024-01-25

Similar Documents

Publication Publication Date Title
US9870463B2 (en) Permission management method, apparatus, and terminal
US7143165B2 (en) Updating trusted root certificates on a client computer
CN107430658B (zh) 安全软件认证及验证
CN110099064B (zh) 一种基于物联网的文件处理方法、装置、设备和存储介质
CN108696356B (zh) 一种基于区块链的数字证书删除方法、装置及系统
CN104796257A (zh) 灵活的数据认证
CN113746638B (zh) Nft存储方法、nft还原方法、计算机设备和存储介质
CN114938281B (zh) 一种安全设备的实现方法及安全设备
CN112148314A (zh) 一种嵌入式系统的镜像验证方法、装置、设备及存储介质
CN115129332A (zh) 固件烧录方法、计算机设备及可读存储介质
JP2005293109A (ja) ソフトウェア実行管理装置、ソフトウェア実行管理方法、及び制御プログラム
WO2020233044A1 (zh) 一种插件校验方法、设备、服务器及计算机可读存储介质
CN112311528A (zh) 一种基于国密算法的数据安全传输方法
CN115426106B (zh) 一种身份认证方法、装置、系统、电子设备及存储介质
CN111400771A (zh) 目标分区的校验方法及装置、存储介质、计算机设备
CN108574658B (zh) 一种应用登录方法及其设备
CN115514492A (zh) Bios固件验证方法、装置、服务器、存储介质和程序产品
CN114995894A (zh) 操作系统的启动控制方法、终端设备及可读存储介质
CN112800004B (zh) 一种车牌算法库的控制方法、装置、设备和介质
CN110889698B (zh) 一种命令处理方法、电子设备及存储介质
CN113918932A (zh) 一种安全认证方法及相关组件
CN109688158B (zh) 金融执行链认证方法、电子装置及存储介质
US20060143253A1 (en) System and method for manipulating and managing computer archive files
CN114417298A (zh) 一种保存大对象数据的方法及装置
CN114650175B (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