基于存储加密的数据库安全保密系统

来源:互联网 发布:韩国 核潜艇 知乎 编辑:程序博客网 时间:2024/05/16 14:14
摘要
本发明提供了一种基于存储加密的数据库安全保密系统。系统包括数据库加密服务器、数据库加密扩展组件、安全数据库访问接口和管理工具。数据库加密服务系统对所述数据库安全保密系统中所有数据进行加脱密,并集中实施安全控制与管理。数据库加密扩展组件提供与数据库加密服务系统和数据库管理系统的连接,还提供调用数据库加密服务系统上的密码服务功能来实现常规数据的加脱密。安全数据库访问接口为应用系统提供安全透明的数据库访问支持。管理工具是管理人员进行各项安全配置管理的工具。本发明提供符合数据库访问的接口标准;支持常规数据和大数据对象的透明加脱密;还为应用系统屏蔽了实现数据库安全保密功能的复杂细节。
权利要求(8)
1.基于存储加密的数据库安全保密系统,其特征在于:其包括数据库加密服务系统、 数据库加密扩展组件、安全数据库访问接口和管理工具;数据库加密服务系统运行在装有密码装置的加密服务器上,该服务系统对所述数据库安全保密系统中处理的数据进行加脱密,并集中实施安全控制与管理;数据库加密扩展组件注册到数据库管理系统中,该组件连接数据库加密服务系统和数据库管理系统,调用数据库加密服务系统上的密码服务功能实现常规数据的加脱密;安全数据库访问接口运行在应用系统进程空间,为应用系统提供安全透明的数据库访问支持,安全数据库访问接口一方面连接到数据库加密服务系统,另一方面连接到数据库管理系统;管理工具是管理人员进行各项安全配置管理的工具,可运行在管理控制台计算机上。
2.如权利要求1所述的数据库安全保密系统,其特征在于:管理工具包括密钥管理工具、系统管理工具、表加密管理工具和交互命令处理器;数据库加密服务系统提供系统管理角色、安全管理角色、审计管理角色;密钥管理工具对应密钥管理角色,用于密钥的生成、备份、恢复,解锁特权用户;安全管理角色负责对用户的锁定与解锁,对系统管理员和系统用户进行监督和控制;系统管理角色通过系统管理工具对全部用户和系统进行管理和维护; 审计管理角色负责审计日志的查询、分析和归档;表加密管理工具用于定义表中需要加密的列,同时可进行表中数据的查看、导入导出;交互命令处理器执行用户输入的SQL语句, 并显示执行结果。
3.如权利要求2所述的数据库安全保密系统,其特征在于:在对常规数据进行查询时, 将常规数据组成视图,并通过数据库加密扩展组件和数据库加密服务系统对常规数据进行加脱密,常规数据的加密通过视图上的触发器执行,常规数据的脱密通过视图执行;大数据对象的加脱密则在安全数据库访问接口中执行。
4.如权利要求1所述的数据库安全保密系统,其特征在于安全数据库访问接口包括:AD0DBC,该接口是供应用系统访问加密数据用的ODBC Driver ;ADJDBC,该接口是供应用系统访问加密数据用的JDBC Driver ;AD0LEDB,该接口是供应用系统访问加密数据用的OLE DB Provider。
5.如权利要求3所述的数据库安全保密系统,其特征在于表加密管理工具定义需要加密的列属性的过程如下:
5. 1)通过表加密管理工具将列加密定义写到列加密数据字典;
5. 2)创建一个存储加密数据的基表,保证表名未被使用,且不同于待加密表名;
5. 3)创建名为待加密表名的视图,从存储加密数据的基表取数据,若在选择出的列中, 涉及常规加密数据的,则在SELECT子句中调用解密函数解密;
5. 4)在视图上创建INSERT触发器,接收插入的明文数据,调用加密函数,将涉及的常规加密数据加密后,写入存储加密数据的基表;
5. 5)在视图上创建UPDATE触发器,接收更新的明文数据,调用加密函数,将涉及的常规加密数据加密后,写入存储加密数据的基表以覆盖原数据。
6.如权利要求5所述的数据库安全保密系统,其特征在于安全数据库访问接口对数据加脱密的步骤为:
6. 1)通过安全数据库访问接口对SQL进行词法和语法分析;
6. 2)比较列加密数据字典,判断SQL是否涉及加密大数据对象的更新或查询,若是对大数据对象进行更新,转至步骤6. 3),若是对大数据对象进行查询,转至步骤6. 4),其它情况直接交数据库管理系统执行;
6. 3)安全数据库访问接口通过数据库加密系统,将SQL参数中大数据对象对应的值加密为一新的大数据对象,并提交密文数据库保存;
6. 4)安全数据库访问接口通过数据库加密系统,将SQL结果集中大数据对象的值脱密为一新的大数据对象,并返回给应用系统。
7.如权利要求1〜6中任一项所述的数据库安全保密系统,其特征在于应用系统通过安全数据库访问接口连接到加密数据库的步骤为:首先安全数据库访问接口从应用系统获取或直接读取身份认证信息,并连接到数据库加密服务系统,请求系统对用户进行身份认证;如果身份认证失败,则给应用系统返回错误代码或抛出异常,停止连接过程;如果成功,则返回访问安全数据库的令牌;接下来安全数据库访问接口连接到数据库管理系统,并把该令牌作为参数调用数据库加密扩展组件的相关函数,使该组件连接到数据库加密服务系统。
8.如权利要求2、3、5、6中任一项所述的数据库安全保密系统,其特征在于交互命令处理器执行用户输入的SQL语句,并显示执行结果,其处理流程包括:用户输入完成SQL语句后,交互命令处理器对输入的SQL进行词法和语法分析,并判断是否是SELECT语句,如果是就从数据库取数据并以表格方式显示;如果不是就交数据库执行并显示执行的结果状态。

说明

基于存储加密的数据库安全保密系统

技术领域

[0001] 本发明属于计算机信息安全领域,特别是涉及数据库安全保密系统。 背景技术

[0002] 信息安全问题是影响信息化进程的重要因素之一。近年来,业界对信息安全的重要性有了很深的认识,采取了大量积极有效的措施,但都偏重于网络和操作系统的保护,对数据库中的信息实施直接保护的并不多。实际上,数据库是信息存放的仓库,其安全性是信息安全的核心,也是信息安全的最后一道防线。目前普遍采用的商品化数据库管理系统在用户身份验证、权限控制等方面一般不能满足安全级别要求比较高的系统需要,因此,这些系统经常在应用中采取一些安全增强的办法,比如对敏感数据进行加密。

[0003] 在应用中对敏感的数据库数据进行加密,可以防止因为网络、操作系统、数据库管理系统、存储介质出现安全问题导致的对数据库内容机密性和完整性的破坏,对提升数据库应用系统的安全性具有重要作用。但是在应用中对数据库内容进行加密会显著增加应用系统开发和维护的难度,也不适用于无法获得源代码的系统,应用范围受到很大限制。

发明内容

[0004] 本发明所要解决的技术问题是:提供一种基于存储加密的数据库安全保密系统, 本系统采用中间件,不用修改应用系统,提高了数据库的安全性。

[0005] 本发明所采用的技术方案是:基于存储加密的数据库安全保密系统,包括数据库加密服务系统、数据库加密扩展组件、安全数据库访问接口和管理工具;数据库加密服务系统运行在装有密码装置的加密服务器上,该服务系统对所述数据库安全保密系统中所有数据进行加脱密,并集中实施安全控制与管理;数据库加密扩展组件注册到密文数据库上运行的数据库管理系统中,该组件连接数据库加密服务系统和数据库管理系统,调用数据库加密服务系统上的密码服务功能实现常规数据的加脱密;安全数据库访问接口运行在应用服务器上运行的应用系统进程空间,为应用系统提供安全透明的数据库访问支持;管理工具是管理人员进行各项安全配置管理的工具,该工具运行在加密服务器上。

[0006] 本发明的优点:本发明提供符合数据库访问标准的接口,支持常规数据和大数据对象的透明加密。本发明为应用系统屏蔽了安全功能的复杂细节,使得应用系统无需修改就可以实现安全升级。本发明实现了安全功能的封装和隔离,达到了安全功能的应用无关和透明的效果,减少了安全功能对应用开发和维护的影响。

附图说明

[0007] 图1是本发明的安全数据库访问接口的示意图。

[0008] 图2是本发明的功能结构图。

[0009] 图3是本发明的系统总体结构图。

[0010] 图4是安全数据库访问接口中连接建立的流程图。[0011] 图5是安全数据库访问接口中SQL(结构化查询语言)处理流程图。

[0012] 图6是表加密管理工具中定义表加密的流程图。

[0013] 图7是交互命令处理器工作流程图。

具体实施方式

[0014] 本发明的设计思想:采用中间件技术,从数据库访问接口入手,通过提供安全的数据库访问接口,就可以截获应用系统对数据库的操作,然后根据操作的语义自动进行数据库加密。安全数据库访问接口遵循数据库访问接口的工业标准,这样,访问密文的应用系统就像访问明文一样访问数据库,应用系统不用修改,不会因为数据库内容的加密带来应用系统开发、维护难度和工作量的增加,没有源代码的应用系统也可以实施数据库内容加密。本发明还综合应用增强身份认证、访问控制、安全审计等安全措施,提升了数据库应用系统的安全性。普通数据库应用中,最底层为操作系统,操作系统操控数据库管理系统向应用系统提供数据库服务。操作系统可采用Wind0WS、LinUX或Unix,数据库管理系统可采用 Oracleλ SQLServerΛDB2 或 Sybase0

[0015] 为做到安全功能对应用系统的封装和隔离,实现应用系统对加密数据的透明访问,在应用系统和数据库管理系统间增加安全数据库访问接口(如图1),接管应用系统和数据库管理系统间的操作,然后根据操作的语义进行数据加密、访问控制、审计等安全处理。因为该接口符合数据库访问的工业标准,所以应用系统不需要修改。安全数据库访问接口运行在应用系统进程空间,在其内部不可能直接实现各种安全功能,因此需要一套系统来支持这些安全功能的实现。

[0016] 如图2和图3所示,本发明包括数据库加密服务系统、数据库加密扩展组件、安全数据库访问接口和管理工具。数据库加密服务系统运行在加密服务器上,密码装置为数据库加密服务系统提供密码支持。该服务系统对所述数据库安全保密系统中所有数据进行加脱密;并集中实施安全控制与管理,如用户身份的集中认证,针对用户数据的访问进行集中的访问控制和审计。数据库加密扩展组件注册到数据库管理系统中,该组件连接数据库加密服务系统和数据库管理系统,调用数据库加密服务系统上的密码服务功能实现常规数据的加脱密。数据库加密扩展组件是运行在数据库管理系统的进程空间的一系列加脱密函数,可在SQL中直接调用。安全数据库访问接口应用系统进程空间,为应用系统提供安全透明的数据库访问支持。安全数据库访问接口一方面连接到数据库加密服务使用其上的身份认证、访问控制、审计、数据加脱密等功能,另一方面连接到数据库管理系统,通过数据库管理系统进行数据库数据的读写。管理工具是管理人员进行各项安全配置管理的工具,可运行在管理控制台计算机上。

[0017] 管理工具包括密钥管理工具、系统管理工具、表加密管理工具和交互命令处理器。 管理工具中密钥管理和系统管理工具不涉及数据库中的数据,因此直接连接到数据库加密服务系统,而表加密管理工具和交互命令处理器因为涉及数据库中数据的操作,因此通过安全数据库访问接口连接到数据库加密服务和数据库管理系统。

[0018] 密钥管理工具用于密钥的生成、备份、恢复。密钥管理工具在创建密钥集时可以设置口令,这样只有知道该口令的人可以使用使用密钥管理工具对密钥进行管理和使用,相当于一个独立的密钥管理角色。系统设定,给用户授予管理角色导致的用户锁定必须由密钥管理角色解锁,这样可以防止其它管理员的串通带来的安全问题。

[0019] 数据库加密服务系统还提供系统管理角色、安全管理角色、审计管理角色。安全管理角色负责对用户的锁定与解锁,对系统管理员和系统用户进行监督和控制。系统管理角色通过系统管理工具对全部用户和系统进行管理和维护,如增加、删除、修改用户等,其操作导致用户的锁定。审计管理角色负责审计日志的查询、分析和归档;表加密管理工具用于定义表中需要加密的列,同时可进行表中数据的查看、导入导出;交互命令处理器执行用户输入的SQL语句,并显示执行结果。

[0020] 在对常规数据进行查询时,将常规数据组成视图,并通过数据库加密扩展组件和数据库加密服务系统对常规数据进行加脱密。视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图在数据库中并不是以数据值存储集形式存在,除非是索引视图。视图的行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。常规数据的加密通过视图上的触发器执行,即在视图的INSERT 和UPDATE触发器中,对相应列的内容调用加密函数加密后,再写入存储加密数据的基表中。常规数据的脱密通过视图执行,即在视图的SELECT子句中相应列的位置调用对应该类型的脱密函数。大数据对象的加脱密则在安全数据库访问接口中执行。

[0021] 如图6所示,表加密管理工具定义需要加密的列属性的过程如下:

[0022] 1)备份表中数据,开始定义需要加密的列属性;

[0023] 2)通过表加密管理工具将列加密定义写到列加密数据字典,列加密定义包括加密列名称、类型、长度、小数位、可否为空、缺省值;

[0024] 3)计算加密后各列类型和长度,创建一个存储加密数据的基表,保证表名未被使用,且不同于待加密表名;

[0025] 4)创建名为待加密表名的视图,从存储加密数据的基表取数据;若在选择出的列中,涉及常规加密数据的,则在SELECT子句中调用解密函数解密;

[0026] 5)在视图上创建INSERT触发器,接收插入的明文数据,调用加密函数,将涉及的常规加密数据加密后,写入存储加密数据的基表;

[0027] 6)在视图上创建UPDATE触发器,接收更新的明文数据,调用加密函数,将涉及的常规加密数据加密后,写入存储加密数据的基表以覆盖原数据。

[0028] 7)恢复表中数据。

[0029] 8)结束对需要加密的列属性的定义过程。

[0030] 安全数据库访问接口包括:

[0031 ] AD0DBC,该接口是供应用系统访问加密数据用的ODBC Driver (开放式数据库连接驱动);

[0032] ADJDBC,该接口是供应用系统访问加密数据用的JDBC Driver (Java数据库连接驱动);

[0033] AD0LEDB,该接口是供应用系统访问加密数据用的OLE DB Provider (对象链接嵌入式数据库接口)。

[0034] 在安全数据库访问接口中,首先要为应用系统提供连接到加密数据库的功能,然后是提供数据库数据访问服务。连接功能实现流程如图4所示,安全数据库访问接口从应用系统获取或直接读取身份认证信息,连接到数据库加密服务系统,请求系统对用户进行身份认证。如果身份认证失败(N),则给应用系统返回错误代码或抛出异常;如果成功(Y), 则返回访问安全数据库的令牌。接下来安全数据库访问接口连接到数据库管理系统,并把该令牌作为参数调用数据库加密扩展组件的相关函数,使该组件连接到数据库加密服务, 这样数据库加密扩展就可以调用数据库加密服务的功能进行常规数据的加脱密。

[0035] 如图5所示,安全数据库访问接口对数据加脱密的步骤为:

[0036] a)通过安全数据库访问接口对SQL进行词法和语法分析;

[0037] b)比较列加密数据字典,判断SQL是否涉及对大数据对象(LOB)的加密更新或查询,若是对大数据对象进行更新(INSERT或UPDATE),转至步骤c),若是对大数据对象进行查询(SELECT),转至步骤d),其它情况直接交给数据库管理系统执行;

[0038] c)安全数据库访问接口通过数据库加密系统,将SQL参数中大数据对象对应的值加密为一新的大数据对象,并提交密文数据库保存,最后获得执行结果代码,这样数据库中存储的就是加密的内容;

[0039] d)安全数据库访问接口通过数据库加密系统,将SQL结果集中大数据对象对的值脱密为一新的大数据对象,并返回给应用系统。

[0040] 交互命令处理器执行用户输入的SQL语句,并显示执行结果,其处理流程如图7所示。用户输入完成SQL语句后,选择执行按钮,命令处理器对输入的SQL进行词法和语法分析,并判断是否是SELECT语句,如果是(Y)就从数据库取数据并以表格方式显示;如果不是 (N)就交数据库执行并显示执行的结果状态,比如增加、更新、删除的数据行数等。因为命令处理器通过安全数据库访问接口访问数据,因此在其中不需要考虑数据加密问题和其它安全问题。

[0041] 实施例:

[0042] 用户登陆应用系统,向加密数据库存储须加密的数据。应用系统通过安全数据库访问接口、数据库加密服务系统进行身份验证,验证通过。然后再由数据库加密扩展组件中的加密函数调用数据库加密服务器中的密码装置对普通数据进行加密,由安全数据库访问接口对大数据对象进行加密。最后将加密后的数据通过数据库管理系统存入加密数据库。

[0043] 用户登陆应用系统,向加密数据库查询数据。应用系统通过安全数据库访问接口、 数据库加密服务系统进行身份验证,验证通过。然后再由数据库加密扩展组件中的脱密函数调用数据库加密服务器中的密码装置对普通数据进行脱密,由安全数据库访问接口对大数据对象进行脱密。最后将脱密后的数据提交给用户。


0 0
原创粉丝点击