SQL Server 2005 には証明書、非対称キー、対称キーのいずれかを使ってデータを暗号化したり、復号化したりできる関数が用意されています。 これらはすべて内部の証明書ストアで管理されます。 証明書ストアは、1 つ上の層がその下の層を保護する暗号化階層を使用することによって、証明書およびキーを保護します。 SQL Server 2005 では、この機能領域をシークレット ストレージと呼びます。
暗号化関数によってサポートされる最速の暗号化方式は対称キーによる暗号化です。 この方法は大量のデータを処理する場合に適しています。 対称キーは、証明書、パスワードまたは他の対称キーで暗号化できます。
キーとアルゴリズム
SQL Server 2005 は、DES、Triple DES、RC2、RC4、128 ビット RC4、DESX、128 ビット AES、192 ビット AES、256 ビット AES など、複数の対称キー暗号化アルゴリズムをサポートしています。 アルゴリズムは Windows Crypto API を使って実装されています。
SQL Server 2005 は、オープンする対称キーをデータベース接続のスコープ内で複数管理できます。 オープンするキーは証明書ストアから取得でき、データを復号化する際に使用できます。 データの一部が復号化されていれば、使用する対称キーを指定する必要はありません。 暗号化された各値は、どのキーを使って暗号化されたかを示すキー識別子 (キー GUID) を保持します。 正しいキーが復号化されてオープンされた場合、暗号化されたバイト ストリームとオープンする対称キーとがエンジンによって照合されます。 次に、このキーを使って復号化が実行されて、データが返されます。 正しいキーがオープンされなかった場合は NULL が返されます。
データベースで暗号化されたデータを使用する方法の例については、SQL Server オンライン ブックの「データ列を暗号化する方法」を参照してください。
外部リソース
データの暗号化の詳細については、次のリソースを参照してください。
SQL Server の暗号化 (SQL Server 2008 オンライン ブック) |
SQL Server 2008 における暗号化の概要を説明します。 このトピックには、他のトピックや具体的な方法を示したページへのリンクが用意されています。 |
暗号化階層/暗号化の操作方法に関するトピック (SQL Server 2005 オンライン ブック) |
SQL Server 2005 における暗号化の概要を説明します。 このトピックには、他のトピックや具体的な方法を示したページへのリンクが用意されています。 |
暗号化と難読化の使用 (SQL Server 2000 オンライン ブック) |
SQL Server 2000 の暗号化オプションについて説明します。 SQL Server 2000 では、アプリケーション コンピューターと SQL Server のインスタンス間で転送されるすべてのデータを暗号化するために、必要に応じて SSL (Secure Sockets Layer) を使用できます。 |
参照
概念
SQL Server におけるアプリケーション セキュリティのシナリオ (ADO.NET)
SQL Server のサーバー ロールとデータベース ロール (ADO.NET)
SQL Server における所有権とユーザーとスキーマの分離 (ADO.NET)