SSH的英文全稱是Secure SHell。通過使用SSH,你可以把所有傳輸的數據進行加密,這樣"中間人"這種攻擊方式就不可能實現了,而且也能夠防止DNS和IP欺騙。還有一個額外的好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替telnet,又可以為ftp、pop、甚至ppp提供一個安全的"通道"。SSH客戶端與服務器端通訊時,用戶名及口令均進行了加密,有效防止了對口令的竊聽。最初SSH是由芬蘭的一家公司開發的。但是因為受版權和加密算法的限制,現在很多人都轉而使用OpenSSH。OpenSSH是SSH的替代軟件,而且是免費的,可以預計將來會有越來越多的人使用它而不是SSH。SSH是由客戶端和服務端的軟件組成的。SSH安裝容易、使用簡單,而且比較常見,一般的Unix系統、Linux系統、FreeBSD系統都附帶有支持SSH的應用程序包。
為了方便理解,我們這里講解幾個概念:
1,所謂"中間人"的攻擊方式,就是"中間人"冒充真正的服務器接收你的傳給服務器的數據,然后再冒充你把數據傳給真正的服務器。服務器和你之間的數據傳送被"中間人"一轉手做了手腳之后,就會出現很嚴重的問題。傳統的網絡服務程序,如:ftp、pop和telnet在本質上都是不安全的,因為它們在網絡上用明文傳送口令和數據,別有用心的人非常容易就可以截獲這些口令和數據。而且,這些服務程序的安全驗證方式也是有其弱點的,就是很容易受到"中間人"(man-in-the-middle)這種方式的攻擊。
2,所謂明文:密碼技術目的就是要偽裝信息。加密是指將信息經過加密函數及加密密鑰轉換,變成無規則,無意義的密文;而解密則是將此密文經過解密函數、解密密鑰的處理還原成明文。密碼技術是網絡安全技術的基礎。
那么SSH的安全驗證是如何工作的?
從客戶端來看,SSH提供兩種級別的安全驗證。
第一種級別(基于口令的安全驗證)只要你知道自己帳號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密,但是不能保證你正在連接的服務器就是你想連接的服務器。可能會有別的服務器在冒充真正的服務器,也就是受到"中間人"這種方式的攻擊。
第二種級別(基于密匙的安全驗證)需要依靠密匙,也就是你必須為自己創建一對密匙,并把公用密匙放在需要訪問的服務器上。如果你要連接到SSH服務器上,客戶端軟件就會向服務器發出請求,請求用你的密匙進行安全驗證。服務器收到請求之后,先在你在該服務器 的家目錄下尋找你的公用密匙,然后把它和你發送過來的公用密匙進行比較。如果兩個密匙一致,服務器就用公用密匙加密"質詢"(challenge)并把它發送給客戶端軟件。客戶端軟件收到"質詢"之后就可以用你的私人密匙解密再把它發送給服務器。
用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網絡上傳送口令。
第二種級別不僅加密所有傳送的數據,而且"中間人"這種攻擊方式也是不可能的(因為他沒有你的私人密匙)。但是整個登錄的過程可能需要10秒。
posted on 2007-08-21 14:47
分享愛的空間 閱讀(264)
評論(0) 編輯 收藏