本文结合数据库系统,讲述现有数据库系统中应用加密技术的不同之处,以及如何根据业务需求去选择合适的加密技术。如果你在上云用云实际操作过程中遇到了问题,可找云伙伴翼龙云@yilongcloud获取帮助,包括免卡上云和构建优秀用云方案。

什么是数据库加密技术?

云盘加密是指在创建ECS实例(选择系统盘、数据盘)或者单独创建数据盘时为云盘勾选加密选项,创建完成后ECS实例操作系统内的数据会在云盘所在宿主机(ECS实例服务器)被自动加密,无需自建和维护密钥管理基础设施,就能保护数据的隐私性和自主性,为业务数据提供安全边界。云盘加密可以解决数据在设备(IaaS层)中落盘安全问题。

Transparent Data Encryption(简称TDE)。在将数据库内存数据写入文件系统前,在引擎内部对数据先进行加密,然后将加密后的密文结果写入到文件系统。TDE可以解决数据在文件系统(PaaS层)中落盘安全问题。

 

选择列加密(全密态基础版)对查询结果在离开数据库前进行加密,并将密文结果返回给数据库客户端,由具备密钥的客户端后续自行解密,使得数据在除了客户端以及数据库内的外部流动中全程以密文形式存在。选择列加密可以解决在线数据链路的运行时安全。

数据库加密的必要性

数据库作为数据存储的核心,集中了大量敏感信息——用户密码、银行卡号、身份证信息、商业机密等。这些数据一旦泄露(如拖库攻击、内部人员滥用、物理介质丢失),将造成灾难性后果。

潜在数据库攻击行为

数据库是一个系统应用工程,在每一个系统环节都存在潜在的安全威胁。现有数据库面临的安全问题以及可能的攻击路径如下图所示。

 

 

下表将对图例中的不同攻击进行介绍:

图例攻击 攻击说明 攻击方式
Attack Admins 攻击系统管理员,例如OS管理员。系统管理员具备高权限,一旦攻击者获取管理员账号,可以管理和访问所有的存储、系统、以及外设。在数据库场景下,可以对系统管理员进一步细分如下:

数据库管理员,例如DBA,可访问数据库内数据以及配置修改等

PaaS层管理员,例如OS管理员,可访问OS以及文件系统上数据

IaaS层管理员,例如平台管理员,可访问磁盘等外设数据

OS系统漏洞

管理员账密泄露

系统配置不当

Attack Users攻击终端用户,例如数据库用户。终端用户可以连接数据库系统、并访问部分数据,攻击者获取用户账号后可以访问该用户下数据(例如逻辑拖库),甚至通过提权方式(例如SQL注入)获得管理员权限用户账密泄露

逻辑拖库

Attack Apps攻击应用服务,例如黑入网站服务器。相比于防护更严密的后端数据库,应用服务是公开可访问的,暴露面更大,更加容易被攻破。应用服务漏洞

OS系统漏洞

Attack Network攻击网络连接,例如监听拦截网络数据。网络攻击通常以旁路方式进行,不易于被检测。网络监听/拦截
Bypass Database绕过数据库系统获取数据,以旁路方式窃取数据库数据,例如PaaS人员可Copy数据库落盘的数据文件、备份文件等(即物理拖库)。物理拖库
Bypass OS绕过OS文件系统获取数据,以旁路方式窃取磁盘上数据,例如IaaS人员可直接Copy云盘/磁盘数据。挂载攻击
Exploit Database利用数据库的系统缺陷,例如代码bug,直接或间接访问数据库。数据库系统漏洞
Target Data Copies很多系统中是直接将生产数据同步到开发测试库进行使用的,而缺少对开发测试库上的数据安全防护,攻击开发测试库会比攻击生产库更容易。以上均可能

 

针对这些不同系统应用路径下的潜在数据库安全威胁,通常需要一个整体的安全解决方案来应对,这可能囊括了SSL与证书服务、认证与访问控制、白名单与安全组、数据加密与脱敏、安全审计等在内的不同安全技术和管理手段。后续小节将对数据加密进行介绍。

数据库加密技术能力矩阵

现有加密技术在数据库中的应用主要有云盘加密、透明数据加密以及选择列加密。下表从不同维度给出了不同数据库加密技术的特性、以及能解决的安全问题。用户可以结合目标要解决的问题、以及实际场景下业务对加密粒度、改造成本、以及性能的考量,选择合适的加密技术。

数据库加密技术 云盘加密(DiskEncryption) 透明数据加密

(TDE)

选择列加密

(全密态基础版)

能解决的问题Bypass OS、Attack Admins(IaaS)Bypass Database、Bypass OS、Attack Admins(PaaS&IaaS)Attack Users、Attack Apps、Attack Admins(DBA 1️⃣)、Attack Network、Target Data Copies
数据库运维人员(如DBA)可见数据可见可见不可见
PaaS运维人员(如OS)可见数据可见不可见可见 1️⃣
IaaS运维人员(如物理PE)可见数据不可见不可见可见 1️⃣
加密粒度实例表/库
业务改造需要将JDBC替换为EncJDBC,无需代码改造。
性能损耗极小,几乎无损失。·

影响因素:与目标敏感库表大小、数据库配置以及应用负载相关。

·

例如表大小小于缓存时,性能损耗极小,表大小远大于缓存时,性能损耗大。

·

·

结论:大多数情况下损耗在5%以内,极端负载情况下损耗可达20%。

·

·

影响因素:与查询结果中敏感数据规模相关,与库表大小无关。

·

例如,查询返回1条数据几乎无损耗,返回100w条数据损耗大。

·

·

结论:大多数情况下损耗在7%以内,极端负载情况下损耗可达21%。

·

全密态基础版无法防止PaaS以及IaaS层运维人员访问数据明文。用户可以选用全密态基础版的安全升级版本,全密态硬件加固版,结合可信硬件技术,能够抵御来自PaaS以及IaaS层的攻击。

数据视角

下图从数据视角,展示了不同加密方式下,数据在数据库系统中的明文和密文状态。


说明:列加密+TDE叠加组合加密方式可以确保数据全链路以密文方式存在。

不同数据库加密技术差异汇总

存储安全技术 云盘加密 TDE 选择列加密
作用位置 OS 数据库内核 数据库内核
作用范围 宿主机/ECS实例 数据库实例 数据库实例
加密粒度 实例 库/表
应用感知 对应用透明 对应用透明 应用需切换JDBC

 

总结:简要介绍了现有的数据库加密技术,从用户视角给出数据库当前面临的安全威胁以及适用的数据库加密技术,并从原理层面解释造成不同数据库加密技术能力差异的原因。友友们可以结合具体的应用场景,根据目标安全诉求、业务改造成本、性能等不同维度因素,选择适用的数据库加密技术。

相关新闻

联系我们

联系我们

电报:@yilongcloud

邮件:yilongcloud@hotmail.com

工作时间:早上8:00-晚上11:00

认准电报
认准电报
分享本页
返回顶部