APが提供するWPA2 PEAP証明書を確認するには?

APが提供するWPA2 PEAP証明書を確認するには?

証明書を確認しない場合にのみ機能するWPA2企業ネットワークに接続する必要があります。誰もがMSCHAPv2メッセージを見ることができるので、これをしたくありません。

この問題を解決するための最初のステップは、APによって提供された証明書を見て、その証明書のみを信頼するようにwpa_supplicantを設定することです。ところで、資格を取得する方法がわかりません。 wpa_cli "status"コマンドはそれを表示せず、どのログにもありません。

また、どのSSL / TLS暗号スイートが使用されているのか疑問に思います。 openssl s_clientを使用して手動で接続できますか?

ベストアンサー1

@grawityのように、Wiresharkを使用してハンドシェイクをダンプし、opensslを使用してバイナリデータをPEMに変換できます。エマルジョンスーパーユーザーの場合:

残念ながら、wpa_supplicantにはデバッグモードでも証明書をダンプするオプションはありません。 (より良い方法が見つかったら更新します。)しかし、実際のEAPOL認証プロセスは継続的に監視できます。まずWiresharkをインストールします。

接続が切断されたら、インターフェイスを手動で起動してキャプチャを開始します。

$ sudo ip link set wlan0 up
$ wireshark -ki wlan0 &

wpa_supplicantを起動すると、すぐにTLSハンドシェイクが表示されます。

サーバーは ServerHello の直後に証明書を送信します。最初のパケットを選択してドリルダウンします。

802.1X
└─Extensible Authentication Protocol
  └─Secure Sockets Layer
    └─Handshake Protocol: Certificatte
      └─Certificates

証明書(もの)」を選択し、「選択したパケットバイトのエクスポート」を選択します。WiresharkはそれをバイナリDER形式のファイルとして保存します。他のすべての証明書に対してこれを繰り返します。altsubject_match最後の(ルートCA)wpa_supplicantに提供する必要がありますca_cert

これで、バイナリDER形式のいくつかのファイルができました*.crt*.derPEMは「テキスト」形式に変換します。

openssl x509 -inform DER < mycert.der > mycert.pem

(wpa_supplicant が OpenSSL を TLS ハンドラとして使用する場合〜しなければならない「ルートCA」証明書を入力してください。サーバー証明書を提供しても機能しません。

Wireshark に表示される最後の証明書がルート CA ではない可能性があります。発行者ディレクトリにあるルートCAの1つ/etc/ssl/certs...この場合は設定する必要がありますaltsubject_match。それ以外の場合、パブリックCAを使用することは安全ではありません。残念ながら、802.1Xは、HTTPSのように確認する「ホスト名」が何であるかわからないためです。たとえば、そうです。 )

おすすめ記事