首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSH中的server_host_key_algorithms

SSH中的server_host_key_algorithms
EN

Cryptography用户
提问于 2016-09-06 12:37:05
回答 1查看 1.3K关注 0票数 2

RFC 4253“安全外壳(SSH)传输层协议”第18页上声明:

server_host_key_algorithms服务器主机密钥支持的算法的名称列表.服务器列出了它拥有主机密钥的算法;客户机列出了它愿意接受的算法。一个主机可能有多个主机密钥,可能有不同的算法。

我的问题是,

在RFC 4253中,"encryption_algorithms“用于对称加密,"mac_algorithms”用于完整性保护,但"server_host_key_algorithms“用于什么?

我读过RFC 4253,但仍然找不到算法的可能用途。

EN

回答 1

Cryptography用户

发布于 2016-09-06 15:02:08

在SSH中,服务器还必须对客户端进行身份验证。否则,中间人(或能够操纵连接的任何其他方,例如通过DNS欺骗)可能模拟服务器并欺骗客户端泄露其密码,或者,在公钥身份验证的情况下,对密码挑战的有效响应(攻击者随后可以使用该响应在实际服务器上登录)。

此身份验证步骤是通过服务器的主机密钥完成的。RFC 4253第8节规定:

密钥交换与带有主机密钥的签名相结合,以提供主机身份验证。

通常,由于互操作性的原因,服务器支持多个签名算法,因此它们需要告诉客户端它们有哪些可用的密钥类型:server_host_key_algorithms字段包含这个列表。

这种机制是您在第一次连接到某个服务器时看到以下警告(可能是熟悉的)的原因:

寄主'example.org (192.0.2.121)‘的真实性是无法确定的。ECDSA密钥指纹为SHA256:Lj0PQQnA9K2NupAxdjJSnxQhVWoVvjTLcUQQWDFS+9A.您确定要继续连接(是/否)吗?

在这里,客户机本质上要求您确认已经验证了服务器的主机密钥。在第一个连接之后,客户端将服务器的主机密钥存储在其known_hosts文件中,并且只有在主机键发生更改时才再次警告用户(例如,如果服务器已经重新安装或确实发生了攻击)。

票数 2
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/39804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档