Randomness

使用使用者名/密碼生成 ECDSA 對在加密上是否安全?

  • February 23, 2022

我在想,假設您有一個智能合約,可以確保沒有雙重使用者名。如果我生成這樣的 ECDSA 對會怎樣:

  • 接受使用者名和密碼
  • 驗證使用者名和密碼
  • 使用種子生成密鑰對<username> <some separator> <password>
  • 返回密鑰對

這會在密碼學上不安全嗎?我確定它有問題,但我很好奇那會是什麼。

謝謝!

這個方案有幾個問題:

  • 如果密碼不強,那麼密鑰也不會強;
  • 它使用未命名的密鑰派生常式,但由於它不需要鹽或工作因素,因此它可能不是加強 PBKDF(基於密碼的密鑰派生函式)來應對密碼中的弱點;
  • 如果隨機數生成器或密鑰生成器發生變化,則會計算出錯誤的密鑰;
  • 無法更改密碼,這對於良好的密碼管理應該是可能的;
  • 它適用於單個鍵,但不適用於多個鍵(儘管很容易更改協議以使其成為可能)。

最後,如果使用者名是唯一的,那麼假設您的密鑰派生方法很好,那麼您將獲得唯一的密鑰。而且,如果您的密碼足夠安全,那麼獲取密鑰將很棘手。請注意,這基本上意味著密碼需要非常複雜,這反過來意味著密碼管理器可能需要記住它。如果無論如何都需要這樣的設備,還有更靈活和更安全的選項來保護密鑰。

所以它本身並不是不安全的,但它相當不靈活且容易搞砸。然後仍然需要記住一個非常強大的密碼。

引用自:https://crypto.stackexchange.com/questions/98786