前文我们详细介绍了数据库加密的概念、数据库加密的原因以及数据库加密有哪些实现方式及特性。今天我们着重讲一下数据库透明加密在实际生活中的应用。
一、数据库透明加密可以解决哪些问题
数据库加密能够通过有效的解决如下问题,来提升数据库的安全性:
1) 防止数据库文件被下载或者复制、以及直接分析数据文件导致的数据泄漏和破坏。由于敏感数据被加密,任何直接对数据库文件进行分析的攻击方式,都只能看到密文。
2) 防止DBA或高权限帐号密码泄露导致的数据泄漏和破坏。DBA或者高权限账号被攻击者获取后,虽然攻击者能够得到数据库中的全部数据,但是由于敏感数据是被加密的,所以仍然不能获得明文。或者攻击者试图修改授权用户的访问密码进行身份伪造攻击,但是加密系统额外的身份认证机制能够对这种伪造身份进行识别,致使攻击者仍然无法获取真实数据。
3) 部分的防止SQL注入方式拖库泄漏全库数据和数据破坏。SQL注入攻击者通过拖库获取全部数据库内容,但是只能获取到攻击时所使用的用户所对应的明文权限,对于该用户不具有权限的敏感数据,攻击者仍然不能访问。
4) 实现多因子身份认证和授权,弥补仅由口令验证方式安全性不足的缺陷。可以增加对应用系统、时间、IP地址、用户名等多种因子的身份认证和授权管理。
二、数据库透明加密现阶段存在的缺陷
虽然数据库透明加密能够显著的提升数据库的安全性,但是并不能解决所有的数据库安全问题:
1) 不能完全阻止SQL注入攻击。SQL注入攻击者如果使用应用系统访问数据库的授权用户对数据库发起攻击,则能够获得加密系统对该用户的相应授权,能够访问到该授权项下的敏感数据。
2) 不能完全阻止攻击者伪造身份对数据库的攻击。当攻击者通过社交工程,完全窃取并伪造了具有对敏感数据合法访问权限的用户的帐号、密码、以及应用系统、IP信息时,数据库加密将不能对其访问进行限制。
3) 不能完全阻止授权应用系统后门程序对数据库的违规访问。当应用系统被授权访问敏感数据,但是被开发者留有后门时,数据库加密系统并不能识别这种后门并加以阻止。
三、如何弥补数据库加密系统对数据库保护的不足?
通过配套使用数据库审计、数据库防火墙、数据库脱敏等系统,设置安全规则,限制敏感数据被访问的记录数量、被访问的语句类型等多个方面,防止SQL注入、防止拖库、防止后门程序等攻击形式,从而形成对数据库的全方位保护,弥补数据库加密对数据库保护的不足。