HTTP over SSL 的簡稱,即工做在 SSL(安全套接字層) 或TLS(SSL的升級版)上的 HTTP。說白了就是加密通訊的HTTP。算法
必定注意HTTPS不是協議。安全
加密解密數據用的對稱加密,傳輸Pre master sercert和證書驗證使用的非對稱加密。服務器
非對稱加密因爲使用了複雜的數學原理,所以計算至關複雜,若是徹底使用非對稱加密來加密通訊內容,會嚴重影響網絡通訊的性能。網絡
1. 對稱加密算法
2. 非對稱加密算法
3. Hash算法
4. SSL或者TLS版本號
5. 一個隨機數
複製代碼
1. 對稱加密算法
2. 非對稱加密算法
3. Hash算法
4. SSL或者TLS版本號
5. 一個隨機數
複製代碼
那麼此時客戶端和服務端就擁有了相同的性能
1. 對稱加密算法
2. 非對稱加密算法
3. Hash算法
4. SSL或者TLS版本號
5. 兩個隨機數
複製代碼
看圖:加密
如圖發來的信息主體是證書的公鑰,可是它同時會附加上證書的簽名和HOST主機名稱。1. 首先咱們經過發來證書的根證書在本地找尋相同的根證書(本地根證書通常是操做系統自身已經帶着的)。
2. 取出根證書的公鑰對證書的簽名(用證書私鑰對發來公鑰進行加密的一個Hash值)作認證(公鑰解密)。
3. 比對驗證後的數據(Hash)和發來證書公鑰的Hash值是否相同,若是相同則認證經過,說明是一個受信任的證書。
複製代碼
1. Client Hello
2. Server Hello
3. 服務器證書 信任創建
4. Pre-master Secret
5. 客戶端通知:將使用加密通訊
6. 客戶端發送:Finished
7. 服務器通知:將使用加密通訊
8. 服務器發送:Finished
複製代碼
由於它要求你手動信任了它的根證書。此時它就能夠篡改證書爲它本身的證書了,HOST NAME直接篡改成目標服務器不變,證書公鑰是它自身的假機構簽發的而你本地又信任了它的根證書,那麼此時證書的驗證是能夠經過的,後續的Pre Master-Sercert它也能夠獲取到了,那麼最後它是持有密鑰的
。Fiddler至關於當了中間人,客戶端服務端兩頭騙,因此咱們平時不要信任未知的證書。spa
可參考:blog.csdn.net/hbdatouerzi…操作系統