SQL Server 對稱祕鑰的加密算法

MD5和SHA-1算法都先後被密碼學家王小云破解,SQL Server對稱祕鑰加密算法還安全嗎?前文說明TDE的時候,使用了AES_256,SQL Server對稱祕鑰加密算法還有有哪些?哪些算法可用,有哪些區別?

當我們討論對稱祕鑰的時候,這些算法或者通過輸入未加密數據返回加密數據,或者輸入加密數據返回解密數據。爲了達到這樣的目的,他們使用了祕鑰,並且無論是加密還是解密,祕鑰都相同。在加密算法方面,對稱加密算法要比非對稱加密算法快得多。因此,它們是在SQL Server中加密數據的最佳選擇。

SQL Server 2005爲我們提供瞭如下對稱加密算法(你可以在創建對稱祕鑰的參數中指定它們):

  • DES(DES)

  • 128位祕鑰Triple DES 算法(TRIPLE_DES)

  • 192位祕鑰Triple DES 算法(DESX)

  • RC2(RC2)

  • RC4(RC4)

  • 128位祕鑰的RC4算法(RC4_128)

  • 128位祕鑰的AES算法(AES_128)

  • 192位祕鑰的AES算法(AES_192)

  • 256位祕鑰的AES算法(AES_256)

我提到192位祕鑰的Triple DES算法,但卻說它是DESX。這是弄錯了嗎?SQL Server更新版本的在線說明聲明,SQL Server 不再使用DESX算法。爲保持微軟的命名約定,TRIPLE_DES 應該是TRIPLE_DES_128,而DESX應該是TRIPLE_DES_192。

注意:微軟已經表示,由於DESX在那裏是不正確的,它的使用應該逐步淘汰。它將在SQL Server的後續版本中刪除。

SQL Server 2008 引入了

  • 192位祕鑰的Triple DES(TRIPLE_DES_3KEY)

很顯然,因爲DESX不應該使用,如果你先使用192位祕鑰的DES,那麼就使用TRIPLE_DES_3KEY、

SQL Server 2008R2、SQL Server 2012、SQL Server2014、SQL Server 2016、SQL Server 2017、SQL Server 2019沒有再增加新的對稱祕鑰加密方式,只是從 SQL Server 2016 (13.x)開始,除 AES_128, AES_192, 和AES_256 都被廢棄了。

有這麼多算法,你應該選擇哪個呢?和哈希算法不同,除了安全外還有其他用途,這些算法僅僅是加密算法。因此,你可以選擇的只有祕鑰了。你想要的算法是在可以預見的將來仍然是安全的。在這種前提下,你需要做的是:

儘量避免在對稱加密中使用這些算法:

我們將在這裏指定兩種類型的算法。第一種是對稱加密算法被認爲是被破解的,要麼是因爲計算能力趕上了它們,要麼是因爲存在可以利用的漏洞。第二個是SQL Server以弱化或錯誤的方式實現的算法。在撰寫這篇文章時,以下算法屬於這一列表:

  • DES:一個56位祕鑰算法,已經過時很多年了。現在,這個祕鑰能夠很快被破解(不需要1天的時間),使得其變爲過時的算法。

  • DESX:如前面討論的,DESX不是真正的DES-X算法,微軟已經將其淘汰。

  • RC2 :分組加密算法,與其他對稱算法相比,RC2並沒有被大量使用。也沒有對其做太多的研究,已知有幾個針對它的攻擊。當然,在假定其不常用的前提下,最好可以跳過它。

  • RC4:一種可由40-128位可變長度密鑰實現的流密碼。這個選擇在SQL Server中是不足128位的。SQL Server是以弱化的方式實現它的。所以微軟在線文檔上指示在開發中不要使用這個算法,將來可能會被淘汰(已經淘汰)。

  • 128位祕鑰的 RC4:和RC4一樣,SQL Server也是通過弱化的方式實現它的。

  • 128位祕鑰實現的Triple DES:使用的是DES,但是經過了三個序列化的步驟。這使用了祕鑰選項2,這意味着128位實際上是由兩個不同的鍵組成的。

  • 192位祕鑰實現的Triple DES:和128位祕鑰實現的DES相同,除了是192位祕鑰實現的外。這使用祕鑰選項1,這意味着192位實際上是由3個不同的祕鑰組成。

可以預見的未來還是安全的加密算法:

  • 128位祕鑰實現的AES:高級加密標準(AES:Advanced Encryption Standard)算法,以前被稱爲Rijndael。使用128位祕鑰。雖然有一種攻擊比蠻力攻擊更快,但從時間的角度來看,這仍然是不可能的。

  • 192位祕鑰實現的AES,同上

  • 256位祕鑰實現的AES,同上

想要使用對稱祕鑰加密的朋友們,AES是您最近最佳選擇。已經使用其他算法加密的朋友們,更改您的加密算法吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章