Key-Exchange
協議的標題和所需步驟的說明
安全第三方 R 生成密鑰 $ k_1 $ 與 A 和 $ k_2 $ 與 B 交流。
- A 請求與 B 通信的密鑰。
- R 生成 k un 並加密: $ E_{k_1}(k) = s1;\ \ E_{k_2}(k) = s_2; \ \ E_{k_2}(p_A) = s_A $ R發送給A $ \ s_1 $ 和 $ [s_2, s_A] $ .
- A破譯他的密鑰: $ E^{−1}_{k_1}(s_1) = k $
- 並發送給 B $ [s_2,s_A] $
- B破譯: $ E^{−1}{k_2}(s_2) \ \ $ (收到密鑰); $ E^{−1}{k_2}(s_A) = p_A $ . (B 知道他正在與 A 通信)。
首先,我想知道協議的標題。二、為什麼第三方不能發塊 $ [s_2, s_A] $ 馬上到B,為什麼A是發送它的那個?
該協議至少在最初實現時被稱為Kerberos (我相信該協議從那以後得到了顯著擴展)。
在 Kerberos 中,元組 $ [s_2, s_A] $ 受保護 $ k_2 $ (R 和 B 都知道);因此沒有其他人可以修改它。
這個元組本質上告訴 B “A 想和你說話,並且使用 key $ k $ 這樣做”。第三方可以將這個元組直接轉發給 B,但這並沒有給他帶來優勢;畢竟,A 確實想和 B 交談。這個第三方可以阻止 A 接收來自 R 的消息(所以 A 不學習 $ k $ ),但是第三方不學習 $ k $ 要麼,所以 B 得到一個永遠不會使用的密鑰。
可能在原始協議中,R 發送給 A 的元組被加密 $ k_1 $ ; 這顯然可以防止這種攻擊 - 已經有一段時間了,所以我忘記了細節。即使沒有,這種攻擊除了阻止 A 與 B 對話外,也沒有任何效果,而可以任意修改或刪除消息的對手可以輕鬆做到這一點。