次の方法で共有


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

暗号化は多層防御の 1 つであり、SQL Server のインスタンスに対するセキュリティ対策として利用することができます。

暗号化アルゴリズムによって定義されるデータ変換は、未承認ユーザーが容易に復元できないものです。 SQL Server では、DES、Triple DES、TRIPLE_DES_3KEY、RC2、RC4、128 ビット RC4、DESX、128 ビット AES、192 ビット AES、256 ビット AES など、複数のアルゴリズムがサポートされ、管理者および開発者が必要に応じて選択できるようになっています。

理想的なアルゴリズムは状況によって異なります。また、個々のアルゴリズムの利点についても、SQL Server オンライン ブックでは扱っていません。 ただし、一般論としては、次のような原則があります。

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

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

  • 非対称暗号化は、同じキー長を使用した対称暗号化よりも弱くなりますが、処理速度は比較的遅くなります。

  • 長いキーを使用したブロック暗号は、ストリーム暗号よりも強力です。

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

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

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

重要な注意事項重要

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

異なるデータ ブロックに対して同じ RC4 または RC4_128 KEY_GUID を繰り返し使用すると、同一の RC4 キーが生成されます。これは、SQL Server が自動的に salt を提供しないためです。 同一の RC4 キーを繰り返し使用することは、暗号強度を著しく低下させる周知の間違いです。 そのため、RC4 キーワードおよび RC4_128 キーワードは使用しないことをお勧めします。 この機能は、Microsoft SQL Server の将来のバージョンで削除されます。新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションはできるだけ早く修正してください。

暗号化アルゴリズムおよび暗号化テクノロジの詳細については、MSDN の『.NET Framework 開発者ガイド』で、「セキュリティの基本概念」を参照してください。

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

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

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

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

関連タスク

対称キーを使用する暗号化

CREATE SYMMETRIC KEY (Transact-SQL)

非対称キーを使用する暗号化

CREATE ASYMMETRIC KEY (Transact-SQL)

証明書を使用する暗号化

CREATE CERTIFICATE (Transact-SQL)

透過的なデータ暗号化を使用するデータベース ファイルの暗号化

透過的なデータ暗号化 (TDE)

テーブルの 1 つの列を暗号化する方法

データの列の暗号化

関連項目

概念

SQL Server の暗号化

暗号化階層