網(wǎng)絡(luò)篇(一)SSL/TSL協(xié)議

SSL/TSL要解決的問題

在不使用SSL/TSL加密的HTTP通信就是不加密的通信鲫剿,所有的信息都是明文傳播屎鳍。帶來了以下幾個風險:

  1. 竊聽風險:第三方可以獲取通信內(nèi)容。
  2. 篡改風險:第三方可修改通信內(nèi)容。
  3. 冒充風險:第三方可以冒充他人進行通信。

而SSL/TSL就是為了解決這三大風險而設(shè)計的:

  1. 所有信息加密傳播谴古,第三方無法得知通信內(nèi)容。
  2. 添加信息校驗機制稠歉,一旦通信信息被篡改掰担,通信雙方就能發(fā)現(xiàn)。
  3. 添加身份證書怒炸,防止被第三方假冒带饱。

SSL/TSL的基本運行原理

SSL/TSL基本思路采用的是公鑰加密法,也就是阅羹,客戶端先向服務(wù)器索要公鑰勺疼,然后用公鑰加密信息,服務(wù)器收到密文灯蝴,然后用自己的私鑰解密信息恢口。
在實際使用中為了解決公鑰被篡改的問題引入了信任的數(shù)字證書

將公鑰放在數(shù)字證書中穷躁,只要證書是可信任的耕肩,公鑰就是可信的

使用非對稱加密的公鑰加密信息的計算量太大,為了減少計算耗時:

在每次回話中(session)问潭,客戶端和服務(wù)端都生成一個“對話秘鑰”猿诸,用它來加密信息。由于使用的是對稱加密狡忙,
所以運算速度非呈崴洌快,而服務(wù)器的公鑰只用于加密“對話秘鑰”本身灾茁。這樣就減少了加密運算消耗的時間窜觉。

從上面我們可以大致的總結(jié)一下SSL/TSL協(xié)議的基本過程如下:

  1. 客戶端向服務(wù)端索要并驗證公鑰。
  2. 雙方協(xié)商生成“對話秘鑰”北专。
  3. 雙方采用“對話秘鑰”進行加密通信禀挫。
    前面兩步又稱為“握手階段”。
握手階段分為一下步驟
1. 客戶端發(fā)出請求

客戶端向服務(wù)端發(fā)送加密通信請求拓颓,并提交一下信息:

  • 支持協(xié)議的版本语婴,比如TLS 1.0版本。
  • 客戶端生成的隨機數(shù),用于后面生成“對話秘鑰”砰左。
  • 支持的加密方法匿醒,如RSA加密。
  • 支持的壓縮方法缠导。
2. 服務(wù)器回應(yīng)請求

服務(wù)端收到客戶端請求后廉羔,向客戶端做出回應(yīng)。

  • 確認使用的加密通信版本酬核,如TLS 1.0版本蜜另。如果瀏覽器與服務(wù)器支持的版本不一致适室,服務(wù)器關(guān)閉加密通信嫡意。
  • 一個服務(wù)器生成的而隨機數(shù),用于隨后的“對話秘鑰“捣辆。
  • 確認使用的加密方法蔬螟,如RSA公鑰加密。
  • 服務(wù)器證書汽畴。
    除了以上回應(yīng)旧巾,如果服務(wù)器需要確認客戶端的身份,就會要求客戶端提供”客戶端證書“忍些。
3. 客戶端結(jié)束握手請求

客戶端收到服務(wù)器的回應(yīng)以后鲁猩,首先驗證服務(wù)器的證書。如果證書不是可信任機構(gòu)頒布罢坝、或者證書中的域名與實際域名不一致廓握、或者證書已經(jīng)過期,就會向訪問者顯示一個警告嘁酿,由其選擇是否還要繼續(xù)通信隙券。
如果證書沒問題,客戶端就會從證書中獲取服務(wù)器的公鑰闹司,然后向服務(wù)器發(fā)送以下信息:

  • 一個隨機數(shù)娱仔。該隨機數(shù)用服務(wù)器公鑰加密,防止被竊聽游桩。
  • 編碼改變通知牲迫,表示隨后的信息都將用雙方商定的加密方法和秘鑰發(fā)送。
  • 客戶端握手結(jié)束通知借卧,表示客戶端握手階段已經(jīng)結(jié)束盹憎。這一項同時也是前面發(fā)送的所有內(nèi)容的hash值,用來供服務(wù)器校驗谓娃。

上面第一項的隨機數(shù)脚乡,是整個握手階段出現(xiàn)的第三個隨機數(shù),又稱"pre-master key"。有了它以后奶稠,客戶端和服務(wù)器就同時有了三個隨機數(shù)俯艰,接著雙方就用事先商定的加密方法,各自生成本次會話所用的同一把"會話密鑰"锌订。

4. 服務(wù)端結(jié)束握手請求

服務(wù)端收到客戶端的第三個隨機數(shù)pre-master key后竹握,經(jīng)過計算生成本次會話所用的秘鑰。然后向客戶端發(fā)送一下信息:

  • 編碼改變通知辆飘,表示隨后的信息將用雙方商定的加密方法和秘鑰發(fā)送啦辐。
  • 服務(wù)器握手結(jié)束通知,表示服務(wù)器的握手階段已經(jīng)結(jié)束蜈项。這一項同時也是前面發(fā)送的所有內(nèi)容的hash值芹关,用來供客戶端校驗。

至此紧卒,整個握手階段全部結(jié)束侥衬。接下來,客戶端與服務(wù)器進入加密通信跑芳,就完全是使用普通的HTTP協(xié)議轴总,只不過用"會話密鑰"加密內(nèi)容。

本文章僅僅是個人學習記錄博个。
參考自SSL/TLS協(xié)議運行機制的概述

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末怀樟,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子盆佣,更是在濱河造成了極大的恐慌往堡,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罪塔,死亡現(xiàn)場離奇詭異投蝉,居然都是意外死亡,警方通過查閱死者的電腦和手機征堪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門瘩缆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人佃蚜,你說我怎么就攤上這事庸娱。” “怎么了谐算?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵熟尉,是天一觀的道長。 經(jīng)常有香客問我洲脂,道長斤儿,這世上最難降的妖魔是什么剧包? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮往果,結(jié)果婚禮上疆液,老公的妹妹穿的比我還像新娘。我一直安慰自己陕贮,他們只是感情好堕油,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肮之,像睡著了一般掉缺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上戈擒,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天眶明,我揣著相機與錄音,去河邊找鬼峦甩。 笑死赘来,一個胖子當著我的面吹牛现喳,可吹牛的內(nèi)容都是我干的凯傲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼嗦篱,長吁一口氣:“原來是場噩夢啊……” “哼冰单!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起灸促,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤诫欠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后浴栽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荒叼,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年典鸡,在試婚紗的時候發(fā)現(xiàn)自己被綠了被廓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡萝玷,死狀恐怖嫁乘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情球碉,我是刑警寧澤蜓斧,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站睁冬,受9級特大地震影響挎春,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一直奋、第九天 我趴在偏房一處隱蔽的房頂上張望狼荞。 院中可真熱鬧,春花似錦帮碰、人聲如沸相味。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丰涉。三九已至,卻和暖如春斯碌,著一層夾襖步出監(jiān)牢的瞬間一死,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工傻唾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留投慈,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓冠骄,卻偏偏與公主長得像伪煤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子凛辣,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355