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