HTTP協(xié)議(二):HTTPS

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的區(qū)別

  • HTTPS協(xié)議需要到CA申請證書哭尝,一般免費證書較少,因而需要一定費用针史。
  • HTTP是超文本傳輸協(xié)議,信息是明文傳輸碟狞,HTTPS則是具有安全性的SSL加密傳輸協(xié)議啄枕。
  • HTTPHTTPS使用的是完全不同的連接方式,用的端口也不一樣族沃,前者是80频祝,后者是443
  • HTTP的連接很簡單脆淹,是無狀態(tài)的常空;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議盖溺,比HTTP協(xié)議安全漓糙。

HTTP的不足

  • 竊聽風(fēng)險:黑客可以獲知通信內(nèi)容。
  • 篡改風(fēng)險:黑客可以修改通信內(nèi)容烘嘱。
  • 冒充風(fēng)險:黑客可以冒充他人身份參與通信昆禽。

SSL

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

TLS

TLSTransport Layer Security):其前身是SSL遗契,它最初的幾個版本(SSL 1.0辐棒、SSL 2.0SSL 3.0)由網(wǎng)景公司開發(fā)牍蜂,1999年從 3.1開始被IETF 標(biāo)準(zhǔn)化并改名漾根,發(fā)展至今已經(jīng)有 TLS 1.0TLS 1.1鲫竞、TLS 1.2 三個版本辐怕。SSL3.0TLS1.0由于存在安全漏洞,已經(jīng)很少被使用到从绘。TLS 1.3改動會比較大寄疏,目前還在草案階段是牢,目前使用最廣泛的是TLS 1.1TLS 1.2陕截。

加密算法

對稱加密

對稱加密算法非常簡單驳棱,只要加密方和解密方都擁有同一密鑰(可為128192农曲,256 bit大小的密鑰社搅,密鑰越長,加密解密時間越長乳规,解密難度也越高)形葬,即可完成加密解密過程,且假設(shè)無法強制對加密過的明文進行解密暮的。

非對稱加密

加密使用的密鑰和解密使用的密鑰是不相同的笙以,分別稱為:公鑰、私鑰青扔,公鑰和算法都是公開的源织,私鑰是保密的翩伪。非對稱加密算法性能較低微猖,但是安全性超強,由于其加密特性缘屹,非對稱加密算法能加密的數(shù)據(jù)長度也是有限的凛剥。例如:RSADSA轻姿、ECDSA犁珠、 DHECDHE互亮。

哈希算法

將任意長度的信息轉(zhuǎn)換為較短的固定長度的值犁享,通常其長度要比信息小得多,且算法不可逆豹休。例如:MD5炊昆、SHA-1SHA-2威根、SHA-256 等凤巨。

數(shù)字簽名

簽名就是在信息的后面再加上一段內(nèi)容(信息經(jīng)過hash后的值),可以證明信息沒有被修改過洛搀。hash值一般都會加密后(也就是簽名)再和信息一起發(fā)送敢茁,以保證這個hash值不被修改。

HTTP 向 HTTPS 演化的過程

第一步:對傳輸?shù)男畔⒓用?/h4>
對稱加密

此種方式屬于對稱加密留美,雙方擁有相同的密鑰彰檬,信息得到安全傳輸伸刃,但此種方式的缺點是:

  • 不同的客戶端、服務(wù)器數(shù)量龐大逢倍,所以雙方都需要維護大量的密鑰塘幅,維護成本很高。
  • 因每個客戶端授艰、服務(wù)器的安全級別不同们妥,密鑰極易泄露。

第二步:非對稱加密

非對稱性加密

客戶端用公鑰對請求內(nèi)容加密郎笆,服務(wù)器使用私鑰對內(nèi)容解密谭梗,反之亦然,但上述過程也存在缺點:

  • 公鑰是公開的(也就是黑客也會有公鑰)宛蚓,所以第 ④ 步私鑰加密的信息激捏,如果被黑客截獲,其可以使用公鑰進行解密凄吏,獲取其中的內(nèi)容远舅。

第三步:對稱加密,非對稱加密兩者結(jié)合

對稱加密痕钢,非對稱加密兩者結(jié)合
  • 第 ③ 步時图柏,客戶端說:(咱們后續(xù)回話采用對稱加密吧,這是對稱加密的算法和對稱密鑰)這段話用公鑰進行加密任连,然后傳給服務(wù)器蚤吹。
  • 服務(wù)器收到信息后,用私鑰解密随抠,提取出對稱加密算法和對稱密鑰后裁着,服務(wù)器說:(好的)對稱密鑰加密。
  • 后續(xù)兩者之間信息的傳輸就可以使用對稱加密的方式了拱她。
遇到的問題
  • 客戶端如何獲得公鑰二驰?
  • 如何確認(rèn)服務(wù)器是真實的而不是黑客?

第四步:獲取公鑰與確認(rèn)服務(wù)器身份

設(shè)想
  • 提供一個下載公鑰的地址秉沼,回話前讓客戶端去下載桶雀。(缺點:下載地址有可能是假的;客戶端每次在回話前都先去下載公鑰也很麻煩)氧猬。
  • 回話開始時背犯,服務(wù)器把公鑰發(fā)給客戶端(缺點:黑客冒充服務(wù)器,發(fā)送給客戶端假的公鑰)盅抚。
SSL 證書
SSL
  • 在第 ② 步時服務(wù)器發(fā)送了一個SSL證書給客戶端漠魏,SSL證書中包含的具體內(nèi)容有:
    • 證書的發(fā)布機構(gòu)CA
    • 證書的有效期
    • 公鑰
    • 證書所有者
    • 簽名
瀏覽器認(rèn)證

客戶端在接受到服務(wù)端發(fā)來的SSL證書時,會對證書的真?zhèn)芜M行校驗妄均,以瀏覽器為例說明如下

  • 首先瀏覽器讀取證書中的證書所有者柱锹、有效期等信息進行一一校驗哪自。
  • 瀏覽器開始查找操作系統(tǒng)中已內(nèi)置的受信任的證書發(fā)布機構(gòu)CA,與服務(wù)器發(fā)來的證書中的頒發(fā)者CA比對禁熏,用于校驗證書是否為合法機構(gòu)頒發(fā)壤巷。
  • 如果找不到,瀏覽器就會報錯瞧毙,說明服務(wù)器發(fā)來的證書是不可信任的胧华。
  • 如果找到,那么瀏覽器就會從操作系統(tǒng)中取出 頒發(fā)者CA的公鑰宙彪,然后對服務(wù)器發(fā)來的證書里面的簽名進行解密矩动。
  • 瀏覽器使用相同的hash算法計算出服務(wù)器發(fā)來的證書的hash值,將這個計算的hash值與證書中簽名做對比释漆。
  • 對比結(jié)果一致悲没,則證明服務(wù)器發(fā)來的證書合法,沒有被冒充男图。
  • 此時瀏覽器就可以讀取證書中的公鑰示姿,用于后續(xù)加密了。

HTTPS 缺點:

  • SSL證書費用很高逊笆,以及其在服務(wù)器上的部署栈戳、更新維護非常繁瑣。
  • HTTPS 降低用戶訪問速度(多次握手)览露。
  • 網(wǎng)站改用HTTPS以后荧琼,由HTTP跳轉(zhuǎn)到HTTPS的方式增加了用戶訪問耗時(多數(shù)網(wǎng)站采用302跳轉(zhuǎn))。
  • HTTPS涉及到的安全算法會消耗 CPU 資源差牛,需要增加大量機器(HTTPS訪問過程需要加解密)。

HTTPS 的工作流程

客戶端在使用HTTPS方式與Web服務(wù)器通信時有以下幾個步驟:

HTTPS 的工作流程

  • 客戶使用HTTPSURL訪問Web服務(wù)器堰乔,要求與Web服務(wù)器建立SSL連接偏化。
  • Web服務(wù)器收到客戶端請求后,會將網(wǎng)站的證書信息(證書中包含公鑰)傳送一份給客戶端镐侯。
  • 客戶端的瀏覽器與Web服務(wù)器開始協(xié)商SSL連接的安全等級侦讨,也就是信息加密的等級。
  • 客戶端的瀏覽器根據(jù)雙方同意的安全等級苟翻,建立會話密鑰韵卤,然后利用網(wǎng)站的公鑰將會話密鑰加密,并傳送給網(wǎng)站崇猫。
  • Web服務(wù)器利用自己的私鑰解密出會話密鑰沈条。
  • Web服務(wù)器利用會話密鑰加密與客戶端之間的通信。

參考文章

【HTTP】HTTPS 原理詳解
看圖學(xué)HTTPS
HTTPS 的故事
白話https
手把手HTTPS

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末诅炉,一起剝皮案震驚了整個濱河市蜡歹,隨后出現(xiàn)的幾起案子屋厘,更是在濱河造成了極大的恐慌,老刑警劉巖月而,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汗洒,死亡現(xiàn)場離奇詭異,居然都是意外死亡父款,警方通過查閱死者的電腦和手機溢谤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來憨攒,“玉大人溯香,你說我怎么就攤上這事∨ǘ瘢” “怎么了玫坛?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長包晰。 經(jīng)常有香客問我湿镀,道長,這世上最難降的妖魔是什么伐憾? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任勉痴,我火速辦了婚禮,結(jié)果婚禮上树肃,老公的妹妹穿的比我還像新娘蒸矛。我一直安慰自己,他們只是感情好胸嘴,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布雏掠。 她就那樣靜靜地躺著,像睡著了一般劣像。 火紅的嫁衣襯著肌膚如雪乡话。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天耳奕,我揣著相機與錄音绑青,去河邊找鬼。 笑死屋群,一個胖子當(dāng)著我的面吹牛闸婴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播芍躏,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼邪乍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起溺欧,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤喊熟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后姐刁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芥牌,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年聂使,在試婚紗的時候發(fā)現(xiàn)自己被綠了壁拉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡柏靶,死狀恐怖弃理,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情屎蜓,我是刑警寧澤痘昌,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站炬转,受9級特大地震影響辆苔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜扼劈,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一驻啤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧荐吵,春花似錦骑冗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至榨婆,卻和暖如春磁携,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背良风。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留闷供,地道東北人烟央。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像歪脏,于是被迫代替她去往敵國和親疑俭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

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