Hash

哪個雜湊函式用於簽名 ssh-rsa 和 ssh-dss?

  • November 22, 2019

我正在為 ssh/sftp 建構一個保險絲客戶端。我自己編寫所需的 ssh 和 sftp 函式。現在我在RFC4253中讀到,在簽名之前要簽名的數據是預設散列的。在RFC4253 8. “Diffie-Hellman Key Exchange” SHA1 被提及為 ssh-dss 的預設值。ssh-rsa 是什麼?

RFC 4253的第 6 節中,它在第 15 頁上說:

“ssh-rsa”密鑰格式具有以下特定編碼:

  string    "ssh-rsa"
  mpint     e
  mpint     n

這裡的 ’e’ 和 ’n’ 參數形成簽名密鑰 blob。

使用此密鑰格式的簽名和驗證是根據 RSASSA-PKCS1-v1_5 方案執行的$$ RFC3447 $$使用 SHA-1 雜湊。

所以答案也是“SHA-1”。

它始終使用 SHA-1,除非它不使用。有兩個使用 SHA-2 函式係列的新草案:

使用是使用協議擴展協商的:

所以基本上,其他答案在現在和過去都是正確的,但在現在和不久的將來,我們不想將 SHA-1 用於加密簽名,並可能在該領域棄用 SHA-1。因此,如果您將使用任何最新版本的 SSH,它將使用 SHA-2。

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