私の知る限り、WPA-Enterpriseを使用するワイヤレスアクセスポイント(つまり、WPA plus 802.1X)は、接続のセットアップ中に公開鍵証明書をクライアントに送信できます。クライアントは、この証明書を確認して作成できます。不正なAPに接続していないことを確認してください(HTTPSでの証明書の検証と同様)。
質問:
自己署名証明書をダウンロードして、後続の接続試行の確認に使用したいのですが。これは、APのオペレーターにファイルを要求するよりも簡単です。
はい、最も一般的なWPA-Enterprise構成は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
「証明書(stuff)」の最初のインスタンスを右クリックし、「選択したパケットバイトをエクスポート」を選択します。 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ハンドラーとして使用している場合は、mustに「ルートCA」証明書を付与します。サーバーの証明書を付与しても機能しません。
Wiresharkで表示される最後の証明書がルートCAのものではなく、発行者/etc/ssl/certs
ディレクトリ内のルートCAの1つである可能性もあることに注意してください...その場合その場合は、必ずdomain_suffix_match
も設定してください。そうしないと、パブリックCAの使用が安全でなくなります(802.1Xは、残念ながら、どの「ホスト名」を検証するかを知りません。