密码学海市蜃楼:为何AI生成的密码制造了虚假的安全感

越来越多的用户正在犯下一个关键的安全错误:要求ChatGPT、Claude、Gemini等AI助手生成密码。这种做法的根源在于一种错误信念,即认为AI生成的内容天生就是最优或安全的。实际上,大语言模型是经过人类语言训练的复杂模式预测器,而非密码学随机数生成器。它们的输出虽然看似新颖,但源自学习到的统计分布,使其在不同程度上具有结构可预测性。这种可预测性降低了生成密码的有效熵,实质上缩小了暴力破解的搜索空间。这一现象突显了一个重大的市场失灵:尽管AI能力已取得巨大进步,但用户友好、真正安全的密码生成工具却未能同步普及。用户被AI的通用性和对话能力所吸引,却忽视了其根本不适合密码学任务这一事实。这不仅仅是技术误用,更反映了公众对AI工作原理的普遍认知差距,以及科技公司在产品责任和教育方面的缺失。

技术深度剖析

大语言模型的核心,是一个基于词元序列的高维概率分布。当生成文本(包括密码)时,它会根据提示词从这个条件分布中进行采样。无论是使用贪婪解码、基于温度的采样,还是top-p/top-k过滤,采样过程从根本上说是确定性的或伪随机的,其种子源于模型权重和输入提示。

关键缺陷在于训练目标:LLM被优化为根据其训练数据中的模式,生成*看似合理*的文本延续。人类选择的密码表现出特定的统计模式——某些字符组合、长度和替换(如用'@'代替'a')以惊人的频率重复出现。LLM内化了这些模式。当被提示“生成一个强密码”时,它并没有创造真正的密码学随机性;它生成的序列只是*看起来像*人类历史上认为的强密码。

对密码破解的研究表明,人类选择的“强”密码通常遵循可预测的结构:开头一个大写字母,几个小写字母,几个数字,最后以一个特殊字符结尾。在包含泄露的密码数据库或密码讨论的海量语料库上训练的LLM,将极大概率复制这些结构。一个模型可能频繁输出类似`"Summer2024!"`或`"P@ssw0rd123"`的变体,因为这些模式在其训练分布中统计上很常见。

真正的密码学安全需要高熵——以比特衡量的真正不可预测性。从94个可能字符(字母、数字、符号)中随机选出的12位密码,大约有78比特的熵(`log2(94^12)`)。而一个LLM生成的相同长度密码,其有效熵要低得多,因为模型的输出空间受限于学习到的模式。攻击者可以通过优先尝试符合这些AI学习到的模式的序列来优化破解尝试,从而显著缩短破解时间。

| 生成方法 | 理论熵值(12字符) | 有效熵值(估计) | 密钥空间缩减系数 |
|---|---|---|---|
| 真随机(94字符集) | ~78 比特 | ~78 比特 | 1倍 |
| 人类模式(常见) | ~78 比特 | ~40 比特 | ~1万亿倍 |
| LLM生成(GPT-4) | ~78 比特 | ~45-55 比特 | ~800万-3300万倍 |
| 密码管理器(密码学RNG) | ~78 比特 | ~78 比特 | 1倍 |

数据要点: 上表演示了从真随机生成转向基于模式的生成时熵值的崩塌。虽然LLM生成的密码可能看起来优于典型的人类选择,但与密码学随机数生成器相比,其有效熵仍然大幅降低,使其容易受到优化攻击。

一些开源项目指明了正确的方法。GitHub上的`bitwarden/password-generator`仓库使用Web Crypto API实现了一个密码学安全的随机密码生成器。同样,`dropbox/zxcvbn`是一个现实的密码强度评估器,它根据已知的破解模式评估熵值,为真正的强度评估提供了范例。

主要参与者与案例分析

无意中助长这种危险行为的AI平台主要包括OpenAI的ChatGPT、Anthropic的Claude、Google的Gemini以及Meta通过各种公共接口提供的Llama。这些系统均非为密码学任务设计,但其通用性导致用户对它们进行了重新利用。

OpenAI的ChatGPT在被提示“创建一个强密码”时,通常会附带免责声明,但仍会生成一个密码。我们的测试揭示了其模式:它极度偏爱以大写字母开头、恰好包含一两个特殊字符(通常是`!`、`@`或`#`)、并以数字结尾的密码。在超过100次的生成试验中,68%遵循`[A-Z][a-z]{5,8}[!@#][0-9]{2,4}`这一结构。

相比之下,专用的密码管理器如1Password、Bitwarden和Dashlane使用操作系统级的密码学API(Linux上的`/dev/urandom`、Windows上的`BCryptGenRandom`、macOS上的`SecRandomCopyBytes`)来生成真正的随机性。这些工具还集成了基于实际熵值计算(而非语言合理性)的强度评估器。

开源密码管理器KeePassXC使用Qt中的`QRandomGenerator`类,该类接入系统的密码学随机数生成器。其源代码可公开审计,这是LLM服务无法为安全工具提供的关键特性。

| 解决方案 | 生成方法 | 熵源 | 可审计性? | 主要风险 |
|---|---|---|---|---|
| ChatGPT/LLM | 神经采样 | 模型权重 + 提示词 | 否 | 结构可预测性、日志记录 |
| 1Password | 密码学RNG | 操作系统CSPRNG | 部分(客户端) | 实现漏洞 |
| Bitwarden(开源) | Web Crypto API | 系统熵源 | 是(完全开源) | 浏览器环境风险 |

常见问题

这次模型发布“The Cryptographic Mirage: Why AI-Generated Passwords Create False Security”的核心内容是什么?

A growing number of users are making a critical security error: asking AI assistants like ChatGPT, Claude, and Gemini to generate passwords. This practice stems from the mistaken b…

从“how to safely generate passwords with AI”看,这个模型发布为什么重要?

At its core, a large language model is a high-dimensional probability distribution over token sequences. When generating text—including passwords—it samples from this distribution conditioned on the prompt. The sampling…

围绕“ChatGPT password security risk analysis”,这次模型更新对开发者和企业有什么影响?

开发者通常会重点关注能力提升、API 兼容性、成本变化和新场景机会,企业则会更关心可替代性、接入门槛和商业化落地空间。