故事還要從月月給她老公亮亮發了一條消息提及。程序員
晚上亮亮下班回到家,剛一進門
"給我跪下",
"咋了,媳婦兒?",嘴上這樣問着,但是亮亮的身體仍是很誠實。
"你不是給我發消息說今晚不回家嗎?"說着月月掏出了手機
"天地良心我沒這麼說過,我今天收到了你的消息仍是你罵我呢",亮亮也掏出了本身的手機算法
"好神奇,咱們收到的消息和發出去的消息不同耶,難道是咱們被黑客截取了信息"安全
亮亮起身拍了拍膝蓋上的灰說到:「確定是呀,不要讓我看見他,否則我打得他媽都不認識他"網絡
入夜了,小兩口在牀上躺着想到今天發生的事兒仍是苦笑不得,決定想個辦法來解決通訊不安全的問題,否則這日子無法過了。網站
"亮亮,你說咋辦呢?你是程序員,你說有什麼辦法即便是黑客截取到了咱們的信息也沒有辦法知道是什麼內容,就跟諜戰片裏面同樣"加密
"能夠呀,你發送消息給個人時候用密鑰加密,而後我收到消息用一樣的算法,一樣的密鑰解密就好了,這有個專業術語叫作對稱加密"
spa
"聽上去不錯,但是你這個有問題呀,和你一我的通訊這樣卻是能夠,可是和其餘人通訊怎麼辦呢?我和他們怎麼協商密鑰呢?"
操作系統
"沒事兒,這難不倒我,咱們還可使用非對稱加密算法,它有兩個密鑰,一個叫公鑰,一個叫私鑰,公鑰加密的數據只能被私鑰解密,一樣的,私鑰加密的數據只能被公鑰解密,私鑰只能由你持有,公鑰就由我持有(能夠網絡分發),之後你想和我聊天就把密鑰用私鑰加密,我這邊用公鑰解密獲得密鑰,而後咱們還像以前講的那樣用密鑰加密消息進行通訊。別人想和你聊天,你就把公鑰給他就好了"
開發
「爲何咱們不直接使用非對稱加密算法來通訊呢?"rem
"非對稱加密不只速度慢並且只支持少許數據的加密,說多了你也不懂"
"還存在一個問題耶,這個公鑰就這樣暴露出去了,黑客就能夠將其替換成他的公鑰,這樣別人給我發送消息就至關於給這個黑客發送消息了"
"這個可讓第三方進行擔保,讓它給我保證公鑰是正確的。這個第三方結構咱們稱它爲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)。