對手將如何欺騙這種安全通信?
我是密碼學和資訊安全問題的新手,我嘗試盡可能多地理解事物,我知道一開始它真的很複雜。
考慮到銀行與其機器之間的通信協議是標準的,我們遇到了一個對資訊加密方式略知一二的對手。當然這不會引起問題,因為銀行使用的程式碼被認為是安全的(安全的流密碼)。
問題是銀行不使用 MAC。在這種情況下,黑客將如何欺騙銀行?我認為MAC與自信沒有任何關係?
感謝您的幫助/解釋
為了使攻擊者能夠真正成功地破壞銀行的安全性,我們需要做出一些假設,我將在這裡說明:
- 使用了沒有適當身份驗證的流密碼。
- 攻擊者知道銀行使用的數據格式。
- 攻擊者知道交易的接收者和金額(即有趣的值),他可能會改變這些。
首先,我們需要考慮流密碼是如何工作的。大多數流密碼通過獲取密鑰和初始化向量並將其擴展為長密鑰流來工作。密鑰流 $ K $ 用於加密消息 $ M $ 到密文 $ C $ 如下: $ C=K\oplus M $ 在哪裡 $ \oplus $ 表示按位異或。
現在假設銀行實際發送的消息是 $ M $ 包含有效的收件人和有效的交易金額。現在進一步假設攻擊者想要將其替換為 $ M’ $ 他增加了金額並使自己成為接受者。按位異或的一個好處是 $ a\oplus a = 0 $ 持有。現在攻擊者可以計算出差異 $ \Delta=M\oplus M’ $ . 他現在取代 $ C $ 經過 $ C’=C\oplus \Delta $ . 現在觀察
$$ C’=C\oplus\Delta=(K\oplus M)\oplus (M\oplus M’)=K\oplus M’ $$這將解密為 $ M’ $ 通過異或 $ K $ 再次進入。
(實際)範例
假設這
0001001001100101100000001011010010
是(合法的)收件人 ID。假設這
0000010111011100
是美元的合法交易金額。假設這
1001001100100100011110000010001010
是攻擊者的 ID。假設這
1100001101010000
是攻擊者的首選擴充。假設消息編碼由收件人 ID 和金額的簡單串聯組成。
假設這
01011000011010011001110010010110101100010100011100
是密鑰流。訊息 $ M $ 然後
00010010011001011000000010110100100000010111011100
是(合法的)密文 $ C $ 是01001010000011000001110000100010001100000011000000
。惡意消息 $ M’ $ 將是
10010011001001000111100000100010101100001101010000
,因此差異 $ \Delta $ 會10000001010000011111100010010110001100011010001100
因此 $ C’ $ 是
11001011010011011110010010110100000000011001001100
哪個將被解碼為10010011001001000111100000100010101100001101010000
哪個是 $ M’ $ 因此攻擊者將獲得 50k 美元。