MariaDB/MySQLtable加密

MariaDB/MySQL table encryption

This article provides an extensive discussion on the subject of encrypting MariaDB database tables. Another excellent resource is this one。他们没有提到的一件事是在哪里定义 table 级别的加密配置。我假设这应该由

完成是否正确

即使这是正确的,我也会想到一个问题 - 如果攻击者同时获得对加密密钥文件的访问权限,这种加密将如何保护受损数据?可能的解决方案是将加密密钥存储在配置为只能从指定 IP 地址访问的 NFS 共享文件夹中吗?

This article 应该可以回答您关于在 MariaDB 中进行设置的大部分问题。与配置加密相关的答案本质上是"you got it right",但你也应该考虑加密日志文件(文章描述了如何)。

至于后者,如果服务器被物理移除以窃取数据,使用具有有限访问权限的 NFS 卷应该提供良好的保护,但对于有人在系统处于活动状态时获得访问权限的情况,这似乎是一个不太可靠的解决方案。通过访问服务器,有问题的 NFS 卷和文件很可能很容易获得。 使用 TPM(如果您的硬件允许)存储密钥可能是更好的解决方案 - 它旨在帮助解决此类问题。

是否可以选择 link 用户登录的加密密钥?考虑使用第二个数据库(或服务器)进行用户身份验证,并使用用户登录密码加密加密密钥并将其存储在那里。成功登录后 - 当提供正确的密码时 - 您可以解密加密密钥,然后 "unlock" 第一个(加密的)数据库。这会存储加密密钥 "in the user's heads",可能是您拥有的最安全的选择。