SSH.NET 2025.0.0版本发布:支持后量子加密与PuTTY密钥
SSH.NET是一个流行的.NET平台SSH(安全外壳协议)实现库,它为.NET开发者提供了SSH客户端功能,包括远程命令执行、端口转发以及SFTP文件传输等能力。作为.NET生态中SSH协议的重要实现,SSH.NET因其易用性和稳定性受到广泛欢迎。
主要更新内容
2025.0.0版本带来了几项重要改进,其中最引人注目的是对后量子密码学(Post-Quantum Cryptography)的支持。
后量子密钥交换方法
随着量子计算的发展,传统加密算法面临潜在威胁。为此,新版本增加了两种后量子密钥交换方法:
sntrup761x25519-sha512
:结合了NTRU Prime算法(sntrup761)和X25519椭圆曲线,使用SHA-512作为哈希函数mlkem768x25519-sha256
:混合了ML-KEM(Module-Lattice Key Encapsulation Mechanism)和X25519,使用SHA-256
这些混合方案既保持了传统算法的效率,又增加了量子计算环境下的安全性。
PuTTY密钥文件支持
新版本现在可以读取PuTTY生成的密钥文件(包括V2和V3格式),这解决了长期以来PuTTY与SSH.NET之间的密钥兼容性问题。开发者现在可以:
- 直接使用PuTTYgen生成的PPK文件
- 无缝迁移现有PuTTY配置到SSH.NET应用
- 简化密钥管理流程
日志系统升级
日志系统从DiagnosticAbstration迁移到了Microsoft.Extensions.Logging.Abstractions,这意味着:
- 更好的与.NET生态系统集成
- 更灵活的日志配置选项
- 支持更多日志提供程序
重大变更
DSA支持移除
出于安全性考虑,SSH.NET移除了对DSA(数字签名算法)的支持。这一决定基于:
- DSA密钥长度有限(通常1024位),安全性不足
- 现代应用更推荐使用ECDSA或Ed25519
- 主流SSH实现已逐步淘汰DSA
加密填充调整
CipherPadding
类被移除,转而使用BouncyCastle库中的IBlockCipherPadding
接口。这一变化:
- 减少了代码重复
- 提高了与BouncyCastle的兼容性
- 统一了加密填充的实现方式
其他改进
- 性能优化:改进了数据发送的线程安全性,减少了随机连接失败的情况
- API增强:为ISftpClient添加了ExistsAsync和GetAsync异步方法
- 错误修复:解决了SshCommand在断开连接时的挂起问题
- 代码质量:重构了密钥文件的实现,提高了可维护性
开发者建议
对于升级到2025.0.0版本的开发者:
- 检查并替换任何使用DSA的代码
- 考虑将日志系统迁移到Microsoft.Extensions.Logging
- 评估是否可以利用新的后量子加密算法
- 测试现有PuTTY密钥的兼容性
这个版本标志着SSH.NET在安全性、兼容性和现代化方面的重要进步,为应对未来的安全挑战做好了准备。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考