Diffie-Hellman
在 STS 身份驗證協議中,為什麼要對簽名進行加密?
來自維基百科:
(1) Alice → Bob : g^x (2) Alice ← Bob : g^y, E_K(S_B(g^y, g^x)) (3) Alice → Bob : E_K(S_A(g^x, g^y))
我知道我應該缺少一些東西,但我想不出為什麼使用 E_K(…) 。簽名還不夠嗎?即使有 MITM,擁有 S_B(…) 或 S_A(…) 也不是很有用。我在這裡想念什麼?
簽名的加密
$ ; $ 對發起者 (Alice) 的身份保密,即使是針對主動攻擊者
$ ;;;; $ 和
$ ; $ 對被動竊聽者保密響應者 (Bob) 的身份
$ ;;;; $ 和
$ ; $ 提供一些針對身份錯誤綁定攻擊的保護,
$ ; $ 雖然沒有一個好的協議應該有的那麼多
.
我對密碼學不是很熟悉。當我閱讀上述問題和答案時,我不明白要點。即使有一些線上資源,我仍然不清楚,因為基本假設沒有明確說明。例如,當人們談論“協議 A 不安全……”時,他們談論的是“協議 A 的變體版本 1 不安全……”。但是,在另一種情況下,變體版本 2 可能是安全的。
最後,我了解了 STS 協議。為了幫助像我這樣未來困惑的人,這裡是我試圖澄清有關 STS 協議的問題和答案。
- 基本 DH 協議:您正在與哪個身份通信?
我從來沒想過這個問題!我一直假設他們都知道對方的身份。
我們有中間人攻擊(很容易找到並理解它是如何用於基本 DH 的)。
- 包括身份的基本 DH 協議:所以我們包括身份。
但是這些身份並沒有提供任何有用的東西。中間人攻擊仍然有效。
- 基本經過身份驗證的 DH 協議(有身份)(= 沒有加密的基本 STS 協議)
所以你的(修改後的)問題是:為什麼這個版本不安全?
- 基本認證的 DH 協議不安全
- 沒有身份的基本認證DH協議(你原來的問題,也是我之前問過自己的版本。)
***在假設(!!)***他們都知道對方的身份,並且公鑰綁定到正確的身份。然後只需使用簽名方案,協議就可以了。
- 站到站協議
- 專業人士
- Con’s(通常,我們假設公鑰綁定到正確的身份)
但我們總是會進一步追問,如果不滿足上述假設怎麼辦?
[