iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0

今天我們要來接續前天的內容講TLS,這是網路安全中非常重要的的一部份,幾乎所有我們生活中使用到的安全連線(HTTPS、VPN、Email、API傳輸)都會需要它。因此我們若是現在不學它的話,之後在一些滲透測試或是Web攻擊都會卡住。不過我們在正式的開始學之前還是要補一些東西,例如一些基礎的加密學以及數位憑證的基礎觀念。

加密學基礎

在 TLS 中,主要會用到以下四種加密技術,分別是對稱式加密、非對稱式加密、雜湊函數、跟HMAC

1.對稱式加密(Symmetric Encryption)

  • 原理:加密和解密使用同一把鑰匙 (Key)
  • 演算法代表:AES、ChaCha20
  • 優點:速度快,適合大量資料傳輸
  • 缺點:金鑰分配困難

2.非對稱式加密(Asymmetric Encryption)

  • 原理:金鑰成對存在:公鑰加密、私鑰解密
  • 演算法代表:RSA、ECC
  • 優點:安全性高,可以解決金鑰分配問題
  • 缺點:運算速度慢,不適合大量資料傳輸

3.雜湊函數(Hash Function)

  • 原理:將任意長度輸入轉換為固定長度輸出
  • 特點:
    不可逆:無法從雜湊值反推出原文
    抗碰撞性:兩個不同輸入幾乎不可能產生相同輸出
  • 常見演算法:SHA-256、SHA-3
  • 在TLS的用途:產生訊息摘要,驗證完整性

4.HMAC(Hash-based Message Authentication Code)

  • 原理:用「雜湊函數 + 金鑰」產生一個驗證碼
  • 功能:確保資料沒有被竄改,並且驗證來源合法

數位憑證基礎觀念

1.數位憑證(Digital Certificate)

數位憑證就像「網站的身分證」
它包含了

  • 網站公鑰
  • 網域名稱
  • 憑證頒發機構的數位簽章
  • 有效期限

2.憑證頒發機構(Certificate Authority, CA)

  • 負責簽發與管理數位憑證的權威機構。
  • 瀏覽器和作業系統會內建可信任的 CA 清單。
  • 如果憑證由這些 CA 簽發,使用者才會信任該網站。

3.公鑰基礎設施(PKI)

整個憑證管理制度,包含:

  • CA:憑證頒發機構
  • RA:註冊機構
  • CRL:憑證撤銷清單
  • OCSP:線上憑證狀態查詢

4.為什麼TLS需要憑證?

  • 因為只有憑證能保證「你連的真的是官方伺服器」,避免中間人假冒

什麼是TLS?

TLS的全名為Transport Layer Security,是一種用來加密網路傳輸的協議,它負責確保加密、完整性以及身分驗證,這三者分別負責什麼呢?加密負責第三方無法隨便偷看資料;完整性則負責資料不會被中途竄改;身分驗證則確認連的是正確的網站非中間人假冒。

TLS 版本差異

因目前TLS 1.0/1.1存在已知漏洞已停用,故我們以1.2跟1.3進行比較

TLS1.2

  • 握手需要2~3 次RTT
  • 支援多種Cipher Suite(安全與不安全都有)
  • 容易受降級攻擊與弱加密演算法影響

TSL1.3

  • 握手縮短成1次RTT,甚至支援0-RTT Resume
  • 強制使用安全演算法(AES-GCM、ChaCha20-Poly1305)
  • 移除RSA key exchange、CBC、RC4
  • 強制前向保密 (Forward Secrecy)

前向保密範例:
TLS1.2+RSA:過去的流量可以被解密。
TLS1.3+ECDHE:過去流量依然安全,因為金鑰是臨時的。

TLS基本運作流程(TLS1.2)

握手階段

1.ClientHello

  • 客戶端告訴伺服器支援的TLS版本、加密演算法、隨機數

2.ServerHello

  • 伺服器回覆選擇的TLS版本、加密演算法、伺服器隨機數

3.伺服器憑證(Certificate)

  • 伺服器傳送X.509憑證(由 CA 簽發),讓客戶端驗證伺服器身份

4.金鑰交換(Key Exchange)

  • 例如 RSA:伺服器用公鑰讓客戶端加密「預主密鑰」

5.產生會話金鑰(Session Key)

  • 雙方用隨機數 + 預主密鑰,算出對稱金鑰(之後用它加密流量)

6.完成(Finished)

  • 雙方互送「Finished」訊息,確保握手沒被竄改
  • 握手結束,進入「安全通訊」階段

資料傳輸階段

所有應用層資料(HTTP、SMTP…)都會被對稱加密後傳輸

每個封包還會帶有 MAC或 AEAD驗證碼,防止中間人篡改

從攻防角度看TLS的重要性

沒有TLS會怎樣?
1.公用Wi-Fi攻擊者可直接竊聽帳號密碼
2.攻擊者可竄改流量植入惡意程式碼

TLS 錯誤設定的風險
1.支援過時版本 (TLS1.0/1.1) → 已知漏洞
2.使用弱加密(RC4、3DES、CBC without MAC)
3.憑證過期、使用自簽憑證
4.伺服器/程式不檢查憑證 → 容易被 MITM 假冒

常見攻擊與防禦

1.中間人攻擊(MITM)
若使用者忽略憑證警告,攻擊者可用假憑證攔截流量
防禦:正確驗證憑證、HSTS、憑證釘選(Pinning)

2.降級攻擊(Downgrade Attack)
攻擊者迫使雙方使用舊版本(如SSL3.0)
防禦:TLS_FALLBACK_SCSV、強制停用舊協議

3.Padding Oracle、BEAST、POODLE(針對舊版CBC模式)
防禦:使用 TLS 1.2/1.3 與 AEAD 模式(AES-GCM、ChaCha20-Poly1305)

今日小結

今天我們學了基礎加密法、網路憑證觀念以及基礎的TLS,明天我們將會進行TLS的實作


上一篇
Day-18 認識SQL Injection
下一篇
Day20-認識DNS
系列文
Izumi從零開始的30日WEB馬拉松22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言