選擇加密演算法

加密是全面防禦中的一環,可提供給想要維護 SQL Server 執行個體安全的管理員使用。

加密演算法會定義資料轉換,讓未經授權的使用者無法輕鬆地反轉資料轉換。SQL Server 可讓管理員和開發人員在數種演算法中進行選擇,包括 DES、Triple DES、TRIPLE_DES_3KEY、RC2、RC4、128 位元 RC4、DESX、128 位元 AES、192 位元 AES 和 256 位元 AES。

同一種演算法不可能適用於所有情況,各種演算法優缺點的指南也超出《SQL Server 線上叢書》的範疇。不過,下列為一般適用的原則:

  • 強式加密通常比弱式加密耗用更多 CPU 資源。

  • 長金鑰通常會比短金鑰產生更強的加密。

  • 非對稱加密比使用相同金鑰長度的對稱加密更強,但速度相對比較慢。

  • 含有長金鑰的區塊密碼比串流式密碼更強。

  • 複雜的長密碼比短密碼更強。

  • 如果您要加密很多資料,應該使用對稱金鑰來加密資料,並使用非對稱金鑰來加密對稱金鑰。

  • 加密的資料無法壓縮,但壓縮資料可以加密。如果您使用壓縮,應該在加密之前先壓縮資料。

重要注意事項重要事項

在不同的資料區塊上重複使用相同的 RC4 或 RC4_128 KEY_GUID,結果會是相同的 RC4 金鑰,因為 SQL Server 不會自動提供 Salt。重複使用相同的 RC4 金鑰是已知的錯誤,此錯誤會造成加密變弱。因此,我們取代了 RC4 和 RC4_128 關鍵字。未來的 Microsoft SQL Server 版本將移除這項功能。請勿在新的開發工作中使用此功能,並且儘速修改使用此功能的應用程式。

如需有關加密演算法和加密技術的詳細資訊,請參閱 MSDN 上《.NET Framework 開發人員手冊》中的<重要的安全性概念>(英文)。

釐清有關 DES 演算法:

  • DESX 未正確命名。以 ALGORITHM = DESX 建立的對稱金鑰實際上使用具有 192 位元金鑰的 TRIPLE DES 加密。未提供 DESX 演算法。未來的 Microsoft SQL Server 版本將移除這項功能。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。

  • 以 ALGORITHM = TRIPLE_DES_3KEY 建立的對稱金鑰使用具有 192 位元金鑰的 TRIPLE DES。

  • 以 ALGORITHM = TRIPLE_DES 建立的對稱金鑰使用具有 128 位元金鑰的 TRIPLE DES。