https建立連接過程

一、背景

現(xiàn)在大多數(shù)的網(wǎng)站都升級為https協(xié)議了,包括百度、知乎等,當然還包括對安全性要求高的支付業(yè)務和銀行業(yè)務都是用https。https相對于http的劣勢是,https建立連接需要多次握手,而且還要進行RSA加密解密,這是個耗時的過程,那么為什么對安全性要求不高的網(wǎng)站也升級為https。那是因為http是用明文傳輸,在傳輸過程中,我們的信息可能會被篡改,或者會被第三方截取插入一些別的信息,比如說廣告植入,這嚴重影響了用戶體驗。

既然要升級為https協(xié)議,那就很有必要知道https的原理是什么,https是怎么保證信息只有通信雙方能解析而不被第三方截獲導致信息被竊取、篡改。

二、https驗證原理

2.1 原理圖

下面是一張https建立連接的原理圖,下面會對每一步進行說明。

https建立連接

2.2 https建立連接過程

2.2.1 客戶端訪問https連接

這一步,就是相當于我們在瀏覽器上輸入url回車的過程。這個時候瀏覽器或者客戶端(接下來統(tǒng)一為客戶端)會把我們客戶端支持的加密算法Cipher Suite(密鑰算法套件)帶給服務端。

2.2.2 - 2.2.3 服務端發(fā)送證書(公鑰)給客戶端

服務端接收Cipher后,和自己支持的加密算法進行比對,如果不符合,則斷開連接。否則,服務端會把符合的算法和證書發(fā)給客戶端,包括證書時間、證書日期、證書頒發(fā)的機構(gòu)。

2.2.4- 2.2.5 客戶端驗證服務端的證書

1、客戶端驗證證書,包括頒發(fā)證書的機構(gòu)是否合法與是否過期,證書中包含的網(wǎng)站地址是否與正在訪問的地址一致等

2、驗證通過后(或者用戶接受了不信任的證書),客戶端會生成一個隨機字符串,然后用服務端的公鑰進行加密。這里就保證了只有服務端才能看到這串隨機字符串(因為服務端擁有公鑰對應的私鑰,RSA解密,可以知道客戶端的隨機字符串)。

3、生成握手信息 用約定好的HASH算法,對握手信息進行取HASH,然后用隨機字符串加密握手信息和握手信息的簽名HASH值,把結(jié)果發(fā)給服務端。這里之所以要帶上握手信息的HASH是因為,防止信息被篡改。如果信息被篡改,那么服務端接收到信息進行HASH時,就會發(fā)現(xiàn)HASH值和客戶端傳回來的不一樣。這里就保證了信息不會被篡改。

2.2.6 - 2.2.7 服務端接收加密信息,解密得到客戶端提供的隨機字符串

服務端接收到加密信息后,首先用私鑰解密得到隨機字符串。然后用隨機字符串解密握手信息,獲得握手信息和握手信息的HASH值,服務端對握手信息進行HASH,比對客戶端傳回來的HASH。如果相同,則說明信息沒有被篡改。

服務端驗證完客戶端的信息以后,同樣使用隨機字符串加密握手信息和握手信息的HASH值發(fā)給客戶端。

2.2.8 客戶端驗證服務端返回的握手信息,完成握手

客戶端接收到服務端發(fā)回來的握手信息后,用一開始生成的隨機字符串對密文進行解密,得到握手信息和握手信息的HASH值,像一步服務端驗證一樣對握手信息進行校驗,校驗通過后,握手完畢。從這里開始,客戶端和服務端的通信就使用那串隨機字符串進行AES對稱加密通信。

2.3 驗證總結(jié)

使用RSA非對稱算法,服務端向客戶端發(fā)送公鑰,公鑰包含了域名、頒發(fā)機構(gòu)、過期日期。保證了公鑰的合法性和服務端的身份正確性(而不會被黑客冒充)
客戶端向第三方驗證公鑰的合法性,驗證通過后向服務端約定對稱加密的隨機字符號。保證了隨機字符串只有通信雙方知道。
接下來的通信就使用這個隨機字符號進行加密通信。因為隨機字符串只有雙方知道,所以信息不會被截獲。

三、客戶端驗證證書的合法性

為了驗證證書的合法性,首先客戶端要知道一些合法的證書機構(gòu),這就是我們所說的根證書。而根證書會保存在用戶的瀏覽器或者其它客戶端,像jdk的根證書列表。
當然證書不可能只有幾個機構(gòu)進行頒發(fā)的,所以證書的頒發(fā)是一級一級的。客戶端在驗證證書也是一級一級往下驗證。下面是阿里的證書:


阿里證書

最頂級的VeriSign Class 3 Public Primary Certification Authori... 就是根證書了, 這個證書一般會保存在客戶端,在客戶端安裝時就有一組根證書了,如果服務端根證書在客戶端的信任列表中,那么就會向根證書驗證二級證書的合法性,然后再向二級證書機構(gòu)驗證三級證書的合法性,以此類推。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,460評論 6 538
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,067評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,467評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,468評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,184評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,582評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,616評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,794評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,343評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,096評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,291評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,863評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,513評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,941評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,190評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,026評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,253評論 2 375

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