為了方便理解,我們這里講解幾個(gè)概念:
1,所謂"中間人"的攻擊方式,就是"中間人"冒充真正的服務(wù)器接收你的傳給服務(wù)器的數(shù)據(jù),然后再冒充你把數(shù)據(jù)傳給真正的服務(wù)器。服務(wù)器和你之間的數(shù)據(jù)傳送被"中間人"一轉(zhuǎn)手做了手腳之后,就會(huì)出現(xiàn)很嚴(yán)重的問題。傳統(tǒng)的網(wǎng)絡(luò)服務(wù)程序,如:ftp、pop和telnet在本質(zhì)上都是不安全的,因?yàn)樗鼈冊诰W(wǎng)絡(luò)上用明文傳送口令和數(shù)據(jù),別有用心的人非常容易就可以截獲這些口令和數(shù)據(jù)。而且,這些服務(wù)程序的安全驗(yàn)證方式也是有其弱點(diǎn)的,就是很容易受到"中間人"(man-in-the-middle)這種方式的攻擊。
2,所謂明文:密碼技術(shù)目的就是要偽裝信息。加密是指將信息經(jīng)過加密函數(shù)及加密密鑰轉(zhuǎn)換,變成無規(guī)則,無意義的密文;而解密則是將此密文經(jīng)過解密函數(shù)、解密密鑰的處理還原成明文。密碼技術(shù)是網(wǎng)絡(luò)安全技術(shù)的基礎(chǔ)。
那么SSH的安全驗(yàn)證是如何工作的?
從客戶端來看,SSH提供兩種級(jí)別的安全驗(yàn)證。
第一種級(jí)別(基于口令的安全驗(yàn)證)只要你知道自己帳號(hào)和口令,就可以登錄到遠(yuǎn)程主機(jī)。所有傳輸?shù)臄?shù)據(jù)都會(huì)被加密,但是不能保證你正在連接的服務(wù)器就是你想連接的服務(wù)器。可能會(huì)有別的服務(wù)器在冒充真正的服務(wù)器,也就是受到"中間人"這種方式的攻擊。
第二種級(jí)別(基于密匙的安全驗(yàn)證)需要依靠密匙,也就是你必須為自己創(chuàng)建一對(duì)密匙,并把公用密匙放在需要訪問的服務(wù)器上。如果你要連接到SSH服務(wù)器上,客戶端軟件就會(huì)向服務(wù)器發(fā)出請(qǐng)求,請(qǐng)求用你的密匙進(jìn)行安全驗(yàn)證。服務(wù)器收到請(qǐng)求之后,先在你在該服務(wù)器 的家目錄下尋找你的公用密匙,然后把它和你發(fā)送過來的公用密匙進(jìn)行比較。如果兩個(gè)密匙一致,服務(wù)器就用公用密匙加密"質(zhì)詢"(challenge)并把它發(fā)送給客戶端軟件。客戶端軟件收到"質(zhì)詢"之后就可以用你的私人密匙解密再把它發(fā)送給服務(wù)器。
用這種方式,你必須知道自己密匙的口令。但是,與第一種級(jí)別相比,第二種級(jí)別不需要在網(wǎng)絡(luò)上傳送口令。
第二種級(jí)別不僅加密所有傳送的數(shù)據(jù),而且"中間人"這種攻擊方式也是不可能的(因?yàn)樗麤]有你的私人密匙)。但是整個(gè)登錄的過程可能需要10秒。