CN104992123A - 一种数据库透明加密方法 - Google Patents
一种数据库透明加密方法 Download PDFInfo
- Publication number
- CN104992123A CN104992123A CN201510477683.4A CN201510477683A CN104992123A CN 104992123 A CN104992123 A CN 104992123A CN 201510477683 A CN201510477683 A CN 201510477683A CN 104992123 A CN104992123 A CN 104992123A
- Authority
- CN
- China
- Prior art keywords
- database
- access
- volume
- data
- access control
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种数据库加密方法,特别涉及一种为数据库实现第三方的透明加密和访问控制的方法,属于信息安全相关技术领域。本发明方法包括:A.在隐藏的加密卷中保存数据库文件:建立隐藏的加密卷,将包含敏感数据的部分或全部数据库文件保存在其中,并将对前述数据库文件的访问映射至隐藏的加密卷;B.多层次的访问控制:普通进程和DBMS进程访问所述加密卷中的数据库文件时需要授权,通过DBMS访问数据库中的表时根据授权规则进行鉴权。对比现有数据库加密方法,本发明方法具有如下优势:高强度的原始数据保护;多层次的访问控制;实施方便;高性能。
Description
技术领域
本发明涉及一种数据库加密方法,特别涉及一种为数据库实现第三方的透明加密和访问控制的方法,属于信息安全相关技术领域。
背景技术
数据库系统被越来越多地应用于各种信息系统之中。很多机构将其敏感信息存于数据库之中,数据库的安全性显得越来越重要,同时面临的威胁越来越严峻。数据库的加密和访问控制是保护敏感数据的最后防线。
数据库层面经常面临以下的安全风险:
1)数据库内部数据明文存储,敏感数据和非敏感数据没有实现分离存储;
2)黑客通过穿过防火墙,进入操作系统盗走数据库文件;
3)对含有敏感数据的数据库文件没有严格的访问控制,内部工作人员盗走数据库文件。
现有的字段级的透明加密系统在实施上比较困难,对系统的性能影响较大。而全盘加密的方法缺乏访问控制机制。
在需要将敏感数据和非敏感数据分离存储,并且需要进行必要的访问控制的情况下,字段级加密或磁盘加密都无法满足要求,有必要开发一种针对数据库的全表或全库透明加密及访问控制的方法,实现敏感的表和库的分离和加密存储,并实现必要的访问控制。
发明内容
本发明的目的是针对现有的数据库加密和权限管理的方法无法满足数据库安全的需求的现状,提出一种面向数据库全表或全库的透明加密和访问控制的方法,使得既能提高数据库的安全性,又不需修改现有应用,同时保证加密后数据库的性能,并能够提供灵活的权限管理。
为达到上述目的,本发明是通过以下技术方案实现的:
一种数据库透明加密方法,该方法至少包括如下几项内容:
A.在隐藏的加密卷中保存数据库文件:建立隐藏的加密卷,将包含敏感数据的部分或全部数据库文件保存在其中,并将对前述数据库文件的访问映射至隐藏的加密卷;
B.多层次的访问控制:普通进程和DBMS进程访问所述加密卷中的数据库文件时需要授权,通过DBMS访问数据库中的表时根据授权规则进行鉴权。
所述隐藏的加密卷是一个隐藏的磁盘分区,写入该分区的所有数据将被自动加密,该分区的数据被经过授权的进程读取时将被自动解密。
所述步骤A进一步通过以下过程实现:
步骤1:统计敏感数据在磁盘中所占空间大小的上限M;计算M加密后所占空间的大小,并以此计算所需的隐藏加密卷所占磁盘空间的大小,检测磁盘是否有足够的空间容纳此隐藏加密卷,如果空间足够,则转步骤2;否则表明磁盘存储已满,结束;
步骤2:在磁盘普通卷中创建数据库文件f并备份敏感表到文件f中,将旧的敏感表删除;
步骤3:创建一定大小的隐藏加密卷K;
步骤4:复制文件f到隐藏加密卷K中;并将普通卷中的数据库文件f删除;
步骤5:把对普通卷中文件f的访问映射到隐藏加密卷中;
步骤6:创建与原表t同名的视图,并把对此视图的访问映射到备份表。
所述多层次的访问控制包括操作系统层面的访问控制和DBMS层面的访问控制;所述操作系统层面的访问控制用于防止非授权进程对所述隐藏的加密卷中 数据的访问,所述DBMS层面的访问控制用于防止数据库管理系统中非授权用户对敏感数据的访问。
有益效果
本发明提供的方法具有如下优势:
(1)高强度的原始数据保护。被保护的敏感数据存储在隐藏卷中,所有的数据被加密保护,一般用户和工具无法直接访问这些数据。
(2)多层次的访问控制。普通进程无法访问加密数据,数据库管理系统访问数据库文件时需要根据其指纹进行授权,而数据库用户访问敏感数据需要独立于数据库的授权。
(3)实施方便。采用本发明后,对敏感数据的保护不需要知道表的设计和访问方式,可以全表或者全库进行保护,而且访问敏感数据的应用程序不需要修改。从而降低了实施的难度。
(4)高性能。由于采用的是在存储级进行加密,而且便于采用独立的硬件加密设备,对数据库性能的影响非常小。
具体实施方式
下面详细描述中以实例的方式给出了许多具体细节,以确保对本发明技术方法的透彻理解。但是,对于知道本领域基本常识的人,能够理解没有这些具体细节,本发明的实施例也能实现。另外,没有详细描述众所周知的方法、过程、部件和电路,以避免本发明的实现变得不清楚。
本发明的基本思想是:建立隐藏的加密卷,把敏感数据迁至其中,当访问时鉴别进程是否合法,鉴别用户是否合法,合法则返回数据,否则拒绝访问。
本发明的一种数据库透明加密方法,包括如下内容:
A.在隐藏的加密卷中保存数据库文件:建立隐藏的加密卷,将包含敏感数据的部分或全部数据库文件保存在其中,并将对前述数据库文件的访问映射至 隐藏的加密卷;
B.多层次的访问控制:普通进程和DBMS进程访问所述加密卷中的数据库文件时需要授权,通过DBMS访问数据库中的表时根据授权规则进行鉴权。
所述隐藏的加密卷是一个隐藏的磁盘分区,写入该分区的所有数据将被自动加密,该分区的数据被经过授权的进程读取时将被自动解密。
所述步骤A进一步可以通过以下过程实现:
步骤1:统计敏感数据在磁盘中所占空间大小的上限M;计算M加密后所占空间的大小,并以此计算所需的隐藏加密卷所占磁盘空间的大小,检测磁盘是否有足够的空间容纳此隐藏加密卷,如果空间足够,则转步骤2;否则表明磁盘存储已满,结束;
步骤2:在磁盘普通卷中创建数据库文件f并备份敏感表到文件f中,将旧的敏感表删除;
步骤3:通过磁盘加密工具创建一定大小的隐藏加密卷K;
步骤4:通过磁盘加密工具复制文件f到隐藏加密卷K中;并将普通卷中的数据库文件f删除;
步骤5:把对普通卷中文件f的访问映射到隐藏加密卷中;
步骤6:创建与原表t同名的视图,并把对此视图的访问映射到备份表。
上述磁盘加密工具可以采用TrueCrypt,关于此工具的详细信息在网上 http://truecrypt.sourceforge.net均可得到,此处不再详述。
所述多层次的访问控制包括操作系统层面的访问控制和DBMS层面的访问控制;所述操作系统层面的访问控制用于防止非授权进程对所述隐藏的加密卷中数据的访问,所述DBMS层面的访问控制用于防止数据库管理系统中非授权用户对敏感数据的访问。
所述操作系统层面的访问控制具体工作流程如下:
1、收到对敏感数据所在加密卷的访问;
2、判断是否是授权进程,例如根据进程映像文件的路径,数字签名等进行判断,如果是授权进程则转到步骤3;否则,拒绝访问,结束;
3、读取隐藏卷的磁盘数据,解密并返回数据给访问进程。
所述数据库管理系统(DBMS)层面的访问控制具体工作流程如下:
1、数据库管理系统收到对敏感表的访问;
2、将访问映射到代表敏感表的视图;
3、获取访问用户的信息;
4、根据用户信息获取访问用户的授权;
5、校验权限,合法则响应用户的请求,否则拒绝访问。
实施例一:
本实施例以Oracle为例计算敏感数据所需加密文件大小的说明。
步骤1:找出敏感表所属的表空间
select TABLESPACE_NAME from all_tables where table_name=′example_table_name′;
步骤2:找出表空间所属的文件
select file_name from dba_data_files where tablespace_name=′example_tablespace_name′;
步骤3:找出表空间所需大小
select maxbytes from dba_data_files where tablespace_name=′example_tablespace_name′;
步骤4:根据表空间大小和选择的不同的加密算法计算加密后的所需空间大小,调用如下函数
unsigned long computesize(unsigned long size,int method);
此方法返回所需空间大小。
上述计算加密文件的大小时对于所有敏感表属于同一表空间的情况适用,对于所有敏感表不属于同一表空间的情况需要分别计算所需空间大小并进行累加。
实施例二:
本实施例为本发明中表级访问控制的说明。
假设表名为t,将其中的数据备份到隐藏加密卷中后,改名为t1,将对表t1的访问映射到隐藏加密卷。删除表t,创建与表t同名的基于表t1的视图,用以捕获对表t的访问,创建视图的方法如下:
create view t as select*from t1 where checkpermission();
其中checkpermission为授权检查函数,在select查询时,在其中获取用户信息和授权信息,进行权限检查,如通过则返回true,用户得到正确的结果集,否则返回false,用户得到空的结果集。
对视图t建立insert、delete和update的触发器,在触发器中调用checkpermission()检查用户权限。如果通过则响应,否则拒绝。
实施例三:
本实施例为本发明中加密卷授权管理的说明。
对于加密卷,通过文件过滤驱动或者Hook技术,捕获所有对加密卷的访问,并进行授权检查。以Windows上采用Hook方式为例,首先设置全局Hook,通过WriteProcessMemory修改打开文件的接口CreateFile的地址为权限校验函数的地址,当进程访问文件时,先调用权限校验函数,此函数中,通过系统接口GetModleFileName获取文件名,通过接口LookupAccountSid获取用户信息等数据,然后以这些数据为基础进行授权检查。
对于数据库管理系统进程,授权检查内容包括OS用户、进程路径、进程的数字签名等。对于普通进程,则检查OS用户、进程路径、进程的数字签名等,并需要用户输入密码或者其它生物特征进行验证。授权策略可以指定读、写、列表、删除等内容。以上策略中都包括白名单和黑名单,命中黑名单则拒绝访问,白名单则允许进一步访问。
实施例四:
本实施例为本发明中加密卷自动加解密的说明。
自动加解密通过文件过滤驱动实现,以保证对上层的文件系统驱动和下层 的设备驱动透明。
在系统启动时加载文件过滤驱动,设置I/O请求拦截,接管发给下层驱动的I/O请求,对于访问普通卷的I/O请求直接传递到下层设备驱动程序,对于隐藏加密卷的访问则进行特别处理。
当读取隐藏加密卷时,I/O管理器会根据数据是否被缓存,发出不同的I/O请求,从磁盘上或者缓存中获取数据。缓存中的数据已经解密,而磁盘中的数据未解密,当数据不再缓存中需要读取磁盘时,文件过滤驱动首先借助下层驱动获取磁盘数据,下层驱动完成读取后回调过滤驱动的处理过程,从而在此过程中对下层驱动程序读取的数据进行解密处理,完成后传递数据到上层驱动。
写隐藏加密卷与上述读取过程的关键不同是文件过滤驱动在下层驱动写磁盘之前对数据进行加密处理,然后下层驱动将加密数据写入磁盘。
上述自动加解密过程也可以通过所述的工具TrueCrypt实施。
以上详细介绍了本发明实施例所提供的一种数据库全表和全库透明加密及访问控制的方法。其有助于帮助理解本发明的核心思想及其技术细节。在所附的权利要求范围内,具有该领域常识的技术人员会发现本说明书内容不应理解为用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护范围之内。
Claims (8)
1.一种数据库透明加密方法,其特征在于,包括以下内容:
A.在隐藏的加密卷中保存数据库文件:建立隐藏的加密卷,将包含敏感数据的部分或全部数据库文件保存在其中,并将对前述数据库文件的访问映射至隐藏的加密卷;
B.多层次的访问控制:普通进程和DBMS进程访问所述加密卷中的数据库文件时需要授权,通过DBMS访问数据库中的表时根据授权规则进行鉴权。
2.根据权利要求1所述的一种数据库透明加密方法,其特征在于:所述隐藏的加密卷是一个隐藏的磁盘分区,写入该分区的所有数据将被自动加密,该分区的数据被经过授权的进程读取时将被自动解密。
3.根据权利要求1-2任一所述的一种数据库透明加密方法,其特征在于:所述步骤A进一步通过以下过程实现:
步骤1:统计敏感数据在磁盘中所占空间大小的上限M;计算M加密后所占空间的大小,并以此计算所需的隐藏加密卷所占磁盘空间的大小,检测磁盘是否有足够的空间容纳此隐藏加密卷,如果空间足够,则转步骤2;否则表明磁盘存储已满,结束;
步骤2:在磁盘普通卷中创建数据库文件f并备份敏感表到文件f中,将旧的敏感表删除;
步骤3:创建一定大小的隐藏加密卷K;
步骤4:复制文件f到隐藏加密卷K中;并将普通卷中的数据库文件f删除;
步骤5:把对普通卷中文件f的访问映射到隐藏加密卷中;
步骤6:创建与原表t同名的视图,并把对此视图的访问映射到备份表。
4.根据权利要求3所述的一种数据库透明加密方法,其特征在于:所述统计敏感数据在磁盘中所占空间大小的上限M;计算M加密后所占空间的大小包括以下过程:
步骤1:根据敏感数据所在的表(敏感表)找出其所属的表空间;
步骤2:找出表空间所属的文件;
步骤3:找出表空间所需大小;
步骤4:根据表空间大小和选择的不同的加密算法计算加密后的所需空间大小。
5.根据权利要求1-2任一所述的一种数据库透明加密方法,其特征在于:所述B.多层次的访问控制进一步包括操作系统层面的访问控制和DBMS层面的访问控制;所述操作系统层面的访问控制用于防止非授权进程对所述隐藏的加密卷中数据的访问,所述DBMS层面的访问控制用于防止数据库管理系统中非授权用户对敏感数据的访问。
6.根据权利要求5所述的一种数据库透明加密方法,其特征在于:所述操作系统层面的访问控制具体工作流程如下:
步骤1:收到对敏感数据所在的隐藏的加密卷的访问;
步骤2:判断是否是授权进程,如果是授权进程则转到步骤3;否则,拒绝访问,结束;
步骤3:读取所述隐藏的加密卷的磁盘数据,并返回数据给访问进程。
7.根据权利要求6所述的一种数据库透明加密方法,其特征在于:所述判断是否是授权进程根据进程的不同,判断内容如下所述:
对于DBMS进程,授权检查内容包括OS用户、进程路径、进程的数字签名;
对于普通进程,授权检查内容包括OS用户、进程路径、进程的数字签名,以及用户密码或者其它生物特征;
授权策略包括读、写、列表、删除,各策略中都包括白名单和黑名单,命中黑名单则拒绝访问,白名单则允许进一步访问。
8.根据权利要求5所述的一种数据库透明加密方法,其特征在于:所述DBMS层面的访问控制具体工作流程如下:
步骤1、DBMS收到对敏感表的访问;
步骤2、将访问映射到代表敏感表的视图;
步骤3、获取访问用户的信息;
步骤4、根据用户信息获取访问用户的授权;
步骤5、校验权限,合法则响应用户的请求,否则拒绝访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510477683.4A CN104992123A (zh) | 2015-04-16 | 2015-08-07 | 一种数据库透明加密方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510179205 | 2015-04-16 | ||
CN2015101792055 | 2015-04-16 | ||
CN201510477683.4A CN104992123A (zh) | 2015-04-16 | 2015-08-07 | 一种数据库透明加密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104992123A true CN104992123A (zh) | 2015-10-21 |
Family
ID=54303936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510477683.4A Pending CN104992123A (zh) | 2015-04-16 | 2015-08-07 | 一种数据库透明加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104992123A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326699A (zh) * | 2016-08-25 | 2017-01-11 | 广东七洲科技股份有限公司 | 一种基于文件访问控制和进程访问控制的服务器加固方法 |
CN109614819A (zh) * | 2018-12-03 | 2019-04-12 | 北京安华金和科技有限公司 | 一种利用插件提高数据库安全的方法 |
WO2020215567A1 (zh) * | 2019-04-26 | 2020-10-29 | 平安科技(深圳)有限公司 | 全局hook自动修复方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923678A (zh) * | 2010-07-30 | 2010-12-22 | 武汉天喻信息产业股份有限公司 | 一种企业管理软件的数据安全保护方法 |
-
2015
- 2015-08-07 CN CN201510477683.4A patent/CN104992123A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923678A (zh) * | 2010-07-30 | 2010-12-22 | 武汉天喻信息产业股份有限公司 | 一种企业管理软件的数据安全保护方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326699A (zh) * | 2016-08-25 | 2017-01-11 | 广东七洲科技股份有限公司 | 一种基于文件访问控制和进程访问控制的服务器加固方法 |
CN106326699B (zh) * | 2016-08-25 | 2020-02-07 | 广东七洲科技股份有限公司 | 一种基于文件访问控制和进程访问控制的服务器加固方法 |
CN109614819A (zh) * | 2018-12-03 | 2019-04-12 | 北京安华金和科技有限公司 | 一种利用插件提高数据库安全的方法 |
WO2020215567A1 (zh) * | 2019-04-26 | 2020-10-29 | 平安科技(深圳)有限公司 | 全局hook自动修复方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101819612B (zh) | 具有分区的通用内容控制 | |
US9141822B2 (en) | Computer system for storing and retrieval of encrypted data items, client computer, computer program product and computer-implemented method | |
US20180294957A1 (en) | System for Recording Ownership of Digital Works and Providing Backup Copies | |
CN101908106B (zh) | 具有通用内容控制的存储设备 | |
CN101901313B (zh) | 一种Linux文件保护系统及方法 | |
EP1365306A2 (en) | Data protection system | |
KR100829977B1 (ko) | 데이터 기록 세트의 무결성 보장 방법 | |
US20070079386A1 (en) | Transparent encryption using secure encryption device | |
WO2004099947A2 (en) | Memory protection systems and methods for writable memory | |
WO2005081115A1 (en) | Application-based access control system and method using virtual disk | |
CN103106372A (zh) | 用于Android系统的轻量级隐私数据加密方法及系统 | |
CN106575342A (zh) | 包括关系数据库的内核程序、以及用于执行所述程序的方法和装置 | |
US11861027B2 (en) | Enhanced securing of data at rest | |
US11693981B2 (en) | Methods and systems for data self-protection | |
CN101635018A (zh) | 一种u盘数据安全摆渡方法 | |
JP2007140798A (ja) | コンピュータの情報漏洩防止システム | |
CN104318176A (zh) | 用于终端的数据管理方法、数据管理装置和终端 | |
CN101739361A (zh) | 访问控制方法、访问控制装置及终端设备 | |
US20020172363A1 (en) | Data security on a mobile device | |
US20210142319A1 (en) | Systems and methods for distributed data mapping | |
CN113468576A (zh) | 一种基于角色的数据安全访问方法及装置 | |
US11853445B2 (en) | Enhanced securing and secured processing of data at rest | |
CN104992123A (zh) | 一种数据库透明加密方法 | |
KR101227187B1 (ko) | 보안영역 데이터의 반출 제어시스템과 그 제어방법 | |
US20230107805A1 (en) | Security System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151021 |