APP下载

分布式数据库的安全性及其防护策略*

2016-04-12谢娟文焦爱胜兰州理工大学技术工程学院甘肃兰州730050兰州工业学院机电工程学院甘肃兰州730050

甘肃科技 2016年3期
关键词:身份认证数据加密安全策略

谢娟文,焦爱胜(.兰州理工大学技术工程学院,甘肃兰州730050;.兰州工业学院机电工程学院,甘肃兰州730050)



分布式数据库的安全性及其防护策略*

谢娟文1,焦爱胜2
(1.兰州理工大学技术工程学院,甘肃兰州730050;2.兰州工业学院机电工程学院,甘肃兰州730050)

摘要:根据分布式数据库体系结构的特点必然会引发分布式数据库中数据的安全性问题。本文分析了该系统的体系结构和各类不安全因素,对经常采用的安全策略进行了比较,分析了它们各自存在的优劣特性。

关键词:分布式数据库;安全策略;身份认证;访问权限控制;数据加密

1 概述

分布式数据库系统(DDBS)是由分布式数据库管理系统(DDBMS)与分布式数据库(DDB)两部分组成,是数据库技术与计算机网络技术相结合的产物[1]。分布式数据库系统的提出,是由于各类用户对数据共享的不同需求交叉地分散于企业或不同部门当中,而它应需而生,来管理这些分布式的数据。使用分布式数据库不仅可利用自身的资源和条件,还可最大范围地利用网络当中的站点资源,这样就突显出一个很具体的问题——数据库的安全性,处理不好这个问题将直接影响到分布式数据库系统的稳定性和完整性。

2 分布式数据库体系结构及数据安全性

2.1分布式数据库体系结构

分布式数据库系统可看成是一些数据集合,逻辑上属于统一的一个整体,物理上则是各自分散存储在每个站点,要求它们必须连接于计算机网络当中,并且具有场地自治的能力,同时统一地被DDBS管理。这与集中式数据库有着显著的区别。LDBMS(本地数据库管理系统)服务本地数据库和全局查询的子查询等任务。GDBMS(全局数据库管理系统)主要来协调全局事务的执行。CM(通信管理器)负责各场地之间信息的传递,提供支持分布式事务的相应通信机制,其体系结构如图1所示。

图1 分布式数据库系统体系结构

2.2分布式数据库数据安全性

与传统集中式数据库比较,DDBS安全性目标包括以下几个方面:

1)数据的完整性。包括数据库数据中物理完整性、逻辑完整性和元素完整性。

2)数据的保密性。包括数据库中用户身份鉴别、访问控制、对推理攻击的防范、可审计性、防止隐蔽信道攻击和语义保密性等。

3)数据的可用性。包括系统错误导致的数据库破坏、修复系统时数据库破坏以及清除数据库垃圾等。

分布式数据库不安全因素包括:数据在各站点上的不安全、访问数据时不安全和数据传输过程中的不安全。一般的,有未授权的信息泄露、非授权的数据修改、拒绝服务等安全威胁。具体的安全隐患有窃听、越权攻击、假冒攻击、破译密文,迂回攻击以及重发攻击等形式。对于DDBS而言明确网络中的合法身份的程序变得复杂了,在网络中传输信息的风险也随之俱增,采取联合访问控制手段显得很有必要。

3 分布式数据库数据安全策略

根据分布式数据库数据安全性,要消除安全隐患,满足数据安全需求,通常采取身份认证、提高保密性、访问控制、数据加密、安全审计以及故障恢复等安全策略。

3.1各工作站点的身份认证和访问控制

在对数据库中的数据进行操作之前,为了防止非法用户进行各种可能的非正常操作,必须在工作客户端和数据库服务器上进行不同的身份验证。身份认证技术从单一、简单、静态认证发展到复杂、动态认证,各有其优劣。通常可采用以下几种:静态口令鉴别,一般由用户自行设定,安全性比较低。动态口令鉴别是目前较为安全的一种方式,此方式的口令是动态变化的,每次登录动态生成新口令主,采用一次一密的方法,安全性相对较高。若保密级别高可采用生物特征认证技术,如指纹、虹膜和掌纹等,安全性较高。还可采用智能卡与个人身分识别相结合的方式。

合法的用户访问控制有两种形式:自主存取控制和强制存取控制。前一种是可由系统管理员来进行访问控制表设定,明确用户对何种数据对象才能进行什么样的操作权限。后一种则是按照TDI/ TCSEC标准中安全策略的要求采取强制存取检查手段,分别给系统内的主体即管理的实际用户和客体分别指定一个敏感度级别,然后根据主体的安全级别和客体的保密度级别对应关系,以及它们之间遵循的规则来对数据库内容进行存取。如为了使数据库的安全操作得以保障,引入对用户权限的控制技术,可在DDBMS中把数据库的用户分为客户、使用者和管理者3级,对其读写权限分别进行相应的设置。

3.2提高保密性

用户通过不同方式的身份认证后,才能进一步地进行数据传输。实际应用中传输的数据量比较大,为了防止在传输过程中因非法攻击所造成的泄密问题,必须对所要传输的数据进行加密。也可实行实时入侵检测的方法,在通信双方之间有必要建立安全的私用通信通道。

3.3数据库数据加密

对于一些保密机构,数据库系统中存储着高敏感性数据,在管理过程中,为了防止数据库中数据在存储过程及传输中失密,对数据库数据进行存储加密以及传输加密,从而使非法用户无法来获知数据的内容。

3.3.1非对称密码

为了防止非法入侵者的主动攻击和被动攻击,可以采用CIA三元组的概念达到相应的安全目标。实际应用最广泛的是非对称密码体制(公钥密码),它的原理是加密和解密使用不同的密钥,一公一私两个密钥。公钥算法的基础是数学函数,不同于代替和置换。RSA加密算法最具代表性,它的算法实现有3个过程:密钥产生(生成公钥和密钥),加密过程以及解密过程。攻击RSA的困难性在于寻找大合数的素因子。

3.3.2加密粒度

加密粒度指以表、记录、域或数据元素为单位的加密和解密方式。数据加密和解密可以保证重要数据对象的安全性,但以耗费大量的系统资为代价。为了提高对数据库数据的访问速度,在DDBS中可以调整加密的粒度。实践得出结论,加密粒度分别与加密密钥的数量、密钥管理的复杂性度、系统开销都成反比关系。

3.3.3加密方式

1)数据库外部加密。具体实现方法为在分布式数据库外增加一个加密层专门负责对数据加解密。这类方式,对DDBS的依赖性比较小,实现起来比较简单,缺点是付出的时空代价大,并且速度慢。

2)数据库内部加密。具体实现方法是在数据库的内模式,物理模式之间增加一个加密层让它来负责对数据加解密。这类方式,对DDBS的依赖性强,实现比较复杂且成本大,优点是安全性能更高。

3.3.4传输加密与密钥管理

在分布式数据库系统运作过程当中,常见的有基于安全套接层协议的端到端的可信传输方案。通信双方需要协商建立可信连接,一次会话采用一个密钥,数据在发送方加密,而在接收方进行解密,能够有效地降低重放攻击和恶意篡改的风险,假如有第三方对密文时进行任何篡改,都会被真实地接收方通过摘要算法加以识别,并且解决了密钥存储的问题。加密后安全性得到了进一步的提升,但增加了相应的查询处理复杂性,查询效率会大打折扣,因此,我们就根据安全可信度级别分别采用各自适应的的密码体制。

如一电子商务系统在服务器端解密可用如下程序实现:

itit main()

{

while((Rum=recv(connectfd,revbuf, MAXDATASIZE,0))>0)

{

revbuf[num]=’\0’:

wordkey[8]={’x’,’y’,’z’,’i’,’m’,’f’,’k’,’t’}:

wordi,x1[8],x2[8]:

for(i=0:revbuf[i]! =’\0’:i+T)N=i:

if((N+I)<8){

for(i=0:i((N+I):i++)

for(i=(N+I):i<8:i++)

DES(x1,key,x2,1):

for(i=0:i

}

else{

M=N/8:

flag0=0:

flagl:l:

for(i=0:i

for(j=0:j<8:j++)C[j]=reVbuf[fla90+j]

DES(x1,key,x2,1):

for(i=0:i<8:i++)unencryptbuf[flagl十i]=x1[i]

flagl+:8:

flag0+=8:

}

for(i=0;i

for(i:N%8:i<8:i¨)c[i]:0x00:

DES(x1,key,x2,1):

for(i=0:i

}

}

3.4数据安全审计

前面所提到的各站点工作身份认证、访问控制等是安全保护方面的重要技术,但是为了达到一定的安全级别,还需考虑安全审计功能。任何一种系统的安全保护措施都不是完美的,一些蓄意进行破坏及盗窃的人总会想尽一切办法来打破安全控制。审计功能会将全部用户对数据库数据的访问自动记录放入到审计日志中去,审计人员通过监控审计日志中的对数据库的各种操作来确定出现在分布式数据库系统的可能非法入侵行为,并对潜在的威胁提前加以防范措施,以免造成不必要的损失。审计主要起到对特定用户或者是选定的对象相关的操作记录进行后续的查询分析以及后期追踪对象的依据。审计比较浪费时间和空间,一般将其设置为可选特征,它比较适合安全性要求较高的机构。

3.5故障恢复

通过上述数据库安全策略的实施,感觉已经解决了不少问题,但在分布式数据库系统管理过程中,还有其他因素引发的问题:比如,介质故障或是系统故障,这都会导致各类问题的发生,情况比较严重者将会破坏数据库中部分或是全部数据,造成很严重的后果。那么数据库恢复可以解决这些问题。DDBS中常采用分布式事务的两段提交协议来应对,大多数故障它都可以解决,唯一前提条件是DDBS中的运行日志必须存在。

3.5.1两阶段提交协议

两阶段提交协议中,发出事务执行的为协调者,而网络内其他协作站点称为参与者。只有协调者能够提交或撤销事务,而所有参与者只能各自负责本地数据库中的事务操作,并向协调者进行应答,或提出提交或撤销事务的意向。两者关系如图2所示。两阶段提交协议工作过程如下:

假如协调者决定提交事务,它通过网络向所有参与者发送Prepare消息进入第一阶段也称为表决阶段。

所有参与者各自发送Ready或者Not Ready消息进行应答是否仍要提交事务。协调者或在事务进行过程中一旦接收到第一个Not Ready,它将给所有参与者发送一个Global Abort消息并取消正在执行的进程。

图2 DDBS协调者和参与者关系示意图

此时进入第二阶段也称执行阶段。参与者接收到Global Abort消息并执行。若还有协调者从所有参与者接收到Abort ACK消息,它也将取消正在执行的进程。假如,所有参与者都想提交事务,它们都发送一个Ready消息,协调者则发送Global Commit消息,所有参与者确认此动作,之后协调者收到所有参与者的Commit ACK消息后,事务将进行全局提交。

3.5.2各站点故障处理

1)如果是参与者将准备好记录写入本地日志之前,发生故障。那么协调者发出撤销命令,所有参与者将会全部撤销它们的子事务。解决该故障时,发生故障的参与者只须撤销自己的子事务,其他参与者不会受到影响。

2)如果是参与者将准备好记录写入本地日志后,发生故障。那么其他参与者站点不受其影响继续处理该事务(提交或撤销)。解决该故障时,该参与者站点必须了解其他相关站点的情况,之后再做出相应的执行决定。

3)如果是协调者将准备好记录写入日志后,在写入正常提交或中止事务之前,发生故障。那么所有回答ready T消息的参与者必须等待协调者自行恢复后,再次把准备消息发送给参与者,每个就绪的参与者必须具有识别出,这个prepare T消息是新消息还是旧消息的能力。

4)如果是协调者在日志中写入正常提交或中止事务之后,而在日志中写入事务完成以前,发生故障。那么协调者在恢复后,必须再次发送他的决定,没有收到此消息的所有参与者,必须等待协调者自行恢复完毕。

5)如果是协调者在日志中写入事务完成以后,发生故障。意味着此事务已经全面结束,协调者在故障恢复后不做任何反应。

4 结语

在实际应用中,分布式数据库系统中安全性和利用效率无法兼得,只能在互相制衡中寻求两者的平衡点,单独地采用任何一种安全策略都不能解决实际问题,应该针对具体问题,结合多种安全机制来保障其安全性。另外,由于分布式数据库系统不安全因素的不可预见性,所以,这是一项任重而道远,坚持不懈的工作。

参考文献:

[1]王珊,萨师煊.数据库系统概论(第5版)[M].北京:高等教育出版社,2014.

[2]陈永强.分布式数据库系统安全策略分析[J].武汉:武汉工业学院学报,2003(6).35-37.

[3]M.Tamer Ozsu,Patrick Valduriez,周立柱译.分布式数据库系统原理(第3版)[M].北京:清华大学出版社,2014.

[4]Saeed K.Rahimi,Frank S.Haug,分布式数据库管理系统实践[M].北京;清华大学出版社,2004.

[5]邵佩英.分布式数据库系统及其应用[M].北京:科学出版社,2000.

[6]江文斌,张仁津,张方霞.分布式数据库系统安全策略分析[J].电脑知识与技术,2009.

[7]张乐乐.浅析分布式数据库系统的安全策略[J].科技资讯,2012(19):25-27.

*基金项目:2013年度甘肃省高等学校科研项目(项目编号:2013A-125)。

中图分类号:P209

猜你喜欢

身份认证数据加密安全策略
基于飞行疲劳角度探究民航飞行员飞行安全策略
一种防火墙安全策略冲突检测方法*
浅析涉密信息系统安全策略
大数据时代个人隐私的保护
校园网云盘系统存在的安全问题及对策
AES和RSA混合加密技术在网络数据传输中的应用
基于指纹身份认证的固定通信台站干部跟班管理系统设计
云数据存储安全关键技术研究
一种基于虚拟专用网及数据加密技术的企业财务会计记录直报系统的实现方案
Kerberos身份认证协议的改进