分布式数据库,分布式数据库的安全探讨

分布式数据库的安全探讨 - 网络安全 - 电脑教程网

分布式数据库的安全探讨

日期:2007-05-02   荐:

  分布式数据库系统是物理上分散而逻辑上集中的数据库系统。分布式数据库系统使用计算机网络将地理位置分散而管理和控制需要不同程度集中的多个逻辑单位(通常是集中式数据库)连接起来,共同组成一个统一的数据库系统。因此,分布式数据库系统可以看成是计算机网络与数据库系统的有机组合。
  Internet的高速发展推动着分布式数据库的发展,但同时也增加了分布式数据库安全问题的复杂性。如何才能保证开放网络环境中分布式数据库系统的安全?
  一般情况下,分布式数据库面临着两大类安全问题:一类由单站点故障、网络故障等自然因素引起,这类故障通常可利用网络提供的安全性来实现安全防护,所以说网络安全是分布式数据库安全的基础;另一类来自本机或网络上的人为攻击,即黑客攻击,目前黑客攻击网络的方式主要有窃听、重发攻击、假冒攻击、越权攻击、破译密文等,针对这类安全隐患,我们分别介绍下列分布式数据库安全关键技术。
  身份验证
  
  为了防止各种假冒攻击,在执行真正的数据访问操作之前,要在客户和数据库服务器之间进行双向身份验证,比如用户在登录分布式数据库时,或分布式数据库系统服务器与服务器之间进行数据传输时,都需要验证身份。
  著名的Kerberos协议是一种基于对层码体制的身份验证协议。在该协议中各站点从一个密钥管理中心站点获得与目标站点通信用的密钥,从而进行安全通信。由于密钥管理中心负责管理和安全分发大量密钥,容易造成系统性能瓶颈,而且系统内必须有一个被所有站点信任的密钥管理中心,因此该协议应用场合存在着一定的局限性。
  为了简化站点间通信密钥的分发,开放式网络应用系统一般采用基于公钥密码体制的双向身份验证技术。在这种技术中,每个站点都生成一个非对称密码算法(如RSA)的公钥对,其中的私钥由站点自己保存,并可通过可信渠道将自己的公钥分发给分布式系统中的其他站点。这样任意两个站点均可利用所获得的公钥信息相互验证身份。
  保密通信
  
  客户与服务器、服务器与服务器之间身份验证成功后,就可以进行数据传输了,为了对抗报文窃听和报文重发攻击,需要在通信双方之间建立保密信道,对数据进行加密传输。在分布式数据库系统中,由于传输的数据量往往很大,所以加解密算法的速度对系统性能的影响很大。非对称密码体制运算复杂、速度慢,所以一般采用对称密码算法来进行加解密。其实建立保密信道的过程也就是约定会话密钥,用会话密钥来加解密数据的过程。通常这一过程也可以和身份验证结合在一起。保密通信可以由分布式数据库系统实现,也可以采用底层网络协议提供的安全体制,如SSL(Secure Socket Layer)。
  访问控制
  
  在通常的数据库管理系统中,为了防止越权攻击,任何用户不能直接操作库存数据。用户的数据访问请求先要送到访问控制模块审查,然后系统的访问控制模块代理有访问权限的用户去完成相应的数据操作。用户的访问控制有两种形式:自主访问授权控制和强制访问授权控制。其中自主访问授权控制由管理员设置访问控制表,此表规定用户能够进行的操作和不能进行的操作。而强制访问授权控制先给系统内的用户和数据对象分别授予安全级别,根据用户、数据对象之间的安全级别关系限定用户的操作权限。在这两种方式中,数据对象的粒度越小,访问权限就规定得越细,从而系统管理的开销就越大,尤其是在分布式数据库系统中,一方面用户、数据对象多,另一方面要进行分布式访问控制,更加剧了系统访问控制的负担。事实上系统中许多用户具有相似的访问权限,因此可以根据用户权限确定角色,一个角色可以授予多个用户,同时一个用户可以拥有多个角色,这样可以在一定程度上降低系统访问控制管理的开销。
  库文加密
  
  为对抗黑客利用网络协议、操作系统安全漏洞绕过数据库的安全机制而直接访问数据库文件,有必要对库文进行加密。库文加密方法主要有两种,一种为ANSI(美国国家标准协会)颁布的数据加密标准DES。DES使用64位密码,算法实现在一小块集成电路芯片上,以1Mb/s的运算速度处理密文。另一种方法称为公钥制密系统,其思路是给每个用户两个码,一个加密码,一个解密码。用户的加密码是公开的,就像电话号码一样,但只有相应的解密码才能对报文解密,且不可能从加密码中推导出解密码,因为该制密系统为不对称加密,即加密过程不可逆。(但该算法不可逆并未得到求证,也没有办法证明其可逆。)
  对库文的加密,系统应该同时提供几种不同安全强度、速度的加解密算法,这样用户可以根据数据对象的重要程度和访问速度要求来设置适当的算法。同时,系统还应该能调整被加密数据对象的粒度,这样能够在保证重要数据对象安全性的同时提高访问速度。此外,对加密的数据对象巧妙地建立加密数据索引,也可以进行密文的快速检索。如果攻击者已知原始库文的部分信息,并试图据此利用密码分析方法破译密文,那可以使用基本加密算法反馈连接方式或其他方式给每个待加密的对象分配不同的加密密钥。
  密码体制与密码管理
  
  在分布式数据库系统中,身份验证、保密通信、库文加密等都利用到了加解密算法,但是它们的利用背景不同:身份验证仅需传输少量控制信息;保密通信除了传输少量控制信息外,通常还传递大量数据信息;库文加密则需要设计不同粒度的数据对象,而且还要考虑数据库的插入、删除、更改数据密码等操作。因此应针对分布式数据库系统不同操作步骤的特点来选择合适的加解密算法。

[1] [2]  

  此外,由于密码体制的保密强度强烈依赖于密钥的保密性,因此对分布式数据库中所涉及的大量公钥、密钥需制定严格的管理方案,以保证公钥不被假冒、密钥不被泄漏。否则保密机制再好,密码体制安全强度再高,系统也无安全可言。密钥管理包括密钥产生、密钥分发、密钥存储、密钥更新、密钥作废删除等,其核心问题是密钥分发。

(出处:http://www.sheup.com)


 [1] [2] 

标签: