IT 基礎知識 ch03 加密與 HTTPS:鎖、鑰匙與身分證
下一章→
CH 03 新手先修

加密與 HTTPS:鎖、鑰匙與身分證

對稱 vs 非對稱雜湊與簽章TLS 握手憑證與 CAIn Transit vs At Rest

AWS 筆記裡 KMS、ACM、SSE、TLS 這些縮寫背後全是同一套加密學地基。本章不碰數學,用「鎖與鑰匙」「指紋」「身分證」三個類比把對稱/非對稱加密、雜湊、憑證講到能用,最後走一遍 HTTPS 的握手流程。讀完後 AWS ch04(S3 加密)、ch07(ACM)、ch10(KMS)會輕鬆很多。

加密(encryption)=用一把「鑰匙(金鑰,key)」把看得懂的資料(明文)攪亂成看不懂的亂碼(密文);沒有鑰匙的人拿到也讀不出內容。資料有兩種「危險時刻」,對應兩種加密:

  • In Transit(傳輸中):資料在網路上旅行時可能被中途偷看(咖啡廳 WiFi、路過的任何節點)。保護方式=TLS/HTTPS——資料上路前先加密,到站再解密。類比:運鈔車。
  • At Rest(靜態):資料躺在硬碟/資料庫裡時,可能因硬碟失竊、備份外流而暴露。保護方式=存進去之前先加密。類比:保險箱。
💡 AWS 對照表:In Transit → ACM 憑證、ALB 的 HTTPS Listener;At Rest → S3 的 SSE 系列、EBS/RDS 加密(背後都是 KMS 管鑰匙)。考題問「保護傳輸中的資料」和「保護儲存的資料」是兩件事,方案不能混用。
  • 對稱加密(Symmetric):加密和解密用同一把鑰匙。類比:家門鑰匙——鎖門開門都是它,誰拿到就進得來。
  • 代表演算法:AES-256(考試看到這個字=對稱加密,256 是鑰匙長度,目前視為不可暴力破解)。
  • 優點:快。加解密大量資料的效能極好,所以「加密資料本體」幾乎都用對稱式。
  • 致命弱點:鑰匙怎麼交給對方?你和遠方的朋友要用同一把鑰匙,但鑰匙本身走網路寄過去就可能被攔截——被攔了加密就形同虛設。這個「鑰匙配送問題」要靠下一張卡的非對稱加密解決。
⭐ AWS 對應:KMS 的預設金鑰型態就是對稱(AES-256);S3 的 SSE-S3、SSE-KMS 加密物件用的都是對稱式。大量資料加密=對稱,先記死。

非對稱加密(Asymmetric):鑰匙是成對的——公鑰(public key)和私鑰(private key),數學上綁定:一把鎖上的,只有另一把能打開。

  • 用法一:保密通訊。類比:你對外發放「打開就會自動上鎖的箱子」(公鑰),任何人都能拿箱子裝東西寄給你,但鎖上之後全世界只有你的私鑰打得開——連寄件人自己都打不開。公鑰可以大方公開,私鑰絕不出門。
  • 用法二:數位簽章(反過來用)。用私鑰對文件「簽名」,任何人都能用你的公鑰驗證「這確實是你簽的、內容沒被改過」。因為私鑰只有你有,簽得出來就證明是你本人。
  • 代表演算法:RSA、ECC。缺點:慢——比對稱式慢上百倍,不適合加密大量資料。
  • 實務的黃金組合:先用非對稱加密「安全地交換一把對稱鑰匙」(解決配送問題),之後的大量資料全用對稱加密(要快)。TLS 就是這樣運作的(見下方 TLS 卡)。
💡 AWS 對應:KMS 的非對稱金鑰(RSA/ECC)用於「簽章/驗章」場景;EC2 的 Key Pair 登入(你持私鑰、AWS 放公鑰)也是這套原理。考題分辨:加密大量資料 → 對稱;簽章、金鑰交換 → 非對稱。
  • 雜湊(Hash):把任意長度的資料丟進一個函數,輸出一串固定長度的值(如 SHA-256 輸出 64 個十六進位字元)。類比:指紋——人有高矮胖瘦,指紋都一樣大小。
  • 三個關鍵性質:
    ・同樣的輸入永遠得到同樣的指紋。
    ・改動一個字,指紋就完全不同——可用來偵測資料有沒有被竄改。
    ・單向:從指紋推不回原文。所以雜湊不是加密(加密要能解回來),是「完整性檢查」工具。
  • 常見用途:下載檔案附的 checksum(核對指紋確認沒下載壞)、密碼儲存(資料庫只存雜湊值,被偷了也推不回密碼)、數位簽章(先算指紋、再用私鑰簽指紋,比簽整份文件快)。
⭐ 一句話分工:加密管保密(看不懂),雜湊管完整(沒被改),簽章管身分(真的是你)。三者常一起出現但各司其職。

非對稱加密還有一個漏洞:你拿到一把自稱是「你的銀行」的公鑰,但怎麼確定它真的是銀行的,而不是中間人偽造的?答案是憑證(Certificate)制度:

  • 憑證=伺服器的身分證:內容是「這個網域(example.com)的公鑰是 XXX」,並由一個公信單位簽章擔保。
  • CA(Certificate Authority,憑證頒發機構)=發身分證的政府單位。CA 驗證你真的擁有這個網域後,用它的私鑰在你的憑證上簽章。
  • 信任怎麼建立:作業系統和瀏覽器出廠就內建一份「值得信任的 CA 名單」(含這些 CA 的公鑰)。收到憑證時用 CA 公鑰驗簽章——驗得過就信。這就是「信任鏈」:我信 CA,CA 擔保這個網站。
  • 瀏覽器跳「您的連線不是私人連線」警告,就是憑證驗不過:過期了、網域對不上、或簽發者不在信任名單(例如自簽憑證)。
💡 AWS 對應:ACM(AWS Certificate Manager)就是幫你向 AWS 這個 CA 申請憑證的服務——公有憑證免費、自動續期(不會半夜過期爆炸),掛到 ALB/CloudFront 上就能提供 HTTPS。考題「憑證快過期要自動更新」→ ACM。

把前面所有觀念串起來,就是你每天按下 https:// 時發生的事——TLS 握手(白話版):

  • ① 打招呼:瀏覽器:「哈囉,我要建立加密連線,我支援這些加密方法。」
  • ② 出示身分證:伺服器送上憑證(內含它的公鑰)。
  • ③ 驗證身分:瀏覽器用內建的 CA 公鑰驗憑證簽章——確認「這真的是 example.com,不是冒牌貨」。
  • ④ 交換鑰匙:瀏覽器產生一把對稱鑰匙(session key),用伺服器的公鑰加密後寄出——只有伺服器的私鑰能打開,中途攔到也沒用。
  • ⑤ 開始加密通話:雙方都有同一把對稱鑰匙了,之後所有資料用它加密——因為對稱式才夠快。

看出來了嗎?非對稱只在握手時用一下(驗身分+交換鑰匙),真正的資料傳輸全程用對稱——各取所長。

⭐ 「TLS 終止(TLS Termination)」:解密工作在哪裡結束。常見設計是 ALB 掛 ACM 憑證、在 ALB 解密(終止),ALB 到後端走內網明文或再加密——這就是 AWS ch03/ch07 那個詞的意思。SSL 是 TLS 的前身,日常兩詞混用,考試視為同義。
對稱 vs 非對稱加密
特性對稱加密非對稱加密
鑰匙同一把(加密=解密)一對(公鑰上鎖、私鑰開鎖)
類比家門鑰匙自動上鎖的箱子+唯一的開箱鑰匙
代表演算法AES-256RSA、ECC
速度快(適合大量資料)慢(比對稱慢百倍以上)
弱點鑰匙配送問題效能差
典型用途加密資料本體(S3 SSE、EBS 加密)簽章、驗身分、交換對稱鑰匙(TLS 握手、EC2 Key Pair)
In Transit vs At Rest
面向In Transit(傳輸中)At Rest(靜態)
危險時刻資料在網路上旅行時被偷看硬碟/備份/資料庫被偷或外流
類比運鈔車保險箱
保護手段TLS / HTTPS存入前加密(AES-256)
AWS 對應ACM 憑證、ALB HTTPS Listener、API 全走 HTTPSS3 SSE 系列、EBS/RDS 加密、KMS 管金鑰

練習題 點選選項查看解析

0 / 7
01 / 7
你需要加密 S3 上數 TB 的資料。從加密學角度,資料本體應該用哪種方式加密?為什麼?
A 非對稱加密,因為比較安全
B 對稱加密(如 AES-256),因為加解密大量資料的效能遠勝非對稱式
C 雜湊(SHA-256),因為不可逆最安全
D 不用加密,S3 本來就是私有的
解析
資料本體幾乎永遠用對稱加密——AES-256 快且安全;非對稱式慢上百倍,只適合「簽章」和「交換鑰匙」這種小資料場景。雜湊是單向的、解不回來,根本不是加密。S3 的 SSE-S3/SSE-KMS 底層用的正是 AES-256。
02 / 7
Alice 想收別人寄來的加密訊息。她把「公鑰」放上個人網站讓所有人下載。這樣安全嗎?
A 不安全,鑰匙絕對不能公開
B 安全,公鑰本來就是設計成可以公開的——用公鑰加密的內容只有 Alice 的私鑰能解開
C 不安全,任何人拿到公鑰就能解密她的訊息
D 安全,但前提是網站要用 HTTP
解析
這正是非對稱加密的精髓:公鑰=「打開就自動上鎖的箱子」,發給全世界都沒關係,因為鎖上之後只有配對的私鑰打得開——連加密者自己都解不開。需要保護的只有私鑰。EC2 Key Pair 同理:AWS 放公鑰在機器上,你自己保管私鑰。
03 / 7
下載軟體時官網附了一串 SHA-256 checksum,要你下載後核對。這個動作的目的是什麼?
A 解密下載的檔案
B 確認檔案完整、沒有在傳輸中損壞或被竄改(雜湊值=指紋,改一個 byte 指紋就全變)
C 驗證你有下載權限
D 加快下載速度
解析
雜湊是「指紋」:同樣的檔案永遠算出同樣的值,改動任何一個 byte 結果就完全不同。核對 checksum = 核對指紋,確認拿到的就是官方發布的那份。注意雜湊不是加密(單向、解不回來),它管的是「完整性」,不是「保密性」。
04 / 7
瀏覽器連到某網站時跳出「您的連線不是私人連線」警告。從憑證機制來看,最可能發生了什麼事?
A 網站的伺服器效能不足
B 憑證驗證失敗:可能過期、網域不符,或簽發者不在瀏覽器的信任 CA 名單中(如自簽憑證)
C 網站沒有使用對稱加密
D DNS 解析失敗
解析
TLS 握手第三步是「驗身分證」:瀏覽器用內建 CA 名單的公鑰驗憑證簽章。驗不過的三大原因:過期、憑證上的網域跟你連的網域對不上、簽發者不受信任(自簽憑證沒有公信 CA 擔保)。這也是 ACM 自動續期的價值——人工管理憑證最常出的包就是忘了換、過期爆炸。
05 / 7
TLS 握手中,瀏覽器產生的「對稱 session key」是怎麼安全送到伺服器手上的?
A 直接明文傳送,因為速度快
B 用伺服器憑證裡的公鑰加密後傳送——只有伺服器的私鑰能解開,中途被攔也沒用
C 透過 DNS 傳送
D 不用傳送,雙方各自隨機產生一把
解析
這就是「用非對稱解決對稱的鑰匙配送問題」:session key 用伺服器公鑰加密後上路,攔截者沒有私鑰打不開。之後的資料傳輸全用這把對稱鑰匙(夠快)。非對稱只在握手時出場一次——各取所長是 TLS 的核心設計。
06 / 7
公司要求「使用者到 ALB 之間必須 HTTPS 加密,且憑證要能自動續期不需人工介入」。最合適的 AWS 作法是?
A 跟第三方買憑證,每年手動更新到 ALB
B 用 ACM 簽發公有憑證(免費)掛到 ALB 的 HTTPS Listener,ACM 自動續期
C 在每台 EC2 上自行產生自簽憑證
D 改用 HTTP 但限制來源 IP
解析
ACM 公有憑證免費、自動續期,原生整合 ALB/CloudFront——這是「憑證管理」類考題的標準答案。自簽憑證不被瀏覽器信任(跳警告);手動更新有過期風險;HTTP 加 IP 限制完全沒有加密,不符需求。
07 / 7
「保護 EBS 磁碟上的資料」和「保護使用者送到網站的資料」分別屬於哪類加密需求?
A 都是 In Transit
B 前者 At Rest(靜態,存入前加密),後者 In Transit(傳輸中,走 TLS/HTTPS)
C 都是 At Rest
D 前者 In Transit,後者 At Rest
解析
判斷方法:資料「躺著」(硬碟、資料庫、備份)→ At Rest,用存入前加密(EBS/RDS/S3 加密,KMS 管鑰匙);資料「在路上」(網路傳輸)→ In Transit,用 TLS/HTTPS(ACM 憑證)。考題常兩者並列要求,方案要分開對應。

點擊卡片翻面查看答案,共 10 張。

QUESTION
In Transit vs At Rest 的類比與 AWS 對應?
點擊翻面
ANSWER
In Transit = 運鈔車(傳輸中)→ TLS/HTTPS、ACM
At Rest = 保險箱(靜態)→ S3 SSE、EBS/RDS 加密、KMS
兩種需求、兩套方案,不能混
點擊翻回
QUESTION
對稱加密一句話?代表演算法?弱點?
點擊翻面
ANSWER
上鎖開鎖同一把鑰匙,快,適合大量資料
代表:AES-256
弱點:鑰匙怎麼安全交給對方(配送問題)
點擊翻回
QUESTION
非對稱加密的公鑰/私鑰類比?兩種用法?
點擊翻面
ANSWER
公鑰 = 自動上鎖的箱子(可公開發放)
私鑰 = 唯一的開箱鑰匙(絕不出門)
用法①保密:公鑰加密、私鑰解密
用法②簽章:私鑰簽名、公鑰驗證
點擊翻回
QUESTION
加密 / 雜湊 / 簽章 三者的分工口訣?
點擊翻面
ANSWER
加密管保密(看不懂)
雜湊管完整(沒被改,像指紋、單向不可逆)
簽章管身分(真的是你簽的)
點擊翻回
QUESTION
憑證是什麼?CA 是什麼?信任從哪來?
點擊翻面
ANSWER
憑證 = 伺服器的身分證(「此網域的公鑰是XXX」)
CA = 發證機關,用私鑰簽章擔保
瀏覽器出廠內建信任 CA 名單 → 驗得過就信(信任鏈)
點擊翻回
QUESTION
TLS 握手五步白話版?
點擊翻面
ANSWER
①打招呼 ②伺服器出示憑證 ③瀏覽器驗身分
④用伺服器公鑰加密送出對稱 session key
⑤之後全程用對稱加密通話
→ 非對稱只管握手,資料傳輸靠對稱
點擊翻回
QUESTION
TLS 終止(Termination)是什麼意思?
點擊翻面
ANSWER
「解密工作在哪裡結束」
常見:ALB 掛 ACM 憑證、在 ALB 解密
後端收到的是內網流量(明文或重新加密)
點擊翻回
QUESTION
ACM 是什麼?考試的觸發詞?
點擊翻面
ANSWER
AWS Certificate Manager:申請/管理 TLS 憑證
公有憑證免費+自動續期
觸發詞:「HTTPS」「憑證快過期要自動更新」→ ACM
點擊翻回
QUESTION
SSL 和 TLS 什麼關係?
點擊翻面
ANSWER
SSL 是 TLS 的前身(舊名)
現在實際用的都是 TLS
日常與考試兩詞混用、視為同義
點擊翻回
QUESTION
「加密大量資料」vs「簽章/交換金鑰」各用哪種加密?
點擊翻面
ANSWER
大量資料 → 對稱(AES-256,快)
簽章、驗身分、交換金鑰 → 非對稱(RSA/ECC)
KMS 兩種金鑰都能管,預設是對稱
點擊翻回