本文嘗試使用牛郎織女來解釋Https。安全
信息交換傳遞從古至今都有,只是傳遞導體和交換方式不斷在發生變化。現代信息傳遞都是經過網絡進行。信息傳遞步驟簡化:打包 ---> 傳輸 ---> 解包,而像Http這類協議就是指定信息傳遞的標準,而信息傳遞通常主要考慮如下兩方面問題。網絡
本文主要討論傳遞的安全性。衆所周知 Https就是http安全版,咱們先來看一看古時傳遞信息怎麼保證安全。併發
在通信不是很發達的年代,飛鴿傳書是一種頗有效的方式。網站
牛郎織女屬於異地戀,他們平常溝通都是經過信鴿來傳遞情書。傳遞過程當中,信息安全很重要,若是不慎被王母知道就麻煩了。因而牛郎開始研究一套安全協議。他想了如下幾種方式:加密
直接將寫有「<u>我在牛家村門口</u>」情書發送給織女。這種方式安全性很低,一旦被王母攔截了鴿子拿到情書全部事情就敗漏了。打包
將情書內容加密後再進行傳遞:信息安全
這種方式的缺點是,傳播密鑰時,被王母攔截拿到了密鑰,信息同樣會被泄露。密碼
注:牛郎的這種加密方式在計算機中叫對稱加密(AES)協議
針對密鑰加密改進,新的通信方式:計算機
這種方式有個缺點,王母在第二步攔截了織女發給牛郎的空盒子,而後在裏面作一些手腳,牛郎收到後就很危險。
注:上面這種加密方式在計算機中叫作非對稱加密(RSA),盒子比如爲公鑰用來加密,鑰匙爲私鑰用於解密。
爲了防止王母攔截盒子作手腳,織女決定發送盒子前把盒子打上封條。這樣牛郎收到盒子時先檢查盒子有沒有被動過,確認安全以後再將情書放到盒子鎖定發送。
這樣作完以後彷佛很安全,可是封條也極可能被僞造。牛郎如何才能肯定是織女打的封條?因而他們找到了月老,讓月老代替織女幫她打封條。他們都信賴月老爲人,由於他只會在肯定織女身份後才幫她封條。這樣牛郎收到盒子一看是月老打的封條值得信賴就沒問題。
注:上面提到的月老其實就是網站證書頒發機構簡稱CA。
就這樣過了一段時間,鴿子開始罷工,由於天天帶着盒子飛來飛去很累。因而牛郎修訂了通信協議,獲得了最終版本。
當牛郎想和織女溝通時:
要徹底理解Https 協議自己是比較複雜,裏面涉及了不少通信的專業知識和密碼學知識。本文旨在簡化解釋它通信模型。
歡迎你們留言交流!