曾 浩 牟亞莉 徐 妍
(中科院聲學(xué)研究所1) 北京 100190)(海軍后勤部信息辦2) 北京 100841)(海司第四部3) 北京 100841)
數(shù)據(jù)庫是信息資源存儲與處理的核心載體,其安全性是信息安全保障的重要組成部分,安全數(shù)據(jù)庫是信息系統(tǒng)安全研究的重要領(lǐng)域之一。安全數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)與研究更多關(guān)注安全而忽略可信這個(gè)基礎(chǔ)條件,可信計(jì)算思想是基于終端安全從源頭解決信息安全問題的思想[1~3],為構(gòu)筑可信環(huán)境,研究DBMS可信性提供了有力的借鑒。目前對于可信計(jì)算的關(guān)注點(diǎn)多集中于可信計(jì)算環(huán)境、可信平臺體系架構(gòu)以及安全操作系統(tǒng)等研究[4~7],而對DBMS可信研究涉及較少。相比傳統(tǒng)安全數(shù)據(jù)庫系統(tǒng),結(jié)合可信計(jì)算理論是對當(dāng)前數(shù)據(jù)庫系統(tǒng)安全研究的新要求,對于系統(tǒng)整體安全目標(biāo)而言,可信和安全相輔相成,缺一不可。這使得基于可信操作環(huán)境的DBMS可信研究成為數(shù)據(jù)庫系統(tǒng)安全研究的重要內(nèi)容。
定義1 可信操作環(huán)境。是基于可信計(jì)算平臺,它能夠?yàn)楸镜赜脩艋蛘哌h(yuǎn)程實(shí)體提供認(rèn)證和授權(quán)服務(wù),本地用戶或者遠(yuǎn)程實(shí)體按照一組可預(yù)料的符合規(guī)定的行為模式進(jìn)行操作并達(dá)到預(yù)期目的,則稱這種操作環(huán)境是可信的,可信操作環(huán)境包括可信應(yīng)用操作平臺、應(yīng)用區(qū)域邊界安全以及網(wǎng)絡(luò)通信安全。
數(shù)據(jù)庫系統(tǒng)作為信息系統(tǒng)的組成部分,承擔(dān)著管理、維護(hù)和存儲系統(tǒng)數(shù)據(jù)的重要任務(wù),它與網(wǎng)絡(luò)及基礎(chǔ)設(shè)施、操作系統(tǒng)和系統(tǒng)中間件共同構(gòu)筑了信息系統(tǒng)的基礎(chǔ)架構(gòu),為應(yīng)用系統(tǒng)和其它系統(tǒng)組件提供了通用的數(shù)據(jù)管理平臺[8~9]。支持?jǐn)?shù)據(jù)庫系統(tǒng)的可信操作環(huán)境體系結(jié)構(gòu)可以描述為一個(gè)多層次與多區(qū)域相結(jié)合的模型,安全控制機(jī)制分布于相應(yīng)的層次與區(qū)域之中。如圖1所示為可信操作環(huán)境體系結(jié)構(gòu)示意圖。
圖1 可信操作環(huán)境體系結(jié)構(gòu)示意圖
安全操作系統(tǒng)對現(xiàn)代計(jì)算環(huán)境中的安全支持必不可少[6]。安全操作系統(tǒng)層是可信操作環(huán)境信息系統(tǒng)安全的核心,為數(shù)據(jù)庫系統(tǒng)提供用戶認(rèn)證、多進(jìn)程管理和同步等安全服務(wù),為數(shù)據(jù)庫文件提供文件級保護(hù),同時(shí)為應(yīng)用于網(wǎng)絡(luò)環(huán)境的DBMS提供網(wǎng)絡(luò)服務(wù)的安全性和接口。
可信操作平臺以可信硬件為基礎(chǔ),以密碼技術(shù)為支撐、安全操作系統(tǒng)為核心,其安全功能包括:確保用戶身份的唯一性,且用戶操作是經(jīng)過鑒別和授權(quán)的;確保合法用戶不能向服務(wù)器發(fā)出攻擊行為;確保信息存儲、處理、傳輸?shù)臋C(jī)密性和完整性;確保硬件環(huán)境配置、安全操作系統(tǒng)內(nèi)核、服務(wù)及應(yīng)用程序的完整性;確保系統(tǒng)具有免疫能力,防止非授權(quán)的訪問和越權(quán)訪問,從根本上防止病毒和黑客。
DBMS層提供元組級或字段級較細(xì)粒度的安全控制,DBMS安全通過內(nèi)部安全機(jī)制實(shí)現(xiàn),包括:授權(quán)與認(rèn)證、訪問控制、推理分析與抗推理攻擊、隱通道分析、角色管理、數(shù)據(jù)加密、備份與恢復(fù)、多級安全事務(wù)管理、審計(jì)等。
安全中間件層,為DBMS的外層增加安全保護(hù)層以保證敏感數(shù)據(jù)的保密性,根據(jù)不同的應(yīng)用環(huán)境,通過中間件技術(shù)設(shè)計(jì)身份認(rèn)證、訪問控制、數(shù)據(jù)加密等安全機(jī)制,滿足系統(tǒng)的安全需求。
應(yīng)用層是用戶需要執(zhí)行的完成特定功能的程序,在可信操作環(huán)境中負(fù)責(zé)與區(qū)域應(yīng)用邊界的接口,保障應(yīng)用數(shù)據(jù)安全。
DBMS利用可信操作平臺提供的可信機(jī)制增強(qiáng)可信性與安全性,體現(xiàn)了可信計(jì)算平臺為上層應(yīng)用提供可信支撐的思想,可信計(jì)算相關(guān)文獻(xiàn)[5,7]為我們研究可信操作環(huán)境下DBMS可信機(jī)制提供了借鑒。以下討論DBMS的可信需求及可信機(jī)制實(shí)施問題。
可信操作環(huán)境中,DBMS運(yùn)行于可信操作平臺之上,而操作平臺的可信是建立在安全操作系統(tǒng)之上[10]。如果沒有安全操作系統(tǒng)的可信支撐,單純地依賴DBMS自身的安全功能實(shí)施防護(hù),無法保證安全數(shù)據(jù)庫系統(tǒng)正確、安全地引導(dǎo)并啟動(dòng),攻擊者可以在DBMS尚未完全啟動(dòng),安全功能尚不能發(fā)揮作用時(shí)進(jìn)入系統(tǒng),其次,DBMS運(yùn)行時(shí)系統(tǒng)進(jìn)程、共享內(nèi)存、數(shù)據(jù)文件等系統(tǒng)資源可能會被非法訪問或篡改。
出于上述討論,我們在安全數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)中引入了DBMS可信機(jī)制,DBMS可信機(jī)制的實(shí)現(xiàn)依賴于安全增強(qiáng)的操作系統(tǒng)的可信支撐。DBMS可信與安全操作系統(tǒng)的關(guān)系密不可分,從靜態(tài)角度來看,DBMS以文件形式保存的在操作系統(tǒng)中,從動(dòng)態(tài)角度來看,DBMS作為一個(gè)或多個(gè)進(jìn)程運(yùn)行于操作系統(tǒng)之上,操作系統(tǒng)的可信是數(shù)據(jù)庫系統(tǒng)安全與可信的基礎(chǔ),結(jié)合安全增強(qiáng)操作系統(tǒng)的可信支撐與DBMS可信的契合點(diǎn),DBMS的可信需求主要包括以下幾項(xiàng):
1)DBA的可信身份認(rèn)證。DBA(Database Administrator,DBA)是DBMS的最高權(quán)限的用戶,同時(shí)也是操作系統(tǒng)的一個(gè)合法用戶。需要利用安全操作系統(tǒng)對DBMS的DBA實(shí)施可信身份認(rèn)證,首先由可信平臺模塊對DBA的帳號等相關(guān)認(rèn)證信息生成其完整性度量值,并把度量值記入相應(yīng)的平臺配置寄存器中,當(dāng)DBA需要登錄DBMS,將DBA輸入的帳號等相關(guān)認(rèn)證信息傳遞給可信平臺模塊,計(jì)算其完整性度量值,與可信報(bào)告提供的DBA認(rèn)證信息的完整性度量值進(jìn)行比較,判斷DBA身份的可信性,只有通過可信驗(yàn)證的DBA才被允許啟動(dòng)DBMS。
2)DBMS的可信啟動(dòng)。DBMS的啟動(dòng)實(shí)際上是DBMS實(shí)例的啟動(dòng),DBMS實(shí)例啟動(dòng)有兩種方式:第一種是隨操作系統(tǒng)啟動(dòng)后依據(jù)啟動(dòng)配置自動(dòng)啟動(dòng),第二種是DBA手工啟動(dòng)。要保證DBMS實(shí)例的可信啟動(dòng),需要以操作系統(tǒng)的可信啟動(dòng)和DBA可信身份認(rèn)證為基礎(chǔ),在DBMS實(shí)例啟動(dòng)前必須對實(shí)例啟動(dòng)相關(guān)文件(服務(wù)進(jìn)程的可執(zhí)行文件,數(shù)據(jù)庫系統(tǒng)配置文件,系統(tǒng)安全策略文件)進(jìn)行可信驗(yàn)證,以保證這些文件的完整性。
3)DBMS核心數(shù)據(jù)、敏感數(shù)據(jù)、關(guān)鍵數(shù)據(jù)的可信驗(yàn)證。DBMS是管理數(shù)據(jù)庫的軟件系統(tǒng),是數(shù)據(jù)庫系統(tǒng)的核心,加強(qiáng)DBMS的核心數(shù)據(jù)、敏感數(shù)據(jù)、關(guān)鍵數(shù)據(jù)的可信性與安全防護(hù),是保障DBMS可信的關(guān)鍵。
DBMS可信機(jī)制在安全操作系統(tǒng)上正確實(shí)施,需要數(shù)據(jù)庫系統(tǒng)在安全操作系統(tǒng)上部署安裝時(shí),由DBMS安全設(shè)計(jì)者依據(jù)數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)資源、可信需求等信息對其制定可信機(jī)制實(shí)施策略,將數(shù)據(jù)庫系統(tǒng)的可信需求映射到安全操作系統(tǒng)可支撐的可信機(jī)制,為其定制基于可信操作環(huán)境的可信機(jī)制實(shí)施策略。圖2為DBMS可信機(jī)制實(shí)施流程。
可信機(jī)制實(shí)施策略被描述轉(zhuǎn)化為操作系統(tǒng)能夠識別的數(shù)據(jù)形式保存在可信機(jī)制實(shí)施策略庫中。在DBMS可信實(shí)施過程中首先從可信機(jī)制實(shí)施策略庫中抽取DBMS配置信息并進(jìn)行可信策略預(yù)處理階段。
對可信機(jī)制實(shí)施策略(以下簡稱為可信策略)的管理主要包括以下幾類:
圖2 DBMS可信機(jī)制實(shí)施流程
1)用戶配置管理:實(shí)現(xiàn)系統(tǒng)用戶配置管理功能,在這里關(guān)鍵是為DBMS建立DBA的安全屬性,將DBA的帳戶信息與PIN碼存儲在可信硬件模塊中,保證只有合法的DBA才被允許啟動(dòng)DBMS;
2)資源配置管理:實(shí)現(xiàn)對應(yīng)用環(huán)境內(nèi)所有軟件資源訪問控制策略的制定和維護(hù),根據(jù)DBMS實(shí)際需求,為DBMS核心數(shù)據(jù)、敏感數(shù)據(jù)、關(guān)鍵數(shù)據(jù)設(shè)計(jì)加解密屬性、校驗(yàn)屬性等,保障資源的保密性和完整性;
3)密碼密鑰管理:實(shí)現(xiàn)可信應(yīng)用環(huán)境密碼的配置,密鑰的管理,使得DBMS有效利用硬件提供的密碼支持和有保護(hù)的存儲能力,增強(qiáng)其對敏感信息的保護(hù),在密碼處理上的安全性有極大提高。
可信策略預(yù)處理階段實(shí)現(xiàn)可信策略的部署,為可信機(jī)制實(shí)施做前期初始化工作,主要包括:1)導(dǎo)入安全策略是從對可信機(jī)制實(shí)施策略庫導(dǎo)入DBMS可信策略配置信息;2)資源可信初始化是根據(jù)資源安全屬性對資源進(jìn)行預(yù)處理,如對設(shè)置加密屬性文件進(jìn)行加密處理,對設(shè)置校驗(yàn)屬性文件生成其完整性值;3)生成DBA的安全屬性指的是由可信平臺模塊對DBA的身份認(rèn)證信息計(jì)算其完整性值,該完整性值存儲在可信平臺模塊中。
可信策略實(shí)施階段包括:1)DBA實(shí)施身份認(rèn)證,確保登錄DBA身份信息能夠正確的映射到可信機(jī)制實(shí)施策略中;2)DBMS可信啟動(dòng),對服務(wù)進(jìn)程的可執(zhí)行文件、數(shù)據(jù)庫系統(tǒng)配置文件、用戶安全策略文件進(jìn)行可信驗(yàn)證,確保DBMS啟動(dòng)的可信;3)核心數(shù)據(jù)、敏感數(shù)據(jù)、關(guān)鍵數(shù)據(jù)的可信驗(yàn)證,包括驗(yàn)證預(yù)期摘要值、實(shí)施策略配置中的密碼密鑰配用策略、提供數(shù)據(jù)加解密存儲等功能。
DBMS可信機(jī)制的實(shí)現(xiàn)需要將DBMS的可信需求映射到安全操作系統(tǒng)可支撐的可信機(jī)制中。為了更好的滿足DBMS對安全操作系統(tǒng)可信機(jī)制的調(diào)用,支持DBMS可信機(jī)制實(shí)施策略,同時(shí)也保持DBMS的獨(dú)立性,有必要設(shè)計(jì)一個(gè)DBMS可信機(jī)制中間件(以下簡稱可信中間件),來獲得安全操作系統(tǒng)提供的可信服務(wù),實(shí)現(xiàn)可信操作環(huán)境下DBMS與安全操作系統(tǒng)基于可信的交互。圖3為可信中間件模塊結(jié)構(gòu)。
可信中間件包含了三個(gè)主要的功能模塊:DBMS可信策略管理模塊、DBMS可信預(yù)處理模塊和DBMS可信調(diào)用模塊。
DBMS可信策略管理模塊是一個(gè)擁有圖形用戶界面的管理軟件,并包含一個(gè)可信策略庫文件,是可信中間件的管理中心,為用戶實(shí)現(xiàn)可信策略的可視化管理。圖4為DBMS可信策略管理模塊組成結(jié)構(gòu)。用戶配置策略、資源配置策略和密碼密鑰配用策略集中存放在可信機(jī)制實(shí)施策略庫文件中,分別由三個(gè)可信策略管理功能模塊實(shí)現(xiàn)對策略庫文件的管理。用戶配置管理實(shí)現(xiàn)系統(tǒng)用戶配置管理功能;資源配置管理實(shí)現(xiàn)對應(yīng)用環(huán)境內(nèi)所有軟件資源訪問控制策略的制定和維護(hù);密碼密鑰管理實(shí)現(xiàn)可信應(yīng)用環(huán)境密碼的配置,密鑰的管理。在制定DBMS可信策略前,該軟件首先從DBMS讀取相關(guān)配置信息,為用戶制定可信策略做好準(zhǔn)備。當(dāng)可信策略制定完成并經(jīng)用戶認(rèn)可后,該軟件將調(diào)用可信預(yù)處理模塊對可信策略實(shí)施初始化,最后在DBMS實(shí)例啟動(dòng)前啟用DBMS可信服務(wù)模塊,為DBMS運(yùn)行時(shí)提供可信機(jī)制服務(wù)。
DBMS可信預(yù)處理模塊為后臺應(yīng)用程序或DLL,由DBMS可信策略管理模塊調(diào)用,為可信機(jī)制的實(shí)施做初始化工作,主要包括:從可信機(jī)制實(shí)施策略庫導(dǎo)入DBMS可信策略配置信息;根據(jù)資源安全屬性對資源進(jìn)行預(yù)處理,由可信平臺模塊對DBA身份認(rèn)證信息計(jì)算其完整性值,該完整性值存儲在可信平臺模塊中。DBMS可信預(yù)處理模塊通過安全操作系統(tǒng)提供的可信策略訪問接口將DBMS在操作系統(tǒng)層實(shí)施的可信策略轉(zhuǎn)化為安全操作系統(tǒng)可識別的數(shù)據(jù)表示形式,完成這部分可信策略在操作系統(tǒng)的注冊。DBA可信身份認(rèn)證、可信中間件的可信啟動(dòng)、DBMS可信啟動(dòng)需要在安全操作系統(tǒng)層面完成。
DBMS可信服務(wù)模塊為后臺應(yīng)用程序,通過調(diào)用底層安全操作系統(tǒng)的可信機(jī)制為DBMS層面可信機(jī)制的實(shí)施提供服務(wù)。
本文給出支持?jǐn)?shù)據(jù)庫系統(tǒng)的可信操作環(huán)境體系結(jié)構(gòu),在此基礎(chǔ)上分析DBMS可信需求,討論DBMS可信機(jī)制的實(shí)施方法,設(shè)計(jì)DBMS可信機(jī)制中間件,利用可信操作平臺提供的可信機(jī)制實(shí)現(xiàn)DBMS可信,確保數(shù)據(jù)庫系統(tǒng)基礎(chǔ)可信和總體安全目標(biāo)的實(shí)現(xiàn)。
[1]馮登國.可信計(jì)算理論與實(shí)踐—TCTP'2009[M].北京:清華大學(xué)出版社,2009
[2]Shen ChangXiang,Zhang HuangGuo,Feng DengGuo,et al.Survey of information security[J].Science in China Series:E(Information Security),2007,37(2):129~150
[3]沈昌祥.基于積極防御的安全保障框架[J].中國信息導(dǎo)報(bào),2003(10):50~51
[4]池亞平,李兆斌,方勇.基于Java智能卡的可信計(jì)算環(huán)境研究[J].計(jì)算機(jī)工程,2011(4):140~144
[5]馮登國,秦宇.可信計(jì)算環(huán)境證明方法研究[J].計(jì)算機(jī)學(xué)報(bào),2008,31(9):1640~1652
[6]卿斯?jié)h,沈昌祥.高等級安全操作系統(tǒng)的設(shè)計(jì)[J].中國科學(xué)F輯:信息科學(xué),2007,37(1):238~253
[7]趙波,張煥國,李晶.可信PDA計(jì)算平臺系統(tǒng)結(jié)構(gòu)與安全機(jī)制[J].計(jì)算機(jī)學(xué)報(bào),2010(1):82~92
[8]Bertino E,Sandhu R.Database Security-Concepts,Approaches,and Challenges[J].IEEE T ransactions on Dependable Secure Computing,2005,2(1):2~19
[9]M arlene T,Aaron N.Oracle安全手冊[M].潘德宏譯.北京:機(jī)械工業(yè)出版社,2002
[10]Trusted Computing Group.TCG trusted network connect TNC architecture for interoperability specification version 1.3[EB/OL].https://www.trustedcomputinggroup.org/specs/TNC/,2008-09.