基于数据库外层加密的洋葱式加密模型探讨*
2013-09-25吴开均汤殿华
吴开均,汤殿华,曾 兵
0 引言
随着全球数字化、信息化和网络一体化的推进,对用户信息和商业机密等敏感数据的保护越来越受到公司和各个国家的重视。为了保护数据的绝对安全,这就需要对数据进行加密,数据库是数据最重要的载体,研究数据库安全问题将是未来的热点方向。文中首先简要的介绍了数据库加密层次问题,对数据库外层加密进行重点探讨。在这里给出一种基于代理的数据库外层加密模型设计,同时提出一种“洋葱式”加密安全思想,并给出其安全模型设计,从而最大限度的保证数据库加密系统的安全性和实用性。
1 数据库加密系统设计概述
通过对数据库加密系统分析,当前主要分为三种模式:基于操作系统层的加密、基于数据库系统的内核层加密和基于数据库系统的外层加密,下面分析三种模式的优缺点。
基于操作系统的加密,这种方法最大的优点是极度简化了数据库系统的设计和实现,这种方法把所有加/解密操作和密钥管理[1]都交给了操作系统与文件系统来操作,采用这种方法对数据库系统是完全透明。但是,操作系统本身不能识别数据库的表结构关系,应用起来不够灵活,同时对数据库中的数据全部加密,极大的降低了数据库工作效率。基于操作系统次的加密,是不可取的。
基于数据库系统的内核层加密,这种加密方法优点在数据库系统内核层直接完成交互操作,具有强大的管理功能,也不影响数据库的应用和其他逻辑操作。基于数据库的内核级别修改需要提供数据库的许多内部接口,但通常数据库接口不对外提供;若使用开源的数据库系统,可以使用数据库接口及源代码,但要完全通过源代码理解数据库系统软件逻辑并修改也是比较艰巨的任务。这样的加密方式,会增加数据库系统的负担从而影响性能,其结构如图1所示。
图1 数据库内核层加密关系Fig.1 Architecture of encryption model for kernelly DBMS
基于数据库的外层加密,通过外层代理提供加/解密操作,这种方式对数据库完全透明,数据库系统按照正常方式接收请求和作出请求响应即可,不对数据库系统做繁琐的设置等操作。选取这种加密的方式,加/解密运算模块可以放在用户端进行,其最大的优点是不会额外加重数据库服务器的负载就可实现网上的传输加密,这是实际当中比较可行的一种方式,其结构图2所示。
图2 数据库外层加密关系Fig.2 Architecture of encryption model for external DBMS
2 数据库外层加密的设计构想
根据数据库的商业应用分析,理想状态的数据库加密系统最重要的特征是应该具有可移植性,数据加密操作对数据库而言完全透明,可以无缝对接到MySQL、Postgres等数据库系统,不用更改其数据库代码;数据库加密系统[2]对数据加密后存放到数据库中,同时支持在加密数据上执行完全的数据库访问查询操作;加密后的数据和原数据相比,数据扩展带来的效率折损能够达到实用化水平;数据库加密系统应能最大限度的支持单用户和多用户的应用。
2. 1 架构模型的设计
文中拟设计一种基于数据库外层的加密系统,主要包括数据库管理系统(DBMS)和数据库加密代理[3],整个运行结构包含有:用户端计算机、应用服务器、代理服务器、DBMS服务器,如图3所示。
图3 数据库加密系统架构设计模型Fig.3 Design of encryption model for external DBMS
用户端计算机侧单个用户或多个用户发起一个应用会话,应用服务器根据用户端的行为,应用服务器根据用户端的请求向代理服务器方发起询问,代理服务器将询问加密重写后向DBMS服务器中的加密数据进行询问,完成询问后DBMS服务器按照正常的数据库操作完成应答响应提交加密代理,加密代理将询问结果返回用户完成整个应用会话过程。
加密代理中分为通信管理模块、加/解密模块和密钥管理模块,其中通信模块完成整个通信过程的调度和转换,加/解密模块完成对数据的加密和解密,密钥管理模块完成根据用户口令生成密钥的管理以及根据加密需求派生出相应的密钥,并将派生出的密钥加密后存放在数据库中以供调用。
2. 2 安全模型设计
在数据库管理系统中最传统威胁包括来自内部管理员威胁和外部的攻击者威胁。威胁一,出于好奇或者恶意的内部数据管理者可能偷看DBMS中的数据;威胁二,外部攻击者可能通过非法手段取得应用和控制DBMS服务器的权限从而达到窃取数据库中的敏感信息。
在安全模型设计中,既要考虑数据加密存储后能支持完全的数据库询问,同时也要考虑数据的安全性,安全模型设计从两个方面进行考虑:
(1)支持数据库操作的加密策略
由于所有的SQL查询都是由最基本的操作组成:连接、求和、等值查询、大小比较。找到各自支持这些本原操作的加密算法,就可以完成所有的SQL操作。如对称密码AES-CMC可以支持等值查询,保序加密算法可以支持大小比较,同态加密算法Paillier加密系统可以对数据进行求和,至于连接查询可以使用ECC加密。
(2)基于询问的自适应加密
为了实现对密文数据完成最基本的SQL操作,对不同的加密策略数据项进行逐一加密,不同的操作组合对应不同的加密策略组合,当执行询问时,根据询问将数据动态调整到能执行该询问的加密组合,实现询问操作。
基于以上思想,将数据库最基本的操作组成分类,每类操作设计成一个加密模型,遵循由外到内逐层加密,外层加密安全等级最高从而保证数据最基本的安全,内层根据操作(搜索、加、等值查询或比较查询)等操作选择满足相应功能的算法,我们将次类似洋葱的加密模型称为“洋葱式加密”模型。目前初步设计四类洋葱模型,分别是搜索洋葱、加洋葱、等值洋葱和比较洋葱,如图4所示。
图4 洋葱加密模型Fig.4 Onion-mode of encryption model
对数据进行洋葱式加密处理后,根据数据库支持的查询功能进行对应的洋葱式加密,将加密后的数据存储在数据库中,即使攻击者或者内部管理员也无法知道加密后的每列数据代表什么意思。当用户需要对数据进行操作,首先定位该操作由哪个洋葱完成,再判定处于该洋葱的第几个洋葱层,就可以一层一层的进行解密,实现相应的数据操作。数据存储如图5所示。
图5 明文数据转化为洋葱加密后的数据Fig.5 Database data encrypted
每个洋葱层算法的选择可以参考如下:
(1)搜索洋葱
Word Search(SEARCH):SEARCH能够在加密文本数据上执行关键字搜索操作,比如MySQL的LIKE操作。当执行该密文搜索时首先提取文本中所有的关键字(去掉重复的),然后使用具有检索功能的加密方案对关键字加密。其特性为:
泄露文本中关键字数量,但可以保证信息的机密性;
允许对文本进行关键字搜索(密态)。
所使用算法:Song等人的密码协议。
(2)加洋葱
Homomorphic Encryption(HOM):所使用的同态算法HOM为单同态,只能支持“加法同态”,用于在密文上对数据进行求和运算,即
支持SQL上数据的 SUM,求平均数等操作,其特性为:
IND-CPA安全的方案,基本不泄露信息;
允许进行 SUM,+,AVG。
所使用算法:Paillier加密系统。
(3)等值洋葱
Random(RND):RND提供了最强的安全性,可以达到IND-CPA安全。所使用的算法是概率的,相同明文产生的密文是不同的。不支持任何的SQL操作。其特性为:
不泄露信息;
但是不能进行任何密文计算。
所使用算法:AES-CBC。
Deterministic(DET):DET所提供的安全性较RND弱,由于要求DET加密下的密文具有等值查询的功能,要求其相同的明文产生相同的密文,该算法应该是确定性加密。其特性为:
泄露了相同密文所对应的明文是相同;
所使用算法:AES-CMC(iv=0)。
Equi-join(JOIN):由于不同列所使用的密钥不同,当进行连接操作时,必须把密钥调整到相同,即相同密钥的DET加密方案。其特性为:
当未对两列进行连接查询时,由于加密密钥不同,不会泄露两列的关系;
将被查询列的密钥调整到相同,允许等值连接。
所使用算法:ECC加密,AES-CMC。
(4)比较洋葱
总部位于德国亚琛的FEV集团是一家国际化动力系统及整车开发的国际服务供应商。针对动力系统及整车,FEV可以提供从概念设计到最终批量生产的全部咨询、开发、测试等服务。除了传统的发动机与变速箱的开发、整车集成、标定以及汽油机柴油机本地化等业务,FEV将把重点放在混合动力、电驱动以及可替代能源领域。同时,FEV的专家团队也专注在电子控制系统、车联网以及自动驾驶等先进技术。
Random(RND):同等值洋葱。
Order-preservingEncryption(OPE):OPE 能够将明文间的大小关系保持到密文中,即对于任何密钥 K,如果 x<y,有 OPEK(x)<OPEK(y)。该算法是为了维持对密文数据的比较操作,但是泄露数据的大小信息,其特性为:
泄露数据的大小顺序;
允许进行比较查询,ORDER BY,MIN,MAX,SORT。
所使用算法:BCYO保序对称加密算法。
Range-join(OPE-JOIN):很少发生,需要提前宣称所需比较的列,并匹配密钥。
3 结语
文中对于数据库加密系统设计进行了初浅的探讨,并根据自己的理解提出了一种基于数据库外层加密的洋葱式加密设计思想,同时对洋葱层加密算法在理论层面做了初步选择,后面将进一步验证。但作为大势所趋,对不改变数据库原有结构同时能对加密后的数据进行完整同态操作的数据库加密设计思想将会是未来研究的热点,尤其是未来以云计算为应用背景的研究将是重中之重。
[1] 冯朝胜,袁丁.密钥管理在数据库加密系统中的应用研究[J].四川大学学报:自然科学版,2005(06):1118-1122.
FENG Chao-sheng,YUAN Ding.Application Research on Key Management in Database Encryption System[J].Journal of Sichuan University:Natural Science Edition,2005(06):1118-1122.
[2] 朱鲁华,陈荣良.数据库加密系统的设计与实现[J].计算机工程,2002(08):61-63.
ZHU Lu-hua,CHEN Rong-liang.Design and Implementation of Database Encryption System[J].Computer Engineering,2002(08):61-63.
[3] 安然,陈驰,徐震.数据库加密中间件的设计与实现[J].计算机工程与设计,2009,30(14):3261-3265.
AN Ran,CHEN Chi,XU Zhen.Design and Implementation of Database Encryption Middleware[J].Computer Engineering and Design,2009,30(14):3261-3265.