Wallet

錢包/硬體錢包中的助記密碼生成 - 安全漏洞?

  • April 17, 2018

僅通過從查找表中獲取隨機單詞來手動生成助記密碼不是更節省嗎?

我的想法:

錢包創建者可能會意外或故意使用確定性種子來創建助記密碼片語

您對此有何看法?

我正在使用菌絲體 - 所以理論上我可以自己檢查程式碼 - 但也可以使用 ledger nano s - 所以沒有辦法驗證上述威脅沒有在硬體錢包上實現,對嗎?

僅通過從查找表中獲取隨機單詞來手動生成助記密碼不是更節省嗎?

不,不會的。如果您實際上是手動執行此方法,甚至可能不安全。

如果生成正確,BIP 39 助記符是安全的。如果您也隨機選擇單詞,它同樣安全。這是因為這兩種方法都需要加密安全隨機數生成器。對於 BIP 39,您使用 CSRNG 生成 256 位隨機數並將其拆分以生成助記符。還有一個額外的校驗和使助記符代表一個 264 位數字。

在您的方法中,您生成 24 個隨機 11 位數字(因為單詞列表中有 2048 個單詞)並使用每個數字來選擇要使用的單詞。雖然這更隨機,但您會失去校驗和。此外,它的隨機性只增加了 8 位,而隨機性並不多。無論哪種方式,助記符都足夠安全,不是因為使用的方法,而是因為使用了 CSRNG 來生成數字。

但是,如果您實際上是手動執行的,那麼它可能是不安全的。如果您自己生成數字(即沒有 CSRNG 的幫助),那麼您的種子將不會足夠隨機。眾所周知,人類是熵的不良來源,但您希望您的助記符具有良好的熵。因此,手動執行此操作不是一個好主意。

儘管您可以使用 6 面骰子隨機生成數字,但這也不一定是熵的良好來源。它還需要幾百次滾動才能獲得足夠數量的位。

錢包創建者可能會意外或故意使用確定性種子來創建助記密碼片語

他們可以,但很快就會被注意到。錢包是開源的,人們確實會審核原始碼。人們會注意到是否發生了更改其隨機數生成的更改。

但也使用 ledger nano s - 所以實際上沒有辦法驗證上述威脅沒有在硬體錢包上實施,對嗎?

不必要。Ledger Nano S 的大部分韌體都是開源的。並且種子是使用具有符合 AIS-31 等級 PTG.2 的 True RNG的安全元件生成的。您可以檢查韌體呼叫Secure Element SDK中的正確函式以使用 TRNG 生成種子。

不幸的是,安全元件的韌體是封閉原始碼,但我認為 Ledger 無法修改該韌體。我相信他們只能從晶片製造商 STMicroelectronics 那裡獲得韌體的二進制 blob。

引用自:https://bitcoin.stackexchange.com/questions/74076