2016-08-23 116 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

相關問題