我分解了一家 90 年代证书颁发机构的 RSA 密钥

在现代消费级硬件上分解一家 1990 年代证书颁发机构的 512 位 RSA 密钥,凸显了旧式“出口级”加密已经有多弱,也引发了人们对历史加密流量长期保密性的担忧。评论者对比了破解 512 位、1024 位和 2048 位 RSA 密钥的成本,解释了分解算法与 GPU 的进步如何让 1024 位 RSA 对资源充足的攻击者变得可及,并指出对称算法仍然更难破解。讨论还涉及政府强制弱加密的历史、向更强和后量子 TLS 的转变,以及在安全敏感工作中依赖 AI 生成代码和自定义 TLS 实现的担忧。

RSA 密钥强度与分解可行性

  • 多条评论讨论了分解如何随规模变化:
    • 对称密钥每增加一位,工作量近似翻倍;RSA 因次指数级分解(例如广义数域筛)而每位更弱。
    • 引用的估计:分解 1024 位 RSA 约需 ~2000 GPU 年;按当前技术,2048 位 RSA 预计需要数十万到数百万年。
    • 2048 位 RSA 通常相当于约 112 位对称安全性;3072 位 RSA 相当于约 128 位。
  • 在消费级硬件上约 2 天分解一个 512 位密钥,被认为与历史预测一致。
  • 有人指出,内存和矩阵步骤,而不仅仅是原始计算量,是主要瓶颈。

量子计算与未来风险

  • Shor 算法被提及为 RSA 的理论终局,但具备足够稳定量子比特的实用量子硬件被认为还遥不可及。
  • 有人建议观察“稳定量子比特”的趋势与 RSA 成本的交叉点;目前并不清楚。

TLS、旧浏览器与自定义加密

  • 现代 TLS 库已移除 SSLv3、SSLv2 client hellos 和 export 密码套件;文章作者实现了一个最小化的 SSLv3 栈(RC4、DES/3DES、MD5、SHA‑1)以便与 Netscape 4.x 通信。
  • 其他人描述了支持“复古互联网”服务的类似尝试,通常需要自定义 OpenSSL 构建。

出口级加密与历史政策

  • 出口级 512 位 RSA 和 40 位对称密码被有意设计得很弱,以便机构能够解密。
  • 1990 年代浏览器中的根证书槽位曾被货币化,同时现有厂商也施压以限制竞争。
  • 有人回忆起国家级规则(例如强制密钥托管、位长上限)。

AI 工具(“slop machine”)在工作流中的使用

  • 关于使用 LLM 的争论:
    • 批评者不喜欢把“有趣”的部分外包出去,并警告会得到无法验证、但看起来合理的输出。
    • 支持者认为,只要最终结果经过独立检查,AI 用于中间的、非安全关键步骤是可以的。
    • 对 AI 既有强烈负面态度,也有强烈正面态度。

RNG、自己动手造加密与系统设计

  • 传统共识:不要自己造加密;使用内核 RNG(getrandom/dev/urandom)。
  • 反方观点:某个长期项目里手工实现的 RNG 被称为没有漏洞,而广泛使用的库却有很多漏洞;这说明上下文和谨慎设计很重要。
  • 讨论涉及 POSIX 约束、chroot 环境,以及 RNG 设计中的性能与安全权衡。

PKI、DNS 与替代方案

  • 有人主张在 DNS 中发布公钥(类似 ACME/DNS‑01),并质疑传统 CA 的必要性。
  • 也有人指出,这只是把信任转移到了 DNS 和 DNSSEC,而 DNS 层的 MITM 仍然是个问题。

监控、前向保密与已存流量

  • 担心政府可能记录了历史上的加密流量,以便在未来分解能力或量子能力提升后再解密。
  • 前向保密和对称加密的强健性被强调;后量子 TLS 的部署数据被引用为令人鼓舞。
  • 一个额外的防护建议:在“干净”的连接上协商一个 PSK,然后用它加固未来会话,前提是对手无法监控一切。