PHP Mcrypt,它到底有多安全? [关闭]

Posted

技术标签:

【中文标题】PHP Mcrypt,它到底有多安全? [关闭]【英文标题】:PHP Mcrypt, how secure is it really? [closed] 【发布时间】:2012-06-18 14:13:37 【问题描述】:

目前我正在做一个项目,该项目将处理一些非常敏感的个人信息,虽然它不是回溯帐号,但它仍然是敏感的个人信息,我想尽我所能来加密这些信息并将其存储在一个mysql 尽可能安全。所以现在我正在积极寻找一些可以处理这些敏感信息的安全措施。

我发现加密/解密字符串和文本块的一种简单方法是使用 mcrypt。但是当我在 *** 上搜索 mcrypt 时,我注意到很多人说 mcrypt 毕竟不是那么安全。

所以现在我想知道,它到底有多安全?如果密钥安全存储,是否需要大量的黑客技能,比如说专家技能,才能破解和解密存储的信息?我是否需要害怕一个没有什么技能的黑客可以解密我要存储在 mysql 服务器中的加密信息?那么破解mcrypt加密的加密信息需要什么技巧呢?

如果 Mcrypt 不够好用,有什么好的替代方案不像使用 gnupg 扩展那么复杂?

【问题讨论】:

请记住,技术只是方程式的一部分……您的应用程序也必须是安全的。专注于技术会让您认为自己比实际更安全。 “我注意到很多人说 mcrypt 毕竟不是那么安全。” - 不是那么安全吗?这是没有道理的吗? mcrypt 本身并不是一键式的解决方案,它支持几种不同的算法,几种不同的模式。这是一个处理实际数字的小齿轮,您必须围绕它构建您的安全系统。大多数情况下,不安全感源于开发人员不恰当地使用 mcrypt,因为他们不了解全局。 确实,我不知道 mcrypt 中存在通常会使其不安全的安全漏洞。然而,密码学的本质是在被证明不安全之前,这些东西被认为是未知的。 “mcrypt 中没有已知的漏洞”仅仅意味着“到目前为止这么好,还没有人证明存在漏洞”,因此如果使用得当,它应该对您具有加密用途。如果有人发布漏洞,这一切都可能在明天改变。哎呀,也许有人正在利用漏洞,并且在我们说话时已经在使用它,只是还没有人注意到...... 这样说,我希望您理解这样一种想法,即您需要了解一个更大的图景,并且“mcrypt 真的安全”这个简单的问题很难回答。 【参考方案1】:

您可以遵循一个小指南,以避免一些陷阱并应用一些建议。

不要为两条不同的消息重复使用相同的加密密钥和初始化向量 (IV)。

如果对手在传输过程中使用相同的密钥和 IV 成功截获两条或更多条消息,这样做将有暴露纯文本的风险。

不要使用 ECB 模式; OFB 和 CTR 模式稍微好一些,但建议使用 CBC 或 CFB 模式。

不使用 ECB 的主要原因是因为这种模式会泄漏有关重复纯文本块的信息,这可能会破坏您的编码数据流。

OFB 和 CTR 更好,但它们会遇到上述安全问题,即多次使用相同的 IV+组合键。

CFB 和 CBC 对 IV+key 重用最有弹性,但是具有相同公共前缀的单独消息会泄漏所述前缀的长度。此外,CFB还泄露了第一个不相同的明文块的差异。

确保您拥有强大的加密密钥

它应该从可打印的ASCII中选择(例如not“我的超级强密钥”); PBKDF2 将是首选(很快就会被原生支持,直到那时谷歌它)。很明显,这把钥匙必须妥善保管;如果你丢失了,再见数据。

使用好的熵源生成初始化向量。

当您调用mcrypt_create_iv() 时,Mcrypt 可以选择使用 MCRYPT_DEV_RANDOM 或 MCRYPT_DEV_URANDOM。

希望对你有帮助:)

【讨论】:

以上是关于PHP Mcrypt,它到底有多安全? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

PHP安全处理之Mcrypt使用总结

我的“记住我”php 登录系统有多安全? [关闭]

科普 | 私钥探测器已经诞生?比特币的安全性到底有多高?

PHP到底有多牛?你所知道的网站都在用它

PHP到底有多牛?你所知道的网站都在用它!

-retainCount 到底有多不可靠? [关闭]