作者 | 安华金和 孙铮
有人说,数据库加密是“数据安全技术皇冠上的一颗明珠”,以此表明其技术难度之大;也有人说,数据库加密是“数据安全防线的最后一公里”,道出了其所处的重要位置与底线责任。然而,数据库加密受自身技术复杂度高、实施部署难度大,且一旦出现异常状况对使用方业务影响烈度大等因素影响,使其更像是一个无法被真正采纳和应用的数据安全技术,只存在于合规、迎检及相关法律法规的条文中…笔者十年前初入安全行业即从事数据库加密技术研发工作,本文也将基于一个从业者的经验和视角,谈谈能够让人安心使用的数据库加密技术,应该具备哪些特质。
· 网络安全法对数据库加密的要求:
【第二十一条】…采取数据分类、重要数据备份和加密等措施...
· 密评密改中对数据库加密的要求:
密码协议、密钥管理系统、密码应用子系统和密码安全防护机制不仅设计合理,而且在系统运行过程中能够发挥密码效用,保障信息的机密性、完整性、真实性、不可否认性…
· 等级保护中对数据库加密的要求:
保护数据在存储、传输、处理过程中不被泄漏、破坏和免受未授权的修改的信息安全类要求…
而在合规之上,还应关注如“加密性能、加密算法、密文权控、容灾机制”等实用要点:
只关心加密后的数据是否“能解密”?那样的话,数据库加密技术可能永远无法应用于对复杂业务场景下的数据安全保护。事实上,在生产环境实施数据库加密前,首先应考虑的是加密后,那些与业务相关的复杂统计、分析、查询动作,是否会发生严重的性能下降。
从加密技术路线看,无论是采取应用层加密、代理网关加密,还是利用“视图+触发器”方式的列加密技术,只能做到对精确数据查询(等值查询)性能下降不明显;由于上述技术的加密位置在数据库引擎之前,这就必然会改变数据库的查询计划,从而让涉及密文列的索引在统计分析、查询比较(如sum、avg、group by、max、min)等运算下完全失效,并触发全表扫(full table scan)逻辑;随后发生的全列数据解密,正是造成性能损耗的元凶,而这种性能损耗相对于加密前,下降幅度甚至高达几十倍!
那么,如果对不涉及统计分析的字段采用上述加密技术,又能否规避对性能的影响呢?答案同样是否定的——字符串数据一旦加密后,常见的模糊查询动作还是会造成之前的明文索引失效;而有些加密厂商采用的“密文索引”技术,仅能解决“后百分号”的问题,而对于像“like %aaa%”这样的查询,则依旧束手无策,并触发全表扫逻辑…
为解决“性能”这一关键问题,使加密后数据在被业务访问时导致的性能下降处于能够接受的范围(通常是10%)内,安华金和建议:可采用在数据库引擎内部实现的,基于表空间加密的技术手段。该技术路线对上述包括统计运算、检索分析、模糊查询等问题,均可实现性能损耗不超过10%的目标,从而逐步形成数据库加密技术选择的最优解之一。
在数据库加解密技术体系里,另一个需要给予足够关注的是“算法的选择”,而从合规角度来看,也只有符合国密规范的算法,才有可能被最终使用。为此,安华金和建议:
1、选择符合国密规范的算法,尤其是SM4这种对称算法用于数据库加解密。对于SM2这种非对称算法(性能相对较低)或SM3这种哈希算法(不可逆),则考虑用于密钥管理或身份认证,而不要用于对数据本身的加解密;
2、当面对较强的合规监管或密评密改时,不要选择AES、DES这种商业算法,因为在合规性上无法提供保障;
3、FPE、SSE等保格式加密算法通常无法满足合规需求,并且对被加密的数据本身限制较多,还可能会为了保留格式而大幅度牺牲算法强度;
4、加解密算法的密钥管理要相对独立并遵循国密规范,对密钥的生成、使用、销毁等应由加解密系统实现,而不是由数据库本身进行管理。
对数据进行加密,是为了让数据被更安全地使用。通过密文权控体系,是决定谁可以读写密文而谁不可以的又一关键。想知道权控体系是否安全合理,需要确认如下两点:
合理的权限控制体系,不仅能够实现对普通数据库账户进行密文读写的权限控制,还能够控制诸如sys、root等超级账号,从而实现独立于数据库自身权控体系的密文读写权控;
本地登录,例如:oracle的sqlplus /nolog ,是在已获得数据库服务器主机权限后的常见登录方式;这种登录方式可令基于网络层进行密文权限控制体系的技术无效化,从而导致密文数据面临泄露风险。为此,加解密权限控制技术需要在数据库引擎层实现。
容灾机制作为保障业务持续运行的关键,应由数据库加解密产品替客户做出全面而合理的考虑。设计上较为完整的容灾机制,应有足够的冗余运算机制,以确保在加解密运算节点出现单点故障时,加解密动作仍能在主备之间实现自动、无缝切换;而除了不影响业务运转的连续性外,该机制还应具备离线数据还原能力,以确保当客户的业务系统处于紧急状态时,还能提供一种不依赖于完整体系,只需在密钥完整且必要的身份认证机制可用的情况下,即可快速离线还原数据,为故障排查与紧急状态恢复等工作提供底线保障。
伴随我国数据安全相关法律法规的持续制定、发布、执行,以及密评密改工作的顺利开展,各行业客户对数据库加密技术、产品和服务的重视程度及需求势必不断提升。希望通过文中所述内容和建议,在客户真正需要通过“加解密技术”进行自身核心数据资产的安全保护时,能够对相关产品的选型上有所帮助。
作者介绍:
孙铮 安华金和数据安全产品总监,数据安全领域10年以上深厚的研发和产品管理积累。国家网络安全联盟智慧城市云安全标准编写委员会成员。曾参与公安部信息安全等级保护评估中心,国家开放大学,数据库基础及安全防护课程和教材编写;担任天津公安教育培训中心重要信息系统数据库安全培训、国家互联网安全测评中心和各地分测评中心《2013年全国风险评估工作总结及培训会》数据库安全培训。历经公安部三所等保工具箱数据库检查工具项目、中国人民解放军信息安全测评认证中心,数据库安全检测评估技术研究项目、中国电力科学研究院,智能电网信息安全测评实验体系及关键技术研究项目,国产基础软件性能及安全加固研究。