在整個通訊過程中,為實現ssh的安全連線,伺服器端與客戶端要經歷如下五個階段:
1. 版本號協商階段
具體步驟如下:
(1) 伺服器開啟埠22,等待客戶端連線。
(2) 客戶端向伺服器端發起tcp初始連線請求,tcp連線建立後,伺服器向客戶端傳送第乙個報文,包括版本標誌字串,格式為「ssh-
《主協議版本號》
. 《次協議版本號》
-《軟體版本號》
」,協議版本號由主版本號和次版本號組成,軟體版本號主要是為除錯使用。
(3) 客戶端收到報文後,解析該資料報,如果伺服器端的協議版本號比自己的低,且客戶端能支援伺服器端的低版本,就使用伺服器端的低版本協議號,否則使用自己的協議版本號。
(4) 客戶端回應伺服器乙個報文,包含了客戶端決定使用的協議版本號。伺服器比較客戶端發來的版本號,如果伺服器支援該版本,則版本協商結果為使用該版本,否則,版本協商失敗。
(5) 如果協商成功,則進入金鑰和演算法協商階段,否則伺服器端斷開tcp連線。
上述報文都是採用明文方式傳輸的。
2. 金鑰和演算法協商階段
具體步驟如下:
(1)伺服器端和客戶端分別傳送演算法協商報文給對端,報文中包含自己支援的公鑰演算法列表、加密演算法列表、mac(message authentication code,訊息驗證碼)演算法列表、壓縮演算法列表等。
(2)伺服器端和客戶端根據對端和本端支援的演算法列表得出最終使用的演算法。任何一種演算法協商失敗,都會導致伺服器端和客戶端的演算法協商過程失敗,伺服器將斷開與客戶端的連線。
(3)伺服器端和客戶端利用dh交換(diffie-hellman exchange)演算法、主機金鑰對等引數,生成會話金鑰和會話id,並完成客戶端對伺服器身份的驗證。
通過以上步驟,伺服器端和客戶端就取得了相同的會話金鑰和會話id。對於後續傳輸的資料,兩端都會使用會話金鑰進行加密和解密,保證了資料傳送的安全。會話id用來標識乙個ssh連線,在認證階段,會話id還會用於兩端的認證過程。
除了password認證和publickey認證,ssh2.0還提供了password-publickey認證和any認證。
4. 會話請求階段
認證通過後,客戶端向伺服器傳送會話請求。伺服器等待並處理客戶端的請求。請求被成功處理後,伺服器會向客戶端回應ssh_smsg_success包,ssh進入互動會話階段;否則回應ssh_smsg_failure包,表示伺服器處理請求失敗或者不能識別請求。
5. 互動會話階段
會話請求成功後,連線進入互動會話階段。在這個模式下,資料被雙向傳送。客戶端將要執行的命令加密後傳給伺服器,伺服器接收到報文,解密後執行該命令,將執行的結果加密傳送給客戶端,客戶端將接收到的結果解密後顯示到終端上。
憶龍2009 理解EAP TLS的信任模型
客戶側信任模型 客戶端信任伺服器 當你在使用諸如windows xp之類的客戶端時,你需要配置乙個根證書機構.通過這個根證書機構,你可以驗證aaa伺服器的合法性.你所指定的可信任證書機構,即可以是公共的,也可以是私有的,如果你決定使用乙個公共的根證書機構,那麼你必須知道,你對這個根證書機構是沒有任何...
憶龍2009 無線Mesh網路的部署
無線mesh網路主要包括兩種應用 普通無線mesh網路部署 1 普通fit mp場景 2 擁有兩個radio的fit mp,兩個radio分別在不同的mesh網路 如圖所示,為了使mesh 1和mesh 2網路不產生干擾,可以採用乙個擁有兩個radio的mp,兩個radio分別在不同的mesh網路。...
憶龍2009 關於PEAP認證的過程說明
1 證書獲取 2 無線接入 客戶端通過開放系統接入的方法 open system 和ap之間建立好物理連線。3 認證初始化 1 client向ap裝置傳送乙個eapol start報文,開始802.1x接入的開始。2 ap向客戶端傳送eap request identity報文,要求客戶端將使用者資...