802.1Xを使用してワイヤレスAPの証明書をダウンロードするにはどうすればよいですか?


11

私が理解している限り、WPA-エンタープライズ(つまり、WPAと802.1X)を使用するワイヤレスアクセスポイントは、接続設定中に公開鍵証明書をクライアントに送信できます。クライアントはこの証明書を検証して、不正なAPに接続していないことを確認できます(HTTPSでの証明書の検証と同様)。

質問:

  • 私はこれを正しく理解しましたか?
  • はいの場合、AP証明書をダウンロードする方法はありますか?理想的には、Linuxで動作するソリューションが欲しいです。

自己署名証明書をダウンロードして、後続の接続試行の確認に使用したいと思います。これは、APのオペレーターにファイルを要求するよりも簡単です。


証明書をダウンロードして保存するための特別なツールは知りませんが、それは平文で見つかるので、Wiresharkまたはtcpdumpでキャプチャできます。debug / verbose wpa_supplicantログに証明書データが表示されたことを思い出したようですので、それも確認してください。これらのアプローチのいずれでも、pcap / log形式から適切なX.509 .cerファイルにデータを変換するために、少しデータを変更する必要がある場合があります。
Spiff 2014

回答:


11

はい、最も一般的なWPA-エンタープライズ構成はPEAPまたはTTLSのいずれかを使用し、どちらもTLS over EAP over 802.1Xを実装しています。

通常、証明書は、まさにこの目的のために、ネットワーク事業者によってすでにどこかで公開されています。これは、ユーザーが要求する必要があるものではありません。

悲しいことに、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

「Certificate(stuff)」の最初のインスタンスを右クリックし、「Export selected packet bytes」を選択します。Wiresharkは、バイナリDER形式でファイルとして保存します。他のすべての証明書についてこれを繰り返します。一番上の(RADIUSサーバーの)には、で設定できる情報がありますaltsubject_match。最後の1つ(ルートCA)はwpa_supplicantにとして指定する必要がありますca_cert

これで、バイナリDER形式のファイルがいくつ*.crtかあり*.derます。それらをPEMの「テキスト」形式に変換します。

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

(wpa_supplicantがOpenSSLをTLSハンドラーとして使用している場合、それに「ルートCA」証明書を与える必要があります。サーバーの証明書は機能しません。

Wiresharkに表示される最後の証明書がルートCAではなく、ディレクトリ内のルートCAの1つによってのみ発行される可能性があることに注意してください/etc/ssl/certs...その場合は、必ず設定domain_suffix_matchしてください。それ以外の場合は、パブリックCAの使用は安全ではありません(802.1Xは残念ながら、たとえば「HTTPSのように」、どの「ホスト名」を検証するかを知りません。)


詳細な説明をありがとう。少し複雑に聞こえます。しかし、それが最も簡単な方法なら、私はやってみます。
sleske 2014

ええ、それは本当にうまくいきました、私はEAP交換をダウンロードしましたtpcpdumpが、魅力のように働きました。面白いことに、私のストリームにはServer Hello、Certificate、...エントリが1つしかありませんでした
mTorres 2018年

私の例では、TLSメッセージは大きすぎるため(特に、大量のRSA証明書の束を送信する場合)、複数のEAPパケットにフラグメント化されています。ただし、常に合計1つのTLS ServerHelloです。
user1686

何か間違ったことを言っている場合はご容赦ください。このようなアクティビティの必要性は、証明書をダウンロードして、最初の接続時に証明書のダウンロードと受け入れを許可しないデバイスに適用することです。
Mauro
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.