数据加密技术纵览
网络犯罪的增加使得数据加密的重要性日益凸显。国家已经出台了《数据安全法》和《网络安全法》等法律法规,以加强数据安全领域的监管。如果没有适当的数据保护,黑客和其他恶意人士可以轻松地窃取敏感信息,给个人和企业带来严重损失。在当今数字化时代,数据加密已经成为了一种基本的安全措施,可以确保数据在传输和存储过程中不会被未经授权的人访问和窃取。
数据库加密技术的发展历程已经有多个阶段,并采用了多种实现方式。对于数据库加密技术的具体实现,可以从应用层、数据库中间件、数据库系统自身、数据库系统所依赖的文件系统以及存储硬件等方面进行考虑。
磁盘加密技术
这种加密方式,是通过磁盘加密系统或存储加密网关进行加密。其对数据库文件所在的磁盘扇区进行加密,并在数据库访问这些扇区时进行解密。这种加密方式对数据库自身是透明的,数据库管理系统不会感知到加密或解密过程的存在。这种加密方式在存储层工作,只能防止在磁盘丢失时敏感数据的泄漏。所有具有访问磁盘权限的用户都可以访问到真实的数据库文件,因此对于控制了操作系统的攻击者来说,这种加密方式并没有提供防护能力。
文件系统加密技术
在操作系统文件驱动层,将数据库的存储文件经过加密后存储到磁盘上,并在数据库访问这些文件时进行解密。这种加密方式对数据库自身来说也是透明的,数据库管理系统不会感知到加密或解密过程的存在。这种加密方式可以防止因磁盘丢失和文件被复制而导致敏感数据泄漏。然而,对于控制了数据库系统的攻击者来说,文件仍然是开放的,因此没有真正的防护能力。
透明数据库加密技术
有些数据库自身提供了加密机制,在数据库内核实现了存储的加密。这种加密方式可以有效防止因磁盘丢失和文件被复制而导致敏感数据泄漏。然而,对于控制了数据库系统的攻击者来说,这种加密方式并不可靠,没有提供防护能力。此外,其密钥管理通常不会对数据库用户开放,因此安全性得不到保证,也无法得到国内相关评测机构的认可。
后置代理加密技术
这种技术是通过数据库的内置能力,如通过使用视图、触发器和扩展索引等机制,可以实现透明加密。由于引入了独立的第三方程序,通过控制加密和解密的权限,增加了额外的访问控制。对于数据库内的不同用户,也可以控制其对加密数据的访问。然而,这种加密方式无法越过应用系统,实现应用系统用户对敏感数据的访问控制。此外,这种加密方式依赖于数据库系统的扩展索引机制,并不能在所有数据库上实现。
前置代理加密技术
这一技术是通过对数据库前端部署数据库加密网关,或者通过扩展数据库访问驱动(如JDBC驱动)实现数据库加密。这种方式理论上能够支持所有的数据库,是一种通用的解决方案,且安全性更高。但需要这一层能实现对所有访问语句和访问机制的支持,例如对存储过程和触发器等都需要提供支持。
应用系统加密技术
这一方式是通过应用系统自身完成数据加密或者通过应用前置一个加密网关来实现。针对前者需要较大的研发投入实现所需加密能力,后者则通过将数据加密的位置提前,在数据进入应用系统之前进行加密。后者这种加密方式可以控制应用系统的用户对数据的访问权限,并且真实数据对所有数据库用户都是不可见的,是最安全的一种加密方式。事实上,无论是这两种方式的哪一种,都会由于应用系统的复杂性,实现的难度也较大。
数据加密核心点:透明性
从上面诸多数据加密技术来看,数据被加密的位置离用户越近,安全性越高,同时实现的难度也越大。数据加密的位置离用户是逐步靠近的,防护能力也是逐步提升的,当然付出的代价也随之增大。如何在数据安全与成本之间取得平衡,寻求一种最优解成为用户在数据加密选型时的核心要素。曾几何时,作为多种方案的优选,数据库透明加密成为很多用户的选择,它在兼具了一定通用性的同时,也避免上之上几种方案在兼容性上的不足。
原生数据透明加密
透明数据加密(TDE)是一种数据库端存储加密技术,全称为 Transparent Data Encryption。这种技术对应用系统完全透明,通常由数据库厂商在数据库引擎中实现。在数据库引擎的存储管理层中增加一个数据处理过程,当数据由数据库共享内存写入到数据文件时对其进行加密,而当数据由数据文件读取到数据库共享内存时则对其进行解密。因此,数据在数据库共享内存中以明文形态存在,而在数据文件中则以密文形态存在。由于该技术的透明性,任何合法且有权限的数据库用户都可以访问和处理加密表中的数据。
这一方案的优点在于可以确保对敏感数据进行加密,并简化加密活动,不依赖数据库系统之外的能力。不同于后置代理方式,无需补充表、触发器或视图来解密授权用户或应用程序的数据。对于数据库用户和应用程序,表中的数据是透明解密的。对于访问此数据的数据库用户和程序,TDE 可用于为处理敏感数据的应用程序提供稳健的数据加密,而对应用程序的更改最少或没有更改。此外,针对数据自身的管理工作也能很好地支持,性能损耗也较小。 当然,这一方案也有其明显的缺点和适用范围。它不能完全阻止 SQL 注入攻击,不能完全阻止攻击者伪造身份对数据库的攻击,不能完全阻止授权应用系统后门程序对数据库的违规访问。在合规性上也存在一定缺陷,究其原因是因其密钥管理方式共存于数据库中,难以满足严格监管要求。此外,其加密粒度很粗,无法实现精准加密控制;同时由于各数据库间 TDE 功能存在很大差异,对于企业普遍存在的多种数据库并存的现状也面临很大问题。
SphereEx 的增强数据透明加密
SphereEx 提出的数据安全平台,原理上是采用了“前置代理透明加密”技术。其基于数据库之上,位于应用与数据库之间,提供数据加密能力。因其定位所致,其天然就支持了多种数据库,与应用的亲和性更好。相较于原生数据透明加密,其可提供更精细的加密粒度(可到表列行级)、更丰富的加密算法(如国密算法)、更灵活的加密控制(如洗数、反洗数、密钥轮转等)、更广泛的数据生态对接能力(如明文 CDC 能力)。原有此类方案的短板在于数据库的兼容性,例如复杂的数据密态计算、库内计算逻辑(如存储过程等),SphereEx 数据安全平台基于多年在数据库领域的实践积累,突破性地实现了对数据库的高兼容能力,无论是复杂密态计算还是存储过程,都可以完美支持。用户可以如原生数据库透明加密一样,做到应用不修改、业务无感知。下面针对原生的数据库透明加密与 SphereEx 提出的数据安全平台能力,做个简单对比。
SphereEx 全生命周期数据安全解决方案
除了上面提到的数据透明加密能力外,SphereEx 还提供了全链路的数据安全解决方案,覆盖从数据发现、数据传输、数据存储、数据计算、数据销毁全生命周期,提供如数据安全扫描工具、数据动态脱敏、数据库防火墙、数据全局权限、数据访问审计、数据归档等多种能力。此外,为了更加便于用户使用,SphereEx 提供了图形化管理的安全控制台,实现全程可视化操作;并已打通与敏感数据识别工具的联动,实现“一键发现、一键导入、一键合规”,将发现隐患、配置管理、安全治理自动化完成。
关于 SphereEx
北京思斐软件技术有限公司(SphereEx)是由Apache ShardingSphere核心团队创立的软件技术有限公司,致力于为企业提供新一代开源异构分布式数据库服务平台。定位是帮助企业在数据库之上实现数据分片、数据安全、流量治理、弹性伸缩等增强能力,为全行业提供分布式数据库、数据安全及自主创新改造类产品及解决方案。