数据加密的良好实践

Rac*_*SQL 4 sql-server sql-server-2012 transparent-data-encryption

我想知道(更好的想法/最佳实践......)我可以用什么来加密我的数据。

我过去曾使用过 TDE,但我真的不喜欢它。因为如果证书和服务器出现问题,我将无法恢复备份。

我在一次又一次的测试中进行测试,我只是不安全。

还有哪些其他选项可以保护我的数据库/数据/备份文件?

我也尝试过屏蔽数据,但是 1)它用于 sql server 2016+(现在我们使用的是 2012)。和 2)它只是创建了另一列,数据被屏蔽,原始数据仍然存在。

这项任务的好选择是什么?

我想保护我的备份,所以没有人可以在另一台服务器上“窃取和恢复”它,我想防止数据被窃取。

我已经在使用登录和 ETC 的良好安全措施。只有我有 sa 通行证,我创建了一个函数,它每个月都会更改通行证,等等。

Ran*_*gen 5

我想保护我的备份,所以没有人可以在另一台服务器上“窃取和恢复”它,我想防止数据被窃取。

TDE 将是这里最好的内置解决方案,但是如果您只关心备份而不是您的.mdf/.ndf/.ldf文件,那么您可以研究备份加密来加密您的备份。但这也需要一个:Certificate or Asymmetric Key。第三方备份解决方案也可能是一种选择。

来源

与 TDE 加密一起使用的解决方案是 bitlocker:

单独使用 TDE,数据库文件本身被加密(以及 TDE 加密数据库的备份文件)。因此,如果任一文件通过网络被复制或窃取,如上例所示,攻击者将无法读取它。但是如果攻击者获得了整个驱动器的访问权限,包括 SQL Server,他就可以启动 SQL Server 并使用 SQL 读取数据,因为 SQL Server 正在为他做解密。现在,如果同时使用 BitLocker 和 TDE,则可以减轻这两种数据盗窃向量。两种技术相辅相成,建议将BitLocker与TDE结合使用进行深度防御。

来源

我也尝试过屏蔽数据,但是 1)它用于 sql server 2016+(现在我们使用的是 2012)。和 2)它只是创建了另一个带有屏蔽数据的列,原始数据仍然存在。

数据屏蔽不是加密功能,而是基于您的角色分配的屏蔽功能。它与限制用户及其查询对象(例如临时查询)的权限一起使用。


另一个需要研究的解决方案是Always Encrypted,但在使用确定性或(SQL Server 2019 之前的随机加密)时,它会限制对该数据的某些查询,例如富计算。

来源


我已经在使用登录和 ETC 的良好安全措施。只有我有 sa 通行证,我创建了一个函数,它每个月都会更改通行证,等等。

更好的做法是重命名和禁用 sa 登录。