數(shù)據(jù)庫(kù)應(yīng)用安全:如何平衡加密與訪(fǎng)問(wèn)控制 |
發(fā)布時(shí)間: 2012/9/13 17:22:47 |
通常情況下,公司一些最敏感的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中。這些數(shù)據(jù)包括醫(yī)療記錄、員工記錄、信用卡號(hào)碼、社會(huì)保障號(hào)碼等,它們受隱私法規(guī)的監(jiān)管,必須加以保護(hù)。 然而,與此同時(shí),公司必須在敏感數(shù)據(jù)的安全性與可用性之間進(jìn)行折中,以滿(mǎn)足因合法的商業(yè)使用而訪(fǎng)問(wèn)這些數(shù)據(jù)的需求,包括為保持業(yè)務(wù)連續(xù)性而進(jìn)行的備份和遠(yuǎn)程復(fù)制。最強(qiáng)大的數(shù)據(jù)隱私保護(hù)技術(shù)是加密。但是,為了既切實(shí)保證敏感數(shù)據(jù)的安全性而又不影響業(yè)務(wù)的連續(xù)性,使用加密技術(shù)時(shí)必須小心。在保護(hù)敏感數(shù)據(jù)以及平衡加密與訪(fǎng)問(wèn)控制方面,數(shù)據(jù)庫(kù)應(yīng)用安全的一些最佳實(shí)踐值得借鑒: 數(shù)據(jù)最小化與模糊處理 保護(hù)敏感數(shù)據(jù)的最好、最有效的辦法是當(dāng)初就不存儲(chǔ)或少存儲(chǔ)數(shù)據(jù)。因此,公司應(yīng)該經(jīng)常檢查下列數(shù)據(jù)最小化問(wèn)題: 該數(shù)據(jù)將來(lái)還需要嗎? 可以只存儲(chǔ)用于身份驗(yàn)證的部分?jǐn)?shù)據(jù)(例如社會(huì)保障號(hào)碼的后四位)嗎? 可以使用其他不太敏感的數(shù)據(jù)(例如寵物的名字)進(jìn)行身份驗(yàn)證嗎? 可以使用或存儲(chǔ)數(shù)據(jù)的hash值(例如MD5、SHA)而不是原始數(shù)據(jù)本身嗎? 在許多情況下,這些問(wèn)題可以減少需要存儲(chǔ)的數(shù)據(jù)量并降低數(shù)據(jù)的敏感程度。 數(shù)據(jù)加密 公司可以對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行加密,以防止其被盜或意外泄漏。在加密數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),有三個(gè)關(guān)鍵問(wèn)題需要考慮:在何處加密數(shù)據(jù)、如何加密數(shù)據(jù)以及在何處存儲(chǔ)密鑰。下面將分別討論這些問(wèn)題: 在何處加密數(shù)據(jù)——加密可以在應(yīng)用層、數(shù)據(jù)庫(kù)或底層存儲(chǔ)器中進(jìn)行。如果加密在數(shù)據(jù)庫(kù)中進(jìn)行,則還可以對(duì)特定字段、列、表或者整個(gè)數(shù)據(jù)庫(kù)加密。當(dāng)然,在應(yīng)用層、數(shù)據(jù)庫(kù)和底層存儲(chǔ)器中加密各有利弊。 由于應(yīng)用層加密是在系統(tǒng)的最高層對(duì)數(shù)據(jù)進(jìn)行加密,所以數(shù)據(jù)對(duì)應(yīng)用層之下的各層都不可見(jiàn)。如果加密在應(yīng)用層進(jìn)行,則數(shù)據(jù)庫(kù)、操作系統(tǒng)、網(wǎng)絡(luò)以及數(shù)據(jù)經(jīng)過(guò)的所有其他路徑都只能看到加密后的形式。 應(yīng)用層加密的問(wèn)題在于,通常會(huì)有多個(gè)高層應(yīng)用程序需要訪(fǎng)問(wèn)數(shù)據(jù),這些應(yīng)用程序?qū)⑿枰荑副本對(duì)數(shù)據(jù)進(jìn)行解密?梢垣@得密鑰副本的應(yīng)用程序越多,密鑰遭到泄漏的可能性就越大。 但是,如果加密在較低的層進(jìn)行,則你還需要進(jìn)一步在其他層進(jìn)行加密。例如,當(dāng)數(shù)據(jù)流經(jīng)數(shù)據(jù)庫(kù)和應(yīng)用程序之間的網(wǎng)絡(luò)時(shí)需要對(duì)其進(jìn)行加密,否則數(shù)據(jù)對(duì)網(wǎng)絡(luò)層將是可見(jiàn)的。這將會(huì)引入需要加以保護(hù)的其他加密密鑰。在何處進(jìn)行加密是一種微妙的平衡,取決于應(yīng)用程序和數(shù)據(jù)流的體系結(jié)構(gòu)。 如何加密數(shù)據(jù)——加密可以利用軟件、硬件或者軟件硬件相結(jié)合的方式實(shí)現(xiàn)。具體采用何種方式加密,取決于你希望達(dá)到的吞吐量(Mb/s)。如果希望獲得較大的吞吐量,則你可能需要一些硬件加速方式。無(wú)論采用何種加密方式,有一個(gè)問(wèn)題別無(wú)選擇:始終使用先進(jìn)的、強(qiáng)大的、基于標(biāo)準(zhǔn)的加密和密鑰管理系統(tǒng);不要試圖發(fā)明自己的加密和密鑰管理系統(tǒng),你自己的加密和密鑰管理系統(tǒng)可能奏效也可能不能奏效。目前,一些高端服務(wù)器處理器已經(jīng)內(nèi)置了支持AES(高級(jí)加密標(biāo)準(zhǔn))的加密基元(Encryption Primitives),可以實(shí)現(xiàn)比基于軟件的算法快得多(高達(dá)9倍)的加密。 在何處存儲(chǔ)密鑰——加密最大的挑戰(zhàn)不是加密本身,而是密鑰的存儲(chǔ)和分配。加密數(shù)據(jù)的安全性和可訪(fǎng)問(wèn)性并不高于密鑰本身。密鑰必須悉心保護(hù),以防攻擊者竊取。同時(shí),密鑰必須與加密數(shù)據(jù)分開(kāi)存儲(chǔ),但又要可供加密/解密算法訪(fǎng)問(wèn)。另一方面,必須對(duì)密鑰進(jìn)行備份和復(fù)制,以便當(dāng)原始數(shù)據(jù)和原始密鑰由于災(zāi)難而丟失時(shí)可以解密備份數(shù)據(jù)。你選擇的任何密鑰管理系統(tǒng)必須支持下列功能: 安全存儲(chǔ)密鑰。 認(rèn)證和跟蹤審計(jì)對(duì)密鑰的訪(fǎng)問(wèn)。 托管或恢復(fù)密鑰,以防密鑰丟失。 備份密鑰并將密鑰安全地傳輸?shù)竭h(yuǎn)程位置,以供恢復(fù)之用。 加密標(biāo)準(zhǔn) 許多加密和密鑰管理系統(tǒng)都通過(guò)了以下兩個(gè)實(shí)用標(biāo)準(zhǔn)的認(rèn)證:美國(guó)聯(lián)邦信息處理標(biāo)準(zhǔn)(Federal Information Processing Standard,F(xiàn)IPS)140,其安全級(jí)別分為1到4級(jí);通用標(biāo)準(zhǔn)評(píng)估保證等級(jí)(Common Criteria Evaluation Assurance Level,CCEAL),其安全級(jí)別分為1到7級(jí)。這些標(biāo)準(zhǔn)提供了一個(gè)指標(biāo),可以比較不同系統(tǒng)的加密算法、密鑰存儲(chǔ)和密鑰管理機(jī)制的安全性。級(jí)別越高意味著加密算法、密鑰存儲(chǔ)方法、防篡改硬件和密鑰管理機(jī)制越好。例如,F(xiàn)IPS在確定一個(gè)認(rèn)證級(jí)別時(shí),考慮了11個(gè)不同方面的安全性。你應(yīng)該根據(jù)數(shù)據(jù)的敏感程度和你所在地區(qū)的監(jiān)管要求,選擇合適的安全級(jí)別。 數(shù)據(jù)庫(kù)應(yīng)用極為復(fù)雜,由多層松散耦合的組件構(gòu)成。數(shù)據(jù)庫(kù)應(yīng)用的安全性難以保證,但又包含了公司最敏感的數(shù)據(jù)。然而,利用數(shù)據(jù)最小化和加密技術(shù),公司可以巧妙地在數(shù)據(jù)的安全性、可訪(fǎng)問(wèn)性和可用性之間取得平衡。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |