Symmetric

在(簡化的)Needham-Schroeder 協議上,nonce 可以完全隨機嗎?

  • November 12, 2021

從我目前所讀到的內容來看,nonce 是隨機的一次性值,除了密文之外,它們還以明文形式發送,以驗證發送者/接收者的身份。理論上,如果 nonce 是隨機的,攻擊者 E 可以攔截 Alice 指定給 Bob 的消息,並通過生成隨機 nonce 冒充 Bob,而無需與 Bob 通信。

因此,如果請求-響應協議是:

A → B:n A

B → A: {n A , n B } K

A → B : n B

nA,nB 是隨機數,K 是 Alice 和 Bob 之間的對稱共享密鑰。

  1. 攻擊者可以通過改變隨機數來對 Alice 進行反射攻擊嗎?這樣 A 被認為 B 正在與 A 發起通信而被愚弄,然後她將共享用密鑰加密的兩個 nonce,

在這種情況下(修改協議的第二行):

B → A: {n A , n E } K

導致已知明文攻擊。在這種情況下,攻擊者對明文和密文都有了解,因此他可以推導出密鑰。

  1. 協議中的這個缺陷可以通過以下方式修復:
  • 將 k 應用於隨機數?
  • 在第二個密文中包括 B(接收者)的標識符?

修復提案

A → B: {n A } k

B → A: {B, n A } k

A → B : {n B } k

導致已知明文攻擊。在這種情況下,攻擊者對明文和密文都有了解,因此他可以推導出密鑰。

這對於任何現代密碼設計都是不可行的。密碼的設計使得即使攻擊者可以訪問大量匹配的明文和密文,密鑰仍然無法恢復。

如果 Alice 允許與 Bob 的會話(她既是發送者又是接收者)交錯並為兩者使用相同的密鑰,那麼您的協議就會受到反射攻擊。它是這樣的:

  • 會話 1:Alice 生成並發送 $ n_A $ 給鮑勃,但被馬洛里截獲
  • 第 2 節:馬洛里反映 $ n_A $ 回到假裝是鮑勃的愛麗絲
  • 會話 2:Alice 生成 $ n_B $ 並發送 $ (n_A,n_B)_K $ 給鮑勃,但被馬洛里截獲
  • 第 1 節:馬洛里反映 $ (n_A,n_B)_K $ 回到愛麗絲
  • 會話 1:Alice 解密 $ (n_A,n_B)_K $ 並檢查 $ n_A $ 是她在會話 1 開始時發送的那個。如果是這樣,她發送 $ n_B $ 給鮑勃,但它被馬洛里攔截了。
  • 第 2 節:馬洛里反映 $ n_B $ 回到愛麗絲。

在會話 2 中,Alice 收到回 $ n_B $ 她預期的值,並且在兩個會話中,協議都使她相信她正在與 Bob 通信。加密初始隨機數不會阻止此攻擊。

引用自:https://crypto.stackexchange.com/questions/96074