我试图更多地了解 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 中的解释,所以如果是这种情况,请随时向我指出。任何提示或解释都会有所帮助。
谢谢你