2012 年 8 月 21 日、セキュリティ アドバイザリ 2743314 カプセル化されていない MS-CHAP v2 認証により、情報漏えいが起こる を公開しました。
このアドバイザリでは、一般に公開された MS-CHAPv2 プロトコルの既知の脆さを狙った悪用コードが一般に公開されたこと、さらに推奨される対応策についてお知らせしています。
アドバイザリの影響範囲を正しく理解していただくために、今回の記事では、MS-CHAPv2 とは何か、利用のされ方など、背景となる情報についても説明します。
ぜひ、内容をご一読いただき、ご利用の環境における影響をご確認ください。
概要
アドバイザリ 2743314 では、MS-CHAPv2 プロトコルにおいて、既知の脆さを狙った悪用コードが一般に公開されたこと、さらに推奨される対応策についてお知らせしています。
- MS-CHAPv2 を単体で利用している場合に、MS-CHAPv2 認証のやり取りを第三者が解析することで、情報漏えいが発生する可能性があります。
- 拡張プロトコル (PEAP) を利用するなどして、MS-CHAPv2 認証のやり取りをカプセル化し、第三者がやり取りを確認できない場合は、影響を受けません。
- VPN においては、PPTP 接続にて MS-CHAPv2 認証を、追加の拡張プロトコル (PEAP) を伴わずに単体で利用している場合に影響を受けます。
- VPN において PPTP 接続にて MS-CHAPv2 認証を利用している場合でも、PEAP 認証を併用している場合や、VPN にてその他の接続タイプである L2TP, SSTP や IKEv2 を利用している場合は影響を受けません。
対応策として、影響を受けるタイプを利用している場合には、影響を受けないタイプ、認証方式への変更を推奨しています。
なお、無線・有線接続の場合、Windows クライアントにおいては MS-CHAPv2 認証を PEAP と共に利用するオプションのみを提供しています。このため、単体で利用するシナリオはなく影響を受けません。無線・有線環境については、構築ガイダンスを公開しており、このガイダンスに従って構築している場合は影響を受けません。
タイトル:チェックリスト: セキュリティで保護されたワイヤレス アクセス用に NPS を構成する
URL: http://technet.microsoft.com/ja-jp/library/cc771696.aspx
影響概要表:
シナリオ | タイプ | 認証方式 | 影響 |
---|---|---|---|
VPN | PPTP | PAP | 受けない |
MS-CHAPv2 | 受ける | ||
EAP-MS-CHAPv2 | 受ける | ||
EAP-TLS | 受けない | ||
PEAP-MS-CHAPv2 | 受けない | ||
PEAP-TLS | 受けない | ||
L2TP | すべて | 受けない | |
SSTP | すべて | 受けない | |
IKEv2 | すべて | 受けない | |
有線/ 無線認証 | WEP | オープンシステム認証事前共通鍵 | 受けない |
802.1x | EAP-TLS | 受けない | |
PEAP-MS-CHAPv2 | 受けない | ||
PEAP-TLS | 受けない | ||
WPA パーソナル | 事前共有鍵 | 受けない | |
WPA エンタープライズ | EAP-TLS | 受けない | |
PEAP-MSChapv2 | 受けない | ||
PEAP-TLS | 受けない | ||
WPA2 パーソナル | 事前共有鍵 | 受けない | |
WPA2 エンタープライズ | EAP-TLS | 受けない | |
PEAP-MS-CHAPv2 | 受けない | ||
PEAP-TLS | 受けない |
MS-CHAPv2 ってなに?
MS-CHAPv2 とは、Microsoft チャレンジハンドシェイク認証プロトコルと呼ばれる認証方式で RFC 2759 Microsoft PPP CHAP Extensions, Version 2 として定義された認証プロトコルです。
リモート アクセスを行う際に、実装される認証方式のひとつで、ユーザー名とパスワードを利用して認証を行います。
認証には、チャレンジ レスポンス方式を利用しています。
認証の流れ:
1. 認証を行うサーバーが、まず、クライアントに対して「チャレンジ」と呼ばれるデータを送信します。チャレンジは、セッション識別子とランダムな文字列で構成されます。
2. クライアントは、受け取ったチャレンジと、自身のパスワードを組み合わせて演算を行い、「レスポンス」と呼ばれる値を生成します。
3. クライアントにて、ピアチャレンジを生成します。
4. クライアントは次の項目を含んだ応答をハッシュ化、暗号化をおこない、サーバーに返します。
- ・ ユーザー名
- ・セッション識別子、パスワード
- ・生成した「レスポンス」
- ・生成した「ピアチャレンジ」:クライアントから送信するチャレンジ文字列。
5. サーバーにおいても、クライアントに送信した「チャレンジ」と、ユーザーのパスワードを基に、「レスポンス」を生成しておきます。サーバーにて生成したレスポンスと、ユーザーから送られたレスポンスが一致するか、確認を行います。
一致しない場合は、認証失敗と判断します。
6. また、サーバーにて、クライアントから送られた「ピアチャレンジ」に対する応答を生成します。
7. サーバーからクライアントに、サーバーにおける認証結果、「ピアチャレンジ」に対するレスポンスを、送信します。
8. クライアントにおいても、「ピアチャレンジ」に対する応答を生成し、サーバーから送付されてきた応答と一致するか確認します。
一致していれば、認証成功と判断します。
MS-CHAP v2 ではで、4 の応答送信 (レスポンス) の際に、ユーザー名とパスワードがクライアントとサーバー間でやり取りが行われますが、ユーザー名とパスワードは、ハッシュ化 (それぞれ SHA1, MD4) したうえで、さらに暗号化 (DES) を行うことで安全性を担保しています。
MS-CHAPv2 利用のされ方
MS-CHAPv2 認証方式は、単体でも利用できます。しかしながら、MS-CHAPv2 を代表とした「チャレンジ レスポンス」を利用する方式は、セキュリティ面には課題があることが公表されています。
このため、より安全性を保持するために、MS-CHAPv2 は、拡張認証プロトコル (PEAP) を組み合わせて利用する方法が一般的になっています。
PEAP においては、2 つのパートからなる処理が行われます。
第 1 のパートでは、証明書ベースのサーバー認証を行い、クライアントとサーバー間に、TLS チャネルを生成します。
これによって、クライアントとサーバーの間に、通信の「トンネル」ができ、通信がカプセル化されるため、第三者からは、その後のやり取りが見えないようになります。
第 2 のパートでは、クライアントの認証を行います。認証は、クライアントとサーバー間の間に確立された「認証トンネル」の中で行われます。
これにより、認証のやり取りそのものが、第三者からは見えないようになっています。
このため、MS-CHAP v2 を PEAP と組み合わせて利用している場合、「認証トンネル」の中で MS-CHAPv2 の認証やり取りが行われるため、第三者からは、MS-CHAPv2 の認証のやり取りを見ることができません。
このため、今回のアドバイザリで説明されている問題の影響を受けません。
<図: PEAP を利用することで MSCHAPv2 認証 はカプセル化されます>
参考:
The Cable Guy - 2002 年 7 月セキュリティ保護されたパスワード ベースのワイヤレス アクセスのための PEAP および MS-CHAP v2
http://technet.microsoft.com/ja-jp/library/bb878077.aspx
MS-CHAPv2 はどこで利用されているの?
MS - CHAP v2 は主に、以下のシーンにおいて、認証方式として利用されています。
・ VPN 接続
・ 有線 LAN 接続 / 無線 (ワイヤレス) LAN 接続、WIFI 接続
今回のセキュリティアドバイザリにおいて影響を受けるのは、VPN 接続のシナリオです。
有線・無線接続においては、Windows クライアントにおいては有線、無線認証においては、MS-CHAPv2 認証は PEAP と共に利用するオプションのみを提供しているため、影響を受けません。
以下にそれぞれのシーンにおける利用方式を説明します。
VPN 接続
VPN とは、拠点間の「プライベート回線」を確立する接続です。
大きく分けて 4 つの接続タイプがあります。
タイプ | 概要 | VPN 区間の暗号化方式 | 認証方式 | 影響 |
---|---|---|---|---|
PPTP | PPP プロトコルをベースとしたプロトコル | MPPE | PAP | 受けない |
MS-CHAPv2 | 受ける | |||
EAP-MS-CHAPv2 | 受ける | |||
EAP-TLS | 受けない | |||
PEAP-MS-CHAPv2 | 受けない | |||
PEAP-TLS | 受けない | |||
L2TP | IPSEC と組み合わせてパケット全体を暗号化します。 | IPSEC など | ・EAP-TLS・PEAP-MS-CHAPv2・PEAP-TLS・MSCHAPv2・PAP | 受けない |
SSTP | SSL を用いてパケットを暗号化します。 | SSL | ・EAP-TLS・PEAP-MS-CHAPv2・PEAP-TLS・MS-CHAPv2・PAP | 受けない |
IKEv2 | IPSEC と組み合わせてパケット全体を暗号化します。 | IPSEC など | EAP-TLS・PEAP-MS-CHAPv2・PEAP-TLS | 受けない |
上記のうち、L2TP, SSTP, IKEv2 においては、通信パケットが IPSEC あるいは SSL で暗号化されています。
このため、認証の際の情報も含め、通信内容がすべてすでに暗号化されており、第三者からは、見えないようになっています。
<図: L2TP, SSTP, IKEv2 は認証のやりとりも含め、通信が暗号化 (カプセル化) されています>
しかしながら、PPTP では、認証のやりとりは、L2TP, SSTP, IKEv2 のように暗号化はされていません。(すなわち、緑色のトンネルはありません)
このため、認証のやりとりを 第三者から見えないようにするためは、先の項目で説明した認証のためのトンネル (青色の「認証トンネル」) を使う必要があります。すなわち、PEAP 拡張プロトコル MSCHAP v2 と併用して利用する必要があります。
確認方法
VPN においてどのタイプや認証方式を利用しているか、については、以下の手順で確認できます。(Windows 7 における確認手順です)
- [コントロール パネル] – [ネットワークとインターネット] – [ネットワーク接続] を開きます。
- 利用している VPN 接続のプロパティを開きます。
どのような VPN の接続方式、認証方式を利用しているか確認できます。
<図: PPTP を利用し、認証方式に PEAP を利用している場合>
有線 / 無線 (ワイヤレス) LAN 接続
有線や無線認証においては、接続方式としては以下の方式を選択することができます。
それぞれの方式において、どのような接続方式を利用するか、暗号方式を利用するか、認証方式を利用するか、決められています。
なお、Windows 標準のワイヤレスクライアントにおいては、MS CHAPv2 は PEAP と共に利用するオプションのみが提供されています。
このため、Windows 標準のワイヤレスクライアントにおいては、今回のアドバイザリの影響を受ける方式はありません。
しかしながら、Windows 標準以外のワイヤレスクライアントを導入している場合は、認証方式などを、ご確認いただき、MS-CHAPv2 が PEAP と共に利用されていないシナリオがないか、ご確認ください。
概要 | 無線区間の暗号化方式 | 認証方式 | 影響 | |
---|---|---|---|---|
WEP | クライアントとアクセス ポイントの通信を認証、暗号化します | RC4 | オープンシステム認証事前共通鍵 | 受けない |
802.1x | クライアントとアクセスサーバ間の認証、暗号化をおこないます。 | RC4 | EAP-TLS | 受けない |
PEAP-MS-CHAPv2 | 受けない | |||
PEAP-TLS | 受けない | |||
WPA パーソナル | WPA は、WEP の弱さに対処するために策定された方式です。WPA-パーソナルでは、クライアントとアクセス ポイントの通信を認証、暗号化します。 | RC4AES (オプション) | 事前共有鍵 | 受けない |
WPA エンタープライズ | WPA-エンタープライズは、WPA-パーソナルの認証機能を強化した方式です。クライアントとアクセスサーバ間の認証、暗号化をおこないます。 | RC4AES (オプション) | EAP-TLS | 受けない |
PEAP-MS-CHAPv2 | 受けない | |||
PEAP-TLS | 受けない | |||
WPA2 パーソナル | WPA2 は、WPA を元に、暗号化方式やローミング機能などを拡張した規格です。WPA2-パーソナルでは、クライアントとアクセス ポイントの通信を認証、暗号化します。 | RC4 (オプション)AES | 事前共有鍵 | 受けない |
WPA2 エンタープライズ | WPA2-エンタープライズは、WPA2-パーソナルの認証機能を強化した方式です。クライアントとアクセス サーバ間の認証、暗号化をおこないます。 | RC4 (オプション)AES | EAP-TLS | 受けない |
PEAP-MS-CHAPv2 | 受けない | |||
PEAP-TLS | 受けない |
確認方法
クライアント端末のワイヤレス接続においてどの方式を利用しているかは、以下の方法で確認できます。 (Windows 7 における確認方法です)
- [コントロール パネル] – [ネットワークとインターネット] – [ワイヤレス ネットワークの管理] を開きます。
- 接続のプロパティを開きます。
<図: WPA2 エンタープライズを利用し、認証方式に PEAP –MSCHAPv2 を利用している場合>