保護拡張認証プロトコル( Protected EAP 、または単にPEAPとも呼ばれる)は、拡張認証プロトコル(EAP)を暗号化および認証されたトランスポート層セキュリティ(TLS)トンネル内にカプセル化するプロトコルです。[ 1 ] [ 2 ] [ 3 ] [ 4 ]その目的は、EAP の欠点を修正することでした。EAP は、物理セキュリティによって提供されるような保護された通信チャネルを前提としていたため、EAP 会話を保護するための機能は提供されていませんでした。[ 5 ]
PEAP は、 Cisco Systems、Microsoft、およびRSA Securityによって共同開発されました。PEAPv0 はMicrosoft Windows XPに付属していたバージョンで、draft-kamath-pppext-peapv0-00で正式に定義されました。PEAPv1 と PEAPv2 は、draft-josefsson-pppext-eap-tls-eapの異なるバージョンで定義されました。PEAPv1 はdraft-josefsson-pppext-eap-tls-eap-00からdraft-josefsson-pppext-eap-tls-eap-05 まで定義され[ 6 ]、 PEAPv2 はdraft-josefsson-pppext-eap-tls-eap-06から始まるバージョンで定義されました[ 7 ]。
このプロトコルでは、複数のEAPメカニズムを連鎖させることのみを規定しており、特定の方法は規定していません。[ 3 ] [ 8 ]ただし、EAP-MSCHAPv2およびEAP-GTCメソッドの使用が最も一般的にサポートされています。
PEAPはEAP-TTLSと設計が似ており、ユーザー認証を保護するためのセキュアなTLSトンネルを作成するためにサーバー側のPKI証明書のみを必要とし、サーバー側の公開鍵証明書を使用してサーバーを認証します。その後、クライアントと認証サーバーの間に暗号化されたTLSトンネルを作成します。ほとんどの構成では、この暗号化に使用される鍵はサーバーの公開鍵を使用して転送されます。トンネル内で行われるクライアント認証のための認証情報の交換は暗号化され、ユーザー認証情報は盗聴から保護されます。
2005年5月現在、改訂版WPAおよびWPA2規格の認証を受けたPEAPサブタイプは2種類あります。それらは以下のとおりです。
PEAPv0とPEAPv1はどちらも外部認証方式を指し、後続の認証トランザクションを保護するためのセキュアなTLSトンネルを作成するメカニズムです。EAP-MSCHAPv2とEAP-GTCは内部認証方式を指し、ユーザーまたはデバイスの認証を提供します。PEAPで一般的に使用される3つ目の認証方式はEAP-SIMです。
Cisco製品では、PEAPv0は内部EAPメソッドであるEAP-MSCHAPv2とEAP-SIMをサポートし、PEAPv1は内部EAPメソッドであるEAP-GTCとEAP-SIMをサポートします。MicrosoftはPEAPv0のみをサポートし、PEAPv1はサポートしていないため、v0やv1の指定子を付けずに単に「PEAP」と呼んでいます。MicrosoftとCiscoのもう1つの違いは、MicrosoftはEAP-MSCHAPv2メソッドのみをサポートし、EAP-SIMメソッドはサポートしていないことです。
しかし、Microsoft は、Cisco やその他のサードパーティのサーバーおよびクライアント ソフトウェアの多くがサポートしていない別の形式の PEAPv0 (Microsoft は PEAP-EAP-TLS と呼んでいます) をサポートしています。PEAP-EAP-TLS では、クライアント側でデジタル証明書またはより安全なスマートカードをインストールする必要があります。PEAP-EAP-TLS は、元の EAP-TLS と動作が非常によく似ていますが、EAP-TLS では暗号化されていないクライアント証明書の一部が PEAP-EAP-TLS では暗号化されるため、わずかに保護が強化されています。最終的に、PEAPv0 がMicrosoft Windows製品に統合されたことにより、PEAPv0/EAP-MSCHAPv2 が PEAP の実装として圧倒的に普及しています。Cisco の CSSC クライアント (2008 年に販売終了[ 9 ] ) は現在 PEAP-EAP-TLS をサポートしています。
PEAPは市場で非常に成功を収めたため、EAP-TTLSの発明者であり支援者でもあるFunk Software( 2005年にJuniper Networksに買収された)でさえ、無線ネットワーク向けのサーバーおよびクライアントソフトウェアにPEAPのサポートを追加した。
MS-CHAPv2は、マイクロソフトがNT4.0 SP4およびWindows 98で導入した古い認証プロトコルです。
PEAPv0/EAP-MSCHAPv2は、現在最も一般的に使用されているPEAPの形式であり、一般的にPEAPと呼ばれています。内部認証プロトコルはMicrosoftのチャレンジハンドシェイク認証プロトコル(Challenge Handshake Authentication Protocol)であり、Microsoft NTやMicrosoft Active Directoryなど、MS-CHAPv2形式をサポートするデータベースへの認証を可能にします。
EAP-TLSに次いで、PEAPv0/EAP-MSCHAPv2は世界で2番目に広くサポートされているEAP規格です。Microsoft、Apple Computer、Ciscoの最新リリースを含む、さまざまなベンダーからクライアントおよびサーバーの実装が提供されています。その他にも、Open1x.orgプロジェクトのxsupplicantやwpa_supplicantなどの実装が存在します。
他の802.1XおよびEAPタイプと同様に、 PEAPでも動的暗号化を使用できます。
クライアントが認証資格情報を送信する前に、各クライアントでCA証明書を使用してサーバーを各クライアントに対して認証する必要があります。CA証明書が検証されない場合、一般的に偽の無線アクセスポイントを導入することは容易であり、それによってMS-CHAPv2ハンドシェイクを収集することが可能になります。[ 10 ]
MS-CHAPv2にはいくつかの脆弱性が発見されており、その中には総当たり攻撃の複雑さを大幅に軽減し、最新のハードウェアでも実行可能にするものもある。[ 11 ]
PEAPv1/ EAP-GTCは、既存のトークンカードおよびディレクトリベースの認証システムとの相互運用性を保護されたチャネル経由で提供するためにCiscoによって開発されました。PEAP標準はMicrosoftと共同開発されましたが、MicrosoftはPEAPv1全般のサポートを追加しなかったため、PEAPv1/EAP-GTCはWindows OSでネイティブサポートされていません。Ciscoは通常、PEAPの代わりにLEAPやEAP-FASTなどの軽量EAPプロトコルを推奨してきたため、PEAPは一部の人が期待していたほど広く普及していません。
マイクロソフトがPEAPv1のサポートに関心を示さず、シスコもプロモーションを行わなかったため、PEAPv1認証はほとんど使用されていません。 2009年末にリリースされたWindows 7 においても、マイクロソフトはMSCHAPv2以外の認証システムへのサポートを追加していません。
Nokia E66以降の携帯電話には、EAP-GTCをサポートするSymbianのバージョンが搭載されています。
LDAP(軽量ディレクトリアクセスプロトコル)はEAP-GTCのみをサポートしています。