2011-09-26 69 views
0

無處不在我讀他們說ssh密鑰對認證更安全,然後簡單的密碼認證,因爲簽名發送到服務器總是不同。所以如果有人得到我的簽名,他下次不能用它來代表我登錄。ssh身份驗證概念問題

現在我的問題是這個簽名是如何獨特的?

服務器是否會首先發送一些隨機字符串,我的計算機會用我的私鑰對其進行簽名並將其發回。因爲這是我看到簽名每次都獨一無二的唯一方式。但在網絡上的任何地方,他們說客戶端發送簽名第一步(因爲這是第一步),但我認爲服務器應該先發送隨機字符串!

回答

0

對於密鑰驗證,您的私鑰永遠不會泄露給服務器(因此也不會泄露給攻擊者),而只能泄露給您的公鑰。同樣,服務器的私鑰永遠不會泄露給您(或攻擊者),而只是公鑰。

Diffie-Hellman用於派生兩個密鑰對(每個對象一個),然後用於來回發送應用程序數據,無論是使用簡單密碼進行身份驗證還是使用公鑰驗證。

password authentication的情況下,在通過線路發送用戶/密碼之前計算會話密鑰對。這可以防止簡單的竊聽,但當然不會阻止攻擊者直接嘗試連接並猜測用戶/密碼組合。當然,many users choose poor passwords

public-key authentication的情況下,計算會話密鑰對,然後使用RSA或類似算法完成簡單會話(通常是數學問題/答案)以驗證所聲明的用戶與公共密鑰匹配。如果不猜測其中一個私鑰,這個對話就不能僞造。當正確完成時,即使是最強大的密碼也難以做到。即使在公鑰認證方面存在弱點,例如在random number generator中,由此產生的弱公鑰認證仍然可能比密碼認證強得多。

0

我不是安全專家,但這裏是我對基於密鑰的身份驗證如何工作的理解:服務器發送使用您的私鑰加密的隨機數。客戶端解密挑戰並將其發送回服務器,驗證它是否擁有私鑰。

但是,我認爲類似的技術用於基於密碼的認證:服務器發送一個隨機數。客戶端將隨機數附加到密碼上,計算哈希值,並將其發送到服務器,並通過相同的方式對其進行計算來驗證它。

這似乎並不是公鑰基礎認證「更安全」的原因。