图说HTTPS协议
故事還要從月月給她老公亮亮發了一條消息說起。
晚上亮亮下班回到家,剛一進門
“給我跪下”,
“咋了,媳婦兒?”,嘴上這樣問著,可是亮亮的身體還是很誠實。
"你不是給我發消息說今晚不回家嗎?"說著月月掏出了手機
“天地良心我沒這么說過,我今天收到了你的消息還是你罵我呢”,亮亮也掏出了自己的手機
“好神奇,我們收到的消息和發出去的消息不一樣耶,難道是我們被黑客截取了信息”
亮亮起身拍了拍膝蓋上的灰說到:“肯定是呀,不要讓我看見他,不然我打得他媽都不認識他"
入夜了,小兩口在床上躺著想到今天發生的事兒還是苦笑不得,決定想個辦法來解決通信不安全的問題,不然這日子沒法過了。
“亮亮,你說咋辦呢?你是程序員,你說有什么辦法即使是黑客截取到了我們的信息也沒有辦法知道是什么內容,就跟諜戰片里面一樣”
“可以呀,你發送消息給我的時候用密鑰加密,然后我收到消息用同樣的算法,同樣的密鑰解密就行了,這有個專業術語叫做對稱加密”
“聽上去不錯,可是你這個有問題呀,和你一個人通信這樣倒是可以,但是和其他人通信怎么辦呢?我和他們怎么協商密鑰呢?”
“沒事兒,這難不倒我,我們還可以使用非對稱加密算法,它有兩個密鑰,一個叫公鑰,一個叫私鑰,公鑰加密的數據只能被私鑰解密,同樣的,私鑰加密的數據只能被公鑰解密,私鑰只能由你持有,公鑰就由我持有(可以網絡分發),以后你想和我聊天就把密鑰用私鑰加密,我這邊用公鑰解密得到密鑰,然后我們還像之前講的那樣用密鑰加密消息進行通信。別人想和你聊天,你就把公鑰給他就行了”
“為什么我們不直接使用非對稱加密算法來通信呢?"
“非對稱加密不僅速度慢而且只支持少量數據的加密,說多了你也不懂”
“還存在一個問題耶,這個公鑰就這樣暴露出去了,黑客就可以將其替換成他的公鑰,這樣別人給我發送消息就相當于給這個黑客發送消息了”
“這個可以讓第三方進行擔保,讓它給我保證公鑰是正確的。這個第三方結構我們稱它為CA”
“它如何保證呀?”
“CA其實也是使用了非對稱加密算法,首先使用CA的私鑰對我們的公鑰加密,然后它會給你返回一個證書,里面包含了加密之后的公鑰,然后你本地使用CA公鑰解密這個證書就可以獲取到我們的公鑰了。你老公我是不是很聰明呀?”
“聰明?呵呵。我告訴你你還是太天真了,CA可以給你頒發證書也可以給黑客證書,你如何保證證書沒有被掉包,我收到的證書不是黑客所持有的?”
亮亮嘀咕到:“一天想東想西的,黑客哪有那么多時間,天天守著你”
“你說什么?”
“我說,我們可以在本地通過證書的編號來驗證證書是否是真實的呀?我們讓證書根據一系列信息生成一個消息摘要,然后將這個消息摘要使用CA的密鑰加密形成數字簽名放到證書里面,然后我們本地根據同樣的規則來生成消息摘要,然后將證書中的數字簽名解密,它們兩個進行兩兩對比就行呀。”
一系列代指簽發者,證書用途,我們需要傳輸的公鑰,加密算法,HASH算法,到期時間等,對于網站來說還有域名的信息
“聽上去不錯,可是這一切的前提是CA的公鑰可信呀,萬一內置在游覽器和操作系統的證書不可信了怎么辦呢?”
“如果這兩個都被攻破了,那就萬事皆休了,而且世界上哪有絕對的安全呀,你要是在意信息泄露,那你就別上網好了”
“算了,還是別想那么多了,睡覺吧,都2點鐘,明天我肯定又有黑眼圈了,都怪你。”
NetScape相繼開發了SSL1.0,SSL2.0,SSL3.0,由ISOC組織接手后,發布了TLS 1.0(和SSL3.0幾乎沒有差異,可以向下降級),TLS1.0也被稱為SSL3.1,然后經過TLS1.1,TLS1.2,現在最新的是TLS1.3。大部分游覽器基本都支持TLS1.2。
我們訪問網絡常用的協議是HTTP協議,但是它的通信過程并不安全,很容易被攔截,監聽,篡改。而SSL/TLS可以保證信息安全,所以它們合并在一起就組成了我們今天要說的主角HTTPS(HTTPS=HTTP >+ SSL/TLS)。
點贊關注不迷路
總結
- 上一篇: python医院管理系统代码_php医院
- 下一篇: 麦克风阵列声音定位简介