根据RFC 4419,在客户端DH密钥交换初始化消息之前,服务器将向子客户端发送子组(g)的大型安全素数(p)和生成器。我正在看一个wireshark数据包捕获但没有看到它们。我在Server Key Exchange Init消息中看到以下内容(见图)
p
和g
在哪里?我错过了什么吗?
[edit]接下来的两个数据包是
答案 0 :(得分:1)
如果您要使用diffie-hellman-group-exchange-sha1
,它将在下一个数据包中低于它。屏幕截图中显示的内容是Algorithm Negotiation。
当我们进入DH Key Exchange时,密钥交换就在本节之后开始。但是只有使用上述密钥交换方法才能传递这些数字! (组交换 - 不同的算法可以与固定组一起使用)。
在section 3 of RFC4419下,您可以看到来自服务器的消息SSH_MSG_KEX_DH_GEX_GROUP
,该消息会将p
和g
发送给客户端。
在您的示例中,您使用的是diffie-hellman-group1-sha1
或diffie-hellman-group14-sha1
,它在RFC4253中定义并使用固定组和素数。