網路安全系列 之 TLS SSL基本原理

2022-08-24 06:12:09 字數 1270 閱讀 2641

tls/ssl的功能實現主要依賴於三類基本演算法(參見「網路安全系列 之 密碼演算法」):

客戶端使用非對稱加密與伺服器進行通訊,實現身份驗證並協商對稱加密使用的金鑰,然後對稱加密演算法採用協商金鑰對資訊以及資訊摘要進行加密通訊,不同的節點之間採用的對稱金鑰不同,從而可以保證資訊只能通訊雙方獲取。

以mysql建立連線的過程為例,抓包可見完整過程:

結合抓包結果,可以看到以下過程

1.client_hello

客戶端發起請求,以明文傳輸請求資訊,包含版本資訊,加密套件候選列表,壓縮演算法候選列表,隨機數,擴充套件欄位等資訊。

客戶端支援的加密套件 cipher suites 列表, 每個加密套件對應前面 tls 原理中的四個功能的組合:認證演算法 au (身份驗證)、金鑰交換演算法 keyexchange(金鑰協商)、對稱加密演算法 enc (資訊加密)和資訊摘要 mac(完整性校驗);

2. server_hello + server_certificate + sever_hello_done

3. 證書校驗

校驗內容包括:

4. client_key_exchange + change_cipher_spec + encrypted_handshake_message

5. change_cipher_spec+encrypted_handshake_message

伺服器用私鑰解密加密的 pre-master 資料,基於之前交換的兩個明文隨機數 random_c 和 random_s,計算得到協商金鑰:enc_key=fuc(random_c, random_s, pre-master);

計算之前所有接收資訊的 hash 值,然後解密客戶端傳送的 encrypted_handshake_message,驗證資料和金鑰正確性;

6. 握手結束

客戶端計算所有接收資訊的 hash 值,並採用協商金鑰解密 encrypted_handshake_message,驗證伺服器傳送的資料和金鑰,驗證通過則握手完成;

7. 加密通訊

開始使用協商金鑰與演算法進行加密通訊。

參考資料:https加密協議詳解(四):tls/ssl握手過程

網路安全系列之培訓筆記整理

邏輯漏洞 多個執行緒競爭同乙個共享 變數 檔案等稱之為條件競爭。那麼什麼情況存在競爭條件?例項 上傳檔案,下面是乙個上傳檔案的例子,上傳檔案之前先校驗許可權 include include include define delay 10000 int main fp fopen fn,a fwrit...

網路安全系列之十二 Linux使用者賬號安全設定

使用者賬號是計算機使用者的身份憑證或標識,每乙個要訪問系統資源的人,必須憑藉他的使用者賬號才能進入計算機。在linux系統中,提供了多種機制來確保使用者賬號的正當 安全使用。合理地規劃使用者賬號,並合理地分配許可權,是保證linux系統安全的第一步。1.清理系統賬號 在linux系統中,一些程式在安...

網路安全系列之十一 系統命令注入

系統命令注入 也是一種古老的 手段,是指 可以在有漏洞的頁面位址列中直接執行作業系統命令。下面將來演示這種 的實現方式,以及如何配置waf進行攔截,實驗環境仍然使用npmserv搭建。開啟 在位址列中的 後面輸入 cmd 所要執行的命令 如下圖所示的 user,可以發現命令能夠成功執行。下面配置wa...