3.1. 隨機性評估框架
我們採用了統計測試來評估隨機性,包括頻率分析、熵值計算,以及對定義字元集內均勻分佈的測試。
儘管密碼認證存在眾所周知的安全挑戰,它仍是網路身分驗證的主流方法。使用者在管理多個高強度密碼時面臨認知負擔,導致密碼重複使用和建立弱密碼。密碼管理工具承諾透過生成、儲存和自動填入密碼來緩解這些問題。然而,其安全性已受到先前研究的質疑。本文針對十三款熱門的瀏覽器密碼管理工具,提出一份更新且全面的安全性評估,檢視其完整生命週期:生成、儲存與自動填入。
我們評估了十三款密碼管理工具,包括五款瀏覽器擴充功能、六款瀏覽器內建管理工具,以及兩款桌面客戶端作為對照。評估框架涵蓋三個核心階段:分析1.47億個生成密碼的隨機性、評估儲存安全性,以及針對點擊劫持和跨網站指令碼等攻擊測試自動填入漏洞。
本節詳細說明首次對密碼管理工具密碼生成演算法進行的大規模分析。
我們採用了統計測試來評估隨機性,包括頻率分析、熵值計算,以及對定義字元集內均勻分佈的測試。
數款管理工具顯示出非隨機的字元分佈。例如,某些工具對特定字元位置或集合有偏好,導致生成密碼的有效熵值低於理論預期。
一個重要發現是,部分生成的密碼——特別是長度少於10個字元的密碼——容易受到線上暴力破解攻擊。假設使用現代硬體能力,長度少於18個字元的密碼可能容易受到離線攻擊。
我們複製並擴展了Li等人先前的研究,評估密碼在本地端和雲端是如何被加密和儲存的。
雖然大多數管理工具使用強加密,但金鑰衍生函數和金鑰儲存機制各不相同,部分實作較為薄弱。
一個關鍵缺陷是將敏感元資料以明文或保護不足的方式儲存,即使密碼本身已加密,仍會造成隱私風險。
數款密碼管理工具具有不安全的預設設定,例如啟用自動填入,或在瀏覽器重啟後不要求主密碼,從而擴大了攻擊面。
自動填入雖然方便,卻引入了顯著的攻擊途徑。我們針對已知的攻擊類型進行了測試。
我們發現數款管理工具仍易受點擊劫持攻擊,惡意網站可在合法介面按鈕上覆蓋隱形元素,誘騙使用者觸發在攻擊者控制欄位上的自動填入。
如果網站存在跨網站指令碼漏洞,注入的指令碼可能與密碼管理工具的DOM元素互動,從而竊取憑證,此風險在Stock和Johns的早期研究中已被強調。
我們測試了那些需與雲端服務通訊以進行同步或提供功能的管理工具,評估其是否容易受到中間人攻擊,此類攻擊可能注入惡意程式碼或竊取驗證權杖。
總體而言,與五年前的評估相比,安全性有所改善,但重大問題依然存在。沒有任何一款管理工具在所有三個類別中都完美無缺。瀏覽器內建管理工具通常具有更簡單、更安全的自動填入邏輯,但生成演算法較弱。第三方擴充功能提供更多功能,但也引入了更高的複雜性和攻擊面。我們指出了表現不佳、注重安全的用戶應避免使用的特定管理工具。
13
1.47億+
4
對使用者:選擇安全記錄良好的管理工具,啟用所有可用的安全功能,並謹慎使用自動填入。對開發者:使用密碼學安全的亂數產生器生成密碼,加密所有元資料,採用安全的預設設定,並強化自動填入機制以防介面操縱。對研究者:探索自動填入的可用性與安全性權衡,開發標準化的安全評估框架,並研究後量子密碼學以確保未來安全性。
核心洞見:Oesch和Ruoti的研究提供了一個發人深省的現實檢驗:那些旨在解決密碼危機的工具本身卻是由各種漏洞拼湊而成。業界對便利性和功能膨脹的關注,在某些情況下直接削弱了核心安全承諾。生成的密碼可能很弱這一發現尤其具有破壞性——它直擊密碼管理工具價值主張的核心。
邏輯流程:本文巧妙地沿著使用者旅程結構化其攻擊分析:建立、靜態儲存和使用中。這種生命週期方法揭示了弱點並非孤立,而是系統性的。生成階段的缺陷會降低強力儲存的有效性;自動填入的缺陷則會使兩者都失效。這種相互關聯性在單點審計中經常被忽略。
優點與缺陷:本研究的優勢在於其全面性以及對過去研究的複現,提供了罕見的安全性演變縱向視角。用於分析的1.47億個生成密碼語料庫值得稱讚。然而,該分析存在許多安全性評估常見的缺陷:它主要是一種黑箱功能測試。它識別了什麼被破壞,但從軟體工程角度對原因的洞察較少——這些缺陷是由於緊迫的截止日期、誤解的規格,還是缺乏安全審查?此外,雖然它參考了NIST數位身分指南,但若能更深入探討這些管理工具如何符合(或不符合)FIPS 140-3等標準或IETF的密碼驗證金鑰交換提案中概述的安全要求,將會增加其份量。
可行洞見:對於企業安全團隊,本文是一項指令,要求嚴格審查核准的密碼管理工具。僅依賴品牌聲譽是不夠的。採購檢查清單必須包含對生成隨機性、元資料加密以及攻擊模擬下自動填入行為的特定測試。對於開發者,教訓是優先考慮簡單性和安全的預設設定。最安全的自動填入機制可能是最簡單的:一種手動的「點擊填入」,需要使用者明確、有意識的動作。未來不在於試圖讓智慧、自動的填入變得完美安全,而在於設計干擾最小但明確性最高的使用者互動,讓人在關鍵安全決策中保持參與。
密碼生成隨機性的評估依賴於計算生成密碼的夏農熵$H$:
$H = -\sum_{i=1}^{n} P(x_i) \log_2 P(x_i)$
其中$P(x_i)$是字元$x_i$在給定位置出現的機率。對於從$C$個字元集合中真正隨機的選擇,每個字元的最大熵為$\log_2(C)$。對於一個72字元的集合,最大$H_{char} \approx 6.17$位元。因此,一個10字元密碼的理論最大值約為61.7位元熵。
研究發現,某些管理工具演算法中的偏差降低了有效熵。使用估計的破解速率$R$和密碼空間$N$來評估離線攻擊的脆弱性:
$\text{破解時間} \approx \frac{N}{2 \times R}$
假設高端速率為每秒$10^{10}$次雜湊運算,對於一個熵值低於約65位元的密碼,動機強烈的攻擊者可能在可行的時間內將其破解。
關鍵圖表1:字元分佈偏差。 一個長條圖,比較了多款密碼管理工具中不同字元類型觀察頻率與期望頻率。數款管理工具顯示出統計學上顯著偏離期望的均勻分佈,某些位置數字出現過多。
關鍵圖表2:熵值 vs. 密碼長度。 一個散點圖,顯示了各管理工具針對不同配置密碼長度所測量的熵值。該圖顯示,雖然大多數管理工具對於較長密碼接近理論熵線,但數款工具在較短長度時表現不佳,聚集在線下方,表明隨機性較弱。
關鍵圖表3:自動填入漏洞矩陣。 一個熱力圖,Y軸為管理工具,X軸為漏洞類別。單元格以綠色、黃色和紅色標示。此視覺化清晰地顯示了哪些管理工具在自動填入攻擊面上風險最高。
個案:評估「管理工具X」的自動填入安全性。
步驟1 - 功能映射: 記錄管理工具X如何觸發自動填入:是否自動填入?是否顯示下拉選單?它依賴哪些DOM屬性?
步驟2 - 威脅建模: 應用STRIDE模型。
步驟3 - 測試執行: 建立一個測試網頁,系統性地嘗試每種威脅途徑。
步驟4 - 分析與評分: 根據可能性和影響對每個漏洞進行評分。匯總分數決定了管理工具X的整體自動填入安全評級。
這種結構化的方法超越了臨時測試,確保了全面的覆蓋。
1. 與WebAuthn/通行金鑰整合: 未來是無密碼的。密碼管理工具的下一個演變是成為通行金鑰的主要代理。需要研究如何安全地在裝置間同步和恢復通行金鑰的私鑰。
2. 情境感知、基於風險的自動填入: 未來的管理工具可以使用機器學習來評估頁面合法性,並根據使用者情境調整自動填入行為,在高風險情境下要求額外驗證。
3. 形式驗證與安全硬體: 關鍵組件,特別是亂數產生器和核心加解密常式,可以使用形式驗證工具進行驗證。與可信平台模組整合可提升高價值目標的安全性。
4. 去中心化與以使用者為中心的架構: 從集中式雲端儲存庫轉向去中心化協定,可以減輕大規模供應商資料外洩的風險。