在Hare中实现SSH代理
内容提要
本文介绍了在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私钥。