在不更改標籤的情況下更改身份驗證消息。(CBC-MAC)
你知道CBC-MAC嗎?我有 iv 、MAC 和 Transaction 但沒有密鑰。我應該在不更改密文的情況下更改事務。你知道這怎麼可能嗎?另外,我沒有密文來查找密鑰。資訊:
Transaction:to=9714163002&from=9711412111&amount=10000000 IV: qes/2BpH9BvVN7f6jFy43g== (base64) MAC: NEhKNEtaR3lDdzRtWHJJTg== (base64)
9714163002 應該換成 1234567890 以外的東西,我應該找到並送出的是:
Transaction: IV: MAC:
- 挑戰的正文如下:
考慮以下數字簽名方法。
A. 應該下載文本 P
B. CBC 文本使用密鑰加密
C. 丟棄除最後一個塊之外的所有程式碼塊
D.最後一個批量應該被認為是文本的MAC-CBC數字簽名。
上述方法可以很容易地檢測到文本中的任何未經授權的更改,因為如果有任何更改,MAC-CBC 將不會與文本對應。假設這個系統用於銀行交易,如果簽名正確,任何交易都是有效的。你作為攻擊者你能聽到一個消息:
Transaction:to=9714163002&from=9711412111&amount=10000000 IV: qes/2BpH9BvVN7f6jFy43g== MAC: NEhKNEtaR3lDdzRtWHJJTg==
IV 和 MAC 採用 base64 編碼。如果您可以在上面的消息中將號碼 9714163002 更改為您的參與者號碼,金額將記入您的帳戶,但問題是交易必須具有有效的 CBCMAC 而您沒有密鑰。找到一種無需鑰匙即可實現目標的方法。將您的答案發送到問題的地址。請注意,目的地必須是您的參與者編號。
在 CBC-MAC 中使用 zero-IV 是有充分理由的;如果存在固定的非零 IV,那麼攻擊者可以修改 $ IV $ 和 $ P_1 $ 這樣明文的第一塊就可以成為攻擊者的優勢。
CBC-MAC 標籤計算的第一步是這樣執行的$$ C_1 = E_k(IV \oplus P_1) $$
現在讓 $ P_1’ $ 是攻擊者想要更改的目標第一個塊而不更改 CBC-MAC 標籤。為了實現這種簡單的偽造,他們需要為第一個密文保持相同的值 $ C_1 $ 這樣其餘的將產生相同的 MAC 標籤。
$$ IV \oplus P_1 = IV’ \oplus P_1’ $$
既然攻擊者知道 $ P_1 $ (‡), $ IV $ 和 $ P_1’ $ 比它容易找到 $ IV’ $ $$ IV’ = IV \oplus P_1 \oplus P_1’ $$即攻擊者只需要一個簡單的x-or 操作和傳輸。
在這種攻擊中,消息大小沒有改變,只有明文的第一個塊和IV被改變以偽造MAC。可以組合兩條消息來偽造另一條消息,但是,這會改變消息的大小。
這對 CBC-MAC 中的非固定 IV 進行了簡單的偽造。CBC-MAC 已經定義了零 IV 以減輕這種攻擊和組合攻擊。
(‡) MAC 方案的安全性不需要對消息進行加密。如果有加密,攻擊者仍然可以修改,這在 CBC 模式下非常容易。