南方數據技术观察
首页 行业新闻 教程 技术文章 AI 对话 官网 咨询与报价
首页 / 行业新闻

bcrypt 25 年回顾:密码哈希演进与工程启示

bcrypt 诞生 25 年后,密码仍是主流认证手段。文章梳理从 CTSS 到 Unix crypt、再到 MD5crypt 与 bcrypt 的演进脉络,揭示“盐值+迭代”如何在算法层面对抗算力增长,指出导出密钥函数必须随硬件能力动态调整成本参数,而非依赖静态设计。

**早期探索:从明文到首个哈希**

1960 年代 MIT 的兼容分时系统(CTSS)首次引入密码认证,Richard Stallman 曾强烈反对。真正奠定现代基础的是 1970 年代 Unix:Ken Thompson 与 Dennis Ritchie 引入 crypt,Robert Morris 基于 Hagelin M-209 密码机实现首版。第 6 版 Unix 的 crypt 计算过快,已被视为隐患;第 7 版引入 12-bit salt 并对 DES 迭代 25 次,形成 2^12 个不同哈希函数族。Salt 双重作用:相同口令产生不同哈希,阻断彩虹表预计算;哈希与 salt 同存密码文件,避免明文落盘。原文未给出具体破解耗时数据。

**算法迭代:出口管制与算力竞赛**

美国出口管制限制 DES 强度,叠加算力指数级增长,1994 年 Poul-Henning Kamp 推出 MD5crypt,将哈希改为 MD5 并提高迭代次数。但 MD5 碰撞攻击与 GPU 并行能力迅速削弱其防护。bcrypt 于 1997 年由 Niels Provos 与 David Mazières 基于 Blowfish 密钥扩展设计,核心创新是可配置工作因子(cost parameter),通过 EksBlowfishSetup 强制串行化内存访问,使 GPU/FPGA 加速收效甚微。原文未给出 bcrypt 具体 cost 默认值或基准测试数字。

**工程启示:参数化胜过固化**

历史反复证明:任何固定迭代次数的哈希终将被算力超越。bcrypt 的 cost 参数让运维在不更换算法前提下,按硬件升级周期线性提升破解成本。现代部署应:1)最低 cost 12(2^12 轮),随 CPU 性能每两年 +1;2)拒绝回退兼容旧哈希,强制重登录迁移;3)监控认证延迟 P99,平衡安全与可用性。密码仍将长期存在,唯有“可调成本”才能跑赢摩尔定律。

原文: APNIC Blog(2023-08-02)|编译自 APNIC Blog,事实以原文为准。

来源:APNIC Blog

返回列表