目錄
03-2. SSL/TLS 加密原理
⏱️ 閱讀時間: 15 分鐘 🎯 難度: ⭐⭐⭐ (中等)
🎯 本篇重點
深入理解 SSL/TLS 的加密原理、對稱加密與非對稱加密的差異、混合加密系統的運作方式,以及常見的加密演算法。
🤔 什麼是 SSL/TLS?
SSL (Secure Sockets Layer) = 安全通訊層協定(已棄用) TLS (Transport Layer Security) = 傳輸層安全協定(現代標準)
一句話解釋: SSL/TLS 就像是在網路通訊中加上一個「密碼鎖」和「簽名」,確保只有對的人能看到內容,且內容沒被改過。
📜 SSL/TLS 的歷史演進
SSL 時代(Netscape 開發):
├─ SSL 1.0(1994)- 從未發布(有嚴重漏洞)
├─ SSL 2.0(1995)- 已棄用(2011)
└─ SSL 3.0(1996)- 已棄用(2015,POODLE 漏洞)
TLS 時代(IETF 標準化):
├─ TLS 1.0(1999)- 已棄用(2021)
├─ TLS 1.1(2006)- 已棄用(2021)
├─ TLS 1.2(2008)- ✅ 目前廣泛使用
└─ TLS 1.3(2018)- ✅ 最新標準
現狀(2024):
- TLS 1.2:約 70% 網站使用
- TLS 1.3:約 30% 網站使用(快速增長中)
- SSL 2.0/3.0:已完全淘汰
名稱混淆:
雖然現在都用 TLS,但人們常說「SSL 憑證」
正確應該說「TLS 憑證」或「SSL/TLS 憑證」🔐 加密的基本概念
加密 = 把明文變成密文
加密(Encryption):
明文(Plaintext)→ 加密 → 密文(Ciphertext)
解密(Decryption):
密文(Ciphertext)→ 解密 → 明文(Plaintext)
範例:
明文:Hello World
↓ 加密
密文:sD9fj#$kL@mN
↓ 解密
明文:Hello World🔑 對稱加密 vs 非對稱加密
對稱加密(Symmetric Encryption)
特性:
- 加密和解密用同一把金鑰
- 速度快
- 適合大量資料
比喻:保險箱的鑰匙
你有一個保險箱 📦
├─ 上鎖:用鑰匙 🔑
└─ 開鎖:用同一把鑰匙 🔑
問題:如何安全地傳遞鑰匙?
範例:
金鑰:secret_key_123
加密:
明文:Hello
用 secret_key_123 加密
→ 密文:X7jKp9
解密:
密文:X7jKp9
用 secret_key_123 解密
→ 明文:Hello
常見演算法:
- AES(Advanced Encryption Standard)
- DES(已淘汰)
- 3DES(已淘汰)
- ChaCha20
優點:
✅ 速度快(適合大量資料)
✅ 運算開銷小
缺點:
❌ 金鑰分發困難(如何安全傳遞金鑰?)
❌ N 個人通訊需要 N*(N-1)/2 把金鑰非對稱加密(Asymmetric Encryption)
特性:
- 加密和解密用不同金鑰
- 公鑰(Public Key):公開,任何人都能取得
- 私鑰(Private Key):保密,只有擁有者知道
- 速度慢
- 適合小量資料
比喻:郵箱和鑰匙
你有一個郵箱 📮
├─ 郵箱入口(公鑰):任何人都能投信
└─ 郵箱鑰匙(私鑰):只有你能打開
特性:
- 用公鑰加密 → 只有私鑰能解密
- 用私鑰簽名 → 任何人用公鑰驗證
範例 1:加密通訊
Alice 想傳訊息給 Bob
1. Bob 產生金鑰對
- 公鑰:public_bob
- 私鑰:private_bob
2. Bob 公開他的公鑰 public_bob
3. Alice 用 public_bob 加密訊息
明文:Hello Bob
用 public_bob 加密
→ 密文:X7jKp9qR...
4. Bob 用私鑰解密
密文:X7jKp9qR...
用 private_bob 解密
→ 明文:Hello Bob
安全性:
- 即使有人攔截密文,沒有 private_bob 無法解密
- 即使公鑰被公開,也無法解密
範例 2:數位簽章
Alice 想證明訊息是她發的
1. Alice 產生金鑰對
- 公鑰:public_alice
- 私鑰:private_alice
2. Alice 用私鑰簽名
訊息:Hello
用 private_alice 簽名
→ 簽章:signature_abc
3. Alice 發送:訊息 + 簽章
4. 任何人用 public_alice 驗證簽章
用 public_alice 驗證 signature_abc
→ ✅ 確實是 Alice 發的
常見演算法:
- RSA(最常見)
- ECC(橢圓曲線加密,更快)
- DSA(數位簽章)
- ECDSA(橢圓曲線數位簽章)
優點:
✅ 金鑰分發容易(公鑰公開即可)
✅ 支援數位簽章
✅ N 個人只需 N 對金鑰
缺點:
❌ 速度慢(不適合大量資料)
❌ 運算開銷大對稱 vs 非對稱對比
| 特性 | 對稱加密 | 非對稱加密 |
|---|---|---|
| 金鑰數量 | 1 把 | 2 把(公鑰 + 私鑰) |
| 金鑰分發 | 困難 ❌ | 容易 ✅ |
| 速度 | 快 ✅ | 慢 ❌ |
| 適用資料量 | 大量 ✅ | 少量 ❌ |
| 數位簽章 | 不支援 ❌ | 支援 ✅ |
| 範例演算法 | AES, ChaCha20 | RSA, ECC |
| 用途 | 資料加密 | 金鑰交換、數位簽章 |
🔀 混合加密系統(TLS 的秘密)
為什麼需要混合?
問題:
- 對稱加密:快,但金鑰分發困難
- 非對稱加密:安全,但太慢
解決方案:混合!
1. 用非對稱加密交換金鑰(慢但安全)
2. 用對稱加密傳輸資料(快)
比喻:快遞公司
步驟 1:郵寄保險箱鑰匙(非對稱加密)
- 用對方的公鑰加密
- 安全但慢
步驟 2:用保險箱運送貨物(對稱加密)
- 雙方都有鑰匙了
- 快速運送大量貨物TLS 混合加密流程
【階段 1:握手(Handshake)- 使用非對稱加密】
1. 客戶端:你好,我想建立安全連線
- 支援的 TLS 版本
- 支援的加密演算法
2. 伺服器:好的,這是我的公鑰 + 憑證
- 公鑰(RSA 或 ECDSA)
- 數位憑證
3. 客戶端:驗證憑證...✅
- 產生「會話金鑰」(Session Key)
- 用伺服器的公鑰加密會話金鑰
- 發送給伺服器
4. 伺服器:收到會話金鑰
- 用私鑰解密,取得會話金鑰
【階段 2:資料傳輸 - 使用對稱加密】
5. 雙方都有相同的會話金鑰了!
- 用 AES 等對稱加密演算法
- 快速加密大量資料
客戶端 ⇄ 伺服器
↓
用會話金鑰加密/解密
↓
AES-256-GCM
優點:
✅ 結合兩者優點
✅ 安全(非對稱加密交換金鑰)
✅ 快速(對稱加密傳輸資料)🔢 常見加密演算法詳解
AES(對稱加密)
AES (Advanced Encryption Standard)
特性:
- 美國政府標準(2001)
- 區塊加密(Block Cipher)
- 金鑰長度:128、192、256 位元
AES-128:128 位元金鑰(16 bytes)
AES-256:256 位元金鑰(32 bytes)← 最常用
安全性:
- 暴力破解 AES-256:2^256 種可能
- 即使每秒嘗試 10^18 次
- 需要 10^59 年
→ 實際上無法破解
運作模式:
1. ECB(不建議,不安全)
2. CBC(較舊)
3. GCM(推薦,支援驗證)← TLS 1.3 預設
4. CTR
5. CCM
範例(Python):
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
import os
# 產生隨機金鑰(256 位元 = 32 bytes)
key = os.urandom(32)
# 產生隨機 IV(初始向量)
iv = os.urandom(16)
# 建立加密器
cipher = Cipher(
algorithms.AES(key),
modes.GCM(iv),
backend=default_backend()
)
# 加密
encryptor = cipher.encryptor()
plaintext = b"Hello World"
ciphertext = encryptor.update(plaintext) + encryptor.finalize()
# 解密
decryptor = cipher.decryptor()
plaintext_decrypted = decryptor.update(ciphertext) + decryptor.finalize()
print(plaintext_decrypted) # b"Hello World"
速度:
- 現代 CPU 有硬體加速(AES-NI)
- 加密/解密速度:數 GB/sRSA(非對稱加密)
RSA (Rivest–Shamir–Adleman)
特性:
- 最常見的非對稱加密
- 基於大數質因數分解難題
- 金鑰長度:1024、2048、4096 位元
RSA-2048:2048 位元金鑰 ← 目前標準
RSA-4096:4096 位元金鑰(更安全但更慢)
安全性:
- RSA-2048:目前安全
- RSA-1024:已不安全(可被破解)
- 量子電腦威脅:未來可能被破解
運作原理:
1. 選擇兩個大質數 p 和 q
2. 計算 n = p × q
3. 產生公鑰和私鑰
公鑰:(e, n)
私鑰:(d, n)
加密:C = M^e mod n
解密:M = C^d mod n
範例(Python):
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import hashes
# 產生 RSA 金鑰對
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048
)
public_key = private_key.public_key()
# 加密
message = b"Hello World"
ciphertext = public_key.encrypt(
message,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
# 解密
plaintext = private_key.decrypt(
ciphertext,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
print(plaintext) # b"Hello World"
速度:
- 比 AES 慢 1000 倍
- 不適合加密大量資料
- TLS 中只用於交換金鑰ECC(橢圓曲線加密)
ECC (Elliptic Curve Cryptography)
特性:
- 橢圓曲線密碼學
- 更短的金鑰達到相同安全性
- 速度比 RSA 快
金鑰長度對比:
ECC-256 ≈ RSA-3072(安全性相當)
ECC-384 ≈ RSA-7680
ECC-521 ≈ RSA-15360
優點:
✅ 金鑰更短(節省頻寬)
✅ 運算更快
✅ 適合行動裝置
常見曲線:
- P-256(secp256r1)← 最常用
- P-384(secp384r1)
- Curve25519(新興標準)
TLS 1.3 預設:
- ECDHE(橢圓曲線 Diffie-Hellman 金鑰交換)
- ECDSA(橢圓曲線數位簽章)
範例(Python):
from cryptography.hazmat.primitives.asymmetric import ec
# 產生 ECC 金鑰對
private_key = ec.generate_private_key(ec.SECP256R1())
public_key = private_key.public_key()
# 簽名
from cryptography.hazmat.primitives import hashes
message = b"Hello World"
signature = private_key.sign(
message,
ec.ECDSA(hashes.SHA256())
)
# 驗證
try:
public_key.verify(
signature,
message,
ec.ECDSA(hashes.SHA256())
)
print("簽章有效")
except:
print("簽章無效")ChaCha20-Poly1305(對稱加密)
ChaCha20-Poly1305
特性:
- 串流加密(Stream Cipher)
- Google 開發
- TLS 1.3 支援
優點:
✅ 不需要硬體加速(純軟體快)
✅ 適合行動裝置
✅ 支援驗證(Poly1305)
使用場景:
- 沒有 AES-NI 硬體加速時
- 行動裝置
- IoT 設備
速度對比:
無硬體加速:
- ChaCha20:✅ 快
- AES:❌ 慢
有硬體加速(AES-NI):
- AES:✅ 更快
- ChaCha20:✅ 快
TLS 1.3 預設套件:
1. TLS_AES_128_GCM_SHA256
2. TLS_AES_256_GCM_SHA384
3. TLS_CHACHA20_POLY1305_SHA256🔐 完整的 TLS 加密流程範例
場景:Alice 訪問 https://bank.com
【第 1 步:TCP 連線】
Alice → bank.com(三次握手)
【第 2 步:TLS 握手 - ClientHello】
Alice → bank.com:
- TLS 版本:TLS 1.3
- 支援的加密套件:
├─ TLS_AES_256_GCM_SHA384
├─ TLS_CHACHA20_POLY1305_SHA256
└─ TLS_AES_128_GCM_SHA256
- 隨機數:random_client
【第 3 步:TLS 握手 - ServerHello】
bank.com → Alice:
- 選擇的 TLS 版本:TLS 1.3
- 選擇的加密套件:TLS_AES_256_GCM_SHA384
- 隨機數:random_server
- 數位憑證 📜
- 伺服器公鑰(ECDSA P-256)
【第 4 步:憑證驗證】
Alice:
├─ 檢查憑證是否由可信任 CA 發行 ✅
├─ 檢查憑證是否過期 ✅
├─ 檢查網域名稱是否為 bank.com ✅
└─ 檢查憑證是否被撤銷 ✅
【第 5 步:金鑰交換(ECDHE)】
Alice:
1. 產生臨時 ECDHE 金鑰對
- 私鑰:ecdhe_private_alice
- 公鑰:ecdhe_public_alice
2. 發送 ecdhe_public_alice 給伺服器
bank.com:
1. 產生臨時 ECDHE 金鑰對
- 私鑰:ecdhe_private_server
- 公鑰:ecdhe_public_server
2. 用 ecdhe_private_server 和 ecdhe_public_alice 計算共享密鑰
Alice:
1. 用 ecdhe_private_alice 和 ecdhe_public_server 計算共享密鑰
結果:
雙方計算出相同的共享密鑰(但沒有在網路上傳輸)
【第 6 步:生成會話金鑰】
共享密鑰 + random_client + random_server
→ 產生會話金鑰(Session Key)
→ AES-256-GCM 金鑰
【第 7 步:加密通訊】
Alice → bank.com:
明文:{"username": "alice", "password": "123456"}
↓ AES-256-GCM 加密
密文:X7jKp9qRsD...
bank.com → Alice:
明文:{"status": "success", "token": "..."}
↓ AES-256-GCM 加密
密文:mN3vB8cT...
【安全特性】:
1. 前向保密(Perfect Forward Secrecy)
- 每次連線用不同的臨時金鑰
- 即使私鑰洩露,過去的通訊仍安全
2. 加密
- 所有資料用 AES-256-GCM 加密
- 中間人看不懂
3. 完整性
- GCM 模式提供驗證
- 無法竄改
4. 身份驗證
- 數位憑證證明伺服器身份🎓 面試常見問題
Q1:對稱加密和非對稱加密有什麼差異?
A:金鑰數量和用途不同
對稱加密:
- 金鑰:1 把(加密和解密用同一把)
- 速度:快 ✅
- 用途:加密大量資料
- 問題:金鑰分發困難
- 範例:AES, ChaCha20
比喻:保險箱(同一把鑰匙上鎖和開鎖)
非對稱加密:
- 金鑰:2 把(公鑰 + 私鑰)
- 速度:慢 ❌
- 用途:金鑰交換、數位簽章
- 優點:金鑰分發容易(公鑰公開)
- 範例:RSA, ECC
比喻:郵箱(任何人能投信,只有你能打開)
TLS 如何使用:
1. 非對稱加密:交換會話金鑰(握手階段)
2. 對稱加密:加密資料(傳輸階段)
→ 結合兩者優點!Q2:TLS 1.2 和 TLS 1.3 有什麼差異?
A:TLS 1.3 更快、更安全
主要差異:
1. 握手速度
TLS 1.2:2-RTT(兩次往返)
TLS 1.3:1-RTT(一次往返)
→ TLS 1.3 快一倍
TLS 1.2 握手:
ClientHello →
← ServerHello + Certificate
ClientKeyExchange →
← Finished
Finished →
(需要 2 個往返)
TLS 1.3 握手:
ClientHello + KeyShare →
← ServerHello + Certificate + Finished
Finished →
(只需 1 個往返)
2. 0-RTT(Zero Round Trip Time)
TLS 1.3 支援 0-RTT 恢復會話
→ 完全沒有額外延遲
3. 移除不安全的加密套件
TLS 1.2:支援數十種加密套件(有些不安全)
TLS 1.3:只支援 5 種安全的加密套件
- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
- TLS_AES_128_CCM_SHA256
- TLS_AES_128_CCM_8_SHA256
移除的不安全特性:
❌ RSA 金鑰交換(不支援前向保密)
❌ CBC 模式(有漏洞)
❌ RC4, MD5, SHA-1(不安全)
❌ 壓縮(CRIME 攻擊)
❌ 重新協商(漏洞)
4. 前向保密(強制)
TLS 1.2:可選(DHE/ECDHE)
TLS 1.3:強制(ECDHE)
5. 加密握手訊息
TLS 1.2:握手訊息大多明文
TLS 1.3:握手訊息加密(除了 ClientHello/ServerHello)
結論:
✅ TLS 1.3 更快(1-RTT vs 2-RTT)
✅ TLS 1.3 更安全(移除不安全特性)
✅ TLS 1.3 更簡單(更少選項)
✅ 建議使用 TLS 1.3(向下相容 TLS 1.2)Q3:什麼是前向保密(Perfect Forward Secrecy)?
A:即使私鑰洩露,過去的通訊仍然安全
傳統方式(RSA 金鑰交換):
1. 客戶端產生會話金鑰
2. 用伺服器的公鑰(RSA)加密會話金鑰
3. 發送給伺服器
4. 伺服器用私鑰解密,取得會話金鑰
問題:
如果駭客:
- 記錄所有加密流量
- 未來取得伺服器私鑰
→ 可以解密所有過去的通訊!
範例:
2020 年:駭客記錄你的銀行交易(加密的)
2025 年:駭客取得銀行私鑰
→ 駭客解密 2020 年的交易記錄
→ 看到你的帳號密碼!
前向保密(ECDHE):
1. 雙方各自產生「臨時」金鑰對
2. 交換公鑰
3. 各自計算出相同的共享密鑰
4. 用完就銷毀臨時私鑰
過程:
Alice:
- 臨時私鑰:ecdhe_private_alice
- 臨時公鑰:ecdhe_public_alice
Bob:
- 臨時私鑰:ecdhe_private_bob
- 臨時公鑰:ecdhe_public_bob
交換:
Alice → Bob:ecdhe_public_alice
Bob → Alice:ecdhe_public_bob
計算:
Alice:用 ecdhe_private_alice + ecdhe_public_bob → 共享密鑰
Bob:用 ecdhe_private_bob + ecdhe_public_alice → 共享密鑰
→ 相同的共享密鑰!
關鍵:
- 共享密鑰從未在網路上傳輸
- 臨時私鑰用完就銷毀
- 每次連線用不同的臨時金鑰
安全性:
即使駭客:
- 記錄所有流量
- 未來取得伺服器長期私鑰
→ 仍然無法解密過去的通訊
→ 因為臨時私鑰已經銷毀了
TLS 支援:
- TLS 1.2:可選(DHE/ECDHE)
- TLS 1.3:強制(ECDHE)
實務:
現代網站應該啟用前向保密
檢查方法:
- 查看 TLS 加密套件
- 包含 DHE 或 ECDHE 即支援前向保密Q4:HTTPS 可以防止中間人攻擊嗎?
A:可以,但有條件
中間人攻擊(MITM):
攻擊者位於客戶端和伺服器之間
攔截並可能修改通訊
場景:
你 ⇄ 駭客 ⇄ 銀行
↑ ↑
攔截 攔截
HTTPS 如何防止:
1. 加密
- 所有資料加密
- 駭客看到的是亂碼
✅ 無法讀取內容
2. 數位憑證
- 伺服器提供憑證
- 由可信任 CA 簽發
- 客戶端驗證憑證
假設駭客想 MITM:
你 ⇄ 駭客(假裝是銀行)⇄ 銀行
駭客提供假憑證:
你的瀏覽器:
├─ 檢查憑證...
├─ CA 不可信任 ❌
├─ 網域名稱不符 ❌
└─ 憑證無效 ❌
瀏覽器警告:⚠️
「您的連線不是私人連線」
「可能有人正試圖竊取您的資訊」
✅ 攻擊被發現
但有例外:
1. 用戶忽略警告
- 用戶點「繼續前往」
- HTTPS 無法保護
→ 教育用戶不要忽略警告
2. 安裝惡意根憑證
- 駭客誘騙用戶安裝「根憑證」
- 駭客可以簽發任何憑證
- 瀏覽器會信任
→ 企業環境常見(合法監控)
3. CA 被攻破
- 極罕見
- CA 簽發假憑證
- 瀏覽器會信任
→ 憑證透明度(Certificate Transparency)可發現
4. SSL Stripping
- 攻擊者降級到 HTTP
- 用戶訪問 http:// 被攔截
→ HSTS(HTTP Strict Transport Security)可防止
結論:
✅ HTTPS 可以防止 MITM(正常情況)
⚠️ 需要用戶配合(不忽略警告)
⚠️ 需要正確設定(HSTS、憑證釘選)Q5:為什麼需要 CA(憑證機構)?
A:驗證伺服器身份,建立信任鏈
問題:
沒有 CA 的世界:
你訪問 https://bank.com
bank.com:這是我的公鑰 + 我說我是 bank.com
你:我怎麼知道你真的是 bank.com?
駭客也可以:
駭客:這是我的公鑰 + 我說我是 bank.com
你:無法分辨真假 ❌
解決方案:第三方驗證(CA)
CA(憑證機構)的角色:
1. 驗證身份
bank.com 向 CA 申請憑證
CA 驗證:
├─ DNS 記錄(你真的擁有 bank.com?)
├─ 檔案驗證(在伺服器放特定檔案)
└─ 域名擁有權證明
2. 簽發憑證
CA 確認身份後
→ 用 CA 的私鑰簽署憑證
→ 發給 bank.com
3. 信任鏈
瀏覽器:
├─ 內建可信任的根 CA 清單
├─ bank.com 的憑證由 CA 簽發
├─ 驗證 CA 的簽章 ✅
└─ 信任 bank.com
流程:
【申請憑證】
bank.com → CA:我想要憑證
【驗證身份】
CA:證明你擁有 bank.com
bank.com:完成驗證
【簽發憑證】
CA:用 CA 私鑰簽署憑證 📜
CA → bank.com:這是你的憑證
【客戶端驗證】
你 → bank.com:請給我憑證
bank.com → 你:這是我的憑證
你的瀏覽器:
├─ 檢查憑證簽章
├─ 用 CA 公鑰驗證
├─ CA 是可信任的嗎?
│ └─ 檢查瀏覽器內建的根 CA 清單 ✅
└─ 信任這個憑證
信任鏈範例:
根 CA(DigiCert)
↓ 簽發
中繼 CA(DigiCert TLS RSA SHA256)
↓ 簽發
網站憑證(bank.com)
瀏覽器內建根 CA:
- DigiCert
- Let's Encrypt
- GlobalSign
- Comodo
- ...
優點:
✅ 建立信任鏈
✅ 驗證伺服器身份
✅ 防止偽裝
如果沒有 CA:
❌ 無法驗證身份
❌ 容易被釣魚
❌ HTTPS 形同虛設
自簽憑證(Self-Signed Certificate):
- 自己簽發的憑證(不透過 CA)
- 瀏覽器不信任(警告 ⚠️)
- 只適合開發測試
- 不適合正式環境✅ 重點回顧
SSL/TLS 歷史:
- SSL 2.0/3.0:已棄用
- TLS 1.0/1.1:已棄用
- TLS 1.2:目前廣泛使用
- TLS 1.3:最新標準(更快、更安全)
兩種加密方式:
- 對稱加密:快,適合大量資料(AES)
- 非對稱加密:慢,適合金鑰交換(RSA, ECC)
TLS 混合加密:
- 非對稱加密:交換會話金鑰(握手)
- 對稱加密:傳輸資料(通訊)
常見演算法:
- AES-256-GCM:對稱加密(最常用)
- RSA-2048:非對稱加密(傳統)
- ECDSA P-256:非對稱加密(現代)
- ChaCha20-Poly1305:對稱加密(行動裝置)
TLS 1.3 優勢:
- ✅ 更快(1-RTT vs 2-RTT)
- ✅ 更安全(強制前向保密)
- ✅ 更簡單(移除不安全選項)
前向保密(PFS):
- 每次連線用臨時金鑰
- 即使私鑰洩露,過去通訊仍安全
CA 的作用:
- 驗證伺服器身份
- 建立信任鏈
- 防止偽裝攻擊
面試重點:
- ✅ 對稱 vs 非對稱加密差異
- ✅ TLS 如何結合兩者優點
- ✅ TLS 1.3 的改進
- ✅ 前向保密的重要性
- ✅ CA 的作用
上一篇: 03-1. HTTPS 是什麼? 下一篇: 03-3. 數位憑證與 CA
最後更新:2025-01-06