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

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

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

1、安全管理策略

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

2、存取控制策略

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

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

3、審計日志

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

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

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

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

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

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

2、加密算法

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

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

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

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

(1) 庫外加密

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

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

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

1)基于表的加密

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

2)基于記錄的加密

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

3)基于字段的加密

將記錄中的一部分字段進行加密。對于用于索引項、比較、表間連接的關鍵字等字段不進行加密,否則大大影響查詢速度,甚至無法使用惻。

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

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

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

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

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

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

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

2、 信息存取控制

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

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

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

3、密鑰管理

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

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

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

小知識之密鑰管理

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