密鑰替換攻擊的惡意潛力是什麼?
密鑰替換攻擊背後的想法是什麼?
我們從給定的一對消息開始 $ m $ 和簽名 $ s(m) $ . 任何擁有公鑰的人都可以驗證簽名 $ y $ :
$ v(m, s, y)= ok $
現在,通過一些數學魔法(細節暫時不相關),攻擊者應該能夠生成一個新的公鑰 $ \bar y $ , 以便
$ v(m, s, \bar y)=ok $
但是,我無法辨識該攻擊的潛在惡意:收件人,獲取 $ (m, s) $ 仍將使用原始公鑰 $ y $ , 驗證 $ (m, s, y) $ ,所以攻擊者只要擁有這樣的密鑰就會受到損害 $ \bar y $ ?
事實上,這次攻擊似乎毫無意義。但一種潛在的惡意是因為 $ \bar y $ 允許成功驗證真實消息 $ (m,s) $ ,驗證者可能會信任它並使用 $ \bar y $ 代替 $ y $ 為了驗證其他消息。如果我們假設這一點,可能會出現實際問題:
- 攻擊者可以在一定程度上發現 $ (\bar m,\bar s) $ (和 $ \bar m\ne m $ 和/或 $ \bar s\ne s $ (取決於簽名系統安全性的定義),以便 $ v(\bar m,\bar s,\bar y)=\text{ok} $ ; $ (\bar m,\bar s) $ 將被驗證者接受,實際上是一種實際的偽造。
- 合法的驗證者交給了一些真正的 $ (m’,s’) $ 對(這樣 $ v(m’,s’,y)=\text{ok} $ , 和 $ m’\ne m $ ) 發現 $ v(m’,s’,\bar y)\ne\text{ok} $ ,並拒絕有效消息;這實際上是拒絕服務。
在許多可能受到問題攻擊的簽名系統中,1 或/和 2 是可能的。
Elias建議,如果製作一個 $ \bar y $ 在問題中是可能的,然後簽名方案失去不可否認性。這是一個有趣的觀點,但我的觀點是不可否認的定義是當事人之間的約定,如果允許展示 $ \bar y\ne y $ 這樣 $ v(m,s,\bar y)=\text{ok} $ 成為停止對與公鑰匹配的私鑰的合法持有者進行記賬的正當理由 $ y $ 負責簽署 $ m $ 每當 $ (m,s) $ 變得公開可用,並且 $ v(m,s,y)=\text{ok} $ .
兩個技術原因是,在不破壞簽名方案安全性的既定定義的情況下,可能是 $ \bar y $ 已生產
- 從 $ y $ 和/或 $ s $ , 由任何人;
- 或者另外知道私鑰 $ y $ ,例如,合法的密鑰持有者想要拒絕他/她對 $ m $ .
因此,我們是否允許 Elias 提出的建議,我們需要使用具有比我們更強大和更複雜的安全定義的簽名方案,除了阻止答案第一部分中解釋的內容之外,我無法辨別出任何好處。