一种基于sqlite的密钥管理方法技术

技术编号:35444883 阅读:16 留言:0更新日期:2022-11-03 11:57
本发明专利技术涉及密钥管理技术领域,且公开了一种基于sqlite的密钥管理方法,该方法具体包括密钥创建管理、密钥存储、密钥完整性自测、密钥调用;密钥调用流程:使用密码模块对外安全API接口调用SM2算法对数据加密,密码模块根据对应Index密钥索引从数据库中检索密钥对,并提取该密钥对的hash值,将检索到的密钥对进行sm3Hash运算,通过则可继续使用密钥对数据进行加密操作。该基于sqlite的密钥管理方法为一种基于sqlite的密钥管理机制,对于密钥创建—>存储—>应用这整个流程形成了一个可持续的管理体系,且实现了密钥自检功能对密钥的完整性和功能性做到了保障,相较于一般的硬件加密卡拥有更大容量的密钥存储空间,且实现了密钥的安全存储。的安全存储。的安全存储。

【技术实现步骤摘要】
一种基于sqlite的密钥管理方法


[0001]本专利技术涉及密钥管理术领域,尤其涉及一种基于sqlite的密钥管理方法。

技术介绍

[0002]随着社会信息化的进程加快,为了保障信息安全,密码技术在日常生活中使用的愈加频繁,为了满足日益繁多的密码使用需求,也为了能够提供安全便捷的密码技术,各种基于不同平台、不同应用场景的密码模块层出不穷。然而,对于密码模块而言,其提供的密码功能或多或少都会涉及到一个重要的敏感安全参数“密钥”,为了保障密码模块自身的安全可靠性,也为了保障模块提供密码功能的安全可靠性,妥善管理密码模块产生“密钥”是重中之重。常见的密钥管理通常是通过存储于加密介质中,如:软件加密模块通常存储于加密数据库或加密磁盘中,硬件加密模块通常存储于加密芯片中。
[0003]目前常见的密码模块所提供的密钥管理流程大多仅仅考虑密钥存储的安全性,对于密钥创建—>存储—>应用,这整个流程没有形成一个可持续的管理体系,且对于密钥自身的安全自检也有缺失,而常见的硬件加密卡存在存储密钥空间有限的问题。

技术实现思路

[0004]针对现有技术的不足,本专利技术提供了一种基于sqlite数据库,适用于软件密码模块或混合密码模块的可持续,安全可靠的密钥管理机制,并能够支持多种不同类型的密钥管理,用于解决上述现有技术中存在的技术问题。
[0005]为实现适用于软件密码模块或混合密码模块的可持续,安全可靠的密钥管理机制的目的,本专利技术提供如下技术方案:一种基于sqlite的密钥管理方法,该方法包括:密钥创建管理、密钥存储、密钥完整性自测、密钥调用;
[0006]密钥创建管理包括如下步骤:管理工具创建密钥;创建的密钥通过密钥功能自检;对密钥功能自检成功的秘钥进行hash运算;保存密钥和密钥的hash值;
[0007]密钥存储流程:第一步,通过加密卡生成一个16/32位随机数;第二步,获取的随机数作为CEK;第三步,使用CEK+sqlcipher加密数据库;第四步,检测加密卡内部KEK是否创建,没有创建,返回失败,创建,获取KEK的index值;第五步,通过index获取KEK密钥句柄;第六步,借助KEK对CEK加密;第七步,保存CEK;
[0008]密钥完整性自测包括如下步骤:密钥模块启动;密钥完整性测试;失败,密码模块初始化失败,不能继续执行;成功,密码模块功能正常运行;
[0009]密钥调用流程:使用密码模块对外安全API接口调用SM2算法对数据加密,密码模块根据对应Index密钥索引从数据库中检索密钥对,并提取该密钥对的hash值,将检索到的密钥对进行sm3Hash运算,运算结果与之前提取的密钥对hash值比对,比对失败,密钥完整性检测不通过,密钥失效并结束该操作要求用户使用管理工具重新生成密钥对,比对成功则对密钥对进行功能自检,再此案例中进行加解密操作,故执行加解密功能自检,失败密钥功能有误,密钥失效并结束该操作要求用户使用管理工具重新生成密钥对,通过则可继续
使用密钥对数据进行加密操作。
[0010]可选地,所述密钥创建管理步骤中,密钥功能自检失败,显示密钥创建失败。
[0011]可选地,所述密钥调用流程时,需确认已使用管理工具合法生成相应的密钥,并记录下对应的index值,如index下不存在密钥对,调用执行步骤1会返回相应错误。
[0012]可选地,所述密钥创建管理步骤中,保存密钥和密钥的hash值储存于加密数据库。
[0013]可选地,所述密钥存储流程中第三步密钥存储流程使用CEK+sqlcipher加密数据库存储于sqlite3中。
[0014]可选地,所述密钥存储流程中第七步,保存CEK并储存文件系统。
[0015]与现有技术相比,本专利技术提供了一种基于sqlite的密钥管理方法,具备以下有益效果:
[0016]其一,该基于sqlite的密钥管理方法,实现了一种基于sqlite数据库,适用于软件密码模块或混合密码模块的可持续,安全可靠的密钥管理机制。并能够支持多种不同类型的密钥管理。
[0017]其二,该基于sqlite的密钥管理方法为一种基于sqlite的密钥管理机制,对于密钥创建—>存储—>应用这整个流程形成了一个可持续的管理体系,且实现了密钥自检功能对密钥的完整性和功能性做到了保障,相较于一般的硬件加密卡拥有更大容量的密钥存储空间,且实现了密钥的安全存储。
附图说明
[0018]图1为本专利技术密钥创建流程示意图;
[0019]图2为本专利技术密钥存储流程示意图;
[0020]图3为本专利技术密钥完整性自测流程示意图;
[0021]图4为本专利技术密钥调用流程示意图。
具体实施方式
[0022]为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0023]实施例1
[0024]为了便于理解,请参阅图1至图4,本专利技术提供的一种基于sqlite的密钥管理方法的一个实施例,该具体方法包括密钥创建管理、密钥存储、密钥完整性自测、密钥调用;
[0025]密钥创建管理包括如下步骤:管理工具创建密钥;创建的密钥通过密钥功能自检;对密钥功能自检成功的秘钥进行hash运算;保存密钥和密钥的hash值;
[0026]密钥存储流程:第一步,通过加密卡生成一个16/32位随机数;第二步,获取的随机数作为CEK;第三步,使用CEK+sqlcipher加密数据库;第四步,检测加密卡内部KEK是否创建,没有创建,返回失败,创建,获取KEK的index值;第五步,通过index获取KEK密钥句柄;第六步,借助KEK对CEK加密;第七步,保存CEK;
[0027]密钥完整性自测包括如下步骤:密钥模块启动;密钥完整性测试;失败,密码模块
初始化失败,不能继续执行;成功,密码模块功能正常运行;
[0028]密钥调用流程:使用密码模块对外安全API接口调用SM2算法对数据加密,密码模块根据对应Index密钥索引从数据库中检索密钥对,并提取该密钥对的hash值,将检索到的密钥对进行sm3Hash运算,运算结果与之前提取的密钥对hash值比对,比对失败,密钥完整性检测不通过,密钥失效并结束该操作要求用户使用管理工具重新生成密钥对,比对成功则对密钥对进行功能自检,再此案例中进行加解密操作,故执行加解密功能自检,失败密钥功能有误,密钥失效并结束该操作要求用户使用管理工具重新生成密钥对,通过则可继续使用密钥对数据进行加密操作。
[0029]密钥创建管理步骤中,密钥功能自检失败,显示密钥创建失败。
[0030]密钥调用流程时,需确认已使用管理工具合法生成相应的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于sqlite的密钥管理方法,其特征在于:该方法具体包括密钥创建管理、密钥存储、密钥完整性自测、密钥调用;密钥创建管理包括如下步骤:管理工具创建密钥;创建的密钥通过密钥功能自检;对密钥功能自检成功的秘钥进行hash运算;保存密钥和密钥的hash值;密钥存储流程:第一步,通过加密卡生成一个16/32位随机数;第二步,获取的随机数作为CEK;第三步,使用CEK+sqlcipher加密数据库;第四步,检测加密卡内部KEK是否创建,没有创建,返回失败,创建,获取KEK的index值;第五步,通过index获取KEK密钥句柄;第六步,借助KEK对CEK加密;第七步,保存CEK;密钥完整性自测包括如下步骤:密钥模块启动;密钥完整性测试;失败,密码模块初始化失败,不能继续执行;成功,密码模块功能正常运行;密钥调用流程:使用密码模块对外安全API接口调用SM2算法对数据加密,密码模块根据对应Index密钥索引从数据库中检索密钥对,并提取该密钥对的hash值,将检索到的密钥对进行sm3Hash运算,运算结果与之前提取的密钥对hash值比对,比对失败,密钥完整性检测不通过,密钥失效并结束该操作要求用户使用管理...

【专利技术属性】
技术研发人员:谢宇星岳佳圆宋俊涛边秀宁孔金珠杨诏钧李蕾于珊珊
申请(专利权)人:麒麟软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1