企業(yè)數(shù)據(jù)庫(kù)安全與加密設(shè)計(jì)

企業(yè)需要保證計(jì)算機(jī)數(shù)據(jù)庫(kù)信息網(wǎng)絡(luò)安全,以確保重要信息不被侵害,數(shù)據(jù)庫(kù)信息的安全尤為重要,那么我們今天就來(lái)看一下企業(yè)數(shù)據(jù)庫(kù)是如何加密的?

一、數(shù)據(jù)庫(kù)系統(tǒng)安全策略

1、安全管理策略

安全管理策略分為集中式控制和分布式控制。對(duì)于集中式控制,一個(gè)授權(quán)管理員或組,控制著系統(tǒng)的所有安全;對(duì)有分布式控制,不同的授權(quán)管理員或組,控制著數(shù)據(jù)庫(kù)安全的不同部分。

2、存取控制策略

在數(shù)據(jù)庫(kù)系統(tǒng)中,存取控制是實(shí)施安全策略常用的手段,為了保證用戶只能存取有權(quán)存取的數(shù)據(jù),系統(tǒng)要求對(duì)每個(gè)用戶定義存取權(quán)限(即授權(quán))。存取權(quán)限包括兩個(gè)方面的內(nèi)容,即要存取的數(shù)據(jù)對(duì)象和對(duì)此數(shù)據(jù)對(duì)象進(jìn)行哪些類型的操作(讀、寫(xiě)、刪、改等)。在非關(guān)系數(shù)據(jù)庫(kù)中,用戶只能對(duì)數(shù)據(jù)進(jìn)行操作,存取控制的數(shù)據(jù)對(duì)象也只限于數(shù)據(jù)本身。而關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)庫(kù)管理員可以把建立和修改基本表的權(quán)限授予用戶,用戶可利用權(quán)限建立和修改基本表、索引、視圖。因此,關(guān)系系統(tǒng)中存取控制的數(shù)據(jù)對(duì)象不僅有數(shù)據(jù)本身,還有存儲(chǔ)模式、概念模式、子模式等內(nèi)容。

存取控制對(duì)系統(tǒng)中的對(duì)象進(jìn)行了兩種劃分:一個(gè)是主體,一個(gè)是客體。主體是系統(tǒng)中的活動(dòng)實(shí)體,包括DBMS所管理的實(shí)際用戶、代表用戶的各進(jìn)程。客體是系統(tǒng)中受主體操縱的被動(dòng)實(shí)體,包括文件、基本表、索引、視圖等。存取控制就是在主體欲對(duì)客體進(jìn)行存取時(shí),檢查主體的合法性(即權(quán)限),確保數(shù)據(jù)不被非法查詢和修改。存取控制模型分為自主存取控制、強(qiáng)制存取控制和基于角色的存取控制。無(wú)論哪種控制都是有關(guān)不同權(quán)限的用戶對(duì)不同數(shù)據(jù)進(jìn)行不同操作權(quán)限的控制問(wèn)題。

3、審計(jì)日志

日志記錄十分重要,管理員可以通過(guò)對(duì)日志的維護(hù)了解用戶所進(jìn)行的操作,另外日志記錄也是進(jìn)行安全入侵檢測(cè)的必須數(shù)據(jù)。審計(jì)主要是跟蹤記錄某些保密數(shù)據(jù)的訪問(wèn)活動(dòng)。為了使日志記錄的消息不丟失,可將存放日志的數(shù)據(jù)庫(kù)置于與主機(jī)分離的機(jī)器上,允許添加和讀取數(shù)據(jù)庫(kù),但不允許修改。

二、數(shù)據(jù)庫(kù)加密技術(shù)

數(shù)據(jù)庫(kù)系統(tǒng)提供的上述措施難以完全保證數(shù)據(jù)安全性,某些用戶仍可能非法獲取用戶名、口令字,或利用其他方法越權(quán)使用數(shù)據(jù)庫(kù),甚至直接竊取或篡改數(shù)據(jù)庫(kù)信息。因此,有必要對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的重要數(shù)據(jù)進(jìn)行加密處理,安全保護(hù)存儲(chǔ)數(shù)據(jù)。

1、 數(shù)據(jù)加密

數(shù)據(jù)加密就是將明文數(shù)據(jù)M經(jīng)過(guò)一定的交換變成密文數(shù)據(jù)C,解密是加密的逆過(guò)程。數(shù)據(jù)庫(kù)密碼系統(tǒng)要求將M加密成C,C存儲(chǔ)到數(shù)據(jù)庫(kù)中,查詢時(shí)將C取出解密得到NI。數(shù)據(jù)庫(kù)數(shù)據(jù)加/解密處理過(guò)程如圖1所示。

企業(yè)數(shù)據(jù)庫(kù)安全與加密設(shè)計(jì)

2、加密算法

基于密鑰的算法通常有兩類:對(duì)稱加密算法和公開(kāi)密鑰算法(又稱非對(duì)稱加密算法)。

大多數(shù)對(duì)稱加密算法的加密密鑰和解密密鑰相同,安全性依賴于密鑰k,要求發(fā)送者和接受者在安全通信之前商定一個(gè)k,算法為:加密E k(M) =C和解密Dk(C)=M。根據(jù)對(duì)明文信息的加密方式,對(duì)稱算法又可分為序列密碼和分組密碼兩大類:序列密碼直接對(duì)當(dāng)前的字符進(jìn)行變換,每次加密一位或者一個(gè)字節(jié)的明文,每一字符數(shù)據(jù)的加密與明文的其他部分無(wú)關(guān);分組密碼將明文按一定的位長(zhǎng)分組(通常是64或128位),對(duì)各組數(shù)據(jù)用不同的密鑰加密或解密。公開(kāi)密鑰算法,加密密鑰(是公開(kāi)的,簡(jiǎn)稱公鑰)與解密密鑰(簡(jiǎn)稱私鑰)不相同,且私鑰不能從公鑰計(jì)算出來(lái)(至少在合理假定的時(shí)間內(nèi))。用公鑰ka加密既Eka(M)=C,只有用相應(yīng)的私鑰ka'才能解密Dka'(C)=M。

公鑰鑰算法的速度很慢,不能滿足數(shù)據(jù)庫(kù)文件加密對(duì)密碼的要求;而對(duì)稱密碼中的序列密碼適用于通信領(lǐng)域,對(duì)數(shù)據(jù)庫(kù)加密來(lái)說(shuō)也不適合;分組密碼的速度快,對(duì)密文攻擊不敏感,保密強(qiáng)度高,可以用于數(shù)據(jù)庫(kù)加密。因此,在數(shù)據(jù)庫(kù)加密中,一般都采用分組密碼算法,如DES、三重DES、IDEA、AES等。

3、數(shù)據(jù)庫(kù)加密方式

(1) 庫(kù)外加密

整個(gè)數(shù)據(jù)庫(kù)作為普通文件看待,把數(shù)據(jù)分塊先在庫(kù)外進(jìn)行加密,然后把每次加密后的數(shù)據(jù)塊寫(xiě)入到數(shù)據(jù)庫(kù)文件中(而不是按數(shù)據(jù)關(guān)系寫(xiě)入)。讀出時(shí)逆向解密即可。

(2)庫(kù)內(nèi)加密

經(jīng)典的數(shù)據(jù)庫(kù)系統(tǒng)將內(nèi)部結(jié)構(gòu)劃分為三層(存儲(chǔ)模式、概念模式和子模式),可以在三層結(jié)構(gòu)的各層映射之間增加一個(gè)加密映射層次(即加密模式)。對(duì)數(shù)據(jù)進(jìn)行加密的粒度可以是表、記錄、字段或數(shù)據(jù)元素。所選擇的加密粒度越精細(xì),需要掌管的加密密鑰的數(shù)量就愈大,密鑰管理的難度和復(fù)雜性就越高。由于是在數(shù)據(jù)庫(kù)管理系統(tǒng)內(nèi)部實(shí)現(xiàn),所以與數(shù)據(jù)存取訪問(wèn)控制等數(shù)據(jù)庫(kù)安全機(jī)制的結(jié)合比較自然有效。

1)基于表的加密

使用傳統(tǒng)的單密鑰密碼體制,不適合分布式數(shù)據(jù)庫(kù)系統(tǒng)。

2)基于記錄的加密

記錄在各自密鑰的作用下,加密成密文并存放于相關(guān)數(shù)據(jù)庫(kù)文件中;記錄的查找是將欲查找值加密成密文后進(jìn)行的。加密后的記錄不能實(shí)現(xiàn)索引、連接、統(tǒng)計(jì)、排序等操作。

3)基于字段的加密

將記錄中的一部分字段進(jìn)行加密。對(duì)于用于索引項(xiàng)、比較、表間連接的關(guān)鍵字等字段不進(jìn)行加密,否則大大影響查詢速度,甚至無(wú)法使用惻。

三、企業(yè)數(shù)據(jù)庫(kù)安全及加密設(shè)計(jì)

下面針對(duì)一個(gè)小型企業(yè)的購(gòu)銷系統(tǒng)的安全與保密問(wèn)題,提出安全系統(tǒng)設(shè)計(jì)方案,使其具有身份認(rèn)證、存取權(quán)限控制、信息加、解密和密鑰管理等功能。購(gòu)銷系統(tǒng)安全結(jié)構(gòu)如圖2所示。

企業(yè)數(shù)據(jù)庫(kù)安全與加密設(shè)計(jì)

1、用戶權(quán)限控制

系統(tǒng)首先對(duì)用戶發(fā)出的訪問(wèn)請(qǐng)求進(jìn)行身份和授權(quán)認(rèn)證,具有合法權(quán)限的用戶才能進(jìn)入系統(tǒng)操作環(huán)境,對(duì)數(shù)據(jù)庫(kù)進(jìn)行權(quán)限范圍內(nèi)的訪問(wèn);同時(shí),將認(rèn)證及訪問(wèn)情況記錄在日志中,便于日志審計(jì)。安全認(rèn)證管理流程如圖3所示。

企業(yè)數(shù)據(jù)庫(kù)安全與加密設(shè)計(jì)

對(duì)用戶Uc的權(quán)限a管理采用一個(gè)三元授權(quán)函數(shù)f:U× D×A→(True,F(xiàn)alse)完成。授權(quán)模型為三元組(uc,dc,a),uc,dc,a分別為:按數(shù)據(jù)庫(kù)中密文數(shù)據(jù)不同的安全等級(jí)將數(shù)據(jù)劃分為不同的數(shù)據(jù)類畋,記數(shù)據(jù)類集合為D,dc∈D;按用戶的訪問(wèn)權(quán)限將用戶劃分為不同的用戶類Uc,記用戶類集合為U,Uc∈U;定義A為授權(quán)類型集合(讀,寫(xiě),修改等),權(quán)限a∈A。當(dāng)f(uc,dc,a)=True時(shí)表明用戶類Uc對(duì)數(shù)據(jù)類Dc有a權(quán)限;為False則無(wú)權(quán)限。

2、 信息存取控制

對(duì)數(shù)據(jù)庫(kù)中有關(guān)表和字段信息的加密、解密采用對(duì)稱加密算法中的分組密碼算法DES實(shí)現(xiàn),使用的密鑰為64位,有效密鑰長(zhǎng)度為56位(有8位用于奇偶校驗(yàn))。如果要求“強(qiáng)壯”加密,可采用三重DES、IDEA等加密算法。表和字段信息的加/解密控制與刪改權(quán)限控制的結(jié)合及其實(shí)施方案如圖4所示。

企業(yè)數(shù)據(jù)庫(kù)安全與加密設(shè)計(jì)

有關(guān)表和字段的密鑰由相關(guān)人員妥善保管。在查詢有關(guān)材料的詳細(xì)信息時(shí),首先要求用戶插入相應(yīng)的密鑰盤,用該密鑰對(duì)密文信息進(jìn)行解密,變成相應(yīng)的明文信息,進(jìn)而顯示各表中的信息明文。當(dāng)用戶要求修改有關(guān)信息內(nèi)容時(shí),除了要有該表的密鑰之外,還要求用戶擁有修改權(quán)限,這是通過(guò)給有相應(yīng)權(quán)限的人員分配一個(gè)修改密鑰實(shí)現(xiàn)的,該密鑰也存放軟盤上,驗(yàn)證密鑰采用單向函數(shù)體制。

3、密鑰管理

各存取控制密鑰的產(chǎn)生,是利用隨機(jī)數(shù)產(chǎn)生器隨機(jī)產(chǎn)生40位十進(jìn)制整數(shù)作為密鑰。隨機(jī)選擇40位十進(jìn)制大素?cái)?shù)作為模。密鑰的分配情況是,身份驗(yàn)證、數(shù)據(jù)表修改和數(shù)據(jù)庫(kù)管理界面的訪問(wèn)控制密鑰在系統(tǒng)初始化時(shí)產(chǎn)生并分配給用戶,各數(shù)據(jù)表密鑰在信息錄入時(shí)產(chǎn)生并分配給用戶。

4、 系統(tǒng)安全性分析

單向函數(shù)體制的保密程度是基于有限域中離散對(duì)數(shù)算法的復(fù)雜性。這里,素?cái)?shù)模n取40位十進(jìn)制整數(shù)。由于n是保密的,所以猜測(cè),n的計(jì)算復(fù)雜度(10的29次方),因而用窮舉法來(lái)破譯是不可能的。對(duì)于DES算法,由于密鑰量n=2的 56次方=7×10的16次方,所以DES算法的安全性已經(jīng)足夠勝任加密要求不是很嚴(yán)格的購(gòu)銷系統(tǒng)了。

小知識(shí)之密鑰管理

密鑰,即密匙,一般范指生產(chǎn)、生活所應(yīng)用到的各種加密技術(shù),能夠?qū)Ω魅速Y料、企業(yè)機(jī)密進(jìn)行有效的監(jiān)管,密鑰管理就是指對(duì)密鑰進(jìn)行管理的行為,如加密、解密、破解等等。