網(wǎng)絡(luò)數(shù)據(jù)庫(kù)加密技術(shù)
互聯(lián)網(wǎng)技術(shù)日益普及和應(yīng)用,計(jì)算機(jī)中大批量的數(shù)據(jù)信息存儲(chǔ)和傳輸?shù)陌踩珕?wèn)題令人擔(dān)憂。如何保護(hù)網(wǎng)絡(luò)數(shù)據(jù)信息安,防止信息被竊取和破壞是一個(gè)普遍關(guān)注的問(wèn)題,這就需要我們對(duì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)進(jìn)行加密。
一、數(shù)據(jù)庫(kù)加密的必要性
傳輸中的公共信道和計(jì)算機(jī)存儲(chǔ)系統(tǒng)非常脆弱,網(wǎng)上大部分的資料都是明文傳遞,只要用一臺(tái)機(jī)上網(wǎng),就可以通過(guò)一定的方式竊取到許多別人的有用信息,甚至包括各種密碼,因此很有必要采取措施對(duì)數(shù)據(jù)進(jìn)行保護(hù)。
一方面,用戶自身需要對(duì)關(guān)鍵數(shù)據(jù)進(jìn)行有效保護(hù)。許多用戶從處獲得應(yīng)用支持和服務(wù),數(shù)據(jù)安全無(wú)法得到有效保障,因?yàn)閭鹘y(tǒng)的數(shù)據(jù)庫(kù)保護(hù)方式是通過(guò)設(shè)定口令字和訪問(wèn)權(quán)限等方法實(shí)現(xiàn)的。解決這一問(wèn)題的關(guān)鍵是要對(duì)數(shù)據(jù)本身加密,這樣即使數(shù)據(jù)不幸泄露或丟失也難以被第三者破譯。
另一方面,大型數(shù)據(jù)庫(kù)管理系統(tǒng)的運(yùn)行平臺(tái)一般是Windows NT或Unix系統(tǒng),這些操作系統(tǒng)的安全級(jí)別通常為c1、c2級(jí)。它們具有用戶注冊(cè)、識(shí)別用戶、任意存取控制、審計(jì)等安全功能。雖然dbms在OS的基礎(chǔ)上增加了不少安全措施,但和對(duì)數(shù)據(jù)庫(kù)文件本身仍然缺乏有效的保護(hù)措施。由此可見,數(shù)據(jù)加密對(duì)于系統(tǒng)外部或者系統(tǒng)內(nèi)部的安全管理都是必要的。
二、數(shù)據(jù)庫(kù)加密算法與密鑰管理
對(duì)數(shù)據(jù)庫(kù)加密,有客戶端加密與服務(wù)器端加密兩種方式。客戶端加密不會(huì)加重?cái)?shù)據(jù)庫(kù)服務(wù)器的負(fù)載,并且可實(shí)現(xiàn)網(wǎng)上的傳輸加密,這種加密方式通常利用數(shù)據(jù)庫(kù)外層工具實(shí)現(xiàn)。而服務(wù)器端的加密需要對(duì)數(shù)據(jù)庫(kù)管理系統(tǒng)本身進(jìn)行操作,屬核心層加密,如果沒有數(shù)據(jù)庫(kù)開發(fā)商的配合,實(shí)現(xiàn)難度較大。對(duì)于希望通過(guò)獲得服務(wù)的用戶,只有在客戶端實(shí)現(xiàn)加解密,才能保證數(shù)據(jù)安全可靠。
1、數(shù)據(jù)庫(kù)加密算法
加密算法是一些公式和法則,它規(guī)定了明文和密文之間的變換方法。目前常用的加密算法可分為三類:
(1)序列密碼
這種密碼以字符為單位進(jìn)行加密變換。每一字符數(shù)據(jù)的加密與報(bào)文的其他部分無(wú)關(guān)。例如,直接對(duì)明文加上一串同等長(zhǎng)度的亂碼也可看成是密鑰,只要所用的亂碼是隨機(jī)數(shù)且不重復(fù)使用,就實(shí)現(xiàn)了“一次一密”的加密。
從理論上講,真正實(shí)現(xiàn)了“一次一密”的密碼是可靠的密碼,是不可破譯的。缺點(diǎn)是密碼破譯人員比較容易得到明密對(duì)照雙碼,以便進(jìn)行密碼分析。同時(shí)亂碼的產(chǎn)生和管理比較困難,難以真正做到“一次一密”。
(2)分組密碼
明文按固定長(zhǎng)度分組,對(duì)各組數(shù)據(jù)用不同的密鑰加密或解密。這類密碼按分組進(jìn)行加密變換,一個(gè)字符數(shù)據(jù)不僅與密鑰有關(guān),還與其他字符數(shù)據(jù)有關(guān),密碼分析的窮盡量很大。例如傳統(tǒng)的位分組法,它的窮盡量為一,即使用每秒運(yùn)算萬(wàn)億次以上的巨型計(jì)算機(jī)進(jìn)行攻擊,平均窮盡時(shí)間也需要數(shù)年。
當(dāng)然這僅僅是理論數(shù)據(jù),在攻擊密碼時(shí)還有其他約束條件,如數(shù)據(jù)、環(huán)境、規(guī)律等信息,實(shí)際所需的攻擊時(shí)間要短得多。
(3)公鑰密碼
這類密碼的共同缺點(diǎn)是加解密速度較慢。
據(jù)報(bào)道,這類密碼的運(yùn)算速率僅達(dá)到其他密碼的千分之一到百分之一。公鑰密碼目前常用于用戶認(rèn)證、數(shù)字簽名以及密鑰傳輸?shù)?,不能適應(yīng)數(shù)據(jù)庫(kù)加密的速度要求密碼就是一個(gè)典型的公鑰密碼。
序列密碼和分組密碼也稱為對(duì)稱性密碼,這類密碼加密和解密時(shí)用同一個(gè)密鑰。公鑰密碼也稱非對(duì)稱密碼,它有兩個(gè)密鑰公鑰和私鑰,加密時(shí)用公鑰,解密時(shí)用私鑰。
2、密鑰管理方法
由于密碼系統(tǒng)反復(fù)使用,僅靠加密算法已難以保證信息的安全。
事實(shí)上,加密信息的安全可靠依賴于密鑰系統(tǒng),密鑰是控制加密算法和解密算法的關(guān)鍵信息。數(shù)據(jù)庫(kù)加密需要實(shí)行二級(jí)密鑰管理。一級(jí)密鑰為主密鑰,二級(jí)密鑰為工作密鑰。
主密鑰的作用是對(duì)二級(jí)密鑰信息加密生成工作密鑰。工作密鑰用于對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的加解密。工作密鑰信息的長(zhǎng)度為64位,前56位是記錄名,需要帶校驗(yàn)位存儲(chǔ)在數(shù)據(jù)庫(kù)表中。后位是數(shù)據(jù)庫(kù)表的字段信息該字段在表中的某些特征,它們是臨時(shí)生成的。為了存儲(chǔ)記錄名數(shù)據(jù),每個(gè)數(shù)據(jù)庫(kù)表增加了一個(gè)記錄名字段,在用戶錄人數(shù)據(jù)時(shí),系統(tǒng)自動(dòng)生成記錄名數(shù)據(jù),使每條記錄都有一個(gè)記錄名并做到各記錄名數(shù)據(jù)互不重復(fù)。
上述方法中,主密鑰保護(hù)了工作密鑰,工作密鑰保護(hù)敏感信息,因此整個(gè)系統(tǒng)的安全依賴于主密鑰的安全。一般主密鑰經(jīng)加密并存放在安全區(qū)域內(nèi),使用時(shí)由系統(tǒng)自動(dòng)獲取并解密。也可以把主密鑰注人加密卡中保存。只是主密鑰的更換比較棘手,主密鑰更換后,工作密鑰要全部更換,為安全起見,密鑰更換前,需要對(duì)數(shù)據(jù)庫(kù)系統(tǒng)全庫(kù)備份。事實(shí)上,數(shù)據(jù)庫(kù)生存期內(nèi),只要系統(tǒng)管理得當(dāng),密鑰系統(tǒng)僅需數(shù)年更換一次,或者不必更換。
小知識(shí)之網(wǎng)絡(luò)數(shù)據(jù)庫(kù):
網(wǎng)絡(luò)數(shù)據(jù)庫(kù)是跨越電腦在網(wǎng)絡(luò)上創(chuàng)建、運(yùn)行的數(shù)據(jù)庫(kù)。網(wǎng)絡(luò)數(shù)據(jù)庫(kù)中的數(shù)據(jù)之間的關(guān)系不是一一對(duì)應(yīng)的,可能存在著一對(duì)多的關(guān)系,這種關(guān)系也不是只有一種路徑的涵蓋關(guān)系,而可能會(huì)有多種路徑或從屬的關(guān)系。










