发明内容
本发明针对现有技术中的缺点,提供了一种基于区块链的密钥管理方法及系统,其可根据层级关系实现密钥变更,提高变更效率。
为了解决上述技术问题,本发明通过下述技术方案得以解决:
一种基于区块链的密钥管理方法,包括以下步骤:
获取密钥管理指令;
基于所述密钥管理指令生成属于第一目标用户的第一公钥和第一私钥,基于所述第一公钥生成所述第一目标用户的用户数据,以所述用户数据更新预设的身份树;
或,基于密钥管理指令为所述第一目标用户开启合约数据修改权限,由第一目标用户生成属于其的第一公钥和第一私钥,并基于所述第一公钥生成所述第一目标用户的用户数据,以所述用户数据更新预设的身份树;
其中,所述身份树的每个节点代表一个用户,节点间的关系为相应用户间的层级关系,所述第一目标用户的层级低于本用户。
作为一种可实施方式:
所述密钥管理指令包括密钥生成指令和密钥变更指令;所述节点中包含对应用户的用户数据和公钥数据;
所述用户数据包括用户信息和用户公钥,所述用户信息包括用户标识和用户等级;
所述公钥数据包括历史公钥列表、上级公钥列表和下级公钥列表。
作为一种可实施方式,当所述密钥管理指令为密钥生成指令,基于所述第一公钥生成所述第一目标用户的用户数据,以所述用户数据更新预设的身份树的具体步骤为:
获取第一目标用户的用户标识和用户等级,并将所述第一公钥作为所述第一目标用户的用户公钥,生成第一目标用户的用户数据;
以所述用户数据作为节点内容于身份树中增加第一目标用户节点,并将所述用户公钥添加至本用户节点的下级公钥列表中,将本用户的第二公钥添加至第一目标用户节点的上级公钥列表中;
所述第二公钥为用户公钥或从历史公钥列表中所提取的初始公钥。
作为一种可实施方式,还包括上级公钥补充步骤,具体为:
于所述身份树中查询用户等级高于本用户的所有用户,获取候选上级用户;
提取至少一个候选上级用户作为补充上级用户;
基于本用户的第二公钥生成绑定请求,将所述绑定请求发送至所述补充上级用户;
当所述补充上级用户审批通过所述绑定请求后,将所述第二公钥添加至上级用户节点的上级公钥列表中,并将所述上级用户的第二公钥添加至本用户节点的下级公钥列表中。
作为一种可实施方式,当所述密钥管理指令为密钥变更指令,基于所述第一公钥生成所述第一目标用户的用户数据,以所述用户数据更新预设的身份树的具体步骤为:
将所述第一目标用户节点中的用户公钥添加至其历史公钥列表,并基于所述第一公钥对所述用户公钥进行更新。
作为一种可实施方式,还包括发起密钥管理请求的步骤,具体步骤为:
获取第二目标用户的用户信息和/或用户公钥,所述第二目标用户为本用户或用户等级与本用户相同的用户;
基于用户信息和/或用户公钥从身份树中选择所述第二目标用户的上级用户;
基于用户信息和/或用户公钥生成密钥管理请求,并将所述密钥管理请求发送至所述上级用户;
当所述上级用户审批通过所述密钥管理请求后,由所述上级用户生成相应的密钥管理指令。
作为一种可实施方式,当所述密钥管理请求为密钥生成请求时,获取所述第二目标用户的信息,发起所述密钥生成请求具体步骤为:
从所述身份树中提取用户等级高于第二目标用户的用户,获得候选上级用户;
按照预设的选择规则,从候选上级用户中提取上级用户;
基于所述用户信息生成密钥生成请求,并将所述密钥生成请求发送至所述上级用户;
当所述上级用户审批通过所述密钥生成请求后,由所述上级用户生成相应的密钥生成指令。
作为一种可实施方式,当所述密钥管理请求为密钥变更请求时,发起所述密钥变更请求具体步骤为:
基于用户信息和/或用户公钥发起相应的密钥修改提案;
从与第二目标用户同级的用户选择协助用户,由各协助用户进行投票或审核,获得投票或审核结果;
当投票或审核结果为通过提案时,基于用户信息和/或用户公钥生成密钥变更请求,并基于身份树将所述密钥管理请求发送所述第二目标用户的上级用户;
当所述上级用户审批通过所述密钥变更请求后,由所述上级用户生成相应的密钥变更指令。
本发明还提出一种基于区块链的密钥管理系统,包括:
指令获取模块,获取密钥管理指令;
第一管理模块,用于基于所述密钥管理指令生成属于第一目标用户的第一公钥和第一私钥,基于所述第一公钥生成所述第一目标用户的用户数据,以所述用户数据更新预设的身份树;
第二管理模块,用于基于密钥管理指令为所述第一目标用户开启合约数据修改权限,由第一目标用户生成属于其的第一公钥和第一私钥,并基于所述第一公钥生成所述第一目标用户的用户数据,以所述用户数据更新预设的身份树;
其中,所述身份树的每个节点代表一个用户,节点间的关系为相应用户间的层级关系,所述第一目标用户的层级低于本用户。本发明还提出一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如上述任一项所述的方法。
本发明由于采用了以上技术方案,具有显著的技术效果:
1、本发明引入用户间的层级关系,由高层级用户对低层级用户进行密钥管理,便于组织管理,且由各用户管理其下级用户的公私钥对,管理效率高,适用于具有层级关系的公司或组织机构。
2、用户可绑定多个上级用户,也可绑定多个下级用户,且可跨用户等级进行绑定,灵活性高。
具体实施方式
下面结合实施例对本发明做进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
实施例1、一种基于区块链的密钥管理方法,如图1所示,包括以下步骤:
S100、获取密钥管理指令;
S200、基于步骤S100所获取的密钥管理指令生成属于第一目标用户的第一公钥和第一私钥,基于所述第一公钥生成所述第一目标用户的用户数据,以所述用户数据更新预设的身份树;
S300、基于步骤S100密钥管理指令为所述第一目标用户开启合约数据修改权限,由第一目标用户生成属于其的第一公钥和第一私钥,并基于所述第一公钥生成所述第一目标用户的用户数据,以所述用户数据更新预设的身份树;
其中,所述身份树的每个节点代表一个用户,节点间的关系为相应用户间的层级关系,所述第一目标用户的层级低于本用户。
所述第一目标用户的层级低于本用户表示所述第一目标用户被本用户直属管理。
现今通过管理员用户审核关于第一目标用户的密钥管理请求,审核通过时,基于密钥管理请求为第一目标用户生成相应的公私钥对,但在实际使用中,管理员用户与第一目标用户的关联度较低,故需要管理员用户耗费较多的人力成本确认第一目标用户的身份,且当区块链中用户众多时,管理员用户往往不能及时响应密钥管理请求,影响第一目标用户的正常使用。
本实施例引入用户间的层级关系,由高层级用户对低层级用户进行密钥管理,无需管理员用户,而是由各用户承担相应的密钥管理工作,从而提高管理效率,及时完成对第一目标用户公私钥对(第一公钥和第一私钥)的生成,还便于组织管理,适用于具有层级关系的公司或组织机构。
上述高层级用户指相关联的用户中用户等级高的用户,低层级用户指相关联的用户中用户等级低的用户。
目前往往对遗失的用户私钥进行找回,但仅恢复遗失的用户私钥仍存在信息泄露风险,故本实施例中无论第一目标用户的用户私钥是遗失还是泄露,均生成新的公私钥对予以替换。
本实施例中身份树储存与智能合约中,故更新身份树的方法为,由本用户或第一目标用户基于第一公钥生成第一目标用户的用户数据,将所述用户数据上传至智能合约,从而更新智能合约中的身份树。
注,本领域的技术人员可采用现有已公开的任意一种公私钥对生成方法生成属于第一目标用户的公私钥对,例如可采用椭圆曲线加密算法。
进一步地:
所述密钥管理指令包括密钥生成指令和密钥变更指令,其中密钥生成指令用于为新用户生成公私钥对,即,第一目标用户在身份树中无对应节点,密钥变更指令用于为遗失或泄露公私钥对的用户生成新的公私钥对。
所述公私钥对为对应用户的公私钥对,即包括第一公钥和第一私钥,其中第一公钥上传至智能合约中予以保存,第一私钥由用户自行下载保存以防泄露。
所述用户数据包括用户信息和用户公钥,所述用户信息包括用户标识和用户等级;本实施例中,所述用户标识具有唯一性,并基于用户等级为各用户开放相应权限;
所述公钥数据包括历史公钥列表、上级公钥列表和下级公钥列表,各公钥列表可为空。
其中,历史公钥列表包含本用户所使用过的公钥;上级公钥列表包含上级用户的公钥,;下级公钥列表包含下级用户的公钥。
参照图2,图2中展示从上至下四种用户等级的用户,身份树中节点间的关系指示相连两个用户的层级关系,即,上下级关系,其根节点对应的用户无同级用户和上级用户,故对根节点对应的用户的密钥进行管理方式为,由相应的第三方机构对其公私钥对进行生成或变更,且由图2可知,用户可绑定多个上级用户,也可绑定多个下级用户,且可跨用户等级进行绑定。
用户数据还包括用户的基本信息,此为现有常规技术,故不对其进行详细介绍。
本实施例中上级用户特指直属上级,下级用户特指被本用户直属管理的用户。
进一步地,当所述密钥管理指令为密钥生成指令,基于所述第一公钥生成所述第一目标用户的用户数据,本用户以所述用户数据更新预设的身份树的具体步骤为:
获取第一目标用户的用户标识和用户等级,并将所述第一公钥作为所述第一目标用户的用户公钥,生成第一目标用户的用户数据;
以所述用户数据作为节点内容于身份树中增加第一目标用户节点,并将所述用户公钥添加至本用户节点的下级公钥列表中,将本用户的第二公钥添加至第一目标用户节点的上级公钥列表中;
所述第二公钥为用户公钥或从历史公钥列表中所提取的初始公钥。
将本用户即为第一用户,将第一目标用户记为第二用户,当第一用户或第二用户基于所述密钥生成指令生成属于所述第二用户的公私钥对后,将第二用户的用户数据和第一公钥保存于智能合约中,并在智能合约中建立第一用户和第二用户的双向指针,以维护第一用户和第二用户的公钥关系,指示第一用户为第二用户的上级用户,第二用户为第一用户的下级用户。
当由第一目标用户更新预设的身份树时,即,由第二用户生成其用户数据后,以所述用户数据作为节点内容于身份树中增加第二用户节点,并将所述用户公钥添加至第一用户节点的下级公钥列表中,将第一用户的第二公钥添加至第二用户节点的上级公钥列表中。
本实施例中,用户可以为用户等级低于其的新用户生成公私钥对,并将该新用户作为下级用户进行绑定,且在实际使用时可跨等级绑定,参照图2,其第二等级的用户可直接与第四等级的用户相绑定。
本领域技术人员可根据实际需要,可将用户的用户标识仅与其初次生成的公钥建立映射关系,获得第一映射方案,或将用户的用户标识与其所有公钥均建立映射关系,获得第二映射方案,提取第二公钥的方法为:
当采用第一映射方案时,判断本用户是否有历史公钥,当有时,从历史公钥列表中提取本用户的初始公钥(第一个获得的公钥)作为第二公钥。
当采用第二映射方案时,将本用户的用户公钥作为第二公钥。
进一步地,还包括上级公钥补充步骤,具体为:
于所述身份树中查询用户等级高于本用户的所有用户,获取候选上级用户;
提取至少一个候选上级用户作为补充上级用户;
基于本用户的第二公钥生成绑定请求,将所述绑定请求发送至所述补充上级用户;
当所述补充上级用户审批通过所述绑定请求后,将所述第二公钥添加至上级用户节点的上级公钥列表中,并将所述上级用户的第二公钥添加至本用户节点的下级公钥列表中。
本用户可发起绑定请求也可作为补充上级用户审批所接收的绑定请求(根用户无上级用户)。
本实施例由补充上级用户用其私钥对所述所接收的各类请求进行签名以表示通过审批,还将对应请求保存至智能合约留存。
本实施例通过对上级公钥补充步骤的设计,使用户能够根据实际情况与多个上级用户相绑定(如图2中第四等级的用户同时与两个第三等级的用户相绑定),各上级用户均可对该用户的密钥进行管理,提高密钥管理的灵活性,且满足层级关系复杂的场景下对密钥管理的需求。
进一步地,当所述密钥管理指令为密钥变更指令,本用户或第一目标用户基于所述第一公钥生成所述第一目标用户的用户数据,以所述用户数据更新预设的身份树的具体步骤为:
将所述第一目标用户节点中的用户公钥添加至其历史公钥列表,并基于所述第一公钥对所述用户公钥进行更新。
本领域实际人员可根据实际需要自行设定关联用户的公钥数据更新方式,包括但不限于仅基于所得公钥更新第一目标用户的上级用户的下级公钥列表、仅基于所述公钥更新第一目标用户的下级用户的上级公钥列表、基于所得公钥对相应上级公钥列表和下级公钥列表进行更新、不更新。
根据更新情况,设置相应的公钥调取方式,例如仅基于所得公钥更新上级用户的下级公钥列表时,公钥调取方法如下:
由于各用户的下级公钥列表中第二公钥均为用户公钥,即为有效公钥,故上级用户可直接从下级公钥列表中调取本用户的用户公钥;
由于各用户中上级公钥列表中存在历史公钥,即为失效公钥,故下级用户从上级公钥列表中提取本用户的第二公钥后,基于映射关系获取本用户的用户标识,基于用户标识调取本用户的用户公钥。
本实施例通过对历史公钥列表的设计,当对用户的公私钥对进行变更时,无需对其上级用户和/或下级用户中保存的公钥进行变更,亦不影响下级用户的公私钥对的使用。
进一步地,步骤S200中的密钥管理指令的获取方法包括以下两种方式:
1、获取第一目标用户的用户数据,基于用户数据生成密钥管理指令;
本方式是由高层级的用户主动为低层级的用户进行密钥生成或变更;
例如:本用户获取某第一目标用户的用户数据基于用户数据生成相应的密钥管理指令,为第一目标用户生成相应的公私钥对。
当第一目标用户为新增用户时,用户数据为用户标识和用户等级,该数据可通过外部导入或输入的方式获得;
当第一目标用户为已绑定的下级用户时,用户数据为用户公钥,用户公钥基于本用户的下级用户数据获得;
2、接收第一目标用户发起的密钥管理请求,基于所述密钥管理请求生成密钥管理指令。
本方式是由高层级的用户响应低层级的用户发起的密钥管理请求,对低层级用户的密钥进行生成或变更;
各用户发起密钥管理请求的步骤相同,以本用户为例,发起密钥管理请求的步骤为:
获取第二目标用户的用户信息和/或用户公钥,所述第二目标用户为本用户或用户等级与本用户相同的用户,即,各用户可发起管理自身公私钥对的请求,还可协助同级用户发起管理所述同级用户公私钥对的请求,如所述同级用户的私钥遗失的情况;
基于用户信息和/或用户公钥从身份树中选择所述第二目标用户的上级用户;
基于用户信息和/或用户公钥生成密钥管理请求,并将所述密钥管理请求发送至所述上级用户;
当所述上级用户审批通过所述密钥管理请求后,由所述上级用户生成相应的密钥管理指令。
本实施例中审批通过指上级用户利用其私钥对密钥管理请求进行签名确认,本实施例还将将审批通过的密钥管理请求存证至智能合约,便于后续溯源。
2.1、当所述密钥管理请求为密钥生成请求时,获取所述第二目标用户的信息,发起所述密钥生成请求具体步骤为:从所述身份树中提取用户等级高于第二目标用户的用户,获得候选上级用户;
按照预设的选择规则,从候选上级用户中提取上级用户;
基于所述用户信息生成密钥生成请求,并将所述密钥生成请求发送至所述上级用户;
当所述上级用户审批通过所述密钥生成请求后,由所述上级用户生成相应的密钥生成指令。
本领域技术人员可根据实际需要自行设定选择规则,例如根据员工职务选择同一部门,用户等级高一级的候选上级用户,还可手动选择上级用户。
2.2、当所述密钥管理请求为密钥变更请求时,发起所述密钥变更请求具体步骤为:
基于用户信息和/或用户公钥发起相应的密钥修改提案;
从与第二目标用户同级的用户选择协助用户,由各协助用户进行投票或审核,获得投票或审核结果,在实际使用时,可根据预先配置的密钥变更逻辑从与第一目标用户同级的用户选择协助用户或手动选择协助用户。
当投票或审核结果为通过提案时,基于用户信息和/或用户公钥生成密钥变更请求,并基于身份树将所述密钥管理请求发送所述第二目标用户的上级用户,可根据实际情况发送至所述第一目标用户任意一个上级用户。
当所述上级用户审批通过所述密钥变更请求后,由所述上级用户生成相应的密钥变更指令。
本实施例中,密钥变更逻辑且各协助用户的投票和审核由通过预先构建的投票合约及审核合约实现。
本领域技术人员可自行根据实际需要,采用审核机制和/或投票机制,以企业为例,对上述密钥变更的方法进行详细介绍:
按照企业职务层级设定员工等级,法定代表人为一级,对身份树中根节点相对应,各部门负责人为二级,员工为三级;
第二目标用户的用户等级为二级时,基于投票机制完成变更,具体步骤如下:
某部门负责人发起密钥修改提案,用以修改第二目标用户的密钥,此时将第二目标用户的公私钥对进行冻结,该第二目标用户为发起提案的负责人(如密钥泄漏)或其他部门负责人(如密钥遗失);
基于第二目标用户的用户等级启动预先构建的投票合约,令其他等级为一级的用户对本次密钥修改提案进行投票,当投票通过人数超过一级用户总数一半时,通过密钥修改提案,发起向第一目标用户绑定的上级用户提出密钥变更请求;
利用根节点对应的私钥所述密钥变更请求进行签名,可根据实际需要设置为自动签名或人工审核后签名,为第二目标用户开发合约数据修改的权限,即,允许第二目标用户的用户公钥发生变更。
第二目标用户的用户等级为三级时,基于审核机制完成变更,具体步骤如下:
员工A发起密钥修改提案,用以修改第二目标用户的密钥,此时将第二目标用户的公私钥对进行冻结,该第二目标用户为发起提案的员工(如密钥泄漏)或其他员工(如密钥遗失);
基于第二目标用户的用户等级启动预先构建的审核合约,令至少一个同级员工对本次密钥修改提案使用私钥进行签名确认进行协助变更后,由员工A向第二目标用户绑定的任意一个上级用户发起密钥变更请求,其中协助变更的用户可以为预先绑定的辅助用户,本领域技术然预案还可根据实际需要,自行指定相应的协助规则进行确定。
上级用户利用其私钥对所述密钥变更请求进行签名,为第二目标用户开放合约数据修改的权限。
本实施例在第二目标用户的上级用户进行审批进行密钥变更的方案基础上,增加同级用户投票或审核的佐证步骤,从而避免第二目标用户与上级用户恶意变更其公私钥对。
综上,本实施例提出一种适用于具有层级框架的场景,通过引入用户间的层级关系,便于组织管理的同时,由各用户管理其下级用户的密钥,提高管理效率;本实施例中通过历史密钥列表的设计,当某用户的公私钥对进行变更后,并不影响其与相应上级用户和/或下级用户的绑定关系,且用户公私钥对的生成、变更和绑定均可跨用户等级实现,灵活度高,满足层级关系复杂场景下对密钥管理的需求。
实施例2、一种基于区块链的密钥管理系统,如图3所示,包括:
指令获取模块100,获取密钥管理指令;
第一管理模块200,用于基于所述密钥管理指令生成属于第一目标用户的第一公钥和第一私钥,基于所述第一公钥生成所述第一目标用户的用户数据,以所述用户数据更新预设的身份树;
第二管理模块300,用于基于密钥管理指令为所述第一目标用户开启合约数据修改权限,由第一目标用户生成属于其的第一公钥和第一私钥,并基于所述第一公钥生成所述第一目标用户的用户数据,以所述用户数据更新预设的身份树;
其中,所述身份树的每个节点代表一个用户,节点间的关系为相应用户间的层级关系,所述第一目标用户的层级低于本用户。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
实施例3、一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现实施例1所述的方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是:
说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
此外,需要说明的是,本说明书中所描述的具体实施例,其零、部件的形状、所取名称等可以不同。凡依本发明专利构思所述的构造、特征及原理所做的等效或简单变化,均包括于本发明专利的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。