次の方法で共有


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

暗号化は、SQL Server のインスタンスをセキュリティで保護する管理者が利用できる多層防御の 1 つです。

暗号化アルゴリズムは、承認されていないユーザーが簡単に取り消すことができないデータ変換を定義します。 SQL Server を使用すると、管理者と開発者は、DES、Triple DES、TRIPLE_DES_3KEY、RC2、RC4、128 ビット RC4、DESX、128 ビット AES、192 ビット AES、256 ビット AES など、いくつかのアルゴリズムから選択できます。

すべての状況に最適なアルゴリズムは 1 つもなく、それぞれのメリットに関するガイダンスは SQL Server オンライン ブックの範囲を超えています。 ただし、次の一般的な原則が適用されます。

  • 一般に、強力な暗号化では、弱い暗号化よりも多くの CPU リソースが消費されます。

  • 通常、長いキーは短いキーよりも強力な暗号化になります。

  • 非対称暗号化は、同じキー長を使用する対称暗号化よりも弱いですが、比較的低速です。

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

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

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

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

重要

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

異なるデータ ブロックで同じ RC4 またはRC4_128 KEY_GUIDを繰り返し使用すると、SQL Server ではソルトが自動的に提供されないため、同じ RC4 キーが生成されます。 同じ 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 を使用します。

対称キーを使用した暗号化。 対称キーを作成 (Transact-SQL)
非対称キーを使用した暗号化。 非対称キーを作成する(Transact-SQL)
証明書を使用した暗号化。 証明書を作成する (Transact-SQL)
透過的なデータ暗号化を使用したデータベース ファイルの暗号化。 透過的なデータ暗号化 (TDE)
テーブルの 1 つの列を暗号化する方法。 データの列を暗号化する

こちらもご覧ください

SQL Server の暗号化
暗号化階層