歡迎來到 A-Level 資訊安全:加密與信任 (9618 課程內容)

你好!這一章對於理解我們如何維護數位世界的安全與隱私至關重要。你現在正式進入了 A-Level 的核心領域,這意味著我們將深入探討保護數據傳輸的機制——具體來說,包括加密 (encryption)協定 (protocols)數位憑證 (digital certificates)

如果密碼學看起來很複雜,別擔心!我們將透過簡單易懂的類比,將金鑰和加密法的概念拆解成容易吸收的步驟。讓我們一起攻克這部分進階理論,確保你完全掌握!

17.1 加密基礎

17.1.1 核心術語

在深入鑽研安全領域複雜的數學原理之前,我們需要先理解四個核心術語:

  • 明文 (Plain Text):原始且可閱讀的訊息或數據(例如:"匯款 $100")。
  • 加密 (Encryption):將明文擾亂為無法閱讀的格式的過程。
  • 密文 (Cipher Text):被擾亂、無法閱讀的訊息(加密後的輸出結果)。
  • 解密 (Decryption):使用金鑰將密文還原回明文的過程。

17.1.2 對稱金鑰密碼學 (Symmetric Key Cryptography)

這是現代加密中最簡單的形式,有時也被稱為秘密金鑰密碼學 (Secret Key Cryptography)

對稱金鑰系統在加密和解密時只使用同一把金鑰

類比:想像一個共用的保險箱,只有一把鑰匙。如果 Alice 想要傳送秘密訊息給 Bob,他們兩人都必須擁有這把完全相同的鑰匙。Alice 用這把鑰匙鎖上訊息(加密),而 Bob 也使用同一把鑰匙打開它(解密)。

優點:

  • 在加密大量數據時,它通常非常快速且高效。

缺點:

  • 最大的挑戰在於金鑰分配 (key distribution)。Alice 和 Bob 最初該如何安全地分享這把金鑰?如果金鑰在傳輸過程中被截獲,所有的通訊內容都將面臨洩漏風險。
快速複習:對稱金鑰

一把金鑰 = 加密 解密。速度快,但金鑰分配有風險。

17.1.3 非對稱金鑰密碼學 (公開金鑰基礎設施 - PKI)

這種方法解決了金鑰分配的問題,是安全網際網路通訊的基石。它使用一對數學上相關聯的金鑰。

  • 公開金鑰 (Public Key):這把金鑰是公開的,任何人都可以使用。
  • 私密金鑰 (Private Key):這把金鑰必須嚴格保密,只有擁有者本人知道。

關鍵規則:用公開金鑰加密的數據只能由對應的私密金鑰解密,反之亦然。

類比:想像一個老式的郵筒。投遞口(公開金鑰)是對所有人開放的——任何人都可以把信投入。但只有郵差(持有私密金鑰的人)才能打開箱子門閱讀郵件。

如何使用金鑰發送私人訊息(機密性 Confidentiality)

如果 Alice 想要發送一封私人(機密)訊息給 Bob:

  1. Alice 使用 Bob 的公開金鑰將明文加密成密文。
  2. Alice 將密文傳送過網路。
  3. 由於只有 Bob 的私密金鑰能進行解密,因此只有 Bob 本人能閱讀原始明文。

核心要點:為了確保機密性,請使用接收者的公開金鑰進行加密。

如何使用金鑰發送已驗證的訊息(真實性 Authenticity 與完整性 Integrity)

有時候,傳送者需要證明「他是誰」,而不僅僅是保持訊息保密。這可以透過數位簽章 (Digital Signature) 來達成(我們稍後會詳細介紹完整過程)。

  1. Alice 使用 Alice 的私密金鑰對訊息的一部分(或訊息的雜湊值)進行加密。這就是數位簽章。
  2. Alice 發送訊息以及該簽章。
  3. Bob 收到訊息後,使用 Alice 的公開金鑰來解密該簽章。

如果 Alice 的公開金鑰能成功解密簽章,Bob 就能確定兩件事:

  • 真實性:訊息確實來自 Alice,因為只有她持有對應的私密金鑰。
  • 不可否認性 (Non-repudiation):Alice 事後無法否認曾發送過該訊息。
記憶小撇步:金鑰用法

Public key(公開金鑰)用來隱藏 Plain text(明文,確保機密性)。
Private key(私密金鑰)用來做出 Promise(承諾/簽章,確保真實性)。

17.1.4 加密協定 (SSL/TLS)

理解 SSL 與 TLS

當你在瀏覽器的網址列看到 HTTPS 時,代表你正在使用 SSL/TLS

SSL (安全通訊端層) 及其後繼者 TLS (傳輸層安全) 是專為電腦網路通訊提供安全保障的密碼學協定。

  • 用途:它們在用戶端(你的瀏覽器)和伺服器(網站)之間建立一條安全且加密的連結。
  • 它們位於傳輸層 (TCP) 之上,應用層 (HTTP) 之下。
SSL/TLS 在客戶端-伺服器通訊中的應用

這個過程稱為 TLS 握手 (TLS Handshake),通常混合使用了非對稱和對稱加密:

  1. 用戶端發送一個 "Hello" 給伺服器,列出其支援的加密演算法和協定。
  2. 伺服器回應其選擇的協定、其數位憑證以及公開金鑰。
  3. 用戶端檢查數位憑證以確保伺服器是真實可靠的(我們下一節會詳細說明!)。
  4. 用戶端生成一把快速且一次性的對稱工作階段金鑰 (Symmetric Session Key)
  5. 用戶端使用伺服器的公開金鑰(非對稱加密)將這把新的工作階段金鑰加密,並傳送給伺服器。
  6. 伺服器使用其私密金鑰解密出該工作階段金鑰。
  7. 現在,雙方都擁有相同的工作階段金鑰。後續所有的數據傳輸都將使用這把快速的對稱金鑰進行加密。

適用 SSL/TLS 的情況:

  • 線上銀行與支付(保護財務細節)。
  • 登入表單(保護使用者名稱與密碼)。
  • 任何需要證明伺服器身分的通訊(確保你正在與正確的網站進行通訊)。

17.1.5 數位憑證 (Digital Certification)

什麼是數位憑證?

數位憑證就像是網站或個人的數位身分證。它證明了你正在使用的公開金鑰確實屬於宣稱的所有者。

如何獲得數位憑證

憑證由受信任的第三方,即憑證授權中心 (Certificate Authority, CA)(例如 Let's EncryptDigiCert)核發。

流程:

  1. 個人或組織生成一對公開金鑰/私密金鑰。
  2. 他們將公開金鑰和身分證明發送給 CA。
  3. CA 驗證身分後,核發包含組織詳細資料及其公開金鑰的憑證。
  4. CA 隨後使用其私密金鑰對整個憑證進行數位簽章。

此 CA 簽章非常重要,因為你的瀏覽器預設信任這些 CA。如果簽章有效,瀏覽器就會信任該網站的憑證,這代表它信任該網站的公開金鑰。

數位簽章與憑證

數位簽章保證了數位文件或軟體的真實性完整性

如何使用數位憑證產生數位簽章:

當對數據(如軟體更新或憑證本身)進行簽章時:

  1. 傳送者透過雜湊演算法 (hashing algorithm) 處理數據,產生唯一的固定長度雜湊值 (hash value)(數位指紋)。
  2. 傳送者使用自己的私密金鑰(非對稱加密)對該雜湊值進行加密。這個加密後的雜湊值就是數位簽章
  3. 接收者自行計算所收到數據的雜湊值。
  4. 接收者使用傳送者的公開金鑰(來自其數位憑證)解密數位簽章,還原出原始雜湊值。

如果兩個雜湊值匹配,數據即被驗證:它確實來自正確的傳送者(真實性),且自簽章後未被篡改(完整性)。

17.1.6 量子密碼學(未來的挑戰)

你知道嗎?我們目前許多加密方法(特別是像 RSA 這類的非對稱加密)都依賴於一個前提:對於傳統電腦而言,對大質數進行因數分解在數學上是非常困難的。

量子電腦 (Quantum Computer) 有潛力幾乎瞬間解決這些複雜的數學問題,這會使當前的非對稱加密系統變得不堪一擊。

量子密碼學的目標

量子密碼學旨在利用量子物理學的原理(而非傳統數學)來保障通訊安全,使其天生就能抵抗傳統電腦與量子電腦的攻擊。

量子密碼學的優點

  • 無法破解的金鑰:量子金鑰分發 (QKD) 可以即時偵測竊聽行為,因為觀察量子態本質上就會改變該狀態。
  • 具備前瞻性的安全:提供針對理論上大規模量子電腦的防禦能力。

量子密碼學的缺點

  • 成本與複雜度:需要高度專業的硬體(通常是光纖連結),目前實施成本非常高昂。
  • 距離限制:量子訊號隨距離增加會迅速衰減,需要中繼器或受信任的節點。
  • 發展階段:這項技術仍處於新興階段,尚未普及。
17.1 節核心總結

安全建立在信任金鑰之上。非對稱加密提供了信任的基礎(透過數位憑證與簽章),而像 TLS 這樣的協定則管理複雜的金鑰交換,以實現快速、安全的數據傳輸(使用對稱工作階段金鑰)。