无法了解ibd文件加密如何帮助保护MySql中的数据

时间:2018-09-07 13:25:42

标签: mysql encryption innodb tablespace

我正在使用MySql 8.0.11和keyring_file插件,已经在数据库中加密了一个特定的表,例如t1。

当我检查t1.ibd文件的内容时,我可以看到在成功加密之后内容已被加密。但是,即使ibd文件中的内容已加密,我仍然可以使用查询(从t1选择*)继续查看表内容。

那么,这是否意味着加密仅适用于ibd文件(包含数据和索引),但是如果我具有数据库凭据,我将继续查看表内容而不会出现任何问题?

更新

我阅读了几条评论,并希望添加以下问题以阐明我的原始查询: 加密ibd文件后,如果黑客入侵了托管数据库的我的系统,则黑客将能够看到实际数据。那么,对ibd文件进行加密如何帮助我保护数据呢?

1 个答案:

答案 0 :(得分:0)

.ibd文件包含表的所有数据和所有索引。 (“表空间”可以包含多个表;原理相同。)

使用插件(等),SELECT自动进行解密,使加密“透明”。尽管如此,这是真实的。您确实需要做一些事情才能启动程序,对吗?那是将“密钥”加载到RAM中供使用的时候。

加密.ibd文件可保护您免受一种威胁:有人抢夺(或复制)您的磁盘驱动器。

但是要当心。有临时表,二进制日志,其他日志等,可能会或可能不会加密。他们临时保存一些数据。早期版本的MySQL加密未能包括其中的一些。

使用AES 函数,您可以加密/解密单个字符串(例如一次一行一行)。但这只能由您来保护加密/解密密钥。或者至少永远不会以明文形式将其保存在磁盘上。

阅读“静止加密”与“飞行加密”的信息。加密文件是“静止的”。聪明的黑客会攻击您的代码,以便他在加载凭据后可以运行SELECT

无论有没有加密,“ SQL注入”(qv)是一种完善的方法,可以入侵数据甚至文件系统。对此的保护来自,例如,来自HTML <form>的数据的验证/转义/ etc。加密文件无法防止这种情况。

我给了您简短一份针对您数据的威胁列表。真实列表更长。您需要找到这样的列表,并决定愿意投资防御哪些列表。安全性并不简单。