2016-08-23 74 views
-1

我听说所有这些网站被SQL注入和黑客入侵。什么阻止他们用32个字符的字符串加密哈希?如果我是黑客,并且设法获取数据库,并且遇到加密哈希,我无法对数据库执行任何操作,因为我不知道加密算法和密钥。为什么Web开发人员不这样做与数据库?

只要密钥存储在securly所有人帐户将是安全的。

+2

如果您可以安全地存储密钥,只需安全地存储数据。 – Blorgbeard

+1

避免读取安全密码散列的执行将会很有用。采用(可逆)加密技术,整个系统只与密钥一样安全;适当使用密码散列法使得(强)密码在合理时间内恢复'不可行',而不管某个'秘密'密钥。这就是说,没有任何东西可以排除额外的防御层。而且:如果攻击者发现了一些写入权限 - 您已经丢失了。 – user2864740

+1

请参阅Security Stackexchange上的[如何安全地哈希密码,理论](http://security.stackexchange.com/questions/211/how-to-securely-hash-passwords/31846#31846)。 请参阅OWASP(Open Web Application Security Project)[密码存储备忘单](https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet#Leverage_an_adaptive_one-way_function)。 查看[现代,安全,咸味密码哈希简单](https://paragonie.com/blog/2016/02/how-safely-store-password-in-2016#legacy-hashes) – zaph

回答

1

您对加密散列的想法确实会提高用户密码的安全性,但您应该了解您正在使用此度量解决什么问题,以及哪些问题没有解决。

首先也是最重要的是,密码的加密通常是不被接受的,因为它是一种弱保护。如果攻击者拥有密钥,他可以立即发现所有密码。因此,加密并不能缓解您使用像BCrypt,SCrypt,PBKDF2或Argon2这样的慢速算法对密码进行正确散列。

但你的问题是关于加密散列的。有一种情况,即使正确哈希和盐渍密码可以很容易地恢复。如果用户选择了一个非常弱的密码,那么字典攻击无论如何都会很快显示出来。如果哈希已加密,攻击者需要密钥才能开始字典。这导致我们遇到以下情况:

只要密钥保密,加密哈希将保护弱密码。当攻击者在服务器上没有特权时,情况总是如此,例如SQL注入,被忽视的服务器,备份......我在我的教程末尾描述了safely storing passwords

相关问题