1. 緒論
儘管存在眾所周知的安全性挑戰,基於密碼的驗證仍是網路身分驗證的主流方法。使用者在建立和記憶強度足夠且獨特的密碼時面臨認知負擔,導致密碼重複使用和建立弱憑證。密碼管理工具承諾透過生成、儲存和自動填入密碼來減輕此負擔。然而,其安全性在先前的研究中備受質疑。本文在重大漏洞被揭露五年後,對十三款熱門的瀏覽器密碼管理工具進行了更新且全面的安全性評估。本研究涵蓋了密碼管理工具的完整生命週期:生成、儲存和自動填入。
2. 研究方法與範圍
本次評估涵蓋了十三款密碼管理工具,包括五款瀏覽器擴充功能(例如 LastPass、1Password)、六款內建瀏覽器管理工具(例如 Chrome、Firefox)以及兩款桌面客戶端以供比較。研究方法包括:
- 生成並分析包含1.47億組密碼的語料庫,以評估其隨機性和強度。
- 複製並擴展先前對密碼儲存安全性的評估。
- 測試自動填入機制是否存在點擊劫持和跨網站指令碼攻擊等漏洞。
- 評估預設安全性設定和加密實務。
3. 密碼生成分析
這是首次對密碼管理工具中的密碼生成演算法進行全面分析。
3.1. 字元分佈與隨機性
對1.47億組密碼語料庫的分析顯示,生成的密碼中存在多個字元分佈不隨機的實例。部分管理工具在字元選擇上表現出偏差,偏離了均勻隨機分佈。對於一個真正的隨機生成器,從大小為 $N$ 的集合中選擇任何字元的機率應為 $P(char) = \frac{1}{N}$。偏離此值表示演算法存在缺陷。
3.2. 猜測攻擊之脆弱性
最關鍵的發現是,一部分生成的密碼容易受到暴力破解攻擊:
- 線上猜測: 發現長度少於10個字元的密碼,在線上、速率受限的攻擊下顯得脆弱。
- 離線猜測: 長度少於18個字元的密碼,在資料庫外洩後,容易受到攻擊者無限次嘗試的離線破解攻擊。
這與密碼管理工具創造強密碼的核心承諾相矛盾。
4. 密碼儲存安全性
雖然與五年前的評估相比有所改進,但重大問題依然存在。
4.1. 加密與詮釋資料處理
發現數款密碼管理工具以未加密的形式儲存詮釋資料。這包括網站網址、使用者名稱和時間戳記。雖然密碼本身可能被加密,但這些詮釋資料為攻擊者提供了有價值的線索,揭示了使用者的線上帳戶和習慣,可用於針對性的網路釣魚或社交工程攻擊。
4.2. 不安全的預設設定
某些管理工具具有不安全的預設設定,例如預設在所有網站啟用自動填入,或使用較弱的加密協定。這將安全性負擔轉嫁給使用者去發現並更改這些設定,而大多數使用者並不會這麼做。
5. 自動填入機制漏洞
為便利性而設計的自動填入功能,引入了顯著的攻擊面。
5.1. 點擊劫持與介面偽裝
多款密碼管理工具容易受到點擊劫持攻擊。攻擊者可以建立一個包含隱藏圖層的惡意網頁,誘騙使用者點擊密碼管理工具的自動填入對話框,從而將憑證洩露給攻擊者的網站,而非預期的合法網站。
5.2. 跨網站指令碼攻擊風險
若自動填入機制在未經嚴格來源檢查的情況下,將憑證注入網頁表單,則可能透過其他受信任網站上的跨網站指令碼漏洞被利用。如果一個良性網站存在跨網站指令碼缺陷,注入的指令碼可能觸發密碼管理工具將憑證填入攻擊者控制的隱藏表單欄位。
6. 結果與比較分析
語料庫大小
1.47億
已分析密碼數
測試管理工具數
13
瀏覽器與桌面版
關鍵缺陷
<18字元
易受離線破解
關鍵發現: 與先前研究(例如 Li 等人,2014;Silver 等人,2013)相比,整體狀況有所改善,但多個供應商仍存在根本性的安全缺陷。沒有任何一款密碼管理工具在評估的三個階段(生成、儲存、自動填入)中完美無缺。內建瀏覽器管理工具和專用擴充功能都表現出不同的漏洞模式。
7. 建議與未來方向
本文總結了可行的建議:
- 對使用者: 避免使用已知存在生成缺陷或不安全自動填入預設設定的密碼管理工具。優先選擇允許對自動填入行為進行細粒度控制的管理工具。
- 對開發者: 為密碼生成實施密碼學安全的亂數生成器。加密所有詮釋資料。為自動填入實施嚴格的來源檢查和使用者同意機制(例如,要求點擊一個無法被介面偽裝的元素)。
- 對研究人員: 探索整合形式化方法來驗證自動填入邏輯,以及應用機器學習來偵測指示攻擊的異常自動填入請求。
8. 原創分析與專家評論
核心洞察: Oesch 和 Ruoti 的研究提供了一個發人深省的現實檢驗:我們信任用來整合數位鑰匙的安全工具,其本身的建構基礎卻驚人地不穩固。在重大缺陷被揭露五年後,業界的進展充其量是漸進式的,未能解決所有三個核心支柱——生成、儲存和自動填入——中的系統性問題。這不僅僅是一份錯誤報告;這是對一個關鍵安全領域自滿心態的控訴。
邏輯脈絡: 本文的力量在於其整體生命週期的方法。它正確地指出,一條鏈的強度取決於其最弱的一環。在生成中發現非隨機性($P(char) \neq \frac{1}{N}$)從根本上破壞了整個前提,甚至在考慮儲存或自動填入之前就已如此。複製過去的儲存/自動填入測試則顯示出一種模式:雖然表面的漏洞可能被修補,但架構性缺陷(如未加密的詮釋資料或過於寬鬆的自動填入)依然存在。這種從有缺陷的創建到不安全的處理再到有風險的部署的邏輯進展,描繪了一幅完整且令人震驚的圖景。
優點與不足: 本研究的主要優勢在於其對密碼生成採取了大量、數據驅動的方法——這是文獻中的首次。1.47億組密碼的語料庫提供了演算法弱點的無可辯駁的統計證據,超越了理論上的擔憂。然而,該分析存在一個盲點:它主要將密碼管理工具視為孤立的客戶端。現代現實是雲端同步和行動應用程式。正如《IEEE安全與隱私研討會》關於雲端安全模型的論文集所指出的,威脅面已擴展到同步協定、伺服器端應用程式介面和行動作業系統整合,而本研究並未評估這些方面。此外,雖然它提到了「不安全的預設設定」,但並未量化安全設定的使用者採用率——這是現實世界風險的關鍵因素,正如《USENIX SOUPS》會議的可用性研究一致顯示,大多數使用者從不更改預設設定。
可行見解: 對於企業安全團隊而言,這項研究要求從「使用密碼管理工具」的籠統建議,轉向針對特定供應商、特定配置的指導方針。必須將具有弱生成器的管理工具列入黑名單。採購檢查清單現在必須包括驗證密碼學安全亂數生成器的使用和詮釋資料加密。對於開發者而言,前進的道路很明確:對自動填入採用「零信任」原則,要求每次填入操作都需獲得明確的、情境感知的使用者同意,類似於全球資訊網協會為強大的網路應用程式介面所倡導的權限模型。未來不在於試圖完美地保護一個過於寬鬆的自動填入,而在於設計一個最小權限、由使用者控制的機制。業界在五年內未能自我修正,這表明可能需要監管機構或標準制定組織(例如 NIST 或 FIDO Alliance)的介入,以強制執行這些數位身分守護者的基本安全要求。
9. 技術細節與實驗結果
密碼生成分析: 從字元集 $C$ 中生成長度為 $L$ 的密碼,其熵 $H$ 理想情況下應為 $H = L \cdot \log_2(|C|)$ 位元。研究發現,由於字元選擇存在偏差,導致有效熵較低的實例。例如,如果一個生成器意圖使用94個字元的集合,但某些字元出現的機率 $p \ll \frac{1}{94}$,則實際熵會降低:每個字元的 $H_{actual} = -\sum_{i=1}^{94} p_i \log_2(p_i)$,其中 $\sum p_i = 1$。
實驗圖表說明: 本研究中的一個關鍵圖表將繪製被破解密碼的累積比例與猜測嘗試次數(對數尺度)的關係,針對不同長度(例如8、12、16字元)的生成密碼。少於10個字元的密碼曲線將顯示急遽上升,表明在線上攻擊模擬(例如1000次猜測)下迅速被攻破。少於18個字元的密碼曲線將顯示在 $10^{10}$ 到 $10^{12}$ 次離線猜測後有顯著比例被破解,這使其處於擁有現代硬體的堅定攻擊者的能力範圍內,正如 Hashcat 和彩虹表等工具所基準測試的那樣。
10. 分析框架與個案研究
評估密碼管理工具安全性的框架:
- 生成完整性: 統計測試輸出的隨機性(例如 NIST STS、Dieharder 測試)並計算有效熵。驗證最小長度預設值是否符合當前 NIST 指南(>= 12 字元)。
- 儲存安全性: 檢查本地儲存(例如瀏覽器 IndexedDB、SQLite 檔案)和網路流量中的加密與明文資料。稽核加密函式庫和金鑰衍生函式(例如,是否使用具有足夠迭代次數的 PBKDF2,或 Argon2?)。
- 自動填入安全態勢: 映射自動填入觸發機制。透過建立重疊的 iframe 來測試介面偽裝。透過部署具有相似網域名稱的網站(例如 `example.com` 與 `example.com.evil.net`)來測試來源匹配邏輯。檢查自動填入是否需要使用者在不可預測的頁面元素上進行手勢操作。
個案研究 - 點擊劫持漏洞: 考慮管理工具 X,它在登入表單上方顯示一個自動填入按鈕。攻擊者建立一個惡意頁面,其中包含一個載入 `bank.com` 的隱藏 iframe。該 iframe 的位置使得管理工具 X 的自動填入按鈕出現在惡意頁面上一個隱藏的「提交給攻擊者」按鈕上方。使用者點擊以進行自動填入,但實際上點擊了攻擊者的按鈕,從而將 `bank.com` 的憑證發送到攻擊者的伺服器。這說明了該管理工具在點擊事件綁定和來源驗證方面的失敗。
11. 未來應用與研究展望
研究結果為未來工作開闢了幾個方向:
- 硬體支援的生成與儲存: 與可信平台模組或安全區域(例如 Apple 的安全元件)整合,用於生成隨機種子和儲存加密金鑰,將秘密移出純軟體領域。
- 情境感知、基於風險的自動填入: 利用機器學習分析頁面情境(文件物件模型結構、憑證細節、網站聲譽)以評估自動填入風險。高風險情境可能需要額外的驗證(生物特徵)或完全阻止自動填入。
- 標準化安全應用程式介面: 開發瀏覽器標準化、具權限的密碼管理工具應用程式介面(例如 `chrome.loginState` 應用程式介面的後繼者),以提供安全、沙盒化的憑證存取,並附帶明確的使用者同意提示,從而減少來自任意文件物件模型注入的攻擊面。
- 後量子密碼學準備: 研究將密碼管理工具加密遷移到能抵抗量子電腦攻擊的演算法,因為加密的保管庫是一個長期資產,對「現在收集,以後解密」的對手極具吸引力。
- 去中心化與自我託管模型: 探索使用去中心化身分協定(例如基於全球資訊網協會可驗證憑證),以減少對中央保管庫的依賴,分散風險並給予使用者更大的控制權。
12. 參考文獻
- Oesch, S., & Ruoti, S. (2020). That Was Then, This Is Now: A Security Evaluation of Password Generation, Storage, and Autofill in Browser-Based Password Managers. USENIX Security Symposium.
- Li, Z., He, W., Akhawe, D., & Song, D. (2014). The Emperor's New Password Manager: Security Analysis of Web-based Password Managers. IEEE Symposium on Security and Privacy (SP).
- Silver, D., Jana, S., Boneh, D., Chen, E., & Jackson, C. (2013). Password Managers: Attacks and Defenses. USENIX Security Symposium.
- National Institute of Standards and Technology (NIST). (2017). Digital Identity Guidelines (SP 800-63B).
- Stock, B., & Johns, M. (2013). Protecting the Intranet Against "JavaScript Malware" and Related Attacks. International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment (DIMVA).
- Herley, C. (2009). So Long, And No Thanks for the Externalities: The Rational Rejection of Security Advice by Users. Proceedings of the New Security Paradigms Workshop (NSPW).
- World Wide Web Consortium (W3C). (2021). Permissions Policy. https://www.w3.org/TR/permissions-policy-1/
- FIDO Alliance. (2022). FIDO2: WebAuthn & CTAP. https://fidoalliance.org/fido2/