Tsharkを使用して人間が読める形式でSSLハンドシェイクのダンプを取得するにはどうすればよいですか?失敗したSSLハンドシェイクの問題をデバッグするために、これをベンダーに提供する必要があります。
これは、GUIのないリモートサーバーで実行されるため、wiresharkではなくtsharkで実行する必要があります。
このような。
tshark -nn -i <interface> -s 0 -w mycapture.pcap <hostname> and port <portnumber>
置換<interface>
は、キャプチャするインターフェイス名(例:eth0
)。置換<hostname>
は、パケットをキャプチャするリモートホストの名前またはIPアドレスです。置換<portnumber>
サービスが実行されているポート(おそらく443
)。
代わりにtcpdump
を使用することもできます。 Wiresharkとtcpdump
はどちらもキャプチャにlibpcapを使用するため、まったく同じ情報をキャプチャします。結果のファイルをコピーして、別のコンピューターのWiresharkで開くこともできます。
tcpdump
とtshark
のコマンドラインフラグは十分に近いため、ほとんどの場合、互換的に使用できます。
Tsharkでフィルターを使用する方法を既に知っていると仮定して、次の表示フィルターを指定するだけです。
ssl.handshake.type == 1
すべてのsslトラフィックが必要な場合は、ssl
をフィルターとして使用します。
ペイロードがsslであるかどうかをキャプチャフィルタリングメカニズムが認識していないため、これらをキャプチャフィルターで直接使用することはできません。
または、sslトラフィックが通過するポートがわかっている場合は、そのポートにキャプチャフィルターを使用できます。たとえば、sslトラフィックがポート443に送信される場合は、フィルターport 443
を使用します。
詳細については、以下を参照してください。
人間が読める形式でSSLトラフィックをキャプチャし、ファイルに入れるためのコマンドの例は次のとおりです。
tshark -i <interface> -c <no. of packets to capture> -V -R "ssl" > capturefile.txt
またはキャプチャフィルターを使用する
tshark -i <interface> -c <no. of packets to capture> -V -f "port 443" > capturefile.txt
詳細は tshark man page も参照してください。