HTTPS 是如何工作的?你知道嗎?
使用 HTTPS(超文本傳輸安全協(xié)議)的主要原因包括以下幾點(diǎn):
- 數(shù)據(jù)加密 - HTTPS 使用 TLS(傳輸層安全協(xié)議)對(duì)數(shù)據(jù)進(jìn)行加密,確保在客戶端和服務(wù)器之間傳輸?shù)臄?shù)據(jù)不會(huì)被中途竊聽或篡改。即使黑客截獲了數(shù)據(jù),也難以解密讀取。
- 數(shù)據(jù)完整性 - HTTPS 可以確保傳輸?shù)臄?shù)據(jù)不會(huì)在過(guò)程中被篡改。即使惡意攻擊者截獲了數(shù)據(jù)包,數(shù)據(jù)包的校驗(yàn)機(jī)制會(huì)發(fā)現(xiàn)篡改的痕跡,進(jìn)而拒絕數(shù)據(jù)的傳遞。
- 身份驗(yàn)證 - HTTPS 通過(guò)數(shù)字證書對(duì)服務(wù)器進(jìn)行驗(yàn)證,確保用戶連接到的是真正的目標(biāo)服務(wù)器,而不是被攻擊者偽裝的假服務(wù)器。這大大減少了中間人攻擊(Man In the Middle)的風(fēng)險(xiǎn)。
- 提高搜索排名 - 搜索引擎(如 Google)優(yōu)先顯示使用 HTTPS 的網(wǎng)站。Google 從 2014 年起就開始把 HTTPS 作為網(wǎng)站排名的一個(gè)因素。
圖片
HTTPS 如何工作?
- 第 1 步 - 客戶端(瀏覽器)和服務(wù)器建立 TCP 連接。
- 第 2 步 - 客戶端向服務(wù)器發(fā)送 “Client Hello” 信息。該信息包含一套必要的加密算法和它能支持的最新 TLS 版本。服務(wù)器回應(yīng)一個(gè) “Server Hello”,以便瀏覽器知道它是否支持這些算法和 TLS 版本。然后,服務(wù)器向客戶端發(fā)送 SSL 證書。證書包含公鑰、主機(jī)名、有效期等信息??蛻舳蓑?yàn)證證書。
- 第 3 步 - 驗(yàn)證 SSL 證書后,客戶端生成會(huì)話密鑰 (Session Key),并使用公開密鑰對(duì)其進(jìn)行加密。服務(wù)器收到加密的會(huì)話密鑰后,用私鑰解密。
- 第 4 步 - 既然客戶端和服務(wù)器都持有相同的會(huì)話密鑰(對(duì)稱加密),加密數(shù)據(jù)就會(huì)在安全的雙向通道中傳輸。
HTTPS 為什么要在數(shù)據(jù)傳輸過(guò)程中切換到對(duì)稱加密?主要有兩個(gè)原因:
- 安全性:非對(duì)稱加密只能單向傳輸。這意味著,如果服務(wù)器嘗試將加密數(shù)據(jù)發(fā)送回客戶端,任何人都可以使用公鑰解密數(shù)據(jù)。
- 服務(wù)器資源:非對(duì)稱加密會(huì)增加大量數(shù)學(xué)開銷。它不適合長(zhǎng)時(shí)間的數(shù)據(jù)傳輸。
HTTPS 確實(shí)引入了一定的性能開銷,但隨著現(xiàn)代硬件和協(xié)議優(yōu)化的進(jìn)步,HTTPS 的性能開銷相對(duì)于其安全性帶來(lái)的好處已經(jīng)微不足道,尤其是在 CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))、HTTP/2、TLS 1.3 等優(yōu)化技術(shù)的幫助下。對(duì)于大多數(shù)應(yīng)用場(chǎng)景,HTTPS 帶來(lái)的性能影響可以忽略不計(jì),而其提供的安全和信任則是至關(guān)重要的。