FIPS 140-2 準拠モードで SQL Server 2016 以降のバージョンを使用する
この記事では、FIPS 140-2 の手順と、FIPS 140-2 準拠モードで SQL Server2016 を使用する方法について説明します。
元の製品バージョン: SQL Server 2016 以降の元の KB 番号: 4014354
注:
"FIPS 140-2 準拠"、"FIPS 140-2 コンプライアンス"、および "FIPS 140-2 準拠モード" という用語は、使用とわかりやすくするためにここで定義されています。 これらの用語は、政府の用語として認識または定義されていません。 米国とカナダの政府は、暗号化モジュールを指定または準拠した方法で使用する代わりに、FIPS 140-2 などの標準に対する暗号化モジュールの検証を認識しています。
この記事では、FIPS 140-2 準拠の FIPS 140-2 コンプライアンス、および FIPS 140-2 準拠モードは、SQL Server 2016 以降のバージョンでは、暗号化またはハッシュされたデータが 2016 以降のバージョンからインポートまたは SQL Serverエクスポートされるすべてのインスタンスで、アルゴリズムとハッシュ関数の FIPS 140-2 検証インスタンスのみを使用することを意味します。 さらに、これは、FIPS 140-2 で検証された暗号化モジュールに必要なように、SQL Server 2016 以降のバージョンがセキュリティで保護された方法でキーを管理することを意味します。 キー管理プロセスには、キー生成とキー ストレージの両方も含まれます。
ここでは 、アルゴリズムのインスタンスが FIPS 140-2 検証済みであるか、オペレーティング システムにアルゴリズムの FIPS140-2-validated インスタンスが含まれていることを意味するために、ここで "認定済み" を使用します。
FIPS とは
連邦情報処理標準 (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 モードは、2016 以降のバージョンSQL Server開始する前に設定する必要があります。 SQL Serverは起動時に設定を読み取ります。 FIPS モードを設定するには、次の手順に従います。
- Windows システム管理者として Windows にログオンします。
- [スタート] を選択します。
- [コントロール パネル] を選択します。
- [ 管理ツール] を選択します。 (次の手順では、大きなアイコンに切り替える必要がある場合があります)。
- [ ローカル セキュリティ ポリシー] を選択します。 [ ローカル セキュリティ設定] ウィンドウが表示されます。
- ナビゲーション ウィンドウで、[ローカル ポリシー][セキュリティ オプション] の順に>選択します。
- 右側のウィンドウで、[ システム暗号化: 暗号化、ハッシュ、署名に FIPS 準拠アルゴリズムを使用する] をダブルクリックします。
- 表示されるダイアログ ボックスで、[ 有効な>適用] を選択します。
- [OK] を選択します。
- [ ローカル セキュリティ設定] ウィンドウを閉じます。
SQL Server管理者の要件
SQL Server サービス (Service Broker またはデータベース ミラーリング用にエンドポイントが構成されている場合) が起動時に FIPS モードが有効になっていることを検出すると、SQL Serverは次のメッセージをSQL Serverエラー ログに記録します。
Service Broker トランスポートは FIPS コンプライアンス モードで実行されています。
さらに、次のメッセージが Windows イベント ログに記録されている場合があります。
データベース ミラーリング トランスポートは FIPS コンプライアンス モードで実行されています。
サーバーが FIPS モードで実行されていることを確認するには、これらのメッセージを探します。
注:
- ダイアログ セキュリティ (サービス間) の場合、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 リストについては、「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 は、このサード パーティの連絡先情報の正確性を保証しません。