歡迎來到 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:
- Alice 使用 Bob 的公開金鑰將明文加密成密文。
- Alice 將密文傳送過網路。
- 由於只有 Bob 的私密金鑰能進行解密,因此只有 Bob 本人能閱讀原始明文。
核心要點:為了確保機密性,請使用接收者的公開金鑰進行加密。
如何使用金鑰發送已驗證的訊息(真實性 Authenticity 與完整性 Integrity)
有時候,傳送者需要證明「他是誰」,而不僅僅是保持訊息保密。這可以透過數位簽章 (Digital Signature) 來達成(我們稍後會詳細介紹完整過程)。
- Alice 使用 Alice 的私密金鑰對訊息的一部分(或訊息的雜湊值)進行加密。這就是數位簽章。
- Alice 發送訊息以及該簽章。
- 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),通常混合使用了非對稱和對稱加密:
- 用戶端發送一個 "Hello" 給伺服器,列出其支援的加密演算法和協定。
- 伺服器回應其選擇的協定、其數位憑證以及公開金鑰。
- 用戶端檢查數位憑證以確保伺服器是真實可靠的(我們下一節會詳細說明!)。
- 用戶端生成一把快速且一次性的對稱工作階段金鑰 (Symmetric Session Key)。
- 用戶端使用伺服器的公開金鑰(非對稱加密)將這把新的工作階段金鑰加密,並傳送給伺服器。
- 伺服器使用其私密金鑰解密出該工作階段金鑰。
- 現在,雙方都擁有相同的工作階段金鑰。後續所有的數據傳輸都將使用這把快速的對稱金鑰進行加密。
適用 SSL/TLS 的情況:
- 線上銀行與支付(保護財務細節)。
- 登入表單(保護使用者名稱與密碼)。
- 任何需要證明伺服器身分的通訊(確保你正在與正確的網站進行通訊)。
17.1.5 數位憑證 (Digital Certification)
什麼是數位憑證?
數位憑證就像是網站或個人的數位身分證。它證明了你正在使用的公開金鑰確實屬於宣稱的所有者。
如何獲得數位憑證
憑證由受信任的第三方,即憑證授權中心 (Certificate Authority, CA)(例如 Let's Encrypt 或 DigiCert)核發。
流程:
- 個人或組織生成一對公開金鑰/私密金鑰。
- 他們將公開金鑰和身分證明發送給 CA。
- CA 驗證身分後,核發包含組織詳細資料及其公開金鑰的憑證。
- CA 隨後使用其私密金鑰對整個憑證進行數位簽章。
此 CA 簽章非常重要,因為你的瀏覽器預設信任這些 CA。如果簽章有效,瀏覽器就會信任該網站的憑證,這代表它信任該網站的公開金鑰。
數位簽章與憑證
數位簽章保證了數位文件或軟體的真實性與完整性。
如何使用數位憑證產生數位簽章:
當對數據(如軟體更新或憑證本身)進行簽章時:
- 傳送者透過雜湊演算法 (hashing algorithm) 處理數據,產生唯一的固定長度雜湊值 (hash value)(數位指紋)。
- 傳送者使用自己的私密金鑰(非對稱加密)對該雜湊值進行加密。這個加密後的雜湊值就是數位簽章。
- 接收者自行計算所收到數據的雜湊值。
- 接收者使用傳送者的公開金鑰(來自其數位憑證)解密數位簽章,還原出原始雜湊值。
如果兩個雜湊值匹配,數據即被驗證:它確實來自正確的傳送者(真實性),且自簽章後未被篡改(完整性)。
17.1.6 量子密碼學(未來的挑戰)
你知道嗎?我們目前許多加密方法(特別是像 RSA 這類的非對稱加密)都依賴於一個前提:對於傳統電腦而言,對大質數進行因數分解在數學上是非常困難的。
量子電腦 (Quantum Computer) 有潛力幾乎瞬間解決這些複雜的數學問題,這會使當前的非對稱加密系統變得不堪一擊。
量子密碼學的目標
量子密碼學旨在利用量子物理學的原理(而非傳統數學)來保障通訊安全,使其天生就能抵抗傳統電腦與量子電腦的攻擊。
量子密碼學的優點
- 無法破解的金鑰:量子金鑰分發 (QKD) 可以即時偵測竊聽行為,因為觀察量子態本質上就會改變該狀態。
- 具備前瞻性的安全:提供針對理論上大規模量子電腦的防禦能力。
量子密碼學的缺點
- 成本與複雜度:需要高度專業的硬體(通常是光纖連結),目前實施成本非常高昂。
- 距離限制:量子訊號隨距離增加會迅速衰減,需要中繼器或受信任的節點。
- 發展階段:這項技術仍處於新興階段,尚未普及。
17.1 節核心總結
安全建立在信任與金鑰之上。非對稱加密提供了信任的基礎(透過數位憑證與簽章),而像 TLS 這樣的協定則管理複雜的金鑰交換,以實現快速、安全的數據傳輸(使用對稱工作階段金鑰)。