Mutual Authenticationというと、通常EAP-TLSのように、サーバ、クライアントともにX.509証明書を使って相互認証することをいいます。
EAP-TTLSは、通常サーバ証明書だけで、それで設定したセキュアなトンネルの中で、MS-CHAPなどのクライアント認証をするものですが、EAP-TTLSでもクライアント証明書を使って、相互認証させることが可能です。
Freeradiusとwpa-supplicantを使って、ちょっと実験してみました。
Freeradiusの設定ですが、通常のEAP-TTLSの設定に加えて、下記設定をします。
/etc/raddb/users に、下記を追記。
user1 EAP-TLS-Require-Client-Cert := Yes
ここのユーザ名は、outer NAIのものです。EAP-TTLSのセカンドフェーズで使われる、MS-CHAPv2ユーザの設定は、また別の名前にしないと、うまくいきません。。ここは同じ名前でもうまくいくやり方があるように思うのですが、いまはまだ模索中です。
これにより、EAP-TTLSでも、クライアント証明書を要求するようになります。
Freeradiusはこれで終了。
次にwpa-supplicantの設定は、こんな感じに。
# EAP-TTLS mutual authentication/MSCHAPv2 configuration for test
network={
key_mgmt=WPA-EAP
eap=TTLS
# Phase1 / outer authentication
anonymous_identity="user1@example.com"
client_cert="C:¥Program Files¥wpa_supplicant¥user1@example.com.der"
private_key="C:¥Program Files¥wpa_supplicant¥user1@example.com.p12"
private_key_passwd="whatever"
# Phase 2 MSCHAPv2
phase2="auth=MSCHAPV2"
identity="user2"
password="password2"
}

コメントする