目錄
1. 引言
網站帳戶同密碼洩漏嘅報告持續不斷,突顯出資訊同密碼安全嘅極端重要性。雖然網站漏洞係一個因素,但密碼本身嘅固有安全性至關重要。常見嘅不安全密碼做法包括基於關鍵字嘅密碼、使用流行短語、包含個人資訊,以及重用密碼。人工智能同大型語言模型嘅興起,進一步增強咗攻擊者更有效咁猜測密碼嘅能力。
本研究提出一種基於密碼學安全偽隨機數產生器(PRNG)嘅安全密碼產生器。佢使用密鑰雜湊訊息鑑別碼(HMAC)、基於密碼嘅MAC(CMAC)或KECCAK MAC(KMAC)來構建PRNG,以產生安全隨機數,然後用嚟生成密碼。所產生嘅隨機性會通過熵測試同獨立同分佈(IID)測試,根據NIST SP 800-90B標準進行驗證。
2. 文獻回顧
2.1. 基於線性同餘產生器嘅PRNG
線性同餘產生器(LCG)喺C同Java等語言中常用,佢通過遞迴關係產生序列:$f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$,由$k$作為種子。佢哋係不安全嘅,因為狀態可以被逆轉:$f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m)$,從而暴露種子同整個序列。
2.2. 安全偽隨機數產生器
密碼學PRNG嘅設計目標係即使部分輸出已知,亦難以預測。
2.2.1. 基於HMAC嘅PRNG
安全性依賴於雜湊函數(例如SHA2、SHA3)嘅單向特性。對於密鑰$k$同訊息$M$,HMAC計算為:$r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$。使用計數器模式來產生多個區塊,以獲得更長嘅輸出。
2.2.2. 基於CMAC嘅PRNG
安全性基於進階加密標準(AES)。佢以密碼區塊鏈結(CBC)模式運作。處理填充後嘅訊息所得嘅最終密文區塊就係MAC/輸出:$r_{cmac}(k, Split(M))$。
2.2.3. 基於KMAC嘅PRNG
基於SHA-3(KECCAK)雜湊函數,KMAC提供可變長度輸出,被視為後量子密碼學嘅有力候選者。
2.3. 隨機性驗證方法
NIST SP 800-90B提供咗評估熵源嘅方法。熵估計量化不可預測性(最小熵)。IID測試檢查數據是否獨立同分佈,呢個係許多統計測試嘅關鍵假設。通過呢啲測試可以驗證隨機源嘅質量。
3. 提出嘅安全密碼產生器
系統架構包括:1) 用戶可選擇性提供待雜湊訊息(TBHM)。2) 一個密碼學PRNG(基於HMAC/CMAC/KMAC)使用TBHM(同一個密鑰)產生高熵位元流。3) 將呢個位元流映射到用戶定義嘅字符集(例如字母數字+符號)上,以指定長度產生最終密碼。通過比較密碼嘅搜索空間與AES-128同AES-256嘅密鑰強度來分析安全性。
4. 實驗與結果
4.1. 實驗設置
實現咗三種PRNG類型(HMAC-SHA256、CMAC-AES-128、KMAC256)。產生咗大量隨機位元序列用於測試。
4.2. 隨機性驗證結果
關鍵結果:所有三種提出嘅PRNG構造(HMAC、CMAC、KMAC)都成功通過咗根據NIST SP 800-90B嘅熵驗證同IID測試。呢個結果從實證上證明,所產生嘅數字具有足夠嘅隨機性同統計質量,適用於密碼學密碼生成。
4.3. 性能分析
評估咗計算效率。雖然所有方法都可行,但KMAC同HMAC可能因平台而異,表現出唔同嘅性能特徵;而基於AES嘅CMAC喺具有AES加速嘅硬件上通常更快。
5. 結論與未來工作
本文提出咗一個基於密碼學PRNG(HMAC、CMAC、KMAC)構建嘅安全密碼產生器框架。所產生嘅隨機性使用NIST標準進行咗驗證,確認其適用性。未來工作包括將產生器整合到瀏覽器擴展或密碼管理器中,探索其喺生成密碼以外嘅密碼學密鑰方面嘅應用,以及測試其抵禦新興基於AI嘅猜測攻擊嘅韌性。
6. 原創分析與專家評論
核心見解:本文並非發明一種新嘅密碼算法;佢係一個務實、符合標準嘅工程解決方案,針對一個普遍存在嘅人為問題:弱密碼創建。其核心價值在於正確應用已確立嘅密碼學原語(HMAC、CMAC、KMAC)作為NIST推薦嘅PRNG,並嚴格驗證輸出——呢一步喺「DIY」密碼產生器中經常被忽略。喺一個AI可以模擬個人數據模式嘅時代(正如PassGAN等AI驅動密碼猜測研究所見),將密碼隨機性嘅來源從人腦轉移到經過驗證嘅密碼學算法,係一個不容妥協嘅安全升級。
邏輯流程:邏輯合理,遵循經典嘅應用密碼學模板:1) 識別漏洞(人類生成嘅弱密碼)。2) 選擇合適、經過審查嘅密碼學工具(NIST SP 800-108 PRNG)。3) 構建系統(將PRNG輸出映射到字符集)。4) 驗證核心組件(通過NIST SP 800-90B驗證PRNG輸出)。呢種方法反映咗安全系統設計嘅最佳實踐,類似於現代庫(如`libsodium`)優先考慮穩健、默認安全嘅原語。
優點與缺點:
優點:嚴格嘅NIST驗證係本文最強嘅一環,提供咗實證可信度。使用KMAC符合後量子準備。可選嘅用戶輸入(TBHM)係一個聰明嘅功能,允許喺需要時確定性地重新生成密碼,同時如果PRNG穩健,則唔會損害安全性。
缺點:本文嘅主要局限在於其作為概念驗證嘅範圍。佢缺乏對現實世界實施嘅分析,未能解決側信道攻擊(映射過程中嘅計時攻擊)、PRNG嘅安全密鑰管理,以及與現有密碼策略嘅整合挑戰。此外,雖然佢比較咗密碼強度與AES,但並未深入分析字符集映射過程中嘅熵損失,呢個對於短密碼係一個關鍵細節。
可行建議:對於安全從業者嚟講,結論好清晰:停止讓用戶或簡單嘅隨機函數選擇密碼。實施類似呢種嘅後端密碼產生器,用於「忘記密碼」重置或用戶初始設置。PRNG嘅具體選擇可以定制:喺常見伺服器上為咗速度使用CMAC-AES,為咗長期量子顧慮使用KMAC。至關重要嘅係,任何採用都必須包括以管理任何密碼學密鑰嘅同等嚴謹度來管理PRNG嘅種子/密鑰。呢項工作應該被整合到像OWASP嘅身份驗證備忘單等框架中,作為安全密碼生成嘅推薦模式。
7. 技術細節與數學公式
安全性取決於PRNG公式。對於HMAC:
$r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$
其中$h$係像SHA-256嘅雜湊函數,$ipad/opad$係常數,$k$係密鑰。對於密碼生成,將一個計數器$i$合併到$M_i$中以產生多個區塊:$M_i = i || \text{Label} || 0x00 || \text{Context} || L$。然後將輸出位元轉換為整數索引,從大小為$N$嘅字符集$C$中選擇字符:$\text{index} = \text{random_bits} \mod N$。
8. 分析框架與案例示例
場景:一個網絡服務需要為新用戶帳戶生成一個強嘅12字符密碼。
框架應用:
1. 定義參數: 字符集$C$ = 94個可打印ASCII字符。長度$L=12$。PRNG選擇:HMAC-SHA256。
2. 產生隨機性: 收集熵作為種子$k$。使用TBHM = "serviceX_user123"。以計數器模式運行基於HMAC嘅PRNG,產生$\lceil log_2(94^{12}) \rceil \approx 79$位元嘅熵。
3. 映射到密碼: 使用79位元流生成12個索引,每個索引從$C$中選擇一個字符。
4. 驗證檢查: 生成密碼嘅熵約為78.5位元,相當於約80位元嘅對稱密鑰,明顯強於任何人類選擇嘅密碼。
無代碼工作流程: 呢個過程可以封裝喺伺服器端API調用中,完全將密碼學細節對最終用戶隱藏。
9. 未來應用與方向
1. 密碼管理器核心引擎: 將此產生器整合為開源同商業密碼管理器(例如Bitwarden、1Password)中嘅默認密碼創建引擎。
2. 後量子過渡: 基於KMAC嘅生成係一種現成嘅解決方案,用於抗量子密碼同令牌生成,正如NIST後量子密碼學項目所推薦。
3. 物聯網與嵌入式安全: 輕量級CMAC-AES版本可以在受限環境中生成唯一設備密碼同API密鑰。
4. 區塊鏈與Web3: 使用可驗證嘅隨機源為加密貨幣錢包生成安全、隨機嘅助記詞種子。
5. 標準化: 將此方法論提議畀像IETF或FIDO等標準機構,以納入下一代身份驗證協議。
10. 參考文獻
- M. Bishop, "Computer Security: Art and Science", Addison-Wesley, 2018.
- NIST, "Special Publication 800-63B: Digital Identity Guidelines", 2017.
- M. L. Mazurek et al., "Measuring Password Guessability for an Entire University", IEEE S&P, 2013.
- B. Ur et al., "How Does Your Password Measure Up? The Effect of Strength Meters on Password Creation", USENIX Security, 2012.
- NIST, "Special Publication 800-108: Recommendation for Key Derivation Using Pseudorandom Functions", Rev. 1, 2022.
- NIST, "Special Publication 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation", 2018.
- J. Kelsey, B. Schneier, D. Wagner, "Secure Applications of Low-Entropy Keys", ISW, 1997.
- FIPS PUB 202, "SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions", 2015.
- B. Hitaj et al., "PassGAN: A Deep Learning Approach for Password Guessing", NeurIPS Workshop, 2017.
- D. J. Bernstein et al., "The Security Impact of a New Cryptographic Random Number Generator", 2020.