Windows 8.1 および Windows Server 2012 R2 用の .NET Framework 4.6.2 のセキュリティと品質ロールアップについて2017 年 5 月 10 日

適用対象: .NET Framework 4.6.2

概要


この Microsoft .NET Framework 用セキュリティ更新プログラムは、.NET Framework (および .NET Core) のコンポーネントが証明書を完全に検証しないときに発生する、セキュリティ機能のバイパスによる脆弱性を解決します。 この脆弱性の詳細については、「CVE-2017-0248 | .NET のセキュリティ機能のバイパスの脆弱性」を参照してください。

この更新プログラムでは、Windows Presentation Framework の PackageDigitalSignatureManager コンポーネントが SHA256 ハッシュアルゴリズムを使ってパッケージに署名するためのセキュリティの強化も行われます。

重要

  • Windows RT 8.1、Windows 8.1、および Windows Server 2012 R2 のすべてのセキュリティ更新プログラムとセキュリティ以外の更新プログラムを適用するには、更新プログラム 2919355 がインストールされている必要があります。 今後、更新プログラムを適用できるように、Windows RT 8.1 ベース、Windows 8.1 ベース、または Windows Server 2012 R2 ベースのコンピューターに更新プログラム 2919355 をインストールしておくことをお勧めします。
  • この更新プログラムをインストールした後に言語パックをインストールした場合は、この更新プログラムを再インストールする必要があります。 そのため、この更新プログラムをインストールする前に、必要な言語パックをすべてインストールすることをお勧めします。 詳細については、「Windows への言語パックの追加」を参照してください。

このセキュリティ更新プログラムの関連情報


  • 拡張キー使用法 (EKU) は、RFC 5280 のセクション 4.2.1.12」で説明されています。 このエクステンションは、証明書付きの公開キーの使用目的を示します。この使用目的は、キー使用法エクステンションで指定されている基本的な目的に追加するか、それを置き換えます。 たとえば、サーバーでクライアントを認証するために使用する証明書は、クライアント認証目的に設定されていなければなりません。 同様に、サーバーを認証するために使用する証明書は、サーバー認証目的に設定されていなければなりません。

    認証用に証明書が使用される場合は、認証アプリがクライアントの証明書を調べ、アプリケーションのポリシー エクステンションにある正しい目的オブジェクトの識別子を探します。 たとえば、クライアント認証用のオブジェクトの識別子は 1.3.6.1.5.5.7.3.2 です。 クライアント認証用に証明書が使用される場合は、このオブジェクトの識別子が証明書の EKU エクステンションに存在しなければりません。この識別子が存在しないと、認証に失敗します。 EKU エクステンションのない証明書は、そのまま正しく認証されます。

    再発行された証明書に一時的に正しくアクセスできない場合は、接続の問題が発生するのを防ぐために、コンピューターのあらゆる処理でセキュリティの変更をオプトインまたはオプトアウトするかを選択できます。 このためには、アプリケーションが対応している .NET Framework のバージョンに応じて、次のレジストリ キーを設定します。


    方法 1: レジストリ キーを更新する (すべてのバージョンに適用)

    注: このレジストリ エントリは DWORD エントリでなければなりません。
     
    • 32 ビット システム上での 32 ビット処理および 64 ビット システム上での 64 ビット処理の場合:
       
      HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\v4.0.30319@RequireCertificateEKUs=0
    • 64 ビット システム上での 32 ビット処理の場合:
       
      HKEY_LOCAL_MACHINE \Software\Wow6432Node\Microsoft\.NETFramework\v4.0.30319@RequireCertificateEKUs=0
    アプリケーションごとにオプトアウトすることもできます。 次にアプリケーションの互換性が維持されるよう、この変更を無効にするオプションを示します。

    方法 2: アプリケーションごとにポリシーを無効にする

    注: のレジストリ エントリは DWORD エントリでなければなりません。 有効な値は 0 だけです。 他の値はすべて無視されます
    • 32 ビット システム上での 32 ビット処理および 64 ビット システム上での 64 ビット処理の場合:
      HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\v4.0.30319@System.Net.ServicePointManager.RequireCertificateEKUs
      S:\Prj\console_pg\console_pg45\bin\Release\console_pg45.exe=0
      C:\MyApp\MyApp.exe=0
    • 64 ビット システム上での 32 ビット処理の場合:
      HKEY_LOCAL_MACHINE \Software\Wow6432Node\Microsoft\.NETFramework\v4.0.30319@System.Net.ServicePointManager.RequireCertificateEKUs
      S:\Prj\console_pg\console_pg45\bin\Release\console_pg45.exe=0
      C:\MyApp\MyApp.exe=0
    方法 3: 構成 API を使用する (.NET Framework バージョン 4.6 以降で使用可能)

    .NET Framework 4.6 から、コード、アプリケーションの構成またはレジストリを変更することによりアプリケーション レベルの構成を変更できるようになりました。

    .NET Framework 4.6スイッチを構成する

    注: 次の例は、セキュリティ機能を無効にします。
    • プログラムで変更

      アプリケーションで最初に次のコードを実行する必要があります。 これは、サービス ポイント マネージャーを 1 回だけ初期化するためです。

       
      private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching";private const string DontCheckCertificateEKUsName= @"Switch.System.Net.DontCheckCertificateEKUs";AppContext.SetSwitch(DisableCachingName, true);AppContext.SetSwitch(DontCheckCertificateEKUsName, true);
    • アプリケーションの構成を変更

      アプリケーションの構成を変更するには、次のエントリを追加します。

       
      <runtime><AppContextSwitchOverrides value="Switch.System.Net.DontCheckCertificateEKUsName=true"/></runtime>
    • レジストリ キーを変更 (コンピューター全体):
       

      レジストリの場所: HKEY_LOCAL_MACHINE\Software\[Wow6432Node\]Microsoft\.NETFramework\AppContext\Switch.System.Net.DontCheckCertificateEKUsName

      種類: 文字列
      値: "true"

    注: 既定では、.NET Framework バージョン 4.6 以降実行されているすべての .NET Framework 4.x アプリケーションで Switch.System.Net.DontCheckCertificateEKUsName = True になっています。
  • Windows 8.1 と Windows Server 2012 R2 に関連するこのセキュリティ更新プログラムの詳細については、次のマイクロソフト サポート技術情報を参照してください。

    4019114 Windows 8.1 および Windows Server 2012 R2 用の .NET Framework 3.5 Service Pack 1、4.5.2、4.6、4.6.1、4.6.2 のセキュリティと品質ロールアップ: 2017 年 5 月 10 日

更新プログラムの入手方法およびインストール方法


方法 1: Windows Update

この更新プログラムは、Windows Update を介して利用可能です。 自動更新を有効にすると、この更新プログラムは自動的にダウンロードおよびインストールされます。 セキュリティ更新プログラムを自動的に入手する方法の詳細については、「Windows Update: FAQ」のコントロール パネルで自動更新を有効にする方法のセクションを参照してください。

方法 2: Windows Software Update Services (WSUS)

WSUS サーバーで、次の手順を実行します。

  1. [スタート] ボタンをクリックし、[管理ツール] をポイントし、[Microsoft Windows Server Update Services 3.0] をクリックします。
  2. [ComputerName] を展開し、[操作] をクリックします。
  3. [更新のインポート] をクリックします。
  4. ブラウザーのウィンドウが開き、ActiveX コントロールをインストールするようにというメッセージが表示される場合があります。 操作を続行するために、ActiveX コントロールをインストールする必要があります。 
  5. このコントロールをインストールすると、Microsoft Update カタログの画面が表示されます。[検索] ボックスに「4019114」と入力し、[検索] をクリックします。
  6. 実際の環境のオペレーティング システム、言語、プロセッサに合った .NET Framework パッケージを選択します。 [追加] をクリックしてバスケットに追加します。
  7. 必要なパッケージをすべて選択したら、[バスケットの表示] をクリックします。
  8. [インポート] をクリックして、WSUS サーバーにパッケージをインポートします。
  9. パッケージのインポートが完了したら、[閉じる] をクリックして WSUS に戻ります。

これで、WSUS 経由で更新プログラムをインストールすることができます。

更新プログラムの展開に関する情報

このセキュリティ更新プログラムの展開の詳細については、次のマイクロソフト サポート技術情報を参照してください。

20170509 セキュリティ更新プログラムの展開に関する情報: 2017 年 5 月 10 日

更新プログラムのアンインストール情報

注: セキュリティ更新プログラムのアンインストールはお勧めしません。

この更新プログラムを削除するには、コントロール パネルの [プログラムの追加と削除] または [プログラムと機能] を使用します。

更新プログラムに伴う再起動に関する情報

更新対象のファイルがロックされたり使用されていない限り、この更新プログラムを適用した後にシステムを再起動する必要はありません。

更新プログラムの置き換えに関する情報

この更新プログラムを適用しても、これまでにリリースされた更新プログラムが置き換えられることはありません。

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


適用対象


この資料は、以下を対象としています。
 
  • Microsoft .NET Framework 4.6.2 を以下のオペレーティング システムと共に使用した場合:
    • Windows Server 2012 R2
    • Windows 8.1