[摘 要] 分布式數(shù)據(jù)庫(kù)系統(tǒng)是新近發(fā)展起來(lái)的一種技術(shù),雖然其有效的維護(hù)和管理龐大的數(shù)據(jù)庫(kù),提高了數(shù)據(jù)庫(kù)的可用性和可靠性,但由于分布式數(shù)據(jù)庫(kù)大多存放海量的重要數(shù)據(jù),因此其安全性越來(lái)越重要。本文從分布式數(shù)據(jù)庫(kù)的特點(diǎn)入手,設(shè)計(jì)了一種分布式數(shù)據(jù)庫(kù)加密系統(tǒng)的密鑰管理模塊。最后指出了分布式數(shù)據(jù)庫(kù)安全現(xiàn)存的問(wèn)題和將來(lái)研究的方向。
[關(guān)鍵詞] 分布式數(shù)據(jù)庫(kù) 加密 密鑰管理
一、分布式數(shù)據(jù)庫(kù)
分布式數(shù)據(jù)庫(kù)系統(tǒng)是在集中式數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)上發(fā)展起來(lái)的,是計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)結(jié)合的產(chǎn)物。分布式數(shù)據(jù)庫(kù)系統(tǒng)適合于單位分散的部門(mén),允許各個(gè)部門(mén)將其常用的數(shù)據(jù)存儲(chǔ)在本地,實(shí)施就地存放本地使用,從而提高響應(yīng)速度,降低通信費(fèi)用。分布式數(shù)據(jù)庫(kù)系統(tǒng)與集中式數(shù)據(jù)庫(kù)系統(tǒng)相比具有可擴(kuò)展性,通過(guò)增加適當(dāng)?shù)臄?shù)據(jù)冗余,提高系統(tǒng)的可靠性。
但是分布式數(shù)據(jù)庫(kù)的系統(tǒng)開(kāi)銷(xiāo)相對(duì)較大,并且具有復(fù)雜的存取結(jié)構(gòu),原來(lái)在集中式系統(tǒng)中有效存取數(shù)據(jù)的技術(shù),在分布式系統(tǒng)中都不再適用。更重要的是分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)安全性和保密性較難處理。因此,在分布式數(shù)據(jù)庫(kù)中常采用加密手段保證數(shù)據(jù)安全。
數(shù)據(jù)庫(kù)加密系統(tǒng)的關(guān)鍵影響因素一般包括加密粒度、加密算法和密鑰管理三個(gè)方面。本文將重點(diǎn)對(duì)分布式數(shù)據(jù)庫(kù)加密系統(tǒng)的密鑰管理進(jìn)行分析和設(shè)計(jì)。加密數(shù)據(jù)庫(kù)中的密鑰管理比其他系統(tǒng)的密鑰管理更為困難與復(fù)雜。而分布式數(shù)據(jù)庫(kù)中存儲(chǔ)著海量數(shù)據(jù),已經(jīng)加密的數(shù)據(jù)需要用原來(lái)的密鑰系統(tǒng)解密,且解密時(shí)間將會(huì)很長(zhǎng),加密密鑰不可能隨時(shí)更換。除此以外,根據(jù)加密粒度的不同,對(duì)不同的數(shù)據(jù)應(yīng)該使用不同的密鑰。因此分布式數(shù)據(jù)庫(kù)中需要保存大量的密鑰信息。另外,分布式數(shù)據(jù)庫(kù)客體之間隱含著復(fù)雜的邏輯關(guān)系,一個(gè)邏輯結(jié)構(gòu)可能對(duì)應(yīng)著多個(gè)數(shù)據(jù)庫(kù)物理客體,所以數(shù)據(jù)庫(kù)加密不僅密鑰量大,而且組織和存儲(chǔ)工作比較復(fù)雜,需要對(duì)密鑰實(shí)現(xiàn)動(dòng)態(tài)管理。因此如何生成、保存、替換數(shù)據(jù)庫(kù)加密密鑰,對(duì)數(shù)據(jù)庫(kù)加密中的密鑰管理提出了更為嚴(yán)格的要求。
二、密鑰管理模塊設(shè)計(jì)
1.系統(tǒng)分析。數(shù)據(jù)庫(kù)加密系統(tǒng)中密鑰管理通常利用兩種方法解決。方法之一是采用分級(jí)管理結(jié)構(gòu)。無(wú)論哪種多級(jí)密鑰體制,主密鑰都是加密子系統(tǒng)的關(guān)鍵,多級(jí)密鑰管理體制的安全依賴(lài)于主密鑰的安全。另一種解決方法是集中密鑰管理方法。即在建立加密數(shù)據(jù)庫(kù)時(shí),由密鑰管理中心負(fù)責(zé)產(chǎn)生加密密鑰并對(duì)數(shù)據(jù)加密。當(dāng)一用戶(hù)訪(fǎng)問(wèn)分布式數(shù)據(jù)庫(kù)時(shí),密鑰管理機(jī)構(gòu)核對(duì)用戶(hù)識(shí)別符和用戶(hù)密鑰,認(rèn)為是合法用戶(hù),則允許訪(fǎng)問(wèn)。但必須由密鑰管理機(jī)構(gòu)找到或計(jì)算出相應(yīng)的數(shù)據(jù)加密密鑰,并由他們利用數(shù)據(jù)加密算法解密出相應(yīng)的數(shù)據(jù)。由于加密粒度的不同,密鑰的種類(lèi)和密鑰的數(shù)量不同。這些密鑰存儲(chǔ)在一張表中。這張表通過(guò)加密密鑰對(duì)其加密保存。目前針對(duì)于數(shù)據(jù)庫(kù)加密體系中密鑰管理的應(yīng)用和研究大多是以“可信第三方”為基礎(chǔ)的。這種基于“可信第三方”的密鑰管理方法,認(rèn)為存在一個(gè)可信任的第三方(如:PKI體系中的CA,DBMS中的DBA等),并將用戶(hù)密鑰交給他保存?!翱尚诺谌健睋碛蝎@取和更改用戶(hù)密鑰的權(quán)力。這種方法相對(duì)來(lái)說(shuō)比較靈活。本文設(shè)計(jì)了一種基于“可信第三方”的密鑰管理機(jī)制,該機(jī)制既具有較高的安全性,又便于實(shí)現(xiàn)。
2.總體設(shè)計(jì)。本密鑰管理模塊包括三個(gè)部分:系統(tǒng)密鑰管理、數(shù)據(jù)密鑰管理和用戶(hù)密鑰管理。數(shù)據(jù)密鑰的管理為二級(jí)密鑰管理:一級(jí)密鑰為數(shù)據(jù)類(lèi)根密鑰,二級(jí)密鑰為數(shù)據(jù)類(lèi)密鑰。數(shù)據(jù)類(lèi)密鑰用于對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的加脫密。數(shù)據(jù)類(lèi)密鑰由中央權(quán)威機(jī)構(gòu)CA生成,數(shù)據(jù)類(lèi)根密鑰則是將所有的數(shù)據(jù)類(lèi)密鑰“集成”后形成的密鑰。當(dāng)然,數(shù)據(jù)類(lèi)根密鑰可以根據(jù)需要“分解”得到所有的數(shù)據(jù)類(lèi)密鑰或所需要的數(shù)據(jù)類(lèi)密鑰。將數(shù)據(jù)類(lèi)密鑰“集成”,主要是為了方便密鑰的管理。為了保證數(shù)據(jù)類(lèi)密鑰的安全,需對(duì)其進(jìn)行加密保護(hù),加密密鑰為系統(tǒng)主密鑰。系統(tǒng)主密鑰由運(yùn)行在CA處的管理軟件在第一次運(yùn)行時(shí)生成,其既為保護(hù)數(shù)據(jù)類(lèi)根密鑰的加密密鑰,又為登錄CA處管理軟件(主要包括密鑰管理程序和認(rèn)證程序)的登錄“口令”,以該“口令”登錄的用戶(hù),對(duì)CA處的管理軟件有著完全控制的最高權(quán)限。鑒于此,必須采取最安全的手段保護(hù)它。為確保系統(tǒng)主密鑰的安全,采取基于(n,t)門(mén)限管理的方法來(lái)管理。用戶(hù)類(lèi)密鑰由CA利用數(shù)據(jù)類(lèi)密鑰來(lái)生成。當(dāng)一個(gè)在CA處注過(guò)冊(cè)的用戶(hù)向CA申請(qǐng)密鑰時(shí),CA管理軟件根據(jù)注冊(cè)信息決定用戶(hù)屬于哪個(gè)用戶(hù)類(lèi),然后根據(jù)用戶(hù)類(lèi)型查詢(xún)用戶(hù)權(quán)限表以決定從解密的數(shù)據(jù)類(lèi)根密鑰“分解”出哪些數(shù)據(jù)類(lèi)的密鑰,接著再將這些剛“分解”出的數(shù)據(jù)類(lèi)密鑰“集成”為該用戶(hù)所屬用戶(hù)類(lèi)密鑰,最后該密鑰發(fā)送給用戶(hù)。通常用戶(hù)密鑰較長(zhǎng),為了方便用戶(hù)保管,可以用口令將密鑰加密存入加密卡,用戶(hù)只需記住位數(shù)較少的口令,這和銀行卡原理很相似。
一般來(lái)說(shuō),一個(gè)密鑰主要經(jīng)歷生成與存儲(chǔ)、密鑰分發(fā)、密鑰啟用與停用、密鑰替換與更新、密鑰銷(xiāo)毀以及密鑰撤銷(xiāo)幾個(gè)階段。密鑰分發(fā)(或密鑰分配)既是密鑰管理的核心問(wèn)題,也是密碼體制中非常困難的一個(gè)問(wèn)題。接下來(lái),本文將重點(diǎn)介紹一種基于公鑰密碼體制的密鑰分發(fā)模塊的設(shè)計(jì)。
本文就一種分布式數(shù)據(jù)庫(kù)密鑰管理模塊的設(shè)計(jì)進(jìn)行了討論??梢灶A(yù)見(jiàn)隨著分布式數(shù)據(jù)庫(kù)應(yīng)用范圍的擴(kuò)大,分布式數(shù)據(jù)庫(kù)將面臨新的安全問(wèn)題,這必然促使人們對(duì)分布式數(shù)據(jù)庫(kù)安全研究從各個(gè)方面向前推進(jìn)。
參考文獻(xiàn):
[1]陳永強(qiáng):分布式數(shù)據(jù)庫(kù)系統(tǒng)安全策略分析.武漢工業(yè)學(xué)院學(xué)報(bào),2003;63~67
[2]馮朝勝 秦志光 袁 丁:數(shù)據(jù)庫(kù)加密系統(tǒng)密鑰管理模塊的設(shè)計(jì).電子科技大學(xué)學(xué)報(bào),2007;830~833