本发明涉及信息安全,更具体的说是涉及一种支持密码卡密钥扩容的方法及系统。
背景技术:
1、密码机是信息安全建设过程中核心的技术支撑,密码卡模块是密码机核心部件,因此如何方便快捷的调用密码卡模块资源,是信息安全建设中重要考虑的因素。
2、信息安全建设中部分业务系统有大容量密钥的需求,而密码卡密钥空间是有限的,如果现有密钥空间已使用完毕,只能扩容新的设备,上层业务系统要使用到新的设备密钥空间需要实现复杂的逻辑来处理业务和密钥对应关系,同时还要考虑高可用、多租户需求,情况会更复杂。
3、因此,如何实现密码卡的密钥扩容是本领域技术人员亟需解决的问题。
技术实现思路
1、有鉴于此,本发明提供了一种支持密码卡密钥扩容的方法及系统,相比常规的密码机调用模式通过增加控制中心,对密码卡划分逻辑分区,以及采用密码卡密钥物理索引寻址算法,解决密码卡密钥的扩容易用性问题,密钥扩容过程对上层应用无感,支持多租户功能,适用用云环境。
2、为了实现上述目的,本发明采用如下技术方案:
3、一种支持密码卡密钥扩容的方法,包括以下步骤:
4、步骤1:部署主节点密码机和备节点密码机,分别采集主节点密码机和备节点密码机的主机ip、密码卡容量信息;
5、步骤2:根据主机ip和密码卡容量信息,分别将主节点密码机和备节点密码机的密码卡划分为若干组密钥逻辑分区,为每一组密钥逻辑分区构建密钥分区表记录在控制中心中,主节点密码机的密钥分区表为主分区表,备节点密码机的密钥分区表为备分区表,并将所有密钥分区表标记为空闲状态;
6、步骤3:控制中心接收租户应用接入申请,管理员操作控制中心根据租户应用接入申请对应的租户id为租户应用生成访问凭证;
7、步骤4:控制中心接收租户密钥空间申请,控制中心查询空闲状态的密钥分区表,根据租户密钥空间申请为租户分配空闲状态主分区表和备分区表,并将分配的密钥分区表标记为已分配状态;
8、步骤5:为租户应用服务器的sdk配置租户访问凭证,启动应用程序调用sdk对租户访问凭证进行验证和解析,生成处理请求;
9、步骤6:控制中心接收处理请求,并根据分配的密钥分区表按照设定的优先规则采用密码卡密钥物理索引寻址算法确定实际访问的主机ip和密钥物理索引,主机不可用情况下访问备机,根据理密钥物理索引修改处理请求,并将修改后的处理请求发送至主机ip对应的密码机完成密码运算。
10、优选的,步骤2中对密码卡进行逻辑分区,每个密码卡划分为若干组密钥逻辑分区,为租户动态分配密钥逻辑分区;在每个密钥逻辑分区内标识分配的租户id;将主分区表和备分区表记录至控制中心的数据库中。
11、优选的,步骤4中在控制中心的数据库中查找符合租户密钥空间申请的空闲状态的主分区表和备分区表,并标记为已分配状态,根据密钥分区表为租户分配主节点密码机的密钥逻辑分区和备节点密码机的密钥逻辑分区以实现高可用。
12、优选的,租户访问凭证以文件形式配置在固定目录中,sdk从固定目录读取租户访问凭证。
13、优选的,步骤5的具体过程包括:
14、步骤51:为租户应用服务器的sdk配置租户访问凭证;
15、步骤52:启动应用程序,应用程序调用sdk对租户访问凭证进行验证和解析,解析出租户id;
16、步骤53:sdk根据租户id、密钥索引和应用程序的其他数据生成处理请求发送至控制中心;其他数据包括算法和应用程序产生的数据。
17、优选的,步骤6的具体过程包括:
18、步骤61:控制中心的加密请求收发模块接收处理请求;
19、步骤62:控制中心的加密请求解析模块解析处理请求,解析出租户id、密钥索引及其它数据;
20、步骤63:加密请求解析模块根据密钥索引和分配的密钥分区表按照设定的优先规则采用密码卡密钥物理索引寻址算法,确认实际要访问的主机ip和密钥物理索引;
21、步骤64:加密请求解析模块将处理请求中的密钥索引修改为实际要访问的密钥物理索引,控制中心的加密请求转发模块将修改后的处理请求发送到主机ip对应的实际要访问的密码机;
22、步骤65:密码机根据密钥物理索引在密码卡中查找对应的目标密钥逻辑分区,调用目标密钥逻辑分区中的密钥完成密码运算生成处理数据,并将处理数据经控制中心反馈至应用程序。
23、优选的,密码卡密钥物理索引寻址算法包括以下步骤:
24、步骤631:取密钥索引中前n bit位,转化为整数,获得租户id;n为设定的租户id位数;
25、步骤632:取密钥索引中[n,32-m-1]区间的32-(m+n)bit位,转化为整数,获得逻辑分区id;m为租户逻辑索引位数;
26、步骤633:以租户id和逻辑分区id为查询条件按照设定的优先规则从分配的密钥分区表中查询该租户匹配的密钥分区表,根据匹配的密钥分区表对应的主机ip定位密钥在哪台密码机上;优先规则为优先选用主分区表,如果主分区表指向的主节点密码机不可用(宕机或网络异常等情况),则使用备用分区表;
27、步骤634:取密钥索引中后m bit位,转化为整数,获得租户逻辑索引index,从步骤733中查询的密钥分区表中获取密码卡密钥逻辑分区id,计算获得密钥物理索引;计算公式为:
28、(密码卡密钥逻辑分区id-1)*2^m+index。密码卡密钥逻辑分区id是卡实际逻辑分区id。
29、一种支持密码卡密钥扩容的系统,包括租户应用服务器、控制中心、主节点密码机和备节点密码机;
30、主节点密码机和备节点密码机的密码卡分别被划分逻辑分区,为每一组逻辑分组构建密钥分区表记录在控制中心;主节点密码机或备节点密码机根据处理请求完成密码运算;
31、租户应用服务器包括应用程序和sdk;租户应用服务器为租户提供租户访问凭证并根据密钥分区表为租户分配逻辑分区;应用程序使用密钥索引调用sdk对租户访问凭证进行验证和解析,生成处理请求;
32、控制中心,接收处理请求,并根据分配的逻辑分区的密钥分区表按照设定的优先规则采用密码卡密钥物理索引寻址算法确定实际访问的主机ip和密钥物理索引,根据密钥物理索引修改处理请求,并将修改后的处理请求发送至主机ip对应的密码机。
33、优选的,控制中心还包括数据库、加密请求收发模块、加密请求解析模块和加密请求转发模块;数据库记录密钥分区表;加密请求收发模块接收处理请求;加密请求解析模块解析处理请求,解析出租户id、密钥索引及其它数据,根据密钥索引和密码卡密钥物理索引寻址算法确认实际要访问的主机ip和密钥物理索引,根据密钥物理索引修改处理请求;加密请求转发模块将修改后的处理请求发送至主机ip对应的密码机。
34、经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种支持密码卡密钥扩容的方法及系统,增加了控制中心,对密码卡做了逻辑分区划分,在控制中心处理租户的加密请求时还采用密码卡密钥物理索引寻址算法在逻辑分区中动态查询密钥,提高了密码卡密钥扩容的易用性,密钥扩容过程对上层应用无感知,由于逻辑分区划分使得密码机支持多租户模式,适用于云环境;另外,同时部署主节点密码机和备节点密码机,使得本发明支持主备模式,实现服务高可用。