Authentication
為什麼我應該在基於 PKC 的身份驗證上使用 X.509 身份驗證?
所以我有兩個例子,我不明白為什麼會選擇一個而不是另一個。
範例 1. A 發送
EPUb[r1]
給 B(要求 B 證明知道PRb
) B 回复r1, EPUa[r2]
(要求 A 證明知道PRa
) A 回復r2
以證明它範例 2. A 發送
r1
給 B(要求 B 證明知道PRb
) B 回复r2, EPRb[h(r1)], CertB
(向 B 提供簽名和證書以及自己的挑戰) A 回复EPRa[h(r2)], CertA
為什麼範例 2 比範例 1 更好?除了範例 2 修復之外,我在範例 1 中沒有看到任何安全漏洞嗎?
我正在為明天的密碼學考試而學習,被這個例子難住了。快速響應將不勝感激。
從這兩個例子中我可以了解到。範例 2,您向對方提供了您的公鑰,並且您在驗證證書後知道來源是可信的。在通信時,您可以使用彼此的公鑰進行加密,或者您可以建立一個對稱密鑰來消除中間人攻擊的可能性。
在範例 1 中,我所能想到的是,如果沒有證書,他們無法確定另一個實體就是他們聲稱的那個人,但是再次要知道彼此的公鑰,他們之間必須存在某種形式的信任。範例 2 是否更好,僅僅是因為您可以更加確定另一個實體就是他們聲稱的那個人?
在實際通信中,您通常不能可靠地知道彼此的公鑰。X.509 證書提供了一種驗證公鑰的方法(因為證書由另一個密鑰簽名,並且該密鑰可以在由第三個密鑰簽名的證書中,依此類推,直到我們得到另一個人的公鑰確實信任)。當雙方已經通過某種形式的帶外通信知道彼此的公鑰時,證書是不必要的。