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