安全指南
密碼中該使用符號嗎?
了解符號何時有幫助、何時造成相容性問題,以及為什麼長度和隨機性比視覺複雜性更重要。
摘要
符號有幫助,因為它們增加了可能的字元數。但它們並非萬能。一個帶有可預測符號的短密碼仍然很弱,而一個不含符號的較長隨機密碼則可能很強。
符號何時有幫助
當生成器隨機選取符號且服務接受它們時,符號就有幫助。它們可以滿足密碼政策規則,並增加理論上的搜尋空間。
符號何時損害可用性
符號可能在舊表單、行動鍵盤、連線字串、shell、設定檔和手動抄寫中造成問題。如果某個符號需要跳脫或容易誤讀,可能會帶來操作風險。
實用建議
- 在服務接受時包含符號。
- 為相容性使用無符號預設值。
- 當字元集受限時增加長度。
- 避免手動編輯生成的密碼。
- 對於列印或口述的密碼,使用無混淆字元的預設值。
詳細指引
本指南重點在於決定符號對密碼政策是否有幫助或有害。它是為那些需要處理要求或拒絕特殊字元的服務的人所寫,因此實際目標並非提出戲劇性的安全主張,而是選擇一個能在日常使用中存活的密碼習慣:登入表單、密碼管理器、行動鍵盤、帳戶復原、共享裝置,以及偶爾遇到驗證規則奇怪的服務。一個安全的建議只有在真實的人能夠一致遵循時才有用。
最安全的起點是隨機性加上唯一性。隨機性表示該值是由加密安全的隨機源從大空間中選取,而不是從生日、寵物名、鍵盤模式或喜愛的名言中發明。唯一性表示同一個密碼不會在其他地方使用。一個長但重複使用的密碼可能在一次不相關的洩漏後迅速失效,而唯一的隨機密碼則將損害限制在使用它的單一帳戶。
針對這個主題,一個實用的預設是:在目標服務接受時啟用符號,當它們被拒絕時則使用更長的長度。你可以使用含符號的密碼生成器來應用該預設,然後將最終值儲存在可信的密碼管理器中。PwdGen 在瀏覽器本地使用 Web Crypto 生成值;生成的密碼不會發送到 PwdGen 伺服器。這種本地設計減少了伺服器端的暴露,但並不能防範所有威脅。惡意的瀏覽器擴充功能、受感染的裝置、釣魚頁面或不安全的剪貼簿處理仍可能在生成後洩露秘密。
最常見的應避免問題包括:高估短密碼中的一個符號、shell 跳脫問題、表單驗證錯誤以及手動輸入錯誤。這些問題之所以重要,是因為當人類習慣給了攻擊者捷徑時,他們很少需要暴力破解每個可能的密碼。憑證填充、釣魚、洩漏的密碼列表和帳戶復原濫用通常比純數學搜尋更實際。這就是為什麼最好的建議將密碼品質與帳戶層級的控制措施(如 MFA、通行金鑰、復原碼儲存,以及定期檢查復原電子郵件或電話設定)相結合。
在應用建議時,請使用此檢查清單:
- 在服務接受時使用符號。
- 不要依賴單一符號來修補弱密碼。
- 對嚴格的系統使用無符號預設值。
- 關閉符號時增加長度。
如果網站拒絕理想的設定,不要手動將密碼強行改為較弱的模式。一次只調整一個變數。如果符號被拒絕,保持大寫、小寫和數字啟用,並增加長度。如果最大長度很小,使用可接受的最大長度,並確保該值是唯一的。如果密碼必須朗讀、列印或在電視或路由器螢幕上輸入,考慮排除混淆字元,並增加長度以補償較小的字元集。
最後,記住密碼建議的邊界。強密碼只是一層防禦,並非保證。它不能讓釣魚頁面安全、修復惡意軟體,或補償一個儲存憑證不當的服務。有用的習慣是無聊但持久的:生成唯一值、安全儲存、保護復原路徑,並在懷疑暴露時迅速更換。
安全的下一步
閱讀本指南後,先做一個小型帳戶審計,而不是一次修復所有問題。挑選一個被接管後會造成最大麻煩的帳戶,確認其密碼是唯一的,並檢查復原電子郵件、復原電話、MFA 方法和備份碼儲存。如果該鏈中的任何部分薄弱,先改善該部分,再處理低風險帳戶。這個順序讓工作可管理,並保護攻擊者最可能用作跳板的帳戶。對於「密碼中該使用符號嗎?」,最好的結果是一個可重複的習慣:本地生成、小心儲存、避免重複使用。
常見問題
符號會讓密碼更強嗎?
符號在隨機選取時可以增加字元集大小,但長度和唯一性仍然比視覺複雜性更重要。
如果網站拒絕符號怎麼辦?
使用不含符號的較長密碼,並在服務接受時保持大寫、小寫和數字啟用。
混淆符號是問題嗎?
它們可能是,特別是對於列印、口述或手動輸入的密碼。排除它們可改善可用性,但會減少字元集大小。