一种基于国密SM4算法的数据库数据加密系统的制作方法

专利查询11月前  71


一种基于国密sm4算法的数据库数据加密系统
技术领域
1.本发明涉及数据管理领域,具体为一种基于国密sm4算法的数据库数据加密系统。


背景技术:

2.随着网络的普及与发展,基于数据库技术的网上应用越来越多为客户提供服务。数据库技术在给用户带来便捷应用的同时也带来了许多问题,其中敏感信息安全问题尤其突出。数据库加密技术是保证存放在数据库中敏感信息安全性的一种有效手段。
3.目前国内外的应用采用了大量的密码算法和协议。密码算法大多是基于算法的密码强度、加解密速度及所需空间大小这三点来设计的,并没有充分考虑加密机制的实施对整个数据库系统的功能及安全效率的影响,并且很多密码算法是采用非自主可控的国际算法,算法本身的安全性和机密性得不到切实的保障。
4.数据库数据存储安全存在如下问题:(1)存储层的明文泄露:数据的私密性没有保障;文件采用明文方式存储在存储介质上,在数据使用或数据库运维时,都会有数据泄露的风险。
5.(2)外部窃取:黑客可能通过sql注入、绕行等攻击手段,发动数据攻击及窃取敏感数据。
6.(3)数据库业务影响:普通数据模糊处理,对数据库数据检索、模糊查询、数据恢复等具有致命影响,同时掌握一定规律即可破解。
7.(4)密钥安全:传统数据加密会带来密钥管理的任务,不同数据库的加密密钥在数据库侧明文存储,导致存在大量分散的密钥,难以管理和更新,如果密钥泄漏,则会导致数据泄漏;如果密钥丢失,则会导致数据永远不会再被解密。
8.(5)国家政策:用于强身份认证、数据加解密的密码算法应符合国家密码管理局等相关部委制定的政策、法规,以保证系统服务的安全性。
9.基于上述问题,需要针对数据库系统中敏感数据寻找到一种基于国密算法的数据库数据加密系统。


技术实现要素:

10.本发明的目的在于提供一种基于国密sm4算法的数据库数据加密系统,以解决上述背景技术中提出的问题。
11.为实现上述目的,本发明提供如下技术方案:一种基于国密sm4算法的数据库数据加密系统,包括为数据库数据提供加解密操作的透明加密组件和数据库加密系统,所述数据库加密系统由密钥管理模块、基于国产密码sm4算法的密码运算模块以及管理控制模块组成;所述透明加密组件即安装在数据库实例上的数据库加密中间件,通过ssl通道与数据库加密系统进行交互,调用数据库加密系统的加解密运算能力,结合密钥完成数据库中数据列的加解密操作;
还包括密管用户,是数据库加密系统的管理用户,有权限建立数据库加密系统与数据库实例间连接及透明加密组件的通信;当数据库用户需要对数据库中的字段进行加解密操作时,需要透明加密组件与数据库加密系统进行连接,需使用密管用户调用数据库加密系统的功能实现数据库的目标数据完成加解密操作;具体业务流程如下:s1、针对需要加密的数据库侧安装数据加密中间件,并建立数据库服务与数据库加密系统中用户的映射关系;s2、在数据库加密系统中创建数据库实例对应的密管用户,仅密管用户可以创建数据库加密系统与数据库实例间通信;s3、密管用户可以在数据库加密系统中创建该数据库实例链接操作,获取数据库的用户及用户下的用户表/列,确保数据库用户具备调用数据加密系统中功能应用的权限;s4、当数据库用户选中需加密的数据列,调用加密中间件执行透明加密操作时,加密的数据列每列将自动生成一个数据密钥data key,该加密列的数据密钥data key使用数据库加密系统提供主密钥master key加密后保存在数据库的数据字典中;s5、操作完成后,数据以sm4算法加密后密文形式存储在数据库表空间,数据密钥data key从数据库缓存删除,在数据字典中只保留数据密钥data key的密文;s6、针对读取加密后数据库数据解密过程与加密相似的情况,通过主密钥解密在数据库的数据字典中每个加密列产生的数据密钥,将数据列解密后进行读取应用。
12.进一步的,步骤s2中,密管用户内密钥默认仅由该数据库实例使用。
13.进一步的,所述的一种基于国密sm4算法的数据库数据加密系统,其数据交互流程包括如下具体步骤:a、首先在数据库侧部署加密组件,针对数据库、加密组件与数据库加密系统,建立正常的通信服务;b、数据库加密系统,对加密组件进行管理,获取数据库用户与表名、表字段结构化信息、生成数据字典,并生成主密钥master key;c、数据库用户发起数据请求,由加密组件获取数据库加密系统中主密钥master key;d、针对数据表中每个数据列生成数据密钥,加密组件对请求数据进行加密处理;e、加密组件将每列数据以密文方式保存到数据库;保存成功后返回消息到加密组件;f、由加密组件将数据保存成功的消息,返回给数据库用户;g、加密组件将数据密钥data key加密后,以密文方式保存到数据库的数据字典表;h、解密过程与加密过程相反,数据库用户通过与加密组件交互中,当加密组件识别查询到需要解密的数据,自动使用加密密钥进行解密,获取主密钥master key+数据字典中数据密钥data key,之后将数据返回给数据库用户。
14.与现有技术相比,本发明的有益效果是:1、采用国内自主可控的sm4算法的透明加解密组件,无需对应用程序、基础设施、业务结构进行更改就能实现加密保护,部署和使用不需要考虑额外的因素。
15.2、系统支持密钥更新、转加密功能,数据库管理员能够不关闭系统服务即可对加
密数据密钥进行定期、就地的转换。
16.3、系统采用密钥存储与数据存储分离方式,确保密钥的生命周期和数据库底层静态数据的安全。
17.3、本发明采用数据机密性和完整性高的sm4国产密码算法,符合公安部、国家密码管理局等相关部委制定的政策法规,算法安全强度高,算法安全性得到国家认可。
18.4、本发明避免了数据库原生加密方案对所有用户完全透明,没有单独的权限控制,无法针对不同用户授予不同的访问权限的问题;国密sm4算法的数据库加密系统支持基于加密的权限控制,权限控制通过数据库加密系统里配置和验证,独立于数据库系统,实现细粒度权限控制,防止高权限用户或普通用户越权访问敏感数据。
19.5、本发明基于透明化服务的理念,提供加密策略配置,无需对应用程序、基础设施、业务结构进行更改就能实现数据库敏感数据的机密性、完整性保护,用户操作简便,加密数据直观。
20.6、本发明采用集中式的密钥管理机制,所有加密密钥通过数据库加密系统集中管理,并通过数据库加密系统内部的专用密钥管理模块加密后存储,简化了密钥的管理,保证了密钥生命周期的安全。
21.7、本发明支持密文索引,字段被加密后,普通索引将失效,通过在加密字段上建立密文索引,使得以该字段为查询条件时不再需要全表解密,极大提升检索效率。
附图说明
22.图1为本发明的透明模式加密流程图;图2为本发明的数据交互流程图;图3为本发明具体实施例中的建设方案示意图;图4为本发明具体实施例中的企业4a登录认证加密的具体步骤。
具体实施方式
23.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.请参阅图1,本发明提供一种技术方案:一种基于国密sm4算法的数据库数据加密系统,包括为数据库数据提供加解密操作的透明加密组件和数据库加密系统,所述数据库加密系统由密钥管理模块、基于国产密码sm4算法的密码运算模块以及管理控制模块组成;所述透明加密组件即安装在数据库实例上的数据库加密中间件,通过ssl通道与数据库加密系统进行交互,调用数据库加密系统的加解密运算能力,结合密钥完成数据库中数据列的加解密操作;还包括密管用户,是数据库加密系统的管理用户,有权限建立数据库加密系统与数据库实例间连接及透明加密组件的通信;当数据库用户需要对数据库中的字段进行加解密操作时,需要透明加密组件与数据库加密系统进行连接,需使用密管用户调用数据库加密系统的功能实现数据库的目标数据完成加解密操作;具体业务流程如下:
s1、针对需要加密的数据库侧安装数据加密中间件,并建立数据库服务与数据库加密系统中用户的映射关系;s2、在数据库加密系统中创建数据库实例对应的密管用户,仅密管用户可以创建数据库加密系统与数据库实例间通信;s3、密管用户可以在数据库加密系统中创建该数据库实例链接操作,获取数据库的用户及用户下的用户表/列,确保数据库用户具备调用数据加密系统中功能应用的权限;s4、当数据库用户选中需加密的数据列,调用加密中间件执行透明加密操作时,加密的数据列每列将自动生成一个数据密钥data key,该加密列的数据密钥data key使用数据库加密系统提供主密钥master key加密后保存在数据库的数据字典中;s5、操作完成后,数据以sm4算法加密后密文形式存储在数据库表空间,数据密钥data key从数据库缓存删除,在数据字典中只保留数据密钥data key的密文;s6、针对读取加密后数据库数据解密过程与加密相似的情况,通过主密钥解密在数据库的数据字典中每个加密列产生的数据密钥,将数据列解密后进行读取应用。
25.进一步的,步骤s2中,密管用户内密钥默认仅由该数据库实例使用。
26.如图2所示,所述的一种基于国密sm4算法的数据库数据加密系统,其数据交互流程包括如下具体步骤:a、首先在数据库侧部署加密组件,针对数据库、加密组件与数据库加密系统,建立正常的通信服务;b、数据库加密系统,对加密组件进行管理,获取数据库用户与表名、表字段结构化信息、生成数据字典,并生成主密钥master key;c、数据库用户发起数据请求,由加密组件获取数据库加密系统中主密钥master key;d、针对数据表中每个数据列生成数据密钥,加密组件对请求数据进行加密处理;e、加密组件将每列数据以密文方式保存到数据库;保存成功后返回消息到加密组件;f、由加密组件将数据保存成功的消息,返回给数据库用户;g、加密组件将数据密钥data key加密后,以密文方式保存到数据库的数据字典表;h、解密过程与加密过程相反,数据库用户通过与加密组件交互中,当加密组件识别查询到需要解密的数据,自动使用加密密钥进行解密,获取主密钥master key+数据字典中数据密钥data key,之后将数据返回给数据库用户。
27.本方案的透明加密形式具有如下特点:采用国密sm4算法,sm4相较等算法更安全、可靠、合规,兼容性高,最大程度保证数据安全。
28.透明加密通过控制加密解密的密钥权限,增设安全管理员,只有同时经过dba和安全管理员联合授权的用户才能以明文的形式看到加密后的数据,从而降低dba权限过高造成的泄密风险。
29.基于数据库加密系统的数据库透明加密技术,无需对应用程序、基础设施、业务结构进行更改就能实现加密保护,部署和使用不需要考虑额外的因素,且整个加解密过程对
于用户来说是透明的。
30.密钥完全由数据库加密系统由符合国家密码管理局的认证硬件保护,可通过硬件保证密钥防窃取。另外,数据库加密系统与数据库(数据加密中间件)之间的通信可基于ssl协议,保证数据密钥在传输过程中的安全性。
31.具体实施例:目前企业现存4a登录模式,存在明文数据交互传输,一旦数据被窃取,后货将会出现严重的安全事故,此外4a是众多业务系统、主机、数据库等资源的第一道关卡,因此针对4a登录认证做好数据加密再通过网络传输可以杜绝数据被窃取后的安全隐患,通过指定的sm4算法+密钥(key)进行全方位的守护。
32.如图3所示,其建设方案如下:1、建设数据加密安全管理系统,提供封装加密算法sdk包、加密计算密钥管理、密钥策略管理、sdk监控、涉密信息管理、后台监控等功能;2、通过数据加密安全管理系统创建sdk和算法密钥,将算法密钥与sdk绑定;3、数据加密安全管理建立密钥管理策略,可定期轮换密钥或更改密钥;4、sdk适配在4a数据库;5、通过sdk对数据进行加解密;6、对sdk的进行监控维护,保证功能性能正常。
33.具体解决方案为:(一)企业4a登录认证加密如图4所示,企业4a登录认证加密的具体步骤如下:1、用户打开登录界面,输入账号(手机号)、密码,获取动态验证码;2、下发动态验证码至终端;3、输入动态验证码递交进行验证;4、数据输入sdk调出缓存密钥进行数据加密;5、通过sm4算法加密后数据进行传输;6、通过查询数据进行验证;7、返回约定表示是至终端侧。
34.(二)数据存储静态加密针对4a重要数据和数据库关键字段,首先调用国密sm4或sm3加密算法将数据加密成密文,然后将返回的源文与密文分别存储在加密数据库中,数据存储保护将对4a平台重要的数据资源如:公文文件、审核过程、表单信息类数据的数据库字段进行国产密码算法加密存储。
35.保护数据完整性,透明数据库存储数据明文格式,下发访问控制策略与采用sm4加密算法加密,双重安全保障,管理员无法直接查看透明数据库源数据。
36.保护数据安全性,采用中间密文数据库,对重要数据字段、列表、库表进行密文加密,改变数据存储结构,数据安全性、保密性更高。
37.(三)数据存储动态加密动态加密具有很大的灵活性,可以只加密某些核心的列或字段保护系统敏感级别较高的数据,数据库中存储的数据都是密文,可以有效的阻止非法访问用户或黑客通过非
法手段绕开安全策略直接访问数据库用户静态数据存储文件的数据。
38.具体流程如下:1、首先确定需要加密的数据库字段及数据;2、应用获取列的属性,判断使用格式转换;3、将添加字段对应的密文属性,字段长度改为原先长度+64,最高不能超过数据库自身字段最大长度;4、应用获取数据库需加密字段的信息,将需要加密的数据导入密码机;5、密码机使用内部密钥,对数据进行加密,返回密文;6、数据在密码机完成加密后,将密文返回至客户服务;7、应用服务将密文插入对应的密文字段中;8、校验对应明文及密文信息,校验成功,删除明文信息。
39.预期成效:建立sdk&数据加密安全管理系统:sdk由数据加密安全管理进行生成,sdk同时集成国密sm 加密算法,实现通过sdk对数据进行加密、解密功能;sdk提供加解密接口调用,业务系统通过调用加解密接口,传入待加解密数据(字段),sdk自动验证身份获取密钥,对数据进行加解密,输出加解密后数据(字段),上解加解密日志;数据加密安全管理系统,对sdk进行生成及管理的平台,对sdk进行监控、统计、更新等功能,同时支持sdk密钥的创建、维护、轮换、备份、等功能。
40.数据加密安全管理系统页面中包括:sdk管理:根据应用系统信息必填字段添加、修改、删除应用系统,添加的应用系统会存储到应用系统汇总界面中,查询记录,默认每页显示10条应用系统信息,用户可以调整每页显示记录,可选择查看应用系统的详细数据。删除应用系统后的应用系统数据进行归档处理,停用sdk,解除密钥绑定等操作支持多选删除应用系统。
41.sdk会话:根据应用系统信息必填字段添加、修改、删除应用系统,添加的应用系统会存储到应用系统汇总界面中,查询记录,默认每页显示10条应用系统信息,用户可以调整每页显示记录,可选择查看应用系统的详细数据。删除应用系统后的应用系统数据进行归档处理,停用sdk,解除密钥绑定等操作支持多选删除应用系统。
42.密钥信息:可按照格式添加、修改、删除、查询密钥信息,可根据密钥导入、导出模板批量添加、导出密钥信息。可根据密钥信息修改密钥状态,修改状态为(启用、停用);对密钥进行分发、还原、归档、归档恢复等操作进行管理,防止信息泄露。
43.系统管理:通过sdk用户管理,实现sdk用户绑定密钥策略和密钥信息,实现sdk版本的下载和管理。
44.系统监控:用户可以通过连通性测试检查密码设备网络是否关联正常;检测密码设备在服务器的连通情况,确保密码设备运行正常。
45.试点预期成效:数据库数据的透明加密,在不改变数据源文的情况下进行数据托管和保护,实际加密数据的是数据密钥,数据密钥通过主密钥保护。
46.数据库密文加密,在改变数据明文状态的情况下对数据库数据的列、表、字段进行密问加密,加密数据存储与密文数据库并禁以明文形式出现,密文的数据加密密钥与加密后的数据一块存储,通过4a应用侧调用sdk解密工具包进行解密。
47.数据加密及效果:4a梳理的加密字段可以通过两种方式进行管理:(1)sdk可以获取数据库表结构情况,并在数据加密安全管理系统进行数据库表的加密配置,通过表和字段,选择需要加密的信息内容(2)通过sdk加密的中间密文表的字段将按照国密sm4算法进行加密,在数据库以密文形式保存,运维人员仅能通过密文数据库查看。
48.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

技术特征:
1.一种基于国密sm4算法的数据库数据加解密系统,其特征在于,包括为数据库数据提供加解密操作的透明加密组件和数据库加密系统,所述数据库加密系统由密钥管理模块、基于国产密码sm4算法的密码运算模块以及管理控制模块组成;所述透明加密组件即安装在数据库实例上的数据库加密中间件,通过ssl通道与数据加解密系统进行交互,调用数据库加密系统的加解密运算能力,结合密钥完成数据库中数据列的加解密操作;还包括密管用户,是数据库加密系统的管理用户,有权限建立数据库加密系统与数据库实例间连接及透明加密组件的通信;当数据库用户需要对数据库中的字段进行加解密操作时,需要透明加密组件与数据库加密系统进行连接,需使用密管用户调用数据库加密系统的功能实现数据库的目标数据完成加解密操作;具体业务流程如下:s1、针对需要加密的数据库侧安装数据加密中间件,并建立数据库服务与数据库加密系统中用户的映射关系;s2、在数据库加密系统中创建数据库实例对应的密管用户,仅密管用户可以创建数据库加密系统与数据库实例间通信;s3、密管用户可以在数据库加密系统中创建该数据库实例链接操作,获取数据库的用户及用户下的用户表/列,确保数据库用户具备调用数据加密系统中功能应用的权限;s4、当数据库用户选中需加密的数据列,调用加密中间件执行透明加密操作时,加密的数据列每列将自动生成一个数据密钥data key,该加密列的数据密钥data key使用数据库加密系统提供主密钥master key加密后保存在数据库的数据字典中;s5、操作完成后,数据以sm4算法加密后密文形式存储在数据库表空间,数据密钥data key从数据库缓存删除,在数据字典中只保留数据密钥data key的密文;s6、针对读取加密后数据库数据解密过程与加密相似的情况,通过主密钥解密在数据库的数据字典中每个加密列产生的数据密钥,将数据列解密后进行读取应用。2.根据权利要求1所述的一种基于国密sm4算法的数据库数据加解密系统,其特征在于:步骤s2中,密管用户内密钥默认仅由该数据库实例使用。3.根据权利要求1所述的一种基于国密sm4算法的数据库数据加解密系统,其特征在于:其数据交互流程包括如下具体步骤:a、首先在数据库侧部署加密组件,针对数据库、加密组件与数据库加密系统,建立正常的通信服务;b、数据库加密系统,对加密组件进行管理,获取数据库用户与表名、表字段结构化信息、生成数据字典,并生成主密钥master key;c、数据库用户发起数据请求,由加密组件获取数据库加密系统中主密钥master key;d、针对数据表中每个数据列生成数据密钥,加密组件对请求数据进行加密处理;e、加密组件将每列数据以密文方式保存到数据库;保存成功后返回消息到加密组件;f、由加密组件将数据保存成功的消息,返回给数据库用户;g、加密组件将数据密钥data key加密后,以密文方式保存到数据库的数据字典表;h、解密过程与加密过程相反,数据库用户通过与加密组件交互中,当加密组件识别查询到需要解密的数据,自动使用加密密钥进行解密,获取主密钥master key+数据字典中数据密钥data key,之后将数据返回给数据库用户。

技术总结
本发明属于数据管理领域,具体公开了一种基于国密SM4算法的数据库数据加解密系统,包括为数据库数据提供加解密操作的透明加密组件和数据库加密系统,所述数据库加密系统由密钥管理模块、基于国产密码SM4算法的密码运算模块以及管理控制模块组成。本发明采用国内自主可控的SM4算法的透明加解密组件,无需对应用程序、基础设施、业务结构进行更改就能实现加密保护,部署和使用不需要考虑额外的因素;系统支持密钥更新、转加密功能,数据库管理员能够不关闭系统服务即可对加密数据密钥进行定期、就地的转换;采用密钥存储与数据存储分离方式,确保密钥的生命周期和数据库底层静态数据的安全。数据的安全。数据的安全。


技术研发人员:杨东
受保护的技术使用者:杨东
技术研发日:2021.11.30
技术公布日:2022/3/8

最新回复(0)