说明
MySql社区版从5.7.11开始支持基于表的数据加密方案,模块名为keyring_file,支持加密整张表。这种是加密方式其实是基于文件加密的,一旦mysqld读取key启动后,将会解密整张表的数据,在mysql服务内,读取的数据都是解密后的,也就是说对客户端而言是无感知的。而这个key是本地存放的,mysql服务拥有读写这个key的权限。
总体看这种方案不太安全,原因是数据库文件是加密的,但只要能有mysql服务的账户,那么访问数据都是解密后的,加密不攻自破。而且解密key也是本地存放的,入侵者完全可以一并带走。这种方案只能保证入侵者只拖走了数据库文件后无法读取内容。
企业版MySQL额外的三种模块
如果是企业版的mysql,那么还有另外三种加密方案。
1.keyring_encrypted_file
和我之前说的社区版差不多的,只是多了一个key。这个key用于加密解密数据库用的key。安全性方面都差不多。
2.keyring_okv
相比本地存放key,本模块使用KMIP存取key,相对更加安全。
3.keyring_aws
整合aws的密匙管理服务来管理加解密的key。进一步提高key的管理安全性。
四个加密模块支持的加密类型
模块名 | 可用加密算法 | 密钥长度限制 |
---|---|---|
keyring_encrypted_file | AES DSA RSA |
无限制 无限制 无限制 |
keyring_file | AES DSA RSA |
无限制 无限制 无限制 |
keyring_okv | AES | 16, 24, 32 |
keyring_aws | AES | 16, 24, 32 |
总结一下,四种方案都是文件加密,内存解密方案,区别在于加解密的key存放方案。推荐使用keyring_okv和keyring_aws,并确保mysql账户的安全性和严格区分账户权限。
另外2种安全性不大。
实施步骤
OK,现在简单讲一下最简单的keyring_file部署方案,提前说明下windows貌似无法使用这种方案,因为不知道为什么加密用的key总是无法生成。
1.使用最新版的mysql 5.7.21
使用yum apt 之类的工具安装最新版的mysql 或者 下载源码自行编译安装
sudo apt install mysql-5.7
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756