摘要:前言總括原文博客地址協(xié)議之數(shù)據(jù)加密過程詳解知乎專欄簡書專題前端進擊者知乎前端進擊者簡書博主博客地址的個人博客生活只要你聽過,不可能沒聽過協(xié)議吧,協(xié)議是一種安全協(xié)議。
前言
總括:
原文博客地址:SSL協(xié)議之數(shù)據(jù)加密過程詳解
知乎專欄&&簡書專題:前端進擊者(知乎)&&前端進擊者(簡書)
博主博客地址:Damonare的個人博客
生活
SSL只要你聽過HTTPS,不可能沒聽過SSL協(xié)議吧,SSL協(xié)議是一種安全協(xié)議。對于互聯(lián)網(wǎng)協(xié)議沒有了解的童鞋可以參考博主另一篇博客:internet協(xié)議入門
HTTP+SSL = HTTPS
HTTPS之所以安全就是因為加持了SSL這個外掛來對傳輸?shù)臄?shù)據(jù)進行加密,那么具體的加密方法又是什么呢?
請聽我娓娓道來。先看下面兩個概念:
對稱加密
非對稱加密
你知道上面兩個概念是什么意思么??
?OK,不管你懂不懂,我先用我的方式來給你解釋下:
親,你作過弊么??不要告訴我在你漫長的學生生涯里你沒作過弊(那你的學生生涯得多枯燥),作弊我們常用的方法是啥?(說把答案寫在胳膊大腿紙條上的同學請你出去,謝謝?)當然是加密了!比如我出于人道主義,想要幫助小明同學作弊,首先考試前我們會約定好一個暗號來傳遞選擇題的答案,摸頭發(fā)——A,摸耳朵——B,咳嗽——C,跺腳——D,于是一個加密方法就誕生了,這個加密方法只有我和小明知道,老師雖然看我抓耳撓腮但他頂多把我當成神經(jīng)病,并沒有直接證據(jù)說我作弊。好,這種我和小明知道,別人不知道的加密方法就是一種對稱加密算法,對稱加密算法也是我們?nèi)粘W畛R姷募用芩惴?。這種算法?只有一把,加密解密都用同一把鑰匙,一旦?泄露就全玩完了。
隨時時代的進步,人們發(fā)現(xiàn)實際上加密和解密不用同一把?也是可以的,只要加密和解密的兩把?存在某種關(guān)系就行了。
于是,層出不窮的非對稱加密算法就被研究了出來,那么它基于什么樣的道理呢?請嚴格記住下面這句話:
將a和b相乘得出乘積c很容易,但要是想要通過乘積c推導出a和b極難。即對一個大數(shù)進行因式分解極難
聽不懂因式分解的童鞋先去面壁5分鐘,這么多年數(shù)學白學了?甩給你維基百科鏈接,自行補課?:因式分解
好的,我們繼續(xù),非對稱加密算法就多了兩個概念——公鑰c和私鑰b。
用法如下:公鑰加密的密文只能用私鑰解密,私鑰加密的密文只能用公鑰解密。
公鑰我們可以隨便公開,因為別人知道了公鑰毫無用處,經(jīng)過公鑰加密后的密文只能通過私鑰來解密。而想要通過公鑰推導出a和b極難。但很明顯的是,使用非對稱加密效率不如對稱加密,因為非對稱加密需要有計算兩個密鑰的過程。
我們通過密碼學中的兩個典型的愛麗絲和鮑勃人物來解釋這個非對稱加密算法的過程:
客戶端叫做愛麗絲,服務器叫做鮑勃。
愛麗絲: 鮑勃我要給你發(fā)送一段消息,把你的公鑰給我吧;鮑勃: OK,這是我的公鑰:234nkjdfdhjbg324**;
愛麗絲:收到公鑰,我給你發(fā)送的消息經(jīng)過公鑰加密之后是這樣的:#$#$@#@!$%*(@;
鮑勃:好的,收到了,親,我來用我的私鑰解密看下你真正要給我發(fā)送的內(nèi)容;
上述過程就是一個非對稱加密的過程,這個過程安全么?好像是很安全,即使查理(通信中的第三位參加者)截取了密文和公鑰沒有私鑰還是沒法得到明文。?
可如果第三者查理發(fā)送給愛麗絲他自己的公鑰,然后愛麗絲用查理給的公鑰加密密文發(fā)送了出去,查理再通過自己的私鑰解密,這不就泄露信息了么?我們需要想個辦法讓愛麗絲判斷這個公鑰到底是不是鮑勃發(fā)來的。
于是就有了數(shù)字證書的概念:
數(shù)字證書就是互聯(lián)網(wǎng)通訊中標志通訊各方身份信息的一串數(shù)字,提供了一種在Internet上驗證通信實體身份的方式,數(shù)字證書不是數(shù)字身份證,而是身份認證機構(gòu)蓋在數(shù)字身份證上的一個章或印(或者說加在數(shù)字身份證上的一個簽名)。
?上面官方的解釋看起來就頭大。其實它就是一段信息。
數(shù)字證書內(nèi)容大體如下:
簽發(fā)證書的機構(gòu)
鮑勃的加密算法
鮑勃所使用的Hash算法
鮑勃的公鑰
證書到期時間
等等
數(shù)字證書是由權(quán)威機構(gòu)——CA機構(gòu)統(tǒng)一來進行發(fā)行,我們絕對信任這個機構(gòu),至于CA機構(gòu)的安全性…反正99.99%之下都是安全的。?
為了防止中間有人對證書內(nèi)容進行更改,有了一個數(shù)字簽名的概念,所謂的數(shù)字簽名就是把以上所有的內(nèi)容做一個Hash操作,得到一個固定長度然后再傳給鮑勃。然而如果別人截取了這個證書然后更改內(nèi)容,同時生成了新的Hash值那怎么辦?處于這個考慮,CA機構(gòu)在頒發(fā)這個證書的時候會用自己的私鑰將Hash值加密,從而防止了數(shù)字證書被篡改。
好,我們來梳理下整個過程:
第一步:首先,當愛麗絲開啟一個新的瀏覽器第一次去訪問鮑勃的時候,會先讓愛麗絲安裝一個數(shù)字證書,這個數(shù)字證書里包含的主要信息就是CA機構(gòu)的公鑰。
第二步:鮑勃發(fā)送來了CA機構(gòu)頒發(fā)給自己的數(shù)字證書,愛麗絲通過第一步中已經(jīng)得到的公鑰解密CA用私鑰加密的Hash-a(這個過程就是非對稱加密),然后再用傳遞過來的HASH算法生成一個Hash-b,如果Hash-a === Hash-b就說明認證通過,確實是鮑勃發(fā)過來的。
如上,是整個數(shù)字證書的使用過程就是這樣的。
多說一句,非對稱加密實際應用的例子除了SSL還有很多,比如SSH、電子簽名等;
如上提到的,非對稱加密計算量很大,效率不如對稱加密,我們打開網(wǎng)頁最注重的是啥?是速度!是速度!是速度!???
這點SSL就玩的很巧妙了?,通信雙方通過對稱加密來加密密文,然后使用非對稱加密的方式來傳遞對稱加密所使用的密鑰。這樣效率和安全就都能保證了。
SSL協(xié)議的握手過程先用語言來闡述下:
第一步:愛麗絲給出支持SSL協(xié)議版本號,一個客戶端隨機數(shù)(Client random,請注意這是第一個隨機數(shù)),客戶端支持的加密方法等信息;
第二步:鮑勃收到信息后,確認雙方使用的加密方法,并返回數(shù)字證書,一個服務器生成的隨機數(shù)(Server random,注意這是第二個隨機數(shù))等信息;
第三步:愛麗絲確認數(shù)字證書的有效性,然后生成一個新的隨機數(shù)(Premaster secret),然后使用數(shù)字證書中的公鑰,加密這個隨機數(shù),發(fā)給鮑勃。
第四步:鮑勃使用自己的私鑰,獲取愛麗絲發(fā)來的隨機數(shù)(即Premaster secret);(第三、四步就是非對稱加密的過程了)
第五步:愛麗絲和鮑勃通過約定的加密方法(通常是AES算法),使用前面三個隨機數(shù),生成對話密鑰,用來加密接下來的通信內(nèi)容;
俗話說一圖勝前言,我畫了一個圖來說明這個過程:
OK,整個進行數(shù)據(jù)加密的過程結(jié)束。我們再來回憶下內(nèi)容:
CA機構(gòu)頒發(fā)數(shù)字證書給鮑勃;
愛麗絲和鮑勃進行SSL握手,愛麗絲通過數(shù)字證書確定鮑勃的身份;
愛麗絲和鮑勃傳遞三個隨機數(shù),第三個隨機數(shù)通過非對稱加密算法進行傳遞;
愛麗絲和鮑勃通過一個對稱加密算法生成一個對話密鑰,加密接下來的通信內(nèi)容。
后記文中闡述不妥之處還望雅正,不吝感激。
轉(zhuǎn)載請注明出處。
以上。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/90579.html
摘要:明文協(xié)議的缺陷是導致數(shù)據(jù)泄露數(shù)據(jù)篡改流量劫持釣魚攻擊等安全問題的重要原因。也就是說加上加密處理和認證以及完整性保護后即是。數(shù)字簽名能確定消息的完整性證明數(shù)據(jù)是否未被篡改過。 前言 近幾年,互聯(lián)網(wǎng)發(fā)生著翻天覆地的變化,尤其是我們一直習以為常的HTTP協(xié)議,在逐漸的被HTTPS協(xié)議所取代,在瀏覽器、搜索引擎、CA機構(gòu)、大型互聯(lián)網(wǎng)企業(yè)的共同促進下,互聯(lián)網(wǎng)迎來了HTTPS加密時代,HTTPS將...
摘要:明文協(xié)議的缺陷是導致數(shù)據(jù)泄露數(shù)據(jù)篡改流量劫持釣魚攻擊等安全問題的重要原因。也就是說加上加密處理和認證以及完整性保護后即是。數(shù)字簽名能確定消息的完整性證明數(shù)據(jù)是否未被篡改過。 前言 近幾年,互聯(lián)網(wǎng)發(fā)生著翻天覆地的變化,尤其是我們一直習以為常的HTTP協(xié)議,在逐漸的被HTTPS協(xié)議所取代,在瀏覽器、搜索引擎、CA機構(gòu)、大型互聯(lián)網(wǎng)企業(yè)的共同促進下,互聯(lián)網(wǎng)迎來了HTTPS加密時代,HTTPS將...
閱讀 1814·2021-08-13 15:06
閱讀 3106·2021-08-05 10:02
閱讀 3372·2019-08-30 15:55
閱讀 2388·2019-08-30 13:46
閱讀 2490·2019-08-30 13:01
閱讀 1328·2019-08-29 17:17
閱讀 2827·2019-08-29 15:27
閱讀 1437·2019-08-29 11:12