这就是实际密码管理器的工作方式

发布: (2026年2月9日 GMT+8 20:00)
4 分钟阅读
原文: Dev.to

Source: Dev.to

Cover image for THIS IS HOW REAL PASSWORD MANAGERS ACTUALLY WORK

大多数人每天都在使用密码管理器,但很少有人真正了解它们是如何保证密码安全的。

在本文中,我将拆解 真实、生产级密码管理器的工作原理——这些核心思路同样被 1PasswordBitwarden 等工具所采用——通过演示我构建的项目 Passwuts

为什么我会构建 Passwuts

密码复用是当今最大的安全风险之一。当单个网站被泄露时,复用的密码会让用户在 所有 使用该密码的服务上受到威胁。

Passwuts 通过以下方式解决这个问题:

  • 强制使用强且唯一的密码
  • 使用 客户端加密
  • 确保 服务器永远看不到明文凭证

这正是严肃密码管理器所遵循的安全理念。

高层架构(零知识模型)

Passwuts 采用 零知识、客户端优先的加密模型

  • 🔐 主密码 永不离开客户端
  • 🔑 加密密钥在本地使用 PBKDF2 派生
  • 🔒 密码使用 AES‑GCM 加密
  • 🗄️ 服务器仅存储 密文 + IV

即使后端被攻破,密码依旧安全。

加密工作原理(逐步说明)

  1. 用户创建一个 主密码
  2. 使用 PBKDF2(输入:主密码 + 用户 UID 作为盐)派生出强加密密钥。
  3. 使用 AES‑GCM 并为每条记录生成 随机 IV 对密码进行加密。
  4. 仅将加密后的数据存入 Firestore。

在整个过程中,明文从未离开浏览器。

金库验证(不存储密码)

问题: 如何在不存储主密码的情况下验证它?

解决方案 – 验证器模式:

  • 加密一个已知字符串(例如 "vault-check")。
  • 将密文作为 金库元数据 存入 Firestore。

解锁时:

  1. 客户端在本地解密存储的密文。
  2. 若解密成功,则密码有效。

✅ 安全 ✅ 零知识 ✅ 无密码存储

浏览器扩展架构

浏览器扩展复用了 与 Web 应用完全相同的加密层

  • Firebase 认证
  • 共享内部加密包 (@pm/crypto)
  • 仅客户端加密
  • 后端不包含任何机密逻辑

这保证了跨平台行为的一致性。

这个项目教会我的事

  • 🔍 加密失败通常源于 误用,而非数学本身。
  • 🔄 IV/nonce 管理至关重要。
  • 🧠 安全体验(UX)和密码学同等重要。
  • 🔐 零知识系统需要在各个环节保持纪律。

最后感想

密码管理器并非魔法。它们是 经过精心工程设计的系统,基于:

  • 密钥派生
  • 认证加密
  • 安全的客户端架构

了解它们的工作原理,你将会:

  • 成为更好的工程师
  • 成为更安全的用户
0 浏览
Back to Blog

相关文章

阅读更多 »

了解 secp256k1 与 多签钱包

封面图片:Understanding secp256k1 与 Multisig 钱包 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto

JUMAA 通过克隆学习

JUMAA LEARNING BY CLONING 的封面图片 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uplo...