【发布时间】:2014-12-24 12:53:32
【问题描述】:
首先,我正在尝试加密公共网站上的非常敏感的信息。用户将能够更新他们的信息,管理员将需要访问这些信息。我担心如果加密的数据有些泄露,那么每个人的信息也会因为他们都使用相同的盐和密钥而受到影响。
所以我知道使用盐,并且总是首选密钥。但是如上所述,如果他们对加密数据进行逆向工程,它有什么用。
我的解决方案是将密钥和盐存储在数据库中,其中包含许多行和列,其中任何一个都可用于盐或密钥。我会有一个算法,它将使用用户帐户中固定的“某些东西”,用于确定要使用的盐和密钥。这样从统计上讲,没有 2 年会有相同的盐和键组合。
这是杀过头了,还是很好?
【问题讨论】:
-
可能是 this question 的副本,虽然已关闭,但它的答案得到了高度评价和接受。另请参阅 this Server Fault question 和 this one。一般来说,不要试图重新发明安全代码。依赖比你聪明的人写的东西。
-
您意识到房屋锁已经存在了 100 多年。有了这个逻辑,我们就不要重新发明新的房锁了。话虽如此,给我一套 5 美元的开锁装置,10 分钟,我会为你解锁你的房子。我很欣赏您发送的链接的反馈,但我想知道我的新逻辑是否有任何可信度以增加安全性。 stackexchange 是最接近的文章,但问题在于派生密钥是来自密码的已知字段,这也意味着如果用户更改密码,他将需要重新加密所有数据。
-
按照我阅读您的问题的方式,您正在考虑实施一种新的未经证实的加密方法,用于在关键应用程序中保护非常敏感的信息。我强烈反对这一点,并建议您转而看看其他人正在使用什么。有许多知名网站使用现有方法取得了良好的效果。现在,如果您提出一种加密和保护高度敏感数据的新方法,那么您将获得更多权力。但是,在没有经过广泛测试和同行评审的情况下,在生产应用程序中使用它时要非常小心。
标签: algorithm encryption