SQL Server 2008 の透過的なデータ暗号化(TDE:Transparent Data Encryption)
SQL Server 2008 からは、透過的なデータ暗号化(TDE:Transparent Data Encryption)機能を利用して、データベース全体を暗号化することができるようになっています。SQL Server 2005 で提供されていた EncryptByKey と DecryptByKey を利用した暗号化機能では、アプリケーションを修正する必要がありましたが、透過的なデータ暗号化機能では、アプリケーションを修正する必要はありません(アプリケーションから透過的に利用することができます)。
透過的なデータ暗号化(TDE)は、次のように利用します。
-- TDE をテストするためのデータベースの作成 USE master go CREATE DATABASE enc ON PRIMARY ( NAME = 'enc', FILENAME = 'C:\enc.mdf' ) -- データベース マスター キーのパスワードを設定 CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<StrongPassword>' -- サーバー証明書の作成 CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My Certificate' -- データベース暗号化キーを作成。アルゴリズムは AES_128 を指定 USE enc go CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE MyServerCert -- TDE を有効化する ALTER DATABASE enc SET ENCRYPTION ON
以上でデータベース全体を丸ごと暗号化できるようになります(データベース内のオブジェクトがすべて暗号化されます)。なお、暗号キーのアルゴリズムに指定できるのは、AES_128、AES_192、AES_256、3DES の 4種類です。
詳しくは、CREATE DATABASE ENCRYPTION KEY のヘルプにて
http://technet.microsoft.com/ja-jp/library/bb677241.aspx
TDE のパフォーマンスについては、弊社が執筆協力した SQL Server 2008 徹底検証シリーズ「コンプライアンス実現のためのガイドライン」に記載されていますので、こちらもぜひご覧ください。
http://www.microsoft.com/japan/sqlserver/2008/bible/cqi.mspx
このホワイトペ−パーを書籍としてまとめたものも発売されております。こちらもぜひご覧いただければと思います。