使用PHP和MySQL存储敏感数据



我对密码学不是很熟悉,所以请耐心等待。我正在开发一个需要将敏感数据存储在数据库中的应用程序。这些信息;然而,需要对那些拥有适当凭据的人进行访问(所以哈希是不起作用的)。

数据是从PHP表单中收集的。我的想法是使用准备好的SQL查询和MySQL的AES_ENCRYPT函数将密钥存储在数据库中。这是安全的吗(如果密钥是安全的——这是我下一篇文章的重点),还是这种方法有风险?

其次,您建议如何生成和存储密钥?问题是,需要访问这些敏感数据的用户不是任何形式的IT专家——她只是不熟悉行业工具。如果我只需要访问数据,这可能不会太困难,但我如何确保密钥的安全性,同时允许没有数据库经验的用户轻松访问它?

非常感谢。

如果存储打开的密钥,也可以存储纯数据,因为加密数据与密钥一起使用实际上是纯数据。好吧,将数据和密钥存储在单独的系统上可以提高安全性,但这还不安全。显然,您需要通过SSL从用户自己那里获取机密。这可能是用于解锁加密密钥的密码短语。

问题是,需要访问这些敏感数据的用户不是任何形式的IT专家。

这意味着用户将无法直接处理密钥对。因此,使用密码短语的替代方案应该是一个合理的折衷方案。尽管如此,您还是应该强制使用高质量的密码短语,以避免容易的暴力攻击。

您需要了解SQL注入攻击。参见小鲍比桌子。

您需要使用双因素身份验证来登录服务器。

您需要使用HTTPS。您需要将密钥存储在http目录上方。

如果对加密的使用没有很好的理解,那么最好使用MySQL的AES_ENCRYPT,安全加密很难做到正确。

这些都是最低限度的,无法抵御相当熟练的攻击者。

最新更新