1. 程式人生 > >網絡安全基礎之筆記二(傳輸層安全)

網絡安全基礎之筆記二(傳輸層安全)

一個 keys 字符串交換 web安全 恢復 xinit images 流量 分享

web安全威脅

技術分享

web流量安全方法

技術分享

SSL

兩層協議組成。會話通過握手協議創建。

會話狀態:會話標識符、對等證書、壓縮方法、密碼規格、主密鑰(C/S共享的48字節的會話密鑰)、可恢復性。

連接狀態:隨機字節串、服務器寫MAC密鑰、客戶端寫MAC密鑰、服務器寫密鑰、客戶端寫密鑰、初始化向量IV、序列號(改變密碼規格時置零)

技術分享

(1)SSL記錄協議

技術分享 技術分享

(2)密碼變更規格協議

使延遲狀態改變為當前狀態,協議只包含一條消息,由一個值為1的字節組成。

技術分享

(3)報警協議

第一個字節為警告,第二個字節為致命,致命時立即結束當前連接並且本次會話不允許建立新連接。

(4)握手協議

  1. SSL 客戶端發送“Hello”消息給 SSL 服務器端,並列出客戶端所支持的 SSL 版本、加密算法和摘要算法。在實際應用中,一般將加密算法和摘要算法結合到一起,組成一個加密套件。同時,客戶端還會發送一個隨機數,用於以後產生加密密鑰。
  2. SSL 服務器端對客戶端的連接請求作出回應。從客戶端提供的加密套件列表中,選擇要使用的加密套件,並產生另外一個隨機數。同時,服務器端會發送自己的數字證書給客戶端,裏面包含服務器端的認證信息及公共密鑰。如果服務器端需要驗證客戶端,它還會在消息中包含要求客戶端提供數字證書的請求。
  3. 客戶端收到服務器端的回應。它首先使用 CA 證書驗證服務器端證書的有效性。在此過程中,客戶端會檢查證書的簽名、證書認證路徑、有效日期、證書狀態等。驗證通過後,抽取出其中的公鑰。客戶端產生另外一個隨機數,並使用服務器端的公鑰加密後發送給服務器端。
  4. 如果服務器端要求客戶端提供證書,客戶端會將隨機數用私鑰加密,連同證書發送給服務器端。服務器端對客戶端的證書進行驗證,並使用客戶端的公鑰解密收到的隨機數。
  5. 服務器端和客戶端基於前面提供的隨機數,計算出用於數據加密的共享密鑰。
  6. 客戶端將所有握手消息的 MAC 值發送給服務器端,服務器端也將所有握手消息的 MAC 值發送給客戶端。這麽做是為了防止攻擊者在握手過程中篡改了消息內容。
  7. 客戶端和服務器端使用握手過程中產生的加密密鑰交換握手結束消息。握手結束,SSL 連接建立。

技術分享 技術分享

HTTPS(443端口)

HTTP(80端口)+SSL

被加密的元素

  1. 請求文件的URL
  2. 文件內容
  3. 表單內容
  4. Cookie
  5. HTTP標題內容

SSH(Secure Shell)

安全的遠程登錄、文件傳輸和Email等。

技術分享

傳輸層協議

1)識別字符串交換:字符串用於Diffie-Hellman密鑰交換

2)算法協商:SSH_MSG_KEXINIT包含公鑰算法列表、加密算法列表、MAC算法列表、壓縮算法列表等

3)密鑰交換:以SSH_MSG_NEWKEYS作為結束符,利用DH交換算法、主機密鑰對等參數,生成會話密鑰和會話ID,並完成客戶端對服務器身份的驗證

4)服務請求:請求身份驗證或數據傳輸,之後的數據會作為有效載荷

技術分享

技術分享

用戶身份驗證協議

1)Client發送SSH_MSG_USERAUTH_REQUEST

2)Sever檢查用戶名,無效則返回SSH_MSG_USERAUTH_FAILURE,有效則返回SSH_MSG_USERAUTH_FAILURE及可使用的認證方式名單

3)Client選擇一種認證方式,再次發送SSH_MSG_USERAUTH_REQUEST

5)Server返回SSH_MSG_USERAUTH_FAILURE,成功則返回信息的布爾值(表示是否部分成功)為true及可使用的認證方式名單,失敗則返回的布爾值為false

6)當所有身份認證都成功後,Server發送SSH_MSG_USERAUTH_SUCCESS,當超過認證次數限制或認證失敗,則關閉連接

技術分享

連接協議

1)本地端口映射:客戶端創建一個攔截進程將不安全的TCP連接重新傳入到SSH通道中,利用選擇的端口抓取所有傳輸。

技術分享

技術分享

2)遠端映射

技術分享

參考:http://blog.chinaunix.net/uid-21854925-id-3082425.html

《網絡安全基礎應用與標準》

網絡安全基礎之筆記二(傳輸層安全)