假設 Francis 與 Henry 已經有了「完美」的加密與「完美」的 MAC:騎士讀不懂、也改不動任何一張羊皮紙。講義 p. 21 問:還有沒有我們想要的安全性質?有——因為騎士仍然可以對整張羊皮紙動手腳,而不必動其中的任何一個字。

五種攻擊

L2.2cmL5.4cmL6.6cm 攻擊 & 騎士做了什麼 & 現代例子/後果
重放(replay) & 把一張合法的羊皮紙複製並送達兩次(或留一份下次再送)。 & 「轉帳 1,000 鎊給 Bob」被重送十次,變成 10,000 鎊(KL-IMC §4.2 的例子);重放「開門」指令;重放登入憑證。
重排(reordering) & 先送第 2 封、再送第 1 封。 & 「賣出股票」與「買入股票」順序對調;「同意」與「撤回」顛倒;分段傳送的檔案被打亂。
反射(reflection) & 把 Francis 送給 Henry 的羊皮紙退回給 Francis。 & 因為雙方共用同一把金鑰,Francis 會驗證通過、解密成功,誤以為 Henry 說了這句話。在挑戰–回應協定中,反射可以讓敵手「用對方的答案回答對方的挑戰」而冒充身分。
延遲(delay) & 把羊皮紙扣住一陣子才送。 & 「現在賣出」在價格崩盤後才送達;時間敏感的指令失效。
拒絕傳遞(denial) & 根本不送、或選擇性地丟掉某幾封。 & 阻斷服務(DoS)、截斷攻擊(truncation:丟掉最後的「結束」訊息)。

三種「不需竄改任何一個位元」的攻擊。完美的加密與 MAC 都擋不住它們,因為每一張羊皮紙本身都是真的。

講義把這五種攻擊分成兩組:

  • 一般認為屬於密碼學範疇:防止重放、防止重排、防止改變傳遞方向(反射)。這三者都可以藉由在訊息中加入被鑑別保護的額外資訊(計數器、方向位元、session 識別碼)來解決——Problem 2 (ii) 會詳細設計。

  • 延伸到網路工程與安全:防止延遲、防止拒絕傳遞。密碼學無法阻止敵手把封包丟掉或扣住——它控制的是通道,不是你。密碼學最多能讓這些行為被偵測(例如計數器出現缺口、逾時未收到回應),之後的處理(重傳、換路徑、中止連線)屬於協定與網路層的工作。Problem 2 (iii) 討論這點。

為什麼 MAC 本身不處理重放?因為 \(\Vf\) 是無狀態(stateless)的:同一個合法的 \((m,\tau)\) 不管看幾次都會輸出 \(1\)。要擋重放,必須有人記得看過什麼,也就是需要狀態——而「哪些重複是可以接受的」是應用層才知道的事(KL-IMC §4.2)。

從中世紀隱喻到現代(講義 p. 22)

在現代,以下各項的合理對應是什麼?Francis 與 Henry?羊皮紙?騎士?保密性不足的攻擊?完整性的需求?重排、重放、反射、延遲與拒絕攻擊?

L3.0cmL11.4cm 中世紀 & 現代對應(舉例)
Francis 與 Henry & 你的瀏覽器與銀行伺服器;兩支手機上的 Signal/WhatsApp;兩個資料中心;一顆 IoT 感測器與雲端;也可以是「現在的你」與「明天要讀回硬碟的你」。
羊皮紙 & 一個 IP 封包、一筆 TLS record、一則訊息、一個檔案區塊。
騎士 & 整個網際網路:Wi-Fi 熱點、ISP、路由器、海底電纜、CDN——任何位於兩端之間、不受你控制的設備與組織。
保密性不足的攻擊 & 咖啡店 Wi-Fi 的封包嗅探;ISP 或政府的大規模監聽(2013 年 Snowden 揭露的計畫);用字母頻率破解代換密碼;利用壓縮長度洩漏(CRIME/BREACH)。
完整性的需求 & 軟體更新不能被植入後門;網頁內容不能被 ISP 插入廣告或惡意程式;轉帳金額不能被改;韌體映像需驗證。
重放 & 重送已被授權的交易;重用攔截到的車鑰匙訊號(rolling code 就是為了防這個);重放 Kerberos 票證。
重排 & TCP 需要序號才能把亂序封包排回去;TLS record 層以隱含序號確保順序。
反射 & 早期的挑戰–回應認證協定(如 NTLM 的某些用法)可被反射攻擊;TLS 1.3 以不同方向用不同金鑰杜絕反射。
延遲與拒絕 & DDoS 攻擊;BGP 劫持造成繞路;審查機制的封包丟棄;SSL 2.0 的截斷攻擊(敵手丟掉最後的封包,使接收端誤以為訊息已完整)。

  • 能定義並舉例五種攻擊,並區分「密碼學能處理」(重放、重排、反射)與「屬於網路工程」(延遲、拒絕)。

  • 能說明為何「完美的加密 \(+\) 完美的 MAC」仍擋不住重放/重排/反射(每張羊皮紙都是真的;\(\Vf\) 無狀態)。

  • 能給出至少一組「中世紀 \(\to\) 現代」的對應。