CN101504706A - 数据库信息加密方法和系统 - Google Patents
数据库信息加密方法和系统 Download PDFInfo
- Publication number
- CN101504706A CN101504706A CNA2009100787815A CN200910078781A CN101504706A CN 101504706 A CN101504706 A CN 101504706A CN A2009100787815 A CNA2009100787815 A CN A2009100787815A CN 200910078781 A CN200910078781 A CN 200910078781A CN 101504706 A CN101504706 A CN 101504706A
- Authority
- CN
- China
- Prior art keywords
- encryption
- key
- data
- encryption device
- field
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种数据库信息加密方法和使用该方法的数据库信息加密系统,属于信息安全技术领域。本发明方法包括:通过密码设备单元加密数据表中的敏感字段,并为其创建指向加密后的数据表的同名视图;维护用户对密钥的使用权限,和加密所使用的密码设备单元、加密方式和密钥;对于有权限的用户,允许其顺利读取并修改加密信息;对于无权限的用户,读取加密信息时使用随机密钥错误解密,修改加密信息时则返回获取密钥失败信息。本发明系统包括一个安全管理主机和一个或多个数据库服务器主机,并设置抽象密码设备组件提供统一的加解密接口并调用一个或多个不同的密码设备单元实现加解密。本发明可用于数据库信息的加密。
Description
技术领域
本发明涉及数据库信息安全,具体地说,涉及一种数据库信息加密方法和使用该方法的数据库信息加密系统。属于信息安全技术领域。
背景技术
随着信息化进程的不断推进,信息资产成为了企业的核心资产之一,如何采用技术手段维护企业业务数据的安全性已成为企业普遍关注的问题。而作为数据存储和管理的核心部件,数据库系统的安全性更是引起的广泛的重视。
在配置了信息系统的企业中,通常会雇佣数据库管理员来进行数据库系统的维护和管理,这些超级用户拥有数据库中所有数据的控制权。然而,在现代企业业务流程中,数据库管理员仅是技术人员,而并非这些数据的所有者。一旦数据库管理员被收买,将企业的机密数据泄露出去,将对企业造成非常严重的损害。如何限制数据库管理员滥用权限成为信息系统应用中亟待解决的问题之一。
此外,存储介质的丢失也是企业信息系统的重要威胁之一。竞争对手可以通过窃取服务器磁盘等手段,获得存储介质,并进一步解析出敏感数据。
解决信息系统中敏感数据的机密性问题,其最有效手段就是进行加密。数据库管理系统厂商纷纷在产品中提供了相应的安全功能,现有DBMS产品中支持加密的包括Oracle、DB2和MS-SQL Server。下表1对各DBMS产品中的加密机制进行了列表对比。
表1:DBMS内部加密机制对比
名称 | 密钥管理特点 | 针对威胁 | 加密粒度 | 实现方法 |
Oracle | 完全由服务器管理,安全管理员操作 | 存储介质丢失 | 字段级 | 在磁盘操作过程加解密 |
DB2 | 由用户口令生成,存储口令提示 | 保护私人数据,非拥有者拒绝访问 | 字段级 | 扩展SQL语句和函数实现 |
SQLServer | 根密钥受操作系统保 | 保护私人数据, | 字段级 | 扩展SQL语句和函数实 |
护,由服务器管理,安全管理员操作 | 非拥有者拒绝访问 | 行级 | 现 |
通过对Oracle、DB2和SQL Server的分析不难发现,使用数据库管理系统所提供的加密机制实现敏感数据的机密性保护,存在着难以克服的缺点,主要体现在以下三个方面:
(1)对上层应用不透明,更新成本高。企业信息系统一旦投入使用,其生命周期往往很长,这主要是因为信息系统的造价较高,且业务数据模型基本稳定。若要在应用中增加对敏感数据的加密保护策略,除了需要采购支持加密功能的DBMS,还需对原有的应用层软件进行改造。由于数据库管理系统所提供的加密机制往往使用特殊的SQL语句,对上层应用的更改就不可避免,部署成本极高。
(2)密钥由数据库管理员管理,难以防范数据库管理员滥用权限。在oracle和sqlserver提供的加密机制之中,加解密密钥依赖于数据库管理员进行管理;DB2中虽然密钥是由用户口令经变化生成的,但用户口令也存储于数据库系统之内,数据库管理员依然可以通过获取用户口令再进一步的获取数据加解密密钥。使用数据库管理系统提供的加密机制,就无法避免密钥受到数据库管理员的控制。数据库管理员掌握着密钥,也就间接的掌握了敏感数据,如何限制数据库管理员对权限的滥用,成为难以解决的问题
(3)密钥和密文数据保存在同一服务器中,存储介质丢失风险大。由于库内加密模式的局限,用户用于加解密的密钥也依赖数据库系统进行管理。一旦攻击者获取了存储介质,就可以首先找出库内存储的密钥,然后对密文信息进行解密,存储介质丢失所引起的风险巨大。
发明内容
本发明的目的在于克服现有技术中存在的问题,提供一种数据库信息加密方法和使用该方法的数据库信息加密系统。
本发明所述数据库信息加密方法包括:
a)对于一个或多个数据库中的一个或多个数据表,使用相同或不同的密码设备单元,以相同或不同的密钥加密其中一个或多个敏感字段,并为其创建同名视图,所述视图指向加密后的数据表;
b)维护数据库用户对加密密钥的使用权限,以及各个经加密的敏感字段在加密时所使用的密码设备单元、加密方式和密钥;
c)用户请求读取经加密的数据表时,检查用户是否具有相应的敏感字段的密钥使用权限,若是,则取得并使用密钥以和所述加密方式相应的解密方式解密,用户获得正确的敏感字段信息;若否,则使用随机密钥以和所述加密方式相应的解密方式解密,用户获得经错误解密的敏感字段信息;所述随机密钥优选为和所述正确的密钥长度相同的由随机数生成的密钥。
所述方法还可包括:
d)用户请求修改所述经加密的敏感字段信息时,检查用户是否具有相应敏感字段的密钥使用权限,若是,则加密修改后的内容;若否,则返回获取密钥失败信息,不进行数据修改操作。
优选地,步骤a)所述加密通过由抽象密码设备组件提供的统一的接口实现,所述抽象密码设备组件进一步调用一个或多个不同的所述密码设备单元实施加解密操作,所述密码设备单元由所述抽象密码设备组件管理,并可以动态的加载或移除。
优选地,对于步骤a)所述一个或多个数据库,每个数据库均可使用单独的所述抽象密码设备组件,或各个数据库共享同一个所述抽象密码设备组件。
优选地,所述密码设备单元可以是硬件加密设备或软件加密设备。
优选地,步骤a)通过下述方法实现对数据表A中的敏感字段col实施加密:
i.生成一个长度为k-length的随机数key,作为加密密钥;
ii.在待加密的数据表A中创建一个新的字段col_encrypt;
iii.对敏感字段col以key为密钥,选定加密设备和加密方式进行加密,并将密文存储于col_encrypt中;
iv.将col字段中的所有信息置为空;
v.将数据表A改名为A_bak;
vi.创建基于A_bak的视图A,所述视图对应的字段包括A_bak中除A_bak.col和A_bak.col_encrypt之外的所有字段和A.col字段,所述A.col字段的定义为:col的值等于对A_bak.col_encrypt字段解密所得到的内容。
优选地,步骤c)所述密钥可以更新,所述更新使用事务进行封装以保证操作的完整性,所述更新按照下述步骤进行:事务开始;使用当前密钥解密关系;使用新密钥加密关系;销毁当前密钥;事务结束。
此外,本发明还提供了使用上述方法的数据库信息加密系统,如图1所示,本发明所述系统包括:
一个安全管理主机和一个或多个数据库服务器主机;
所述安全管理主机包括安全管理组件和与之数据连接的密码元数据管理单元;
所述安全管理组件为安全管理员提供用户接口,以设定密文安全策略;
所述密码元数据管理单元维护数据库用户对加密密钥的使用权限,以及各个经加密的敏感字段在加密时所使用的密码设备单元、加密方式和密钥;
所述数据库服务器主机包括数据库管理系统,加密代理单元,抽象密码设备组件和一个或多个密码设备单元;所述加密代理单元和所述安全管理组件,所述数据库管理系统和抽象密码设备组件数据连接;各个密码设备单元均和所述抽象密码设备组件数据连接;
所述数据库管理系统提供标准SQL查询接口,接受用户操作请求并返回操作结果,所述操作请求包括数据的查询和修改等;
所述加密代理单元接受加解密请求并在所述抽象密码设备组件的协调下指导所述密码设备单元进行加解密操作,并返回加解密结果。
具体地,所述安全管理组件包括一个在线监听装置;所述在线监听装置用于接收发自加密代理单元的密钥查询请求包,所述请求包至少包括以下信息:数据库服务器主机名、关系名、用户名;
所述安全管理组件为安全管理员提供以下功能模块:
(1)列举数据库服务器主机模块,用于列出所有受到安全管理组件管理的数据库服务器主机;
(2)新增数据库服务器主机模块,用于将某一个数据库服务器纳入到安全管理主机的管理域内;
(3)取消数据库服务器主机模块,用于将某一数据库服务器从安全管理主机的管理域内删除;
(4)选定目标数据库服务器主机模块,用于将安全管理员的操作空间定义为选定的数据库服务器;
(5)列举所有数据库中的关系模块,用于列出当前操作空间中所有的关系;
(6)查询某个关系的加密保护状态模块,用于列举该关系所有的加密字段、列举能解密该关系的所有用户、列出该关系所使用的加密参数,所述加密参数包括:加密算法、密钥长度和算法工作模式;
(7)设定对关系的加密保护模块,该模块可以对未曾加密的关系实施加密保护,也可以修改已经实施了加密保护的关系的加密策略;
(8)列举数据库中的用户模块,用于列出当前操作空间中的所用用户标识;
(9)密钥更新模块,用于对某个已加密关系的加密密钥进行更新,该操作使用事务进行封装以保证操作的完整性,按照如下步骤进行:事务开始,使用旧的密钥解密该关系,使用新密钥对关系进行加密,销毁旧的密钥,事务结束;
(10)修改加密设备配置模块,用于修改加密设置项所采用的加密算法、密钥长度、加密工作模式。
所述密码元数据管理单元用于存储和管理:密钥、加密工作模式配置信息、关系与密钥的对应关系和用户对密钥的支配关系。
所述数据库管理系统用于处理和应答用户的查询请求,并根据用户查询是否涉及加密过的数据,执行不同的操作流程:
若用户查询不涉及密文数据,则直接进行数据查询,并返回给用户;
若用户查询涉及密文数据,则向加密代理单元发送解密请求,如果该用户具有密文查询权限则向其返回解密后的明文,若该用户不具有解密权限则向其返回无意义的密文。
所述加密代理单元用于根据由安全管理组件发来的指令执行相应操作,由数据库管理系统发来的请求,并调用抽象密码设备单元进行数据的加解密;所述加密管理单元执行的相应操作包括:
(1)对关系中的某一字段实施加密操作,此时由所述安全管理组件发来的指令包括以下内容:待加密的关系的标识、待加密的字段标识、使用的密码设备单元标识、工作模式和密钥长度;
(2)对关系中的某一字段实施解密操作,此时由所述安全管理组件发来的指令包括以下内容:待加密的关系的标识、待加密的字段标识、使用的密码设备单元标识、工作模式和密钥长度;
所述由数据库管理系统发来的请求包括:
(1)数据读取请求;读取请求包括以下内容:发起读取的用户标识;读取的关系的标识;
(2)数据写入请求。
所述加密代理单元在根据安全管理组件发来的指令执行对关系A的所述某一字段col实施加密操作时,按照如下步骤进行:
(1)接收并解析安全管理组件发来的指令;待加密关系的标识:A;待加密字段标识:col;密码设备单元标识:n;工作模式:m;密钥长度:k-length;
(2)生成一个长度为k-length的随机数key,作为加密密钥;
(3)修改关系A为其创建一个新的字段col_encrypt;
(4)对于A中的每一条记录,对其col字段以key为密钥,使用密码设备单元n以工作模式m进行加密操作,将得出的密文存储于col_encrypt字段中;
(5)将A中的col字段的所有信息置为空;
(6)将A改名为A_bak;
(7)创建基于A_bak的视图A,定义A的字段包括A_bak中除col和col_encrypt之外的所有其它字段和一个新的col字段,所述新的col字段的定义为:col的值等于对A_bak中col_encrypt字段以key为密钥,使用密码设备单元n以工作模式m进行解密操作所得到的值;
(8)创建对于A的写入触发器update_trigger,当用户对A进行写入操作时,使用密码设备单元n以工作模式m对用户提交的col字段的数据进行加密操作,并将得出的密文存储于A的col_encrypt字段中,A的col字段置为空;
(9)发送加密关系成功数据包,将所使用的密钥key发送给安全管理组件进行注册。
所述加密代理单元在根据安全管理组件发来的指令执行对关系的所述某一字段实施解密操作时,按照如下步骤进行:
(1)接收并解析安全管理组件发来的指令;待解密关系的标识:A;待解密字段标识:col;密码设备单元标识:n;工作模式:m;密钥长度:k-length;密钥key
(2)删除A;
(3)删除A的写入触发器update_trigger;
(4)对于A_bak中的每一条记录,对其col_encrypt字段以key为密钥,使用密码设备单元n以工作模式m进行解密操作,将得出的明文存储于col字段中;
(5)删除A_bak中的col_encrypt字段;
(6)将A_bak更名为A;
(7)发送解密成功数据包,安全管理组件清除对A进行加密的注册信息。
所述加密代理单元在根据数据库管理系统发来的指令执行数据读取请求时,按照如下步骤进行:
(1)解析数据读取请求数据包;发起读取的用户标识:Uid;读取的关系的标识:Tid;
(2)获取解密密钥,将Uid和Tid发送到安全管理组件,请求解密密钥并根据Uid是否具有对Tid的解密权限执行不同的流程:
(a)若Uid具有对Tid的解密权限,则安全管理组件将返回以下信息:密钥:key、密码设备单元标识符:n、工作模式:m和密钥长度:k_length;
(b)若Uid没有对Tid解密的权限,安全管理组件将返回以下信息:密码设备单元标识符:n、工作模式:m和密钥长度:k_length;加密代理单元随机生成一个密钥长度为k_length的密钥key;
(3)构建加密代理消息包,依次取得关系Tid中某一记录中的密文字段:msg,并将其与密钥:key、密码设备单元标识符:n、工作模式:m和密钥长度:k_length一起生成一个加密代理消息包,并将该加密代理消息包发送给抽象密码设备组件进行解密操作;
(4)将抽象密码设备组件返回的明文字段返回给数据库管理系统。
所述加密代理单元在根据数据库管理系统发来的指令执行数据写入请求时,按照如下步骤进行:
(1)解析数据读取请求数据包;发起读取的用户标识:Uid;读取的关系的标识:Tid;
(2)获取加密密钥,将Uid和Tid发送到安全管理组件,请求解密密钥并根据Uid是否具有对Tid的解密权限执行不同的流程:
(a)若Uid具有对Tid的加密权限,则安全管理组件将返回以下信息:密钥:key、密码设备单元标识符:n、工作模式:m和密钥长度:k_length;加密代理单元取得要插入的明文字段:msg,并将其与密钥:key、密码设备单元标识符:n、工作模式:m和密钥长度:k_length一起组成加密代理消息包,将该包发送给抽象密码设备组件进行加密操作;并将加密后的密文字段返回给数据库管理系统进行存储;
(b)若Uid没有对Tid解密的权限,安全管理组件将返回以下信息:密码设备单元标识符:n、工作模式:m和密钥长度:k_length;加密代理向数据库管理系统返回获取密钥错误信息。
所述抽象密码设备组件用于管理多个密码设备单元;为加密代理单元提供统一的加密和解密调用接口;根据加密代理消息包构建密文服务请求包,并按照加密代理消息包中的密码设备单元标识,将所述密文服务请求包发至相应的密码设备单元执行数据加解密操作;解密操作完成后,抽象密码设备组件将从密文服务应答包中返回的数据,传递给加密代理单元;所述加密代理消息包至少包括以下信息:密码设备单元标识符n、密钥key、工作模式m和数据msg。
所述密码设备单元用于对抽象密码设备组件提交的密文服务请求包进行加密或解密操作,并将操作结果以密文服务应答包的形式返回给抽象密码设备组件,其中,密文服务请求包的内容包括:密钥key、工作模式m和数据msg;密文服务应答包的内容包括:密文服务处理后的数据R_msg;
所述密码设备单元可以是加密卡、加密机等硬件形式的加密设备,或者是软件形式的加密设备,但无论采用何种形式,均应能够提供数据加解密服务。
和现有技术相比,本发明具有如下优势:
1.基于本发明的数据库系统具有对上层应用软件和底层数据库管理系统的透明性。数据库加密系统与数据库管理系统的交互,全部通过加密代理单元,采用标准SQL接口实现。同时,对于上层应用来说,加密后的关系与加密前的关系没有名称或调用方式上的差异,因此,无需对已部署的上层应用进行修改。
2.基于本发明的数据库系统可通过单独的安全管理主机进行密钥的统一管理,通过将密钥管理与数据库服务器管理分离实现对数据库管理员权限的限制,同时避免了存储介质丢失所引起的信息泄漏风险。
经本发明数据库信息保护方法保护后的数据只有合法用户才能够访问,包括数据库管理员在内的任何其他用户,只要不持有相关密钥,就无法访问明文格式的数据内容,大大增强了数据库系统的安全性。
3.除此之外,基于本发明的数据库系统还提供了良好的算法兼容性和可扩展性。考虑到部分用户可能会采用非公开的加密算法,基于本发明的数据库系统使用统一的协调组件(抽象密码设备组件)以过滤加密设备或算法在接口上的差异,为用户使用特殊的密码算法提供了便利。
附图说明
图1是本发明数据库信息加密系统的结构图;
图2是本发明实施例数据库信息加密系统的结构图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明,但不以任何方式限制本发明的范围。
本实施例采用如图2所示的数据库系统结构,其中,设定数据库系统中有三个用户,分别是admin、tom和jerry,其中admin是数据库系统的数据库管理员,tom和jerry是一般用户。
假定数据库中保存着一个由admin创建的涉及机密信息的数据表emp,该数据表的数据结构和数据内容分别如下表2,3所示,其中,Salary字段属于机密信息,需要加密存储。
表2:数据表emp的数据结构
字段名 | 类型 | 说明 |
Id | Integer | 员工标识 |
Name | Char | 员工姓名 |
Age | Integer | 年龄 |
Salary | Money | 工资 |
Enrollment | Ingresdate | 入职日期 |
Address | Varchar | 住址 |
表3:数据表emp的数据内容
Id | Name | Age | Salary | Enrollment | Address |
001 | 杨六郎 | 28 | 5200 | 2006-1-1 | 上海市 |
002 | 程咬金 | 26 | 4000 | 2006-3-8 | 天津市 |
003 | 李闯王 | 38 | 4900 | 2004-10-25 | 石家庄市 |
004 | 王大头 | 29 | 6300 | 2008-1-11 | 济南市 |
005 | 许三多 | 32 | 5600 | 2003-8-21 | 南京市 |
006 | 张瓜瓜 | 40 | 8000 | 2000-4-11 | 北京市 |
本实施例展示如何使用本发明对emp中的Salary字段实施加密保护,并为tom赋予解密密钥使用权限。
如附图2所示,tom在使用前端应用2(Visual SQL)访问emp时,可以正常的读取Salary字段的值,而其他用户(包括数据库系统的管理员admin和一般用户jerry)在访问emp时,仅能正确读取除Salary字段之外的其他字段,而Salary字段的取值为无意义的密文。
在本实施例中,采用了Ingres作为数据库管理系统,采用了Ingres系统自带的VisaulSQL作为前端应用,采用了软件实现的AES算法作为密码设备单元,但在实际应用中,这些组件都可以进行替换。
安全管理员8对表emp中需要加密的Salary字段实施加密策略,具体的,该策略按照以下步骤进行:
(1)安全管理组件9向加密代理单元5发送对表emp的Salary字段实施加密的指令。指令参数为:A=emp;col=Salary;n=AES;m=encrypt;k-length=192;
(2)加密代理单元5生成一个长度为192的随机数key,作为加密密钥;
(3)修改数据表emp为其创建一个新的字段Salary_encrypt;
(4)对于表emp中的每一条记录,对其Salary字段以key为密钥,使用密码设备单元AES进行加密操作,将得出的密文存储于Salary_encrypt字段中;
(5)将表emp中的Salary字段的所有信息置为空;
(6)将表emp改名为emp_bak;
(7)创建基于表emp_bak的视图emp,定义emp的字段包括表emp_bak中除Salary和Salary_encrypt之外的所有其它字段和一个新的Salary字段,所述新的Salary字段的定义为:Salary的值等于对表emp_bak中Salary_encrypt字段以key为密钥,使用密码设备单元AES进行解密操作所得到的值;
(8)创建对于视图emp的写入触发器update_trigger,当用户对视图emp进行写入操作时,使用密码设备单元AES对用户提交的Salary字段的数据进行加密操作,并将得出的密文存储于表emp_bak的Salary_encrypt字段中,表emp_bak的Salary字段置为空;
(9)加密代理单元5向安全管理组件9发送加密数据表成功数据包,安全管理组件9对本次加密所使用的密钥key进行注册,并将其保存在密码元数据管理单元10中。
应用了上述加密策略之后,安全管理员将表emp访问密钥的使用权赋予给用户tom。此操作将在密码元数据管理单元10中保存tom对于表emp的访问权限。
经过上述配置之后,分别用不同的用户身份登录Visaul SQL,在其中对表emp进行查询,输入相同的查询语句:select*from emp,可以看到不同的查询结果。
用tom进行访问可以看到有意义的明文,如表4所示,其中salary字段的信息是经过解密后的明文,其数值与应用加密策略之前的数值是一致的。
表4:Tom查询emp得到的结果
Id | Name | Age | Salary | Enrollment | Address |
001 | 杨六郎 | 28 | 5200 | 2006-1-1 | 上海市 |
002 | 程咬金 | 26 | 4000 | 2006-3-8 | 天津市 |
003 | 李闯王 | 38 | 4900 | 2004-10-25 | 石家庄市 |
004 | 王大头 | 29 | 6300 | 2008-1-11 | 济南市 |
005 | 许三多 | 32 | 5600 | 2003-8-21 | 南京市 |
006 | 张瓜瓜 | 40 | 8000 | 2000-4-11 | 北京市 |
而使用管理员用户admin和其他一般用户jerry执行相同的查询语句则返回如表5所示的数据:
表5:一般用户查询emp得到的结果
Id | Name | Age | Salary | Enrollment | Address |
001 | 杨六郎 | 28 | -18726710.78e+083 | 2006-1-1 | 上海市 |
002 | 程咬金 | 26 | -34637612.21e+083 | 2006-3-8 | 天津市 |
003 | 李闯王 | 38 | -12367167.12e+083 | 2004-10-25 | 石家庄市 |
004 | 王大头 | 29 | -98264164.19e+082 | 2008-1-11 | 济南市 |
005 | 许三多 | 32 | -13274658.56e+083 | 2003-8-21 | 南京市 |
006 | 张瓜瓜 | 40 | -21783437.87e+083 | 2000-4-11 | 北京市 |
表中五个未实施加密策略的字段:Id、Name、Age、Enrollment和Address,其取值都正常的返回至前端应用,而实施了加密策略的字段Salary则返回无意义的密文值。这是因为两个用户admin和jerry没有使用密钥key的权限,使用错误的密钥进行了解密操作。
从本实施例可以看出,即便是数据库系统的管理员,只要没有正确的解密密钥,就无法获得正确的敏感信息。从存储介质的角度上来看,保密字段也是被加密后进行存储的,所有明文信息在加密策略实施完成之后即被清除,即使攻击者获得了敏感信息的存储介质,只要不掌握密钥,也无法解密敏感信息。
Claims (9)
1.一种数据库信息加密方法,其特征在于,所述方法包括:
a)对于一个或多个数据库中的一个或多个数据表,使用相同或不同的密码设备单元,以相同或不同的密钥加密其中一个或多个敏感字段,并为其创建同名视图,所述视图指向加密后的数据表;
b)维护数据库用户对加密密钥的使用权限,以及各个经加密的敏感字段在加密时所使用的密码设备单元、加密方式和密钥;
c)用户请求读取经加密的数据表时,检查用户是否具有相应的敏感字段的密钥使用权限,若是,则取得并使用密钥以和所述加密方式相应的解密方式解密,用户获得正确的敏感字段信息;若否,则使用随机密钥以和所述加密方式相应的解密方式解密,用户获得经错误解密的敏感字段信息。
2.如权利要求1所述的数据库信息加密方法,其特征在于,所述方法包括:
d)用户请求修改所述经加密的敏感字段信息时,检查用户是否具有相应敏感字段的密钥使用权限,若是,则加密修改后的内容;若否,则返回获取密钥失败信息,不进行数据修改操作。
3.如权利要求1或2所述的数据库信息加密方法,其特征在于,步骤a)所述加密通过由抽象密码设备组件提供的统一的接口实现,所述抽象密码设备组件进一步调用一个或多个不同的所述密码设备单元实施加解密操作,所述密码设备单元由所述抽象密码设备组件管理,并可以动态的加载或移除。
4.如权利要求3所述的数据库信息加密方法,其特征在于,对于所述一个或多个数据库,每个数据库均使用单独的所述抽象密码设备组件,或各个数据库共享同一个所述抽象密码设备组件。
5.如权利要求3所述的数据库信息保护方法,其特征在于,所述密码设备单元是硬件加密设备或软件加密设备。
6.如权利要求1或2所述的数据库信息加密方法,其特征在于,步骤a)通过下述方法实现对数据表A中的敏感字段col实施加密:
i.生成一个长度为k-length的随机数key,作为加密密钥;
ii.在待加密的数据表A中创建一个新的字段col_encrypt;
iii.对敏感字段col以key为密钥,选定加密设备和加密方式进行加密,并将密文存储于col_encrypt中;
iv.将col字段中的所有信息置为空;
v.将数据表A改名为A_bak;
vi.创建基于A_bak的视图A,所述视图对应的字段包括A_bak中除A_bak.col和A_bak.col_encrypt之外的所有字段和A.col字段,所述A.col字段的定义为:col的值等于对A_bak.col_encrypt字段解密所得到的内容。
7.如权利要求1或2所述的数据库信息加密方法,其特征在于,步骤c)所述随机密钥是和所述正确的密钥长度相同的由随机数生成的密钥。
8.如权利要求1或2所述的数据库信息加密方法,其特征在于,步骤c)所述密钥可以更新,所述更新使用事务进行封装以保证操作的完整性,所述更新按照下述步骤进行:事务开始;使用当前密钥解密关系;使用新密钥加密关系;销毁当前密钥;事务结束。
9.一种数据库信息加密系统,其特征在于,包括:一个安全管理主机和一个或多个数据库服务器主机;
所述安全管理主机包括安全管理组件(9)和与之数据连接的密码元数据管理单元(10);
所述安全管理组件(9)为安全管理员提供用户接口,以设定密文安全策略;
所述密码元数据管理单元(10)维护数据库用户对加密密钥的使用权限,以及各个经加密的敏感字段在加密时所使用的密码设备单元、加密方式和密钥;
所述数据库服务器主机包括数据库管理系统(3),加密代理单元(5),抽象密码设备组件(6)和一个或多个密码设备单元(7);所述加密代理单元(5)和所述安全管理组件(9)、所述数据库管理系统(3)和抽象密码设备组件(6)数据连接;各个密码设备单元(7)均和所述抽象密码设备组件(6)数据连接;
所述数据库管理系统(3)提供标准SQL查询接口,接受用户操作请求并返回操作结果;所述加密代理单元(5)接受加解密请求并在所述抽象密码设备组件(6)的协调下指导所述密码设备单元(7)进行加解密操作,并返回加解密结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100787815A CN101504706B (zh) | 2009-03-03 | 2009-03-03 | 数据库信息加密方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100787815A CN101504706B (zh) | 2009-03-03 | 2009-03-03 | 数据库信息加密方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101504706A true CN101504706A (zh) | 2009-08-12 |
CN101504706B CN101504706B (zh) | 2011-05-11 |
Family
ID=40976948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100787815A Expired - Fee Related CN101504706B (zh) | 2009-03-03 | 2009-03-03 | 数据库信息加密方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101504706B (zh) |
Cited By (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402664A (zh) * | 2011-12-28 | 2012-04-04 | 用友软件股份有限公司 | 数据访问控制装置和数据访问控制方法 |
CN102456108A (zh) * | 2011-06-22 | 2012-05-16 | 中标软件有限公司 | 一种ibus拼音码表的加密方法 |
CN102841902A (zh) * | 2011-06-23 | 2012-12-26 | 捷达世软件(深圳)有限公司 | 数据库资料管理方法及系统 |
CN102855448A (zh) * | 2012-08-10 | 2013-01-02 | 深圳市黎明网络系统有限公司 | 一种字段级数据库加密装置 |
CN103336928A (zh) * | 2013-06-28 | 2013-10-02 | 贝壳网际(北京)安全技术有限公司 | 对数据库进行加密以及解密的方法及装置 |
CN103929743A (zh) * | 2014-04-28 | 2014-07-16 | 深圳市杰瑞特科技有限公司 | 一种对移动智能终端传输数据的加密方法 |
CN104580283A (zh) * | 2013-10-14 | 2015-04-29 | 北大方正集团有限公司 | 服务器、终端、数据管理系统和数据管理方法 |
CN104573549A (zh) * | 2014-12-25 | 2015-04-29 | 中国科学院软件研究所 | 一种可信的数据库机密性保护方法及系统 |
CN104679781A (zh) * | 2013-12-02 | 2015-06-03 | 中国移动通信集团福建有限公司 | 一种数据模糊处理的方法及装置 |
CN104881280A (zh) * | 2015-05-13 | 2015-09-02 | 南京邮电大学 | 一种支持多查询的密文数据库中间件的设计方法 |
WO2015196810A1 (zh) * | 2014-06-27 | 2015-12-30 | 中兴通讯股份有限公司 | 一种读写数据库的数据的方法和应用应答装置 |
CN105787387A (zh) * | 2016-03-07 | 2016-07-20 | 南京邮电大学 | 一种数据库加密方法及该加密数据库查询方法 |
CN106649587A (zh) * | 2016-11-17 | 2017-05-10 | 国家电网公司 | 一种基于大数据信息系统的高安全性脱敏方法 |
CN107133528A (zh) * | 2017-05-02 | 2017-09-05 | 山东浪潮通软信息科技有限公司 | 一种数据库存储的密级保护实现方法及装置 |
CN107612918A (zh) * | 2017-09-28 | 2018-01-19 | 山东新潮信息技术有限公司 | 对数据字典信息进行rsa加密存储的方法 |
CN107871082A (zh) * | 2016-11-15 | 2018-04-03 | 平安科技(深圳)有限公司 | Oracle数据库中数据加密的方法及加密控制终端 |
CN108154038A (zh) * | 2016-12-06 | 2018-06-12 | 北京京东尚科信息技术有限公司 | 数据处理方法及装置 |
CN108537062A (zh) * | 2018-04-24 | 2018-09-14 | 山东华软金盾软件股份有限公司 | 一种数据库数据动态加密的方法 |
CN108829899A (zh) * | 2014-07-24 | 2018-11-16 | 北京古盘创世科技发展有限公司 | 数据表储存、修改、查询和统计方法 |
CN108900539A (zh) * | 2018-08-09 | 2018-11-27 | 深圳伊泉净品科技有限公司 | 确保批量作业主机密码安全的方法及计算机可读存储介质 |
CN108897773A (zh) * | 2018-05-31 | 2018-11-27 | 湖南格凡安信科技有限公司 | 一种透明在线式数据库匿名化数据并行迁移方法 |
CN109241751A (zh) * | 2018-07-25 | 2019-01-18 | 郑州云海信息技术有限公司 | 基于SQL Server的数据加密验证方法及系统 |
CN109995524A (zh) * | 2019-03-22 | 2019-07-09 | 西安电子科技大学 | 一种基于加解密资源调度和密钥管理的加密数据库及方法 |
CN110084051A (zh) * | 2019-04-29 | 2019-08-02 | 京工博创(北京)科技有限公司 | 一种数据加密方法和系统 |
CN110598440A (zh) * | 2019-08-08 | 2019-12-20 | 中腾信金融信息服务(上海)有限公司 | 一种分布式自动加解密系统 |
CN110889130A (zh) * | 2018-12-10 | 2020-03-17 | 北京炼石网络技术有限公司 | 基于数据库的细粒度数据加密方法、系统及装置 |
CN110955671A (zh) * | 2019-11-21 | 2020-04-03 | 北京天元创新科技有限公司 | 一种数据更新处理方法及装置 |
CN111382121A (zh) * | 2020-03-04 | 2020-07-07 | 深圳乐信软件技术有限公司 | 一种信息管理系统及存储介质 |
CN111740826A (zh) * | 2020-07-20 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 基于加密代理网关的加密方法、解密方法、装置及设备 |
CN112131595A (zh) * | 2020-09-30 | 2020-12-25 | 郑州信大捷安信息技术股份有限公司 | 一种SQLite数据库文件安全存取方法及装置 |
CN112906048A (zh) * | 2021-02-09 | 2021-06-04 | 上海凯馨信息科技有限公司 | 一种针对db2数据的密态数据访问防护方法 |
CN112988888A (zh) * | 2021-02-19 | 2021-06-18 | 平安科技(深圳)有限公司 | 密钥管理方法、装置、电子设备及存储介质 |
CN113742340A (zh) * | 2021-08-17 | 2021-12-03 | 深圳Tcl新技术有限公司 | 一种数据库表处理方法及相关设备 |
CN114338010A (zh) * | 2021-12-31 | 2022-04-12 | 深圳昂楷科技有限公司 | 一种不落盘的数据库局内加密密钥加密方法、装置及电子设备 |
CN114329390A (zh) * | 2021-12-31 | 2022-04-12 | 四川新网银行股份有限公司 | 一种金融机构数据库访问密码保护方法及系统 |
CN114491580A (zh) * | 2021-12-30 | 2022-05-13 | 深圳市恒创智达信息技术有限公司 | 一种数据库敏感信息加密方法及装置 |
CN117992991A (zh) * | 2024-04-03 | 2024-05-07 | 深圳九有数据库有限公司 | 基于多粒度的数据库数据加密方法及设备 |
-
2009
- 2009-03-03 CN CN2009100787815A patent/CN101504706B/zh not_active Expired - Fee Related
Cited By (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456108A (zh) * | 2011-06-22 | 2012-05-16 | 中标软件有限公司 | 一种ibus拼音码表的加密方法 |
CN102456108B (zh) * | 2011-06-22 | 2014-09-03 | 中标软件有限公司 | 一种ibus拼音码表的加密方法 |
CN102841902A (zh) * | 2011-06-23 | 2012-12-26 | 捷达世软件(深圳)有限公司 | 数据库资料管理方法及系统 |
CN102402664A (zh) * | 2011-12-28 | 2012-04-04 | 用友软件股份有限公司 | 数据访问控制装置和数据访问控制方法 |
CN102402664B (zh) * | 2011-12-28 | 2014-12-10 | 用友软件股份有限公司 | 数据访问控制装置和数据访问控制方法 |
CN102855448A (zh) * | 2012-08-10 | 2013-01-02 | 深圳市黎明网络系统有限公司 | 一种字段级数据库加密装置 |
CN102855448B (zh) * | 2012-08-10 | 2016-02-10 | 深圳市黎明网络系统有限公司 | 一种字段级数据库加密装置 |
CN103336928A (zh) * | 2013-06-28 | 2013-10-02 | 贝壳网际(北京)安全技术有限公司 | 对数据库进行加密以及解密的方法及装置 |
CN104580283A (zh) * | 2013-10-14 | 2015-04-29 | 北大方正集团有限公司 | 服务器、终端、数据管理系统和数据管理方法 |
CN104679781A (zh) * | 2013-12-02 | 2015-06-03 | 中国移动通信集团福建有限公司 | 一种数据模糊处理的方法及装置 |
CN103929743A (zh) * | 2014-04-28 | 2014-07-16 | 深圳市杰瑞特科技有限公司 | 一种对移动智能终端传输数据的加密方法 |
CN103929743B (zh) * | 2014-04-28 | 2018-08-28 | 深圳市杰瑞特科技有限公司 | 一种对移动智能终端传输数据的加密方法 |
WO2015196810A1 (zh) * | 2014-06-27 | 2015-12-30 | 中兴通讯股份有限公司 | 一种读写数据库的数据的方法和应用应答装置 |
CN105302822A (zh) * | 2014-06-27 | 2016-02-03 | 中兴通讯股份有限公司 | 一种读写数据库的数据的方法和应用应答装置 |
CN105302822B (zh) * | 2014-06-27 | 2020-07-31 | 中兴通讯股份有限公司 | 一种读写数据库的数据的方法和应用应答装置 |
CN108829899B (zh) * | 2014-07-24 | 2021-08-20 | 北京古盘创世科技发展有限公司 | 数据表储存、修改、查询和统计方法 |
CN108829899A (zh) * | 2014-07-24 | 2018-11-16 | 北京古盘创世科技发展有限公司 | 数据表储存、修改、查询和统计方法 |
CN104573549A (zh) * | 2014-12-25 | 2015-04-29 | 中国科学院软件研究所 | 一种可信的数据库机密性保护方法及系统 |
CN104881280A (zh) * | 2015-05-13 | 2015-09-02 | 南京邮电大学 | 一种支持多查询的密文数据库中间件的设计方法 |
CN104881280B (zh) * | 2015-05-13 | 2018-05-08 | 南京邮电大学 | 一种支持多查询的密文数据库中间件的设计方法 |
CN105787387B (zh) * | 2016-03-07 | 2018-09-14 | 南京邮电大学 | 一种数据库加密方法及该加密数据库查询方法 |
CN105787387A (zh) * | 2016-03-07 | 2016-07-20 | 南京邮电大学 | 一种数据库加密方法及该加密数据库查询方法 |
CN107871082A (zh) * | 2016-11-15 | 2018-04-03 | 平安科技(深圳)有限公司 | Oracle数据库中数据加密的方法及加密控制终端 |
CN106649587B (zh) * | 2016-11-17 | 2020-06-16 | 国家电网公司 | 一种基于大数据信息系统的高安全性脱敏方法 |
CN106649587A (zh) * | 2016-11-17 | 2017-05-10 | 国家电网公司 | 一种基于大数据信息系统的高安全性脱敏方法 |
CN108154038A (zh) * | 2016-12-06 | 2018-06-12 | 北京京东尚科信息技术有限公司 | 数据处理方法及装置 |
CN108154038B (zh) * | 2016-12-06 | 2022-04-26 | 北京京东尚科信息技术有限公司 | 数据处理方法及装置 |
CN107133528A (zh) * | 2017-05-02 | 2017-09-05 | 山东浪潮通软信息科技有限公司 | 一种数据库存储的密级保护实现方法及装置 |
CN107612918A (zh) * | 2017-09-28 | 2018-01-19 | 山东新潮信息技术有限公司 | 对数据字典信息进行rsa加密存储的方法 |
CN108537062A (zh) * | 2018-04-24 | 2018-09-14 | 山东华软金盾软件股份有限公司 | 一种数据库数据动态加密的方法 |
CN108537062B (zh) * | 2018-04-24 | 2022-03-22 | 山东华软金盾软件股份有限公司 | 一种数据库数据动态加密的方法 |
CN108897773A (zh) * | 2018-05-31 | 2018-11-27 | 湖南格凡安信科技有限公司 | 一种透明在线式数据库匿名化数据并行迁移方法 |
CN109241751A (zh) * | 2018-07-25 | 2019-01-18 | 郑州云海信息技术有限公司 | 基于SQL Server的数据加密验证方法及系统 |
CN109241751B (zh) * | 2018-07-25 | 2021-10-22 | 郑州云海信息技术有限公司 | 基于SQL Server的数据加密验证方法及系统 |
CN108900539A (zh) * | 2018-08-09 | 2018-11-27 | 深圳伊泉净品科技有限公司 | 确保批量作业主机密码安全的方法及计算机可读存储介质 |
CN110889130A (zh) * | 2018-12-10 | 2020-03-17 | 北京炼石网络技术有限公司 | 基于数据库的细粒度数据加密方法、系统及装置 |
CN110889130B (zh) * | 2018-12-10 | 2023-03-28 | 北京炼石网络技术有限公司 | 基于数据库的细粒度数据加密方法、系统及装置 |
CN109995524A (zh) * | 2019-03-22 | 2019-07-09 | 西安电子科技大学 | 一种基于加解密资源调度和密钥管理的加密数据库及方法 |
CN110084051A (zh) * | 2019-04-29 | 2019-08-02 | 京工博创(北京)科技有限公司 | 一种数据加密方法和系统 |
CN110598440B (zh) * | 2019-08-08 | 2023-05-09 | 中腾信金融信息服务(上海)有限公司 | 一种分布式自动加解密系统 |
CN110598440A (zh) * | 2019-08-08 | 2019-12-20 | 中腾信金融信息服务(上海)有限公司 | 一种分布式自动加解密系统 |
CN110955671A (zh) * | 2019-11-21 | 2020-04-03 | 北京天元创新科技有限公司 | 一种数据更新处理方法及装置 |
CN111382121B (zh) * | 2020-03-04 | 2023-08-25 | 深圳乐信软件技术有限公司 | 一种信息管理系统及存储介质 |
CN111382121A (zh) * | 2020-03-04 | 2020-07-07 | 深圳乐信软件技术有限公司 | 一种信息管理系统及存储介质 |
CN111740826A (zh) * | 2020-07-20 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 基于加密代理网关的加密方法、解密方法、装置及设备 |
CN112131595B (zh) * | 2020-09-30 | 2022-03-15 | 郑州信大捷安信息技术股份有限公司 | 一种SQLite数据库文件安全存取方法及装置 |
CN112131595A (zh) * | 2020-09-30 | 2020-12-25 | 郑州信大捷安信息技术股份有限公司 | 一种SQLite数据库文件安全存取方法及装置 |
CN112906048A (zh) * | 2021-02-09 | 2021-06-04 | 上海凯馨信息科技有限公司 | 一种针对db2数据的密态数据访问防护方法 |
CN112988888A (zh) * | 2021-02-19 | 2021-06-18 | 平安科技(深圳)有限公司 | 密钥管理方法、装置、电子设备及存储介质 |
CN112988888B (zh) * | 2021-02-19 | 2024-05-07 | 平安科技(深圳)有限公司 | 密钥管理方法、装置、电子设备及存储介质 |
CN113742340B (zh) * | 2021-08-17 | 2024-06-04 | 深圳Tcl新技术有限公司 | 一种数据库表处理方法及相关设备 |
CN113742340A (zh) * | 2021-08-17 | 2021-12-03 | 深圳Tcl新技术有限公司 | 一种数据库表处理方法及相关设备 |
CN114491580A (zh) * | 2021-12-30 | 2022-05-13 | 深圳市恒创智达信息技术有限公司 | 一种数据库敏感信息加密方法及装置 |
CN114338010B (zh) * | 2021-12-31 | 2024-02-20 | 深圳昂楷科技有限公司 | 一种数据库密钥交换方法、装置及电子设备 |
CN114329390A (zh) * | 2021-12-31 | 2022-04-12 | 四川新网银行股份有限公司 | 一种金融机构数据库访问密码保护方法及系统 |
CN114338010A (zh) * | 2021-12-31 | 2022-04-12 | 深圳昂楷科技有限公司 | 一种不落盘的数据库局内加密密钥加密方法、装置及电子设备 |
CN117992991A (zh) * | 2024-04-03 | 2024-05-07 | 深圳九有数据库有限公司 | 基于多粒度的数据库数据加密方法及设备 |
CN117992991B (zh) * | 2024-04-03 | 2024-06-25 | 深圳九有数据库有限公司 | 基于多粒度的数据库数据加密方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101504706B (zh) | 2011-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101504706B (zh) | 数据库信息加密方法和系统 | |
CN102402664B (zh) | 数据访问控制装置和数据访问控制方法 | |
KR101371608B1 (ko) | Dbms 및 데이터베이스에서 암호화 방법 | |
CN103561034B (zh) | 一种安全文件共享系统 | |
EP2731040B1 (en) | Computer system for storing and retrieval of encrypted data items, client computer, computer program product and computer-implemented method | |
US7694134B2 (en) | System and method for encrypting data without regard to application | |
US8135948B2 (en) | Method and system for transparently encrypting sensitive information | |
US10666647B2 (en) | Access to data stored in a cloud | |
WO2019074921A1 (en) | SYSTEM AND METHOD FOR PROTECTING SENSITIVE INFORMATION VIA DISTRIBUTED CONFIDENCE | |
CN102236766A (zh) | 安全的数据项级数据库加密系统 | |
CN106022155A (zh) | 用于数据库安全管理的方法及服务器 | |
US20240331577A1 (en) | Polymorphic encryption for security of a data vault | |
CN111008855B (zh) | 一种基于改进代理重加密的追溯数据访问控制方法 | |
US20220086000A1 (en) | Cryptographic systems | |
Sauber et al. | A new secure model for data protection over cloud computing | |
US20050044366A1 (en) | Method for making databases secure | |
US9436849B2 (en) | Systems and methods for trading of text based data representation | |
Vignesh et al. | Secured Data Access and Control Abilities Management over Cloud Environment using Novel Cryptographic Principles | |
Mattsson | A practical implementation of transparent encryption and separation of duties in enterprise databases: protection against external and internal attacks on databases | |
CN106022584A (zh) | 小型企业资源管理方法 | |
Chang et al. | Mobile Phone Number Privacy Scheme Based on Lightweight Hash Mapping | |
CN109840423B (zh) | 一种数据关系的记录方法、装置及设备 | |
Mattsson | Continuous Protection of Enterprise Data-a Comprehensive Approach | |
Mattsson | Transparent Encryption and Separation of Duties for Enterprise Databases-A Solution for Field Level Privacy in Databases | |
CN117540408A (zh) | 一种基于属性的通配符可搜索加密方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110511 Termination date: 20180303 |
|
CF01 | Termination of patent right due to non-payment of annual fee |