Я пытаюсь понять больше о том, как работает SSH.Я использую Wireshark для захвата пакетов, идущих между моими машинами (OpenSSH работает на обоих концах).Я застрял в пакете ответа группы обмена Диффи-Хеллмана.Кажется, что есть длина (4 байта) и значение (1 байт), не учитываемые или не описанные в RFC 4419, сразу после имени алгоритма шифрования.В RFC говорится, что первая порция данных, отправленных в этом пакете, будет открытым ключом и сертификатами сервера, но я не знаю, где искать форматы сертификатов, чтобы попытаться декодировать эти данные.
Вотпакет, полученный от сервера (информация о пакетах TCP, IP и Ethernet не включена).Я разложил это для удобства чтения.Я также указал значения и цели поля, как я их понимаю.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, так что не стесняйтесь указывать мне одно, если это так.Любые подсказки или объяснения будут полезны.
Спасибо