次の方法で共有


FIPS 140-2 準拠モードで SQL Server 2016 以降のバージョンを使用する

この記事では、FIPS 140-2 の手順と、FIPS 140-2 準拠モードで SQL Server2016 を使用する方法について説明します。

元の製品バージョン: SQL Server 2016 以降 Original KB number: 4014354

Note

  • ここでは、使用とわかりやすくするために、"FIPS 140-2 準拠"、"FIPS 140-2 準拠"、および "FIPS 140-2 準拠モード" という用語が定義されています。 これらの用語は、政府の用語として認識または定義されていません。 米国とカナダの政府は、暗号化モジュールを指定または準拠した方法で使用する代わりに、FIPS 140-2 などの標準に対する暗号モジュールの検証を認識しています。

    この記事では、 FIPS 140-2 準拠、FIPS 140-2 準拠、FIPS 140-2 準拠モードを使用しています。つまり、SQL Server 2016 以降のバージョンでは、暗号化またはハッシュされたデータが SQL Server 2016 以降のバージョンにインポートまたはエクスポートされるすべてのインスタンスで、アルゴリズムとハッシュ関数の FIPS 140-2 検証済みインスタンスのみが使用されます。 さらに、これは、FIPS 140-2 で検証された暗号化モジュールで必要とされるように、SQL Server 2016 以降のバージョンがセキュリティで保護された方法でキーを管理することを意味します。 キー管理プロセスには、キー生成とキー ストレージの両方も含まれます。

  • ここでは、アルゴリズムのインスタンスが FIPS 140-2 検証済みであるか、オペレーティング システムにアルゴリズムの FIPS140-2 検証済みインスタンスが含まれていることを意味するために、"認定済み" を使用します。

FIPS とは

Federal Information Processing Standard (FIPS) は、次の 2 つの政府機関によって開発された標準です。

  • 米国の国立標準技術研究所(NIST)
  • カナダの通信セキュリティ確立 (CSE)

FIPS 標準は、米国およびカナダの連邦政府が運営する IT システムでの使用を推奨または義務付けられています。

FIPS 140-2 とは

FIPS 140-2 は、"暗号化モジュールのセキュリティ要件" というタイトルのステートメントです。使用できる暗号化アルゴリズムとハッシュ アルゴリズム、および暗号化キーを生成および管理する方法を指定します。 アルゴリズムを含む一部のハードウェア、ソフトウェア、およびプロセスは FIPS 140-2 認定済みと見なされ、正しいアルゴリズムを呼び出すその他のハードウェア、ソフトウェア、およびプロセスは FIPS 140-2 に準拠していると見なすことができます。

FIPS 140-2 準拠であることと FIPS 140-2 認定を受けている場合の違いは何ですか?

SQL Server 2016 以降のバージョンは、FIPS 140-2 に準拠した方法で構成および実行できます。 この方法で SQL Server 2016 以降のバージョンを構成するには、FIPS 140-2 認定済みまたは認定済みの暗号化モジュールを提供するオペレーティング システムで実行する必要があります。 コンプライアンスと認定の違いは微妙ではありません。 アルゴリズムを認定できます。 FIPS 140-2 の承認済みリストにアルゴリズムがリストされているからといって、アルゴリズムを使用するには不十分です。 代わりに、認定されたこのようなアルゴリズムのインスタンスを使用する必要があります。 これは、インスタンスが政府機関によって検証されていることを意味します。 認定には、米国またはカナダの政府が承認した評価ラボによるテストと検証が必要です。 Windows Server 2012 以降のバージョンと Windows 8 以降のバージョンには、許可されている各アルゴリズムの認定インスタンスが含まれています。 最も重要なのは、これらの各アルゴリズムを呼び出すと、認定されたインスタンスのみが提供されます。

FIPS 140-2 に準拠できるアプリケーションはどれですか?

暗号化またはハッシュを実行し、認定されたバージョンの Windows で実行されるすべてのアプリケーションは、承認されたアルゴリズムの認定されたインスタンスのみを使用し、キー生成とキー管理の要件に準拠することで準拠できます。 これには、キーの生成とキー管理に Windows 関数を使用するか、アプリケーション内のキー生成とキー管理の要件に準拠する必要があります。 準拠していないアルゴリズムまたはプロセスが有効になっている FIPS 準拠アプリケーション内の領域が存在する場合があります。 たとえば、システム内に留まる一部の内部プロセスと、認定されたアルゴリズム インスタンスによってさらに暗号化される予定の外部データが許可されます。

SQL Server 2016 以降のバージョンは常に FIPS 140-2 に準拠していますか?

その必要はありません。 SQL Server 2016 以降のバージョンは FIPS 140-2 に準拠している可能性があります。これは、FIPS 140-2 認定アルゴリズム インスタンスのみを使用するように構成して実行できるためです。 さらに、暗号化のために CryptoAPI または CGN を使用するか、FIPS 140-2 コンプライアンスが必要なすべてのインスタンスでハッシュすることによって、これらのインスタンスが呼び出されます。

SQL Server 2016 以降のバージョンを FIPS 140-2 に準拠するように構成するにはどうすればよいですか?

オペレーティング システムの要件

次のいずれかの Windows クライアントとサーバーを実行しているホストに SQL Server 2016 以降のバージョンをインストールする必要があります

Windows システム管理の要件

FIPS モードは、SQL Server 2016 以降のバージョンが開始される前に設定する必要があります。 SQL Server は起動時に設定を読み取ります。 FIPS モードを設定するには、次の手順に従います。

  1. Windows システム管理者として Windows にログオンします。
  2. [スタート] を選択します。
  3. コントロール パネルを選択します。
  4. Administrative Tools を選択します。 (次の手順では、大きなアイコンに切り替える必要がある場合があります)。
  5. [ローカル セキュリティ ポリシー] を選択します。 ローカル セキュリティ設定 ウィンドウが表示されます。
  6. ナビゲーション ウィンドウで、[ ローカル ポリシー>セキュリティ オプションを選択します。
  7. 右側のウィンドウで、[ システム暗号化: 暗号化、ハッシュ、署名に FIPS 準拠アルゴリズムを使用しますをダブルクリックします。
  8. 表示されたダイアログ ボックスで、 Enabled>Apply を選択します。
  9. [OK] を選択します。
  10. ローカル セキュリティ設定ウィンドウを閉じます。

SQL Server 管理者の要件

SQL Server サービス (Service Broker またはデータベース ミラーリング用にエンドポイントが構成されている場合) が起動時に FIPS モードが有効になっていることを検出すると、SQL Server は次のメッセージを SQL Server エラー ログに記録します。

Service Broker トランスポートは FIPS コンプライアンス モードで実行されています。

さらに、Windows イベント ログに次のメッセージが記録されている場合があります。

データベース ミラーリング トランスポートは FIPS コンプライアンス モードで実行されています。

サーバーが FIPS モードで実行されていることを確認するには、これらのメッセージを探します。

Note

  • ダイアログ セキュリティ (サービス間) では、FIPS モードが有効になっている場合、暗号化プロセスは AES の FIPS 認定インスタンスを使用します。 FIPS モードが無効になっている場合でも、暗号化プロセスでは AES が使用されます。
  • FIPS モードでサービス ブローカー エンドポイントを構成する場合、管理者はサービス ブローカーに "AES" を指定する必要があります。 エンドポイントが RC4 に構成されている場合、SQL Server によってエラーが生成されます。 そのため、トランスポート層は開始されません。

SQL Server 2016 以降のバージョンは FIPS 140-2 準拠モードでどのように動作しますか?

  • Windows で FIPS モードが有効になっている場合、ユーザーが暗号化またはハッシュの実行方法を選択できないすべての領域で、SQL Server 2016 以降のバージョンは FIPS 140-2 に準拠して実行されます。 (SQL Server 2016 以降のバージョンでは、Windows では CryptoAPI が使用され、アルゴリズムの認定インスタンスのみが使用されます)。

  • Windows で FIPS モードが有効になっている場合、ユーザーが暗号化を使用するかどうかを選択できるすべての領域で、SQL Server 2016 以降のバージョンでは FIPS 140-2 準拠の暗号化のみが有効になるか、暗号化が有効になりません。

  • ソフトウェア開発者向けの重要な情報: 開発者またはユーザーが暗号化またはハッシュ用に独自のコードを記述するすべての領域で、CryptoAPI のみを使用し (したがって認定インスタンスのみ)、FIPS 140-2 で許可されるアルゴリズムのみを指定するように指示する必要があります。FIPS 140-2 承認暗号アルゴリズムの公式 NIST リストについては、 「 Cryptographic Module Validation Program」の「Annexes A、C、および D」を参照

FIPS 140-2 準拠モードで SQL Server 2016 以降のバージョンを実行するとどのような影響がありますか?

  • より強力な暗号化を使用すると、プロセスが FIPS 140-2 準拠として動作していない場合に、信頼性の低い暗号化が許可されるプロセスのパフォーマンスに小さな影響を与える可能性があります。

  • SSIS の暗号化 (UseEncryption=True) を選択すると、使用可能な暗号化が FIPS 準拠と互換性を持たず、許可されていないことを示すエラーが生成されます。 つまり、メッセージ プロセスの暗号化は実行されません。

  • レガシ DTS と共に暗号化を使用する場合、暗号化は FIPS 140-2 に準拠していません。 DTS の場合、Windows の FIPS モードはチェックされません。 したがって、準拠を維持するために暗号化を選択しないのはユーザーの責任です。

  • ほとんどの SQL Server 2016 以降のバージョンの暗号化およびハッシュ プロセスは既に FIPS 140-2 に準拠しているため、完全なコンプライアンス (つまり、Windows で FIPS モードが有効になっている場合) で実行すると、アプリケーションの使用やパフォーマンスにほとんどまたはまったく影響しません。

FIPS 140-2 の詳細はどこで確認できますか?

FIPS 140-2 の詳細については、「 CMVP FIPS 140-2 標準およびドキュメントを参照してください。

Microsoft からは、テクニカル サポートを検索するのに役立つサード パーティの連絡先情報が提供されています。 この連絡先情報は、予告なしに変更される可能性があります。 Microsoft は、このサードパーティの連絡先情報の正確性を保証するものではありません。