首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MariaDB的加密和压缩功能安全吗?

MariaDB的加密和压缩功能安全吗?
EN

Security用户
提问于 2018-04-18 06:11:12
回答 1查看 2.4K关注 0票数 3
代码语言:javascript
复制
MariaDB [(none)]> SET @key_str = SHA2('Is it secure?',512);
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> SET @crypt_str = AES_ENCRYPT('cleartext',@key_str);
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> select @crypt_str from dual;
+------------------+
| @crypt_str       |
+------------------+
| ���5��!$�l           |
+------------------+
1 row in set (0.00 sec)

MariaDB [(none)]> SELECT AES_DECRYPT(@crypt_str,@key_str) from dual;
+----------------------------------+
| AES_DECRYPT(@crypt_str,@key_str) |
+----------------------------------+
| cleartext                        |
+----------------------------------+
1 row in set (0.01 sec)

MariaDB KB 加密、散列和压缩功能,如加密、解密、压缩、密码等。中的文档。MariaDB KB没有说明这些函数有多安全。

您推荐云本地应用程序(12因子)将加密卸载到数据库(在我的例子中是MariaDB)吗?我的示例代码可以改进为更安全(但只使用MariaDB函数)吗?

我找到了一个(可能)产品供应商的有偏见的审查,MyDiamo (他们希望出售):

MySQL内部加密函数不足的原因1. MySQL内部加密算法是不安全的,MySQL提供了许多算法,如AES、DES、SHA-1和MD5算法。在这些算法中,MD5和SHA-1被证明是不安全的,因为它们已经被破解.此外,对于AES算法,当前的MySQL 5.6版本通常只提供欧洲央行的操作模式,这也被证明是不安全的。2. MySQL内部加密功能在加密数据时不提供密钥管理,不仅加密本身重要,而且密钥管理也很重要。在加密问题上,密钥的重要性怎么强调也不过分。然而,大多数加密解决方案都不太注意密钥。在使用MySQL内部加密函数时,密钥会向源公开,因此不存在适当的密钥管理。

EN

回答 1

Security用户

回答已采纳

发布于 2018-04-18 06:51:12

虽然MySQL目前提供其他加密模式,但MariaDB似乎仍然只支持不安全欧洲央行模式。在MySQL中,您可以通过以下方式将模式设置为稍微好一点的CBC模式:

代码语言:javascript
复制
SET @@session.block_encryption_mode = 'aes-256-cbc';

如果您不能在MariaDB上这样做,那么它不支持任何替代模式。即使在支持CBC的MySQL上,CBC也不是一个很好的模式。真正需要的是认证加密。因为MySQL和MariaDB都不支持这一点,所以应该由应用程序使用DB。

密码哈希也很差。默认情况下,(不幸的是)文档鼓励您使用SHA-1或SHA-2散列密码,它们是快速散列,但不是设计为KDF的。由于速度的原因,它们可以非常有效地被攻击。这种危险会被放大,因为默认情况下没有使用盐类。除非“密码”是随机生成的字符串,否则这不足以保证安全性。您必须使用安全KDF,这不是本机提供的。

至于压缩功能,是什么使其安全或不安全?它们使用MariaDB编译过的任何压缩库,只返回压缩数据。就任意代码执行而言,安全性应该主要取决于所使用的链接库(例如zlib)。

您推荐云本地应用程序(12因子)将加密卸载到数据库(在我的例子中是MariaDB)吗?我的示例代码可以改进为更安全(但只使用MariaDB函数)吗?

不幸的是,产品推荐是这个网站的主题。您应该设计使用数据库的应用程序,使其能够使用强大的KDF支持可靠的、经过身份验证的加密。如果您只需要使用相同的密钥对所有数据库进行加密,并且只关心数据的rest安全性,则只需将数据库文件放在加密的目录中即可。

票数 3
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/183959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档