我知道這個話題已經被討論了一百萬次。但這對我來說是新的,我對它的瞭解越多,我越瞭解實際發生或應該發生的事情。密碼,鹽,散列,DB:第一百萬次
我將每個用戶的salt添加到用戶密碼的哈希存儲中,因此存儲的密碼哈希如下所示:hash(password + perusersalt)。 這會導致不同用戶的相同密碼被存儲爲數據庫中的不同字符串。涼。但我並不擔心有人闖入數據庫並查找哈希密碼。我很擔心有人蠻橫查詢我的服務器的用戶名和密碼的組合。在這種情況下,密碼的醃製和散列存儲是無用的,因爲用戶名和密碼的正確組合將產生成功的登錄。對?
我的印象是,在這種情況下鹽是相當無用的嗎?因爲服務器只在接口上接受用戶名和密碼(不發送鹽),所以普通的字典攻擊就可以了,對吧?
所以salt只能從有權訪問數據庫的人那裏混淆用戶的密碼(只能通過反向彩虹表查找獲得)。嗯。
相關:我的網絡應用程序甚至不傳輸簡單的密碼。密碼已經散佈在客戶端,只是完全拒絕對某人被盜密碼的責任,整個事情使用SSL。
這是否意味着我或多或少處於可能的最高安全級別,因爲用戶名和密碼的正確組合必須產生成功登錄?
謝謝你清理我腦海中的混亂。
如果你控制網頁前端,你可以人爲地限制每分鐘可以嘗試的密碼數量,並添加一個驗證碼圖像,其他網站如hotmail使用後會嘗試減慢速度。 – David 2012-02-14 21:12:27
取決於RDBMS解決方案,即使您不控制等式的網絡邊,通常也可以控制此方法,但是如果您決定切換到新的DB,它很可能不會很便攜。 – 2012-02-14 21:21:13
你也可以使用bcrypt,這是專門設計的慢,無論你的服務器速度如何,都會讓暴力破解速度變慢。 – 2012-02-14 21:26:46