2011-07-05 99 views
7

我意識到這個問題是主觀的。SSH:登錄時,密碼是純文本還是可sniffable?

我很好奇創建SSH隧道時SSH密碼的可理解性。安全會話在密碼驗證後開始,還是密碼本身封裝在此安全連接中?

今天早上在辦公室發生了一場有趣的辯論之後,除了使用鍵盤記錄器在客戶端上泄露SSH密碼的可能性之外,我很好奇SSH密碼是否也可能被數據包嗅探所破壞工具在LAN上,或安裝在客戶端和服務器之間的任何代理上。通過SSH隧道登錄到運行在一個/多箇中間代理服務器後面的客戶端上,它開啓了更廣泛的關於登錄私人服務(如家庭NAS或電子郵件)的智慧的辯論。 (即在工作中),特別是聲稱諸如Ettercap的工具能夠窺探SSH數據包。

我認爲可以對SSL/HTTPS進行相同的考慮,其中網站不會將密碼解析爲單向散列,如MD5?

你的沉思將是最受讚賞的。

謝謝。的OpenSSH的聯機幫助

+3

這不是一個編程問題。 – Raoul

+1

關於HTTPS,有類似的問題:http://stackoverflow.com/questions/3911906/encrypting-http-post-data/3923617#3923617和http://stackoverflow.com/questions/3837989/sending-sensitive-data -as-A-查詢字符串參數/ 3840144#3840144。整個請求通過SSL/TLS發送(包括請求路徑,標題和正文)。即使發送明文(通過表單或HTTP Basic),密碼的傳輸也會受到保護。 – Bruno

+0

我應該澄清我剛纔所說的:「密碼的傳輸是受保護的,即使是在發送明文時」,我的意思是,即使密碼未在應用層加密(HTTP基本身份驗證只是一個編碼和在表單中鍵入的密碼在表單數據中原樣發送)。它實際上沒有明確發送,正是因爲它全部通過SSL/TLS完成(通常,如果使用適當的密碼套件)。 – Bruno

回答

15

摘錄:

最後,如果其他身份驗證方法失敗,SSH提示輸入pass- 字的用戶。密碼被髮送到遠程主機進行檢查;但是,由於所有通信都是加密的,所以有人在網絡上收聽 時看不到密碼。

5

SSH沒有任何理由被命名爲「Secure Shell」。

SSH使用公鑰密碼進行身份驗證,這本身就非常安全。如果我們假設攻擊者沒有用戶和ssh守護進程的私鑰 - 僅通過監聽網絡就無法解密密碼。

這個協議,就像大多數其他協議不會保護您免受來自其他方的攻擊。社交工程和Man在中間攻擊中有幾種組合,如the SSH version downgrading attackDNS Spoofing attack