暗号化アルゴリズムの選択

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

暗号化は、SQL Server のインスタンスをセキュアにしたい管理者が利用できるいくつかの防御策の 1 つです。

暗号化アルゴリズムによって定義されるデータ変換は、未承認ユーザーが容易に復元できないものです。 管理者と開発者は SQL Server で、DES、Triple DES、TRIPLE_DES_3KEY、RC2、RC4、128 ビット RC4、DESX、128 ビット AES、192 ビット AES、256 ビット AES を含むいくつかのアルゴリズムの中から選択することができます。

SQL Server 2016 (13.x) 以降、AES_128AES_192AES_256 以外のすべてのアルゴリズムは非推奨とされました。 古いアルゴリズムを使用する場合は (推奨されません)、データベース互換性レベルを 120 以下に設定する必要があります。

適切なアルゴリズムを選択する方法

理想的なアルゴリズムは状況によって異なります。また、個々のアルゴリズムの利点についても、この記事では扱っていません。 ただし、一般論としては、次のような原則があります:

  • 通常、強力な暗号化では、弱い暗号化よりも多くの CPU リソースを消費します。

  • 通常、短いキーより長いキーの方が、強力な暗号化を行えます。

  • 非対称暗号化は、対称暗号化よりも遅くなります。

  • 長い複雑なパスワードは、短いパスワードよりも強力です。

  • 対称暗号化は、キーがローカルにのみ格納されている場合に推奨されます。 非対称暗号化は、キーをネットワーク経由で共有する必要がある場合に推奨されます。

  • 大量のデータを暗号化する場合は、対称キーを使用してデータを暗号化し、非対称キーを使用して対称キーを暗号化する必要があります。

  • 暗号化されたデータは圧縮できませんが、圧縮されたデータは暗号化できます。 圧縮を使用する場合、データを暗号化する前にデータを圧縮する必要があります。

暗号化アルゴリズムおよび暗号化テクノロジの詳細については、「セキュリティの基本概念」を参照してください。

非推奨の RC4 アルゴリズム

RC4 アルゴリズムは、旧バージョンとの互換性のためにのみサポートされています。 データベース互換性レベルが 90 または 100 の場合、新しい素材は RC4 または RC4_128 を使用してのみ暗号化できます (非推奨)。 AES アルゴリズムのいずれかなど、新しいアルゴリズムを使用してください。 SQL Server 2012 (11.x) 以降のバージョンでは、どの互換性レベルでも、RC4 または RC4_128 を使用して暗号化された素材を暗号化解除できます。

SQL Server はソルトを自動的に提供しないため、同じ RC4 または RC4_128KEY_GUID を異なるデータブロックで繰り返し使用すると、同じ RC4 キーになります。 同じ RC4 キーを繰り返し使用することは、暗号強度を著しく低下させるよくあるエラーです。 そのため、RC4 および RC4_128 のキーワードは非推奨とされています。 この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。

DES アルゴリズムに関する説明

DESX は不適切な名前でした。 ALGORITHM = DESX を使用して作成された対称キーでは、実際には 192 ビット キーを使用した Triple DES 暗号が使用されます。 DESX アルゴリズムは提供されません。 この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。

ALGORITHM = TRIPLE_DES_3KEY を使用して作成された対称キーでは、192 ビット キーを使用した Triple DES が使用されます。

ALGORITHM = TRIPLE_DES を使用して作成された対称キーでは、128 ビット キーを使用した Triple DES が使用されます。