摘 要 隨著計算機特別是計算機網絡的發(fā)展,數(shù)據(jù)的共享日益增強,數(shù)據(jù)的安全保密越來越重要。網絡數(shù)據(jù)庫安全性問題一直是圍繞著數(shù)據(jù)庫管理的重要問題,數(shù)據(jù)庫數(shù)據(jù)的丟失以及數(shù)據(jù)庫被非法用戶的侵入使得網絡數(shù)據(jù)庫安全性的研究尤為重要。數(shù)據(jù)庫管理系統(tǒng)是管理數(shù)據(jù)的核心,因而其自身必須有一整套完整而有效的安全性機制。實現(xiàn)數(shù)據(jù)庫系統(tǒng)安全性的技術和方法有多種,最重要的是存取控制技術、視圖技術和審計技術。
關鍵詞 數(shù)據(jù)庫 安全性 安全保護 網絡安全
中圖分類號:TP309.2 文獻標識碼:A
數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。安全性問題不是數(shù)據(jù)庫系統(tǒng)所獨有的,所有的計算機系統(tǒng)都有這個問題。只是在數(shù)據(jù)庫系統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出。系統(tǒng)安全保護措施是否有效是數(shù)據(jù)庫系統(tǒng)的主要技術指標之一。數(shù)據(jù)庫的安全性和計算機系統(tǒng)的安全性,包括計算機硬件、操作系統(tǒng)、網絡系統(tǒng)等的安全性,是緊密聯(lián)系、相互支持的。
在一般的計算機系統(tǒng)中,安全措施是一級一級層層設置的。在下圖所示的安全模型中,用戶要求進入計算機系統(tǒng)時,系統(tǒng)首先根據(jù)輸入的用戶標識進行用戶身份鑒定,只有合法的用戶才準進入計算機系統(tǒng)。對已進入系統(tǒng)的用戶,DBMS還要進行存取控制,只允許用戶執(zhí)行合法操作。
數(shù)據(jù)庫安全性所關心的主要是DBMS的存取控制機制。數(shù)據(jù)庫安全最重要的一點就是確保只授權給有資格的用戶訪問數(shù)據(jù)庫權限,同時令所有未被授權的人員無法接近數(shù)據(jù)。這主要通過數(shù)據(jù)庫系統(tǒng)的存取控制機制實現(xiàn)。存取控制機制主要包括:一、定義用戶權限,并將用戶權限登記到數(shù)據(jù)字典中;二、合法權限檢查。
我們還可以為不同的用戶定義不同的視圖,把數(shù)據(jù)對象限制在一定的范圍內,即通過視圖機制把要保密的數(shù)據(jù)對無權存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護。視圖機制間接地實現(xiàn)支持存取謂詞的用戶權限定義。
為了使DBMS達到一定的安全級別,還需要在其他方面提供相應的支持,“審計”功能就是DBMS達到C2以上安全級別比不可少的一項指標。審計常常是很費時間和空間的,所以DBMS往往都將其作為可選特征,允許DBA根據(jù)應用對安全性的要求,靈活地打開或關閉審計功能。審計功能一般主要用于安全性要求較高的部門。
既然造成數(shù)據(jù)庫不安全的一個主要原因是因為原始數(shù)據(jù)以可讀(明文)形式存放在數(shù)據(jù)庫中。一旦某一用戶非法獲取用戶名和口令,或者繞過操作系統(tǒng)緘DBMs)的控制入侵到系統(tǒng)中,可以訪問和修改數(shù)據(jù)庫中的信息。
另外,數(shù)據(jù)存儲介質(如磁盤、光盤、磁帶等)丟失也會導致數(shù)據(jù)庫中的數(shù)據(jù)泄漏。如果我們對數(shù)據(jù)庫中的數(shù)據(jù)(明文)進行加密處理,那么上述問題就可以得到解決。即使某一用戶非法入侵到系統(tǒng)中或者盜取了數(shù)據(jù)存儲介質,沒有相應的解密密鑰,他仍然不能得到所需數(shù)據(jù)。所以,數(shù)據(jù)庫的加密處理對于保證數(shù)據(jù)的安全性具有十分重要的意義。
根據(jù)數(shù)據(jù)庫數(shù)據(jù)的特點,一個數(shù)據(jù)庫表是由x條記錄組成的,而每一條記錄又由Y個字段(屬性)組成,一共有x€譟個數(shù)據(jù)。第i個記錄中的字段(屬性)j的明文可以表示這樣:Dij,其中0≤i≤x,0≤j≤Y;第i個記錄中第i個字段的密文可以這樣表示:xij:E(K,D 其中0≤i≤x,0≤j≤Y;E為某種對稱密碼算法,K為該算法所使用密鑰。其中對同一個數(shù)據(jù)庫表而言,加密算法是相同的。如果使用的加密密鑰K也相同,又會很容易受到密文分析與密文替代的攻擊。如果使用不同的加密密鑰對全部的字段值進行加密,則密鑰K的個數(shù):記錄個數(shù)(x),很顯然會生成數(shù)量過于龐大的密鑰。那么密鑰的安全管理也就成了一個很棘手的問題。如果能夠找出一種管理加密密鑰的方案,就能夠解決加密密鑰過于龐大的問題。如果對數(shù)據(jù)庫表中的數(shù)據(jù)采用二級密鑰管理機制,即一個主密鑰,一個工作密鑰。主密鑰的作用是用來生成工作密鑰。工作密鑰對數(shù)據(jù)庫數(shù)據(jù)的加密。主密鑰用來保護工作密鑰的安全,工作密鑰用來保護敏感的數(shù)據(jù)信息,那么整個數(shù)據(jù)庫表的安全就依賴于主密鑰的安全。一般情況下,主密鑰經過加密后存放在系統(tǒng)的安全區(qū)域內,需要時由系統(tǒng)自動獲取并解密。另外也可以把主密鑰注入加密卡中保存。在這種情況下,只是主密鑰的更換比較麻煩,主密鑰一旦更換,工作密鑰就需要全部隨之發(fā)生變化。所以,從安全的角度考慮,密鑰在經行更改前,需要對數(shù)據(jù)庫系統(tǒng)全庫備份。
事實上,在數(shù)據(jù)庫生存期內,只要我們的系統(tǒng)管理不出現(xiàn)漏洞,密鑰系統(tǒng)只是需數(shù)年更換一次,或者不必更換??傮w來說,為保證數(shù)據(jù)的安全,對數(shù)據(jù)庫表進行加密是一種很有效的方法。
雖然通過數(shù)據(jù)加密對數(shù)據(jù)進行加密操作,以密文形式把數(shù)據(jù)存儲起來,使得攻擊者即使入侵到系統(tǒng)中,或者獲得了存儲介質也無法直接得到明文,從而在存儲上保證了數(shù)據(jù)的安全性。但是,數(shù)據(jù)加密后,也會產生一些問題:數(shù)據(jù)操作時其性能會變低、索引字段的加密問題、加密后數(shù)據(jù)庫的完整性問題、關于加密存儲空間增大問題。
顯而易見,數(shù)據(jù)庫的安全性對當今社會有很大影響,計算機安全性問題也得到越來越多的人的重視。因此,只有建立了完善的可信或安全標準,才能規(guī)范和指導安全計算機系統(tǒng)部件的生產,比較準確地測定產品的安全性能指標,滿足社會的需要。
參考文獻
[1] 戴維森(澳),著,朱理,譯.數(shù)據(jù)庫的法律保護.北京大學出版社,2007,1.
[2] 王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論.高等教育出版社,2006,5.