我读过几篇关于这个主题的 stackoverflow 文章,特别是这个:
PHP 密码的安全哈希和盐
但我还有一些问题,我需要一些澄清,请告诉我以下陈述是否属实并解释您的评论:
如果有人可以访问您的数据库/数据,那么他们仍然需要弄清楚您的哈希算法,并且您的数据仍然会有些安全,具体取决于您的算法?他们所拥有的只是哈希值和盐。
如果有人可以访问你的数据库/数据和源代码,那么似乎无论你做什么,你的哈希算法都可以被逆向工程,你唯一能做的就是你的算法有多复杂和耗时是?
似乎最薄弱的环节是:您自己的系统的安全性如何以及谁可以访问它?
Lasse V. Karlsen ...提出了一个很好的观点,如果您的数据受到损害,那么游戏就结束了...我的后续问题是:这些哈希值试图防止哪些类型的攻击?我读过有关彩虹表和字典攻击(暴力)的内容,但这些攻击是如何管理的?
密码算法的安全性始终在于其秘密输入。合理的密码分析基于这样的假设:任何攻击者都知道您使用的算法。好的加密哈希是不可逆且抗冲突的。这意味着无论您是否知道所应用的算法,从哈希值到生成它的值仍然需要做很多工作。
- 如果您使用安全哈希,则访问哈希、盐和算法仍然会给潜在的攻击者留下大量工作。
- 是的,安全哈希会为您带来非常难以反转的算法。请注意,这种反转不是“逆向工程”
- 薄弱环节可能是将这些密码哈希值输入数据库的过程和过程。有各种各样的方法可以搞砸并以明文形式存储敏感数据。
正如我在评论中指出的那样,这些措施可以防御一些攻击。首先,知道密码可能会导致授权执行超出数据库内容建议的操作。其次,这些密码可能会在其他地方使用,并且您的用户因闯入而泄露密码,从而使他们面临风险。第三,通过散列,内部人员无法利用对数据库的只读访问权限(受到较少的审计等)来冒充用户。
字典和彩虹表是加速哈希反转的技术。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)