Cyber Security:守護你的數位世界 (9645)
歡迎來到精彩的網絡安全世界!在我們互聯互通的數位世界中,保護數據是電腦科學家最重要的工作之一,因此本章至關重要。
別擔心「密碼」(cipher)或「防火牆」(firewall)這些術語聽起來很深奧——我們將會結合現實生活中的例子來拆解這些概念。學完之後,你將會明白我們是如何防禦網絡,並確保機密資訊保持私密與準確的。
快速重溫:為什麼需要網絡安全?
- 確保保密性(Confidentiality)(只有獲授權的用戶才能看到數據)。
- 確保完整性(Integrity)(數據準確且未被篡改)。
- 確保可用性(Availability)(獲授權的用戶在需要時可以存取系統)。
第一部分:了解數位威脅(惡意軟件)
網絡安全往往是一場對抗惡意軟件(malware)的戰鬥。課程大綱要求你了解三種常見類型及其所利用的弱點。
蠕蟲、特洛伊木馬與病毒
它們都屬於惡意軟件,但運作方式各有不同:
1. 病毒 (Viruses)
病毒需要依附於一個宿主程式(就像生物病毒需要活細胞一樣)。它需要人類的操作(例如執行一個受感染的檔案)來進行複製和傳播。
所利用的弱點: 用戶的疏忽或操作系統的缺陷,允許未經授權修改可執行檔案。
2. 特洛伊木馬 (Trojans / Trojan Horse)
特洛伊木馬會偽裝成合法的軟件(就像希臘人用過的木馬一樣)。它在執行預期功能背後隱藏惡意操作。
所利用的弱點: 用戶的信任與欺騙(社會工程學)。
3. 蠕蟲 (Worms)
蠕蟲是一種獨立的惡意軟件,它會自動複製並在網絡中傳播,無需宿主程式,也不需要人為介入。
所利用的弱點: 網絡配置漏洞,或是操作系統及應用程式中允許遠端執行的安全缺陷。
關鍵區別在於其「移動方式」:病毒 依附於檔案;特洛伊木馬 偽裝成有用程式;蠕蟲 透過網絡獨立傳播。
第二部分:密碼學與加密 (3.5.7)
加密(Encryption)是指使用演算法將可讀數據(明文,plaintext)轉換為不可讀形式(密文,ciphertext)的過程。這確保了保密性,即使數據被攔截,第三方若沒有正確的方法(密碼編碼,cipher)和秘密值(密鑰,key),也無法讀懂數據。
核心術語
- 明文 (Plaintext): 原始、可讀的訊息(例如:"ATTACK AT DAWN")。
- 密文 (Ciphertext): 加密後、雜亂的訊息(例如:"DWWDNF DW GDZQ")。
- 密碼編碼 (Cipher): 用於加密/解密的演算法或方法(例如:字母位移)。
- 密鑰 (Key): 由密碼編碼應用於明文以轉為密文的秘密值(字母或位元)。
你知道嗎? 「密碼學」(cryptography)一詞源自希臘語 kryptos(隱藏)和 graphein(書寫)。
2.1 凱撒密碼 (Caesar Cipher,安全性弱)
凱撒密碼是替換加密(substitution cipher)的一個簡單例子,其中明文中的每個字母都會在字母表中向後位移固定的位數。
為什麼凱撒密碼很容易被破解:
- 密鑰有限: 只有 25 種可能的位移值(密鑰)。對於電腦來說,暴力破解(嘗試每一種可能的密鑰)簡直輕而易舉。
- 頻率分析 (Frequency Analysis): 密文中字母的頻率(例如字母 'E' 通常是最常見的)直接對應於明文中字母的頻率。識別出密文中出現頻率最高的字母,就能立即推斷出所使用的位移值。
- 位移已知: 一旦確定了其中一個字母的位移,其他所有字母的位移也就隨之曝光了。
2.2 維南密碼 (Vernam Cipher,完美安全性)
維南密碼,通常稱為一次性密碼本(One-Time Pad),提供了完美安全性——這意味著透過檢視密文,絕對無法獲知關於明文的任何資訊。
完美安全性的條件(必須符合!):
要使維南密碼達到完美安全,必須符合以下條件:
- 密鑰必須是完全隨機選擇的。
- 密鑰長度必須至少與明文訊息一樣長。
- 密鑰只能使用一次(因此稱為「一次性密碼本」)。
- 密鑰必須僅由傳送者和接收者知曉。
凱撒密碼就像用一個三位數的密碼鎖鎖住日記(很容易猜到)。而在正確條件下的維南密碼,則像是用一本獨一無二的書鎖住日記,使用後即刻燒毀(根本無法破解)。
2.3 計算安全性 (Computational Security)
現代密碼(如 HTTPS 中使用的 AES)比維南或凱撒複雜得多。它們依賴的是計算安全性。
- 如果破解某種密碼的演算法需要花費不可行的時間才能完成(例如以當前技術需要數千年),或者成功的機率極低,那麼該密碼就是計算安全的。
- 與維南密碼不同,計算安全的密碼在「理論上」是有可能被破解的,但在實務上是不可能的。
2.4 對稱與非對稱密碼 (密鑰交換)
密碼根據它們如何使用加密和解密密鑰來進行分類。
1. 對稱密碼 (Symmetric Ciphers)
- 機制: 使用相同的密鑰來加密明文及解密密文。
- 例子: 凱撒密碼、維南密碼、AES。
-
問題:密鑰交換問題 (Key Exchange Problem)
這是對稱密碼的主要缺點:傳送者和接收者如何在不被第三方攔截的情況下共享秘密密鑰?如果密鑰被攔截,整個系統就會崩潰。
2. 非對稱密碼 (Asymmetric Ciphers,公開/私有密鑰)
-
機制: 使用兩把數學上相關的密鑰來進行加密和解密。
- 一把是公開密鑰 (Public Key)(公開分享,用於加密)。
- 一把是私有密鑰 (Private Key)(由擁有者保密,用於解密)。
- 解決方案: 由於加密密鑰是公開的,共享它沒有風險。密鑰交換問題不適用,因為私有密鑰從未離開過擁有者。
對稱 = 相同密鑰(存在密鑰交換問題)
非對稱 = 不同密鑰(解決了密鑰交換問題)
第三部分:網絡安全機制 (3.14.5)
雖然加密保護了數據本身,但我們仍需要防禦機制來保護網絡邊界。
3.1 防火牆如何運作
防火牆(Firewall)充當了受信任內部網絡與不受信任外部網絡(如互聯網)之間的安全屏障。它會檢查流入和流出的流量,並阻擋任何可疑的內容。
防火牆機制:
-
封包過濾 (Packet Filtering,最簡單)
檢查個別數據包的檔頭資訊(例如來源 IP 地址、目的 IP 地址和埠號)。它使用預設的規則來決定是允許還是阻擋封包。它不會檢查數據內容(負載)。 -
狀態檢測 (Stateful Inspection,最常用)
這是更進階的做法。它不僅檢查檔頭資訊,還會監控整個連接(或稱「狀態」)。當封包到達時,防火牆會確認它是否屬於一個已建立、活躍且合法的連接,然後才允許通過。 -
代理伺服器 (Proxy Server,應用層)
代理伺服器作為尋求資源的客戶端與其他伺服器之間的「中間人」。- 它向外部威脅隱藏了內部網絡的身分與結構。
- 所有對外的通訊看起來都是來自代理伺服器,而非內部的客戶端。
3.2 數位憑證與簽章
這些工具利用非對稱加密概念(公開與私有密鑰)來建立信任並確保數據的完整性。
數位憑證 (Digital Certificates)
當你連線到 HTTPS 網站(留意地址欄的鎖頭標示)時,伺服器會提供一份數位憑證。
- 目的: 驗證伺服器的身分(例如證明 "google.com" 真實由 Google 擁有)。
- 獲取: 憑證由名為憑證授權中心 (CA, Certificate Authority) 的受信任第三方頒發。
- 用途: 憑證包含網站的公開密鑰,讓你的瀏覽器能夠安全地加密傳送給伺服器的數據。
數位簽章 (Digital Signatures)
數位簽章是一種數學技術,用於驗證訊息傳送者的身分,並保證訊息的完整性(即訊息未被篡改)。
簡單運作原理: 傳送者使用其私有密鑰加密訊息的雜湊值(即簽章)。接收者使用傳送者的公開密鑰解密簽章,並驗證雜湊值是否與接收到的數據匹配。
數位簽章不會為了保密而對整條訊息進行加密。它的主要作用是身分驗證 (AUTHENTICATION) 和 完整性 (INTEGRITY),確保你知道是誰發送了數據,並且數據未被改動。
第四部分:數據完整性與錯誤控制 (3.5.8)
確保數據完整性意味著確認傳輸或儲存的數據與原始數據完全相同,沒有意外錯誤或損毀。
錯誤檢測方法
1. 奇偶校驗位 (Parity Bits)
奇偶校驗位是在二進位字組(通常是一個位元組)中添加一個額外位元,使總共 '1' 的個數為偶數(偶校驗)或奇數(奇校驗)。
- 用途: 檢測簡單的傳輸錯誤。
- 效能: 非常基礎。它只能檢測出奇數個位的錯誤(例如翻轉 1 個位元、3 個位元等)。如果翻轉了 2 個位元,奇偶校驗仍會通過,但數據其實已經錯誤了。
2. 校驗和 (Checksums)
校驗和是使用特定數學演算法,從數據區塊本身計算出來的一個值。
- 過程: 傳送者計算校驗和並隨數據發送。接收者從接收到的數據中計算出自己的校驗和。
- 驗證: 如果兩個校驗和匹配,則數據很可能是無誤的。
- 效能: 比奇偶校驗位更有效,因為它檢查的是整個區塊的完整性,而不僅僅是一個位元組。
3. 多數表決 (Majority Voting,錯誤修正)
此方法不只用於檢測,還用於修正,方式是將相同的數據發送多次(通常是三次)。
- 過程: 接收者比較這幾個副本。如果其中一個與另外兩個不同,系統會假設多數版本是正確的,並修正那個錯誤的版本。
- 效能: 對於簡單錯誤非常有效,但效率低下,因為它佔用了大量額外的頻寬(冗餘)。
奇偶校驗位:效能最低,開銷(成本)低。
校驗和:檢測能力較好,開銷中等。
多數表決:具備錯誤修正能力,開銷最高(效率極低)。