本文接前文,继续通过几个相关问题的阐述,解开数据库加密的神秘面纱。
1. 如何弥补数据库加密系统对数据库保护的不足?
通过配套使用数据库审计、数据库防火墙、数据库脱敏等系统,设置安全规则,限制敏感数据被访问的记录数量、被访问的语句类型等多个方面,防止SQL注入、防止拖库、防止后门程序等攻击形式,从而形成对数据库的全方位保护,弥补数据库加密对数据库保护的不足。
2. 数据库加密的关键技术有哪些?
1)透明加密技术:为使得数据加密后对外部访问完全透明,需要支持所有的访问方式和数据库特性,这是数据库加密的基本要求。这就需要加密后表名、字段名保持不变;支持查询、插入、更新、删除等操作;以及支持SQL语句访问、存储过程、触发器、用户自定义函数、主键、外键、各种约束等特性。
2)密文索引:字段被加密后,数据原来的字段属性和大小关系都会被修改,原来的索引也不再有效。比如对数值型字段“工资”进行加密,加密后字段类型可能变为字符型或者RAW类型,且密文不再保持加密前内容的大小关系。如果需要检索指定的工资值或者范围值,一种方法就是将所有加密内容解密后再进行检索,但是这势必会导致性能的极大降低。密文索引就是对被加密字段建立索引,使得字段能在被加密状态下被高速的执行等值、范围甚至是模糊检索,以避免加密导致的性能大幅降低。
3)密钥管理:数据的加密和解密都需要使用密钥,密钥需要被妥善的管理才能保障数据的安全。这就好比无论多么坚固的锁,如果钥匙没有被妥善保存,都将是形同虚设。密钥的管理涉及到密钥的产生、交换、轮换、失效、备份等环节。在数据库加密中,由于涉及到多个字段的加密,所以一般需要设计多级密钥。需要对所有的密钥进行安全的管理,防止密钥被泄漏或者破坏。
3. 密文索引技术有哪些?
密文索引技术可以粗略的划分为两代:
第一代密文索引:基本解决性能和透明问题。基本思想是利用数据库的索引机制,建立能够快速查找的B树索引。并且对B树所有的节点进行加密,防止索引泄密。该代技术由北京理工大学戴林教授发明。
第二代密文索引:相比第一代技术,具有更高的性能,并且支持通配符模糊检索。基本思想同样是利用数据库的机制,建立能够快速查找的索引。并且对索引和加密字段的关联关系进行加密,防止索引泄密。该代技术由中安威士发明。
4. 数据库加密系统的关键指标有哪些?
- 是否完全透明,支持所有的数据访问和操作,以及所有的数据库特性;
- 能否对密文实现高速等值和范围查询;
- 能否对字符型加密字段实现高速模糊查询,也就是LIKE查询;
- 能否对数据库用户进行增强的访问控制;
- 密文索引自身是否安全性,索引不应成为新的泄密点;
- 密钥是否实现了安全管理,密钥的组成、保存、生命期等符合相关安全规则和规定。
5. 国内主要数据库加密厂家有哪些?
包含中安威士在内,目前国内的数据库加密源厂家只有很少几家。为防止广告嫌疑,本文不对各家产品的来源及安全性、性能等方面进行评论。欢迎第三方评测机构进行评测。
6. 为什么数据库加密产品只支持Oracle?
目前国内的数据库加密产品都基于第一代索引技术研制,采用库内扩展的技术路线。其密文索引的实现依赖于数据库开放的自定义索引接口。所谓自定义索引就是数据库允许用户开发索引插件,对数据库自身无法识别的数据类型,例如图片、音乐等进行索引。我们可以将加密后的字段看成数据库不能识别的数据类型,从而定义出密文索引。目前主流数据库中,仅有Oracle数据库提供这种接口。而对于不提供这种接口的数据库来说,虽然仍可以实现透明加密,但是不能实现对加密字段的高速索引,从而性能很低,难以成为通用产品。所以市场上只有针对Oracle数据库的数据库加密产品。
7. 能否实现通用的数据库加密?
由于上述原因,库内扩展的方式不大可能实现通用的数据库加密产品。实现通用的数据库加密产品可能的方式有:
1)全盘和文件加密。也即对存储磁盘或者数据库文件进行加密,但是这种加密方式的安全性较低;
2)数据库加密网关或加密驱动。类似于CryptDB的系统,在数据库前部署网关,实现数据的加密。中安威士发明的新专利技术已经克服了CryptDB的缺陷,解决了对所有访问语句的支持,实现了密文的等值、范围、以及模糊索引,并将继续实现对存储过程,触发器等的支持。
3)应用加密网关。虽然这种加密方式并不能准确的被称作数据库加密,但是可以做到数据库无关。
8. 如何选择数据库加密产品?
选择数据库加密产品,需要考查如下因素:
a) 是否对应用完全透明,尤其是:
- 对主键、外键的透明加密;
- 加密字段的值约束、唯一性约束的透明支持;
- 对存储过程,用户自定义函数、触发器等的透明支持。
b) 性能方面,加密是否导致数据库性能的显著降低。需要重点关注以下性能:
- 初始批量加密的性能,也即将已有表中数据批量进行加密的性能;
- 等值检索和范围检索的性能,也就是从大量加密信息中检索到满足等值和范围查询条件记录的性能;
- 模糊检索的性能,也就是使用LIKE进行关键字、通配符检索的性能;
- 插入(INSERT)、删除(DELETE)、更新(UPDATE)记录的性能。
c) 安全性方面,加密系统是否有新的安全漏洞:
- 索引是否安全:密文索引加密强度是否足够,或者索引是否直接使用了明文;
- 能否限制DBA等高权限用户对加密字段的访问;
- 是否部分明文暴露:是否将敏感数据解密后存储于临时表,这些明文信息将直接暴露给攻击者。
d) 其他方面:
- 产品是否真正国产;
- 厂家是否真正掌握核心技术;
- 厂家是否具有外资背景,具有外资背景的厂家的产品,应用于敏感部门具有泄密和法规的风险;
- 厂家是否已有或者存在潜在的知识产权纠纷。
9. 数据库加密未来的发展趋势会是怎样的?
目前国内市场主流的数据库加密方式是库内扩展加密,仅能比较完美的支持Oracle数据库。但是随着云计算和大数据的发展,未来的数据库加密将朝着如下趋势发展:
a) 面向云计算的通用网关式数据库加密产品将会在将来一到两年内出现,并将首先支持云计算中的主力数据库MYSQL,然后再支持其他关系型数据库;
b) 逐渐支持NoSQL数据库的加密,以加固大数据应用;
c) 数据库加密将与数据库审计、数据库防火墙、数据库脱敏等形成ALL-IN-ONE的数据库安全平台;
d) 数据库加密产品的市场接受度将会越来越高,市场容量将会爆发;
e) 在云计算中,包括公有云、私有云以及混合云,包括数据库加密在内的数据库安全产品将成为标配。