HTTPS協(xié)議詳解

HTTP

當你在瀏覽器輸入一個網(wǎng)址 (例如 http://nosee123.com)的時候症歇,瀏覽器發(fā)起一個 HTTP 請求猜扮,帶著請求信息 (參見HTTP協(xié)議詳解)勉吻,連接到服務器,把請求信息遞給服務器旅赢,服務器收到信息之后齿桃,解析相關的信息,然后進行處理煮盼,再返回瀏覽器請求的數(shù)據(jù)短纵。

簡單來說是這么一個流程:

小明跟瀏覽器爸爸說我想要去中關村某個店家拿一些東西 (發(fā)起請求)

瀏覽器爸爸就把小明要的東西記在一張清單上 (生成HTTP協(xié)議)

然后瀏覽器爸爸派出一個線程小弟,噌噌噌跑到中關村的店里僵控,把清單遞給店家香到,說小明要這些東西 (進行傳輸)

店家讓線程小弟稍等,然后去屋子里面拿小明的這些東西 (服務器收到請求)

店家把東西拿出來后报破,并且也打印了一份清單悠就,讓線程小弟帶著清單和東西一起拿回去 (服務器處理請求完畢)

然后線程小弟回到瀏覽器爸爸那邊,把服務器給的清單和物品交給瀏覽器爸爸充易,瀏覽器爸爸根據(jù)清單核對物品 (瀏覽器處理響應)

然后把物品打包交給了小明(瀏覽器渲染并呈現(xiàn)界面)

看圖說話:

這其中有個問題梗脾,瀏覽器爸爸和服務器都沒有驗證清單信息的有效性和對方的身份。萬一有人在中間把線程小哥攔下來蔽氨,暴揍一頓藐唠,然后把物品清單給換了怎么辦?或者有人把線程小哥在半路上暴揍一頓鹉究,拿了清單換了另外一個小哥怎么辦?

這是個很嚴肅的問題:假如服務器要把一些東西鎖在柜子里踪宠,需要小明給密碼才可以打開柜子自赔。然后小明把密碼寫在清單上讓瀏覽器爸爸交給服務器。這時候柳琢,如果這張清單被人攔截下來绍妨,不就得到了小明的密碼润脸?

簡單來說,傳輸?shù)男畔⒅邪脩裘艽a他去,被攔截了怎么辦毙驯?

HTTPS

正因為HTTP請求有這些安全性的問題,所以HTTPS誕生了灾测,致力于解決了這些安全性問題爆价,我們進行一下對比:

那么HTTPS是如何做到更安全的呢?

簡單來說媳搪,HTTPS 即是在 HTTP 下加入了一層 SSL 加密铭段,所以被稱為HTTPS。具體的加密過程則是 公匙加密法:

客戶端向服務器索要公匙秦爆,然后使用公匙加密信息

服務器收到加密后的信息序愚,用自己的私匙解密

公匙密碼和算法都是公開的,而私匙則是保密的等限。加密使用的公匙和解碼使用的密匙都是不相同的爸吮,因此這是一個非對稱加密算法。

SSL

HTTPS望门,也稱作HTTP over TLS形娇。TLS的前身是SSL,TLS 1.0通常被標示為SSL 3.1怒允,TLS 1.1為SSL 3.2埂软,TLS 1.2為SSL 3.3。

TLS協(xié)議包括TLS Record Protocol和TLS Handshake Protocol纫事。

下圖描述了在TCP/IP協(xié)議棧中TLS(各子協(xié)議)和HTTP的關系:

數(shù)字證書

提及 HTTPS 勘畔,就會聽到大家說需要證書才能部署,那么什么是證書呢丽惶?

因為互聯(lián)網(wǎng)不安全炫七,公匙也是信息的一部分,也是會有被篡改的風險的钾唬。所以引入了互聯(lián)網(wǎng)權(quán)威機構(gòu) - CA 機構(gòu)万哪,又稱為證書授權(quán) (Certificate Authority) 機構(gòu),瀏覽器會內(nèi)置這些"受信任的根證書頒發(fā)機構(gòu)" (即 CA)抡秆。

服務端向權(quán)威的身份鑒定 CA 機構(gòu)申請數(shù)字證書奕巍,CA 機構(gòu)驗證了網(wǎng)站之后,會把網(wǎng)站錄入到內(nèi)部列表儒士,采用 Hash 把服務端的一些相關信息生成摘要的止,然后 CA 機構(gòu)用自己的私匙,把服務端的公匙和相關信息一起加密着撩,然后給申請證書的服務端頒發(fā)數(shù)字證書诅福,用于其他客戶端 (比如瀏覽器) 認證這個網(wǎng)站的公匙匾委。

客戶端通過服務端下發(fā)的證書,找到對應的 CA氓润,然后向 CA 驗證這個證書是否有效赂乐,CA 驗證通過之后,下發(fā)服務端的公匙咖气。

因為 CA 是權(quán)威并且可信的挨措,所以客戶端 (瀏覽器) 信任 CA,而 CA 又信任經(jīng)過認證的服務端 采章,所以客戶端 (瀏覽器) 也信任這個服務端运嗜,這就是信任鏈 (Chain Of Trust)。

而 CA 頒發(fā)的數(shù)字證書悯舟,一般包含這些信息:

簡單來說:為了保證公匙是安全的担租,所以通過數(shù)字證書驗證公匙。

加密通信

一條完整的HTTPS請求應該是這樣的:

客戶端 (瀏覽器) 發(fā)起 HTTP 請求抵怎,請求連接服務端奋救,發(fā)送支持的加密通信協(xié)議 (和版本),并且生成一個隨機數(shù)反惕,后續(xù)用于生成"對話密鑰"尝艘。

服務端確認加密通信協(xié)議 (和版本),同時也生成一個隨機數(shù)姿染,后續(xù)用于生成"對話密匙"背亥,并且將 CA 頒發(fā)的數(shù)字證書,一起發(fā)送給客戶端悬赏。

客戶端收到數(shù)字證書后狡汉,檢測內(nèi)置的"受信任的根證書頒發(fā)機構(gòu)",查看解開數(shù)字證書的公匙是否在闽颇。

如果解開數(shù)字證書的公匙存在盾戴,則使用它解開數(shù)字證書,得到正確的服務器公匙兵多,同時再次生成一個隨機數(shù)尖啡,用于服務器公匙加密,并發(fā)送給服務器剩膘。

此時本地和服務器同時將三個隨機數(shù)衅斩,根據(jù)約定的加密方法進行加密,各自生成本次會話的所使用的同一把 "會話密匙" 怠褐。

到這里矛渴,認證階段已經(jīng)完畢,數(shù)據(jù)傳輸從非對稱加密換成了對稱加密(因為考慮到性能)惫搏,接下來所有的數(shù)據(jù)傳輸都是使用HTTP協(xié)議進行傳輸具温,只不過使用了 "會話密匙" 來加密內(nèi)容。

見下圖:


參考文獻:

linkFly的個人博客:什么是 HTTPS

MSDN博客:SSL Handshake and HTTPS Bindings on IIS

阮一峰的網(wǎng)絡日志:數(shù)字簽名是什么筐赔?铣猩、SSL/TLS協(xié)議運行機制的概述

其它網(wǎng)絡文章:What is a Digital Signature

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市茴丰,隨后出現(xiàn)的幾起案子达皿,更是在濱河造成了極大的恐慌,老刑警劉巖贿肩,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件峦椰,死亡現(xiàn)場離奇詭異,居然都是意外死亡汰规,警方通過查閱死者的電腦和手機汤功,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來溜哮,“玉大人滔金,你說我怎么就攤上這事∶ぃ” “怎么了餐茵?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長述吸。 經(jīng)常有香客問我忿族,道長,這世上最難降的妖魔是什么蝌矛? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任道批,我火速辦了婚禮,結(jié)果婚禮上朴读,老公的妹妹穿的比我還像新娘屹徘。我一直安慰自己,他們只是感情好衅金,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布噪伊。 她就那樣靜靜地躺著,像睡著了一般氮唯。 火紅的嫁衣襯著肌膚如雪鉴吹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天惩琉,我揣著相機與錄音豆励,去河邊找鬼。 笑死,一個胖子當著我的面吹牛良蒸,可吹牛的內(nèi)容都是我干的技扼。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼嫩痰,長吁一口氣:“原來是場噩夢啊……” “哼剿吻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起串纺,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤丽旅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后纺棺,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體榄笙,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年祷蝌,在試婚紗的時候發(fā)現(xiàn)自己被綠了茅撞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡杆逗,死狀恐怖乡翅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情罪郊,我是刑警寧澤蠕蚜,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站悔橄,受9級特大地震影響靶累,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜癣疟,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一挣柬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧睛挚,春花似錦邪蛔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至淤击,卻和暖如春匠抗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背污抬。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工汞贸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓矢腻,卻偏偏與公主長得像门驾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子踏堡,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

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