本講詳細講述了ssl協議中的資料加密的過程,數字證書、對稱加密、非對稱加密和ssl握手過程等概念。
https之所以安全就是因為加持了ssl這個外掛程式來對傳輸的資料進行加密,那麼具體的加密方法又是什麼呢?
請聽我娓娓道來。先看下面兩個概念:
你知道上面兩個概念是什麼意思麼??
ok,不管你懂不懂,我先用我的方式來給你解釋下:
親,你作過弊麼??不要告訴我在你漫長的學生生涯裡你沒作過弊(那你的學生生涯得多枯燥),作弊我們常用的方法是啥?(說把答案寫在胳膊大腿紙條上的同學請你出去,謝謝?) 當然是加密了!比如我出於人道主義,想要幫助小明同學作弊,首先考試前我們會約定好乙個暗號來傳遞選擇題的答案,摸頭髮——a,摸耳朵——b,咳嗽——c,跺腳——d,於是乙個加密方法就誕生了。
這個加密方法只有我和小明知道,老師雖然看我抓耳撓腮但他頂多把我當成神經病,並沒有直接證據說我作弊。好,這種我和小明知道,別人不知道的加密方法就是一種對稱加密演算法,對稱加密演算法也是我們日常最常見的加密演算法。這種演算法?只有一把,加密解密都用同一把鑰匙,一旦?洩露就全玩完了。
隨時時代的進步,人們發現實際上加密和解密不用同一把?也是可以的,只要加密和解密的兩把?存在某種關係就行了。
於是,層出不窮的非對稱加密演算法就被研究了出來,那麼它基於什麼樣的道理呢?請嚴格記住下面這句話:
將a和b相乘得出乘積c很容易,但要是想要通過乘積c推導出a和b極難。即對乙個大數進行因式分解極難。
好的,我們繼續,非對稱加密演算法就多了兩個概念——公鑰c和私鑰b。
用法如下:公鑰加密的密文只能用私鑰解密,私鑰加密的密文只能用公鑰解密。
公鑰我們可以隨便公開,因為別人知道了公鑰毫無用處,經過公鑰加密後的密文只能通過私鑰來解密。而想要通過公鑰推導出a和b極難。但很明顯的是,使用非對稱加密效率不如對稱加密,因為非對稱加密需要有計算兩個金鑰的過程。
我們通過密碼學中的兩個典型的愛麗絲和鮑勃人物來解釋這個非對稱加密演算法的過程:
客戶端叫**麗絲,伺服器叫做鮑勃。
愛麗絲: 鮑勃我要給你傳送一段訊息,把你的公鑰給我吧;
鮑勃: ok,這是我的公鑰:234nkjdfdhjbg324**;
愛麗絲:收到公鑰,我給你傳送的訊息經過公鑰加密之後是這樣的:###
@#@!$%*(@;
鮑勃:好的,收到了,親,我來用我的私鑰解密看下你真正要給我傳送的內容;
上述過程就是乙個非對稱加密的過程,這個過程安全麼?好像是很安全,即使查理(通訊中的第三位參加者)擷取了密文和公鑰沒有私鑰還是沒法得到明文。
可如果第三者查理傳送給愛麗絲他自己的公鑰,然後愛麗絲用查理給的公鑰加密密文傳送了出去,查理再通過自己的私鑰解密,這不就洩露資訊了麼?我們需要想個辦法讓愛麗絲判斷這個公鑰到底是不是鮑勃發來的。於是就有了數字證書的概念。
上面官方的解釋看起來就頭大。其實它就是一段資訊。
數字證書內容大體如下:
數字證書是由權威機構——ca機構統一來進行發行,我們絕對信任這個機構,至於ca機構的安全性…反正99.99%之下都是安全的。
為了防止中間有人對證書內容進行更改,有了乙個數字簽名的概念,所謂的數字簽名就是把以上所有的內容做乙個hash操作,得到乙個固定長度然後再傳給鮑勃。然而如果別人擷取了這個證書然後更改內容,同時生成了新的hash值那怎麼辦?處於這個考慮,ca機構在頒發這個證書的時候會用自己的私鑰將hash值加密,從而防止了數字證書被篡改。
好,我們來梳理下整個過程:
如上,是整個數字證書的使用過程就是這樣的。
多說一句,非對稱加密實際應用的例子除了ssl還有很多,比如ssh、電子簽名等;
如上提到的,非對稱加密計算量很大,效率不如對稱加密,我們開啟網頁最注重的是啥?是速度!是速度!是速度!???
這點ssl就玩的很巧妙了,通訊雙方通過對稱加密來加密密文,然後使用非對稱加密的方式來傳遞對稱加密所使用的金鑰。這樣效率和安全就都能保證了。
先用語言來闡述下:
第一步:愛麗絲給出支援ssl協議版本號,乙個客戶端隨機數(client random,請注意這是第乙個隨機數),客戶端支援的加密方法等資訊;
第二步:鮑勃收到資訊後,確認雙方使用的加密方法,並返回數字證書,乙個伺服器生成的隨機數(server random,注意這是第二個隨機數)等資訊;
第三步:愛麗絲確認數字證書的有效性,然後生成乙個新的隨機數(premaster secret),然後使用數字證書中的公鑰,加密這個隨機數,發給鮑勃。
第四步:鮑勃使用自己的私鑰,獲取愛麗絲發來的隨機數(即premaster secret);(第
三、四步就是非對稱加密的過程了)
第五步:愛麗絲和鮑勃通過約定的加密方法(通常是aes演算法),使用前面三個隨機數,生成對話金鑰,用來加密接下來的通訊內容;
俗話說一圖勝千言,我畫了乙個圖來說明這個過程:
ok,整個進行資料加密的過程結束。我們再來回憶下內容:
區塊鏈100講 SSL協議之資料加密過程詳解
本講詳細講述了ssl協議中的資料加密的過程,數字證書 對稱加密 非對稱加密和ssl握手過程等概念。https之所以安全就是因為加持了ssl這個外掛程式來對傳輸的資料進行加密,那麼具體的加密方法又是什麼呢?請聽我娓娓道來。先看下面兩個概念 你知道上面兩個概念是什麼意思麼?ok,不管你懂不懂,我先用我的...
區塊鏈100講 區塊鏈的靈魂 共識演算法
在解釋拜占庭將軍問題的時候提到 共識機制 本期 區塊鏈100講 我們來說說被稱為區塊鏈靈魂的 共識演算法 看上去是不是一頭霧水?那麼我這裡就給大家乙個比較能通俗易懂的解釋 所謂的共識機制,就好比大家在開一次 會議 最後達成乙個一致,但是達成一致的途徑有很多種,這也就是後續區塊鏈的主鏈有各種各樣的共識...
區塊鏈100講 帶你走進EOS的儲存系統
eos如何解決這個問題呢?生產者節點負責儲存檔案實際的資料,而客戶端節點本地只儲存檔案的位址,所有客戶端節點可以通過位址遠端訪問檔案內容。這樣可以為客戶端節點節約大量的儲存開銷。eos使用ipfs分布式檔案系統作為底層儲存。ipfs是一種內容可定址 點對點 通過http協議傳輸的分布式檔案系統。ip...