資料加密是資料庫被破解、物理介質被盜、備份被竊取的最後一道防線,資料加密,一方面解決資料被竊取安全問題,另一方面有關法律要求強制加密資料。sql server 的資料加密相較於其他資料庫,功能相對完善,加密方法較多。通常來講,資料加密分為對稱加密和非對稱加密。對稱加密:加密與解密使用同一金鑰,金鑰需要傳輸,安全性較弱,但效能較非對稱要好。非對稱加密:加密與解密使用不同金鑰(公鑰和私鑰),較對稱金鑰安全性較好,但是演算法較複雜,帶來效能上的損失。因此,折中的方法是使用對稱金鑰加密資料,使用非對稱金鑰加密對稱金鑰。這樣既保證高效能,又提高金鑰的可靠性。
同樣,sql server 就使用了折中的方法,所以sql server 加密功能包含2個部分:資料加密和金鑰管理
說道資料加密,我們不得不說下加密演算法,sql server支援多種加密演算法:
1.sql server加密層次結構
由圖可以看出,加密是分層級的。每乙個資料庫例項都擁有乙個服務主金鑰(service master key),這個金鑰是例項的根金鑰,在例項安裝的時候自動生成,其本身由windows提供的資料保護api進行保護(data pertection api),服務主金鑰除了為其子節點提供加密服務之外,還用於加密一些例項級別的資訊,比如例項的登入名密碼或者鏈結伺服器的資訊。
在服務主金鑰之下的是資料庫主金鑰(database master key),這個金鑰由服務主金鑰進行加密。這是乙個資料庫級別的金鑰,可以用於為建立資料庫級別的證書或非對稱金鑰提供加密,每乙個資料庫只能有乙個資料庫主金鑰。
ekm模組,這個比較特別,全稱可擴充套件金鑰管理模組,該功能增強sqlserver金鑰管理的能力,允許將金鑰儲存到資料庫之外,包括一些硬體,如智慧卡、usb裝置或硬體安全模組(hsm);並且允許使用第三方產品來管理金鑰和進行加密;另外,有條件的可以使用更高效能的hsm模組來加解密,減少加解密上效能的損失。
物件定義加密
未保證觸發器、儲存過程、檢視等定義資訊,我們可以在定義sqlserver物件的時候新增with encryption欄位來加密物件。
列資料加密
通過函式加密表中的某一列資料。可以通過密碼、對稱金鑰、非對稱金鑰、證書等4中方式加密。其中,還包括 帶有驗證器的加密函式,驗證器用來解決密文替換問題,驗證器一般選用不更改獨一無二的id,這樣就算密文替換,驗證器不對,一樣失敗。
連線加密
通過證書的方式對ssl連線加密,一般用於映象,主從機器之前的連線就是通過這種方式。
tde(透明資料加密)
透明資料加密,顧名思義,是在使用者不感知的情況下完成加解密操作。
它的加密是在頁級別進行,是在寫入磁碟前加密,讀入記憶體時解密,針對資料和日誌檔案,做到實時i/o加密,並且備份檔案也會一同加密。
金鑰存在資料庫引導記錄中,收到證書或者非對稱金鑰的保護,也可以與ekm模組一同使用。官方說法,額外占用3%-5%的cpu資源。
tde也有一些缺點:
壓縮率小,由於它是先加密再壓縮的,所以無法顯著壓縮備份。
備份同樣是加密的,所有恢復的時候要小心,注意備份證書和金鑰,才能在另個例項中還原資料庫
效能有一定損耗
備份加密(2014)
支援備份的過程中進行加密,並且支援先壓縮在加密,保持高壓縮比,打破了使用透明資料加密後幾乎沒有壓縮率的窘境。
因此,使用原生備份加密無論在將資料備份到異地資料中心,還是將資料備份到雲端,都能夠以非常低的成本對資料提供額外的安全保障。
全程加密(2016)
全程加密,資料永遠是加密狀態,你可以在加密資料上執行操作,無需先對它們解密,也就是說加密的敏感資訊不會有機會變為明文。
全程加密針對列做處理,在建立列主金鑰,列加密金鑰後,可以在建立表的時候設定列加密。
加密模式分為兩種:確定型加密與隨機型加密。
確定型加密能夠確保對某個值加密後的結果是始終相同的,這就允許使用者對該資料列進行等值比較、連線及分組操作。確定型加密的缺點在於有可能揣測出原文,而隨機型加密能夠保證某個給定值在任意兩次加密後的結果總是不同的,從而杜絕了猜出原值的可能性。官方建議需要搜尋和分組的列使用確定性加密,而注釋和其他敏感不會進行搜尋分組的資訊使用隨機性加密。
最後附上tde開通示例:
可擴充套件金鑰管理模組ekm :
透明資料加密tde:
SQL Server 資料加密功能解析
資料加密是資料庫被破解 物理介質被盜 備份被竊取的最後一道防線,資料加密,一方面解決資料被竊取安全問題,另一方面有關法律要求強制加密資料。sql server 的資料加密相較於其他資料庫,功能相對完善,加密方法較多。通常來講,資料加密分為對稱加密和非對稱加密。對稱加密 加密與解密使用同一金鑰,金鑰需...
sqlServer透明資料加密(TDE)操作解析
透明資料加密 tde 可對資料和日誌檔案執行實時 i o 加密和解密。這種加密使用資料庫加密金鑰 dek 該金鑰儲存在資料庫引導記錄中以供恢復時使用。資料庫檔案的加密在頁級執行。已加密資料庫中的頁在寫入磁碟之前會進行加密,在讀入記憶體時會進行解密。使用tde加密操作步驟 建立主金鑰 建立或獲取由主金...
sqlserver對資料進行加密 解密
建立測試表 create table tbluser name nvarchar 30 password varbinary 1000 建立資料庫主金鑰 create master key encryption by password passw ord 建立證書 create certificat...