1. 引言
本文探討了密碼安全論述中的一個根本性缺口:缺乏對「密碼強度」的嚴謹定義。文章認為,目前的方法往往是經驗性的,未能考慮攻擊者的策略。作者提出了一種基於潛在猜測攻擊效率的規範化衡量標準,將焦點從密碼特徵轉移到攻擊特徵。
2. 現有技術水平
本文批評當前的密碼安全狀況「如同中世紀醫學般黯淡」,引用了布魯斯·施奈爾的觀察,指出許多建議是基於軼事而非分析。文章強調,正如近期文獻[3]所指出的,目前缺乏一種令人滿意的方法來衡量密碼資料集的強度。常見的密碼強度檢測器被認為只是在衡量「模仿性」,而非對抗智能攻擊的真正抵抗力。
3. 核心觀點與邏輯脈絡
核心觀點: 密碼強度並非一串字元的固有屬性;它是一種關係屬性,完全由攻擊者的猜測策略所定義。防禦者的目標不是在真空環境中創造一個「強密碼」,而是創造一個在理性對手可能採用的可行攻擊策略集合面前表現不佳的密碼。
邏輯脈絡: 論證以形式化的精確性展開:
- 將猜測攻擊定義為一個有序列表(字典)的候選密碼。
- 證明任何兩個攻擊之間的差異僅在於此列表的順序。
- 得出結論:密碼對抗特定攻擊的強度,就是它在該攻擊字典中的位置。
- 由於防禦者無法知道確切的攻擊順序,他們必須考慮一個集合的合理攻擊。
- 因此,防禦者對強度的衡量標準,是密碼在此攻擊集合中位置的期望值。
4. 優點與缺陷
優點:
- 概念嚴謹性: 提供了第一個以攻擊為中心的形式化密碼強度定義,超越了啟發式的經驗法則。
- 賽局理論基礎: 正確地將密碼選擇框定為一種策略互動,與《安全賽局理論》等現代安全分析保持一致。
- 揭露有缺陷的啟發法: 有效地揭穿了那些以合規為導向、卻產生可預測模式的政策(例如「必須包含數字和符號」)。
缺陷與限制:
- 計算不可行性: 核心指標——計算所有合理攻擊中的期望排名——對於大型密碼空間在計算上是不可行的。這是一個理論上的理想,而非即時強度檢測器的實用工具。
- 忽略關鍵現實: 該模型假設一種「離線猜測」攻擊,嘗試次數無限制,忽略了速率限制、帳戶鎖定和線上偵測系統,這些都會從根本上改變攻擊者的策略。
- 未提供攻擊集合的指引: 本文的關鍵躍進——定義「可行攻擊集合」——並未充分說明。防禦者實際上應如何建模這個集合?這正是問題的核心。
5. 可操作的洞見
對於安全從業者而言,本文要求進行典範轉移:
- 停止衡量模仿性: 摒棄那些只檢查字元類別的密碼檢測器。它們訓練使用者創造對檢測器而言強度高的密碼,而非對抗攻擊者。
- 以分佈而非規則思考: 與其強制要求符號,不如鼓勵使用者從一個高熵的分佈中選擇密碼,該分佈不太可能與常見的攻擊字典相符(例如使用骰子密碼法或密碼管理器)。
- 為你的對手建模: 對於關鍵系統,進行威脅建模以定義合理的攻擊策略(例如暴力破解、基於過去外洩資料的字典攻擊、針對性個人資訊攻擊)。調整密碼政策以破壞那些特定策略。
- 擁抱不確定性: 承認完美的強度衡量是不可能的。目標是增加攻擊者的成本和不确定性,而非獲得完美分數。
6. 技術框架
6.1 形式化攻擊模型
本文將猜測攻擊 $A$ 建模為一個有序序列(字典)$D_A = (w_1, w_2, w_3, ...)$ 的候選密碼,其中 $w_i$ 是來自有限字母表的一個單字。攻擊者按照此順序嘗試密碼直到成功。該攻擊是「離線的」,意味著介面提供即時的成功/失敗回饋且沒有限制。
6.2 數學公式化
令 $p$ 為一個特定密碼。對於給定的攻擊 $A$,$p$ 的強度定義為其在 $D_A$ 中的排名: $$S_A(p) = \text{rank}_A(p)$$ 其中 $\text{rank}_A(p) = i$ 若 $p = w_i \in D_A$。
由於防禦者不知道確切的 $A$,他們考慮一個可能的攻擊集合 $\mathcal{A}$。那麼,規範化密碼強度 $C(p)$ 就是期望排名: $$C(p) = \mathbb{E}_{A \sim \mathcal{A}}[\,S_A(p)\,] = \sum_{A \in \mathcal{A}} P(A) \cdot \text{rank}_A(p)$$ 其中 $P(A)$ 是賦予集合 $\mathcal{A}$ 中攻擊 $A$ 的機率(或可能性)。這個公式直接將強度與防禦者對攻擊者策略的信念聯繫起來。
7. 實驗結果與分析
概念性實驗與啟示: 雖然本文本身並未呈現來自軟體執行的實證數據,但它透過一個思想實驗,邏輯性地證明了其模型的必要性。它顯示,兩個密碼「Password123!」和「xQ37!z9pLm」,在一個僅檢查長度和字元多樣性的簡單檢測器中可能獲得相似的分數。然而,「Password123!」在暴力破解攻擊排序中會有非常低的排名(高強度),但在優先考慮常見基礎單字和模式的字典攻擊中,則會有極高的排名(低強度)。規範化衡量標準 $C(p)$ 透過對兩種攻擊類型取平均,將揭示「Password123!」相對於隨機字串的真正弱點。
圖表解讀(概念性): 想像一個長條圖,比較三種密碼評估方法對一組密碼樣本的結果:
- 方法 A(簡單檢測器): 顯示「Password123!」和「xQ37!z9pLm」強度相同。
- 方法 B(字典攻擊排名): 顯示「Password123!」非常弱(排名數字低),而「xQ37!z9pLm」很強(排名數字高)。
- 方法 C(規範化衡量標準 $C(p)$): 顯示加權平均值。「Password123!」的分數因其在字典攻擊中的高機率而暴跌,而隨機字串則保持高分。此圖表將視覺化地論證 $C(p)$ 與現實世界的可破解性有更好的相關性。
8. 分析框架:個案研究
情境: 一家公司的密碼政策要求:「至少12個字元,包含大寫字母、小寫字母、一個數字和一個符號。」
傳統分析: 像「Summer2024!$」這樣的密碼符合政策,並在典型檢測器中獲得「強」評級。
規範化衡量標準分析:
- 定義攻擊集合 $\mathcal{A}$:
- $A_1$:使用常見單字(「Summer」)、季節、年份和常見符號後綴(「!$」)的字典攻擊。機率:高(0.7)。
- $A_2$:使用公司名稱、員工資訊的針對性攻擊。機率:對於批量攻擊而言低(0.1)。
- $A_3$:對12字元空間的完整暴力破解。機率:極低(0.001)。
- $A_4$:使用來自類似公司先前外洩密碼的攻擊。機率:中等(0.199)。
- 估算排名:
- $\text{rank}_{A1}("Summer2024!$")$:非常低(例如,在前1000萬名內)。
- $\text{rank}_{A2}(p)$:如果是針對性的,可能很低。
- $\text{rank}_{A3}(p)$:非常高(約 $95^{12}$)。
- $\text{rank}_{A4}(p)$:如果該模式很常見,可能很低。
- 計算 $C(p)$: 期望排名主要由高機率的字典攻擊 $A_1$ 主導,導致一個低的規範化強度分數,暴露了該政策的失敗。
9. 未來應用與方向
- 自適應密碼政策: 系統可以使用規範化框架來建立動態政策。取代靜態規則,後端服務可以根據當前威脅情報(例如新外洩的字典)估算 $\mathcal{A}$,並拒絕在該更新模型中 $C(p)$ 分數低的密碼。
- 密碼管理器整合: 密碼管理器是實現此功能的理想工具。它們可以維護一個本地的 $\mathcal{A}$ 模型(基於全球外洩資料和啟發式規則),並用它來生成能最大化 $C(p)$ 的密碼。這將理論模型轉變為一種實用、對使用者透明的安全增強措施。
- 形式化安全證明: 該模型為在學術文獻中形式化證明密碼生成演算法的安全屬性提供了基礎,類似於分析加密演算法的方式。
- 混合威脅模型: 未來的工作必須將規範化衡量標準與速率限制等現實約束條件整合。攻擊集合 $\mathcal{A}$ 將不僅包括密碼排序,還包括跨時間和帳戶分佈猜測的策略。
- 用於 $\mathcal{A}$ 的機器學習: 主要的開放性問題——定義攻擊集合——可以透過機器學習來解決。系統可以根據實際的破解嘗試和外洩密碼來訓練模型,持續學習和更新策略上的機率分佈 $P(A)$,為攻擊者創造一個移動的目標。
10. 參考文獻
- Panferov, E. (2016). A Canonical Password Strength Measure. arXiv:1505.05090v4 [cs.CR].
- Schneier, B. (2007). Schneier on Security. Wiley.
- Bonneau, J. (2012). The Science of Guessing: Analyzing an Anonymized Corpus of 70 Million Passwords. IEEE Symposium on Security and Privacy.
- Shannon, C. E. (1948). A Mathematical Theory of Communication. The Bell System Technical Journal.
- Florêncio, D., & Herley, C. (2007). A Large-Scale Study of Web Password Habits. Proceedings of the 16th International Conference on World Wide Web.
- Ur, B., et al. (2015). Do Users' Perceptions of Password Security Match Reality? Proceedings of the 2015 CHI Conference on Human Factors in Computing Systems.
- NIST Special Publication 800-63B (2017). Digital Identity Guidelines: Authentication and Lifecycle Management.
- Wang, D., et al. (2016). The Tangled Web of Password Reuse. NDSS Symposium 2016.