1

我试图更多地了解 SSH 的工作原理。我正在使用 Wireshark 来抓取在我的机器之间传输的数据包(OpenSSH 在两端运行)。我被困在 Diffie-Hellman Group Exchange 回复包中。在加密算法名称之后,似乎有一个长度(4 字节)和值(1 字节)没有被 RFC 4419 解释或描述。RFC 说这个数据包中发送的第一块数据将是服务器的公钥和证书,但我不知道在哪里寻找证书格式来尝试解码这些数据。

这是从服务器接收到的数据包(不包括 TCP、IP 和以太网数据包信息)。为了便于阅读,我将其展开。我还指出了我理解的值和字段用途。RFC 4419 指出“主机密钥”、“f”和“哈希签名”位于这些位置。标有“->”的行包含让我感到困惑的数据。我看不到任何与 0x23 (35) 值相关的东西。

数据包长度:444
填充长度:10
  密钥交换
    消息代码:Diffie-Hellman GEX 回复 (33)
    有效载荷:
  00000095 值 = 149 字节
  00000007 7373682d727361 值 = 7 个字节;“ssh-rsa”
->00000001 23 值 = 1 字节;35
  00000081 00dca412f58b8d7bea991901652857b3 值 = 129 字节;主机密钥
           ...
           ... 共 129 个字节
           ...

  00000080 420b85197d902a986c7c67b2c4f72336 值 = 128 字节;F
         ...
         ... 共 128 个字节
         ...

  0000008f 值 = 143 字节
  00000007 7373682d727361 值 = 7 个字节;“ssh-rsa”
  00000080 0c9f8b1a7f59c25f279fcc8199ea1ffe 值 = 128 字节;哈希签名
           ...
           ... 共 128 个字节
           ...
    填充字符串:
    MAC 字符串:

我已经通读了 RFC 4250-4254 和 4419,试图为这段代码 0x23 找到一些线索,但到目前为止我还没有成功。我完全有可能错过了 RFC 中的解释,所以如果是这种情况,请随时向我指出。任何提示或解释都会有所帮助。

谢谢你

4

1 回答 1

1

如果您查看RFC 4253, 6.6。Public Key Algorithms,其中描述了密钥格式,紧随ssh-rsa字符串之后是密钥的指数 ( mpint e),在您的情况下为 35。

于 2011-07-16T21:59:09.040 回答