天天看點

OpsnSSH抓包分析 | SSH協定分析

SSH協定是建立在不安全的網絡之上的進行遠端安全登陸的協定。它是一個協定族,其中有三個子協定,分别是:

1、傳輸層協定​<code>​[SSH-TRANS]​</code>​:提供伺服器驗證、完整性和保密性功能,建立在傳統的TCP/IP協定之上。

2、驗證協定​<code>​[SSH-USERAUTH]​</code>​:向伺服器驗證用戶端使用者,有基于使用者名密碼和公鑰兩種驗證方式,建立在傳輸層協定​<code>​[SSH-TRANS]​</code>​之上。

3、連接配接協定​<code>​[SSH-CONNECT]​</code>​:将加密隧道複用為若幹邏輯信道。它建立在驗證協定之上。

OpsnSSH抓包分析 | SSH協定分析

繼續之前,補充一下兩個概念:

1、​<code>​會話密鑰 key​</code>​:key是通過用戶端和伺服器之間通過諸如D-H算法協商出來的。

2、​<code>​公鑰 pub key​</code>​:pub key成為​<code>​伺服器主機密鑰server_host_key​</code>​,用于​<code>​SSH-TRANS​</code>​傳輸協定進行伺服器驗證,說白了就是用戶端去驗證伺服器用的

SSH協定握手過程大緻流程如下圖所示:

OpsnSSH抓包分析 | SSH協定分析

下面使用Wirdshark進行抓包分析,開啟wireshark抓包,進行一次正常的SSH登入,停止抓包,通過IP過濾出相關的封包如下:

如果将上述封包根據SSH協定運作的流程分析,流程和封包的對應關系如下:

TCP三向交握

OpsnSSH抓包分析 | SSH協定分析

版本協定交換

OpsnSSH抓包分析 | SSH協定分析

密鑰協商

OpsnSSH抓包分析 | SSH協定分析

在協商階段用戶端和用戶端互相告知自己支援的加密方法:

OpsnSSH抓包分析 | SSH協定分析

确定加密方法後,交換公鑰:

OpsnSSH抓包分析 | SSH協定分析

加密通信

如果是通過密碼登入,SSH就會采用這種自動協商密鑰進行非對稱加密通信。可以看到此後的封包全部為加密封包。

OpsnSSH抓包分析 | SSH協定分析

大概可以看出是以 ​<code>​New Keys​</code>​ 為界,區分密鑰協商和加密通信。

内部加密的原理究竟是什麼?這一點還需後期繼續探索。

參考文獻

SSH Official: ​​https://www.ssh.com/ssh/​​

OpenSSH:​​https://www.openssh.com/​​

SSH Wikipedia:​​https://zh.wikipedia.org/wiki/Secure_Shell​​

OpenSSH Wikipedia:​​https://zh.wikipedia.org/wiki/OpenSSH​​

--------------------- Author: ​

​Frytea​​Title: OpsnSSH抓包分析 | SSH協定分析

Copyright: This work by ​

TL-Song is licensed under a ​​Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License​​.​

OpsnSSH抓包分析 | SSH協定分析

​​

繼續閱讀