SSL協(xié)議之?dāng)?shù)據(jù)加密過程詳解

前言

總括: 本文詳細(xì)講述了SSL協(xié)議中的數(shù)據(jù)加密的過程宫蛆,數(shù)字證書唾琼、對(duì)稱加密痘系、非對(duì)稱加密和SSL握手過程等概念偷霉。

生活

SSL

只要你聽過HTTPS艺智,不可能沒聽過SSL協(xié)議吧倘要,SSL協(xié)議是一種安全協(xié)議。對(duì)于互聯(lián)網(wǎng)協(xié)議沒有了解的童鞋可以參考博主另一篇博客:internet協(xié)議入門

HTTP+SSL = HTTPS

HTTPS之所以安全就是因?yàn)榧映至薙SL這個(gè)外掛來對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行加密十拣,那么具體的加密方法又是什么呢封拧?

請聽我娓娓道來。先看下面兩個(gè)概念:

  • 對(duì)稱加密
  • 非對(duì)稱加密

你知道上面兩個(gè)概念是什么意思么夭问???

??OK泽西,不管你懂不懂,我先用我的方式來給你解釋下:

親甲喝,你作過弊么尝苇???不要告訴我在你漫長的學(xué)生生涯里你沒作過弊(那你的學(xué)生生涯得多枯燥)铛只,作弊我們常用的方法是啥?(說把答案寫在胳膊大腿紙條上的同學(xué)請你出去糠溜,謝謝??)當(dāng)然是加密了淳玩!比如我出于人道主義,想要幫助小明同學(xué)作弊非竿,首先考試前我們會(huì)約定好一個(gè)暗號(hào)來傳遞選擇題的答案蜕着,摸頭發(fā)——A,摸耳朵——B红柱,咳嗽——C承匣,跺腳——D,于是一個(gè)加密方法就誕生了锤悄,這個(gè)加密方法只有我和小明知道韧骗,老師雖然看我抓耳撓腮但他頂多把我當(dāng)成神經(jīng)病,并沒有直接證據(jù)說我作弊零聚。好袍暴,這種我和小明知道,別人不知道的加密方法就是一種對(duì)稱加密算法,對(duì)稱加密算法也是我們?nèi)粘W畛R姷募用芩惴ブⅰ_@種算法??只有一把政模,加密解密都用同一把鑰匙,一旦??泄露就全玩完了蚂会。

隨時(shí)時(shí)代的進(jìn)步淋样,人們發(fā)現(xiàn)實(shí)際上加密和解密不用同一把??也是可以的,只要加密和解密的兩把??存在某種關(guān)系就行了胁住。

于是趁猴,層出不窮的非對(duì)稱加密算法就被研究了出來,那么它基于什么樣的道理呢措嵌?請嚴(yán)格記住下面這句話:

將a和b相乘得出乘積c很容易躲叼,但要是想要通過乘積c推導(dǎo)出a和b極難芦缰。即對(duì)一個(gè)大數(shù)進(jìn)行因式分解極難

聽不懂因式分解的童鞋先去面壁5分鐘企巢,這么多年數(shù)學(xué)白學(xué)了?甩給你維基百科鏈接让蕾,自行補(bǔ)課??:因式分解

好的浪规,我們繼續(xù),非對(duì)稱加密算法就多了兩個(gè)概念——公鑰c和私鑰b探孝。

用法如下:公鑰加密的密文只能用私鑰解密笋婿,私鑰加密的密文只能用公鑰解密。

公鑰我們可以隨便公開顿颅,因?yàn)閯e人知道了公鑰毫無用處缸濒,經(jīng)過公鑰加密后的密文只能通過私鑰來解密。而想要通過公鑰推導(dǎo)出a和b極難。但很明顯的是庇配,使用非對(duì)稱加密效率不如對(duì)稱加密斩跌,因?yàn)榉菍?duì)稱加密需要有計(jì)算兩個(gè)密鑰的過程。

我們通過密碼學(xué)中的兩個(gè)典型的愛麗絲和鮑勃人物來解釋這個(gè)非對(duì)稱加密算法的過程:

客戶端叫做愛麗絲捞慌,服務(wù)器叫做鮑勃耀鸦。

愛麗絲: 鮑勃我要給你發(fā)送一段消息,把你的公鑰給我吧啸澡;

鮑勃: OK袖订,這是我的公鑰:234nkjdfdhjbg324**;

愛麗絲:收到公鑰嗅虏,我給你發(fā)送的消息經(jīng)過公鑰加密之后是這樣的:#$#$@#@!$%*(@;

鮑勃:好的洛姑,收到了,親皮服,我來用我的私鑰解密看下你真正要給我發(fā)送的內(nèi)容吏口;

上述過程就是一個(gè)非對(duì)稱加密的過程,這個(gè)過程安全么冰更?好像是很安全产徊,即使查理(通信中的第三位參加者)截取了密文和公鑰沒有私鑰還是沒法得到明文。??

可如果第三者查理發(fā)送給愛麗絲他自己的公鑰蜀细,然后愛麗絲用查理給的公鑰加密密文發(fā)送了出去舟铜,查理再通過自己的私鑰解密,這不就泄露信息了么奠衔?我們需要想個(gè)辦法讓愛麗絲判斷這個(gè)公鑰到底是不是鮑勃發(fā)來的谆刨。

于是就有了數(shù)字證書的概念:

數(shù)字證書就是互聯(lián)網(wǎng)通訊中標(biāo)志通訊各方身份信息的一串?dāng)?shù)字,提供了一種在Internet上驗(yàn)證通信實(shí)體身份的方式归斤,數(shù)字證書不是數(shù)字身份證痊夭,而是身份認(rèn)證機(jī)構(gòu)蓋在數(shù)字身份證上的一個(gè)章或印(或者說加在數(shù)字身份證上的一個(gè)簽名)脏里。

??上面官方的解釋看起來就頭大她我。其實(shí)它就是一段信息。

數(shù)字證書內(nèi)容大體如下:

  • 簽發(fā)證書的機(jī)構(gòu)
  • 鮑勃的加密算法
  • 鮑勃所使用的Hash算法
  • 鮑勃的公鑰
  • 證書到期時(shí)間
  • 等等

數(shù)字證書是由權(quán)威機(jī)構(gòu)——CA機(jī)構(gòu)統(tǒng)一來進(jìn)行發(fā)行迫横,我們絕對(duì)信任這個(gè)機(jī)構(gòu)番舆,至于CA機(jī)構(gòu)的安全性…反正99.99%之下都是安全的。??

為了防止中間有人對(duì)證書內(nèi)容進(jìn)行更改矾踱,有了一個(gè)數(shù)字簽名的概念恨狈,所謂的數(shù)字簽名就是把以上所有的內(nèi)容做一個(gè)Hash操作,得到一個(gè)固定長度然后再傳給鮑勃呛讲。然而如果別人截取了這個(gè)證書然后更改內(nèi)容禾怠,同時(shí)生成了新的Hash值那怎么辦返奉?處于這個(gè)考慮,CA機(jī)構(gòu)在頒發(fā)這個(gè)證書的時(shí)候會(huì)用自己的私鑰將Hash值加密吗氏,從而防止了數(shù)字證書被篡改衡瓶。

好,我們來梳理下整個(gè)過程:

  • 第一步:首先牲证,當(dāng)愛麗絲開啟一個(gè)新的瀏覽器第一次去訪問鮑勃的時(shí)候哮针,會(huì)先讓愛麗絲安裝一個(gè)數(shù)字證書,這個(gè)數(shù)字證書里包含的主要信息就是CA機(jī)構(gòu)的公鑰坦袍。
  • 第二步:鮑勃發(fā)送來了CA機(jī)構(gòu)頒發(fā)給自己的數(shù)字證書十厢,愛麗絲通過第一步中已經(jīng)得到的公鑰解密CA用私鑰加密的Hash-a(這個(gè)過程就是非對(duì)稱加密),然后再用傳遞過來的HASH算法生成一個(gè)Hash-b捂齐,如果Hash-a === Hash-b就說明認(rèn)證通過蛮放,確實(shí)是鮑勃發(fā)過來的。

如上奠宜,是整個(gè)數(shù)字證書的使用過程就是這樣的包颁。

多說一句,非對(duì)稱加密實(shí)際應(yīng)用的例子除了SSL還有很多压真,比如SSH娩嚼、電子簽名等;

如上提到的滴肿,非對(duì)稱加密計(jì)算量很大岳悟,效率不如對(duì)稱加密,我們打開網(wǎng)頁最注重的是啥泼差?是速度贵少!是速度!是速度堆缘!??????

這點(diǎn)SSL就玩的很巧妙了??滔灶,通信雙方通過對(duì)稱加密來加密密文,然后使用非對(duì)稱加密的方式來傳遞對(duì)稱加密所使用的密鑰吼肥。這樣效率和安全就都能保證了录平。

SSL協(xié)議的握手過程

先用語言來闡述下:

  1. 第一步:愛麗絲給出支持SSL協(xié)議版本號(hào),一個(gè)客戶端隨機(jī)數(shù)(Client random潜沦,請注意這是第一個(gè)隨機(jī)數(shù))萄涯,客戶端支持的加密方法等信息绪氛;
  2. 第二步:鮑勃收到信息后唆鸡,確認(rèn)雙方使用的加密方法,并返回?cái)?shù)字證書枣察,一個(gè)服務(wù)器生成的隨機(jī)數(shù)(Server random争占,注意這是第二個(gè)隨機(jī)數(shù))等信息燃逻;
  3. 第三步:愛麗絲確認(rèn)數(shù)字證書的有效性,然后生成一個(gè)新的隨機(jī)數(shù)(Premaster secret)臂痕,然后使用數(shù)字證書中的公鑰伯襟,加密這個(gè)隨機(jī)數(shù),發(fā)給鮑勃握童。
  4. 第四步:鮑勃使用自己的私鑰姆怪,獲取愛麗絲發(fā)來的隨機(jī)數(shù)(即Premaster secret);(第三澡绩、四步就是非對(duì)稱加密的過程了)
  5. 第五步:愛麗絲和鮑勃通過約定的加密方法(通常是AES算法)稽揭,使用前面三個(gè)隨機(jī)數(shù),生成對(duì)話密鑰肥卡,用來加密接下來的通信內(nèi)容溪掀;

俗話說一圖勝前言,我畫了一個(gè)圖來說明這個(gè)過程:

SSL協(xié)議握手過程.png

OK步鉴,整個(gè)進(jìn)行數(shù)據(jù)加密的過程結(jié)束揪胃。我們再來回憶下內(nèi)容:

  • CA機(jī)構(gòu)頒發(fā)數(shù)字證書給鮑勃;
  • 愛麗絲和鮑勃進(jìn)行SSL握手氛琢,愛麗絲通過數(shù)字證書確定鮑勃的身份喊递;
  • 愛麗絲和鮑勃傳遞三個(gè)隨機(jī)數(shù),第三個(gè)隨機(jī)數(shù)通過非對(duì)稱加密算法進(jìn)行傳遞阳似;
  • 愛麗絲和鮑勃通過一個(gè)對(duì)稱加密算法生成一個(gè)對(duì)話密鑰册舞,加密接下來的通信內(nèi)容。

后記

文中闡述不妥之處還望雅正障般,不吝感激调鲸。

轉(zhuǎn)載請注明出處。

以上挽荡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末藐石,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子定拟,更是在濱河造成了極大的恐慌于微,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件青自,死亡現(xiàn)場離奇詭異株依,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)延窜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門恋腕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人逆瑞,你說我怎么就攤上這事荠藤』锏ィ” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵哈肖,是天一觀的道長吻育。 經(jīng)常有香客問我,道長淤井,這世上最難降的妖魔是什么布疼? 我笑而不...
    開封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮币狠,結(jié)果婚禮上缎除,老公的妹妹穿的比我還像新娘。我一直安慰自己总寻,他們只是感情好器罐,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著渐行,像睡著了一般轰坊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祟印,一...
    開封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天肴沫,我揣著相機(jī)與錄音,去河邊找鬼蕴忆。 笑死颤芬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的套鹅。 我是一名探鬼主播站蝠,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼卓鹿!你這毒婦竟也來了菱魔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬榮一對(duì)情侶失蹤吟孙,失蹤者是張志新(化名)和其女友劉穎澜倦,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杰妓,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡藻治,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了巷挥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桩卵。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吸占,到底是詐尸還是另有隱情晴叨,我是刑警寧澤凿宾,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布矾屯,位于F島的核電站,受9級(jí)特大地震影響初厚,放射性物質(zhì)發(fā)生泄漏件蚕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一产禾、第九天 我趴在偏房一處隱蔽的房頂上張望排作。 院中可真熱鬧,春花似錦亚情、人聲如沸妄痪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衫生。三九已至,卻和暖如春土浸,著一層夾襖步出監(jiān)牢的瞬間罪针,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來泰國打工黄伊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留泪酱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓还最,卻偏偏與公主長得像墓阀,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拓轻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 需求 “人們最初設(shè)計(jì)互聯(lián)網(wǎng)時(shí)岂津,很少考慮到安全。這樣的結(jié)果是悦即,核心通信協(xié)議本質(zhì)上是不安全的吮成,只能依靠所有參與方的誠信...
    thinkq閱讀 1,001評(píng)論 0 3
  • 原文: 高性能網(wǎng)絡(luò)瀏覽器-第四章傳輸層安全性(Transport Layer Security,TLS) 翻譯: ...
    夢很想家閱讀 4,586評(píng)論 2 6
  • 互聯(lián)網(wǎng)的通信安全,建立在SSL/TLS協(xié)議之上辜梳。 本文簡要介紹SSL/TLS協(xié)議的運(yùn)行機(jī)制粱甫。文章的重點(diǎn)是設(shè)計(jì)思想和...
    拉肚閱讀 2,619評(píng)論 0 6
  • 作者:阮一峰 日期:2014年9月20日 本周,CloudFlare宣布作瞄,開始提供Keyless服務(wù)茶宵,即你把網(wǎng)站放...
    拉肚閱讀 1,344評(píng)論 0 2
  • 五月底的氣溫已經(jīng)不低,但我坐在自習(xí)室里并不覺得熱宗挥。窗外微風(fēng)吹過乌庶,龐大的老樹枝葉飄搖种蝶。屋里除了翻書的聲音,什么雜音都...
    以一圣真閱讀 263評(píng)論 0 0