程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 數據庫應用安全:如何平衡加密與訪問控制

數據庫應用安全:如何平衡加密與訪問控制

編輯:關於SqlServer
  通常情況下,公司一些最敏感的數據存儲在數據庫中。這些數據包括醫療記錄、員工記錄、信用卡號碼、社會保障號碼等,它們受隱私法規的監管,必須加以保護。 然而,與此同時,公司必須在敏感數據的安全性與可用性之間進行折中,以滿足因合法的商業使用而訪問這些數據的需求,包括為保持業務連續性而進行的備份和遠程復制。最強大的數據隱私保護技術是加密。但是,為了既切實保證敏感數據的安全性而又不影響業務的連續性,使用加密技術時必須小心。在保護敏感數據以及平衡加密與訪問控制方面,數據庫應用安全的一些最佳實踐值得借鑒: 數據最小化與模糊處理 保護敏感數據的最好、最有效的辦法是當初就不存儲或少存儲數據。因此,公司應該經常檢查下列數據最小化問題: 該數據將來還需要嗎? 可以只存儲用於身份驗證的部分數據(例如社會保障號碼的後四位)嗎? 可以使用其他不太敏感的數據(例如寵物的名字)進行身份驗證嗎? 可以使用或存儲數據的hash值(例如MD5、SHA)而不是原始數據本身嗎? 在許多情況下,這些問題可以減少需要存儲的數據量並降低數據的敏感程度。 數據加密 公司可以對數據庫中的數據進行加密,以防止其被盜或意外洩漏。在加密數據庫中的數據時,有三個關鍵問題需要考慮:在何處加密數據、如何加密數據以及在何處存儲密鑰。下面將分別討論這些問題: 在何處加密數據——加密可以在應用層、數據庫或底層存儲器中進行。如果加密在數據庫中進行,則還可以對特定字段、列、表或者整個數據庫加密。當然,在應用層、數據庫和底層存儲器中加密各有利弊。 由於應用層加密是在系統的最高層對數據進行加密,所以數據對應用層之下的各層都不可見。如果加密在應用層進行,則數據庫、操作系統、網絡以及數據經過的所有其他路徑都只能看到加密後的形式。 應用層加密的問題在於,通常會有多個高層應用程序需要訪問數據,這些應用程序將需要密鑰副本對數據進行解密。可以獲得密鑰副本的應用程序越多,密鑰遭到洩漏的可能性就越大。 但是,如果加密在較低的層進行,則你還需要進一步在其他層進行加密。例如,當數據流經數據庫和應用程序之間的網絡時需要對其進行加密,否則數據對網絡層將是可見的。這將會引入需要加以保護的其他加密密鑰。在何處進行加密是一種微妙的平衡,取決於應用程序和數據流的體系結構。 如何加密數據——加密可以利用軟件、硬件或者軟件硬件相結合的方式實現。具體采用何種方式加密,取決於你希望達到的吞吐量(Mb/s)。如果希望獲得較大的吞吐量,則你可能需要一些硬件加速方式。無論采用何種加密方式,有一個問題別無選擇:始終使用先進的、強大的、基於標准的加密和密鑰管理系統;不要試圖發明自己的加密和密鑰管理系統,你自己的加密和密鑰管理系統可能奏效也可能不能奏效。目前,一些高端服務器處理器已經內置了支持AES(高級加密標准)的加密基元(Encryption Primitives),可以實現比基於軟件的算法快得多(高達9倍)的加密。 在何處存儲密鑰——加密最大的挑戰不是加密本身,而是密鑰的存儲和分配。加密數據的安全性和可訪問性並不高於密鑰本身。密鑰必須悉心保護,以防攻擊者竊取。同時,密鑰必須與加密數據分開存儲,但又要可供加密/解密算法訪問。另一方面,必須對密鑰進行備份和復制,以便當原始數據和原始密鑰由於災難而丟失時可以解密備份數據。你選擇的任何密鑰管理系統必須支持下列功能: 安全存儲密鑰。 認證和跟蹤審計對密鑰的訪問。 托管或恢復密鑰,以防密鑰丟失。 備份密鑰並將密鑰安全地傳輸到遠程位置,以供恢復之用。 加密標准 許多加密和密鑰管理系統都通過了以下兩個實用標准的認證:美國聯邦信息處理標准(Federal Information Processing Standard,FIPS)140,其安全級別分為1到4級;通用標准評估保證等級(Common Criteria Evaluation Assurance Level,CCEAL),其安全級別分為1到7級。這些標准提供了一個指標,可以比較不同系統的加密算法、密鑰存儲和密鑰管理機制的安全性。級別越高意味著加密算法、密鑰存儲方法、防篡改硬件和密鑰管理機制越好。例如,FIPS在確定一個認證級別時,考慮了11個不同方面的安全性。你應該根據數據的敏感程度和你所在地區的監管要求,選擇合適的安全級別。 數據庫應用極為復雜,由多層松散耦合的組件構成。數據庫應用的安全性難以保證,但又包含了公司最敏感的數據。然而,利用數據最小化和加密技術,公司可以巧妙地在數據的安全性、可訪問性和可用性之間取得平衡。  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved