一种智能密钥设备的工作方法_2

文档序号:9433384阅读:来源:国知局
第二 签名结果;
[0064] 步骤S12 :智能密钥设备根据第二签名结果生成认证响应数据并返回给上位机, 返回步骤S3。
[0065] 实施例二
[0066] 本发明实施例二提供一种智能密钥设备的工作方法,在本实施例中,允许重复进 行注册然后再进行身份认证,如图2所示,本实施例的方法包括:
[0067] 步骤101 :智能密钥设备上电,进行初始化;
[0068] 步骤102 :当智能密钥设备接收到上位机发送的枚举描述符命令时,智能密钥设 备设置描述符;
[0069] 具体的,在本实施例中,智能密钥设备设置描述符具体为:
[0070] 步骤102-1 :设置配置描述符内容为HID设备;
[0071] 步骤102-2 :设置报告描述符;
[0072] 在本实施例中,报告描述符格式具体为:
[0073] Usage Page,//用途页
[0074] Usage,//用途
[0075] Collection,//应用集合
[0076] //Input Report 结构
[0077] Usage (X),Usage (Y),// 用途 X/Y
[0078] Logical Minimum(O),//逻辑最小值 0
[0079] Logical Maximum (255),// 逻辑最大值 255
[0080] Feature Size (8),//报告大小是 8bit
[0081] Feature Count (64),//报告数目 64bit
[0082] Input (Data,Variable,Relative),// 输入用
[0083] //Output Report 结构
[0084] Usage (X),Usage (Y),// 用途 X/Y
[0085] Logical Minimum(O),//逻辑最小值 0
[0086] Logical Maximum (255),// 逻辑最大值 255
[0087] Feature Size (8),//报告大小是 8bit
[0088] Feature Count (64),//报告数目 64bit
[0089] Input (Data,Variable,Relative),// 输出用
[0090] End Collection//应用集合结束
[0091] 设置报告描述符具体为:将全局Usage Page设为Ox dOfl,将局部Usage设为 0x01,将在 Input Report 结构中的 Usage 设为 0x20,将 Output Report 结构中的 Usage 设 为0x21 ;报告描述符中的其他参数为可变值,可根据需求进行设置;
[0092] 例如,本发明实施例中的报告描述符设置为:
[0093] 06d0fl //Usage Page
[0094] 09 01 //Usage
[0095] al 01 //Collection
[0096] //Input Report
[0097] 09 20 //Usage
[0098] 15 00 //logical minimum(0)
[0099] 26ff //logical maximum(255)
[0100] 00 75 08 //Feature Size (8bits)
[0101] 95 40 //Feature Count (64field, 64bytes)
[0102] 81 02 //Input
[0103] //Output Report
[0104] 09 21 //Usage
[0105] 15 00 //logical minimum(O)
[0106] 26ff //logical maximum(255)
[0107] 00 75 08 //Feature Size (8bits)
[0108] 95 40 //Feature Count (64field, 64bytes)
[0109] 91 02 //Output
[0110] cO //Application Collection End步骤103 :智能密钥设备将描述符返回给上 位机,执行步骤104 ;
[0111] 步骤104 :当智能密钥设备接收到上位机发送的命令,判断该命令的类型,如为协 议命令则执行步骤105,如为功能命令则执行步骤106 ;
[0112] 在本实施例中,根据命令中的第5个字节进行判断,如该字节为83H则表示为功能 命令,如为81H或86H则为协议命令;
[0113] 步骤105 :智能密钥设备将相应的数据返回,返回步骤104 ;
[0114] 在本实施例中,如命令中的第五个字节为第一数据则返回接收到的数据;如命令 中的第五个字节为第二数据则返回十七个有效字节的数据;优选的,第一数据为81H,第二 数据为86H ;
[0115] 步骤106 :智能密钥设备判断功能命令的类型,如为注册请求命令则执行步骤 107,如为认证请求命令则执行步骤114,如为获取版本号命令则执行步骤119 ;
[0116] 具体的,在本实施例中,智能密钥设备根据命令中数据域的第二字节判断功能命 令的类型,如数据域的第二字节上的数据为第一数值则为注册请求命令,如数据域的第二 字节上的数据为第二数值则为认证请求命令,如数据域的第二字节上的数据为第三数值则 为获取版本号命令;优选的,第一数值为01,第二数值为02,第三数值为03 ;
[0117] 在本实施例中,注册请求命令的数据域包括32字节的挑战参数和32字节的注册 地应用参数,其中,挑战参数是客户信任端数据;注册地应用参数是由用户注册域名与注册 用户信息进行摘要计算得到的注册地摘要值;认证请求命令数据域包括32字节的挑战参 数、32字节的注册地应用参数、1字节的密钥句柄长度和密钥句柄;认证请求命令符合APDU 格式,具体为:CL IN P1P2LC数据域Le,具体的,在本实施例中,Pl表示控制字符,如Pl的 值为0x07则表示智能密钥设备必须返回身份验证响应信息;如Pl的值为0x03则表示智能 密钥设备进行签名与身份验证操作并返回响应消息;
[0118] 步骤107 :智能密钥设备生成用户密钥对和对应的密钥句柄,根据生成的用户密 钥对和注册请求命令中的注册地应用参数得到密钥信息,查找空闲的密钥索引,如找到则 执行步骤109,如未找到则执行步骤108 ;
[0119] 在本实施例中,每一个密钥索引对应于密钥句柄、注册地应用参数、用户密钥对和 计数器;
[0120] 在本实施例中,密钥句柄用于在智能密钥设备外部进行查询对应的用户密钥对, 密钥索引用于在智能密钥设备内部查询对应的用户密钥对;
[0121] 步骤108 :智能密钥设备判断空间是否有大小合适的剩余空间,是则生成对应的 密钥索引,执行步骤109,否则报错,返回步骤104 ;
[0122] 步骤109 :智能密钥设备判断是否在预设时间内接收到用户按键信息,是则执行 步骤110,否则报错,返回步骤104 ;
[0123] 在本实施例中的预设时间优选为5秒;
[0124] 步骤110 :智能密钥设备将生成的用户密钥对与密钥索引、密钥句柄进行关联,并 根据预设算法对注册请求命令中的数据域部分进行签名,得到第一签名结果并保存;
[0125] 优选的,在本实施例中,用户密钥对为ECC密钥对,长度为96字节;预设算法为 E⑶SA算法,还可以为SM2算法;
[0126] 具体的,本实施例中进行签名的待签名数据包括:1字节的保留字符(例如0x00)、 32字节应答参数、32字节注册地应用参数、用户密钥对的密钥句柄和65字节的用户公钥;
[0127] 具体的,在本实施中,进行签名的具体实现过程为:根据预设算法对注册请求命令 中的数据域部分进行哈希计算得到第一哈希值,使用用户密钥对中的私钥对第一哈希值进 行签名得到第一签名结果;
[0128] 步骤111 :智能密钥设备使用预置的根密钥对的私钥对用户密钥对颁发一个数字 证书;
[0129] 具体的,本实施例中的数字证书中包括:用户信息、用户公钥等注册地应用参数;
[0130] 在本实施例中,生成数字证书的过程具体为:智能密钥设备内部保存一个证书模 板,然后智能密钥设备生成证书序列号,用该证书序列号和用户公钥更新证书中的序列号、 用户公钥,使用智能密钥设备内预存的私钥对证书模板中的版本号和公钥等数据进行签名 操作,把签名结果放到证书模板的签名项中;
[0131] 颁发证书的过程包括:智能密钥设备内预置一对根密钥对,该根密钥对的公钥存 在服务器端,智能密钥设备使用根密钥对的私钥对用户密钥对颁发一个数字证书;服务器 端可以使用根密钥对的公钥验证这个证书的合法性,达到双向认证的目的;
[0132] 在本实施中,优选的,数字证书为X. 509证书,具体格式为:
[0133] [Certificate:: = SEQUENCE{
[0134] tbsCertificate TBSCertificate, //证书信息,结构见下
[0135] signatureAlgorithm AlgorithmIdentif ier, // 办法者签名算法标识
[0136] signature BIT STRING //颁发者的签名
[0137] }
[0138] 其中第一项 TBSCertificate 的结构:
[0139] TBSCertificate:: = SEQUENCE{
[0140] version [0]EXPLICIT Version DEFAULT vl, //X. 509 版本号
[0141] serialNumber Certif icateSerialNumber, // 证书序列号
[0142] signature AlgorithmIdentifier, //签名算法标不符
[0143] issuer Name, //证书的颁发者名称
[0144] validity Validity, //证书有效日期
[0145] subject Name, // 主题信息
[0146] subjectPublic智能密钥设备Info SubjectPublic智能密钥设备Info, //证书持 有人的公钥
[0147] extensions [3]EXPLICIT Extensions OPTIONAL//证书扩展项,可选
[0148] }
[0149] 本方案中的证书签名对象就是TBS
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1