SSHの仕組みについてもっと理解しようとしています。Wireshark を使用して、マシン間を移動するパケットを取得しています (両端で OpenSSH が実行されています)。Diffie-Hellman Group Exchange Reply パケットでスタックしています。暗号化アルゴリズム名の直後に、RFC 4419 で説明されていない、または記述されていない長さ (4 バイト) と値 (1 バイト) があるようです。RFC によると、このパケットで送信されるデータの最初のチャンクはサーバーの公開鍵と証明書になるとのことですが、このデータを試してデコードするための証明書形式を探す場所がわかりません。
これは、サーバーから受信したパケットです (TCP、IP、およびイーサネットのパケット情報は含まれていません)。読みやすいように広げました。また、私が理解している値とフィールドの目的も示しました。「ホスト キー」、「f」、および「ハッシュ署名」は、RFC 4419 によってこれらの位置にあることが示されています。「->」でマークされた行には、私を混乱させるデータがあります。値 0x23 (35) が関連するものは何も見えません。
パケット長: 444 パディングの長さ: 10 鍵交換 メッセージ コード: Diffie-Hellman GEX Reply (33) ペイロード: 00000095 値 = 149 バイト 00000007 7373682d727361 値 = 7 バイト; 「ssh-rsa」 ->00000001 23 値 = 1 バイト。35 00000081 00dca412f58b8d7bea991901652857b3 値 = 129 バイト; ホストキー ... ... 合計 129 バイト ... 00000080 420b85197d902a986c7c67b2c4f72336 値 = 128 バイト。へ ... ...合計128バイト ... 0000008f 値 = 143 バイト 00000007 7373682d727361 値 = 7 バイト; 「ssh-rsa」 00000080 0c9f8b1a7f59c25f279fcc8199ea1ffe 値 = 128 バイト。ハッシュ署名 ... ...合計128バイト ... パディング文字列: MAC 文字列:
RFC 4250-4254 および 4419 を読み、このコード 0x23 の手がかりを見つけようとしましたが、これまでのところ成功していません。RFC で説明を見逃している可能性は十分にあるので、その場合は遠慮なく指摘してください。ヒントや説明は役に立ちます。
ありがとうございました