MariaDB/MySQL表加密

Dro*_*dOS 3 mysql encryption mariadb

本文对加密MariaDB数据库表的主题进行了广泛的讨论.另一个优秀的资源就是这个.他们没有提到的一件事是在何处定义表级加密配置.我是否正确地认为应该由此完成

  • 放置相关指令,例如plugin-load-add=file_key_management_plugin.so/etc/mysql/my.cnf系统中
  • 创建加密密钥
  • 重新启动MariaDB服务器,最后,
  • ALTER TABLE ENCRYPTED=YES ENCRYPTION_KEY_ID=NN;在每个要加密的表上发布一个

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

Dag*_*sen 7

本文应回答有关在MariaDB中进行此设置的大部分问题.与配置加密相关的答案实质上是"你做得对",但你也应该考虑加密日志文件(文章描述了如何).

至于后者,使用具有有限访问权限的NFS卷应该提供良好的保护,如果服务器被物理删除以窃取数据,但是对于有人在系统上线时访问系统的情况,它似乎是固体溶液少.通过访问服务器,可以轻松获得有问题的NFS卷和文件.使用TPM(如果您的硬件允许)存储密钥可能是一个更好的解决方案 - 它旨在帮助解决此类问题.

是否可以将加密密钥链接到登录用户?考虑使用第二个数据库(或服务器)进行用户身份验证,并使用用户登录密码加密加密密钥并将其存储在那里.在成功登录时 - 提供正确的密码 - 您可以解密加密密钥,然后"解锁"第一个(加密的)数据库.这将加密密钥"存储在用户的头脑中",可能是您最安全的选择.