iT邦幫忙

2025 iThome 鐵人賽

DAY 12
0
Modern Web

30天一起搞懂Web觀念系列 第 12

[DAY12] HTTPS 為什麼安全?

  • 分享至 

  • xImage
  •  

昨天我們談到HTTP,今天我們來看比它多了一個s的協定HTTPS是什麼?它是怎麼做到「安全」的?

什麼是 HTTPS?

HTTPS(HyperText Transfer Protocol Secure)就是HTTP + TLS/SSL的安全版本

它在 HTTP 的基礎上,透過加密層(TLS,Transport Layer Security)讓資料在瀏覽器和伺服器之間加密,使傳輸時不會被竊聽或竄改


怎麼加密的?

知道HTTPS如何運作前我們先來了解一下密鑰的概念

加密方式主要分為兩種:

  • 對稱加密
    • 特性:加密和解密用同一把密鑰
    • 加密方式
      • 雙方必須事先有同一密鑰,才能互相加密/解密
    • 優點:速度快,適合大量資料傳輸
    • 缺點:密鑰必須安全分發,不然被攔截就全盤皆輸
  • 非對稱加密 (Asymmetric Encryption)
    • 特性:有一對鑰匙 → 公鑰(公開)、私鑰(保密)
    • 加密方式
      • 公鑰加密 → 只有對應的私鑰能解開
      • 私鑰加密(簽名) → 只有對應的公鑰能驗證
    • 優點:可以安全地在不安全的網路中交換密鑰,還能驗證身份
    • 缺點:運算速度慢,不適合大流量資料加密

圖片來源:https://www.geeksforgeeks.org/computer-networks/what-is-asymmetric-encryption/


HTTPS 如何運作?

HTTPS基於上方兩種加密方式結合,讓網頁能安全,也可以快速的交換資訊

HTTPS的混合加密(Hybrid Encryption)

  • 握手階段用非對稱加密

    → 安全地交換密鑰,即使在不安全網路中也不怕被攔截

  • 資料傳輸階段用對稱加密

    → 速度快,適合大量傳輸,同時保護內容不被竄改

HTTPS大致流程是這樣👇

  1. 伺服器出示憑證(Certificate)

    • 瀏覽器連到網站時,伺服器會回傳一個 SSL/TLS 憑證
    • 憑證包含:
      • 網站的公鑰(Public Key)
      • 網域名稱
      • 負責發憑證的機構(CA)
      • 到期時間
    • 瀏覽器會檢查:
      • 憑證是不是可信任的 CA 發的?
      • 網域是不是跟憑證上的一致?
      • 憑證有沒有過期?

    如果檢查失敗,你會看到常見的 「您的連線不是私人連線」 警告頁

  2. TLS 握手(建立安全通道)

    握手的目的是交換金鑰確認加密方式,讓後續資料都能安全傳輸。

    流程大概就是像這樣:

    1. Client Hello:瀏覽器說「Hello! 我支援這些加密演算法」
    2. Server Hello:伺服器回「Hello! 我們用這個演算法,這是我的憑證」
    3. 金鑰交換
      • 瀏覽器用伺服器的公鑰加密一個「隨機金鑰」(Session Key),送給伺服器
      • 只有伺服器的 私鑰 能解開它
    4. 建立加密連線:雙方用這個 Session Key 進行對稱加密傳輸資料(速度快)
  3. 安全傳輸

    • 從此之後的所有資料(HTTP 請求 & 回應)都會被加密
    • 中途攔截到的內容只會是一堆亂碼

下面是依我的理解畫的整個流程圖(僅供參考)
https://ithelp.ithome.com.tw/upload/images/20250815/20177952FEcWEAV5jW.png


參考資料

https://www.geeksforgeeks.org/computer-networks/what-is-asymmetric-encryption/

https://www.cloudflare.com/zh-tw/learning/ssl/what-is-https/

https://zh.wikipedia.org/zh-tw/超文本传输安全协议

https://youtu.be/j9QmMEWmcfo?si=GviHB9-xzFhpEfe-


上一篇
[DAY11] HTTP 是什麼?
下一篇
[DAY13] DNS是什麼?
系列文
30天一起搞懂Web觀念30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言