Passwords

為什麼 PAKE 理想功能在密碼不同時允許密鑰相同?

  • April 15, 2021

我對對稱 PAKE 應該提供的安全性的直覺來自登錄頁面的範例。使用者和伺服器都知道密碼(假設密碼未散列),該協議的目的是使用此事實對使用者和伺服器進行相互身份驗證,同時生成只有他們知道的會話密鑰並避免任何中間人攻擊。具體來說,我認為 PAKE 的關鍵屬性之一是,如果使用者和伺服器提供不同的密碼,他們將獲得不同的密鑰,因此如果不知道密碼的惡意方嘗試登錄將被阻止。但是,根據安全定義,情況似乎並非如此。

對稱 PAKE 的標準 UC 功能來自Canetti 等人。

對稱 PAKE 理想功能

通知(頂部的項目符號下 $ \textsf{NewKey} $ 查詢)如果其中一方被破壞,那麼攻擊者可以選擇會話密鑰 $ sk $ ,無論雙方是否提供相同的密碼。通過使用兩個查詢 $ \textsf{NewKey} $ ,攻擊者可以將雙方的會話密鑰設置為相同。為什麼要選擇定義來允許這樣做?如果密碼不同,則可以改為編寫功能,使攻擊者有權僅選擇受害方的密鑰,而不是誠實方的密鑰。

問題本質上是為什麼這條線

如果此記錄被洩露,或者 $ P_i $ 或者 $ P_j $ 已損壞,然後輸出 $ (sid, sk) $ 頂層 $ P_i $ .

用於理想的功能,而不是

如果這個記錄被洩露, $ P_i $ 已損壞,或 $ P_j $ 已損壞且有記錄 $ (P_j, P_i, pw’) $ 和 $ pw’ = pw $ ,然後輸出 $ (sid, sk) $ 頂層 $ P_i $ .

此更改將清楚地表明惡意使用者 $ P_j $ 無法成功執行此協議以登錄到誠實的伺服器 $ P_i $ 如果它猜錯了密碼,即使沒有中間人(MITM)攻擊。我仍然不知道目前理想功能的原因,但我知道當底層通信理想功能允許 MITM 攻擊時,它相當於提議的修改。特別是,我將假設 PAKE,就像我所知道的每個 PAKE 一樣,基於未經身份驗證的通道功能,允許攻擊者查看所有消息並任意修改它們。

讓 $ \newcommand\oldfunc{\mathcal{F}}\oldfunc $ 是 Canetti 等人的理想功能, $ \newcommand\newfunc{\mathcal{F}’}\newfunc $ 是修改後的理想函式,並且 $ \newcommand\commfunc{\mathcal{F}_{UA}}\commfunc $ 是未經身份驗證的通道功能。假設有一個協議 $ \newcommand\prot{\mathcal{P}}\prot $ 意識到 $ \oldfunc $ 在裡面 $ \commfunc $ -混合模型,使用模擬器 $ \newcommand\oldsim{\mathcal{S}}\oldsim $ . 然後是模擬器 $ \newcommand\newsim{\mathcal{S}’}\newsim $ 這表明 $ \prot $ 意識到 $ \newfunc $ 在裡面 $ \commfunc $ -混合模型。如果兩者 $ P_i $ 和 $ P_j $ 被破壞,或者兩者都沒有,那麼 $ \newfunc $ 行為相同 $ \oldfunc $ , 所以 $ \newsim $ 可以表現得完全一樣 $ \oldsim $ 在這種情況下。

如果有一個誠實的一方 $ \newcommand\honP{P_i}\honP $ 和一個腐敗的一方 $ \newcommand\corP{P_j}\corP $ , 然後 $ \newsim $ 想像一個場景 $ \honP $ 仍然存在,而且還有第二個誠實的聚會 $ \newcommand\imagP{P_k}\imagP $ 和一個中間人攻擊者 $ \newcommand\mitmP{P_j’}\mitmP $ . 具體來說, $ \imagP $ 輸入一個均勻隨機的字元串 $ {0,1}^\kappa $ 作為其密碼,以及 MITM 攻擊者 $ \mitmP $ 丟棄並忽略來自的所有消息 $ \imagP $ ,而是從 $ \honP $ 對最初的不誠實的一方 $ \corP $ 反之亦然。 $ \newsim $ 問 $ \oldsim $ 模擬此場景的環境視圖。然後它轉發 $ \oldsim $ 對理想功能的查詢,除了所有提到想像中的誠實方的查詢 $ \imagP $ 被忽略,在以下情況下替換為“錯誤猜測”的回复 $ \newcommand{\ucsymbol}[1]{\textsf{#1}}\ucsymbol{TestPwd} $ 查詢。

用於證明真實協議之間的不可區分性(在一個誠實方和一個惡意方的情況下) $ \prot $ 使用通信功能的 $ \commfunc $ ,以及理想的功能 $ \newfunc $ 用模擬器組成 $ \newsim $ ,考慮以下混合體,從現實世界開始。

  • 介紹一個新派對 $ \imagP $ 執行真正的協議 $ \honP $ 老實說,使用從 $ {0,1}^\kappa $ ,儘管它的所有消息都在兩個方向上都被阻止了。這是無法區分的,因為這個新政黨與任何事物都沒有互動。
  • 將這種互動重新解釋為執行 $ \prot $ 在兩個誠實的當事人之間,但有中間人攻擊者 $ \mitmP $ 阻止消息和行為如中所述 $ \newsim $ . 這只是視角的改變,實際上並沒有改變。
  • 使用安全性 $ \prot $ 作為一個實施 $ \oldfunc $ 當事人之間 $ \honP $ 和 $ \imagP $ 從真實協議切換到有模擬器的理想世界 $ \oldsim $ 由理想的功能組成 $ \oldfunc $ .
  • 交換理想的功能 $ \oldfunc $ 至 $ \newfunc $ . 這種變化是無法區分的,因為對理想功能的修改僅在一方受到損害的情況下,並且兩者都沒有 $ \honP $ 也不 $ \imagP $ 受到損害。
  • 刪除想像中的誠實黨 $ \imagP $ . 這消除了理想功能中的記錄,因此 $ \oldsim $ 的對應 $ \ucsymbol{TestPwd} $ 查詢應通過回复“錯誤猜測”來處理,類似地任何相應的 $ \ucsymbol{NewKey} $ 查詢應該被忽略。這是無法區分的,因為 $ \oldsim $ 猜測的機會微乎其微 $ \imagP $ 的密碼,因為它是隨機均勻採樣的,並且輸出 $ (\ucsymbol{NewKey}, sid, \imagP, sk) $ 查詢只去 $ \imagP $ ,正在被刪除。這可能會影響執行的唯一其他方式是在 $ (\ucsymbol{NewKey}, sid, \honP, sk) $ 查詢,但這又需要 $ \imagP $ 的密碼被猜測。
  • 重新標記 $ \imagP $ 和 $ \corP $ . 自從 $ \imagP $ 僅在何時提及 $ (\ucsymbol{NewSession}, sid, \honP, \imagP, pw, role) $ 被查詢 $ \honP $ ,這種變化純粹是誠實黨和理想功能內部的,無法區分。

在這些混合體之後,我們現在處於模擬器的理想世界 $ \newsim $ 由理想的功能組成 $ \newfunc $ 為了生成環境視圖。

該文件包含解釋為什麼這是可以的文本。我引用:

FKE 功能背後的主要思想如下:如果參與方都沒有損壞,那麼他們會收到相同的均勻分佈的會話密鑰,而攻擊者除了生成密鑰外,對密鑰一無所知。但是,如果其中一方被破壞,則攻擊者有權完全確定會話密鑰。這樣做的理由是密鑰交換的目的是使誠實的各方能夠生成外部對手未知的密鑰。如果參與方之一被破壞,那麼攻擊者將學習生成的密鑰(因為它是參與方之一),因此安全要求沒有意義。在這種情況下,允許對手確定密鑰不會造成任何損失。

但是,從你的問題來看,我想我明白你在擔心什麼。如果對手 $ P_k $ 可以設置其鍵的值 $ P_i $ 與 $ P_j $ 那麼它可能看起來就像一個中間人 $ P_i $ 和 $ P_j $ . 然而,這種情況並非如此。具體來說, $ P_i $ 知道它的關鍵是 $ P_k $ 是 $ sk $ ,並且在和這個key通信的時候,就知道通信是用 $ P_k $ 而不是 $ P_j $ (反之亦然)。什麼時候 $ P_i $ 想交流 $ P_j $ ,它有不同的會話密鑰。

歸根結底,這無關緊要的原因是對方的身份是與密鑰一起給出的。

還有一點需要注意:允許這樣做可能不是絕對必要的,但沒有理由禁止它。禁止它可能會排除完全沒問題的協議。因此,如果沒有理由不這樣做,最好允許它。

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