魏再超
(保山學(xué)院,云南 保山 678000)
保護(hù)數(shù)據(jù)安全的措施可包括密碼策略、審核策略、數(shù)據(jù)庫服務(wù)器隔離以及應(yīng)用程序驗(yàn)證和授權(quán)控制。但是,保護(hù)敏感數(shù)據(jù)的最后一道安全屏障通常是數(shù)據(jù)加密。QL Server 2005一個(gè)令人激動的特性是內(nèi)置了加密的功能。在這個(gè)新版的SQL Server中,加入了加密、證書創(chuàng)建和密鑰管理的功能。
加密是一種有助于保護(hù)數(shù)據(jù)的機(jī)制。加密過程可將數(shù)據(jù)打亂,以僅允許經(jīng)過授權(quán)的人員訪問和讀取數(shù)據(jù),從而幫助確保數(shù)據(jù)的保密性。當(dāng)原始數(shù)據(jù)(稱為“明文”)與稱為密鑰的值一起經(jīng)過一個(gè)或多個(gè)數(shù)學(xué)公式處理后,數(shù)據(jù)就完成了加密。此過程使原始數(shù)據(jù)轉(zhuǎn)為不可讀形式。加密過的數(shù)據(jù)稱為“密文”。為使此數(shù)據(jù)重新可讀,數(shù)據(jù)接收方需要使用相反的數(shù)學(xué)過程以及正確的密鑰將數(shù)據(jù)解密。但是,加密這種數(shù)據(jù)保護(hù)方法會增加計(jì)算機(jī)處理器時(shí)間和存儲需求方面的成本。較長的加密密鑰比較短的加密密鑰更有助于提高密文的安全性。不過,較長的加密密鑰的加密/解密運(yùn)算更加復(fù)雜,占用的處理器時(shí)間也比較短的加密密鑰長。另外,加密還會增加目標(biāo)(加密)數(shù)據(jù)的大小。
加密類型主要有以下兩種:
對稱加密 :此種加密類型又稱為共享密鑰加密。
非對稱加密:此種加密類型又稱為兩部分加密或公共密鑰加密。
在SQL Server 2005中具體實(shí)現(xiàn)加密的方法有四種:使用口令加密(EncryptByPassPhrase)、對稱加密、非對稱加密、使用證書加密;其中使用口令加密,對稱加密這兩種同屬對稱加密類型,非對稱加密及使用證書加密同屬于非對稱加密類型。
對稱加密使用相同的密鑰加密和解密數(shù)據(jù)。對稱加密使用的算法比非對稱加密使用的算法簡單。由于這些算法更簡單以及數(shù)據(jù)的加密和解密都使用同一個(gè)密鑰,所以對稱加密比非對稱加密的速度要快得多。因此,對稱加密適合大量數(shù)據(jù)的加密和解密。圖1顯示了對稱加密流程。
圖1 對稱加密流程
對稱加密的主要缺點(diǎn)之一是使用相同的密鑰加密和解密數(shù)據(jù)。因此,所有的數(shù)據(jù)發(fā)送方和接收方都必須知道或可以訪問加密密鑰。這使得加密者必須在其環(huán)境中考慮安全管理問題和密鑰管理問題。存在安全管理問題的原因是由于加密者必須將此加密密鑰發(fā)送給所有要求訪問加密數(shù)據(jù)的一方。加密者必須考慮的密鑰管理問題包括密鑰生成、分發(fā)、備份、重新生成和生命周期。對稱加密使用的加密算法包括:DES、TRIPLE_DES 、TRIPLE_DES_3KEY、RC2、RC4、RC4_128、DESX、AES_128、 AES_192、AES_256。
非對稱加密使用兩個(gè)具有數(shù)學(xué)關(guān)系的不同密鑰加密和解密數(shù)據(jù)。這兩個(gè)密鑰分別稱為私鑰和公鑰。它們合稱為密鑰對。非對稱加密被認(rèn)為比對稱加密更安全,因?yàn)閿?shù)據(jù)的加密密鑰與解密密鑰不同。但是,由于非對稱加密使用的算法比對稱加密更復(fù)雜,并且還使用了密鑰對,因此當(dāng)使用非對稱加密時(shí),其加密過程比使用對稱加密慢很多。圖2顯示了非對稱加密流程。
圖2 非對稱加密流程
在非對稱加密中,只有一方持有私鑰。此方稱為主體。所有其他各方都可以訪問公鑰。通過公鑰加密的數(shù)據(jù)只能通過私鑰解密。反之,通過私鑰加密的數(shù)據(jù)只能通過公鑰解密。因此,此種加密提供了保密和身份確認(rèn)兩種功能。可以利用此種加密方法通過使用公鑰加密數(shù)據(jù)來提供授權(quán)。此密鑰是公開的。因此,任何人都可以將數(shù)據(jù)加密。但是,由于只有主體持有私鑰,因此該可以合理地認(rèn)為,只有預(yù)期的接收方才能解密和查看加密的數(shù)據(jù)。也可以利用此種加密方法,通過使用私鑰將數(shù)據(jù)加密來提供驗(yàn)證。只有主體持有此密鑰。不過,任何人都可以將該數(shù)據(jù)解密,因?yàn)閷⒋藬?shù)據(jù)解密的公鑰是公開的。因此,如果接收方可以使用公鑰將此數(shù)據(jù)解密,就可以合理地認(rèn)為只有主體才是將數(shù)據(jù)加密的一方。非對稱加密算法包括:Diffie-Hellman密鑰協(xié)議、Rivest-Shamir-Adleman(RSA)、數(shù)字簽名算法 (DSA)。
在決定是否要將數(shù)據(jù)加密時(shí),必須考慮執(zhí)行加密和解密可能增加的處理器負(fù)荷。此外,還必須考慮加密后的數(shù)據(jù)所占用的存儲空間。數(shù)據(jù)占用的存儲空間的大小取決于使用的算法、密鑰的大小以及加密的明文大小。 雖然實(shí)施加密時(shí)必須考慮性能問題和存儲問題,但最重要的還是密鑰管理問題。用于將數(shù)據(jù)加密和解密的加密密鑰是其數(shù)據(jù)安全框架中至關(guān)重要的部分。為確保只有經(jīng)過授權(quán)的用戶才能查看加密的數(shù)據(jù),必須采取措施對加密密鑰進(jìn)行管理、存儲、保護(hù)和備份。
[1]IT Showcase:Improving Data Security by Using SQL Server 2005 Technical White Paper.微軟公司技術(shù)白皮書[Z].
[2]姜洪波,等.SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā)[M].清華大學(xué)出版社.
[3].SQL Server 2005 范例代碼查詢詞典[M].朱曄,等,譯.人民郵電出版社.