安全通信協議SSH應用與分析


1.Telnet

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

 

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

 

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

 

搭建Telnet服務器

 

Server上:

 

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

 

 

 

 

 

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

 

 

 

 

 

 

 通過netstat –an查看23端口是否開放

 

 

 Client:到xp上,安裝好Wireshark,然后Telnet server的IP,如telnet 10.1.1.44,然后就能看到歡迎界面

 

 

 

 

 

 

 

 

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

      打開Wireshark,在過濾欄中輸入Telnet,點擊應用。

      重新連接Telnet,然后在Wireshark中找到包

 

 

 

 

 

 

 

 用戶名的第一個字母,注意,Telnet是一個一個字符的包

         這個包往下就是輸入的密碼了,也是一個一個字符形式。

      至此Telnet實驗結束。

 

搭建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信息。

1)本實驗是在客戶端使用Wireshark監聽的,請配置第三台機器來監聽這server和client之間的信息傳輸。

2)對數據包進行分析,比較使用Telnet和SSH有什么不同?

 

值得注意的是,telnet連接的時候直接建立TCP連接,所有傳輸的數據都是明文傳輸,所以是一種不安全的方式。

 

SSH 為Secrue Shell的縮寫,SSH 為建立在應用層基礎上的安全協議,是比較可靠安全的協議。

ssh 是加密的,基於 SSL 。
telnet 是明碼傳輸的,發送的數據被監聽后不需要解密就能看到內容。

telnet與ssh有什么不同呀 - 策碼秀才 - 博客園 (cnblogs.com)

Telnet和SSH區別 - shengguorui - 博客園 (cnblogs.com)


3)SSH還有一種是免密碼用密鑰登錄使用的方式,請嘗試配置。

ssh詳細登錄過程_Follow your heart-CSDN博客_ssh連接過程

Linux 設置秘鑰登錄(SSH免密遠程登錄) - albert飛的博客 - 博客園 (cnblogs.com)
4)我們在這個實驗中,是導入了當前的用戶組和用戶,請使用給出的freeSSHd軟件,靈活得配置SSH,使其支持更多用戶。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM