一种HSM密钥的验证方法及装置与流程

文档序号:14178822阅读:359来源:国知局
一种HSM密钥的验证方法及装置与流程

本申请涉及信息安全技术领域,特别涉及一种hsm密钥的验证方法及装置。



背景技术:

在大型复杂的应用系统中,一般通过使用hsm(硬加密机)实现系统可靠的安全性。使用hsm(硬加密机)实现系统可靠的安全性的关键因素之一为:hsm密钥密文的配置。

目前大型应用系统一般通过人工进行hsm密钥密文的配置,但是由于人工配置的方式准确率低。因此需要对配置的hsm密钥密文进行验证。但如何进行hsm密钥密文的验证成为问题。



技术实现要素:

为解决上述技术问题,本申请实施例提供一种hsm密钥的验证方法及装置,以达到实现密钥密文的验证的目的,技术方案如下:

一种hsm密钥的验证方法,包括:

获取密钥密文和密钥类型;

判断密钥类型库中是否存在所述密钥类型;

若所述密钥类型库中存在所述密钥类型,则调用所述密钥类型对应的指令,并将所述密钥密文和所述密钥类型对应的指令封装成类型库组指令报文;

将所述类型库组指令报文发送至hsm;

接收所述hsm针对所述类型库组指令报文返回的应答报文;

拆分所述应答报文,得到拆分结果,所述拆分结果包括:密钥类型、密钥奇偶性、hsm指令集版本和hsm指令返回码;

判断所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本是否与所述密钥类型库匹配,及所述拆分结果中的hsm指令返回码是否与所述密钥密文匹配;

若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库匹配且所述拆分结果中的hsm指令返回码与所述密钥密文匹配,则确定所述密钥密文正确。

优选的,确定所述密钥密文正确之后,还包括:

显示密钥密文正确的提示信息。

优选的,所述拆分结果还包括:密文校验值;

所述方法还包括:

核对所述密文校验值是否与信封值一致;

若所述密文校验值与所述信封值一致,则输出所述密钥校验值。

优选的,所述方法还包括:

若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库不匹配或所述拆分结果中的hsm指令返回码与所述密钥密文不匹配,则确定所述密钥密文不正确。

优选的,所述方法还包括:

显示所述密钥密文不正确的提示信息。

一种hsm密钥的验证装置,包括:

获取模块,用于获取密钥密文和密钥类型;

第一判断模块,用于判断密钥类型库中是否存在所述密钥类型,若所述密钥类型库中存在所述密钥类型,则执行封装模块;

所述封装模块,用于调用所述密钥类型对应的指令,并将所述密钥密文和所述密钥类型对应的指令封装成类型库组指令报文;

发送模块,用于将所述类型库组指令报文发送至hsm;

接收模块,用于接收所述hsm针对所述类型库组指令报文返回的应答报文;

拆分模块,用于拆分所述应答报文,得到拆分结果,所述拆分结果包括:密钥类型、密钥奇偶性、hsm指令集版本和hsm指令返回码;

第二判断模块,用于判断所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本是否与所述密钥类型库匹配,及所述拆分结果中的hsm指令返回码是否与所述密钥密文匹配,若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库匹配且所述拆分结果中的hsm指令返回码与所述密钥密文匹配,则执行第一确定模块;

所述第一确定模块,用于确定所述密钥密文正确。

优选的,还包括:

第一显示模块,用于显示密钥密文正确的提示信息。

优选的,所述拆分结果还包括:密文校验值;

所述装置还包括:

核对模块,用于核对所述密文校验值是否与信封值一致,若所述密文校验值与所述信封值一致,则执行输出模块;

所述输出模块,用于输出所述密钥校验值。

优选的,所述装置还包括:

第二确定模块,用于若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库不匹配或所述拆分结果中的hsm指令返回码与所述密钥密文不匹配,则确定所述密钥密文不正确。

优选的,所述装置还包括:

第二显示模块,用于显示所述密钥密文不正确的提示信息。

与现有技术相比,本申请的有益效果为:

在本申请中,通过获取密钥密文和密钥类型,及判断密钥类型库中是否存在所述密钥类型,若所述密钥类型库中存在所述密钥类型,则调用所述密钥类型对应的指令,并将所述密钥密文和所述密钥类型对应的指令封装成类型库组指令报文,及将所述类型库组指令报文发送至hsm,及接收所述hsm针对所述类型库组指令报文返回的应答报文,及拆分所述应答报文,得到拆分结果,所述拆分结果包括:密钥类型、密钥奇偶性、hsm指令集版本和hsm指令返回码,及判断所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本是否与所述密钥类型库匹配,及所述拆分结果中的hsm指令返回码是否与所述密钥密文匹配,若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库匹配且所述拆分结果中的hsm指令返回码与所述密钥密文匹配,则确定所述密钥密文正确,实现了密钥密文的验证。

进一步的,通过判断所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本是否与所述密钥类型库匹配,及所述拆分结果中的hsm指令返回码是否与所述密钥密文匹配,实现对密钥密文进行多维度的验证,提高了验证的可靠性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请提供的hsm密钥的验证方法的一种流程图;

图2是本申请提供的hsm密钥的验证方法的另一种流程图;

图3是本申请提供的hsm密钥的验证方法的再一种流程图;

图4是本申请提供的hsm密钥的验证方法的再一种流程图;

图5是本申请提供的hsm密钥的验证方法的再一种流程图;

图6是本申请提供的hsm密钥的验证装置的一种逻辑结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例公开了一种hsm密钥的验证方法,通过获取密钥密文和密钥类型,及判断密钥类型库中是否存在所述密钥类型,若所述密钥类型库中存在所述密钥类型,则调用所述密钥类型对应的指令,并将所述密钥密文和所述密钥类型对应的指令封装成类型库组指令报文,及将所述类型库组指令报文发送至hsm,及接收所述hsm针对所述类型库组指令报文返回的应答报文,及拆分所述应答报文,得到拆分结果,所述拆分结果包括:密钥类型、密钥奇偶性、hsm指令集版本和hsm指令返回码,及判断所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本是否与所述密钥类型库匹配,及所述拆分结果中的hsm指令返回码是否与所述密钥密文匹配,若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库匹配且所述拆分结果中的hsm指令返回码与所述密钥密文匹配,则确定所述密钥密文正确,实现了密钥密文的验证。

接下来对本申请实施例公开的hsm密钥的验证方法进行介绍,请参见图1,可以包括:

步骤s11、获取密钥密文和密钥类型。

本实施例中,可以设置终端主控模块,终端主控模块由密钥密文终端显示页面和主控制单元构成。密钥密文终端显示页面负责输入和输出。输入则可以为录入密钥密文和密钥类型。

可以理解的是,可以在密钥密文终端显示页面录入密钥密文和密钥类型。主控制单元则可以从密钥密文终端显示页面获取录入的密钥密文和密钥类型。

密钥密文可以理解为:将密钥明文录入hsm,hsm对密钥明文加密后产生的密文。

密钥类型可以理解为:密钥密文的类型。

步骤s12、判断密钥类型库中是否存在所述密钥类型。

若存在,则执行步骤s13。

本实施例中,密钥类型库可以存储密钥类型、密钥奇偶性和密钥类型对应的hsm指令集。

其中,密钥类型可以以编码的形式存储,使每种类型的密钥均有唯一的标识。例如,密钥类型为402型的cvk,则编码可以为cvk_402。

步骤s13、调用所述密钥类型对应的指令,并将所述密钥密文和所述密钥类型对应的指令封装成类型库组指令报文。

步骤s14、将所述类型库组指令报文发送至hsm。

步骤s15、接收所述hsm针对所述类型库组指令报文返回的应答报文。

所述hsm接收到所述类型库组指令报文后,可以对所述类型库组指令报文进行解析,得到所述密钥密文和所述密钥类型对应的指令,并按照所述密钥类型对应的指令,通过hsm反算密钥密文信息对所述密钥密文进行解密、密钥类型识别、密钥奇偶性识别、hsm指令集版本识别和密钥校验值识别,得到密钥密文、密钥类型、密钥奇偶性、hsm指令集版本和密钥校验值,并按照所述密钥类型对应的指令所指定的格式将所述密钥密文、密钥类型、密钥奇偶性、hsm指令集版本和密钥校验值中的一种或多种封装成应答报文。

需要说明的是,密钥校验值可以反应出录入的密钥密文是否与原密钥明文一致,且能检查无规则的密文是否录入正确。密钥类型与密钥奇偶性可以反应出录入的密钥密文与通讯的hsm是否匹配、与应用系统所使用的指令是否匹配。

步骤s16、拆分所述应答报文,得到拆分结果,所述拆分结果包括:密钥类型、密钥奇偶性、hsm指令集版本和hsm指令返回码。

本实施例中,hsm指令返回码可以理解为拆分所述应答报文所得到的密文。

步骤s17、判断所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本是否与所述密钥类型库匹配,及所述拆分结果中的hsm指令返回码是否与所述密钥密文匹配。

若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库匹配且所述拆分结果中hsm指令返回码与所述密钥密文匹配,则执行步骤s18。

步骤s18、确定所述密钥密文正确。

在本申请中,通过获取密钥密文和密钥类型,及判断密钥类型库中是否存在所述密钥类型,若所述密钥类型库中存在所述密钥类型,则调用所述密钥类型对应的指令,并将所述密钥密文和所述密钥类型对应的指令封装成类型库组指令报文,及将所述类型库组指令报文发送至hsm,及接收所述hsm针对所述类型库组指令报文返回的应答报文,及拆分所述应答报文,得到拆分结果,所述拆分结果包括:密钥类型、密钥奇偶性、hsm指令集版本和hsm指令返回码,及判断所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本是否与所述密钥类型库匹配,及所述拆分结果中的hsm指令返回码是否与所述密钥密文匹配,若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库匹配且所述拆分结果中的hsm指令返回码与所述密钥密文匹配,则确定所述密钥密文正确,实现了密钥密文的验证。

进一步的,通过判断所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本是否与所述密钥类型库匹配,及所述拆分结果中的hsm指令返回码是否与所述密钥密文匹配,实现对密钥密文进行多维度的验证,提高了验证的可靠性。

在本申请的另一个实施例中,提供了另外一种hsm密钥的验证方法,请参见图2,可以包括以下步骤:

步骤s21、获取密钥密文和密钥类型。

步骤s22、判断密钥类型库中是否存在所述密钥类型。

若存在,则执行步骤s23。

步骤s23、调用所述密钥类型对应的指令,并将所述密钥密文和所述密钥类型对应的指令封装成类型库组指令报文。

步骤s24、将所述类型库组指令报文发送至hsm。

步骤s25、接收所述hsm针对所述类型库组指令报文返回的应答报文。

步骤s26、拆分所述应答报文,得到拆分结果,所述拆分结果包括:密钥类型、密钥奇偶性、hsm指令集版本和hsm指令返回码。

步骤s27、判断所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本是否与所述密钥类型库匹配,及所述拆分结果中的hsm指令返回码是否与所述密钥密文匹配。

若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库匹配且所述拆分结果中的hsm指令返回码与所述密钥密文匹配,则执行步骤s28。

步骤s28、确定所述密钥密文正确。

步骤s21-s28与前述实施例的步骤s11-s18相同,步骤s21-s28的详细过程可以参见前述实施例的步骤s11-s18,在此不再赘述。

步骤s29、显示密钥密文正确的提示信息。

本实施例中,在前述步骤确定所述密钥密文正确之后,密钥密文终端显示页面可以实时的显示密钥密文正确的提示信息,实时反馈密钥密文是否准确,提高密钥密文的可靠性。

在本申请的另一个实施例中,对前述实施例中的步骤s16中的拆分结果进行进一步介绍,具体如下:

所述拆分结果还可以包括:密文校验值。

在所述拆分结果还包括:密文校验值的情况下,hsm密钥的验证方法的实施方式可以参见图3,可以包括以下步骤:

步骤s31、获取密钥密文和密钥类型。

步骤s32、判断密钥类型库中是否存在所述密钥类型。

若存在,则执行步骤s33。

步骤s33、调用所述密钥类型对应的指令,并将所述密钥密文和所述密钥类型对应的指令封装成类型库组指令报文。

步骤s34、将所述类型库组指令报文发送至hsm。

步骤s35、接收所述hsm针对所述类型库组指令报文返回的应答报文。

步骤s26、拆分所述应答报文,得到拆分结果,所述拆分结果包括:密钥类型、密钥奇偶性、hsm指令集版本和hsm指令返回码。

步骤s37、判断所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本是否与所述密钥类型库匹配,及所述拆分结果中的hsm指令返回码是否与所述密钥密文匹配。

若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库匹配且所述拆分结果中的hsm指令返回码与所述密钥密文匹配,则执行步骤s38。

步骤s38、确定所述密钥密文正确。

步骤s31-s38与前述实施例的步骤s11-s18相同,步骤s31-s38的详细过程可以参见前述实施例的步骤s11-s18,在此不再赘述。

步骤s39、核对所述密文校验值是否与信封值一致。

若一致,则执行步骤s310。

本实施例中,信封值可以包括密钥密文及密钥密文对应明文的校验值。

步骤s310、输出所述密钥校验值。

在本申请的另一个实施例中,提供了另外一种hsm密钥的验证方法,请参见图4,可以包括以下步骤:

步骤s41、获取密钥密文和密钥类型。

步骤s42、判断密钥类型库中是否存在所述密钥类型。

若存在,则执行步骤s43。

步骤s43、调用所述密钥类型对应的指令,并将所述密钥密文和所述密钥类型对应的指令封装成类型库组指令报文。

步骤s44、将所述类型库组指令报文发送至hsm。

步骤s45、接收所述hsm针对所述类型库组指令报文返回的应答报文。

步骤s46、拆分所述应答报文,得到拆分结果,所述拆分结果包括:密钥类型、密钥奇偶性、hsm指令集版本和hsm指令返回码。

步骤s47、判断所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本是否与所述密钥类型库匹配,及所述拆分结果中的hsm指令返回码是否与所述密钥密文匹配。

若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库匹配且所述拆分结果中的hsm指令返回码与所述密钥密文匹配,则执行步骤s48;若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库不匹配或所述拆分结果中的hsm指令返回码与所述密钥密文不匹配,则执行步骤s49。

步骤s48、确定所述密钥密文正确。

步骤s41-s48与前述实施例的步骤s11-s18相同,步骤s41-s48的详细过程可以参见前述实施例的步骤s11-s18,在此不再赘述。

步骤s49、确定所述密钥密文不正确。

在本申请的另一个实施例中,提供了另外一种hsm密钥的验证方法,请参见图5,可以包括以下步骤:

步骤s51、获取密钥密文和密钥类型。

步骤s52、判断密钥类型库中是否存在所述密钥类型。

若存在,则执行步骤s53。

步骤s53、调用所述密钥类型对应的指令,并将所述密钥密文和所述密钥类型对应的指令封装成类型库组指令报文。

步骤s54、将所述类型库组指令报文发送至hsm。

步骤s55、接收所述hsm针对所述类型库组指令报文返回的应答报文。

步骤s56、拆分所述应答报文,得到拆分结果,所述拆分结果包括:密钥类型、密钥奇偶性、hsm指令集版本和hsm指令返回码。

步骤s57、判断所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本是否与所述密钥类型库匹配,及所述拆分结果中的hsm指令返回码是否与所述密钥密文匹配。

若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库匹配且所述拆分结果中的hsm指令返回码与所述密钥密文匹配,则执行步骤s58;若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库不匹配或所述拆分结果中的hsm指令返回码与所述密钥密文不匹配,则执行步骤s59。

步骤s58、确定所述密钥密文正确。

步骤s59、确定所述密钥密文不正确。

步骤s51-s59与前述实施例的步骤s41-s49相同,步骤s51-s59的详细过程可以参见前述实施例的步骤s41-s49,在此不再赘述。

步骤s510、显示所述密钥密文不正确的提示信息。

本实施例中,在前述步骤确定所述密钥密文不正确之后,密钥密文终端显示页面可以实时的显示密钥密文不正确的提示信息,实时反馈密钥密文是否准确,提高密钥密文的可靠性。

下面对本申请实施例提供的hsm密钥的验证装置进行描述,下文描述的hsm密钥的验证装置与上文描述的hsm密钥的验证方法可相互对应参照。

请参见图6,其示出了本申请提供的hsm密钥的验证装置的一种逻辑结构示意图,hsm密钥的验证装置包括:获取模块11、第一判断模块12、封装模块13、发送模块14、接收模块15、拆分模块16、第二判断模块17和第一确定模块18。

获取模块11,用于获取密钥密文和密钥类型。

第一判断模块12,用于判断密钥类型库中是否存在所述密钥类型,若所述密钥类型库中存在所述密钥类型,则执行封装模块13。

所述封装模块13,用于调用所述密钥类型对应的指令,并将所述密钥密文和所述密钥类型对应的指令封装成类型库组指令报文。

发送模块14,用于将所述类型库组指令报文发送至hsm。

接收模块15,用于接收所述hsm针对所述类型库组指令报文返回的应答报文。

拆分模块16,用于拆分所述应答报文,得到拆分结果,所述拆分结果包括:密钥类型、密钥奇偶性、hsm指令集版本和hsm指令返回码。

第二判断模块17,用于判断所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本是否与所述密钥类型库匹配,及所述拆分结果中的hsm指令返回码是否与所述密钥密文匹配,若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库匹配且所述拆分结果中的hsm指令返回码与所述密钥密文匹配,则执行第一确定模块18。

所述第一确定模块18,用于确定所述密钥密文正确。

本实施例中,上述hsm密钥的验证装置还可以包括:第一显示模块,用于显示密钥密文正确的提示信息。

本实施例中,所述拆分结果还可以包括:密文校验值。

相应的,上述hsm密钥的验证装置还可以包括:核对模块,用于核对所述密文校验值是否与信封值一致,若所述密文校验值与所述信封值一致,则执行输出模块;

所述输出模块,用于输出所述密钥校验值。

本实施例中,上述hsm密钥的验证装置还可以包括:第二确定模块,用于若所述拆分结果中的密钥类型、密钥奇偶性和hsm指令集版本与所述密钥类型库不匹配或所述拆分结果中的hsm指令返回码与所述密钥密文不匹配,则确定所述密钥密文不正确。

在上述hsm密钥的验证装置还包括第二确定模块的基础上,上述hsm密钥的验证装置还可以包括:第二显示模块,用于显示所述密钥密文不正确的提示信息。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

以上对本申请所提供的一种hsm密钥的验证方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1