【问题标题】:Verifying MariaDB 10.1 encryption验证 MariaDB 10.1 加密
【发布时间】:2016-02-22 10:06:21
【问题描述】:

我已经在 MariaDB 上设置了table-level InnoDB database encryption

我想知道是否有任何方法可以确认数据是否真正加密。我尝试在 /var/lib/mysql/ibdata1 中搜索表格中的示例数据,但我不知道这是否是一个可靠的测试。

【问题讨论】:

    标签: encryption innodb mariadb


    【解决方案1】:

    我的测试建议是将完整的数据集复制到另一个没有加密密钥的节点,然后尝试启动 MySQL 并查询加密的表。我正在做一个(大)假设,因为缺少有效的加密密钥,它们将不可读。

    解析磁盘上的文件可能会很困难,除非您有专门的工具来执行此操作。也许像 Jeremy Cole 的 innodb_ruby 这样的东西会是另一个试金石https://github.com/jeremycole/innodb_ruby

    【讨论】:

    • 谢谢。我会试试看,然后发回这里。我还在 Mariadb.com 知识库 (mariadb.com/kb/en/mariadb/verifying-mariadb-101-encryption/…) 上重新发布了这个问题
    • 我没有机会对此进行测试,尽管它似乎是一个合法的解决方案。我还有另一个答案,我将在下面发布。
    【解决方案2】:

    我在 mariadb.com 上发布了这个问题,并建议对一些已知数据执行 grep。

    Rackspace 的一位 DBA 建议改用 strings 命令,以更好地处理二进制数据,例如:

    strings /var/lib/mysql/sample_table/user.ibd | grep "knownuser"
    

    这种方法在加密表上不返回结果,但在未加密表上返回结果(假设两者都加载了“knownuser”)。

    【讨论】:

      【解决方案3】:

      [如果您更改加密日志的密钥,可能不起作用。]

      • 停止数据库服务器。
      • 备份密钥文件
      • 更改密钥文件中的密钥。 (不要删除 - 它仍然必须保持有效密钥,否则服务器无法重新启动)

      • 再次启动 MariaDB。

      • 尝试读取表格(例如使用 phpMyAdmin)。

      如果加密正确,则在尝试读取加密表时会出现答案:“表已加密...”。

      • 停止玛丽亚
      • 恢复备份
      • 重启玛丽亚

      【讨论】:

      • 我做了好几次,当提供错误的密钥和将密钥更改回原始密钥时,mariadb 工作得很好,我在三个不同的服务器上尝试过。只有当您不提供有效密钥时才会出现问题。所以我无法相信仅此一项就导致了问题。
      • 啊,没有提供有效的密钥可能是我当时遇到的问题!谢谢!
      【解决方案4】:

      您可以查询information_schema.innodb_tablespaces_encryption。当 innodb 表空间被加密时,它就存在于表中。

      SELECT * FROM information_schema.INNODB_TABLESPACES_ENCRYPTION 
      WHERE NAME LIKE 'db_encrypt%';
      

      source

      【讨论】:

      • 其中 10.5.5 变为:SELECT * FROM information_schema.INNODB_TABLESPACES_ENCRYPTION,所有加密表都列在此处。
      猜你喜欢
      • 1970-01-01
      • 2020-02-01
      • 1970-01-01
      • 2013-03-21
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 2016-09-27
      相关资源
      最近更新 更多