IEEE802.1Xとは
IEEE802.1Xは、有線LANや無線LANにおけるユーザ認証の仕組みを定めた規格です。当初は有線LANでの利用を目的として策定されましたが、無線LANの初期には暗号化方式としてWEPしかなく、WEPには認証機能がなかったため、IEEE802.1Xが無線LAN環境で強力な認証手段として早く普及しました。もちろん、有線LAN環境でも同じ仕組みを適用することが可能です。
IEEE802.1Xの構成要素
IEEE802.1X認証を実現するには次の3つの要素が必要です。
- サプリカント(Supplicant)
認証を受けるクライアント側の端末、またはその端末に導入されるソフトウェアのことです。PCなどにインストールして使用しますが、現在の多くのOSには標準で搭載されています。 - 認証装置(Authenticator)
サプリカントと認証サーバの仲介役を担うネットワーク機器です。IEEE802.1X対応のLANスイッチや無線LANアクセスポイントが該当し、サプリカントの認証結果に基づいてネットワークへの接続可否を制御します。Cisco製品は有線・無線どちらのスイッチも標準で対応しています。 - 認証サーバ(Authentication Server)
実際にユーザ認証を行うサーバで、IEEE802.1X/EAPに対応したRADIUSサーバが利用されます。認証方式によっては証明書を扱うため、証明書を発行するCA(認証局)が別途必要となる場合もあります。
EAPとは
IEEE802.1Xの認証では、EAP(Extensible Authentication Protocol)が利用されます。これはPPP(Point-to-Point Protocol)を拡張したプロトコルで、データリンク層と認証方式を橋渡しする役割を持ちます。
EAPは汎用的な枠組みであり、実際の認証方式はその上位の「Authentication層」で決定されます。EAPの代表的な認証方式には次のようなものがあります。
- EAP-MD5:簡易的だが安全性は低い
- EAP-TLS:証明書を使った強力な方式
- EAP-TTLS / PEAP:TLSを応用し、IDやパスワードを安全にやり取りできる
- LEAP / EAP-FAST:Cisco独自の拡張方式
EAPメッセージはLAN上で扱えるように EAPOL(EAP over LAN) という仕組みでやりとりされます。これにより、有線LANでも無線LANでも同じように利用可能です。
認証サーバとの通信
IEEE802.1X/EAPのプロトコルスタックにはIPが含まれていません。ではどのように認証サーバと通信するのかというと、サプリカントが送信したEAPメッセージを認証装置(スイッチやAP)が受け取り、それをRADIUSプロトコルを使ってIPパケットに変換し、認証サーバへ転送します。
IEEE802.1Xにおける認証の流れ
IEEE802.1X認証は、サプリカント(クライアント)がネットワークへ接続する際に、認証装置(スイッチやAP)と認証サーバ(RADIUSなど)を仲介させて行われます。基本的な流れは次の通りです。
- クライアント(サプリカント)がネットワークに接続を試み、APやスイッチ(認証装置)に対して「どの認証方式で通信したいか」を通知する。
- 認証装置はクライアントの要求を受け取り、EAP(Extensible Authentication Protocol)による処理を開始する。
- クライアントと認証サーバの間で、指定された認証方式に従ったやり取りを行う。この際、実際の通信は認証装置が仲介し、プロトコル変換を行う。
- 認証が成功すると、認証サーバが認証結果を通知し、認証装置のポートが解放されてクライアントがネットワークに接続できるようになる。
- 認証サーバがセッション鍵のもととなる情報を認証装置に送信する(オプション機能)。
- 認証装置は暗号鍵を生成し、クライアントに配布する(オプション機能)。
- 認証完了後、クライアントとネットワーク間で暗号化された通信が開始される。
認証方式によっては鍵の配布(⑤⑥)が省略される場合もあります。
IEEE802.1X/EAP 認証方式の比較
IEEE802.1XはEAPを利用し、さまざまな認証方式を選択できます。方式ごとの特徴を整理してみましょう。
- EAP-MD5
クライアントはユーザ名とパスワードで認証。サーバ側に証明書は不要ですが、サーバ認証が行えず、WEPキーも固定のためセキュリティは極めて低い。現在ほとんど利用されない。 - LEAP(Cisco独自方式)
ユーザ名とパスワードで相互認証を行える。EAP-MD5よりは安全だが、辞書攻撃の脆弱性が指摘され現在は非推奨。 - EAP-FAST(Cisco独自方式)
LEAPの脆弱性を克服した後継方式。クライアント証明書や認証局を必要とせず導入しやすい。辞書攻撃に強く、中小規模ネットワークで利用されやすい。 - EAP-TLS
クライアント・サーバ双方で証明書を用いるため非常に強固。セキュリティレベルは最高だが、証明書の発行や管理に大きな手間がかかる。大企業やセキュリティ重視の組織で採用されやすい。 - EAP-TTLS
サーバ側で証明書を利用し、クライアント側はユーザ名とパスワードで認証するハイブリッド方式。TLSの拡張版。Windows環境で標準対応していない場合があり、公衆無線LANや大学などで採用例がある。 - PEAP
サーバ側で証明書を利用し、クライアントはユーザ名とパスワードで認証する方式。Windows標準で対応しているため導入が容易。TLSと比べると運用管理が軽く、企業で最も一般的に利用されている。
特にPEAPには次の2つの派生方式があります。
- PEAP-TLS:サーバ・クライアント双方で証明書を利用する方式
- PEAP-MS-CHAPv2:サーバは証明書、クライアントはパスワードを利用する方式(最も普及している)
IEEE802.1XとEAP-TLSの基本構成
IEEE802.1Xを利用してEAP-TLS認証を行う場合、登場する役者は大きく4種類あります。まず「サプリカント」と呼ばれるのがクライアント端末で、ノートPCやスマートフォンがこれに当たります。次に「認証装置」があり、これはスイッチや無線LANアクセスポイントのようにクライアントとネットワークの境界に位置する機器です。そして実際にユーザの正当性を確認する「認証サーバ」があります。通常はRADIUSサーバが使われ、Active DirectoryやLDAPと連携するケースも多いです。
さらにEAP-TLSでは必ず「証明書」を使ったクライアント認証が行われるため、証明書を発行するための「CA(認証局)」も構成に含まれます。つまり、IEEE802.1XのEAP-TLS認証を構成するためには以下の4つが欠かせません。
- サプリカント(クライアント端末)
- 認証装置(スイッチやアクセスポイント)
- 認証サーバ(RADIUSサーバなど)
- CA(認証局、証明書を発行する役割)
EAP-TLS認証の流れ
IEEE802.1Xの仕組みでは、クライアントが認証に成功するまでは自由に通信することはできません。具体的には、そのクライアントが接続しているポートを通過できるのはごく限られた種類のフレームだけです。許されているのは以下の3つです。
- CDP(Cisco Discovery Protocol)
- STP(Spanning Tree Protocol)
- EAPOL(EAP over LAN、IEEE802.1X専用の制御フレーム)
つまり、認証が済むまでは通常のIP通信はできず、認証プロセスだけが進行できる状態になっています。そして認証が完了した瞬間から、そのポートは解放され、通常の通信が可能になります。
EAP-TLSの認証シーケンスでは、サプリカントが自分の証明書を提示し、認証サーバがそれを検証するという流れが必ず含まれます。ここで認証局による署名の確認が行われるため、証明書の信頼性が保証され、なりすましが防止されます。