• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于SQL Server 2008中的加密和密鑰管理探析

      2012-07-12 05:06:1475706部隊16分隊傳輸室雷治安
      電子世界 2012年13期
      關鍵詞:密鑰代碼證書

      75706部隊16分隊傳輸室 雷治安

      75660部隊軍事指揮教研室 陳騰楠

      基于SQL Server 2008中的加密和密鑰管理探析

      75706部隊16分隊傳輸室 雷治安

      75660部隊軍事指揮教研室 陳騰楠

      以SQL Server 2008為例,對加密和密鑰管理作簡要探討分析,啟發(fā)搞好網(wǎng)絡和數(shù)據(jù)的安全維護,加強保密性。

      SQL Server 2008;加密;密鑰管理;探析

      網(wǎng)絡時代,數(shù)據(jù)保密是個棘手問題,這就要求系統(tǒng)提供大量確保數(shù)據(jù)庫安全的功能,方能適應發(fā)展需要。譬如,SQL Server 2008中的加密和密鑰管理就是這樣。

      一、數(shù)據(jù)加密

      (一)數(shù)據(jù)安全防護

      首先加強立法保護數(shù)據(jù)。如今,無論軍民用信息都有相對的私密性,在信息技術迅猛發(fā)展和充滿隱私的大環(huán)境中,數(shù)據(jù)需要用法規(guī)形式保護。其次把數(shù)據(jù)加密存儲在安全性良好的數(shù)據(jù)庫中。良好的數(shù)據(jù)庫具備良好的安全規(guī)范,如SQL Server就有一個叫defense in depth重要的安全規(guī)范。Defense in depth意味著分層防御,即使攻擊者成功打破最外層防御,仍需突破一層接一層的防御才能獲得成功。這意味著攻擊者通過防火墻和從服務器到數(shù)據(jù)庫的Windows安全后,仍需進行一些惡劣、野蠻和強制的黑客攻擊才能解碼數(shù)據(jù)庫中的數(shù)據(jù)。

      (二)SQL Server 2008加密密鑰層次結構

      SQL Server 2008使用對稱密鑰、非對稱密鑰和數(shù)字證書,為各種類型的數(shù)據(jù)加密提供豐富的支持。最出色的是,它可為您管理密鑰,而密鑰管理是加密中最難的部分。

      管理員可能至少需要管理圖1所示層次結構中的上級密鑰。數(shù)據(jù)庫管理員需要理解服務器級的服務主密鑰和數(shù)據(jù)庫級的數(shù)據(jù)庫主密鑰。每個密鑰都保護其子密鑰,子密鑰又保護其子密鑰,從樹形結構圖依次向下。密碼保護對稱密鑰或證書時例外,這是SQL Server用戶管理自己的密鑰,以及負責保密密鑰的方法。

      注意:Microsoft不推薦直接使用證書或非對稱密鑰加密數(shù)據(jù)。非對稱密鑰加密速度慢且使用此機制保護的數(shù)據(jù)量有限(這取決于密鑰模數(shù)大小)??墒褂妹艽a,而不是數(shù)據(jù)庫主密鑰保護證書和非對稱密鑰。

      1.服務主密鑰

      服務主密鑰是規(guī)定SQL Server中所有密鑰和證書的密鑰。它是SQL Server在安裝期間自動創(chuàng)建的對稱密鑰,是個至關重要的密鑰。如此密鑰泄露,那么攻擊者最終將解碼服務器中由SQL Server管理的每個密鑰。Windows中的數(shù)據(jù)保護API(Data Protection API,DPAPI)為服務主密鑰提供保護。

      SQL Server可管理服務主密鑰。雖然您可對其執(zhí)行維護任務,將其轉(zhuǎn)存到一個文件中,重新生成它,以及從文件中將其還原。但大多數(shù)情況下,無需對密鑰做任何更改。備份服務主密鑰以防止密鑰損壞對管理員來說是明智的選擇。

      2.數(shù)據(jù)庫主密鑰

      數(shù)據(jù)庫范圍內(nèi),數(shù)據(jù)庫主密鑰是數(shù)據(jù)庫中所有密鑰、證書和數(shù)據(jù)的根加密對象。每個數(shù)據(jù)庫都有唯一的主密鑰;嘗試創(chuàng)建第二個密鑰時,會出現(xiàn)錯誤提示。必須在使用前通過CREATE MASTER KEY Transact-SQL語句和用戶提供的密碼創(chuàng)建一個數(shù)據(jù)庫主密鑰:

      CREATE MASTER KEY ENCRYPTION BY PASSWORD='EOhnDGS6!7JKv'

      3.層次結構密鑰保護的特點

      SQL Server使用由密碼和服務主密鑰派生出來的三重DES密鑰加密密鑰。第一個副本存儲在數(shù)據(jù)庫中,第二個存儲在主數(shù)據(jù)庫中。由于服務主密鑰保護數(shù)據(jù)庫主密鑰,因此可能在需要時由SQL Server自動加密數(shù)據(jù)庫主密鑰。最終應用程序或用戶無需用密碼顯式打開主密鑰,這是層次結構保護密鑰的主要優(yōu)勢。

      (三)數(shù)據(jù)庫移動加密

      分離一個存有主密鑰的數(shù)據(jù)庫,并將其移動到另一個服務器上是一個難題。問題在于新服務器的服務主密鑰與舊服務器的服務主密鑰不同。因此,服務器不能自動解密數(shù)據(jù)庫主密鑰??赏ㄟ^使用加密密碼打開數(shù)據(jù)庫主密鑰,然后使用ALTER MASTER KEY語句用新的服務主密鑰對其加密避開這個問題。否則,總需顯式打開數(shù)據(jù)庫主密鑰后才能使用。

      如存在數(shù)據(jù)庫主密鑰,開發(fā)人員可用它創(chuàng)建三種類型中的任何一種密鑰,具體取決于加密所需類型:非對稱密鑰,使用公鑰/私鑰對進行公鑰加密;對稱密鑰,用于在同一個密鑰分別加密和解密數(shù)據(jù)的方面共享秘密;證書,實質(zhì)上用于包裝公鑰。

      因所有加密選項及其已深層集成于服務器和數(shù)據(jù)庫中,所以現(xiàn)行加密必須將防御的最終層添加到數(shù)據(jù)上。然而,需明智使用工具,因為加密給服務器增加了大量的處理開銷。

      二、透明數(shù)據(jù)加密

      SQL Server 2005中,可使用數(shù)據(jù)庫引擎加密功能,通過編寫自定義Transact-SQL加密數(shù)據(jù)庫中的數(shù)據(jù)。SQL Server 2008引入透明數(shù)據(jù)加密,改進了這種狀況。

      透明數(shù)據(jù)加密在數(shù)據(jù)庫級執(zhí)行所有加密操作,這消除應用程序開發(fā)人員創(chuàng)建自定義代碼來加密和解密數(shù)據(jù)的需要。數(shù)據(jù)在寫入磁盤時被加密,從磁盤讀取時解密。通過使用SQL Server透明地管理加密和解密,就可在不改變現(xiàn)有應用程序的情況下確保數(shù)據(jù)庫中業(yè)務數(shù)據(jù)的安全,如圖2所示。

      數(shù)據(jù)庫加密密鑰(Database Encryption Key,DEK)用于執(zhí)行加密和解密操作,該DEK存儲在數(shù)據(jù)庫啟動記錄中,以便恢復過程中使用。可使用服務主密鑰(Service Master Key)或硬件安全模塊(Hardware Security Module,HSM)保護DEK。HSM通常是USB設備或智能卡,因為不易被盜或丟失。

      三、擴展的密鑰管理

      隨著法規(guī)遵從性需求的增長以及對數(shù)據(jù)隱私的整體關注,越來越多的組織將加密用作解決深層防御方案的手段。隨著大規(guī)模使用加密和密鑰來保護數(shù)據(jù),密鑰管理變得更復雜。一些高安全性數(shù)據(jù)庫要使用數(shù)千個密鑰且必須部署一個系統(tǒng)來存儲、注銷和重新生成這些密鑰。而且,還應將這些密鑰與數(shù)據(jù)分開存儲以增強安全性。

      SQL Server 2008為第三方使用公開加密功能。這些解決方案可與SQL Server 2005和SQL Server 2008數(shù)據(jù)庫無縫地工作并提供企業(yè)級專用密鑰管理。這將密鑰管理工作負載從SQL Server轉(zhuǎn)移到專用密鑰管理系統(tǒng)。

      SQL Server 2008中擴展的密鑰管理還支持使用HSM提供密鑰與數(shù)據(jù)的物理分離。

      四、代碼模塊簽名

      SQL Server中提供加密的好處就是它提供使用證書對代碼模塊(存儲過程、函數(shù)、觸發(fā)器和事件通知)進行數(shù)字簽名的能力。這提供了訪問數(shù)據(jù)庫表比其他對象訪問更細粒度的控制。像加密數(shù)據(jù)一樣,使用證書中的私鑰簽名代碼,其結果是使用代碼模塊簽名的表只能通過該代碼訪問且不允許使用在代碼模塊之外。換言之,只能使用已經(jīng)簽名該模塊的證書,才能獲得對該表的訪問。

      對存儲過程而言,效果是一樣的。例如,如有完整的所有權鏈,您可謹慎控制哪些用戶獲得該過程的EXECUTE權限,并可拒絕他們對基礎表的直接訪問。但這在過程的所有權鏈被破壞或執(zhí)行動態(tài)SQL時不起作用,此時要求執(zhí)行該過程的用戶擁有對基礎表的權限。實現(xiàn)同樣效果的另一種方式是使用EXECUTE AS,但改變了過程執(zhí)行的安全上下文,這不是理想的情況。

      簽名代碼模塊的另一好處就是防止對代碼模塊做出未授權的更改。像其他經(jīng)過數(shù)字簽名的文檔一樣,在代碼改變時,證書將失效。代碼不在證書上下文中執(zhí)行,因此任何被提供證書訪問權限的對象都將不可訪問。要繼續(xù)訪問它們,需要創(chuàng)建一個證書,將該證書與新用戶關聯(lián)并使用該證書簽名過程,授予該用戶執(zhí)行該存儲過程必要的權限。實質(zhì)上,已經(jīng)將該用戶作為次級身份標識添加到存儲過程安全上下文中。然后,授予需要執(zhí)行該過程的任何用戶或角色執(zhí)行權限。以下代碼展示了這些步驟。假設您想要簽名my Schema.Get Secret Stuff過程,并且所有引用的對象已經(jīng)存在數(shù)據(jù)庫中:

      現(xiàn)只有明確授予對該存儲過程具EXECUT權限的用戶能訪問該表的數(shù)據(jù)。

      猜你喜歡
      密鑰代碼證書
      探索企業(yè)創(chuàng)新密鑰
      WJCI 收錄證書
      CSCD收錄證書
      草原與草坪(2022年1期)2022-05-11 10:44:40
      收錄證書
      密碼系統(tǒng)中密鑰的狀態(tài)與保護*
      收錄證書
      創(chuàng)世代碼
      動漫星空(2018年11期)2018-10-26 02:24:02
      創(chuàng)世代碼
      動漫星空(2018年2期)2018-10-26 02:11:00
      創(chuàng)世代碼
      動漫星空(2018年9期)2018-10-26 01:16:48
      創(chuàng)世代碼
      動漫星空(2018年5期)2018-10-26 01:15:02
      长汀县| 杨浦区| 辽宁省| 永登县| 抚顺县| 历史| 衡山县| 陆河县| 扎囊县| 金坛市| 甘德县| 叙永县| 周至县| 水城县| 芮城县| 镇远县| 涞源县| 余干县| 澎湖县| 湛江市| 恭城| 三明市| 白河县| 宁夏| 富蕴县| 黎城县| 武宁县| 莱芜市| 昂仁县| 建阳市| 兴安县| 崇礼县| 博客| 商河县| 类乌齐县| 新蔡县| 梨树县| 密山市| 仙游县| 广丰县| 广水市|