本发明专利技术提出的一种数据包的生成方法,属于安全认证技术领域;包括:创建一个待填充的数据包,根据读取的硬件设备中的公钥信息生成临时密钥对,根据读取的硬件设备内部信息和接收到的外部参数信息设置所述待填充的数据包的数据;从所述数据包中获取待签名数据,并根据预设签名算法和临时密钥对的私钥对待签名数据进行签名得到第一签名值并将其设置在数据包的数据中;将所述待签名数据发送给所述硬件设备并获取第二签名值;将所述第二签名值的类型转换成预设签名值结构类型,并用转换后的第二签名值替换所述数据包中的第一签名值,将当前数据包转换成预设编码类型的数据包。该方法不破坏原有基于开源密码算法库的应用的框架,在使用中具有实际意义。
【技术实现步骤摘要】
本专利技术属于安全认证
,具体涉及。
技术介绍
现有技术中,在基于开源密码算法库的应用中使用硬件设备存在以下问题:开源密码算法库的版本不同,实现硬件设备的自定义接口也有所改变,不利于代码维护。例如,以开源密码算法库OpenSSL为例,传统情况下,在SSL (安全套接层协议,Secure SocketLayer的缩写)中使用高强度算法的硬件设备,需要做大量的接口修改工作,并要求开发者熟悉硬件的内部结构和相应的开发接口。OpenSSL的引擎机制通过提供通用的加密接口解决了这个难题。OpenSSL中的引擎技术虽便于对算法库进行算法扩展,但在实现时发现,随着OpenSSL版本的升级,引擎接口定义也有所不同。且在应用时,实现一个引擎不是一件很容易的事情。所以,现有技术有以下缺陷:版本不同,引擎实现接口有所变化,不利于代码维护;实现引擎难度较大,对在开源密码算法库的应用中嵌入使用硬件设备的开发带来困难。
技术实现思路
为解决现有技术中存在的问题,本专利技术提出了结合开源密码算法库和硬件设备的。本专利技术采用的技术方案如下:,包括:步骤S1:数据包生成器创建一个待填充的数据包;步骤S2:所述数据包生成器根据读取的硬件设备中的公钥信息生成临时密钥对;步骤S3:所述数据包生成器根据读取的硬件设备内部信息和接收到的外部参数信息设置所述待填充的数据包的数据;步骤S4:所述数据包生成器从所述数据包中获取待签名数据,并根据预设签名算法,使用所述临时密钥对的私钥对所述待签名数据进行签名得到第一签名值,并将所述第一签名值设置在所述数据包的数据中;步骤S5:所述数据包生成器将所述待签名数据发送给所述硬件设备,并接收所述硬件设备返回的第二签名值;步骤S6:所述数据包生成器将所述第二签名值的类型转换成预设签名值结构类型,并用转换后的第二签名值替换所述数据包中的第一签名值;步骤S7:所述数据包生成器验证当前数据包,正确则执行下一步,否则报错;步骤S8:所述数据包生成器将当前数据包转换成预设编码类型的数据包。其中,所述步骤SI具体为创建一个待填充的证书请求数据包并设置所述证书请求数据包的版本。步骤S2中所述硬件设备中的公钥信息是指硬件设备根据接收到的外部输入参数生成的预设密钥对中的公钥的类型信息。步骤S3所述硬件设备内部信息是指硬件设备根据接收到的外部输入参数生成的预设密钥对中的公钥,所述外部参数信息是指外部传入的主题字符串和摘要算法。所述步骤S3具体为,根据所述公钥、所述主题字符串和所述摘要算法设置所述证书请求数据包的用户公钥、主题项和摘要算法,进一步具体为,I)将外部传入的所述主题字符串转换成第一预设类型,根据转换后的主题字符串设置所述证书请求数据包的主题项;2)根据外部传入的所述摘要算法设置所述证书请求数据包的摘要算法;3)将所述公钥转换成第二预设类型,根据转换后的公钥设置所述证书请求数据包中的用户公钥。步骤S4所述待签名数据包括所述证书请求数据包中的用户公钥和主题项。或者:所述步骤SI具体为创建一个待填充的加密消息数据包并设置所述加密消息数据包的类型。步骤S2中所述硬件设备中的公钥信息是指根据外部输入参数选取的导入证书中的公钥的类型信息。步骤S3所述硬件设备内部信息是指根据外部输入参数从硬件设备中选取的导入证书的公钥,所述外部参数信息为外部传入的摘要算法和原文数据。步骤S3具体为,根据所述导入证书在所述加密消息数据包中设置用户证书,根据所述外部传入的摘要算法和所述临时密钥对在所述加密消息数据包中设置签名值结构,根据外部传入的原文数据在所述加密消息数据包中设置待签名数据。上述步骤S2具体为:所述数据包生成器根据读取的硬件设备中的公钥的位长生成预设长度的随机数作为临时密钥对。上述预设签名算法为MD5RSA或SHA1RSA。步骤S7所述验证当前数据包具体为:对当前数据包中的待签名数据进行摘要得到第一摘要值,对当前数据包中的第二签名值做公钥解密得到第二摘要值,比对这两个摘要值,如果完全一致则验证成功,否则验证失败。步骤S8所述预设编码类型为DER编码类型。采用本专利技术达到的有益效果是:该方法不破坏原有基于开源密码算法库的应用的框架,在使用中具有实际意义。附图说明图1是实施例1提出的流程图;图2是实施例2提供的一种证书请求数据包的生成方法流程图;图3是实施例3提供的一种加密消息数据包的生成方法流程图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。实施例1结合开源密码算法库和硬件设备,本实施例提出了,所述开源密码算法库采用普遍使用的OpenSSL,所述硬件设备为硬件加密设备;如图1所示,所述方法包括:步骤1:数据包生成器创建一个待填充的数据包;例如,通过调用X509_REQ_new O来创建一个待填充的证书请求数据包(X509_REQ);或是通过调用PKCS7_new()来创建一个待填充的加密消息数据包(PKCS7)。所述数据包生成器用于根据开源算法库和硬件加密设备生成特定的数据包。步骤2:数据包生成器根据读取的硬件设备中的公钥信息生成临时密钥对;具体地,当硬件设备中存在导入证书时,所述公钥信息为根据外部输入参数选取的导入证书中的公钥的类型信息;当硬件设备中不存在导入证书时,硬件设备根据接收到的外部输入参数生成预设密钥对,所述公钥信息为根据预设密钥对的公钥句柄导出的公钥的类型信息。本实施例中,本步骤具体为:根据读取的硬件设备中的公钥的位长生成预设长度的随机数作为临时密钥对。步骤3:数据包生成器根据读取的硬件设备内部信息和接收到的外部参数信息设置所述待填充的数据包的数据;具体地,当所述待填充的数据包为X509_REQ时,所述读取的硬件设备内部信息为根据硬件设备中预设密钥对的公钥句柄导出的公钥,所述外部参数信息为外部传入的DN字符串、摘要算法;设置X509_REQ中的数据具体包括根据所述导出的公钥、外部传入的DN字符串和摘要算法设置X509_REQ的用户公钥、主题(即DN项)、摘要算法;当所述待填充的数据包为PKCS7时,所述读取的硬件设备内部信息为硬件设备中存储的导入证书,所述外部参数信息为外部传入的摘要算法;设置PKCS7中的数据具体包括根据导入证书在PKCS7中设置用户证书,根据摘要算法和所述临时密钥对在PKCS7设置签名值结构,根据外部传入的原文数据在PKCS7中设置待签名数据。步骤4:数据包生成器从所述数据包中获取待签名数据,并根据预设签名算法,使用临时密钥对的私钥对待签名数据进行签名得到第一签名值,并将该第一签名值设置在数据包的数据中;具体地,当所述待填充的数据包为X509_REQ时,待签名数据为X509_REQ中的用户公钥、DN项和摘要算法;当所述待填充的数据包为PKCS7时,待签名数据为外部传入的原文数据,例如外部传入的证书请求数据等。所述预设算法可以为MD5RSA或SHA1RSA。步骤5:数据包生成器将所述待签名数据发送给硬件设备,并接收硬件设备返回的第二签名值;具体地:硬件设备根据设备中存储的私钥的句柄访问私钥,并根据预设签名算法对接收到的待签名数据进行签名,生成第二签名值,并将所述第二签名值返回给数据包生成器;本实施例中具体地,数据包生成器调用标准接口访问硬件设备本文档来自技高网...
【技术保护点】
一种数据包的生成方法,其特征在于,包括:步骤S1:数据包生成器创建一个待填充的数据包;步骤S2:所述数据包生成器根据读取的硬件设备中的公钥信息生成临时密钥对;步骤S3:所述数据包生成器根据读取的硬件设备内部信息和接收到的外部参数信息设置所述待填充的数据包的数据;步骤S4:所述数据包生成器从所述数据包中获取待签名数据,并根据预设签名算法,使用所述临时密钥对的私钥对所述待签名数据进行签名得到第一签名值,并将所述第一签名值设置在所述数据包的数据中;步骤S5:所述数据包生成器将所述待签名数据发送给所述硬件设备,并接收所述硬件设备返回的第二签名值;步骤S6:所述数据包生成器将所述第二签名值的类型转换成预设签名值结构类型,并用转换后的第二签名值替换所述数据包中的第一签名值;步骤S7:所述数据包生成器验证当前数据包,如正确则执行下一步,否则报错;步骤S8:所述数据包生成器将当前数据包转换成预设编码类型的数据包。
【技术特征摘要】
1.一种数据包的生成方法,其特征在于,包括: 步骤S1:数据包生成器创建一个待填充的数据包; 步骤S2:所述数据包生成器根据读取的硬件设备中的公钥信息生成临时密钥对; 步骤S3:所述数据包生成器根据读取的硬件设备内部信息和接收到的外部参数信息设置所述待填充的数据包的数据; 步骤S4:所述数据包生成器从所述数据包中获取待签名数据,并根据预设签名算法,使用所述临时密钥对的私钥对所述待签名数据进行签名得到第一签名值,并将所述第一签名值设置在所述数据包的数据中; 步骤S5:所述数据包生成器将所述待签名数据发送给所述硬件设备,并接收所述硬件设备返回的第二签名值; 步骤S6:所述数据包生成器将所述第二签名值的类型转换成预设签名值结构类型,并用转换后的第二签名值替换所述数据包中的第一签名值; 步骤S7:所述数据包生成器验证当前数据包,如正确则执行下一步,否则报错; 步骤S8:所述数据包生成器将当前数据包转换成预设编码类型的数据包。2.如权利要求1所述的方法,其特征在于,所述步骤SI具体为创建一个待填充的证书请求数据包并设置所述证书请求数据包的版本。3.如权利要求2所述的方法,其特征在于,步骤S2中所述硬件设备中的公钥信息是指硬件设备根据接收到的外部输入参数生成的预设密钥对中的公钥的类型信息。4.如权利要求1所述的方法,其特征在于,步骤S2具体为:所述数据包生成器根据读取的硬件设备中的公钥的位长生成预设长度的随机数作为临时密钥对。5.如权利要求2所述的方法,其特征在于,步骤S3所述硬件设备内部信息是指硬件设备根据接收到的外部输入参数生成的预设密钥对中的公钥,所述外部参数信息是指外部传入的主题字符串和摘要算法。6.如权利要求5所述的方法,其特征在于,所述步骤S3具体为,根据所述公钥、所述主题字符串和所述摘要算法设置所述证书请求数据包的用户公钥、主题项和...
【专利技术属性】
技术研发人员:陆舟,于华章,
申请(专利权)人:飞天诚信科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。