Entropy
如果密碼和鹽只儲存在人類記憶中,scrypt 鹽會導致熵嗎?
如果密碼和鹽僅儲存在人類記憶中以進行分散的實施,我不確定 scrypt 究竟如何操縱鹽以及它對整體密碼熵的潛在貢獻(如果有的話)。
對於此實現,在任何儲存庫(例如使用者表)中不存在鹽的加密貨幣登錄,因為生成的雜湊是帳戶持有人的簽名密鑰,使用者將負責生成“使用者名”作為鹽和密碼。兩者都將檢查最小組合熵,例如
naive entropy / 2 > 80
將使用者推向 Diceware。目前沒有其他要求。之所以選擇使用者名方法,是因為統計證據表明它們的分佈具有超過 35 位的熵,但我確實意識到這個集合可能是有偏差的,因為使用者想要獲取姓名並確定
besthashcracker11
這當然不可能強制執行,從而減少那個號碼。如果該方案比單獨的弱密碼/密碼片語更容易受到普通使用者的攻擊,是否應該將單個密碼片語任意分成兩部分?如果是這樣,怎麼做?密碼應該是多少百分比,鹽應該是多少?
如果鹽確實有助於此實現的熵,那麼如果攻擊者無法訪問密碼、鹽或生成的雜湊,如何將總熵計算為密碼熵和鹽熵的函式?
可以預期使用者對攻擊者來說幾乎是完全匿名的。
如果你使用一個可能被猜到的使用者名作為鹽,你應該添加一個沒有其他服務或程序可能用於 scrypt 的全域鹽。例如,一個長隨機數。這確保了攻擊另一個使用者數據庫不會同時允許攻擊您使用者的雜湊值。
但是,如果允許兩個使用者在您的使用者庫中選擇相同的使用者名,則添加全域鹽是不夠的。您需要每個使用者唯一的東西來用作鹽而不是使用者名或除了使用者名之外。如果隨機數確實不可能,請考慮使用電子郵件地址,該地址應該是唯一的。(那些自然不會增加熵。)