使用SSH,我的大多数服务器使用ed25519 (扭曲的Edwards变体EC)进行身份验证。
我想知道,在使用ed25519进行身份验证之后,SSH协议2简单地使用curve25519上的临时/临时ECDH作为会话密钥吗?
我看不出它还在做什么,除非它将ed25519 x,y协调转换为curve25519 Montgomery变体来建立会话密钥。
示例输出详细如下:
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ssh-ed25519
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ssh-ed25519 SHA256:KvJtkvHyH/+oU3VaDDMQbUHIyI9P+LDLv0FqLdrfmEk
debug1: Host 'ubuntu-prime.local' is known and matches the ED25519 host key.
debug1: Found key in /Users/john/.ssh/known_hosts:40我的问题是,这里使用的是什么curve25519键盘?
发布于 2020-01-03 19:32:39
它使用短期(单用) Curve25519点( X25519,Curve25519 ECDH)作为密钥协议,使用静态长期Ed25519密钥进行身份验证。就像来自同一个时代的所有其他协议一样。
如果您想知道一些用于SSH的密码套件是如何工作的,您应该阅读RFCs或openssh文档(关于它们的扩展)。例如:
https://datatracker.ietf.org/doc/html/draft-ietf-curdle-ssh-curves-12
https://datatracker.ietf.org/doc/html/draft-ietf-curdle-ssh-ed25519-ed448-11
https://security.stackexchange.com/questions/223643
复制相似问题