移除 OpenSSH 中 DSA 支持的时间线
OpenSSH 计划在 2025 年初彻底移除对旧版 DSA 公钥算法的支持,此前该算法已多年默认禁用,而 NIST 也早已建议逐步淘汰 1024 位 DSA。评论者在权衡删除过时加密所带来的安全与维护收益——包括简化密钥处理并为后量子算法做准备——以及对仍需连接无法升级的硬件、工业系统和空气隔离环境的组织所造成的实际影响。主流观点是,这类遗留需求应通过固定旧版 OpenSSH、在容器中封装或使用替代客户端来处理,而不应期待上游无限期维护脆弱的算法。
弃用时间线与历史
- OpenSSH 计划分阶段移除 DSA:
- 2024-03:DSA 在编译时可选,默认启用。
- 2024-06:DSA 在编译时可选,默认禁用。
- 2025-01:从 OpenSSH 中移除 DSA。
- 评论者指出,这延续了长期以来的指导意见:
- NIST 建议在 2010 年前停止使用 1024 位 DSA。
- OpenSSH 从未支持更大的 DSA 密钥,并且早在 OpenSSH 7(2015)中就已默认禁用 DSA。
移除 DSA 的理由
- 主要理由包括:
- SSHv2 中的 DSA 仅限于 1024 位公钥 / 160 位私钥,被认为较弱。
- 维护遗留代码成本高,尤其是在重构期间以及添加新算法时(例如可能的后量子签名)。
- 老旧、很少测试的代码路径被视为安全风险。
对遗留系统的影响
- 一些用户仍需要 DSA 才能访问:
- 老旧网络硬件、交换机、BMC、iLO、电信设备、工业控制系统、旧版 RHEL,以及合作伙伴系统。
- 担忧在于:“无法修复”的系统可能会继续服役数十年,尤其是在工业和关键基础设施中。
- 也有人认为这些系统应该被隔离、空气隔离,或者替换;如果它们无法更新,就不应暴露在更广泛的网络中。
责任与权利诉求
- 一个强烈的主题是:开源维护者没有义务无限期支持过时的加密算法。
- 反方观点:把弃用成本下放会增加总工作量,而且在高度监管或官僚化的环境中会很困难。
- 有人认为,与其完全移除,不如采用“危险/遗留”标志或插件模型。
替代方案与变通方法
- 建议包括:
- 保留旧版 OpenSSH 客户端(可能放在 VM、容器或专门的“legacy jump host”中)。
- 使用保留旧协议的发行版软件包(例如 ssh1 客户端)。
- 使用其他 SSH 实现(Dropbear、PuTTY),或者在严格受控的网络中甚至使用 telnet。
- 有人担心在现代系统上编译非常旧的 OpenSSH,以及遗留客户端的安全性。
相关加密讨论
- 澄清了 DSA 参数以及 SSHv2 规范中其固有的 160 位私钥。
- 讨论了其他密钥类型:RSA、ECDSA、Ed25519。
- 另有一条分支提到主要云厂商:AWS 增加了 Ed25519 支持;据称 Azure 和一些 GCP 组件仍然不支持。