日本のセキュリティチーム
マイクロソフトの最新のセキュリティ情報は、次のリソースで入手することができます。
2012 年 8 月 21 日、セキュリティ アドバイザリ 2743314 カプセル化されていない MS-CHAP v2 認証により、情報漏えいが起こる を公開しました。
このアドバイザリでは、一般に公開された MS-CHAPv2 プロトコルの既知の脆さを狙った悪用コードが一般に公開されたこと、さらに推奨される対応策についてお知らせしています。
アドバイザリの影響範囲を正しく理解していただくために、今回の記事では、MS-CHAPv2 とは何か、利用のされ方など、背景となる情報についても説明します。
ぜひ、内容をご一読いただき、ご利用の環境における影響をご確認ください。
アドバイザリ 2743314 では、MS-CHAPv2 プロトコルにおいて、既知の脆さを狙った悪用コードが一般に公開されたこと、さらに推奨される対応策についてお知らせしています。
対応策として、影響を受けるタイプを利用している場合には、影響を受けないタイプ、認証方式への変更を推奨しています。
なお、無線・有線接続の場合、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
WPA パーソナル
事前共有鍵
WPA エンタープライズ
PEAP-MSChapv2
WPA2 パーソナル
WPA2 エンタープライズ
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 は、拡張認証プロトコル (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 - CHAP v2 は主に、以下のシーンにおいて、認証方式として利用されています。
・ VPN 接続
・ 有線 LAN 接続 / 無線 (ワイヤレス) LAN接続、WIFI 接続
今回のセキュリティアドバイザリにおいて影響を受けるのは、VPN 接続のシナリオです。
有線・無線接続においては、Windows クライアントにおいては有線、無線認証においては、MS-CHAPv2 認証は PEAP と共に利用するオプションのみを提供しているため、影響を受けません。
以下にそれぞれのシーンにおける利用方式を説明します。
VPN とは、拠点間の「プライベート回線」を確立する接続です。
大きく分けて 4 つの接続タイプがあります。
概要
VPN 区間の暗号化方式
PPPプロトコルをベースとしたプロトコル
MPPE
IPSEC と組み合わせてパケット全体を暗号化します。
IPSEC など
・EAP-TLS
・PEAP-MS-CHAPv2
・PEAP-TLS
・MSCHAPv2
・PAP
SSL を用いてパケットを暗号化します。
SSL
・MS-CHAPv2
上記のうち、L2TP, SSTP, IKEv2 においては、通信パケットが IPSEC あるいは SSL で暗号化されています。
このため、認証の際の情報も含め、通信内容がすべてすでに暗号化されており、第三者からは、見えないようになっています。
<図: L2TP, SSTP, IKEv2 は認証のやりとりも含め、通信が暗号化 (カプセル化) されています>
しかしながら、PPTP では、認証のやりとりは、L2TP, SSTP, IKEv2 のように暗号化はされていません。(すなわち、緑色のトンネルはありません)
このため、認証のやりとりを 第三者から見えないようにするためは、先の項目で説明した認証のためのトンネル (青色の「認証トンネル」) を使う必要があります。すなわち、PEAP 拡張プロトコルMSCHAP v2 と併用して利用する必要があります。
VPN においてどのタイプや認証方式を利用しているか、については、以下の手順で確認できます。(Windows 7 における確認手順です)
どのような VPN の接続方式、認証方式を利用しているか確認できます。
<図: PPTP を利用し、認証方式に PEAP を利用している場合>
有線や無線認証においては、接続方式としては以下の方式を選択することができます。
それぞれの方式において、どのような接続方式を利用するか、暗号方式を利用するか、認証方式を利用するか、決められています。
なお、Windows 標準のワイヤレスクライアントにおいては、MS CHAPv2 は PEAP と共に利用するオプションのみが提供されています。
このため、Windows 標準のワイヤレスクライアントにおいては、今回のアドバイザリの影響を受ける方式はありません。
しかしながら、Windows 標準以外のワイヤレスクライアントを導入している場合は、認証方式などを、ご確認いただき、MS-CHAPv2 がPEAP と共に利用されていないシナリオがないか、ご確認ください。
無線区間の暗号化方式
クライアントとアクセス ポイントの通信を認証、暗号化します
RC4
クライアントとアクセスサーバ間の認証、暗号化をおこないます。
WPA は、WEP の弱さに対処するために策定された方式です。WPA-パーソナルでは、クライアントとアクセス ポイントの通信を認証、暗号化します。
AES (オプション)
WPA-エンタープライズは、WPA-パーソナルの認証機能を強化した方式です。
WPA2は、WPA を元に、暗号化方式やローミング機能などを拡張した規格です。WPA2-パーソナルでは、クライアントとアクセス ポイントの通信を認証、暗号化します。
RC4 (オプション)
AES
WPA2-エンタープライズは、WPA2-パーソナルの認証機能を強化した方式です。クライアントとアクセス サーバ間の認証、暗号化をおこないます。
クライアント端末のワイヤレス接続においてどの方式を利用しているかは、以下の方法で確認できます。 (Windows 7 における確認方法です)
<図: WPA2 エンタープライズを利用し、認証方式に PEAP –MSCHAPv2を利用している場合>