如何提高加密數(shù)據(jù)庫(kù)的安全性
小編帶來(lái)的如何提高加密數(shù)據(jù)庫(kù)的安全性,歡迎大家閱讀學(xué)習(xí),希望大家多學(xué)習(xí),保障數(shù)據(jù)安全。
數(shù)據(jù)庫(kù)加密越來(lái)越常見(jiàn),但與此同時(shí)還是有一些因缺乏加密而造成重要數(shù)據(jù)泄漏的情況。姑且認(rèn)為你已經(jīng)部署了所有的安全措施,并且開(kāi)發(fā)進(jìn)程中的每一步都經(jīng)過(guò)深思熟慮;開(kāi)發(fā)出的web應(yīng)用程序也有足夠的能力對(duì)抗跨站腳本攻擊、SQL注入和其他常見(jiàn)的web漏洞;并且熟知所有的安全計(jì)劃(OWASP)條款,也知道對(duì)所有的傳輸數(shù)據(jù)、敏感數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)中的敏感字段加密。但接下來(lái)你會(huì)將加密密鑰放在哪里呢?有沒(méi)有使用硬件安全模塊(HSM)?大多數(shù)企業(yè)都沒(méi)有使用HSM,其實(shí)為了安全他們應(yīng)該都要使用的。存儲(chǔ)明文密碼就相當(dāng)于將鑰匙放在門墊上,完全沒(méi)有安全意識(shí)。
Web應(yīng)用程序框架
讓我們先來(lái)惡補(bǔ)一下常見(jiàn)的Web應(yīng)用程序框架。在一個(gè)典型的數(shù)據(jù)庫(kù)加密Web應(yīng)用程序中,應(yīng)用程序會(huì)直接將密鑰存儲(chǔ)在服務(wù)器的某個(gè)角落。這樣就被置于了逆向工程攻擊之列,并且還會(huì)造成一些操作性的安全問(wèn)題。這就是不使用HSM的后果,所以各位程序猿們趕緊使用HSM吧。
什么是HSM?
一個(gè)HSM本質(zhì)上就是一個(gè)協(xié)同處理器。就計(jì)算機(jī)架構(gòu)而言,HSM可能含有馮諾依曼機(jī)的所有組件——包括儲(chǔ)存、內(nèi)存以及處理能力。計(jì)算機(jī)采用二進(jìn)制算法和內(nèi)存貯器后,指令和數(shù)據(jù)便可以一起存放在存貯器中,并可作同樣處理,這樣,不僅可以使計(jì)算機(jī)的結(jié)構(gòu)大大簡(jiǎn)化,而且為實(shí)現(xiàn)運(yùn)算控制自動(dòng)化和提高運(yùn)算速度提供了良好的條件。
HSM為主機(jī)本身提供專用離線加密服務(wù)。
HSM致力于處理加密和保護(hù)加密進(jìn)程,服務(wù)器內(nèi)存不能訪問(wèn)重要數(shù)據(jù),用戶也無(wú)法看到明文密鑰,因此可以保證應(yīng)用程序和加密數(shù)據(jù)中間存在一個(gè)可信任的路徑。這個(gè)時(shí)候你可能會(huì)想到還有可能被物理入侵呢,其實(shí)不用擔(dān)心,HSM擁有一個(gè)防干擾的密封圈,可阻止攻擊者的電子竊聽(tīng)和無(wú)線電監(jiān)測(cè)。
HSM可以用來(lái)防范什么?
HSM可以防止攻擊者從一個(gè)敏感數(shù)據(jù)庫(kù)中盜取信息。如果攻擊者獲得了應(yīng)用服務(wù)器(儲(chǔ)存了明文密鑰)的訪問(wèn)特權(quán),密碼可以重新找回。無(wú)論密碼有多復(fù)雜,哪怕是被編譯、被打包或者被更改,它也能給逆向工程了。從安全工程的角度來(lái)看,這不是一種最佳的方式。
從操作安全的角度看,讓別人看到敏感、加密數(shù)據(jù)都是不明智的。其中包括終端用戶,還有開(kāi)發(fā)團(tuán)隊(duì)、系統(tǒng)管理員以及數(shù)據(jù)庫(kù)管理員。從系統(tǒng)角度看,你同樣不希望看到敏感數(shù)據(jù)從產(chǎn)品服務(wù)器傳播到工作服務(wù)器或開(kāi)發(fā)服務(wù)器上。如果你的數(shù)據(jù)庫(kù)含有敏感數(shù)據(jù),最好不要讓任何人訪問(wèn)它。
HSM是如何實(shí)施的?
因?yàn)镠SM是由一個(gè)應(yīng)用程序開(kāi)發(fā)團(tuán)隊(duì)部署,它是屬于程序安全領(lǐng)域,而不是基礎(chǔ)設(shè)施安全。硬件安全模塊能夠被應(yīng)用程序用于建立一個(gè)安全、可靠的通路。應(yīng)用程序必須使用HSM供應(yīng)商提供的應(yīng)用程序編程接口(API)建立專門執(zhí)行加密的操作。這些API包括常見(jiàn)的加密功能,如對(duì)稱算法、非對(duì)稱算法和解密操作,散列消息身份驗(yàn)證代碼,密碼信息身份驗(yàn)證代碼,RSA,數(shù)字簽名算法,Diffie-Hellman密鑰交換,隨機(jī)數(shù)生成,素?cái)?shù)生成以及格式保存生成。HSM程序編程接口可以由特定的供應(yīng)商提供,比如IBM發(fā)布的常見(jiàn)加密體系結(jié)構(gòu),或遵循公共標(biāo)準(zhǔn),如PKCS 11。顯然,有人會(huì)需要做一些謹(jǐn)慎的購(gòu)物來(lái)確保適當(dāng)?shù)墓δ芸捎谩?/p>
遵從FIPS-140-2標(biāo)準(zhǔn)
然而HSM不受PCI合規(guī)的托管,它們?yōu)榇蠖鄶?shù)支付方案使用。當(dāng)前HSM的管理標(biāo)準(zhǔn)為來(lái)自美國(guó)國(guó)家標(biāo)準(zhǔn)和技術(shù)委員會(huì),稱為美國(guó)聯(lián)邦信息處理標(biāo)準(zhǔn)(縮寫(xiě):FIPS-140-2)。事實(shí)上,若你需要儲(chǔ)存信用卡數(shù)據(jù),你非常應(yīng)該使用HSM。2009年P(guān)CI安全需求查看請(qǐng)點(diǎn)這里,2012年更新內(nèi)容可以在這里查看。
當(dāng)遵守FIPS-140-2標(biāo)準(zhǔn)的HSM被廣泛運(yùn)用于支付行業(yè)中,所有行業(yè)數(shù)據(jù)庫(kù)的安全系數(shù)都得到了大幅提高。而需要牢記的是你的醫(yī)療記錄對(duì)網(wǎng)絡(luò)犯罪而言比你的信用卡更具有價(jià)值,所以請(qǐng)保持警惕。
怎么開(kāi)始使用加密?
幸運(yùn)的是,HSM認(rèn)證產(chǎn)品擁有一個(gè)“票據(jù)交換所”,同時(shí)還有很多關(guān)于硬件安全模型的討論,包括專為基于網(wǎng)絡(luò)模塊儲(chǔ)存系統(tǒng)及其他定制的設(shè)計(jì)。然而,本文的目的是為HSM做一個(gè)高級(jí)的介紹,同時(shí)鼓勵(lì)用戶去SANS研究所和Stack Exchange(一系列問(wèn)答網(wǎng)站,每一個(gè)網(wǎng)站包含不同領(lǐng)域的問(wèn)題)做一些深入的閱讀。