HTTPS的原理
安利一本書
《碼農翻身》,一本以故事的形式生動講解了關於計算機以及編程等各方面知識的書,可謂是可以勞逸結合的一本好書。
作者劉欣,15年編程經驗,抱著活到老學到老的心態,揣摩計算機各方面的知識。他以故事的形式描述計算機的知識,並將此記錄在他的微信公眾號中,這本書便是由此而來。
封面如圖:
單從封面看就能知道作者的筆法~
下面所講述的知識,就是我從這本書的這個知識點所總結出來的。我同樣以故事的形式來描述HTTPS,這種傳授知識的方式我非常喜歡!!!
HTTPS
作為經常網上衝浪的人,都應該知道HTTPS比HTTP要安全的多,那麼在介紹HTTPS的工作原理之前,先了解一下:對稱加密,非對稱加密(RSA),數字證書,數字簽名。
先說明一下下面所講述到的幾個名詞:
小張:實際身份為瀏覽器
小李:實際身份為伺服器
中間人:實際身份為網路攻擊者
對稱加密
什麼叫對稱加密?
在這裡,對稱可理解為兩把相同的鑰匙,它們是對稱的。而用這兩把相同的鑰匙來加密和解密就稱為對稱加密(相當於門鑰匙,可以上鎖和解鎖)。
用一個例子描述一下:
小張和小李是要好的朋友,他們各自有著一把鑰匙,他們的鑰匙相同。他們來自不同的國家,只能通過發送信息來往。為了防止他們的發送的信息被中間人截獲,他們都使用同一把鑰匙來給自己的信息加密。
小張用鑰匙加密了文件發送給小李,小李用鑰匙解密文件,獲取信息。同樣的小李用鑰匙加密文件發送給小張,小張用鑰匙解密文件。信息安全的來往著,中間人絲毫沒有辦法去截獲信息。
可以描述為上面的張圖。
對稱密鑰:兩把相同的鑰匙
不過有一天,小張的鑰匙突然弄丟了!!小張向小李打國際電話說:"小李啊,能不能複製一把鑰匙發送給我啊,我鑰匙不見了!",小李聽到後說:"小張,如果我發鑰匙給你,鑰匙很可能會被別人截獲,那麼到時再發加密文件給你的時候,別人就能截獲並解密文件,讀取到我給你的信息啊!"。小張說:「那怎麼辦?」
於是就有了非對稱加密~
非對稱加密
小張和小李討論了很久(浪費了很多話費)沒有結果,小李突發奇想:「要不我們每個人都弄兩把不同的鑰匙,一把用來加密,一把用來解密。那麼我把加密的鑰匙給你,你加密好文件再發給我,我用我的解密鑰匙來解密不就行了嗎?」小張頓悟:「好主意,就這麼辦!」。
於是小張和小李各自弄出了兩把不同的鑰匙,並各自將加密鑰匙發送給對方。小張和小李用著對方所給的加密鑰匙加密文件,將加密文件發送給對方,接收到文件後,接著用自己的解密鑰匙解密。美好的一天又開始了!
公鑰:用於加密的鑰匙。
私鑰:用於解密的鑰匙。
公鑰加密後的文件只能被私鑰解密。
然而事情並沒有他們所想的那麼順利,用私鑰解密文件效率太低了(演算法問題)。他們又開始討論起來,如何才能提高效率。
對稱加密+非對稱加密
這次輪到小張靈感大發:「之前我們所用的第一把鑰匙解密速度很快,那麼我們可以嘗試兩者結合起來。先用你的公鑰加密對稱密鑰,然後將對稱密鑰發送給你,你再用你的私鑰解密獲得對稱密鑰,那麼以後就可以一直使用對稱密鑰來加密和解密文件了,效率大大提高!」。小李聽後不由興奮起來:「小張,你真棒!」
說完沒多久,小張立刻使用小李給他的公鑰加密對稱密鑰,然後將其發送給小李。小李接收到小張的對稱密鑰後,用自己的私鑰解密得到了對稱密鑰。日子又變得閑暇起來~
一個星期後~
這天,小張莫名其妙的接收到一個文件,文件裡面有著公鑰。看到這把公鑰,小張靈機一動:終於輪到小李弄丟對稱密鑰了。小張想都沒想,用著這個公鑰加密對稱密鑰。正當要點擊發送的時候,小張又收到了文件,來自小李的:今天天氣不錯啊老兄~。小張頓悟,這條公鑰不是來自小李的。小張立刻給小李回信:「小李,我今天收到了一把公鑰,我以為你弄不見對稱密鑰,我差點把我們的對稱密鑰發送出去了!」。不一會兒,小李回信:「笑話,只有你才會這這麼粗心!等等,有人給你發公鑰!!」小張和小李意識到了問題所在,萬一不知道公鑰來自於哪裡,也是很容易泄露信息的。
數字證書與數字簽名
為了不讓信息泄露出去,小張和小李使用了一種驗證演算法,名叫數字簽名。
數字簽名:將文件中的信息以及對方的公鑰通過Hash(只要文件中的信息有一點不同,消息摘要就會千變萬化)轉化為一段消息摘要,然後通過(CA)認證中心的密鑰加密從而形成帶有加密的消息摘要,這個加密的消息摘要被稱為數字簽名。
數字證書:文件的信息、公鑰以及數字簽名所組合而成被稱為數字證書。
當接收到數字證書的時候:
先通過Hash將數字證書中的文件信息及對方的公鑰轉化文消息摘要
解密數字簽名得到消息摘要,對比兩個消息摘要,如果相同,則數字簽名驗證成功。
ps:畫圖累死我了..........
知道以上這些HTTPS的原理,就能總結一下HTTPS的過程了~
HTTPS過程
一張圖夠生動形象了吧~
關注不吃虧
要知道,用心寫推文的人已經不多了
TAG:Miku灬Rua |