透明数据加密
在 SQL Server 2005 中,可以使用数据库引擎加密功能,通过编写自定义 Transact-SQL 加密数据库中的数据。SQL Server 2008 引入了透明的数据加密,改进了这种状况。 透明数据加密在数据库级执行所有加密操作,这消除了应用程序开发人员创建自定义代码来加密和解密数据的需要。数据在写入磁盘时被加密,在从磁盘读取时解密。通过使用 SQL Server 透明地管理加密和解密,就可以在不改变现有应用程序的情况下确保数据库中业务数据的安全,如图所示。

图2 透明数据加密
数据库加密密钥(Database Encryption Key,DEK)用于执行加密和解密操作,该DEK存储在数据库启动记录中,以便在恢复过程中使用。可以使用服务主密钥(Service Master Key)或硬件安全模块(Hardware Security Module,HSM)保护 DEK。HSM 通常是 USB 设备或智能卡,因为不易被盗或丢失。