企業利用の本命,IEEE 802.1x認証


図1●IEEE 802.1x認証の概要
IEEE 802.1x認証の基本は,未認証無線クライアントのデータをネットワークに流さないこと。アクセス・ポイントで認証要求を一度終端することで各無線クライアントの認証状態を正確に把握できる
[画像のクリックで拡大表示]

図2●EAP-TLSでの信頼関係
認証サーバー,無線クライアントは事前に認証局(CA)から証明書の発行を受ける。証明書内の電子署名などを確認し,互いを信頼し合う。認証局は信頼されているという前提ですべての信頼関係が成立している
[画像のクリックで拡大表示]

図3●EAP-TLSのシーケンス
[画像のクリックで拡大表示]

図4●EAP-TTLSのシーケンス
[画像のクリックで拡大表示]

 第5回でも少し触れたように,IEEE 802.1xは認証機能を含んでいる。このIEEE 802.1x認証の基本的な考え方は,未認証の無線クライアントから送信されたパケットをネットワークに流さないことである(図1)。

 IEEE 802.1xを利用する場合,無線クライアントにはサプリカント(クライアント用ソフト),ネットワークには認証サーバーが必要になる。また,無線クライアント,アクセス・ポイント,認証サーバーのすべてが同じ暗号化方式と認証手順をサポートしている必要がある。この条件が整って初めてIEEE 802.1xが利用できる。無線クライアント側にも設定などが必要なので,ユーザーに負荷がかかることは否定できないが,Windows XPのようにOSに組み込まれているサプリカントを利用すれば,決して難しくはない。

 IEEE 802.1xでは,アクセス・ポイントはオーセンティケータと呼ばれ,無線クライアントからの認証要求を一度終端し,認証データをRADIUSプロトコルを使って認証サーバーへ転送する。無線クライアントから見ればアクセス・ポイントが認証を行っているように見えるが,実際に認証を行っているのはネットワーク上にある認証サーバーである。

 この方式のメリットは,無線クライアントが認証済みか未認証か,および,認証に成功したか失敗したかをアクセス・ポイントが把握でき,認証要求以外のパケットをネットワークに転送すべきか否かを確実に判断できることである。さらに,認証サーバーを使うことによって,どこのアクセス・ポイントへアクセスしても,同じログイン情報が利用できる。

 IEEE 802.1xの認証では,EAP(Extensible Authentication Protocol)が用いられ,そのタイプには(1)EAP-TLS(EAP-Transport Level Security),(2)EAP-TTLS(EAP-Tunneled TLS),(3)PEAP(Protected EAP)などがある。以下,順に概要を説明する。

(1)EAP-TLS:

 まずEAP-TLSでは,SSL 3.0(Secure Sockets Layer 3.0)を基に標準化されたTLS 1.0(Transport Level Security 1.0)をEAPのパケット・フォーマットで実行する。認証手順はTLSとほぼ同じだ。

 EAP-TLSでは認証サーバー,無線クライアントの双方に,認証局(CA:Certificate Authority)が発行したサーバー証明書,クライアント証明書が必要になる。他のユーザー名,パスワードを用いる方式と比較して,利用ユーザーだけでなく利用機器まで特定できるのが特徴的である。

 証明書には,ユーザー名,有効期限などの情報とCAの電子署名が含まれる。この証明書をサーバーとクライアントで交換し,電子署名に間違いがなければお互いを信頼する公開鍵認証方式を用いる(図23)。電子署名はCAが持つ秘密鍵で暗号化されていて,これをCAの公開鍵で復号化すれば改ざんの検知ができる。

 ここで「CAが信頼できるか?」という問題に突き当たるが,これは「信頼する」と決めるしかない。現在では,証明書を有償で発行する企業/機関は信頼できるものとして,CAの証明書(ルート証明書)がWindows XPなどに事前にインストールされている。このような企業/機関から証明書の発行を受けた場合はほぼ問題にならないが,自社でCAを作成し(ローカルCA),証明書を発行した場合は,事前にルート証明書をインストールしておかないとエラーになり接続できないことがある。証明書の発行元が信頼されていなければ証明書そのものが信頼できなくなるからだ。

(2)EAP-TTLS

 次に,EAP-TTLSの認証手順はEAP-TLSとほとんど同じだが,無線クライアント側のクライアント証明書を利用する代わりにユーザー名,パスワードを使う(図4)。無線クライアントはサーバー証明書の内容でサーバーを信頼し,認証サーバーはユーザー名とパスワードで無線クライアントを認証する。無線クライアント側に証明書をインストールする必要が無いのとクライアント証明書の管理が不要であるため手軽な方法と言える。

 難点は,Windows XPに組み込まれていないことだ。Windows XPでEAP-TTLSを利用するためには,無線クライアント側にサプリカントを別途インストールしなければならない。

(3)PEAP

 三つ目のPEAPの認証手順や方式は,ほとんどEAP-TTLSと同様だ。TTLSサーバーと認証サーバーが分割されている場合は,トンネル化される区間がEAP-TTLSとPEAPで異なるが,現状では認証サーバーが双方の機能をサポートしているため差異が無いとも言える。細かな技術の違いより,PEAPがWindows XPに組み込まれているということの方が大きな違いと言える。

多くの機器で使えるWeb認証


図5●Web認証のシーケンス
無線クライアントが接続された後,HTTP/HTTPSパケットの送信を待ち受ける。HTTP/HTTPSが検出されたら実サーバーには転送せず,リダイレクション・パケットなどを利用してポータル・サーバーの画面を表示させ,ユーザー名,パスワードの入力を求める。入力されたユーザー名,パスワードは認証サーバーで認証される
[画像のクリックで拡大表示]

 Web認証は,Internet ExplorerなどのWebブラウザを使い,ユーザーにユーザー名とパスワードの入力を求める認証方式である。未認証の無線クライアントには,WebブラウザでのIP通信ができるようIPアドレスの割り当て程度を行い,その他のアクセスはすべて禁止してしまう。

 Web認証の動作概要は以下のとおり(図5)。

(1)無線クライアントにIPアドレスを付与

(2)無線クライアントから送信されるHTTP/HTTPSパケットを待ち受け,ポータル画面の出力を促すパケット(リダイレクトなど)を返信する

(3)返信されたパケットの内容に従い,ポータル画面へアクセス

(4)ユーザー名,パスワードの入力を求めるポータル画面を表示する

(5)ユーザーがユーザー名,パスワードを入力

(6)認証に成功すればネットワークへのアクセスを許可し,失敗すれば(2)の状態に戻る

 Web認証自体は無線LANに限らず,ホテルや空港などのネット接続サービスで広く利用されている。そのため,Web認証専用サーバーも存在し,ユーザー名,パスワードの入力を求めるページをSSLで暗号化することも行われている。

 Web認証の最大のメリットは,ネットワークにアクセスする機器ならどのバージョンのどんなOSを利用していても,Webブラウザが用意されていて認証可能なことだ。ただし,プリンタや無線IP電話など,ログイン情報の入力のためのインタフェースを持たない機器も例外としてある。

信頼感を得ているVPN

 VPN(Virtual Private Network)は広く普及していて,ある程度の信頼感を得ている。VPNは主に暗号化のために利用しているという企業もあると思うが,VPNではサーバー,クライアント間のプロトコルによる認証のほか,ユーザー名,パスワードも必要になり,認証としての機能もある。これまで有線LANで利用してきた技術が無線LANでも利用可能と考えればよいだろう。

運用を考慮して認証方式を選ぶ

 企業が導入する場合,認証方式の信頼度,無線クライアントの機種,機器特定,導入の容易さ,対象人数など,考慮すべき点はいろいろある。

 学生が利用するキャンパス・ネットワークのようにクライアントの機種,OSを特定できないような場合はWeb認証が便利である。Web認証であればほとんどのクライアントが利用でき,かつクライアント側への設定が不要だからだ。管理者側もユーザー名とパスワードさえ用意すれば認証が行える。ただし,Web認証では暗号化が一切考慮されていないため,共有鍵方式のTKIP(Temporal Key Integrity Protocol)などの設定が別途必要になる。

 Windows XP搭載PCがメインの無線クライアントの企業では,暗号方式も考慮しIEEE 802.1xの利用が好まれている。クライアント証明書の発行や管理の負荷が加わっても機器特定をしたいためにEAP-TLSを利用する企業もあれば,手軽にPEAPを利用する企業もある。無線IP電話やプリンタなどIEEE 802.1xをサポートしていない機器のためにMAC認証を併用することも多い。

 認証手順は実際の運用を考慮し,あまり煩雑な方法にしないほうがよいだろう。今では無線LAN製品の機能が向上しているので,簡単で効果的な方法が見つかると思う。

 次回は,無線IP電話について解説する。