H04L9/08 H04L9/06 H04L9/32
1.一种密钥授权的方法,其特征在于,包括:
确定接收到目标设备发送的授权确认请求消息时,获取所述授权确认请求消息中包含的目标用户的目标密钥标识以及申请用户的申请密钥标识;
基于所述目标密钥标识,获取目标密钥的私钥密文和公钥明文,以及目标密钥副本的副本密钥标识,所述目标密钥副本是基于目标密钥创建的密钥副本;
基于针对所述申请密钥标识设置的临时加解密密钥,对所述私钥密文进行加密,获得副本托管密钥,所述临时加解密密钥是基于申请设备发送的授权申请生成的;
基于所述申请密钥标识、目标密钥标识、副本密钥标识、所述公钥明文,以及所述副本托管密钥,进行密钥授权。
2.如权利要求1所述的方法,其特征在于,所述基于所述目标密钥标识,获取目标密钥的私钥密文和公钥明文,以及目标密钥副本的副本密钥标识,包括:
基于所述目标密钥标识,对所述目标用户进行身份验证;
若确定身份验证成功,则获取目标个人身份标识码;
获取针对所述目标密钥标识设置的所述目标密钥的初始托管密钥和所述公钥明文;
基于所述目标个人身份标识码以及所述目标密钥标识,对所述初始托管密钥进行解密,获得所述私钥密文;
创建所述目标密钥的密钥副本,获得所述目标密钥副本;
生成所述目标密钥副本的副本密钥标识。
3.如权利要求2所述的方法,其特征在于,所述基于所述目标密钥标识,对所述目标用户进行身份验证,包括:
获取针对所述目标密钥标识设置的以及目标个人身份标识码摘要;
通过所述,向所述目标用户的目标设备发送第一验证码;
接收所述目标用户对应的第二验证码以及目标个人身份标识码;
若所述第一验证码和所述第二验证码符合验证失败条件,则确定身份验证失败,否则,确定所述目标个人身份标识码的摘要;
若所述目标个人身份标识码摘要与所述目标个人身份标识码的摘要相同,则确定身份验证成功,否则,确定身份验证失败。
4.如权利要求1-3任一项所述的方法,其特征在于,所述基于所述申请密钥标识、目标密钥标识、副本密钥标识、所述公钥明文以及所述副本托管密钥,进行密钥授权,包括:
获取针对所述申请密钥标识设置的所述申请用户的和申请个人身份标识码摘要,以及所述授权确认请求消息中还包含的密钥授权策略;
建立所述申请用户的、所述申请个人身份标识码摘要、所述目标密钥标识、所述副本密钥标识、所述公钥明文、所述副本托管密钥以及所述密钥授权策略之间的关联关系。
5.如权利要求1-3任一项所述的方法,其特征在于,在所述基于针对所述申请密钥标识设置的临时加解密密钥,对所述私钥密文进行加密,获得副本托管密钥之前,还包括:
确定接收到授权申请时,获取所述授权申请中包含的所述申请密钥标识;
基于所述申请密钥标识,对所述申请用户进行身份验证;
若确定验证成功,则获取申请个人身份标识码;
基于所述申请密钥标识和所述申请个人身份标识码,生成所述临时加解密密钥。
6.如权利要求1-3任一项所述的方法,其特征在于,在所述基于所述申请密钥标识、目标密钥标识、副本密钥标识、所述公钥明文以及所述副本托管密钥,进行密钥授权之后,还包括:
接收包含目标密钥标识和副本密钥标识的授权变更请求,所述授权变更请求用于请求撤销密钥授权或者变更所述目标密钥副本的密钥授权策略;
基于所述目标密钥标识,对目标用户进行身份验证;
若验证成功,则基于所述授权变更请求中的所述副本密钥标识,撤销针对所述目标密钥副本的密钥授权或者变更所述目标密钥副本的密钥授权策略。
7.一种密钥授权的装置,其特征在于,包括:
接收单元,用于确定接收到目标设备发送的授权确认请求消息时,获取所述授权确认请求消息中包含的目标用户的目标密钥标识以及申请用户的申请密钥标识;
获取单元,用于基于所述目标密钥标识,获取目标密钥的私钥密文和公钥明文,以及目标密钥副本的副本密钥标识,所述目标密钥副本是基于目标密钥创建的密钥副本;
加密单元,用于基于针对所述申请密钥标识设置的临时加解密密钥,对所述私钥密文进行加密,获得副本托管密钥,所述临时加解密密钥是基于申请设备发送的授权申请生成的;
授权单元,用于基于所述申请密钥标识、目标密钥标识、副本密钥标识、所述公钥明文以及所述副本托管密钥,进行密钥授权。
8.如权利要求7所述的装置,其特征在于,所述获取单元用于:
基于所述目标密钥标识,对所述目标用户进行身份验证;
若确定身份验证成功,则获取目标个人身份标识码;
获取针对所述目标密钥标识设置的所述目标密钥的初始托管密钥和所述公钥明文;
基于所述目标个人身份标识码以及所述目标密钥标识,对所述初始托管密钥进行解密,获得所述私钥密文;
创建所述目标密钥的密钥副本,获得所述目标密钥副本;
生成所述目标密钥副本的副本密钥标识。
9.如权利要求8所述的装置,其特征在于,所述获取单元用于:
获取针对所述目标密钥标识设置的以及目标个人身份标识码摘要;
通过所述,向所述目标用户的目标设备发送第一验证码;
接收所述目标用户对应的第二验证码以及目标个人身份标识码;
若所述第一验证码和所述第二验证码符合验证失败条件,则确定身份验证失败,否则,确定所述目标个人身份标识码的摘要;
若所述目标个人身份标识码摘要与所述目标个人身份标识码的摘要相同,则确定身份验证成功,否则,确定身份验证失败。
10.如权利要求7-9任一项所述的装置,其特征在于,所述授权单元用于:
获取针对所述申请密钥标识设置的所述申请用户的和申请个人身份标识码摘要,以及所述授权确认请求消息中还包含的密钥授权策略;
建立所述申请用户的、所述申请个人身份标识码摘要、所述目标密钥标识、所述副本密钥标识、所述公钥明文以及所述副本托管密钥之间的关联关系。
11.如权利要求7-9任一项所述的装置,其特征在于,所述加密单元还用于:
确定接收到授权申请时,获取所述授权申请中包含的所述申请密钥标识;
基于所述申请密钥标识,对所述申请用户进行身份验证;
若确定验证成功,则获取申请个人身份标识码;
基于所述申请密钥标识和所述申请个人身份标识码,生成所述临时加解密密钥。
12.如权利要求7-9任一项所述的装置,其特征在于,所述授权单元还用于:
接收包含目标密钥标识和副本密钥标识的授权变更请求,所述授权变更请求用于请求撤销密钥授权或者变更所述目标密钥副本的密钥授权策略;
基于所述目标密钥标识,对目标用户进行身份验证;
若验证成功,则基于所述授权变更请求中的所述副本密钥标识,撤销针对所述目标密钥副本的密钥授权或者变更所述目标密钥副本的密钥授权策略。
13.一种计算机设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-6任一所述方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-6任一所述方法。
本申请涉及数据处理技术领域,具体而言,涉及一种密钥授权的方法、装置、计算机设备及可读存储介质。
随着互联网技术的发展,无纸化办公越来越普及,例如,可以通过密码技术对企业电子印章对应的数字证书以及私钥进行控制,使得用户可以通过企业电子印章进行电子盖章。
现有技术下,密钥授权的应用场景较为局限,通常仅能满足个人的通用密钥授权需求,而不能满足企业电子印章的多人不同场景使用的需求。
本申请实施例的目的在于提供一种密钥授权的方法、装置、计算机设备及可读存储介质,用以在针对电子印章进行密钥授权时,提高密钥授权的适用范围。
一方面,提供一种密钥授权的方法,包括:
确定接收到目标设备发送的授权确认请求消息时,获取授权确认请求消息中包含的目标用户的目标密钥标识以及申请用户的申请密钥标识;
基于目标密钥标识,获取目标密钥的私钥密文和公钥明文,以及目标密钥副本的副本密钥标识,目标密钥副本是基于目标密钥创建的密钥副本;
基于针对申请密钥标识设置的临时加解密密钥,对私钥密文进行加密,获得副本托管密钥,临时加解密密钥是基于申请设备发送的授权申请生成的;
基于申请密钥标识、目标密钥标识、副本密钥标识、公钥明文以及副本托管密钥,进行密钥授权。
在上述实现过程中,在进行密钥授权时,通过申请用户的临时加解密密钥,对私钥密文进行加密,并建立上述关联关系,使得申请用户获得了目标密钥副本的独立控制权,以及可以通过多个目标密钥副本,使得同一企业中多个用户均可以独立控制目标密钥的目标密钥副本,扩大了应用范围,满足了多人使用同一目标密钥的需求。
一种实施方式中,基于目标密钥标识,获取目标密钥的私钥密文和公钥明文,以及目标密钥副本的副本密钥标识,包括:
基于目标密钥标识,对目标用户进行身份验证;
若确定身份验证成功,则获取目标个人身份标识码;
获取针对目标密钥标识设置的目标密钥的初始托管密钥和公钥明文;
基于目标个人身份标识码以及目标密钥标识,对初始托管密钥进行解密,获得私钥密文;
创建目标密钥的密钥副本,获得目标密钥副本;
生成目标密钥副本的副本密钥标识。
在上述实现过程中,对目标用户的初始托管密钥进行解密,获得私钥密文,从而可以在后续步骤中,通过私钥密文实现密钥权限的转移,以及可以基于目标密钥生成多个目标密钥副本以及副本密钥标识,从而可以在后续步骤中,使得同一企业中多个用户均可以独立控制目标密钥的目标密钥副本。
一种实施方式中,基于目标密钥标识,对目标用户进行身份验证,包括:
获取针对目标密钥标识设置的以及目标个人身份标识码摘要;
通过,向目标用户的目标设备发送第一验证码;
接收目标用户对应的第二验证码以及目标个人身份标识码;
若第一验证码和第二验证码符合验证失败条件,则确定身份验证失败,否则,确定目标个人身份标识码的摘要;
若目标个人身份标识码摘要与目标个人身份标识码的摘要相同,则确定身份验证成功,否则,确定身份验证失败。
在上述实现过程中,对目标用户进行身份验证,提高了安全性。
一种实施方式中,基于申请密钥标识、目标密钥标识、副本密钥标识、公钥明文以及副本托管密钥,进行密钥授权,包括:
获取针对申请密钥标识设置的申请用户的和申请个人身份标识码摘要,以及授权确认请求消息中还包含的密钥授权策略;
建立申请用户的、申请个人身份标识码摘要、目标密钥标识、副本密钥标识、公钥明文、副本托管密钥以及密钥授权策略之间的关联关系。
在上述实现过程中,建立上述关联关系,使得申请用户可以基于上述关联关系调用目标密钥副本进行电子盖章。
一种实施方式中,在基于针对申请密钥标识设置的临时加解密密钥,对私钥密文进行加密,获得副本托管密钥之前,还包括:
确定接收到授权申请时,获取授权申请中包含的申请密钥标识;
基于申请密钥标识,对申请用户进行身份验证;
若确定验证成功,则获取申请个人身份标识码;
基于申请密钥标识和申请个人身份标识码,生成临时加解密密钥。
在上述实现过程中,申请用户身份验证通过之后,生成临时加解密密钥,从而可以在后续步骤中,通过临时加解密密钥实现密钥权限的转移。
一种实施方式中,在基于申请密钥标识、目标密钥标识、副本密钥标识、公钥明文以及副本托管密钥,进行密钥授权之后,还包括:
接收包含目标密钥标识和副本密钥标识的授权变更请求,授权变更请求用于请求撤销密钥授权或者变更目标密钥副本的密钥授权策略;
基于目标密钥标识,对目标用户进行身份验证;
若验证成功,则基于授权变更请求中的副本密钥标识,撤销针对目标密钥副本的密钥授权或者变更目标密钥副本的密钥授权策略。
在上述实现过程中,可以实现密钥授权的撤销以及密钥授权策略的变更,提高了授权的灵活性。
一方面,提供一种密钥授权的装置,包括:
接收单元,用于确定接收到目标设备发送的授权确认请求消息时,获取授权确认请求消息中包含的目标用户的目标密钥标识以及申请用户的申请密钥标识;
获取单元,用于基于目标密钥标识,获取目标密钥的私钥密文和公钥明文,以及目标密钥副本的副本密钥标识,目标密钥副本是基于目标密钥创建的密钥副本;
加密单元,用于基于针对申请密钥标识设置的临时加解密密钥,对私钥密文进行加密,获得副本托管密钥,临时加解密密钥是基于申请设备发送的授权申请生成的;
授权单元,用于基于申请密钥标识、目标密钥标识、副本密钥标识、公钥明文以及副本托管密钥,进行密钥授权。
一种实施方式中,获取单元用于:
基于目标密钥标识,对目标用户进行身份验证;
若确定身份验证成功,则获取目标个人身份标识码;
获取针对目标密钥标识设置的目标密钥的初始托管密钥和公钥明文;
基于目标个人身份标识码以及目标密钥标识,对初始托管密钥进行解密,获得私钥密文;
创建目标密钥的密钥副本,获得目标密钥副本;
生成目标密钥副本的副本密钥标识。
一种实施方式中,获取单元用于:
获取针对目标密钥标识设置的以及目标个人身份标识码摘要;
通过,向目标用户的目标设备发送第一验证码;
接收目标用户对应的第二验证码以及目标个人身份标识码;
若第一验证码和第二验证码符合验证失败条件,则确定身份验证失败,否则,确定目标个人身份标识码的摘要;
若目标个人身份标识码摘要与目标个人身份标识码的摘要相同,则确定身份验证成功,否则,确定身份验证失败。
一种实施方式中,授权单元用于:
获取针对申请密钥标识设置的申请用户的和申请个人身份标识码摘要,以及授权确认请求消息中还包含的密钥授权策略;
建立申请用户的、申请个人身份标识码摘要、目标密钥标识、副本密钥标识、公钥明文、副本托管密钥以及密钥授权策略之间的关联关系。
一种实施方式中,加密单元还用于:
确定接收到授权申请时,获取授权申请中包含的申请密钥标识;
基于申请密钥标识,对申请用户进行身份验证;
若确定验证成功,则获取申请个人身份标识码;
基于申请密钥标识和申请个人身份标识码,生成临时加解密密钥。
一种实施方式中,授权单元还用于:
接收包含目标密钥标识和副本密钥标识的授权变更请求,授权变更请求用于请求撤销密钥授权或者变更目标密钥副本的密钥授权策略;
基于目标密钥标识,对目标用户进行身份验证;
若验证成功,则基于授权变更请求中的副本密钥标识,撤销针对目标密钥副本的密钥授权或者变更目标密钥副本的密钥授权策略。
一方面,提供了一种计算机设备,包括处理器以及存储器,存储器存储有计算机可读取指令,当计算机可读取指令由处理器执行时,运行如上述任一种密钥授权的各种可选实现方式中提供的方法的步骤。
一方面,提供了一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时运行如上述任一种密钥授权的各种可选实现方式中提供的方法的步骤。
一方面,提供了一种计算机程序产品,计算机程序产品在计算机上运行时,使得计算机执行如上述任一种密钥授权的各种可选实现方式中提供的方法的步骤。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种应用场景示意图;
图2为本申请实施例提供的一种密钥申请的方法的流程图;
图3为本申请实施例提供的一种密钥授权的方法的流程图;
图4为本申请实施例提供的一种密钥授权的装置的结构框图;
图5为本申请实施方式中一种计算机设备的结构示意图。
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
首先对本申请实施例中涉及的部分用语进行说明,以便于本领域技术人员理解。
终端设备:可以是移动终端、固定终端或便携式终端,例如移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统设备、个人导航设备、个人数字助理、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,终端设备能够支持任意类型的针对用户的接口(例如可穿戴设备)等。
服务器:可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云计算服务的云服务器。
为了在针对电子印章进行密钥授权时,可以扩大密钥授权的应用范围,本申请实施例提供了一种密钥授权的方法、装置、计算机设备及可读存储介质。
本申请实施例的应用场景为:目标用户持有目标密钥的控制权,通过本申请实施例中的密钥申请以及密钥授权流程,将目标密钥的控制权授予申请用户,也就是说,建立目标密钥副本与申请用户之间的关联,使得申请用户拥有对目标密钥的控制权。
本申请实施例中,仅以执行主体为服务器为例进行说明,实际应用中,执行主体也可以为终端设备等计算机设备,在此不作限制。
本申请实施例中,申请用户向服务器申请目标密钥的授权,目标用户进行密钥授权使用。
参阅图1所示,为本申请实施例提供的一种密钥申请的方法的流程图,该方法的具体实施流程如下:
步骤100:确定接收到授权申请时,获取授权申请中包含的申请密钥标识。
具体的,申请设备获取申请用户的申请密钥标识,以及待申请授权的目标密钥的目标密钥标识,并向服务器发送授权申请。服务器确定接收到接收到授权申请时,获取授权申请中包含的申请密钥标识。
进一步的,还可以获取授权申请中还包含的目标密钥标识。
需要说明的是,申请用户和目标用户均拥有至少一个独立的密钥,申请设备可以为终端设备,也可以为服务器,可以为一个,也可以为多个,在此不作限制。
一种实施方式中,目标用户在托管密钥签名服务拥有一个独立的密钥(即目标密钥),目标密钥标识为keyId_A,申请用户在托管密钥签名服务拥有一个独立的密钥(即申请密钥),申请密钥标识为keyId_B。申请用户向托管密钥签名服务申请执行requestKeyPairCounterpart过程(授权申请),授权申请中的输入参数包括:需要申请使用的目标密钥的目标密钥标识keyId_A,以及申请用户持有的申请密钥的申请密钥标识keyId_B。
步骤101:基于申请密钥标识,对申请用户进行身份验证。
具体的,执行步骤101时,可以采用以下步骤:
S1011:获取针对申请密钥标识设置的以及申请个人身份标识码摘要。
一种实施方式中,基于申请密钥标识,从密钥库中获取申请密钥的元数据。
其中,申请密钥的元数据中至少包含申请用户的以及申请个人身份标识码摘要。申请个人身份标识码摘要为对申请个人身份标识码(Personal IdentificationNumber,PIN)进行哈希运算获得摘要值。
可选的,可以为申请用户的手机号,也可以为其它方式,在此不作限制。
S1012:通过上述,向申请用户发送第一验证码。
具体的,第一验证码可以为一次性口令(One Time Password,OTP),可以为访问的激活链接,也可以为其它“挑战-响应”方式,在此不作限制。
S1013:接收申请用户基于第一验证码返回的第二验证码以及申请个人身份标识码。
需要说明的是,为保证安全性,OTP需要通过带外通道发送。也就是说,用户通过一个设备接收第一验证码,并通过另一个设备返回第二验证码,或者,通过短信或者邮件接收到激活链接,并通过点击该激活链接的方式进行验证。
例如,服务器通过用户Bob(申请用户)的手机号,向用户Bob的手机(申请设备之外的通信设备)发送随机生成的第一验证码。用户Bob通过手机接收到服务器发送的第一验证码后,通过笔记本(即申请设备)向服务器发送第二验证码以及申请个人身份标识码。
S1014:若第一验证码和第二验证码符合验证失败条件,则确定身份验证失败,否则,确定申请个人身份标识码的摘要。
例如,验证失败条件可以为第一验证码和第二验证码不同,即,若第一验证码和第二验证码相同,则对申请设备返回的申请个人身份标识码进行哈希计算,获得申请个人身份标识码的摘要hashPin_B,否则,说明身份验证失败,并可以向申请设备返回错误信息。
实际应用中,验证失败条件可以根据实际应用场景进行设置,在此不作限制。
S1015:若申请个人身份标识码摘要与申请个人身份标识码的摘要相同,则确定身份验证成功,否则,确定身份验证失败。
具体的,若申请个人身份标识码摘要与申请个人身份标识码的摘要相同,则确定身份验证成功,并可以返回已完成身份鉴别的程序运行结果,若申请个人身份标识码摘要与申请个人身份标识码的摘要不同,则确定身份验证失败。还可以向申请设备返回错误信息。
这样,就可以对申请设备的身份进行验证,提高了安全性。
步骤102:若确定验证成功,则获取申请个人身份标识码。
步骤103:基于申请密钥标识和申请个人身份标识码,生成临时加解密密钥。
一种实施方式中,临时加解密密钥可以采用以下公式获得:
key0=KDF(SAM_SymKey,keyId||pin);
Key_B=Truncate(key0,16Bytes)。
其中,key0为临时加解密初始密钥,KDF为密钥导出函数,SAM_SymKey为硬件密码模块内部安全存储的密钥,keyId为密钥标识,pin为个人身份标识码,Truncate为截断函数,Key_B为临时加解密密钥。
本申请实施例中,将申请密钥标识和申请个人身份标识码作为输入,通过密钥导出函数KDF计算,获得临时加解密初始密钥key0,并通过截断函数Truncate,将key0变换为128比特的临时加解密密钥Key_B。
其中,密钥导出函数KDF可以应用多种算法,在导出密钥的过程中用到了硬件密码模块内部安全存储的密钥SAM_SymKey,确保了密钥导出的过程依赖于硬件密码模块设备,使得攻击者无法脱离硬件密码模块设备来离线计算临时加解密密钥。
进一步的,可以将临时加解密密钥进行存储,如,可以将临时加解密密钥存储至缓存系统中。
本申请实施例中,申请用户针对目标密钥发出授权申请后,服务器根据申请用户的申请密钥标识和申请个人身份标识码,生成临时加解密密钥,从而可以在后续的授权确认过程中,通过临时加解密密钥,将目标密钥授权至申请用户。
参阅图2所示,为本申请实施例提供的一种密钥授权的方法的流程图,该方法的具体实施流程如下:
步骤200:确定接收到目标设备发送的授权确认请求消息时,获取授权确认请求消息中包含的目标用户的目标密钥标识以及申请用户的申请密钥标识。
具体的,授权确认请求消息中还可以包含密钥授权策略。密钥授权策略用于指示目标密钥的授权使用方式,如,授权使用周期以及允许调用的次数等。
实际应用中,密钥授权策略可以根据实际应用场景进行设置,在此不作限制。
步骤201:基于目标密钥标识,获取目标密钥的私钥密文和公钥明文,以及目标密钥副本的副本密钥标识。
具体的,执行步骤201时,可以采用以下步骤:
S2011:基于目标密钥标识,对目标用户进行身份验证。
具体的,执行S2011时,可以采用以下步骤:
步骤一:获取针对目标密钥标识设置的以及目标个人身份标识码摘要。
一种实施方式中,基于申请密钥标识,从密钥库中获取目标密钥的元数据。
其中,目标密钥的元数据中至少包含目标用户的以及目标个人身份标识码摘要。目标个人身份标识码摘要为对目标个人身份标识码进行哈希运算获得摘要值。
步骤二:通过,向目标用户的目标设备发送第一验证码。
步骤三:接收目标用户对应的第二验证码以及目标个人身份标识码。
步骤四:若第一验证码和第二验证码符合验证失败条件,则确定身份验证失败,否则,确定目标个人身份标识码的摘要。
步骤五:若目标个人身份标识码摘要hashPIN_A与目标个人身份标识码PIN_A的摘要相同,则确定身份验证成功,否则,确定身份验证失败。
需要说明的是,本申请实施例中,采用与上述步骤101中对申请用户进行身份验证相似的原理,对目标用户进行身份验证,在此不做赘述。
S2012:若确定身份验证成功,则获取目标个人身份标识码。
S2013:获取针对目标密钥标识设置的目标密钥的初始托管密钥和公钥明文。
具体的,从目标密钥标识对应的元数据中,获取初始托管密钥encUsrPri_A和公钥明文usrPub。
需要说明的是,初始托管密钥encUsrPri_A是对私钥密文进行加密后的获得的,私钥密文是对私钥进行加密后获得的,也就是说,私钥密文是对私钥进行一次加密的密文,初始托管密钥encUsrPri_A是对私钥进行二次加密后的密文。
S2014:基于目标个人身份标识码以及目标密钥标识,对初始托管密钥进行解密,获得私钥密文。
具体的,基于目标用户的目标个人身份标识码PIN_A以及目标密钥标识keyId_A,生成加解密密钥key_A,并基于加解密密钥key_A对初始托管密钥encUsrPri_A执行解密操作,获得私钥密文usrPri。
其中,加解密密钥key_A是通过密钥导出函数KDF计算获得的。
可选的,进行解密的加解密算法算法可以采用高级加密标准(AdvancedEncryption Standard,AES)算法,也可以采用国密SM4分组加密。
实际应用中,加解密算法算法可以根据实际应用场景进行设置,在此不作限制。
S2015:创建目标密钥的密钥副本,获得目标密钥副本。
需要说明的是,目标密钥副本中包含的私钥和公钥明文,与目标密钥中包含的私钥和公钥明文是相同的。
S2016:生成目标密钥副本的副本密钥标识。
具体的,针对目标密钥副本生成唯一的副本密钥标识keyId_F。
这样,就可以获取目标密钥的私钥密文和公钥明文,以及目标密钥副本的副本密钥标识,从而可以针对不同用户生成多个目标密钥副本,使得不同用户均可以独立控制一个目标密钥副本。
进一步的,将目标密钥标识keyId_A设置为目标密钥副本的原始密钥标识masterKeyId。
这样,可以将目标密钥副本与原始的目标密钥建立关联,从而可以在后续的撤销密钥授权时,可以通过目标密钥副本与原始的目标密钥之间的关联,校验申请撤销的用户是否拥有权限。
步骤202:基于针对申请密钥标识设置的临时加解密密钥,对私钥密文进行加密,获得副本托管密钥。
具体的,基于申请密钥标识,获取存储的申请用户的临时加解密密钥,并通过临时加解密密钥,对私钥密文进行再次加密,获得副本托管密钥。
可选的,进行加密的加解密算法算法可以采用AES算法,也可以采用国密SM4分组加密,也可以采用其它加解密算法,在此不做限制。
一种实施方式中,使用临时加解密密钥Key_B对私钥密文usrPri和申请密钥标识keyId_F进行对称加密(即第二层加密),获得副本托管密钥encUsrPri_F=Sym_Encrypt(keyId_F,usrPri||keyId_F)。
可选的,进行加密的加解密算法算法可以采用AES分组加密,也可以采用国密SM4分组加密,也可以根据实际应用场景进行设置,在此不作限制。
进一步的,在生成副本托管密钥之后,从存储系统中,删除申请用户对应的临时加解密密钥,以提高加解密的安全性。
步骤203:基于申请密钥标识、目标密钥标识、副本密钥标识、公钥明文以及副本托管密钥,进行密钥授权。
具体的,执行步骤203时,采用以下步骤:
S2031:获取针对申请密钥标识设置的申请用户的和申请个人身份标识码摘要。
具体的,从申请密钥标识对应的元数据中,获取申请用户的申请个人身份标识码摘要hashPIN_B以及。
S2032:建立申请用户的、申请个人身份标识码摘要、目标密钥标识、副本密钥标识、公钥明文以及副本托管密钥之间的关联关系,使得申请用户基于关联关系进行加解密。
具体的,将目标密钥标识keyId_A设置为目标密钥副本的原始密钥标识masterKeyId,并建立申请用户的telNum_B、申请个人身份标识码摘要hashPIN_B、目标密钥副本的原始密钥标识masterKeyId、副本密钥标识keyId_F、公钥明文usrPub以及副本托管密钥encUsrPri_F之间的关联关系。
进一步的,还可以建立申请用户的telNum_B、申请个人身份标识码摘要hashPIN_B、目标密钥副本的原始密钥标识masterKeyId、副本密钥标识keyId_F、公钥明文usrPub、副本托管密钥encUsrPri_F及目标用户授权确认的密钥授权策略之间的关联关系。
需要说明的是,本申请实施例中的各步骤的执行顺序可以顺序执行,也可以按照其它顺序执行,在此不作限制。
本申请实施例中,在建立申请用户的、申请个人身份标识码摘要、目标密钥标识、副本密钥标识、公钥明文以及副本托管密钥之间的关联关系之后,申请用户就拥有了对目标密钥副本的独立控制权。
本申请实施例中,仅以将目标密钥授权给一个申请用户为例进行说明,实际应用中,基于与将目标密钥授权给一个申请用户相似的原理,可以将目标密钥授权给多个不同的申请用户。
进一步的,若申请用户需要使用目标密钥副本,则在申请用户身份验证通过之后,就可以基于上述关联关系,使用目标密钥副本生成电子签名数据,实现企业的电子公章的管理以及使用。
进一步的,目标用户在进行身份验证通过之后,还可以通过原始密钥标识masterKeyId,撤销对申请用户的密钥授权,或者,变更密钥授权策略。
一种实施方式中,接收包含目标密钥标识和副本密钥标识的授权变更请求,授权变更请求用于请求撤销密钥授权或者变更密钥授权策略,基于目标密钥标识,对目标用户进行身份验证;若验证成功,则基于授权变更请求中的副本密钥标识,撤销针对目标密钥副本的密钥授权或者变更目标密钥副本的密钥授权策略。
进一步的,还可以建立目标密钥副本的原始密钥标识masterKeyId以及申请密钥标识keyId_B以及密钥授权策略之间的对应关系,申请用户可以基于该对应关系,基于与将目标密钥授权给一个申请用户相似的原理,将被授权获得的目标密钥副本进一步授权至另一用户(即第三用户),从而形成链式的密钥授权关系。
需要说明的是,基于一个目标密钥可以创建一个或多个目标密钥副本。
在构建了链式的密钥授权关系之后,可以规定在一个目标密钥副本的任何一个前驱节点(如,目标用户)拥有权限可以撤销在链条中位于它之后的任意一个或者多个密钥副本的密钥授权(如,申请用户的目标密钥副本的密钥授权),从而实现更灵活的密钥授权管理。
本申请实施例中,可以通过缓存系统来存储用户的临时加解密密钥,是用户的密钥相关的安全敏感参数,对安全性的要求较高,需要进行保护以防止数据泄漏。
进一步的,还可以将数据加密之后再存储到缓存系统中,需要确保服务器(如,托管密钥签名服务的集系统)的不同节点之间密钥共享,从而可以正确解密在缓存系统中存储的数据密文。
需要说明的是,本申请实施例需要在安全可控环境中执行,并且在安全可控环境中运行缓存系统。
可选的,可以基于可信执行环境(Trusted Execution Environment,TEE)来构建安全可控环境,如采用英特尔(Intel)指令集架构的一个扩展(Software GuardExtension,SGX)技术来实施。
参阅图3所示,为一种密钥授权系统的架构示意图。图3中,服务器基于申请用户的授权申请,获取申请个人身份标识码pin_B,并将申请个人身份标识码pin_B作为密钥导出函数KDF的输入,获得计算出的临时加解密密钥Key_B,以及将临时加解密密钥Key_B存储至缓存系统。
再者,服务器基于目标用户的授权确认请求消息,对目标用户的目标个人身份标识码PIN_A进行哈希计算,获得目标个人身份标识码的摘要,若目标个人身份标识码的摘要与针对目标密钥标识keyId_A设置的目标个人身份标识码摘要hashPIN_A相同,则确定目标用户身份验证通过,并采用密钥导出函数KDF,基于目标用户的目标个人身份标识码PIN_A以及目标密钥标识keyId_A,生成加解密密钥key_A,以及基于加解密密钥key_A对初始托管密钥encUsrPri_A执行解密操作,获得私钥密文usrPri。
接着,服务器基于临时加解密密钥Key_B对私钥密文usrPri进行加密,获得副本托管密钥encUsrPri_F并建立申请用户的telNum_B、申请个人身份标识码摘要hashPIN_B、目标密钥副本的原始密钥标识masterKeyId、副本密钥标识keyId_F、公钥明文usrPub、副本托管密钥encUsrPri_F以及申请用户请求的密钥授权策略之间的关联关系。
本申请实施例中,基于申请用户的授权申请,生成临时加解密密钥Key_B,以及,接收到目标用户的授权确认请求消息后,通过目标用户的目标个人身份标识码PIN_A,对二次加密后获得的初始托管密钥encUsrPri_A进行外层解密获得私钥密文,并创建目标密钥副本,以及通过申请用户的申请个人身份标识码pin_B,对私钥密文进行二次加密,获得申请用户可以独立控制的副本托管密钥encUsrPri_F进而建立申请用户的telNum_B、申请个人身份标识码摘要hashPIN_B、目标密钥副本的原始密钥标识masterKeyId、副本密钥标识keyId_F、公钥明文usrPub、副本托管密钥encUsrPri_F以及申请用户请求的密钥授权策略之间的关联关系,实现了目标密钥副本的控制权的转移,使得多个用户可以分别独立地控制目标密钥副本,以及目标用户(如,管理员)还可以通过原始密钥标识随时撤销密钥授权,实现了对密钥授权的生命周期管理,并可以灵活变更密钥授权策略。
基于同一发明构思,本申请实施例中还提供了一种密钥授权的装置,由于上述装置及设备解决问题的原理与一种密钥授权的方法相似,因此,上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图4所示,其为本申请实施例提供的一种密钥授权的装置的结构示意图,包括:
接收单元401,用于确定接收到目标设备发送的授权确认请求消息时,获取授权确认请求消息中包含的目标用户的目标密钥标识以及申请用户的申请密钥标识;
获取单元402,用于基于目标密钥标识,获取目标密钥的私钥密文和公钥明文,以及目标密钥副本的副本密钥标识,目标密钥副本是基于目标密钥创建的密钥副本;
加密单元403,用于基于针对申请密钥标识设置的临时加解密密钥,对私钥密文进行加密,获得副本托管密钥,临时加解密密钥是基于申请设备发送的授权申请生成的;
授权单元404,用于基于申请密钥标识、目标密钥标识、副本密钥标识、公钥明文以及副本托管密钥,进行密钥授权。
一种实施方式中,获取单元402用于:
基于目标密钥标识,对目标用户进行身份验证;
若确定身份验证成功,则获取目标个人身份标识码;
获取针对目标密钥标识设置的目标密钥的初始托管密钥和公钥明文;
基于目标个人身份标识码以及目标密钥标识,对初始托管密钥进行解密,获得私钥密文;
创建目标密钥的密钥副本,获得目标密钥副本;
生成目标密钥副本的副本密钥标识。
一种实施方式中,获取单元402用于:
获取针对目标密钥标识设置的以及目标个人身份标识码摘要;
通过,向目标用户的目标设备发送第一验证码;
接收目标用户对应的第二验证码以及目标个人身份标识码;
若第一验证码和第二验证码符合验证失败条件,则确定身份验证失败,否则,确定目标个人身份标识码的摘要;
若目标个人身份标识码摘要与目标个人身份标识码的摘要相同,则确定身份验证成功,否则,确定身份验证失败。
一种实施方式中,授权单元404用于:
获取针对申请密钥标识设置的申请用户的和申请个人身份标识码摘要,以及授权确认请求消息中还包含的密钥授权策略;
建立申请用户的、申请个人身份标识码摘要、目标密钥标识、副本密钥标识、公钥明文、副本托管密钥以及密钥授权策略之间的关联关系。
一种实施方式中,加密单元403还用于:
确定接收到授权申请时,获取授权申请中包含的申请密钥标识;
基于申请密钥标识,对申请用户进行身份验证;
若确定验证成功,则获取申请个人身份标识码;
基于申请密钥标识和申请个人身份标识码,生成临时加解密密钥。
一种实施方式中,授权单元404还用于:
接收包含目标密钥标识和副本密钥标识的授权变更请求,授权变更请求用于请求撤销密钥授权或者变更目标密钥副本的密钥授权策略;
基于目标密钥标识,对目标用户进行身份验证;
若验证成功,则基于授权变更请求中的副本密钥标识,撤销针对目标密钥副本的密钥授权或者变更目标密钥副本的密钥授权策略。
图5示出了一种计算机设备5000的结构示意图。参阅图5所示,计算机设备5000包括:处理器5010以及存储器5020,可选的,还可以包括电源5030、显示单元5040、输入单元5050。
处理器5010是计算机设备5000的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在存储器5020内的软件程序和/或数据,执行计算机设备5000的各种功能,从而对计算机设备5000进行整体监控。
本申请实施例中,处理器5010调用存储器5020中存储的计算机程序时执行上述实施例中的各个步骤。
可选的,处理器5010可包括一个或多个处理单元;优选的,处理器5010可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器5010中。在一些实施例中,处理器、存储器、可以在单一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
存储器5020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、各种应用等;存储数据区可存储根据计算机设备5000的使用所创建的数据等。此外,存储器5020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件等。
计算机设备5000还包括给各个部件供电的电源5030(比如电池),电源可以通过电源管理系统与处理器5010逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
显示单元5040可用于显示由用户输入的信息或提供给用户的信息以及计算机设备5000的各种菜单等,本发明实施例中主要用于显示计算机设备5000中各应用的显示界面以及显示界面中显示的文本、图片等对象。显示单元5040可以包括显示面板5041。显示面板5041可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(OrganicLight-Emitting Diode,OLED)等形式来配置。
输入单元5050可用于接收用户输入的数字或字符等信息。输入单元5050可包括触控面板5051以及其他输入设备5052。其中,触控面板5051,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触摸笔等任何适合的物体或附件在触控面板5051上或在触控面板5051附近的操作)。
具体的,触控面板5051可以检测用户的触摸操作,并检测触摸操作带来的信号,将这些信号转换成触点坐标,发送给处理器5010,并接收处理器5010发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板5051。其他输入设备5052可以包括但不限于物理键盘、功能键(比如音量控制按键、开关机按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
当然,触控面板5051可覆盖显示面板5041,当触控面板5051检测到在其上或附近的触摸操作后,传送给处理器5010以确定触摸事件的类型,随后处理器5010根据触摸事件的类型在显示面板5041上提供相应的视觉输出。虽然在图5中,触控面板5051与显示面板5041是作为两个独立的部件来实现计算机设备5000的输入和输出功能,但是在某些实施例中,可以将触控面板5051与显示面板5041集成而实现计算机设备5000的输入和输出功能。
计算机设备5000还可包括一个或多个传感器,例如压力传感器、重力加速度传感器、接近光传感器等。当然,根据具体应用中的需要,上述计算机设备5000还可以包括摄像头等其它部件,由于这些部件不是本申请实施例中重点使用的部件,因此,在图5中没有示出,且不再详述。
本领域技术人员可以理解,图5仅仅是计算机设备的举例,并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
本申请实施例中,一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得通信设备可以执行上述实施例中的各个步骤。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
本文发布于:2023-04-13 10:21:14,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/2/85496.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |