我正在尝试更多地了解SSH的工作原理。我正在使用Wireshark来抓取我的机器之间的数据包(OpenSSH在两端运行)。我被困在Diffie-Hellman Group Exchange Reply数据包中。在加密算法名称之后,RFC4419似乎没有考虑或未描述长度(4字节)和值(1字节)。 RFC说在这个数据包中发送的第一个数据块将是服务器的公钥和证书,但我不知道在哪里寻找证书格式来尝试解码这些数据。
这是从服务器接收的数据包(不包括TCP,IP和以太网数据包信息)。为了便于阅读,我把它展开了。我也明白了我所理解的价值观和实地目的。 RFC 4419指示'主机密钥','f'和'散列签名'在这些位置。标有“ - >”的行有令我困惑的数据。我看不到值0x23(35)与之相关的任何内容。
Packet Length: 444 Padding Length: 10 Key Exchange Msg code: Diffie-Hellman GEX Reply (33) Payload: 00000095 Value = 149 bytes 00000007 7373682d727361 Value = 7 bytes ; "ssh-rsa" ->00000001 23 Value = 1 byte ; 35 00000081 00dca412f58b8d7bea991901652857b3 Value = 129 bytes ; host key ... ... Total of 129 bytes ... 00000080 420b85197d902a986c7c67b2c4f72336 Value = 128 bytes ; f ... ... Total of 128 bytes ... 0000008f Value = 143 bytes 00000007 7373682d727361 Value = 7 bytes ; "ssh-rsa" 00000080 0c9f8b1a7f59c25f279fcc8199ea1ffe Value = 128 bytes ; hash signature ... ... Total of 128 bytes ... Padding String: MAC String:
我已经阅读了RFC 4250-4254和4419以试图找到代码0x23的一些线索,但到目前为止我还没有成功。完全有可能我错过了RFC中的解释,所以如果是这样的话,请随意指出一个。任何提示或解释都会有所帮助。
谢谢
答案 0 :(得分:1)
如果您查看RFC 4253, 6.6. Public Key Algorithms,其中描述了密钥格式,请在ssh-rsa
字符串后面紧跟密钥的指数(mpint e
),在您的情况下为35。