Chapter 1 Securing Your Server and Network(11):使用透明資料庫加密,chaptersecuring
原文出處:http://blog.csdn.net/dba_huangzj/article/details/38398813,專題目錄:http://blog.csdn.net/dba_huangzj/article/details/37906349
未經作者同意,任何人不得以“原創”形式發布,也不得已用於商業用途,本人不負責任何法律責任。
前一篇:http://blog.csdn.net/dba_huangzj/article/details/38368737
前言:
如果沒有對資料庫檔案(MDF/LDF等)做許可權控制,攻擊者可以把這些檔案複製走,然後附加到自己機器上進行分析。第一層保護就是對SQL Server檔案所在的NTFS檔案系統進行許可權管控。如果希望進一步保護資料庫,可以使用透明資料庫加密(Transparent Database Encryption,TDE),這個功能可以保護對應資料庫的所有檔案,不管有多少個檔案。因為檔案已經加密,即使這些檔案被複製走,如果沒有資料庫主要金鑰,也一樣不能使用。同時,這種加密不影響使用者對資料庫的使用,開發人員不需要對此做額外的工作。
需要注意,只有開發版、且一般和資料中心版才支援TDE。
實現:
1. 建立伺服器加密主要金鑰:
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '強密碼';
2. 馬上備份主要金鑰,並放到安全的地方,如果丟失了主要金鑰,將導致自己都無法使用:
BACKUP MASTER KEY TO FILE = '\\path\SQL1_master.key' ENCRYPTION BY PASSWORD = '強密碼';
其中密碼必須複合Windows 安全性原則要求,並且SQL Server服務帳號要有對對應目錄的寫入權限。
3. 在Master庫中建立伺服器憑證:
CREATE CERTIFICATE TDECert WITH SUBJECT = 'TDE Certificate';
4. 備份認證:
BACKUP CERTIFICATE TDECert TO FILE = '\\path\SQL1_TDECert.cer' WITH PRIVATE KEY ( FILE = '\\path\SQL1_TDECert.pvk', ENCRYPTION BY PASSWORD = '另外一個強密碼' );
原文出處:http://blog.csdn.net/dba_huangzj/article/details/38398813
5. 建立對應資料庫的資料庫加密金鑰:
USE 目標資料庫; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE TDECert; --TDECert為認證名
原文出處:http://blog.csdn.net/dba_huangzj/article/details/38398813
6. 啟用資料庫加密:
ALTER DATABASE 目標資料庫 SET ENCRYPTION ON;
原理:
TDE自動加密磁碟上的資料和記錄檔,不需要對資料庫額外修改,並且可以加密所有資料庫或記錄備份。實現方式也很容易。對於密碼編譯演算法,通常可以使用AES_128/192/256 或者Triple_des_3key。其中TRIPLE-DES強度更高。但是可能影響效能。
對於TDE的效能分析,可以訪問這篇文章:http://www.databasejournal.com/features/mssql/article.php/3815501/Performance-Testing-SQL-2008146s-Transparent-Data-Encryption.htm(Performance Testing SQL 2008's Transparent Data Encryption,SQL Server 2008 TDE/透明資料庫加密效能測試)。
如果需要還原加密後的資料庫檔案到另外一台伺服器,需要首先還原認證到目標伺服器:
USE master; CREATE CERTIFICATE TDECert FROM FILE = '\\path\SQL1_TDECert.cer' WITH PRIVATE KEY ( FILE = '\\path\SQL1_TDECert.pvk', DECRYPTION BY PASSWORD = '密碼' );
原文出處:http://blog.csdn.net/dba_huangzj/article/details/38398813
然後就能開始還原資料庫或記錄檔。