HTTPS原理

本文主要內(nèi)容

  • 概念
  • 加密算法
  • HTTPS原理
  • 總結(jié)

1检诗、概念

  • HTTP 協(xié)議(HyperText Transfer Protocol锥余,超文本傳輸協(xié)議):是客戶端瀏覽器或其他程序與Web服務(wù)器之間的應(yīng)用層通信協(xié)議 媒至。

  • HTTPS 協(xié)議(HyperText Transfer Protocol over Secure Socket Layer):可以理解為HTTP+SSL/TLS坎弯, 即 HTTP 下加入 SSL 層桂肌,HTTPS 的安全基礎(chǔ)是 SSL狰闪,因此加密的詳細(xì)內(nèi)容就需要 SSL宪肖,用于安全的 HTTP 數(shù)據(jù)傳輸表制。

如上圖所示健爬, HTTPS 相比 HTTP 多了一層 SSL/TLS,可以把HTTPS 理解成安全的 HTTP 協(xié)議么介。

那SSL和TLS又是什么呢?

SSL(Secure Socket Layer娜遵,安全套接字層):1994年為 Netscape 所研發(fā),SSL 協(xié)議位于 TCP/IP 協(xié)議與各種應(yīng)用層協(xié)議之間壤短,為數(shù)據(jù)通訊提供安全支持魔熏。

TLS(Transport Layer Security,傳輸層安全):其前身是 SSL鸽扁,它最初的幾個版本(SSL 1.0蒜绽、SSL 2.0、SSL 3.0)由網(wǎng)景公司開發(fā)桶现,1999年從 3.1 開始被 IETF 標(biāo)準(zhǔn)化并改名躲雅,發(fā)展至今已經(jīng)有 TLS 1.0、TLS 1.1骡和、TLS 1.2 三個版本相赁。SSL3.0和TLS1.0由于存在安全漏洞,已經(jīng)很少被使用到慰于。TLS 1.3 改動會比較大钮科,目前還在草案階段,目前使用最廣泛的是TLS 1.1婆赠、TLS 1.2绵脯。

2、加密算法

HTTPS 協(xié)議中用了不同的加密算法休里,在此我們學(xué)習(xí)下加密算法的基礎(chǔ)知識蛆挫,加密算法有對稱加密和非對稱加密的方式。

  • 對稱加密妙黍,有流式悴侵、分組兩種,加密和解密都是使用的同一個密鑰拭嫁。例如:DES可免、AES-GCM、ChaCha20-Poly1305等

  • 非對稱加密做粤,加密使用的密鑰和解密使用的密鑰是不相同的浇借,分別稱為:公鑰、私鑰驮宴,公鑰和算法都是公開的逮刨,私鑰是保密的呕缭。非對稱加密算法性能較低堵泽,但是安全性超強(qiáng)修己,由于其加密特性,非對稱加密算法能加密的數(shù)據(jù)長度也是有限的迎罗。例如:RSA睬愤、DSA、ECDSA纹安、 DH尤辱、ECDHE

由此可見,使用 git 即是使用非對稱加密厢岂,我們需要在網(wǎng)頁端填寫公鑰值光督。

除加密方法外,還有其它方法可以在一定程度上保證安全性

  • 哈希算法塔粒,將任意長度的信息轉(zhuǎn)換為較短的固定長度的值结借,通常其長度要比信息小得多,且算法不可逆卒茬。例如:MD5船老、SHA-1、SHA-2圃酵、SHA-256 等

此前闡述過 android apk 簽名及驗證過程柳畔,里邊就有涉及 SHA-256 算法等,通過此算法可以驗證信息有沒有被修改郭赐,如果修改了薪韩,哈希之后得到的值肯定會變化,所以哈希算法可以用于鑒定信息是否被篡改捌锭。

  • 數(shù)字簽名躬存,保證信息傳輸?shù)耐暾浴l(fā)送者的身份認(rèn)證舀锨、防止交易中的抵賴發(fā)生岭洲。 數(shù)字簽名技術(shù)是將摘要信息用發(fā)送者的私鑰加密,與原文一起傳送給接收者坎匿。 接收者只有用發(fā)送者的公鑰才能解密被加密的摘要信息盾剩,然后用對收到的原文產(chǎn)生一個摘要信息,與解密的摘要信息對比替蔬。

3告私、HTTPS原理

HTTP 協(xié)議是明文協(xié)議,使用它通信承桥,存在三個風(fēng)險:

  • 竊聽風(fēng)險(eavesdropping):第三方可以獲知通信內(nèi)容驻粟。
  • 篡改風(fēng)險(tampering):第三方可以修改通信內(nèi)容。
  • 冒充風(fēng)險(pretending):第三方可以冒充他人身份參與通信。

為了解決這三個問題蜀撑,HTTPS 協(xié)議可以說是煞費(fèi)苦心挤巡。

第1步,既然明文協(xié)議不安全酷麦,那就執(zhí)行加密通信

如上圖所示矿卑,此種方式屬于對稱加密,雙方擁有相同的密鑰沃饶,信息得到安全傳輸母廷,但此種方式的缺點是:

  • 不同的客戶端、服務(wù)器數(shù)量龐大糊肤,所以雙方都需要維護(hù)大量的密鑰琴昆,維護(hù)成本很高
  • 因每個客戶端、服務(wù)器的安全級別不同馆揉,密鑰極易泄露

第2步椎咧,既然對稱加密不行,我們換成非對稱加密試試:


如上圖所示把介,客戶端使用公鑰發(fā)送主動勤讽,服務(wù)端使用私鑰解密請求,并且將響應(yīng)內(nèi)容加密拗踢,發(fā)給客戶端脚牍。但上述過程也存在缺點:

  • 公鑰是公開的(也就是黑客也會有公鑰),所以第 ④ 步私鑰加密的信息巢墅,如果被黑客截獲诸狭,其可以使用公鑰進(jìn)行解密,獲取其中的內(nèi)容

第3步君纫,非對稱加密既然也有缺陷驯遇,那我們就將對稱加密,非對稱加密兩者結(jié)合起來蓄髓,取其精華叉庐、去其糟粕,發(fā)揮兩者的各自的優(yōu)勢


如上圖所示:

  • 第 ③ 步時会喝,客戶端說:(咱們后續(xù)回話采用對稱加密吧陡叠,這是對稱加密的算法和對稱密鑰)這段話用公鑰進(jìn)行加密,然后傳給服務(wù)器

  • 服務(wù)器收到信息后肢执,用私鑰解密枉阵,提取出對稱加密算法和對稱密鑰后,服務(wù)器說:(好的)對稱密鑰加密

  • 后續(xù)兩者之間信息的傳輸就可以使用對稱加密的方式了

這里存在兩個問題预茄,客戶端如何獲取公鑰呢兴溜?如何確定這是真實的服務(wù)器而不是黑客呢?如果客戶端到某個地址去下載公鑰,下載地址有可能是假的拙徽,而且每次對話之前還要去下載刨沦,很麻煩。如果是服務(wù)器主動將公鑰交給客戶端斋攀,客戶端怎么確定服務(wù)器是真實的而不是黑客冒充的呢?

為了解決公鑰問題梧田,SSL證書派上用場了淳蔼。


在第2步中,服務(wù)器會將一個SSL證書發(fā)送給客戶端裁眯,SSL證書審核嚴(yán)格而且還是要收費(fèi)的鹉梨,它不會被冒充〈┪龋客戶端接收證書后存皂,會對證書進(jìn)行驗證,證書驗證為真后逢艘,客戶端會從SSL證書中讀取出一個公鑰旦袋,用于接下來的非對稱加密。在非對稱加密中它改,客戶端將對稱加密的密鑰發(fā)給服務(wù)器疤孕,服務(wù)器接收后,后續(xù)的通信就可以使用對稱加密了央拖。

SSL證書的驗證過程:

(1)首先瀏覽器讀取證書中的證書所有者祭阀、有效期等信息進(jìn)行一一校驗

(2)瀏覽器開始查找操作系統(tǒng)中已內(nèi)置的受信任的證書發(fā)布機(jī)構(gòu)CA,與服務(wù)器發(fā)來的證書中的頒發(fā)者CA比對鲜戒,用于校驗證書是否為合法機(jī)構(gòu)頒發(fā)

(3)如果找不到专控,瀏覽器就會報錯,說明服務(wù)器發(fā)來的證書是不可信任的遏餐。

(4)如果找到伦腐,那么瀏覽器就會從操作系統(tǒng)中取出 頒發(fā)者CA 的公鑰,然后對服務(wù)器發(fā)來的證書里面的簽名進(jìn)行解密

(5)瀏覽器使用相同的hash算法計算出服務(wù)器發(fā)來的證書的hash值失都,將這個計算的hash值與證書中簽名做對比

(6)對比結(jié)果一致蔗牡,則證明服務(wù)器發(fā)來的證書合法,沒有被冒充

4嗅剖、總結(jié)

HTTPS協(xié)議比HTTP協(xié)議安全可靠辩越,整個過程中黑客也沒有辦法監(jiān)聽或者篡改、冒充了信粮。

(1) 所有信息都是加密傳播黔攒,黑客無法竊聽。

(2) 具有校驗機(jī)制,一旦被篡改督惰,通信雙方會立刻發(fā)現(xiàn)不傅。

(3) 配備身份證書,防止身份被冒充赏胚。

另外需要提一點的就是TCP協(xié)議和 HTTP 及 HTTPS 協(xié)議的關(guān)系访娶,TPC/IP協(xié)議是傳輸層協(xié)議,主要解決數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸觉阅,而HTTP是應(yīng)用層協(xié)議崖疤,主要解決如何包裝數(shù)據(jù)。

關(guān)于TCP/IP和HTTP協(xié)議的關(guān)系典勇,網(wǎng)絡(luò)有一段比較容易理解的介紹:“我們在傳輸數(shù)據(jù)時劫哼,可以只使用(傳輸層)TCP/IP協(xié)議,但是那樣的話割笙,如果沒有應(yīng)用層权烧,便無法識別數(shù)據(jù)內(nèi)容,如果想要使傳輸?shù)臄?shù)據(jù)有意義伤溉,則必須使用到應(yīng)用層協(xié)議般码,應(yīng)用層協(xié)議有很多,比如HTTP乱顾、FTP侈询、TELNET等。

HTTPS 協(xié)議在android應(yīng)用時糯耍,與 HTTP 協(xié)議有一些差別扔字,注意這些即可。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末温技,一起剝皮案震驚了整個濱河市革为,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌舵鳞,老刑警劉巖震檩,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蜓堕,居然都是意外死亡抛虏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門套才,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迂猴,“玉大人,你說我怎么就攤上這事背伴》谢伲” “怎么了峰髓?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長息尺。 經(jīng)常有香客問我携兵,道長,這世上最難降的妖魔是什么搂誉? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任徐紧,我火速辦了婚禮,結(jié)果婚禮上炭懊,老公的妹妹穿的比我還像新娘并级。我一直安慰自己,他們只是感情好凛虽,可當(dāng)我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布死遭。 她就那樣靜靜地躺著广恢,像睡著了一般凯旋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钉迷,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天至非,我揣著相機(jī)與錄音,去河邊找鬼糠聪。 笑死荒椭,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的舰蟆。 我是一名探鬼主播趣惠,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼身害!你這毒婦竟也來了味悄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤塌鸯,失蹤者是張志新(化名)和其女友劉穎侍瑟,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丙猬,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡涨颜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了茧球。 大學(xué)時的朋友給我發(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
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留邦投,地道東北人伤锚。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像志衣,于是被迫代替她去往敵國和親屯援。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,037評論 2 355

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

  • 原文鏈接:http://blog.jobbole.com/86660/ 1 前言 百度已經(jīng)于近日上線了全站 HTT...
    xlhzj閱讀 1,104評論 0 2
  • HTTPS 簡介 在日衬罡互聯(lián)網(wǎng)瀏覽網(wǎng)頁時狞洋,我們接觸到的大多都是 HTTP 協(xié)議,這種協(xié)議是未加密和二,即明文的徘铝。這使得...
    Kerwong閱讀 12,000評論 7 25
  • 原文地址我們知道,HTTP請求都是明文傳輸?shù)墓呗溃^的明文指的是沒有經(jīng)過加密的信息惕它,如果HTTP請求被黑客攔截,并且...
    Leon_hy閱讀 165,615評論 27 244
  • 原文地址 http://blog.csdn.net/u012409247/article/details/4985...
    0fbf551ff6fb閱讀 3,522評論 0 13
  • 一废登、作用 不使用SSL/TLS的HTTP通信淹魄,就是不加密的通信。所有信息明文傳播堡距,帶來了三大風(fēng)險甲锡。 (1)竊聽風(fēng)險...
    XLsn0w閱讀 10,536評論 2 44