Https加密原理

加密算法的類(lèi)型基本上分為了兩種:

  • 對(duì)稱(chēng)加密,加密用的密鑰和解密用的密鑰是同一個(gè)勾扭,比較有代表性的就是 AES 加密算法蜓萄;
  • 非對(duì)稱(chēng)加密好啰,加密用的密鑰稱(chēng)為公鑰,解密用的密鑰稱(chēng)為私鑰旬盯,經(jīng)常使用到的 RSA 加密算法就是非對(duì)稱(chēng)加密的;

此外,還有Hash加密算法

HASH算法:MD5, SHA1, SHA256

相比較對(duì)稱(chēng)加密而言蒲稳,非對(duì)稱(chēng)加密安全性更高,但是加解密耗費(fèi)的時(shí)間更長(zhǎng)伍派,速度慢江耀。

想了解更多加密算法請(qǐng)點(diǎn)擊這里

HTTPS = HTTP + SSL,HTTPS 的加密就是在 SSL 中完成的拙已。

這就要從 CA 證書(shū)講起了决记。CA 證書(shū)其實(shí)就是數(shù)字證書(shū),是由 CA 機(jī)構(gòu)頒發(fā)的倍踪。至于 CA 機(jī)構(gòu)的權(quán)威性系宫,那么是毋庸置疑的,所有人都是信任它的建车。CA 證書(shū)內(nèi)一般會(huì)包含以下內(nèi)容:

  • 證書(shū)的頒發(fā)機(jī)構(gòu)扩借、版本
  • 證書(shū)的使用者
  • 證書(shū)的公鑰
  • 證書(shū)的有效時(shí)間
  • 證書(shū)的數(shù)字簽名 Hash 值和簽名 Hash 算法
  • ...

客戶(hù)端如何校驗(yàn) CA 證書(shū)?

CA 證書(shū)中的 Hash 值缤至,其實(shí)是用證書(shū)的私鑰進(jìn)行加密后的值(證書(shū)的私鑰不在 CA 證書(shū)中)潮罪。然后客戶(hù)端得到證書(shū)后,利用證書(shū)中的公鑰去解密該 Hash 值领斥,得到 Hash-a 嫉到;然后再利用證書(shū)內(nèi)的簽名 Hash 算法去生成一個(gè) Hash-b 。最后比較 Hash-a 和 Hash-b 這兩個(gè)的值月洛。如果相等何恶,那么證明了該證書(shū)是對(duì)的,服務(wù)端是可以被信任的嚼黔;如果不相等细层,那么就說(shuō)明該證書(shū)是錯(cuò)誤的,可能被篡改了唬涧,瀏覽器會(huì)給出相關(guān)提示疫赎,無(wú)法建立起 HTTPS 連接。除此之外碎节,還會(huì)校驗(yàn) CA 證書(shū)的有效時(shí)間和域名匹配等捧搞。

HTTPS 中的 SSL 握手建立過(guò)程

假設(shè)現(xiàn)在有客戶(hù)端 A 和服務(wù)器 B :

  • 1、首先,客戶(hù)端 A 訪問(wèn)服務(wù)器 B 实牡,比如我們用瀏覽器打開(kāi)一個(gè)網(wǎng)頁(yè) www.baidu.com 陌僵,這時(shí),瀏覽器就是客戶(hù)端 A 创坞,百度的服務(wù)器就是服務(wù)器 B 了碗短。這時(shí)候客戶(hù)端 A 會(huì)生成一個(gè)隨機(jī)數(shù)1,把隨機(jī)數(shù)1 题涨、自己支持的 SSL 版本號(hào)以及加密算法等這些信息告訴服務(wù)器 B 偎谁。
  • 2、服務(wù)器 B 知道這些信息后纲堵,然后確認(rèn)一下雙方的加密算法巡雨,然后服務(wù)端也生成一個(gè)隨機(jī)數(shù) B ,并將隨機(jī)數(shù) B 和 CA 頒發(fā)給自己的證書(shū)一同返回給客戶(hù)端 A 席函。
  • 3铐望、客戶(hù)端 A 得到 CA 證書(shū)后,會(huì)去校驗(yàn)該 CA 證書(shū)的有效性茂附,校驗(yàn)方法在上面已經(jīng)說(shuō)過(guò)了正蛙。校驗(yàn)通過(guò)后,客戶(hù)端生成一個(gè)隨機(jī)數(shù)3 营曼,然后用證書(shū)中的公鑰加密隨機(jī)數(shù)3 并傳輸給服務(wù)端 B 乒验。
  • 4、服務(wù)端 B 得到加密后的隨機(jī)數(shù)3蒂阱,然后利用私鑰進(jìn)行解密锻全,得到真正的隨機(jī)數(shù)3。
  • 5录煤、最后鳄厌,客戶(hù)端 A 和服務(wù)端 B 都有隨機(jī)數(shù)1、隨機(jī)數(shù)2妈踊、隨機(jī)數(shù)3部翘,然后雙方利用這三個(gè)隨機(jī)數(shù)生成一個(gè)對(duì)話(huà)密鑰。之后傳輸內(nèi)容就是利用對(duì)話(huà)密鑰來(lái)進(jìn)行加解密了响委。這時(shí)就是利用了對(duì)稱(chēng)加密,一般用的都是 AES 算法窖梁。
  • 6赘风、客戶(hù)端 A 通知服務(wù)端 B ,指明后面的通訊用對(duì)話(huà)密鑰來(lái)完成纵刘,同時(shí)通知服務(wù)器 B 客戶(hù)端 A 的握手過(guò)程結(jié)束邀窃。
  • 7、服務(wù)端 B 通知客戶(hù)端 A,指明后面的通訊用對(duì)話(huà)密鑰來(lái)完成瞬捕,同時(shí)通知客戶(hù)端 A 服務(wù)器 B 的握手過(guò)程結(jié)束鞍历。
  • 8、SSL 的握手部分結(jié)束肪虎,SSL 安全通道的數(shù)據(jù)通訊開(kāi)始劣砍,客戶(hù)端 A 和服務(wù)器 B 開(kāi)始使用相同的對(duì)話(huà)密鑰進(jìn)行數(shù)據(jù)通訊。

簡(jiǎn)化如下:

  • 1扇救、客戶(hù)端和服務(wù)端建立 SSL 握手刑枝,客戶(hù)端通過(guò) CA 證書(shū)來(lái)確認(rèn)服務(wù)端的身份;
  • 2迅腔、互相傳遞三個(gè)隨機(jī)數(shù)装畅,之后通過(guò)這隨機(jī)數(shù)來(lái)生成一個(gè)密鑰;
  • 3沧烈、互相確認(rèn)密鑰掠兄,然后握手結(jié)束;
  • 4锌雀、數(shù)據(jù)通訊開(kāi)始蚂夕,都使用同一個(gè)對(duì)話(huà)密鑰來(lái)加解密;

可以發(fā)現(xiàn)汤锨,在 HTTPS 加密原理的過(guò)程中把對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密都利用了起來(lái)双抽。即利用了非對(duì)稱(chēng)加密安全性高的特點(diǎn),又利用了對(duì)稱(chēng)加密速度快闲礼,效率高的好處牍汹。

需要更深的理解請(qǐng)點(diǎn)擊這里

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市柬泽,隨后出現(xiàn)的幾起案子慎菲,更是在濱河造成了極大的恐慌,老刑警劉巖锨并,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件露该,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡第煮,警方通過(guò)查閱死者的電腦和手機(jī)解幼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)包警,“玉大人撵摆,你說(shuō)我怎么就攤上這事『蓿” “怎么了特铝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我鲫剿,道長(zhǎng)鳄逾,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任灵莲,我火速辦了婚禮雕凹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘笆呆。我一直安慰自己请琳,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布赠幕。 她就那樣靜靜地躺著俄精,像睡著了一般。 火紅的嫁衣襯著肌膚如雪榕堰。 梳的紋絲不亂的頭發(fā)上竖慧,一...
    開(kāi)封第一講書(shū)人閱讀 51,590評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音逆屡,去河邊找鬼圾旨。 笑死,一個(gè)胖子當(dāng)著我的面吹牛魏蔗,可吹牛的內(nèi)容都是我干的砍的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼莺治,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼廓鞠!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起谣旁,我...
    開(kāi)封第一講書(shū)人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤床佳,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后榄审,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體砌们,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年搁进,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了浪感。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡饼问,死狀恐怖篮撑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情匆瓜,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站驮吱,受9級(jí)特大地震影響茧妒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜左冬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一桐筏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拇砰,春花似錦梅忌、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至瑰枫,卻和暖如春踱葛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背光坝。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工尸诽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盯另。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓性含,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親鸳惯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子商蕴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

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

  • 博文出處:HTTPS加密原理,歡迎大家關(guān)注我的博客悲敷,謝謝究恤! Header HTTP、HTTPS在我們?nèi)粘i_(kāi)發(fā)中是經(jīng)...
    俞其榮閱讀 3,997評(píng)論 11 224
  • http(超文本傳輸協(xié)議) 一種屬于應(yīng)用層的協(xié)議 缺點(diǎn): 通信使用明文(不加密)后德,內(nèi)容可能會(huì)被竊聽(tīng) 不驗(yàn)證通信方的...
    rockyMJ閱讀 748評(píng)論 0 0
  • 加密流程 1.客戶(hù)端發(fā)起請(qǐng)求部宿,將自己支持的加密算法套件(Cipher Suite)發(fā)給服務(wù)端。 2.服務(wù)端收到請(qǐng)求...
    sunshaohua閱讀 117評(píng)論 0 1
  • 為什么需要加密瓢湃? HTTP 有以下安全性問(wèn)題: 使用明文進(jìn)行通信理张,內(nèi)容可能會(huì)被竊聽(tīng); 不驗(yàn)證通信方的身份绵患,通信方的...
    fish_yijinc閱讀 192評(píng)論 0 0
  • 對(duì)稱(chēng)加密 特點(diǎn):加密雾叭、解密采用同一密鑰。優(yōu)點(diǎn):加密速度快缺點(diǎn):因用同一密鑰加解密落蝙,在密文傳輸過(guò)程中需要把密鑰也進(jìn)行...
    劍老師閱讀 917評(píng)論 0 2