关于数据库加密,你不能不知道的秘密(⼀)
关于数据库加密,你不能不知道的秘密(⼀)
数据库是所有信息系统的核⼼,数据库的安全通常是指其中所存数据的安全,是⽹络安全、信息安全的重要组成部分。
作者:佚名来源:中安威⼠|2017-01-16 15:01
收藏
分享
前⾔
数据库是所有信息系统的核⼼,数据库的安全通常是指其中所存数据的安全,是⽹络安全、信息安全的重要组成部分。⽽对数据库中数据的加密保护,是数据库安全的重要内容。但是数据库加密具有相对较⾼的技术门槛,对于⼴⼤⽤户、甚⾄是信息安全从业⼈员来说都⽐较神秘。本⽂希望通过⼏个相关问题的分析,来帮助⼤家揭开数据库加密的神秘⾯纱。
如何给文件加密1. 什么是数据库加密?
数据库加密是指将存储于数据库中的数据,尤其是敏感数据,以加密的⽅式进⾏存储。
2. 为什么要对数据库加密?
数据是信息系统中最核⼼的资产,数据的丢失、破坏或泄漏,很可能会给企业带来难以估量的损失。对敏感数据进⾏加密是数据安全防护中最核⼼的⼿段之⼀。数据类型分两种,⼀种是⾮结构化数据,⽐如⽂档和图⽚,另⼀种是结构化数据,⽐如数据库中的数据。这两种形态的数据都⾮常重要,都需要进⾏加密保护。⽽结构化数据,通常所承载的是⾮常集中且极有价值的信息,因⽽对其进⾏加密保护尤为重要。⽽且,由于国内所使⽤的数据库管理系统⼤都是国外产品,出于安全可控的考虑,在国产数据库尚不能完全取代国外产品的现阶段,尤其需要⼀款纯国产的数据库加密产品。⾯对敏感数据频繁泄漏的严峻现实,虽然加解密过程将损害数据库的使⽤效率,但对数据库进⾏加密仍是不得不为的必要防护措施。数据库加密能够显著提升数据库的安全性。加密后,数据以密⽂的⽅式存储,防⽌了数据直接暴露,同时增强对加密数据的访问控制,⼤⼤降低了数据被泄漏和恶意破坏的风险。
3. 国内数据库加密产品经历了哪些阶段?
国内数据库加密产品的发展可以分为三个阶段:
第⼀个阶段是摸索阶段。在2003年之前,国内的数据库加密⼿段是通过反编译国外安全数据库系统完
成的。国外安全版本的数据库系统具有加密功能,有国内技术⼈员对其进⾏逆向⼯程,加⼊国产加密算法,即完成了“国产化”。该加密⼿段在国内某些敏感部门曾进⾏了⼩范围的应⽤,达到了⼀定的效果。但随着数据库安全技术的进⼀步发展,⽬前已退出市场。
第⼆阶段是国外产品导⼊国内市场以及国产数据库加密产品萌芽阶段。从2003年开始,⼏家国外的数据库加密产品⼚商,为了进⼊中国市场,将产品界⾯进⾏“中国化”,经由⾹港进⼊国内市场。但由于国家保密政策的限制,这些被伪装成国产的数据库加密产品并没有在国内数据库安全市场⼤⾏其道,反⽽逐渐销声匿迹。据作者所知,国内⼤概还有⼀两家“国产化”的外国数据库加密产品在市场销售,但也是局限在很⼩的⼀个范围内,⽆法被国内⽤户⼴泛接受。但在这⼀阶段,逐渐有国内科研⼈员开始进⾏数据库加密技术的研究。2009年已有数据库加密技术的专利发明出现。其中北京理⼯⼤学戴林副教授的“⼀种⽀持密⽂索引的数据库透明加密⽅法”被学术界认为是国内数据库加密技术研究中最早最重要的⼀个专利发明。随后,国内陆续有研发团队开始进⾏数据库加密产品的开发,虽说与国外顶级技术有不⼩差距,但毕竟是迈出了⾮常重要的第⼀步。
第三个阶段是国产数据库加密技术逐步产品化并⾛向市场的阶段。从2010年开始,随着科研成果的产业化,国内市场开始出现纯国产的数据库加密产品。经过市场的磨练,产品越来越成熟,越来越为数据库安全运维⼈员所接受。不难预见,假以时⽇,数据库加密产品将成为数据库安全市场的重要⼒量,甚⾄能取代数据库审计产品和数据库防⽕墙产品的市场地位,成为数据库安全市场的宠⼉。
4. 何为数据库透明加密?
数据库透明加密是指对库内数据的加密和解密,对数据库的访问程序是完全⽆感知的。特别是应⽤系统,不需要做任何修改和编译,就能够直接应⽤到加密库上。
与透明加密相对应的,是在应⽤系统中对数据进⾏加密,然后再存储到数据库中。需要真实数据的时候,从数据库中读取密⽂,再解密出明⽂。严格的说,这种⽅式并不是数据库加密,⽽是数据加密。
本⽂所指的数据库加密都是指透明加密。
5. 数据库加密实现⽅式有哪些,特性如何?
全盘加密:采⽤全盘加密系统或者存储加密⽹关系统,将数据库⽂件所在的磁盘扇区进⾏加密。当数据库访问磁盘扇区的时候,对加密扇区再进⾏解密。这种⽅式对于数据库⾃⾝来说是透明的,数据库管理系统也感觉不到加密解密过程的存在。这种加密⽅式⼯作在存储层,仅能防⽌磁盘丢失时敏感数据遭受泄漏。所有对磁盘具有访问权限的⽤户都可以访问到真实的数据库⽂件。因⽽,对于控制了操作系统的攻击者来说,并没有防护能⼒。
⽂件加密:在操作系统⽂件驱动层将数据库的存储⽂件经过加密后存储到磁盘上。当数据库访问存储⽂件的时候,再进⾏解密。这种⽅式对于数据库⾃⾝来说也是透明的,数据库管理系统也感觉不到加
密解密过程的存在。这种加密⽅式能防⽌磁盘丢失和⽂件被复制导致的敏感数据泄漏。但是,对于控制了数据库系统的攻击者来说,⽂件还是开放的,因⽽也没有真正的防护能⼒。
数据库⾃带加密:某些数据库⾃⾝提供了加密机制,在数据库内核实现了存储的加密。这种加密⽅式能防⽌磁盘丢失和⽂件被复制导致的敏感数据泄漏。但是,对于控制了数据库系统的攻击者来说却是开放的,并没有防护能⼒。⽽且其密钥管理通常不会对数据库⽤户开放,安全性得不到保证,也得不到国内相关评测机构的认可。
库内扩展加密:通过使⽤视图、触发器、扩展索引等机制,实现透明加密。由于引⼊了独⽴于数据库的第三⽅程序,通过控制加密解密的权限,增加了额外的访问控制。对于数据库内不同的⽤户,也可以控制其对加密数据的访问。但是这种加密⽅式不能越过应⽤系统,实现应⽤系统⽤户对敏感数据的访问控制。⽽且这种加密⽅式依赖于数据库系统的扩展索引机制,并不能在所有数据库上实现。
数据库加密⽹关或加密驱动:通过对数据库前端部署数据库加密⽹关,或者通过扩展数据库访问驱动(如JDBC驱动)实现数据库加密。这种⽅式理论上能够⽀持所有的数据库,是⼀种通⽤的解决⽅案,且安全性更⾼。但是对于所有访问语句和访问机制却难以全部⽀持,例如对于⽹关之后的存储过程和触发器都⽆法⽀持。
应⽤加密⽹关:在应⽤系统之前放置加密⽹关,进⼀步将数据加密的位置提前,在数据进⼊应⽤系统
之前进⾏加密。这种加密⽅式可以控制应⽤系统的⽤户对数据的访问权限,并且真实数据对所有数据库⽤户都是不可见的,是最安全的⼀种加密⽅式。事实上,这种加密⽅式与具体的数据库⽆关,是对⽴与数据库的。但是由于应⽤系统的复杂性,实现的难度也较⼤。
总之,数据被加密的位置离⽤户越近,安全性越⾼,同时实现的难度也越⼤。以上所述的⼏种加密⽅式,数据加密的位置离⽤户是逐步靠近的,防护能⼒也是逐步提升的。
⽬前国内数据库安全市场主流的数据库加密⽅式是库内扩展加密,本⽂中,如果没有特别指出,都特指这种加密⽅式。
6. 数据库加密能解决哪些具体问题?
数据库加密能够通过有效的解决如下问题,来提升数据库的安全性:
1) 防⽌数据库⽂件被下载或者复制、以及直接分析数据⽂件导致的数据泄漏和破坏。由于敏感数据被加密,任何直接对数据库⽂件进⾏分析的攻击⽅式,都只能看到密⽂。
2) 防⽌DBA或⾼权限帐号密码泄露导致的数据泄漏和破坏。DBA或者⾼权限账号被攻击者获取后,虽然攻击者能够得到数据库中的全部数据,但是由于敏感数据是被加密的,所以仍然不能获得明⽂。或者攻击者试图修改授权⽤户的访问密码进⾏⾝份伪造攻击,但是加密系统额外的⾝份认证机制能够对
这种伪造⾝份进⾏识别,致使攻击者仍然⽆法获取真实数据。
3) 部分的防⽌SQL注⼊⽅式拖库泄漏全库数据和数据破坏。SQL注⼊攻击者通过拖库获取全部数据库内容,但是只能获取到攻击时所使⽤的⽤户所对应的明⽂权限,对于该⽤户不具有权限的敏感数据,攻击者仍然不能访问。
4) 实现多因⼦⾝份认证和授权,弥补仅由⼝令验证⽅式安全性不⾜的缺陷。可以增加对应⽤系统、时间、IP地址、⽤户名等多种因⼦的⾝份认证和授权管理。
7. 数据库加密不能解决什么问题?
虽然数据库透明加密能够显著的提升数据库的安全性,但是并不能解决所有的数据库安全问题:
1) 不能完全阻⽌SQL注⼊攻击。SQL注⼊攻击者如果使⽤应⽤系统访问数据库的授权⽤户对数据库发起攻击,则能够获得加密系统对该⽤户的相应授权,能够访问到该授权项下的敏感数据。
2) 不能完全阻⽌攻击者伪造⾝份对数据库的攻击。当攻击者通过社交⼯程,完全窃取并伪造了具有对敏感数据合法访问权限的⽤户的帐号、密码、以及应⽤系统、IP信息时,数据库加密将不能对其访问进⾏限制。
3) 不能完全阻⽌授权应⽤系统后门程序对数据库的违规访问。当应⽤系统被授权访问敏感数据,但是被开发者留有后门时,数据库加密系统并不能识别这种后门并加以阻⽌。
其他相关问题,例如“如何弥补数据库加密系统对数据库保护的不⾜?”“数据库加密的关键技术有哪些?”“数据库加密系统的关键指标有哪些?”等等,我们将在后续⽂章中继续阐述。敬请关注。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论