web-dev-qa-db-ja.com

Wiresharkを使用したEAP-TLSまたはEAP-TTLSでのトンネルバイトのデコード

RADIUSによって運ばれるEAP-TTLS会話用のトラフィックのいくつかのpcapがあります。私もEAPoLによって運ばれているものがありますが、その場合の答えはlessでさえ簡単かもしれません(ただし、必ずしもそうではないかもしれません)。どちらの場合でも、WiresharkでEAPコンテンツを表示でき、TLSネゴシエーション/ハンドシェイク、および暗号化されたTLSバイトまでドリルダウンできます。

調査中の認証交換のさらに別のレイヤーが含まれているため、暗号化されたデータ自体の内容を確認すると便利です。

これはすべて私自身のテストシステムを使用して生成されているので、利用可能なすべての情報、証明書などを入手しており、すべきことが暗号化されたTLSデータ。

私はWiresharkチュートリアルに従いました。 http://wiki.wireshark.org/SSL

しかし、私はこれにはあまり運がなく、おそらくWiresharkはそれほど複雑ではないTLSのケース、つまり、日常的なプロトコル、または一般的なまたはガーデンSSLプロトコル(TCP HTTP、SSH、RADIUS、SCPなど.

SSL EAP over EAP RADIUS over UDP)のもう少し複雑なケースと、さらに特殊なSSL over EAP over EAPoLのケースを検討しています。

私は、ハンドシェイク情報が存在する1つまたは2つのEAPパケットでアプリデータが復号化されているのを見ていると「思う」かもしれませんが、この情報は残りのEAPパケットに引き継がれていないようです。

私はここの雑草にあまりにも遠いのかもしれませんか?または、何か足りないものがあるかもしれませんが、それは確かにそのように見えます可能であるはずです

オフラインで(またはNULL暗号を使用して)解読することで、どういうわけかこれを回避できると確信していますが、最初にWiresharkですべての手段を使い果たしたと確信しています。

3
robert

RSAキーがあり、トランスポートが非DHE暗号スイートを使用する場合、WiresharkでEAP-TLSを復号化できるはずです。ただし、 開発バージョン(v1.99.10rc0-191-g5e635ad)で修正された というバグがあり、2.0リリースになってしまいます。

現時点では、ポート番号などにダミー値を指定する必要がありますが、その後はEAP-TLSトラフィックを復号化できるはずです。 「編集」、「設定」、「プロトコルSSL」、「RSAキー」リストに移動します。次に、以下の詳細を入力します。

  • IPアドレス:any
  • ポート:
  • プロトコル:data(ここでは何でも機能します)
  • キーファイル:キーファイルへのパス
  • パスワード:PEM形式の鍵ファイルの場合は空、それ以外の場合はPKCS#12形式のパスワード。
2
Lekensteyn

ロバート-私は最近同じ問題に直面しました。 WiresharkはEAP over SSLをデコードしません。あなたができることは、偽のWiresharkを取り除き、ssl会話全体を取り、元のeapパケットからのSSLデータを使用してそれを疑似tcpセッションに構築し、フレームを再送信することです。私はPython rawソケットを使用してtcpセッションを生成し、wiresharkからtcpセッションをキャプチャしました(1つのpc rawソケットのみで任意のソース/宛先コンボでフレームを生成できることに注意してください)。プロトコルフィールドをHTTPの代わりに食べるように設定している元のTCPセッションの場合と同じようにSSL復号化。データは復号化されますが、SSL経由のEAPはWiresharkを介して完全に正しく解釈されないため、EAPヘッダーを実行する必要がある場合があります。/dataは手動でデコードされますが、少なくとも暗号化されません。ここに、eap-peap復号化について上記で説明した内容に関する詳細を提供するシスコの記事へのリンクがあります https://supportforums.Cisco .com/blog/154046

お役に立てれば

1
FemtoEng