セキュリティ アドバイザリ 2743314 カプセル化されていない MS-CHAP v2 認証により、情報漏えいが起こる を公開


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 における確認手順です)

       

      1. [コントロール パネル] – [ネットワークとインターネット] – [ネットワーク接続] を開きます。
      2. 利用している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-パーソナルでは、クライアントとアクセス ポイントの通信を認証、暗号化します。

      RC4

      AES (オプション)

      事前共有鍵

      受けない

      WPA エンタープライズ

      WPA-エンタープライズは、WPA-パーソナルの認証機能を強化した方式です。

      クライアントとアクセスサーバ間の認証、暗号化をおこないます。

      RC4

      AES (オプション)

      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 における確認方法です)

      1.  [コントロール パネル] – [ネットワークとインターネット] – [ワイヤレス ネットワークの管理] を開きます。
      2. 接続のプロパティを開きます。

       

       

       

      <図: WPA2 エンタープライズを利用し、認証方式に PEAP –MSCHAPv2を利用している場合>