陈 君
(武汉纺织大学,湖北 武汉 430200)
异构数据库是存在关联的若干个数据库的集合,能够实现数据共享与透明访问,各数据库在添加至异构数据库前就已存在,且具有自治性,通过异构数据库实现数据共享的同时,各数据库仍具有各自的应用特性、完整性及安全性控制。异构数据库的应用范围十分广泛,数据库遭受入侵、更改、破坏、泄露等问题的数量也呈现出不断增加的态势。保护数据库系统的高性能、高可用,提高数据安全性,确保关键性数据不被泄露受到了相关专家与工作人员的高度重视[1-2]。
数据库安全保护需要从数据完整性、保密性及可用性多方面综合考虑。当前数据库管理系统,大部分都采用了用户认证、授权管理、安全审核等多项保护技术,解决了部分数据防窃取与防篡改方面的问题[3]。现在应用的数据库加密方法可划分为库内加密、库外加密以及硬件加密三种方式:
1)库内加密。在数据库内部进行数据加密,数据库管理系统在数据物理存取前进行加密与解密计算,并通过系统表存储密钥[4]。库内加密算法的功能较强,便于操作,但会增加数据库管理系统的运行负担,且数据密钥存在较大的安全风险。
2)库外加密。根据数据库表与各类数据的加密特点,通过数据库加密系统进行数据库的自动加密与解密[5]。该方式的密钥管理简单,但其加密、解密效率相对较低。
3)硬件加密。在数据物理存储器与数据库系统中间添加一个硬件中间层,利用该硬件进行数据加密与解密任务。该方法所添加硬件可能与数据库系统硬件存在不兼容问题,且调控过程比较复杂[6-7]。
针对异构数据库的数据安全保护问题,提出基于B/S结构的异构数据库加密算法,并通过仿真检验了该算法的性能。
B/S的全称为Browser/Sever,该结构中,客户机仅需通过浏览器(Browser),即可访问服务器(Sever)内置的各类数据库。该结构下,用户界面的访问完全通过浏览器实现,浏览器通过网络服务器实现用户端与数据库的数据交互。B/S结构中,主要事务逻辑在服务器端实现。相比于C/S结构,B/S结构无专用网络需求,能够在广域网运行,用户群比较广泛,构件的重用性更好,系统开发与维护成本相对较低,且信息交互性更好。但由于广域网的大范围覆盖,以及客户群的复杂性与分散性,导致B/S对安全的控制能力相对较弱。需要通过用户访问控制、数据加密、身份认证等安全服务来保证数据库安全。基于B/S结构的异构数据库加密体系结构如图1所示。
图1 基于B/S结构的异构数据库加密体系结构
根据图1,用户通过PC端向数据库服务器发出指令后,WEB服务器对加密数据库中的所需数据进行解密,解密后通过客户端反馈结果。具体流程为:
1)客户端输入指令,账户登陆与用户权限验证。
2)用户访问请求及密钥输入,数据库服务器判断用户请求并查询对应的数据内容。
3)WEB服务器判断该部分数据的加密密钥,加密类型及算法。
4)WEB服务器将用户指令转换为可操作指令,传送至数据库服务器内传递查询指令。
5)数据库服务器将加密数据传输至密文管理系统中,通过该系统识别安全等级,并根据用户权限进行解密反馈。
6)用户完成数据访问后,向服务网器发送结束指令,数据传输断开连接。
采用B/S结构的异构数据库加密体系,具有以下几方面优点:
1)客户端交互模式更简单。避免了C/S模式需要在各客户机安装不同的应用程序,仅需通用浏览器即可运行,操作更加简单,同时能够节约客户机内存空间。
2)简化开发、维护的复杂度,成本更低。开发过程中,不需要为不同等级用户设计差异化客户程序,仅需在WEB服务器设置所有功能,对于不同等级用户设置对应的权限即可。其维护过程仅针对WEB服务器就可以,无需再实地进行不同客户端维护。
3)操作更简单,应用范围更广。不需要复杂的、差异化的客户应用程序,界面统一、简约,无需进行使用培训。B/S结构更适合网络信息发布与获取,过程更加方便,省时省力,有利于企业工作效率的提升。
通过上述分析,以B/S加密体系结构为基础,进行异构数据库加密计算,生成密匙管理机制,计算用户总密钥,设置对应的数据库内容获取权限及操作权限,实现异构数据库的多级别加密及管理。
数据库加密的核心是加密算法,数据的安全取决于密钥的安全,在密钥安全的情况下,才能避免数据库系统被入侵。保障数据库系统的安全性以及数据加密效率,是密钥管理的重要任务,主要环节包括:密钥设计、发放、储存、使用、更改、消亡等。
加密算法与密钥管理是加密系统中不可或缺的重要元素。数据加密的基本过程即为对初始为明文的数据集文件,通过某种算法进行处理后,将其转换为不可读的一定长度的代码(即密文),仅有输入对应的密钥后才能显示出原本内容[8]。通过数据加密来保护数据库,以免被不法分子窃取,造成重大损失。数据库加密效果还与密钥管理密切相关,据此,设定密钥管理机制,主要内容包括:
1)密钥长度及内容必须满足一定的安全级别。
2)密钥必须能够被复制,且与对应的加密数据互相匹配。
3)密钥分配过程必须安全、保密,且密钥内容应定期进行更换与回收。
各级权限中心密钥及用户密钥生成计算的基本过程如下:
假设加密数据库服务器的用户信息中央权限管理中心为TA,并由此为各位用户分配对应的全局用户身份数字签名字符串,记作GID;为各级权限中心AA分配对应的全局识别标识,记作AID。系统初始化时,通过中央权限管理中心给出用户密钥结构的递归深度,记作depth,再结合各级权限中心及用户属性子集之间的对应关系,即可得出多级权限中心的层次最大值[9]。
以depth=2进行举例说明,选取参数α及{β1,β2},则系统公钥PK0及主密钥MK0的表达式如下
(1)
MK0={β1,β2,gα}
(2)
其中,G0为双线性群,g为G0的生成元,e为G0上的映射。h1、h2、f1和f2为G0的乘法循环群。
一级权限中心AA及下级权限中心AAk+1的主密钥分别为
(3)
(4)
(5)
(6)
其中,βk,1、βk,2分别代表对应权限中心的2组局部主密钥。最终得到用户总密钥表达式如下
(7)
式中,Duser是由中央权限中心颁发的用于密文解密的用户总解密密钥。
对于数据所有者,在将明文数据M上传至数据库服务器前,应先对明文数据进行加密处理,根据WEB服务器权限管理中心设置的用户访问权限规则,以及各权限中心管理的综合属性集合,将用户访问策略拆解为若干个子策略,设其数量为W个,各子策略分别与W个权限中心对应。
(8)
假设权限中心AAw上的访问策略树为T(w),从该策略树的根节点R开始,之后的每一个节点x(w)都存在对应的多项式qx。策略树中的非叶子节点,对应多项式的阶dx比节点x的变化限定值kx小1,对应的描述式为dx=kx-1;对于叶子节点,其对应多项式的阶为0。对于访问策略树根节点以外的任何一个节点x(w),均满足qx(O)=qparent(x)(index(x)),qx的其它值可随机选取;对于访问策略树的根节点,满足qR(O)=θ,剩余项随机选取,利用Lagrange多项式来确定qx门限多项式[10]。分别用Y(w)和X(w)代表策略树上的全部叶子节点y(w)的集合以及全部非叶子节点x(w)的集合。
同理,在余下的W-1个权限管理中心执行相似的加密过程,最终得到明文数据M的密文与访问策略为
(9)
对于加密后的异构数据库内容,其密文可通过加密逆运算方式进行解密,再次转换为明文形式,通过服务器客户端进行反馈。在用户获取数据库内容,及密文的解密过程中,根据用户级别的差异,通过WEB服务器用户信息权限管理中心,设置了对应的数据库内容获取权限及操作权限,实现了异构数据库的多级别加密及管理。
为了验证所提基于B/S结构的异构数据库加密算法的性能,需要进行一次仿真。实验过程中分别采用MongoDB3.0.0和Mysql5.0.22存储数据加密保护策略与临时更新表数据。以SQL Server 2005作为数据库平台,选取化学实验器材存货表进行加密实验。
实验平台及模拟用户端配置情况分别如表1所示。
表1 实验平台与客户端配置
初始数据表与加密后得到的数据表分别如表2和表3所示。表中内容包含编号、名称、规格型号、单位、单价及数量,分别用mum、name、spe、unit、pri和qua表示,其中,仅单价和数量为需要加密的内容,其余为可公开内容。
表2 初始数据表
表3 加密后数据表
经过加密算法处理后,单价pri栏与数量qua栏的内容发生变化,转换为相同长度的代码,与其对应的原值及对应内容之间无任何变化规律,其它可公开数据内容无变化。
分别采用本文算法与关联运算的数据库加密算法进行实验对比,以加密数据的损失情况来衡量数据加密效果,对比结果如图3所示。
图2 原始数据库
图3 不同算法的加密数据损失情况
根据图3可知,对同一数据库进行加密过程中,采用本文算法对数据库不仅起到了一定的加密作用,并且能保证加密数据库中的数据没有任何损失,但是采用关联运算的数据库加密算法对此数据库进行加密时,在加密过程中数据损失较大,说明采用本文算法对云存储平台下数据进行加密可以有效地较少数据损失。
以数据查询及内容更新两项业务为例,得到实验结果如图4所示。图4中,BS代表所提出的算法,MA代表基于关联运算的数据库加密算法,MB代表基于Arnold变换的数据库加密算法。业务处理时间计算公式如下
图4 三种算法的业务处理时间
Tc=ent(Tf/Nc)
(10)
式中,Tf表示实信号特征量,Nc表示查询与更新业务量。
由上图可知,针对数据查询与更新业务,三种算法中,所提算法的业务响应时间更短,说明所提算法的运行效率更高,其性能优于实验对比的另外两种算法。
加密是通过明文信息隐匿处理,使其在特殊信息不完整时不可读的方式,来保护数据或信息的安全性。针对针对传统方法用户与权限中心的密钥对应层次不均,导致异构数据库加密时间长的问题,提出基于B/S结构的异构数据库加密算法。仿真结果表明,所提出算法能够有效完成异构数据库加密与解密过程,且运行效率较高,安全防护效果较好。