在Hare中实现SSH代理

💡 原文英文,约4500词,阅读约需17分钟。
📝

内容提要

本文介绍了在Himitsu中实现SSH代理的过程,重点讲解了如何在Hare中从头实现SSH原语,包括OpenSSH私钥格式的解码、私钥解密及签名验证。Himitsu作为密码管理器,能够存储SSH私钥并提供代理功能,未来计划扩展支持更多密钥类型和加密算法。

🎯

关键要点

  • Himitsu是一个密码管理器,能够存储SSH私钥并提供代理功能。

  • 在Hare中实现SSH代理需要从头实现多个SSH原语,包括OpenSSH私钥格式的解码、私钥解密和签名验证。

  • OpenSSH私钥格式是私有的,主要通过逆向工程OpenSSH的C代码获取细节。

  • 实现PEM格式解码器是读取OpenSSH私钥的第一步,Hare的标准库提供了相关功能。

  • 私钥数据使用bcrypt作为密钥派生函数,并通过AES 256位CTR模式加密。

  • Hare中已经支持AES和CTR,加上bcrypt的实现,完成了私钥的解密过程。

  • 解密后的私钥包含多个字段,包括密钥类型、公钥和私钥数据。

  • 实现签名和签名验证相对简单,使用RFC 8709标准化的ed25519签名格式。

  • SSH代理协议是标准化的,使用SSH线格式进行消息传递。

  • Himitsu计划扩展支持更多密钥类型和加密算法,未来将实现SSH连接协议。

🔎

延伸解读

SSH代理的实现复杂性

在Hare中实现SSH代理涉及多个复杂的加密原语,包括OpenSSH私钥格式的解码和私钥的解密。由于OpenSSH私钥格式并未公开,开发者需要通过逆向工程获取细节,这增加了实现的难度。理解这些原语的工作原理对于确保安全性至关重要。

安全性与风险

文章强调了加密编程的高风险性,尤其是在处理用户的私钥时。开发者应仔细阅读文档并进行代码审查,以避免潜在的安全漏洞。由于Hare的加密实现尚未经过全面审计,使用时需谨慎,确保代码的安全性和可靠性。

未来扩展的潜力

Himitsu计划未来支持更多的密钥类型和加密算法,这为用户提供了更大的灵活性和选择。随着对SSH连接协议的实现,Himitsu有望成为一个更全面的密码管理解决方案,满足不同用户的需求。

延伸问答

Himitsu是什么?

Himitsu是一个密码管理器,能够存储SSH私钥并提供代理功能。

在Hare中实现SSH代理需要哪些步骤?

需要实现多个SSH原语,包括OpenSSH私钥格式的解码、私钥解密和签名验证。

OpenSSH私钥格式的解码是如何进行的?

解码过程涉及实现PEM格式解码器,并通过逆向工程OpenSSH的C代码获取细节。

Hare中如何解密私钥数据?

私钥数据使用bcrypt作为密钥派生函数,并通过AES 256位CTR模式加密进行解密。

Himitsu未来有什么扩展计划?

Himitsu计划扩展支持更多密钥类型和加密算法,未来将实现SSH连接协议。

如何在Himitsu中导入SSH私钥?

用户可以通过“hissh-import”工具从OpenSSH的私钥格式导入SSH私钥。

🏷️

标签

➡️

继续阅读