加密數(shù)據(jù)庫的安全性怎樣提高?

數(shù)據(jù)庫加密越來越常見,但與此同時(shí)還是有一些因缺乏加密而造成重要數(shù)據(jù)泄漏的情況。那么我們應(yīng)該怎樣提高數(shù)據(jù)庫的安全性呢?

讓我們先來了解一下常見的Web應(yīng)用程序框架。在一個(gè)典型的數(shù)據(jù)庫加密Web應(yīng)用程序中,應(yīng)用程序會直接將密鑰存儲在服務(wù)器的某個(gè)角落。這樣就被置于了逆向工程攻擊之列,并且還會造成一些操作性的安全問題。原因是因?yàn)闆]有使用HSM。

加密數(shù)據(jù)庫的安全性怎樣提高?

什么是HSM呢?一個(gè)HSM本質(zhì)上就是一個(gè)協(xié)同處理器。就計(jì)算機(jī)架構(gòu)而言,HSM可能含有馮諾依曼機(jī)的所有組件——包括儲存、內(nèi)存以及處理能力。計(jì)算機(jī)采用二進(jìn)制算法和內(nèi)存貯器后,指令和數(shù)據(jù)便可以一起存放在存貯器中,并可作同樣處理,這樣,不僅可以使計(jì)算機(jī)的結(jié)構(gòu)大大簡化,而且為實(shí)現(xiàn)運(yùn)算控制自動化和提高運(yùn)算速度提供了良好的條件。

HSM致力于處理加密和保護(hù)加密進(jìn)程,服務(wù)器內(nèi)存不能訪問重要數(shù)據(jù),用戶也無法看到明文密鑰,因此可以保證應(yīng)用程序和加密數(shù)據(jù)中間存在一個(gè)可信任的路徑。這個(gè)時(shí)候你可能會想到還有可能被物理入侵呢,其實(shí)不用擔(dān)心,HSM擁有一個(gè)防干擾的密封圈,可阻止攻擊者的電子竊聽和無線電監(jiān)測。

HSM可以防止攻擊者從一個(gè)敏感數(shù)據(jù)庫中盜取信息。如果攻擊者獲得了應(yīng)用服務(wù)器(儲存了明文密鑰)的訪問特權(quán),密碼可以重新找回。無論密碼有多復(fù)雜,哪怕是被編譯、被打包或者被更改,它也能給逆向工程了。從安全工程的角度來看,這不是一種最佳的方式。

從操作安全的角度看,讓別人看到敏感、加密數(shù)據(jù)都是不明智的。其中包括終端用戶,還有開發(fā)團(tuán)隊(duì)、系統(tǒng)管理員以及數(shù)據(jù)庫管理員。從系統(tǒng)角度看,你同樣不希望看到敏感數(shù)據(jù)從產(chǎn)品服務(wù)器傳播到工作服務(wù)器或開發(fā)服務(wù)器上。如果你的數(shù)據(jù)庫含有敏感數(shù)據(jù),最好不要讓任何人訪問它。

因?yàn)镠SM是由一個(gè)應(yīng)用程序開發(fā)團(tuán)隊(duì)部署,它是屬于程序安全領(lǐng)域,而不是基礎(chǔ)設(shè)施安全。硬件安全模塊能夠被應(yīng)用程序用于建立一個(gè)安全、可靠的通路。應(yīng)用程序必須使用HSM供應(yīng)商提供的應(yīng)用程序編程接口(API)建立專門執(zhí)行加密的操作。這些API包括常見的加密功能,如對稱算法、非對稱算法和解密操作,散列消息身份驗(yàn)證代碼,密碼信息身份驗(yàn)證代碼,RSA,數(shù)字簽名算法,Diffie-Hellman密鑰交換,隨機(jī)數(shù)生成,素?cái)?shù)生成以及格式保存生成。HSM程序編程接口可以由特定的供應(yīng)商提供,比如IBM發(fā)布的常見加密體系結(jié)構(gòu),或遵循公共標(biāo)準(zhǔn),如PKCS 11。顯然,有人會需要做一些謹(jǐn)慎的購物來確保適當(dāng)?shù)墓δ芸捎谩?/p>