---
# System prepended metadata

title: HTTPS 是如何建立安全連線的？（以鎖與鑰匙為比喻）
tags: [HTTPS]

---

# HTTPS 是如何建立安全連線的？（以鎖與鑰匙為比喻）

## 情境：瀏覽器要與銀行伺服器安全傳輸資料

---

### 第一步：瀏覽器發出請求，告知支援的加密方式

瀏覽器向伺服器發送「Client Hello」訊息，內容包含：

- 支援的加密演算法清單（例如：TLS_AES_128_GCM_SHA256）
- 一組隨機數（Client Random）
- 支援的 TLS 版本等資訊

---

### 第二步：伺服器回應，提供選定的加密方式、公鑰與數位憑證

伺服器回傳「Server Hello」訊息，內容包含：

- 選定的加密演算法
- 數位憑證（包含伺服器的公鑰）
- 一組伺服器產生的隨機數（Server Random）

---

### 第三步：瀏覽器驗證伺服器憑證的真實性與有效性

瀏覽器會對伺服器提供的數位憑證進行以下檢查：

#### 第三方驗證機制（由瀏覽器自動執行）

瀏覽器會根據內建的「信任憑證機構清單（Trusted CA List）」進行驗證：

1. **驗證簽章：**
   - 憑證是否由受信任的第三方憑證機構（CA）簽發？
   - 例如：Let's Encrypt、DigiCert、GlobalSign 等

2. **驗證有效性：**
   - 憑證是否在有效期間內（未過期或未吊銷）？

3. **驗證網域：**
   - 憑證中的網域名稱是否與當前連線的網站網域一致？

若上述檢查皆通過，則此連線可視為安全，瀏覽器將繼續進行加密協商。

---

### 第四步：瀏覽器產生對稱加密金鑰，並使用伺服器公鑰加密後傳送

瀏覽器產生一組「對稱加密金鑰」（通常稱為 Pre-Master Secret），並使用伺服器的公鑰將其加密後送出。這個步驟稱為金鑰交換（Key Exchange）。

伺服器接收後，使用其對應的私鑰進行解密，取得相同的金鑰。

---

### 第五步：瀏覽器與伺服器完成握手後，開始使用對稱加密進行資料傳輸

瀏覽器與伺服器會根據：

- Client Random
- Server Random
- Pre-Master Secret

共同計算出一組 Session Key（對稱加密密鑰），後續資料傳輸均使用此密鑰加密與解密。

---

## 資料傳輸階段的加密方式

| 階段             | 加密方式     | 使用金鑰         | 特性             |
|------------------|--------------|------------------|------------------|
| TLS 握手階段     | 非對稱加密   | 公鑰 / 私鑰       | 安全但效率較低   |
| 資料傳輸階段     | 對稱加密     | Session Key       | 加解密速度快，適合大量資料 |

---

### 資料傳輸過程中對稱加密的實際應用

建立 Session Key 後，瀏覽器與伺服器之間的所有 HTTP 資料（請求與回應）都會經過對稱加密處理，流程如下：

1. **瀏覽器發送資料：**
   - 將 HTTP 請求內容（如登入表單、API 呼叫等）使用 Session Key 加密
   - 傳送加密後的資料給伺服器

2. **伺服器接收資料：**
   - 使用相同的 Session Key 解密該資料，取得原始請求內容

3. **伺服器回傳資料：**
   - 將 HTTP 回應（如使用者資訊、查詢結果等）同樣使用 Session Key 加密
   - 傳送回瀏覽器

4. **瀏覽器接收回應：**
   - 使用 Session Key 解密回應資料並呈現給使用者

由於 Session Key 只有瀏覽器與伺服器雙方知道，即便中間有第三者攔截資料，也無法解密內容，確保機密性與傳輸完整性。

---

## 補充：如何在瀏覽器檢查 HTTPS 憑證資訊（以 Chrome 為例）

1. 開啟任意 HTTPS 網站（如 https://example.com）
2. 點選網址列左側的 🔒 鎖頭圖示
3. 點選「連線安全性」>「憑證有效」
4. 可檢查以下資訊：
   - 憑證發行者（CA）
   - 有效期間
   - 憑證中綁定的網域（Subject Alternative Names）

---

## 總結

- HTTPS 的安全性依賴「非對稱加密」進行金鑰交換、「對稱加密」進行資料傳輸
- 第三方憑證機構（CA）負責驗證伺服器身份
- 瀏覽器會自動完成憑證驗證與 Session Key 協商流程
- 資料在傳輸過程中全程加密，可防止竊聽與竄改


###### `HTTPS`