講清楚charles抓包原理

基礎概念

1. CA

CA是證書頒發機構,不是隨便什麼人都能成爲證書頒發機構,關鍵是你頒發的證書要別人認可。別人認可你纔會內置你的證書(機構證書,也稱根證書)。

2. TSL證書

TSL證書是指用於https通信,客戶端驗證服務端的合法性的一個數據包。

證書內容

服務提供者的基本信息和證書頒發機構和使用的算法和域名等+該服務的公鑰+證書籤名

證書籤名怎麼產生

服務提供者的基本信息先取hash,再用CA機構的私鑰加密。

3. 根證書

CA機構的證書,客戶端內置(最常見的就是瀏覽器廠商內置主流機構的證書)

4. 證書鏈

下級證書的簽名是使用上級證書的私鑰加密產生的,所以因爲這個關聯關係形成了一個鏈條。

5. 證書校驗過程

step1 服務端發送自己的證書給客戶端
step2 客戶端讀取證書頒發機構
step3 客戶端找到本地對應機構的證書
step4 客戶端那機構證書公鑰解密服務器證書籤名
step5 客戶端拿證書信息作hash,與step4解密的內容對比,相等並且基本信息中的域名跟當前訪問的域名一致則通過。

charles抓包原理

charles的根證書

charles自己做了一個根證書,你想要用charles抓包,第一步你要內置他發佈的根證書。

charles僞造證書

charles用他自己的證書給你服務端的域名做一個證書。

charles作爲中間人的流程

step1 攔截客戶端請求
step2 發送他僞造的證書給客戶端
step3 因爲你內置了charles的根證書,所以該證書能校驗通過
step4 客戶端根charles協商好通信密碼開始通信。
step5 charles收到客戶端數據用僞造證書的私鑰解密
step6 charles使用同樣的流程跟你的服務器建立HTTPS加密通道
step7 charles將收到的客戶端數據通過建好的通道發給服務器
step8 服務器返回響應數據給charles
step9 charles解密響應數據再加密發給客戶端

畫了張簡陋的圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章