G06F21/60 G06F21/62 G06F21/64
1.一种基于托管密钥授权签名方法,其特征在于,所述方法应用于托管密钥签名系统中,其中,所述托管密钥签名系统包括硬件密码模块,所述方法包括:
获取用户终端发送的密钥申请信息,其中,所述密钥申请信息包括密钥算法信息、用户联系信息、第一PIN码;
计算所述第一PIN码的摘要值并保存所述第一PIN码的摘要值;
调用所述硬件密码模块生成公私钥对并为所述公私钥对分配密钥标识,其中,所述公私钥对包括私钥密文、公钥明文,所述私钥密文由所述硬件密码模块中的保护密钥加密;
根据所述第一PIN码、所述密钥标识构建第一加密密钥;
根据所述第一加密密钥、密钥算法信息对所述私钥密文进行加密,并得到托管密钥;
将所述托管密钥、所述密钥标识、所述公钥明文、所述用户联系信息、所述第一PIN码的摘要值存储在托管密钥库中。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一PIN码、所述密钥标识构建第一加密密钥,包括:
将所述第一PIN码、所述密钥标识进行拼接得到拼接数据;
计算得到所述拼接数据的摘要;
从所述拼接数据的摘要中截取预设长度的数据作为所述第一加密密钥。
3.如权利要求1所述的方法,其特征在于,在所述将所述托管密钥、所述密钥标识、所述公钥明文、所述用户联系信息、所述第一PIN码的摘要值存储在托管密钥库中之后,所述方法还包括:
接收用户终端发送的签名授权申请并向所述用户终端返回签名授权数据;
接收所述用户终端发送的数据签名申请,所述数据签名申请包括:待申请密钥标识、待签名数据摘要、所述签名授权数据;
对所述签名授权数据、所述待签名数据摘要进行验证;
当所述签名授权数据、所述待签名数据摘要验证通过,获取预先缓存的第三PIN码;
根据所述硬件密码模块的所述第一加密密钥对所述第三PIN码进行解密,以得到PIN码明文;
根据所述PIN码明文、所述待申请密钥标识构建第二加密密钥;
根据所述第二加密密钥对预先存储的所述托管密钥进行解密,以得到私钥密文;
根据所述私钥密文对所述待签名数据摘要进行签名,并向所述用户终端返回签名结果。
5.如权利要求3所述的方法,其特征在于,所述接收用户终端发送的签名授权申请并向所述用户终端返回所述签名授权数据,包括:
接收用户终端发送的所述签名授权申请,其中,所述签名授权申请包括所述待申请密钥标识、OTP码、所述待签名数据摘要及第二PIN码;
对所述第二PIN码、所述OTP码进行验证;
当所述第二PIN码、所述OTP码验证通过时,根据所述硬件密码模块的所述保护密钥对所述第二PIN码进行加密,并得到第三PIN码;
根据所述待申请密钥标识、所述待签名数据摘要、第一系统当前时间、所述硬件密码模块的所述保护密钥构建签名授权数据;
向所述用户终端返回所述签名授权数据。
6.如权利要求5所述的方法,其特征在于,所述对所述第二PIN码、所述OTP码进行验证,包括:
计算得到所述第二PIN码的摘要值;
将所述第二PIN码的摘要值与存储于所述托管密钥库中的所述第一PIN码的摘要值进行比较,若相同则确定所述第二PIN码验证通过;
判断所述OTP码的有效期是否超期,若否则确定所述OTP码验证通过。
7.如权利要求6所述的方法,其特征在于,在所述接收用户终端发送的签名授权申请并向所述用户终端返回所述签名授权数据之前,所述方法还包括:
接收所述用户终端发送的OTP码申请,其中,所述OTP码申请包括所述待申请密钥标识;
对所述待申请密钥标识进行验证;
当所述待申请密钥标识验证通过时,根据所述待申请密钥标识、第二系统当前时间、所述硬件密码模块中的所述保护密钥计算得到所述OTP码;
向所述用户终端返回所述OTP码。
4.如权利要求1所述的方法,其特征在于,所述对所述签名授权数据、待签名数据摘要进行验证,包括:
判断所述签名授权数据是否超期,若未超期则确定所述签名授权数据验证通过;
判断所述待签名数据摘要是否被篡改,若否则确定所述待签名数据摘要验证通过。
8.一种基于托管密钥授权签名装置,其特征在于,所述装置应用于托管密钥签名系统中,其中,所述托管密钥签名系统包括硬件密码模块,所述装置包括:
获取模块,用于获取用户终端发送的密钥申请信息,其中,所述密钥申请信息包括密钥算法信息、用户联系信息、第一PIN码;
计算模块,用于计算所述第一PIN码的摘要值并保存所述第一PIN码的摘要值;
生成模块,用于调用所述硬件密码模块生成公私钥对并为所述公私钥对分配密钥标识,其中,所述公私钥对包括私钥密文、公钥明文,所述私钥密文由所述硬件密码模块中的保护密钥加密;
构建模块,用于根据所述第一PIN码、所述密钥标识构建第一加密密钥;
加密模块,用于根据所述第一加密密钥、密钥算法信息对所述私钥密文进行加密,并得到托管密钥;
保存模块,用于将所述托管密钥、所述密钥标识、所述公钥明文、所述用户联系信息、所述第一PIN码的摘要值存储在托管密钥库中。
9.一种基于托管密钥授权签名系统,其特征在于,所述系统包括托管密钥库、托管密钥授权签名设备,其中,所述托管密钥授权签名设备包括硬件加密模块,所述硬件加密模块与所述托管密钥库通信连接,所述托管密钥授权签名系统用于执行如权利要求1-7任一项所述的基于托管密钥授权签名方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行如权利要求1-7任一项所述的基于托管密钥授权签名方法。
本申请涉及密码技术领域,具体而言,涉及一种基于托管密钥授权签名方法、装置、系统及存储介质。
现有的授权签名方式一般有两种,第一种是通过专用硬件介质(如USBKey)的电子签名方式,该方式因为签名私钥受签名者独立控制,安全性较高,但手机等移动终端因不存在USB接口则无法使用,使得其使用场景受限,另外由于需要随时随地携带专用硬件介质,这种方式进一步增加了使用不方便性。
另一种授权签名方式是用协同密码计算的电子签名方式,该方式在终端、服务器两个节点(或多个节点)分别生成并保存签名私钥分量、两个节点独立进行密码运算,并将两个节点的计算结果进行整合得到最终签名结果,该方式在完成电子签名的同时,不会向任何一个参与节点泄漏完整的私钥信息,从而降低了单个节点受到攻击导致的私钥泄漏风险。该方式极大提高了操作的便捷性,但在私钥分量在存储、计算过程中,相关设备存在渗透风险,私钥分量容易泄露,尤其对于能够直接接触到用户托管密钥数据的内部人员,如数据库管理员、内网管理员等很难实现设备防御。
本申请实施例的目的在于提供一种基于托管密钥授权签名方法、装置、系统及存储介质,用以实现用户无需使用专用设备就可以表达签名意愿,对托管的密钥进行授权使用,提高了签名授权的便捷性;同时用于降低私钥的泄露风险,提高签名的防伪造性。
为此,本申请第一方面公开一种基于托管密钥授权签名方法,所述方法应用于托管密钥签名系统中,其中,所述托管密钥签名系统包括硬件密码模块,所述方法包括:
获取用户终端发送的密钥申请信息,其中,所述密钥申请信息包括密钥算法信息、用户联系信息、第一PIN码;
计算所述第一PIN码的摘要值并保存所述第一PIN码的摘要值;
调用所述硬件密码模块生成公私钥对并为所述公私钥对分配密钥标识,其中,所述公私钥对包括私钥密文、公钥明文,所述私钥密文由所述硬件密码模块中的保护密钥加密;
根据所述第一PIN码、所述密钥标识构建第一加密密钥;
根据所述第一加密密钥、密钥算法信息对所述私钥密文进行加密,并得到托管密钥;
将所述托管密钥、所述密钥标识、所述公钥明文、所述用户联系信息、所述第一PIN码的摘要值存储在托管密钥库中。
本申请第一方面的方法能够通过硬件密码模块生成托管密钥,其中,私钥密文能够被硬件密码模块进行第一重加密,使得私钥密文只能通过硬件密码模块解密获得,这样一来,外部攻击者即使突破系统防御边界,也只能获取托管密钥,而不能够在没有硬件密码模块的前提下获得私钥明文,进而无法进行签名操作。另一方面,通过第一PIN码能够对私钥明文进行二次加密,这样一来,即使托管方内部存在恶意人员,由于恶意人员不具备第一PIN码,其也无法利用用户的签名私钥伪造用户签名。
再一方面,本申请第一方面的方法能够实现密钥托管,进而在用户终端不需要专用的密码硬件(如USBKey)或者其它设备(如必须注册的手机)支持,即不依赖专用的客户端环境。
在本申请第一方面,作为一种可选的实施方式,所述根据所述第一PIN码、所述密钥标识构建第一加密密钥,包括:
将所述第一PIN码、所述密钥标识进行拼接得到拼接数据;
计算得到所述拼接数据的摘要;
从所述拼接数据的摘要中截取预设长度的数据作为所述第一加密密钥。
在本可选的实施方式中,通过将第一PIN码、密钥标识进行拼接得到拼接数据,进而能够计算得到拼接数据的摘要,从而能够从拼接数据的摘要中截取预设长度的数据作为第一加密密钥。
在本申请第一方面中,作为一种可选的实施方式,在所述将所述托管密钥、所述密钥标识、所述公钥明文、所述用户联系信息、所述第一PIN码的摘要值存储在托管密钥库中之后,所述方法还包括:
接收用户终端发送的签名授权申请并向所述用户终端返回所述签名授权数据;
接收所述用户终端发送的数据签名申请,所述数据签名申请包括:待申请密钥标识、待签名数据摘要、所述签名授权数据;
对所述签名授权数据、所述待签名数据摘要进行验证;
当所述签名授权数据、所述待签名数据摘要验证通过,获取预先缓存的第三PIN码;
根据所述硬件密码模块的所述第一加密密钥对所述第三PIN码进行解密,以得到所述PIN码明文;
根据所述PIN码明文、所述待申请密钥标识构建第二加密密钥;
根据所述第二加密密钥对预先存储的所述托管密钥进行解密,以得到私钥密文;
根据所述私钥密文对所述待签名数据摘要进行签名,并向所述用户终端返回签名结果。
在本可选的实施方式中,通过向所述用户终端返回签名结果,能够使得用户通过用户终端对指定数据进行签名授权。
在本申请第一方面中,作为一种可选的实施方式,所述对所述签名授权数据、所述待签名数据摘要进行验证,包括:
判断所述签名授权数据是否超期,若否则确定所述签名授权数据验证通过;
判断所述待签名数据摘要是否被篡改,若否则确定所述待签名数据摘要验证通过。
在本可选的实施方式中,通过判断所述签名授权数据是否超期,能够确定所述签名授权数据验证通过,另一方面,判断所述待签名数据摘要是否被篡改,能够确定所述待签名数据摘要验证通过。
在本申请第一方面中,作为一种可选的实施方式,所述接收用户终端发送的签名授权申请并向所述用户终端返回所述签名授权数据,包括:
接收用户终端发送的所述签名授权申请,其中,所述签名授权申请包括所述待申请密钥标识、OTP码、所述待签名数据摘要及第二PIN码;
对所述第二PIN码、所述OTP码进行验证;
当所述第二PIN码、所述OTP码验证通过时,根据所述硬件密码模块的所述保护密钥对所述第二PIN码进行加密,并得到第三PIN码;
根据所述待申请密钥标识、所述待签名数据摘要、第一系统当前时间、所述硬件密码模块的所述保护密钥构建签名授权数据;
向所述用户终端返回所述签名授权数据。
在本可选的实施中,通过OTP码能够验证用户对托管密钥的所有权。
在本申请第一方面中,作为一种可选的实施方式,所述对所述第二PIN码、所述OTP码进行验证,包括:
计算得到所述第二PIN码的摘要值;
将所述第二PIN码的摘要值与存储于所述托管密钥库中的所述第一PIN码的摘要值进行比较,若相同则确定所述第二PIN码验证通过;
判断所述OTP码的有效期是否超期,若否则确定所述OTP码验证通过。
在本可选的实施方式中,通过计算得到所述第二PIN码的摘要值,进而能够将所述第二PIN码的摘要值与存储于所述托管密钥库中的所述第一PIN码的摘要值进行比较,进而确定所述第二PIN码验证通过。另一方面,通过判断所述OTP码的有效期是否超期,能够确定所述OTP码验证通过。
在本申请第一方面中,作为一种可选的实施方式,在所述接收用户终端发送的签名授权申请并向所述用户终端返回所述签名授权数据之前,所述方法还包括:
接收所述用户终端发送的OTP码申请,其中,所述OTP码申请包括所述待申请密钥标识;
对所述待申请密钥标识进行验证;
当所述待申请密钥标识验证通过时,根据所述待申请密钥标识、第二系统当前时间、所述硬件密码模块中的所述保护密钥计算得到所述OTP码;
向所述用户终端返回所述OTP码。
在本可选的实施方式中,根据所述待申请密钥标识、第二系统当前时间、所述硬件密码模块中的所述保护密钥能够计算得到所述OTP码。
本申请第二方面公开一种基于托管密钥授权签名装置,所述装置应用于托管密钥签名系统中,其中,所述托管密钥签名系统包括硬件密码模块,所述装置包括:
获取模块,用于获取用户终端发送的密钥申请信息,其中,所述密钥申请信息包括密钥算法信息、用户联系信息、第一PIN码;
计算模块,用于计算所述第一PIN码的摘要值并保存所述第一PIN码的摘要值;
生成模块,用于调用所述硬件密码模块生成公私钥对并为所述公私钥对分配密钥标识,其中,所述公私钥对包括私钥密文、公钥明文,所述私钥密文由所述硬件密码模块中的保护密钥加密;
构建模块,用于根据所述第一PIN码、所述密钥标识构建第一加密密钥;
加密模块,用于根据所述第一加密密钥、密钥算法信息对所述私钥密文进行加密,并得到托管密钥;
保存模块,用于将所述托管密钥、所述密钥标识、所述公钥明文、所述用户联系信息、所述第一PIN码的摘要值存储在托管密钥库中。
本申请第二方面的装置能够通过硬件密码模块生成托管密钥,其中,私钥密文能够被硬件密码模块进行第一重加密,使得私钥密文只能通过硬件密码模块解密获得,这样一来,外部攻击者即使突破系统防御边界,也只能获取托管密钥,而不能够在没有硬件密码模块的前提下获得私钥明文,进而无法进行签名操作。另一方面,通过第一PIN码能够对私钥明文进行二次加密,这样一来,即使托管方内部存在恶意人员,由于恶意人员不具备第一PIN码,其也无法利用用户的签名私钥伪造用户签名。
再一方面,本申请的装置能够实现密钥托管,进而在用户终端不需要专用的密码硬件(如USBKey)或者其它设备(如必须注册的手机)支持,即不依赖专用的客户端环境。
本申请第三方面公开一种基于托管密钥授权签名系统,所述系统包括托管密钥库、托管密钥授权签名设备,其中,所述托管密钥授权签名设备包括硬件加密模块,所述硬件加密模块与所述托管密钥库通信连接,所述托管密钥授权签名系统用于执行本申请第一方面的基于托管密钥授权签名方法。
本申请第三方面的系统能够通过硬件密码模块生成托管密钥,其中,私钥密文能够被硬件密码模块进行第一重加密,使得私钥密文只能通过硬件密码模块解密获得,这样一来,外部攻击者即使突破系统防御边界,也只能获取托管密钥,而不能够在没有硬件密码模块的前提下获得私钥明文,进而无法进行签名操作。另一方面,通过第一PIN码能够对私钥明文进行二次加密,这样一来,即使托管方内部存在恶意人员,由于恶意人员不具备第一PIN码,其也无法利用用户的签名私钥伪造用户签名。
再一方面,本申请的系统能够实现密钥托管,进而在用户终端不需要专用的密码硬件(如USBKey)或者其它设备(如必须注册的手机)支持,即不依赖专用的客户端环境。
本申请第四方面公开一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行本申请第一方面所述的基于托管密钥授权签名方法。
本申请第四方面的存储介质能够通过硬件密码模块生成托管密钥,其中,私钥密文能够被硬件密码模块进行第一重加密,使得私钥密文只能通过硬件密码模块解密获得,这样一来,外部攻击者即使突破系统防御边界,也只能获取托管密钥,而不能够在没有硬件密码模块的前提下获得私钥明文,进而无法进行签名操作。另一方面,通过第一PIN码能够对私钥明文进行二次加密,这样一来,即使托管方内部存在恶意人员,由于恶意人员不具备第一PIN码,其也无法利用用户的签名私钥伪造用户签名。
再一方面,本申请的存储介质能够实现密钥托管,进而在用户终端不需要专用的密码硬件(如USBKey)或者其它设备(如必须注册的手机)支持,即不依赖专用的客户端环境。
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本申请实施例公开的一种基于托管密钥授权签名方法的流程示意图;
图2是本申请实施例公开的一种基于托管密钥授权签名装置的结构示意图;
图3是本申请实施例公开的一种基于托管密钥授权签名系统的结构示意图。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
实施例一
请参阅图1,图1是本申请实施例公开的一种基于托管密钥授权签名方法的流程示意图,其中,该方法应用于托管密钥签名系统中,其中,托管密钥签名系统包括硬件密码模块。如图1所示,本申请实施例的方法包括步骤:
101、获取用户终端发送的密钥申请信息,其中,密钥申请信息包括密钥算法信息、用户联系信息、第一PIN码;
102、计算第一PIN码的摘要值并保存第一PIN码的摘要值;
103、调用硬件密码模块生成公私钥对并为公私钥对分配密钥标识,其中,公私钥对包括私钥密文、公钥明文,私钥密文由硬件密码模块中的保护密钥加密;
104、根据第一PIN码、密钥标识构建第一加密密钥;
105、根据第一加密密钥、密钥算法信息对私钥密文进行加密,并得到托管密钥;
106、将托管密钥、密钥标识、公钥明文、用户联系信息、第一PIN码的摘要值存储在托管密钥库中。
在本申请实施例中,可选地,密钥算法信息关联对称密码算法,即能够通过密钥算法信息,确定对称密码算法对私钥密文进行加密。
在本申请实施例中,用户联系信息可以是用户的联系邮箱、也可以是用的手机号,对此本申请实施例不作限定。
在本申请实施例中,可选地,为了防止硬件密码模块被恶意人员通过物理拆解托管密钥签名设备而获得,托管密钥签名设备设有相应防拆卸结构。
本申请实施例的方法能够通过硬件密码模块生成托管密钥,其中,私钥密文能够被硬件密码模块进行第一重加密,使得私钥密文只能通过硬件密码模块解密获得,这样一来,外部攻击者即使突破系统防御边界,也只能获取托管密钥,而不能够在没有硬件密码模块的前提下获得私钥明文,进而无法进行签名操作。另一方面,通过第一PIN码能够对私钥明文进行二次加密,这样一来,即使托管方内部存在恶意人员,由于恶意人员不具备第一PIN码,其也无法利用用户的签名私钥伪造用户签名。
再一方面,本申请实施例的方法能够实现密钥托管,进而在用户终端不需要专用的密码硬件(如USBKey)或者其它设备(如必须注册的手机)支持,即不依赖专用的客户端环境。
在本申请实施例,作为一种可选的实施方式,步骤103:根据第一PIN码、密钥标识构建第一加密密钥,包括子步骤:
将第一PIN码、密钥标识进行拼接得到拼接数据;
计算得到拼接数据的摘要;
从拼接数据的摘要中截取预设长度的数据作为第一加密密钥。
在本可选的实施方式中,通过将第一PIN码、密钥标识进行拼接得到拼接数据,进而能够计算得到拼接数据的摘要,从而能够从拼接数据的摘要中截取预设长度的数据作为第一加密密钥。
在本申请实施例,作为一种可选的实施方式,在步骤105:将托管密钥、密钥标识、公钥明文、用户联系信息、第一PIN码的摘要值存储在托管密钥库中之后,本申请实施例的方法还包括步骤:
接收用户终端发送的签名授权申请并向用户终端返回签名授权数据;
接收用户终端发送的数据签名申请,数据签名申请包括:待申请密钥标识、待签名数据摘要、签名授权数据;
对签名授权数据、待签名数据摘要进行验证;
当签名授权数据、待签名数据摘要验证通过,获取预先缓存的第三PIN码;
根据硬件密码模块的第一加密密钥对第三PIN码进行解密,以得到PIN码明文;
根据PIN码明文、待申请密钥标识构建第二加密密钥;
根据第二加密密钥对预先存储的托管密钥进行解密,以得到私钥密文;
根据私钥密文对待签名数据摘要进行签名,并向用户终端返回签名结果。
在本可选的实施方式中,通过向用户终端返回签名结果,能够使得用户通过用户终端对指定数据进行签名授权。
在本申请实施例,作为一种可选的实施方式,对签名授权数据、待签名数据摘要进行验证,包括子步骤:
判断签名授权数据是否超期,若否则确定签名授权数据验证通过;
判断待签名数据摘要是否被篡改,若否则确定待签名数据摘要验证通过。
在本可选的实施方式中,通过判断签名授权数据是否超期,能够确定签名授权数据验证通过,另一方面,判断待签名数据摘要是否被篡改,能够确定待签名数据摘要验证通过。
在本申请实施例中,判断签名授权数据是否超期的具体方式为获取多个签名授权数据多个时间片下的OTP码,若存在一个时间下的OTP码满足匹配条件,则确定该签名授权数据未超期。
在本申请实施例中,作为一种可选的实施方式,步骤:接收用户终端发送的签名授权申请并向用户终端返回签名授权数据,包括:
接收用户终端发送的签名授权申请,其中,签名授权申请包括待申请密钥标识、OTP码、待签名数据摘要及第二PIN码;
对第二PIN码、OTP码进行验证;
当第二PIN码、OTP码验证通过时,根据硬件密码模块的保护密钥对第二PIN码进行加密,并得到第三PIN码;
根据待申请密钥标识、待签名数据摘要、第一系统当前时间、硬件密码模块的保护密钥构建签名授权数据;
向用户终端返回签名授权数据。
在本可选的实施方式中,通过OTP码能够验证用户对托管密钥的所有权。
在本可选的实施方式中,构建签名授权数据后,基于托管密钥授权签名系统将签名授权数据与硬件密码模块、待签名数据摘要、待申请密钥标识、进行绑定,进而通过这一绑定关系可对后续用户提交的签名授权数据或待签名数据摘要进行验证,例如,通过待签名数据摘要与签名授权数据之间的绑定关系判断待签名数据摘要是否被篡改。
在本可选的实施方式中,OTP(One Time Password)是指一次性口令。
在本可选的实施方式中,进一步地,构建签名授权数据后,将签名授权数据与一时间进行关联,进而根据签名授权数据关联的信息可判断签名授权数据是否失效。
在本申请实施例中,作为一种可选的实施方式,步骤:对第二PIN码、OTP码进行验证,包括子步骤:
计算得到第二PIN码的摘要值;
将第二PIN码的摘要值与存储于托管密钥库中的第一PIN码的摘要值进行比较,若相同则确定第二PIN码验证通过;
判断OTP码的有效期是否超期,若否则确定OTP码验证通过。
在本可选的实施方式中,通过计算得到第二PIN码的摘要值,进而能够将第二PIN码的摘要值与存储于托管密钥库中的第一PIN码的摘要值进行比较,进而确定第二PIN码验证通过。另一方面,通过判断OTP码的有效期是否超期,能够确定OTP码验证通过。
在本申请实施例中,作为一种可选的实施方式,在步骤:接收用户终端发送的签名授权申请并向用户终端返回签名授权数据之前,本申请实施例的方法还包括步骤:
接收用户终端发送的OTP码申请,其中,OTP码申请包括待申请密钥标识;
对待申请密钥标识进行验证;
当待申请密钥标识验证通过时,根据待申请密钥标识、第二系统当前时间、硬件密码模块中的保护密钥计算得到OTP码;
向用户终端返回OTP码。
在本可选的实施方式中,根据待申请密钥标识、第二系统当前时间、硬件密码模块中的保护密钥能够计算得到OTP码。
在本可选的实施方式中,进一步可选地,将OTP码与一时间进行关联,进而通过OTP码关联的时间判断OTP码是否失效。其中,OTP码关联的时间可以是OTP码生成时的系统时间。
在本可选的实施方式中,进一步可选地,对OTP码进行有效性判断后,如果OTP码超期失效,则本申请实施例的方法还包括向用户终端发送更新提示信息,以提示用户更新OTP码。
在本可选的实施方式中,可选地,托管密钥授权签名系统生成OTP码后,将OTP码与硬件密码模块、用户的联系信息、密钥标识信息进行绑定,进而后续在用户提交OTP码时,能够根据这一绑定关系对OTP码的合法性进行校验。
实施例二
请参阅图2,图2是本申请实施例公开的一种基于托管密钥授权签名装置的结构示意图,其中,装置应用于托管密钥签名系统中,其中,托管密钥签名系统包括硬件密码模块。如图2所示,本申请实施例的装置包括:
获取模块201,用于获取用户终端发送的密钥申请信息,其中,密钥申请信息包括密钥算法信息、用户联系信息、第一PIN码;
计算模块202,用于计算第一PIN码的摘要值并保存第一PIN码的摘要值;
生成模块203,用于调用硬件密码模块生成公私钥对并为公私钥对分配密钥标识,其中,公私钥对包括私钥密文、公钥明文,私钥密文由硬件密码模块中的保护密钥加密;
构建模块204,用于根据第一PIN码、密钥标识构建第一加密密钥;
加密模块205,用于根据第一加密密钥、密钥算法信息对私钥密文进行加密,并得到托管密钥;
保存模块206,用于将托管密钥、密钥标识、公钥明文、用户联系信息、第一PIN码的摘要值存储在托管密钥库中。
本申请实施例的装置能够通过硬件密码模块生成托管密钥,其中,私钥密文能够被硬件密码模块进行第一重加密,使得私钥密文只能通过硬件密码模块解密获得,这样一来,外部攻击者即使突破系统防御边界,也只能获取托管密钥,而不能够在没有硬件密码模块的前提下获得私钥明文,进而无法进行签名操作。另一方面,通过第一PIN码能够对私钥明文进行二次加密,这样一来,即使托管方内部存在恶意人员,由于恶意人员不具备第一PIN码,其也无法利用用户的签名私钥伪造用户签名。
再一方面,本申请实施例的装置能够实现密钥托管,进而在用户终端不需要专用的密码硬件(如USBKey)或者其它设备(如必须注册的手机)支持,即不依赖专用的客户端环境。
需要说明的是,关于基于托管密钥授权签名装置的其他详细说明请参阅本申请实施例一,本申请实施例对此不作赘述。
实施例三
请参阅图3,图3是本申请实施例公开的一种基于托管密钥授权签名系统的结构示意图。如图3所示,该基于托管密钥授权签名系统包括托管密钥库、托管密钥授权签名设备,其中,托管密钥授权签名设备包括硬件加密模块,硬件加密模块与托管密钥库通信连接,托管密钥授权签名系统用于执行本申请第一方面的基于托管密钥授权签名方法。
本申请实施例的系统能够通过硬件密码模块生成托管密钥,其中,私钥密文能够被硬件密码模块进行第一重加密,使得私钥密文只能通过硬件密码模块解密获得,这样一来,外部攻击者即使突破系统防御边界,也只能获取托管密钥,而不能够在没有硬件密码模块的前提下获得私钥明文,进而无法进行签名操作。另一方面,通过第一PIN码能够对私钥明文进行二次加密,这样一来,即使托管方内部存在恶意人员,由于恶意人员不具备第一PIN码,其也无法利用用户的签名私钥伪造用户签名。
再一方面,本申请实施例的系统能够实现密钥托管,进而在用户终端不需要专用的密码硬件(如USBKey)或者其它设备(如必须注册的手机)支持,即不依赖专用的客户端环境。
在本申请实施例中,基于托管密钥授权签名系统能够与业务应用通信连接,即与用户终端通信连接,另一方面,基于托管密钥授权签名系统还包括OTP发送模块,其中OTP发送模块可以是一个独立的设备,也可以是集成到托管密钥授权签名设备中。
实施例四
本申请实施例公开一种存储介质,该存储介质存储有计算机程序,计算机程序被处理器执行本申请实施例一公开的基于托管密钥授权签名方法。
本申请实施例的存储介质能够通过硬件密码模块生成托管密钥,其中,私钥密文能够被硬件密码模块进行第一重加密,使得私钥密文只能通过硬件密码模块解密获得,这样一来,外部攻击者即使突破系统防御边界,也只能获取托管密钥,而不能够在没有硬件密码模块的前提下获得私钥明文,进而无法进行签名操作。另一方面,通过第一PIN码能够对私钥明文进行二次加密,这样一来,即使托管方内部存在恶意人员,由于恶意人员不具备第一PIN码,其也无法利用用户的签名私钥伪造用户签名。
再一方面,本申请实施例的存储介质能够实现密钥托管,进而在用户终端不需要专用的密码硬件(如USBKey)或者其它设备(如必须注册的手机)支持,即不依赖专用的客户端环境。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
本文发布于:2023-04-14 06:56:04,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/86476.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |