MS12-006: SSL/TLS の脆弱性により、情報漏えいが行われる可能性がある: 2012 年 1 月 11 日

適用先
Windows 7 Service Pack 1 Windows 7 Enterprise Windows 7 Home Premium Windows 7 Professional Windows 7 Ultimate Windows 7 Home Basic Windows 7 Enterprise Windows 7 Home Premium Windows 7 Professional Windows 7 Ultimate Windows 7 Home Basic Windows Server 2008 R2 Service Pack 1 Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Standard Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Standard Windows Server 2008 Service Pack 2 Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 Web Edition Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 Web Edition Microsoft Windows Server 2003 Service Pack 2 Microsoft Windows XP Professional x64 Edition

はじめに

マイクロソフトは、セキュリティ情報 MS12-006 を公開しました。 セキュリティ情報の詳細を参照するには、次のいずれかのマイクロソフト Web サイトにアクセスしてください。

このセキュリティ更新プログラムに関するヘルプとサポートを受ける方法

更新プログラムのインストールに関するヘルプ:
Windows Update サポート ページ

IT 専門家のためのセキュリティ ソリューション:
TechNet セキュリティに関するトラブルシューティングとサポート

Windows を実行しているコンピューターのウイルスおよびマルウェアからの保護のヘルプ:
ウイルスとセキュリティ サポート ページ

国/地域ごとのローカル サポート:
インターナショナル サポート

Fix it で問題を解決する

2 つの Fix it ソリューションを使用できます。

  • Fix it Internet エクスプローラーのトランスポート層セキュリティ (TLS) 1.1 のソリューション: このソリューションは、この脆弱性の影響を受けない TLS 1.1 を Windows Internet エクスプローラーで有効にします。 ほとんどの一般的なユーザーは、この Fix it ソリューションをインストールする必要があります。
  • Fix it Windows ベースのサーバー上の TLS 1.1 のソリューション: このソリューションは、脆弱性の影響を受けない TLS 1.1 を有効にします。

このセクションに記載されている Fix it ソリューションは、セキュリティ更新プログラムの代わりになるものではありません。 常に最新のセキュリティ更新プログラムをインストールすることをお勧めします。 ただし、一部のシナリオの回避策として、これらの Fix it ソリューションを提供しています。 

回避策の詳細については、セキュリティ情報 MS12-006 を参照してください。

http://technet.microsoft.com/security/bulletin/ms12-006 セキュリティ情報には、問題に関する詳細情報と次の内容が含まれます。

  • 回避策を適用または無効にする可能性があるシナリオ
  • 問題を緩和する要素
  • 回避策
  • よく寄せられる質問

具体的には、この情報を確認するには、「脆弱性情報」セクションを探し、「SSL および TLS プロトコルの脆弱性 - CVE-2011-3389」段落の下にある「回避策」段落を展開します。

Internet エクスプローラーの TLS 1.1 の Fix it ソリューション

この Fix it ソリューションを有効または無効にするには、[有効にする] または [無効にする] 見出しの下にある [Fix it] ボタンまたはリンクをクリックします。 [ファイルのダウンロード] ダイアログ ボックスで [実行] をクリックし、Fix it ウィザードの手順に従います。

Enable Disable

メモ

  • これらのウィザードは英語版のみである場合があります。 ただし、自動的な修正は英語版以外の Windows でも機能します。
  • 問題のあるコンピューターとは別のコンピューターを操作している場合、自動修正プログラムをフラッシュ ドライブまたは CD に保存し、問題のあるコンピューターで実行することができます。

Fix it Windows ベースのサーバー上の TLS 1.1 のソリューション

この Fix it ソリューションを有効または無効にするには、[有効にする] または [無効にする] 見出しの下にある [Fix it] ボタンまたはリンクをクリックします。 [ファイルのダウンロード] ダイアログ ボックスで [実行] をクリックし、Fix it ウィザードの手順に従います。

Enable Disable

メモ

  • これらのウィザードは英語版のみである場合があります。 ただし、自動的な修正は英語版以外の Windows でも機能します。
  • 問題のあるコンピューターとは別のコンピューターを操作している場合、自動修正プログラムをフラッシュ ドライブまたは CD に保存し、問題のあるコンピューターで実行することができます。

このセキュリティ更新プログラムの既知の問題

このセキュリティ更新プログラムをインストールすると、一部の HTTPS サーバーへの認証エラーや接続の喪失が発生する可能性があります。 この問題は、このセキュリティ更新プログラムによってレコードが HTTPS サーバーに送信される方法が変更されるために発生します。

このセキュリティ更新プログラムを一時的に無効にしたり、再び有効にしたりするには、[セキュリティ更新プログラムを無効にする] または [セキュリティ更新プログラムを再有効化する] という見出しの下にある [修正] ボタンまたはリンクをクリックします。 [ファイルのダウンロード] ダイアログ ボックスで [実行] をクリックし、Fix it ウィザードの手順に従います。

セキュリティ更新プログラムを無効にする セキュリティ更新プログラムを再度有効にする

メモ

  • これらのウィザードは英語版のみである場合があります。 ただし、自動的な修正は英語版以外の Windows でも機能します。
  • 問題のあるコンピューターとは別のコンピューターを操作している場合、自動修正プログラムをフラッシュ ドライブまたは CD に保存し、問題のあるコンピューターで実行することができます。

次の表に、これらの Fix it ソリューションによって SendExtraRecord レジストリ DWORD エントリに適用される値を示します。

見出し SendExtraRecord エントリに適用された値
セキュリティ更新プログラムを無効にする 2
セキュリティ更新プログラムを再度有効にする 0

注: SendExtraRecord 設定は、Windows の今後のリリースに含まれる予定です。

既知の問題およびこのセキュリティ更新プログラムの関連情報

以下の資料では製品バージョン別に、このセキュリティ更新プログラムに関する追加情報が掲載されています。 資料には、既知の問題に関する情報が掲載されている場合があります。 この場合、既知の問題は各記事のリンクの下に一覧表示されます。

  • 2585542 MS12-006: Windows の Webio、Winhttp、および schannel のセキュリティ更新プログラムについて: 2012 年 1 月 11 日
  • 2638806 MS12-006: Windows Server 2003 および Windows XP Professional x64 Edition の Winhttp のセキュリティ更新プログラムについて 2012 年 1 月 11 日

レジストリ情報

お勧めしません。次の手順を使用してこのセキュリティ更新プログラムを無効にすることはお勧めしません。 ただし、この手順では、すべてのアプリケーションで SSL レコードの分割を有効にするこのセキュリティ更新プログラムと互換性のないアプリケーションを使用している可能性があるシナリオのために説明しています。

重要: このセクション、メソッド、またはタスクには、レジストリの変更方法が記載されています。 ただし、レジストリを誤って変更すると、深刻な問題が発生する可能性があります。 そのため、この手順は必ず慎重に行ってください。 さらなる保護のため、レジストリは変更する前にバックアップしてください。 こうしておけば、問題が発生した場合にレジストリを復元できます。 レジストリのバックアップ方法および復元方法の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。

322756 Windows でレジストリをバックアップおよび復元する方法

既定では、アプリケーションの互換性の問題のため、このセキュリティ更新プログラムは schannel レベルでオプトイン モードを設定します。 システム全体のすべてのアプリケーションでこのセキュリティ更新プログラムを無効にするには、次のレジストリ サブキーに SendExtraRecord と値 2 の DWORD を追加する必要があります。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNELこの Schannel レジストリ エントリのレジストリ エントリを追加するには、次の手順を実行します。

  1. [スタート]、[ファイル名を指定して実行] の順にクリックし、[名前] ボックスに「regedit」と入力し、[OK] をクリックします。

  2. 目的のレジストリを見つけたら、次のレジストリ サブキーをクリックします:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL

  3. [編集] メニューの [新規] をポイントし、[DWORD 値] をクリックします。

  4. DWORD 値の名前に「SendExtraRecord」と入力し、Enter キーを押します。

  5. [SendExtraRecord] を右クリックし、[ 修正] をクリックします。

  6. [ 値のデータ] ボックスに「2」と入力して schannel のレコード分割を無効にし、[ OK] をクリックします。

  7. レジストリ エディターを終了します。

このレジストリ エントリには 3 つの値を指定でき、各値には異なる操作モードが用意されています。

レジストリ キー値 説明
0 既定では、schannel は "オプトイン モード" に含まれています。これは、このセキュリティ更新プログラムが、セキュリティで保護されたフラグを schannel に送信するすべての呼び出し元に対して機能することを意味します。 "SendExtraRecord" schannel レジストリ エントリは、セキュリティ パッケージでは作成されません。 したがって、schannel レジストリ エントリがないということは、システムがこのモードで実行されていることを意味します。 誰かがこのレジストリ キーを作成し、値を 0 に設定すると、Schannel は再びこのモードで実行されます。

この設定は、このレジストリ エントリを作成しない場合と同じ効果があります。 セッションの初期化中にセキュア フラグを Schannel に送信するアプリケーションは、固定されたセキュア コード パスのみを実行します。 他のアプリケーションの場合、Schannel の動作に変更はありません。

このセキュリティ更新プログラムは、ブラウザーの使用シナリオを保護するために、Internet エクスプローラーを使用してセキュリティで保護されたフラグを送信することによって Web 閲覧に関係するアプリケーション層も修正します。

注 2003 Windows Server では、WinHTTP API を使用する HTTP クライアント アプリケーションを保護するために、セキュリティ更新プログラム 2638806 をインストールする必要があります。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2638806 MS12-006: Windows Server 2003 および Windows XP Professional x64 Edition の Winhttp のセキュリティ更新プログラムについて 2012 年 1 月 11 日
1 値を 1 に設定すると、"すべてに対して有効" という意味になります。つまり、呼び出し元はフラグを送信する必要はなく、Schannel はすべての SSL レコードを分割します。 この値を設定すると、アプリケーションは変更を行う必要はありません。 システムのセキュリティを非常に懸念しているお客様は、このレジストリ キーを有効にすることで、システムの安全性を高めることができます。
2 値を 2 に設定すると、"すべて無効" という意味になります。つまり、Schannel は、アプリケーションが行う暗号化呼び出しのレコードを分割しません。 このモードでは、アプリケーションが送信するセキュア フラグは反映されません。

内部テストに基づいて、レジストリ値を 1 に設定すると、エンタープライズ内のシナリオが多すぎる可能性があるため、理想的には設定できないことがわかりました。 そのため、ユーザーは使用しないことをお勧めします。

SendExtraRecord レジストリ エントリを有効にする既知の問題

  • SendExtraRecord レジストリ値を 1 に設定すると、schannel 内のデータを暗号化するすべての呼び出しでレコード分割が強制されます。 これは、セッションの初期化中に呼び出し元がセキュア フラグを送信したかどうかに関係なく発生します。
  • Schannel を使用する多くのアプリケーションは、受信側がアプリケーション データが 1 つのパケットにパックされると想定するように書き込まれています。 これは、アプリケーションが復号化のために schannel を呼び出していても発生します。 アプリケーションは、schannel によって設定されたフラグを無視します。 このフラグは、受信側が復号化して取得するデータがさらにあることをアプリケーションに示します。 この方法は、MSDN で規定されている schannel の使用方法に従わないのです。 このセキュリティ更新プログラムはレコード分割を強制するため、このようなアプリケーションは正常に動作しません。
  • 障害のあるアプリケーションには、Microsoft 製品とインボックス コンポーネントが含まれます。 以下に、SendExtraRecord レジストリ値が 1 に設定されている場合に破損される可能性があるシナリオの例を示します。
    • すべての SQL 製品、および SQL 上に構築されたアプリケーション。
    • ネットワーク レベル認証 (NLA) が有効になっているターミナル サーバー。 既定では、NLA は Windows Vista 以降のバージョンで有効です。
    • ルーティング リモート アクセス サービス (RRAS) シナリオの一部。

SendExtraRecord レジストリ値を 1 に設定すると、Windows TLS/SSL を使用するすべてのアプリケーションに安全なレコード分割が強制されます。 ただし、この設定には、アプリケーションの互換性の問題が発生する可能性があります。 そのため、このレジストリ設定を使用するのではなく、TLS 1.1 および TLS 1.2 を構成することをお勧めします。 TLS 1.1 および TLS 1.2 は、この問題に対して脆弱ではありません。

ユーザーがこのレジストリ設定を使用する場合は、実装する前にアプリケーションの互換性テストを広範囲にわたってテストすることをお勧めします。 この設定の影響を受けることが知られている一般的な製品には、Microsoft SQL 製品、Windows ターミナル サーバー、Windows リモート アクセス サーバーなどがあります。

よく寄せられる質問

Q: サーバーサイド アプリケーションの問題を解決するために、Microsoft は何ができますか。
A: 以下の RFC に記載されているように、アプリケーションが SSL/TLS アプリケーション レコードの断片化を処理できることを確認してください。