密码存储
本文关键字:存储 密码 | 更新日期: 2023-09-27 18:07:12
您已经知道有多种浏览器提供存储登录网站凭据的功能。如果不能进行盐散列,他们如何正确保护密码?我找到的唯一方法就是加密。像mint.com这样的网站会保存多家银行的凭据。他们是如何确保安全的(代码方面)?假设我正在实现类似的东西,如果不能散列,我如何真正确保凭证受到保护?来源:
- https://www.mint.com/how-mint-works/security
- https://support.mozilla.org/en-US/kb/where-are-my-logins-stored
- 在数据库中存储银行信息的最佳实践
- https://www.quora.com/Where-and-how-is-bank-account-information-stored-retrieved-and-updated
如果不能散列,我如何真正确保凭证受到保护?
你不能;您不能保证您存储的密码(或任何其他数据)是100%安全的。
当使用哈希存储密码时(粗略地说),它只是阻止(或试图阻止)从哈希值中计算原始值。
你可能想把你的问题更新为安全存储加密数据防止被盗的最佳实践是什么
我不是安全专家,但是如果我想为其他用户存储数据,而我不想在没有用户在场(物理或登录)的情况下访问这些数据,我可能会做一些事情,比如要求他们创建主密码。我将为每个用户创建一个唯一的Salt,这就是我要存储的所有内容(以及加密的数据)。然后我会用主密码+ Salt的SHA3-512(哈希)加密数据。从理论上讲,我根本不能访问数据,甚至不能用于恢复目的(因为我不存储哈希值和密码)。
即使在这种情况下,数据也不是100%安全的。有人可能使用中间人攻击或破坏系统并窃取密码/哈希值。唯一已知的安全特性是,仅使用Salt来解密被盗数据是极其困难的。
将数据(凭证)存储在经过特殊保护和加固的数据库中。
-
它不应该被互联网访问,它和互联网之间必须有许多间接的层次
-
应该只能从两个特定的系统访问。其中一个被授权读取数据库,另一个也应该能够进行更改。因此,您需要在这个数据库周围设置一个专用防火墙。让自己熟悉多层次的非军事区。
-
确保你所有的机器都打了补丁。如果您决定使用特定的软件,请确保订阅必要的频道,以快速获取有关可用补丁和可能的漏洞的信息,并快速应用它们/查找热修复程序。
-
仅为管理员配置操作基础架构所需的最少数量的权限。
-
在您完成了所有这些之后,这些数据的加密并不能提供多少保护。这只是在这一点上混淆,因为加密数据的密钥必须接近数据。