前言:星號遮蔽只能防君子
密碼輸入框顯示星號(*)僅防肩窺,無法抵擋遠端螢幕監控軟體或密碼顯示工具(如 Asterisk Logger)。本文介紹利用系統無法正常渲染的擴展字元集(CJK Extension A),製作在螢幕、截圖、記憶體中均顯示為方塊(□)、問號(?)或空白的「隱形密碼」,徹底擊敗視覺竊取攻擊。
核心原理:字元集落差
- Windows 預設字型「新細明體/標楷體」字元集為 GB2312(簡體)或 Big5(繁體),收錄約 1.3 萬常用漢字。
- Office XP 引入「細明體-方正超大字元集」,涵蓋 Unicode BMP 擴展區(U+3400~U+4DFF、U+4E00~U+9FFF)共 27,564 字,加上第二平面精選 36,862 字,總計 65,531 字符。
- 選取 GB2312/Big5 未收錄 的擴展漢字作為密碼字元,系統無字型可渲染,僅顯示預設替代符號(□/?/空白),密碼查看工具同樣無法還原。
實作三步驟
步驟 1:產生隱形密碼字元
- 啟動「字元對應表」:Win+R →
charmap → 確定
- 字型選單選擇「細明體-方正超大字元集」(需安裝 Office XP/2003)
- 捲動至「顯示 CJK 擴展 A」區塊(狀態列提示)
- 雙擊選取 8~12 個不常見漢字 → 「複製」送入剪貼簿
- 貼上記事本確認:若顯示 □/?/空白,即符合條件
步驟 2:套用至目標系統/服務
- 直接貼上密碼欄位(QQ、FTP、資料庫連線字串等)
- 限制: 部份網站/論壇/郵箱禁止非 ASCII 字元做密碼,此法不適用。
步驟 3:密碼管理與防反破解
方案 A:Word 超連結管理法
- Word 開啟同字型,貼上密碼字元串
- 為字元添加超連結 → 目標指向對應程式執行檔(如
QQ.exe)
- 儲存文件時加密保護(檔案 → 資訊 → 保護文件 → 以密碼加密)
- 使用時:開啟 Word → 點擊超連結啟動程式 → 貼上密碼
方案 B:內碼輸入法防反向工程
若攻擊者同樣安裝方正超大字元集,仍可看到真實字形。進階對策:使用系統內建「區位碼輸入法」輸入 系統字庫未編碼的區位碼(aaa1~affe 區間)。系統無對應字形,僅顯示空白;連字元對應表也查不到。缺點:更改密碼時必須精確記住當時輸入的區位碼序列。
適用場景與限制
| 場景 | 適用性 | 備註 |
| 本機應用程式登入(QQ、FTP Client、資料庫工具) | ★★★★★ | 最佳適用 |
| Windows 登入密碼 | ★★★☆☆ | 需確認登入介面支援 Unicode 輸入 |
| 網頁表單密碼 | ★★☆☆☆ | 多數網站限制字元集,測試後再用 |
| BIOS/UEFI 密碼 | ☆☆☆☆☆ | 通常僅支援 ASCII |
結語:提高攻擊成本,而非追求絕對不可破解
隱形密碼將「視覺竊取」攻擊成本提升至「必須取得記憶體傾印並逆向分析輸入法邏輯」層級。配合定期更換、啟用 2FA、使用密碼管理器,可構建極具韌性的認證體系。