<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>密码管理器 on 魔都水滴</title>
    <link>https://blog.margrop.net/tag/%E5%AF%86%E7%A0%81%E7%AE%A1%E7%90%86%E5%99%A8/</link>
    <description>Recent content in 密码管理器 on 魔都水滴</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-CN</language>
    <lastBuildDate>Wed, 29 Jul 2026 20:30:00 +0800</lastBuildDate>
    <atom:link href="https://blog.margrop.net/tag/%E5%AF%86%E7%A0%81%E7%AE%A1%E7%90%86%E5%99%A8/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>把所有密码交给一个 App，真的不是疯了吗？主密码与加密保险箱的数学底牌</title>
      <link>https://blog.margrop.net/post/password-manager-master-password-encrypted-vault-math/</link>
      <pubDate>Wed, 29 Jul 2026 20:30:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/password-manager-master-password-encrypted-vault-math/</guid>
      <description>先说结论&#xA;一个设计合格的密码管理器，并不是“替你记住一张明文密码表”，而是替你保管一个加密保险箱。主密码也不是直接打开每个网站密码的万能钥匙，它更像制造钥匙的原料：设备先把它送进一个故意很慢的密钥派生函数，再得到能够解开保险箱密钥的派生密钥。服务器通常只负责保存和同步密文，真正的解密发生在你的设备上。&#xA;所以，把所有密码放进密码管理器，并不等于把所有鸡蛋毫无保护地放进同一个篮子。更准确的说法是：你把原来散落在几十个网站、浏览器、便签和大脑里的弱密码，换成了一个重点防守的主入口，以及几十个互不相同、随机生成的强密码。&#xA;图：原创配图。一个主密码负责解锁加密保险箱，保险箱里保存的是每个网站各不相同的随机凭据。&#xA;很多人第一次听说密码管理器时，都会本能地问：&#xA;“它要是被黑了，我所有密码不就一起完了吗？”&#xA;这个担心完全合理。毕竟在日常生活里，把所有现金、房产证和银行卡都塞进同一个箱子，听起来就是在给小偷准备大礼包。&#xA;但数字世界里有一个反直觉的地方：**同一个箱子，可以既是风险集中点，也可以是安全放大器。**关键不在“集中”两个字，而在于箱子里装的是明文还是密文、钥匙在哪里生成、猜一次钥匙需要付出多少成本，以及你是否还在其他地方重复使用同一把钥匙。&#xA;这篇文章不推荐某一个具体品牌，而是拆开密码管理器背后的共同数学原理：主密码、盐值、KDF、AES、认证标签、零知识同步，以及最容易被宣传语忽略的失守边界。&#xA;为什么不用密码管理器，反而更容易“一锅端” 普通人的真实密码习惯，通常不是“每个网站一个独立的 20 位随机密码”，而是下面几种组合：&#xA;一个常用密码走天下； 常用密码后面加网站缩写； 名字、生日、手机号片段加一个感叹号； 浏览器、聊天窗口、便签和表格里各存一份； 为了记得住，把重要网站和普通网站设成同一个密码。 这会产生一种非常危险的连锁反应：某个小网站安全做得差，数据库泄露后，攻击者拿着你的邮箱和密码，自动去尝试邮箱、网盘、购物、社交和办公系统。这叫凭据填充。攻击者不需要破解其他网站，只需要赌你“图省事，重复使用”。&#xA;图：密码复用像用绳子把所有多米诺骨牌绑在一起。每个网站使用唯一随机密码，才能把绳子剪断。&#xA;NIST 的数字身份指南明确要求服务允许密码管理器和自动填充，并指出带有密码生成器的密码管理器，会提高用户选择更强密码的可能性。它还强调，不同服务使用不同密码，可以避免一个站点泄露后引发凭据填充。&#xA;真实截图：NIST SP 800-63B 页面，截图于 2026 年 7 月 29 日。&#xA;密码管理器最重要的价值，其实不是“帮你记忆”，而是让你终于可以做到两件人脑很不擅长、计算机却很擅长的事：&#xA;为每个网站生成独一无二的随机密码； 在需要时准确取回，而不用把密码简化成人能背下来的套路。 它到底保存了什么 把密码管理器想成银行保险库容易产生误解，因为银行工作人员理论上能打开某些保险箱。更准确的比喻是：&#xA;你先在家里把日记写成一种只有你能还原的乱码，再把乱码复印件交给仓库保管。仓库知道你什么时候来过、文件有多大、可能属于哪个账户，但仓库拿到的正文仍然是一团密文。&#xA;一个典型密码保险箱会包含：&#xA;网站地址、用户名和密码； 安全备注、银行卡信息或身份字段； 密码生成器生成的随机凭据； 用于检测篡改的认证数据； 盐值、KDF 参数、版本号等解密所需的公开参数。 这里必须区分两件经常混为一谈的事：&#xA;登录某个网站时，网站一般只需要验证你的密码是否正确，所以适合保存不可逆的密码哈希。密码管理器却必须在自动填充时取回原密码，因此保险箱内容必须使用可逆加密。&#xA;OWASP 的密码存储指南也强调：普通网站验证用户密码时，应该使用 Argon2id 等慢哈希，而不是把密码加密后保存；只有确实需要还原原文的特殊场景，才需要加密。密码管理器正是这种必须取回原文的特殊场景，但它会把“验证主密码”和“加密保险箱内容”分成不同层处理。&#xA;真实截图：OWASP Password Storage Cheat Sheet，截图于 2026 年 7 月 29 日。&#xA;主密码不是直接拿去加密所有数据 如果软件直接把你输入的主密码当 AES 密钥，会有很多问题：密码长度不固定、人的选择有偏好，而且攻击者可以高速尝试常见词。&#xA;成熟设计会先做一层“加工”：&#xA;主密码 + 盐值 + KDF 参数 ↓ 密钥派生函数（Argon2id / PBKDF2 等） ↓ 派生密钥 ↓ 解开随机生成的保险箱密钥 ↓ 用保险箱密钥解密每条记录 图：主密码更像“制造钥匙的原料”。真正负责批量加密数据的，通常是随机生成的对称密钥。</description>
    </item>
  </channel>
</rss>
