文字與日常工具·密碼產生器
僅瀏覽器密碼產生器如何運作(以及如何驗證它)
· 工作原理
密碼 隱私 瀏覽器工具
介紹頁面在沒有伺服器參與的情況下產生密碼短語必須執行的操作 - 載入單字清單、抽取隨機數、選擇單字 - 並提供任何人都可以執行的三項檢查以確認沒有發送任何內容。
還有誰看到了您的新密碼? ——每個線上產生器都應該能夠用「無人」來回答這個問題
有用的信任問題不在於線上產生器是否稱自己為私有;而是在於。這就是選擇後產生的位元組發生的情況。 ToolAcre 的存儲庫給出了一個有限的答案:產生發生在分頁中,結果呈現為文字,瀏覽器測試斷言按“產生”不會創建網絡請求。產品註冊表會停用憑證頁面上的分析和廣告。
此證據並不能證明裝置上的任何人都無法看到該值。瀏覽器擴充功能、螢幕截圖、惡意軟體和受損的作業系統均不在頁面的控制範圍內。支援的宣告涉及 ToolAcre 的程式碼和網路行為,而不是整個電腦或稍後可能使用產生的值的每個威脅模型。
儲存庫可以證明誰接收了產生的值
這三種成分是分開的並可以檢查。單字列表是靜態的同源文字檔案。 Web Crypto 提供隨機位元組。包函數過濾所選列表,繪製無偏索引並根據分隔符號和大小寫設定連接所選單字。字元模式從顯式類別中提取,並在保證每個選定類別出現後安全地洗牌位置。
保持這些部分可見有助於審閱者區分資料載入和秘密傳輸。對 `wordlists/eff-long.txt` 的請求包含公共詞彙,而不是組裝好的密碼短語。產生的值僅在本地索引選擇和組合條目之後才存在,並端對端測試檢查組裝的字串永遠不會出現在單字清單回應中。
伺服器端產生器的作用 - 以及為什麼其他地方產生的密碼已經被共用一次
伺服器端產生器需要攜帶足夠資訊的請求或回應,以便伺服器產生或傳遞秘密。那不是 ToolAcre 路徑。頁面取得公共資源,然後在瀏覽器中同步呼叫匯入的引擎。沒有密碼產生 API 端點,也沒有包含目前輸出的請求正文。
避免將這種對比轉變為所有遠端產生器都是惡意的或本地執行自動安全的宣告。本機頁面仍然執行程式碼並在裝置上顯示憑證。這裡可驗證的優勢比較窄:ToolAcre 的應用程式伺服器在產生操作期間不會接收產生的值。
這個僅瀏覽器產生器避免了什麼:不向 ToolAcre 伺服器發出產生請求
在按「產生」之前開啟開發人員工具並保留請求日誌。讓預設清單完成加載,標記當前請求計數,然後產生幾個值。預期增量為零。瀏覽器測試執行這種精確的比較,如果產生增加了流量,則測試會失敗。他們重複檢查複製,因為剪貼簿寫入也是本地操作。
不要將初始單字清單下載誤認為洩漏。檢查其 URL、方法和正文:測試需要無請求正文的同源 GET。有意義的網路審查會詢問新組裝的值是否出現在 URL、標頭、請求正文或回應中,而不是靜態應用程式是否載入資產。
檢查二:內容安全策略 — 沒有第三方腳本的嚴格策略如何限制資料的去向
密碼產品的內容安全策略限制與其自身來源的連接,且其註冊表關閉廣告和分析提供者。原始碼級測試還禁止在可以保存憑證的程式碼路徑中進行儲存寫入、控制台日誌記錄和 URL 放置。這些控制措施減少了未來意外變化的可用目的地,並使回歸在審查中可見。
CSP 是深度防禦,而不是證明每個同源腳本都是仁慈的。原始碼檢查和瀏覽器行為仍然是必要的。檢查載入的腳本,遵循輸出分配,並驗證唯一的剪貼簿呼叫發生在明確複製操作之後。徽章或政策句不能取代這些觀察。
檢查三:斷開連接-頁面完全載入後,離線並再次產生;一個完全瀏覽器端的工具應該繼續工作
離線行為需要工作簿中省略的一項限定條件。選定的單字清單必須已載入到目前頁面。一旦進入內存,產生另一個密碼將執行本地算術並不需要請求。在斷開連線時選擇不同的未快取清單可能會失敗,因為頁面仍然需要該公共靜態檔案。
因此,公平的測試會載入頁面和所需的列表,斷開連接,然後再次按「產生」。成功表明組裝是本地化的;它沒有顯示每個資產都已捆綁,或者該頁面可以使不可用清單具體化。單字清單載入器誠實地報告下載、遺失檔案和空檔案失敗,而不是取代另一個清單。
檢查三:載入選定的詞表後,產生本身不需要請求
這些檢查不會審核擴展、剪貼簿管理器或作業系統。他們也不決定產生的憑證應儲存在哪裡。 ToolAcre 沒有保險庫、歷史記錄、同步或自動填充,且本地產生中沒有任何內容建議透過聊天、電子郵件或其他傳輸方式發送結果。
在產生即時憑證之前,裝置必須是可信的。對於不受信任或共享的機器,該項目自己的限制頁面說要使用其他東西。網路靜默證明了頁面操作的屬性,而不是對螢幕或瀏覽器進程具有更廣泛存取權限的軟體的免疫力。
重點 — 密碼產生器在您的裝置上執行整個作業,每項檢查都需要不到一分鐘的時間
ToolAcre 支援具體的驗證鏈:靜態同源單字清單載入、Web Crypto 繪製、本地無偏選擇、純文字顯示、產生時無請求以及僅明確剪貼簿寫入。註冊表設定從密碼產品中刪除廣告和分析腳本,同時測試搜尋儲存和日誌記錄回歸。
重複這些檢查,而不是相信間接的結論。結果應該是關於此建置和程式碼路徑的範圍宣告。它永遠不應該成為“這個密碼在任何地方都是安全的”,也不應該將產生器與管理接下來發生的事情的管理器或策略混淆。