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


このホワイトペ−パーを書籍としてまとめたものも発売されております。こちらもぜひご覧いただければと思います。