1. 程式人生 > 其它 >安全通訊協議SSH

安全通訊協議SSH

實驗簡介

實驗所屬系列:安全協議應用與分析

實驗物件:本科/專科資訊保安專業

相關課程及專業:資訊網路安全概論、網路攻擊與防禦技術、計算機網路

實驗時數(學分):2學時

實驗類別:實踐實驗類

預備知識

1.Telnet

Telnet協議是TCP/IP協議族的其中之一,是Internet遠端登入服務的標準協議和主要方式,常用於網頁伺服器的遠端控制,可供使用者在本地主機執行遠端主機上的工作。

使用者首先在電腦執行Telnet程式,連線至目的地伺服器,然後輸入帳號和密碼以驗證身份。使用者可以在本地主機輸入命令,然後讓已連線的遠端主機執行,就像直接在對方的控制檯上輸入一樣。

傳統Telnet會話所傳輸的資料並未加密,帳號和密碼等敏感資料容易會被竊聽,因此很多伺服器都會封鎖Telnet服務,改用更安全的SSH。

2.SSH

Secure Shell(縮寫為SSH),由IETF的網路工作小組(Network Working Group)所制定;SSH為一項建立在應用層和傳輸層基礎上的安全協議,為計算機上的Shell(殼層)提供安全的傳輸和使用環境。

SSH是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用SSH協議可以有效防止遠端管理過程中的資訊洩露問題。通過SSH可以對所有傳輸的資料進行加密,也能夠防止DNS欺騙和IP欺騙。

SSH之另一項優點為其傳輸的資料可以是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替Telnet,又可以為FTP、POP、甚至為PPP提供一個安全的“通道”。

3.SSH的安全驗證

在客戶端來看,SSH提供兩種級別的安全驗證。

第一種級別(基於密碼的安全驗證),知道帳號和密碼,就可以登入到遠端主機,並且所有傳輸的資料都會被加密。但是,可能會有別的伺服器在冒充真正的伺服器,無法避免被“中間人”攻擊。

第二種級別(基於金鑰的安全驗證),需要依靠金鑰,也就是你必須為自己建立一對金鑰,並把公有金鑰放在需要訪問的伺服器上。客戶端軟體會向伺服器發出請求,請求用你的金鑰進行安全驗證。伺服器收到請求之後,先在你在該伺服器的使用者根目錄下尋找你的公有金鑰,然後把它和你傳送過來的公有金鑰進行比較。如果兩個金鑰一致,伺服器就用公有金鑰加密“質詢”(challenge)並把它傳送給客戶端軟體。從而避免被“中間人”攻擊。

在伺服器端,SSH也提供安全驗證。在第一種方案中,主機將自己的公用金鑰分發給相關的客戶端,客戶端在訪問主機時則使用該主機的公開金鑰來加密資料,主機則使用自己的私有金鑰來解密資料,從而實現主機金鑰認證,確保資料的保密性。在第二種方案中,存在一個金鑰認證中心,所有提供服務的主機都將自己的公開金鑰提交給認證中心,而任何作為客戶端的主機則只要儲存一份認證中心的公開金鑰就可以了。在這種模式下,客戶端必須訪問認證中心然後才能訪問伺服器主機。

實驗目的

通過該實驗瞭解SSH伺服器的配置,理解SSH和Telnet的區別。

實驗環境

1:Windows Server 2003作為server

2:Windows XP作為client

輔助工具

1)Wireshark:網路資料包監聽工具

http://tools.hetianlab.com/tools/SSH/Wireshark-win32-1.11.2.exe

2)OpenSSH:ssh服務端

http://tools.hetianlab.com/tools/SSH/OpenSSH.exe

3)freeSSHd:另一個更靈活的ssh服務端

http://tools.hetianlab.com/tools/SSH/freeSSHd.exe

4)putty:ssh客戶端

http://tools.hetianlab.com/tools/SSH/putty.exe

實驗步驟一

本實驗主要了解Telnet服務和SSH服務的區別,那麼要分別搭建兩個伺服器,並且用Wireshark來抓包分析。

搭建Telnet伺服器

Server上:

首先開啟執行,輸入tlntsvr /service,啟動Telnet服務程式,再開啟執行,輸入services.msc,開啟服務管理程式

找到Telnet服務,然後更改啟動型別為自動,並且啟動Telnet服務

通過netstat –an檢視23埠是否開放

下面Telnet本機

退出請輸入exit。

至此server配置結束。

實驗步驟二

Client:到xp上,安裝好Wireshark,然後Telnet server的IP,如telnet 10.1.1.92,然後就能看到歡迎介面

使用server的使用者名稱和密碼登入,注意密碼沒有回顯,並不是沒有輸入進去。

成功登入10.1.1.92,此時的操作如同在10.1.1.92上用命令提示符操作一樣。

開啟Wireshark,在過濾欄中輸入Telnet,點選應用。

重新連線Telnet,然後在Wireshark中找到包

實驗步驟三

搭建SSH伺服器

Server:安裝OpenSSH.exe。

安裝完成後,開啟命令提示符

執行 cd C:\Program Files\OpenSSH\bin,然後執行如下兩條命令:

mkgroup -l >> ..\etc\group (匯入本地組)

mkpasswd -l >> ..\etc\passwd(匯入本地使用者名稱和密碼)

最後執行 net start opensshd,開啟ssh服務。

此時檢視埠

發現22埠已經開啟

Client:開啟putty,輸入server的IP,點選open

會彈出一個警告,點選,然後輸入server的使用者名稱

輸入密碼後,成功登入

繼續開啟Wireshark,輸入過濾條件ssh。

可以看到,server和client使用的軟體版本,然後是金鑰交換等資訊

下面的包全是密文傳輸,還帶有MAC資訊。

分析與思考

對資料包進行分析,比較使用Telnet和SSH有什麼不同?

1.telnet是明文傳送,直接建立TCP連線是一種不安全的方式;SSH 為建立在應用層基礎上的安全協議,是加密傳送,並且支援壓縮。

2.telnet的預設埠號為23;ssh的預設埠號為22.

3.ssh使用公鑰對訪問的伺服器的使用者驗證身份,進一步提高的安全性;telnet沒有使用公鑰。