<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>NIST on 小盒子的技术分享</title><link>https://xiaobox.github.io/tags/nist/</link><description>Recent content in NIST on 小盒子的技术分享</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Wed, 24 Jun 2026 05:50:00 +0000</lastBuildDate><atom:link href="https://xiaobox.github.io/tags/nist/index.xml" rel="self" type="application/rss+xml"/><item><title>让你密码必须加 !@#$ 的那个人，后来道歉了</title><link>https://xiaobox.github.io/p/2026-06-24-rang-ni-mi-ma-bi-xu-jia-de-na-ge-ren-hou-lai-dao-qian-le/</link><pubDate>Wed, 24 Jun 2026 05:50:00 +0000</pubDate><guid>https://xiaobox.github.io/p/2026-06-24-rang-ni-mi-ma-bi-xu-jia-de-na-ge-ren-hou-lai-dao-qian-le/</guid><description>&lt;p&gt;&lt;img alt="封面" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/4e8ecdac-0b36-40ca-8780-1996ace6af8c-1.png"&gt;&lt;/p&gt;
&lt;p&gt;你肯定经历过这种事。&lt;/p&gt;
&lt;p&gt;注册一个账号，输入密码，系统弹出一行红字，「密码必须包含大写字母、数字和特殊字符」。&lt;/p&gt;
&lt;p&gt;你咬咬牙改成 Zhangsan123!，过了。&lt;/p&gt;
&lt;p&gt;三个月后系统又来，「您的密码已过期，请修改，且不能与前三次密码相同」。&lt;/p&gt;
&lt;p&gt;你把感叹号改成井号，Zhangsan123#，又过了。&lt;/p&gt;
&lt;p&gt;这套流程你已经走了十几年。你以为这是某种严谨的密码学原理。&lt;/p&gt;
&lt;p&gt;不是的。&lt;/p&gt;
&lt;p&gt;它来自一个人，一份 8 页的文件，和一篇他自己都没验证过的 1980 年代论文。&lt;/p&gt;
&lt;p&gt;2003 年，一个叫 Bill Burr 的人在美国国家标准与技术研究院（NIST）写了一份密码安全指南，编号 SP 800-63B，附录 A。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/20260624134020380.png"&gt;&lt;/p&gt;
&lt;p&gt;这份文件只有 8 页。&lt;/p&gt;
&lt;p&gt;它规定了三件事。密码必须混合大小写字母、数字和特殊字符。密码必须每 90 天更换一次。密码不能和之前用过的一样。&lt;/p&gt;
&lt;p&gt;Bill Burr 当时不是什么顶级密码学家。他是 NIST 的一个中层管理者，接到了这个任务，想找点数据支撑，但 2003 年几乎没有大规模的密码泄露数据可以研究。&lt;/p&gt;
&lt;p&gt;他能找到的最有参考价值的文献，是一篇 1980 年代的白皮书。&lt;/p&gt;
&lt;p&gt;那时候互联网还不存在。&lt;/p&gt;
&lt;p&gt;但他还是用了。&lt;/p&gt;
&lt;p&gt;然后这 8 页纸变成了全球标准。&lt;/p&gt;
&lt;p&gt;银行用它，学校用它，公司用它，每一个网站的注册页面都在用它。你注册任何一个账号时看到的那行「密码强度要求」，大概率都可以追溯到这 8 页纸。&lt;/p&gt;
&lt;p&gt;一个人，一份文件，改变了全世界几十亿人输入密码的方式。&lt;/p&gt;
&lt;p&gt;但问题来了，这套规则真的管用吗？&lt;/p&gt;
&lt;p&gt;如果你用密码管理器，让它随机生成一串 K7$mQ2!xR9pL，那这套规则完全没毛病，暴力破解要算到太阳熄灭。&lt;/p&gt;
&lt;p&gt;但你不会那么做。几十亿人也不会。&lt;/p&gt;
&lt;p&gt;你回想一下自己的密码。大概率是一个单词或者拼音，首字母大写，后面跟几个数字，末尾加个感叹号。&lt;/p&gt;
&lt;p&gt;Password1!&lt;/p&gt;
&lt;p&gt;Summer2024!&lt;/p&gt;
&lt;p&gt;Zhangsan123#&lt;/p&gt;
&lt;p&gt;你不是一个人。几十亿人都在这么干。&lt;/p&gt;
&lt;p&gt;密码学家后来拿到了真实的泄露数据库，比如 LinkedIn 那次几亿条密码泄露，发现了一个尴尬的事实。人类在「满足复杂度要求」这件事上，套路惊人地一致。&lt;/p&gt;
&lt;p&gt;大写字母？放第一个。&lt;/p&gt;
&lt;p&gt;数字？放末尾。&lt;/p&gt;
&lt;p&gt;特殊字符？感叹号，永远是感叹号。&lt;/p&gt;
&lt;p&gt;破解工具早就把这些模式写进了字典。你以为的「强密码」，在暴力破解面前可能几秒就倒了。&lt;/p&gt;
&lt;p&gt;&lt;img alt="密码强度对比" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/password-comparison.png"&gt;&lt;/p&gt;
&lt;p&gt;2011 年，xkcd 的作者 Randall Munroe 画了一幅后来被引用了无数次的密码漫画。&lt;/p&gt;
&lt;p&gt;他对比了两种密码。&lt;/p&gt;
&lt;p&gt;第一种，Tr0ub4dor&amp;amp;3。大小写混合，数字替换字母，还有特殊字符，完美符合 NIST 的要求。信息熵大约 28 比特。&lt;/p&gt;
&lt;p&gt;第二种，correct horse battery staple。四个随机的普通英文单词拼一起，没有大写，没有数字，没有特殊字符。信息熵大约 44 比特。&lt;/p&gt;
&lt;p&gt;第二种比第一种强几万倍。但你猜哪种更好记？&lt;/p&gt;
&lt;p&gt;Munroe 在漫画下面写了一句话，大意是，「我们花了 20 年，成功训练了所有人使用人类记不住、但电脑很好猜的密码」。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/20260624134222742.png"&gt;&lt;/p&gt;
&lt;p&gt;2017 年，Bill Burr 72 岁，已经退休。&lt;/p&gt;
&lt;p&gt;华尔街日报找到他做了一次采访。&lt;/p&gt;
&lt;p&gt;他说了一句，「Much of what I did, I now regret.」&lt;/p&gt;
&lt;p&gt;我做的那些事，很多我现在都后悔了。&lt;/p&gt;
&lt;p&gt;同年，NIST 正式修改了密码指南。取消了特殊字符的强制要求，取消了 90 天强制更换的规定，转而推荐用长的、容易记住的短语作为密码。&lt;/p&gt;
&lt;p&gt;一个基于 1980 年代论文拍脑袋写出来的规则，全球执行了 14 年，折磨了几十亿人，最后被它的作者亲手否定。&lt;/p&gt;
&lt;p&gt;但你今天注册一个账号的时候，大概率还是会看到那行红字。&lt;/p&gt;
&lt;p&gt;「密码必须包含大写字母、数字和特殊字符。」&lt;/p&gt;
&lt;p&gt;规则的制定者已经道歉了。&lt;/p&gt;
&lt;p&gt;但规则还在跑。&lt;/p&gt;</description></item></channel></rss>