以下文字纯属个人拙见,欢迎指正。
数据的安全主要涉及可用性,完整性,保密性,对于保密性首先就会想到数据加密,而对于数据库加密更是最直接的数据保密方案,这些年各厂商也一直在将各种加密产品推向市场,如列加密,表空间加密,文件加密,CASB,但却为什么一直没有哪一款加密产品大卖呢?!
数据可用性>保密性
在一系列与隐私的法律法律颁布后,数据保密的重要性也在变得越来越重要,但在当前大多数应用场景当中,数据的可用性是大于保密性的,而实施数据加密首先都会造成业务的中断,这个中断时间可能较长也可能较短,一般由数据量来决定;再者加密一般是串联到数据库中,当访问敏感数据时进行加解密操作,只能通过冗余部署来解决加密机故障造成业务系统的中断,而无法像防火墙一样通过bypass一类的功能避免,而是,但中断可能性依然存在,在一些7*24的业务(如电子商务,银行)系统中会有一定风险,这会引起企业决策层的较大的顾虑。
对于更重视保密性的政府和军队,本身可能又是专门的操作系统,数据库平台,需要针对其平台进行定制,且要求企业提供更多合规资质。
透明性,兼容性
当前的加密产品,一般都通过不同的技术手段解决了透明加密的问题,即不需要应用程序进行改造,这也是采取第三方专业加密产品的主要需求之一,但这些透明性也是要付出代价的,比如索引问题,数据统计问题,而当前部分产品(如表空间加密,文件加密)解决了这些问题后,又引入了新问题,那就是兼容性问题,这些新的加密方式必须针对特定的数据库版本或操作系统进行单独适配,对于RAC,主从,镜像等各种冗余部署方式的兼容性更是难上加难,这种无法通用性的方案就导致产品较难的进行产品化,无法产品化怎么批量售卖?!
性能
性能问题是不可避免的,首先是初次部署时,明文转化成密文,这个与数据量有直接关系,数据量越大,转换过程越大,而如果中间过程出现异常或失败,回滚过程不但会使耗时成倍增长,还会对数据的完整性带来更大的挑战。
其次在数据使用时,当数据访问并发量变大时,对数据库和加密的的CPU消耗,以及网络交互过程都逐渐变成瓶颈,对于高并发应用这无疑是灾难性的
再次对于大量数据的统计或模糊查询,也会涉及大量的加解密运算,增加服务器和网络的负担,在这样的操作比较多的应用系统种甚至会影响到未加密的数据的使用,后果也是不可想象
责任
首先上线加密系统以后,在监控,维护等方面都会导致运维人员工作量大量增加,使数据库管理员排查数据/数据库问题的复杂性增加
,而且当加密机出现问题,直接导致关键敏感数据不可访问,甚至导致整个应用系统不可用,现场运维人员可能无法处理,而采取加密的场景又一般不许可产品技术人员通过远程连接排查,就可能导致应用系统较长时间中断,造成事故,这些问题会导致安全管理员在推动进展时遭遇运维人员和DBA的强烈抵触,而实施人员则会处于一个两难的境地。
另外在这种复杂性大的,不可预见的,又很紧急的情况下,导致销售人员逐渐放弃加密产品转向其他更可控的安全产品,如审计,静态脱敏,即使中断一星期也不会在半夜接到客户要求马上处理好的电话