魏再超
(保山學院,云南 保山 678000)
保護數據安全的措施可包括密碼策略、審核策略、數據庫服務器隔離以及應用程序驗證和授權控制。但是,保護敏感數據的最后一道安全屏障通常是數據加密。QL Server 2005一個令人激動的特性是內置了加密的功能。在這個新版的SQL Server中,加入了加密、證書創建和密鑰管理的功能。
加密是一種有助于保護數據的機制。加密過程可將數據打亂,以僅允許經過授權的人員訪問和讀取數據,從而幫助確保數據的保密性。當原始數據(稱為“明文”)與稱為密鑰的值一起經過一個或多個數學公式處理后,數據就完成了加密。此過程使原始數據轉為不可讀形式。加密過的數據稱為“密文”。為使此數據重新可讀,數據接收方需要使用相反的數學過程以及正確的密鑰將數據解密。但是,加密這種數據保護方法會增加計算機處理器時間和存儲需求方面的成本。較長的加密密鑰比較短的加密密鑰更有助于提高密文的安全性。不過,較長的加密密鑰的加密/解密運算更加復雜,占用的處理器時間也比較短的加密密鑰長。另外,加密還會增加目標(加密)數據的大小。
加密類型主要有以下兩種:
對稱加密 :此種加密類型又稱為共享密鑰加密。
非對稱加密:此種加密類型又稱為兩部分加密或公共密鑰加密。
在SQL Server 2005中具體實現加密的方法有四種:使用口令加密(EncryptByPassPhrase)、對稱加密、非對稱加密、使用證書加密;其中使用口令加密,對稱加密這兩種同屬對稱加密類型,非對稱加密及使用證書加密同屬于非對稱加密類型。
對稱加密使用相同的密鑰加密和解密數據。對稱加密使用的算法比非對稱加密使用的算法簡單。由于這些算法更簡單以及數據的加密和解密都使用同一個密鑰,所以對稱加密比非對稱加密的速度要快得多。因此,對稱加密適合大量數據的加密和解密。圖1顯示了對稱加密流程。

圖1 對稱加密流程
對稱加密的主要缺點之一是使用相同的密鑰加密和解密數據。因此,所有的數據發送方和接收方都必須知道或可以訪問加密密鑰。這使得加密者必須在其環境中考慮安全管理問題和密鑰管理問題。存在安全管理問題的原因是由于加密者必須將此加密密鑰發送給所有要求訪問加密數據的一方。加密者必須考慮的密鑰管理問題包括密鑰生成、分發、備份、重新生成和生命周期。對稱加密使用的加密算法包括:DES、TRIPLE_DES 、TRIPLE_DES_3KEY、RC2、RC4、RC4_128、DESX、AES_128、 AES_192、AES_256。
非對稱加密使用兩個具有數學關系的不同密鑰加密和解密數據。這兩個密鑰分別稱為私鑰和公鑰。它們合稱為密鑰對。非對稱加密被認為比對稱加密更安全,因為數據的加密密鑰與解密密鑰不同。但是,由于非對稱加密使用的算法比對稱加密更復雜,并且還使用了密鑰對,因此當使用非對稱加密時,其加密過程比使用對稱加密慢很多。圖2顯示了非對稱加密流程。

圖2 非對稱加密流程
在非對稱加密中,只有一方持有私鑰。此方稱為主體。所有其他各方都可以訪問公鑰。通過公鑰加密的數據只能通過私鑰解密。反之,通過私鑰加密的數據只能通過公鑰解密。因此,此種加密提供了保密和身份確認兩種功能。可以利用此種加密方法通過使用公鑰加密數據來提供授權。此密鑰是公開的。因此,任何人都可以將數據加密。但是,由于只有主體持有私鑰,因此該可以合理地認為,只有預期的接收方才能解密和查看加密的數據。也可以利用此種加密方法,通過使用私鑰將數據加密來提供驗證。只有主體持有此密鑰。不過,任何人都可以將該數據解密,因為將此數據解密的公鑰是公開的。因此,如果接收方可以使用公鑰將此數據解密,就可以合理地認為只有主體才是將數據加密的一方。非對稱加密算法包括:Diffie-Hellman密鑰協議、Rivest-Shamir-Adleman(RSA)、數字簽名算法 (DSA)。
在決定是否要將數據加密時,必須考慮執行加密和解密可能增加的處理器負荷。此外,還必須考慮加密后的數據所占用的存儲空間。數據占用的存儲空間的大小取決于使用的算法、密鑰的大小以及加密的明文大小。 雖然實施加密時必須考慮性能問題和存儲問題,但最重要的還是密鑰管理問題。用于將數據加密和解密的加密密鑰是其數據安全框架中至關重要的部分。為確保只有經過授權的用戶才能查看加密的數據,必須采取措施對加密密鑰進行管理、存儲、保護和備份。
[1]IT Showcase:Improving Data Security by Using SQL Server 2005 Technical White Paper.微軟公司技術白皮書[Z].
[2]姜洪波,等.SQL Server 2005數據庫應用與開發[M].清華大學出版社.
[3].SQL Server 2005 范例代碼查詢詞典[M].朱曄,等,譯.人民郵電出版社.