林文美 繆品章 翁鯤鵬 王美 方演
富春通信股份有限公司 福建 350405
出于安全考慮,涉密網(wǎng)絡(luò)一般按照不同密級劃分安全域,域間用安全設(shè)備隔開,按照國家要求,嚴(yán)禁高密級信息向低密級域流動。要滿足該要求,就要控制信息的知悉范圍,對域內(nèi)和域間信息的流通進(jìn)行嚴(yán)密控制,不能單從形式來滿足國家要求,諸如將安全域提升到同一等級。對信息秘密級別進(jìn)行細(xì)分,關(guān)聯(lián)角色權(quán)限,進(jìn)行安全域管理與信息流向控制,實現(xiàn)細(xì)粒度訪問控制,才是解決安全問題的關(guān)鍵。
《涉及國家秘密的信息系統(tǒng)分級保護(hù)要求》中提出了一個重要概念:密級標(biāo)識。密級標(biāo)識這一概念和要求的提出,無疑是我國信息安全保障的重大突破。但是目前還無完善的技術(shù)方案可以完美的實現(xiàn)基于信息密級標(biāo)識的多級安全域防護(hù),能在確保信息機(jī)密性的同時,又能不改變工作使用習(xí)慣、且不阻礙文件的正常傳輸。本文設(shè)計的基于信息密級標(biāo)識的多級域防護(hù)系統(tǒng),是利用Windows內(nèi)核的驅(qū)動框架,通過嵌入在I/O管理器和文件系統(tǒng)驅(qū)動模塊之間的文件過濾驅(qū)動模塊向密級信息寫入密級標(biāo)識頭,形成信息身份標(biāo)識,結(jié)合管理中心分發(fā)密鑰,構(gòu)造信息控制引擎,完成對涉密信息的動態(tài)透明加/解密,實現(xiàn)細(xì)粒度訪問控制,并將基于密級標(biāo)識的信息控制引擎結(jié)合訪問控制策略,實現(xiàn)對涉密信息在域內(nèi)和域間流通過程的控制,杜絕高密級信息向低密級域流動。
該系統(tǒng)采用C/S架構(gòu),通過安全通道連接,如圖l所示。用戶在進(jìn)行注冊時,管理中心根據(jù)最小化原則賦予對應(yīng)權(quán)限,并通過弱密碼檢測杜絕弱口令事件發(fā)生。客戶端通過頁面重定向?qū)?nèi)網(wǎng)用戶進(jìn)行強(qiáng)制登錄認(rèn)證。用戶進(jìn)行登錄認(rèn)證完畢,通過應(yīng)用軟件來打開一個文件時,信息控制引擎根據(jù)用戶權(quán)限,結(jié)合管理中心實現(xiàn)動態(tài)加/解密,確保涉密信息只能被相應(yīng)權(quán)限的合法用戶所查閱以及防止高密級信息向低密級域流動。服務(wù)端主要是實現(xiàn)管理功能,其中掃描系統(tǒng)模塊進(jìn)行計算機(jī)、設(shè)備的掃描識別,綁定 IP/MAC,界面化展示整個區(qū)域網(wǎng)絡(luò)架構(gòu)、PC、服務(wù)器及相關(guān)設(shè)備,是整個域管理的基礎(chǔ),可以根據(jù)需要進(jìn)行域級別劃分,并將其形象化展示;同時還提供了日志審計功能,根據(jù)密級標(biāo)識中的ID號,實現(xiàn)信息從生成-訪問-流通-銷毀這一系列過程的記錄,對具有信息泄露威脅的行為進(jìn)行報警;密鑰管理模塊完成密鑰分發(fā),結(jié)合客戶端的信息控制引擎,實現(xiàn)動態(tài)加/解密。
圖1 系統(tǒng)框架圖
Windows內(nèi)核驅(qū)動框架,是信息控制引擎的基礎(chǔ),程序是通過虛擬地址對數(shù)據(jù)進(jìn)行訪問,并要求內(nèi)存中的數(shù)據(jù)始終以未加密形式存在。虛擬地址與物理內(nèi)存地址相映射是以固定長度的頁面為單位,通過頁面數(shù)據(jù)的讀寫把數(shù)據(jù)讀到內(nèi)存或把內(nèi)存的數(shù)據(jù)寫到物理磁盤上。該框架僅對(IRP->Flags)為IRP_NO_CACHE|IRP_PAGING_IO 的IRP請求進(jìn)行處理,其中 IRP_NO_CACHE標(biāo)記表示數(shù)據(jù)不能被緩存處理,IRP_PAGING_IO表示此IRP為頁面數(shù)據(jù)讀寫。應(yīng)用程序的一次正常情況下讀請求的步驟如下:
(1) 應(yīng)用程序通過系統(tǒng)內(nèi)核所提供的函數(shù)接口把讀請求發(fā)送給I/O管理器。
(2) I/O管理器構(gòu)造該請求所對應(yīng)的IRP并將其下發(fā)給文件系統(tǒng)驅(qū)動層。
(3) 文件系統(tǒng)驅(qū)動判斷緩存管理器是否存在該數(shù)據(jù)。
(4) 若存在,則文件系統(tǒng)驅(qū)動通過函數(shù)接口告知 I/O管理器該請求可通過Fast I/O請求來獲取,然后I/O管理器向文件系統(tǒng)驅(qū)動發(fā)送其構(gòu)造的Fast I/O請求IRP,最后文件系統(tǒng)驅(qū)動通過Fast I/O分發(fā)例程獲取緩存管理器中的數(shù)據(jù)并將其發(fā)送給I/O管理器。
(5) 若不存在,文件系統(tǒng)驅(qū)動將 IRP發(fā)送到磁盤驅(qū)動,磁盤驅(qū)動再把從物理磁盤中獲取的數(shù)據(jù)發(fā)送給I/O管理器。
(6) 最終 I/O管理器將其得到的數(shù)據(jù)發(fā)送給應(yīng)用程序,完成讀操作。
該系統(tǒng)中的信息控制引擎,不僅是進(jìn)行數(shù)據(jù)動態(tài)透明加/解密的核心,更是多級域信息流控制的基礎(chǔ)。信息控制引擎,是利用微軟內(nèi)核操作系統(tǒng)的驅(qū)動框架,采用改進(jìn)型文件系統(tǒng)過濾驅(qū)動技術(shù),截獲 IRP,對驅(qū)動層之間的傳遞數(shù)據(jù)進(jìn)行相應(yīng)操作,將密級標(biāo)識附加于信息頭部,打上身份標(biāo)簽,聯(lián)合服務(wù)端的密鑰管理系統(tǒng),進(jìn)行動態(tài)透明加/解密處理,實現(xiàn)細(xì)粒度的訪問控制與信息流向控制。
信息秘密級別的細(xì)分與用戶角色權(quán)限的合理授予,是實現(xiàn)對涉密信息進(jìn)行細(xì)粒度訪問控制的基礎(chǔ),確保某權(quán)限用戶只能訪問與其權(quán)限對應(yīng)的涉密文件,并杜絕高密級信息流向低密級域。為了精確的對文檔的屬性進(jìn)行標(biāo)識,信息控制引擎中的文件系統(tǒng)過濾驅(qū)動層,在創(chuàng)建文件時候,主動向文件系統(tǒng)驅(qū)動發(fā)送一次IRP寫請求,將信息密級標(biāo)識以頭文件形式附加在文件的頭部并寫入磁盤,里面包含有ID號、文件真實長度、加密算法、創(chuàng)建者、最后修改者、權(quán)限信息、域標(biāo)識,密級標(biāo)識結(jié)構(gòu)Security_identifier定義如下:
由于文件系統(tǒng)過濾驅(qū)動層往信息頭部添加了信息標(biāo)識,導(dǎo)致了信息長度發(fā)生了改變,假設(shè)信息的實際長度為L,附加信息塊的長度M,寫入磁盤的數(shù)據(jù)長度為L+M。系統(tǒng)運行時,在內(nèi)核層創(chuàng)建并維護(hù)文件屬性標(biāo)識鏈表,并將其同步到管理中心。其中信息域安全級別標(biāo)識與創(chuàng)建用戶自身所在域相對應(yīng),信息秘密級別與創(chuàng)建者所擁有的的權(quán)限級別相對應(yīng)。
當(dāng)合法用戶通過頁面重定向進(jìn)行強(qiáng)制登錄認(rèn)證后,打開涉密文件,應(yīng)用程序?qū)⒄{(diào)用CreateFile函數(shù)向I/O管理器發(fā)送IRP_MJ_WRITE寫請求,然后I/O管理器提取應(yīng)用程序進(jìn)程名稱、數(shù)據(jù)開始地址、數(shù)據(jù)長度、數(shù)據(jù)存儲路勁、待存儲數(shù)據(jù)等構(gòu)造寫請求對應(yīng)的IRP,并將該IRP發(fā)送到文件過濾驅(qū)動層,文件系統(tǒng)過濾驅(qū)動層收到IRP數(shù)據(jù)包后,并主動向文件系統(tǒng)驅(qū)動發(fā)送一次IRP寫請求,請求在文件頭加入固定長度(長度 M)的密級標(biāo)識,同時在本地創(chuàng)建密集標(biāo)識表,并更新至管理中心,完成定密,并根據(jù)密級標(biāo)識中的加密算法完成加密,用戶可以根據(jù)自身的需要,在策略配置時選擇相應(yīng)的加密算法。文件系統(tǒng)過濾驅(qū)動層將加密后的數(shù)據(jù)包轉(zhuǎn)交到文件系統(tǒng)驅(qū)動,并最終將加密后帶有密級標(biāo)識的文件寫入物理磁盤。具體過程如圖2所示。
內(nèi)網(wǎng)用戶通過頁面重定向,強(qiáng)制已注冊用戶進(jìn)行登錄認(rèn)證,認(rèn)證成功則安全連接管理中心,關(guān)聯(lián)權(quán)限。當(dāng)已認(rèn)證用戶要打開涉密文件時,應(yīng)用程序調(diào)用系統(tǒng)內(nèi)核組建提供的函數(shù)接口向I/O管理器發(fā)送RP_MJ_READ讀請求,I/0管理器提取應(yīng)用程序進(jìn)程名稱、數(shù)據(jù)開始地址、數(shù)據(jù)長度、數(shù)據(jù)存儲路徑等構(gòu)造讀請求對應(yīng)的IRP,并將該IRP發(fā)送到文件過濾驅(qū)動層,等待待讀數(shù)據(jù)。過濾驅(qū)動層向文件系統(tǒng)驅(qū)動發(fā)送IRP_QUERY_INFO,獲取該文件的密級標(biāo)識,包括信息ID、所需權(quán)限、加密算法,并計算出文件真實長度,既在讀取時候要扣除文件頭的密級標(biāo)識長度,再將該信息 ID對比密級標(biāo)識鏈表,如過鏈表中已有,則以正常方式打開文件,若無,則需要進(jìn)行權(quán)限的對比,若文件密級高于該用戶權(quán)限,則拒絕打開。若低于該用戶權(quán)限,則將此文件更新到密級標(biāo)識表以及同步到管理中心;過濾驅(qū)動層將 IRP發(fā)送給文件驅(qū)動層,文件系統(tǒng)驅(qū)動層接收到數(shù)據(jù)后,按正常操作,將信息從磁盤中讀出。文件過濾驅(qū)動層接收到返回的數(shù)據(jù)后,將讀取到的數(shù)據(jù),按照密級標(biāo)識里的加密算法解密,其中密鑰分發(fā)由管理中心分發(fā)。然后將解密后的數(shù)據(jù)傳給I/O管理器。I/O管理器將該數(shù)據(jù)傳給應(yīng)用程序接口,完成讀請求。具體過程如圖3所示。
圖3 信息讀操作與加密
圖2 寫操作與信息加密
信息控制引擎作為文件讀寫與加解密的基礎(chǔ),聯(lián)合信息流通訪問控制策略,實現(xiàn)信息流向控制。這里分三個情況,包括域間流通、域內(nèi)流通、通過物理接口流通,具體過程如下所述:
(1) 當(dāng)信息在不同密級域進(jìn)行流通時,服務(wù)端進(jìn)行截獲并提取信息密級標(biāo)識,判斷域管理模塊中的域級別高低,如果是高密級域流向低密級域,則禁止流通并記錄審計數(shù)據(jù)庫,否則進(jìn)行轉(zhuǎn)發(fā);
(2) 在同一安全域的不同用戶間流通,服務(wù)端對比信息密級標(biāo)識與接收方權(quán)限高低,若接收方權(quán)限高于信息密級標(biāo)識所需權(quán)限則轉(zhuǎn)發(fā),否則拒絕傳送;
(3) 通過U盤等外部接口,移走涉密信息,如果是在離開該系統(tǒng)的機(jī)子上運行,將由于沒有管理中心分發(fā)的密鑰而無法打開。如果是拷到別的域或者是拷到同一個域的機(jī)子,由于在解密過程中,會對域級別與信息密級標(biāo)識進(jìn)行判斷,從而造成權(quán)限不夠的用戶瀏覽失敗。
在整個流通過程中,審計模塊會根據(jù)文件ID進(jìn)行跟蹤,當(dāng)發(fā)生讀、寫、修改、流通等操作時候,寫入管理中心審計數(shù)據(jù)庫,對會產(chǎn)生信息泄露的操作進(jìn)行報警。具體流程如圖4所示。
圖4 信息流控制
系統(tǒng)的客戶端與服務(wù)器間的通信是通過SSL安全機(jī)制來實現(xiàn)的。為了提升客戶端與服務(wù)器的“握手”效率,該系統(tǒng)采用的是預(yù)設(shè)置的加密算法,既用戶根據(jù)自身需求,通過設(shè)置模塊進(jìn)行通信加密算法的預(yù)設(shè)置。服務(wù)器與客戶端在“握手”認(rèn)證前,客戶端首先要從服務(wù)器上下載用戶證書,其結(jié)構(gòu)包括用戶ID、用戶密碼散列值、RSA公鑰、證書類型等。
用戶證書下載時,服務(wù)端與客戶端的通信還是采用SSL安全機(jī)制,其中服務(wù)器與客戶端的“握手”認(rèn)證過程如下:
(1) 客戶端發(fā)送連接請求,服務(wù)器接受請求后,創(chuàng)建隨機(jī)密鑰KEY1,并將其發(fā)送給客戶端;
(2) 客戶端使用步驟1中產(chǎn)生KEY1對用戶密碼進(jìn)行散列計算,從而生成認(rèn)證信息R1并創(chuàng)建隨機(jī)密鑰KEY2;
(3) 通過用戶證書中的RSA公鑰對R1、KEY2進(jìn)行加密,然后與m_UID一起發(fā)送至服務(wù)端。
(4) 服務(wù)端對認(rèn)證數(shù)據(jù)用RSA私鑰進(jìn)行解密,通過定義的m_UID定位用戶賬號信息,使用KEY1對其中的用戶密鑰進(jìn)行散列計算生成R2,然后比較R2與客戶端返回的R1,如果一致,則該網(wǎng)絡(luò)信道是可信的。
(5) 最后通過 KEY2完成數(shù)據(jù)的加密通信??尚磐ǖ澜⒑?,客戶端可獲取信息的加/解密密鑰,并將其轉(zhuǎn)換成中間結(jié)構(gòu),以密鑰相關(guān)的隨機(jī)數(shù)形式存放在內(nèi)核中。另外,客戶端用戶對涉密文件的所有操均為生成記錄并通過該安全信道上傳到服務(wù)端,形成日志。
該系統(tǒng)通過在微軟原理驅(qū)動框架中添加文件系統(tǒng)過濾驅(qū)動層,實現(xiàn)密級標(biāo)識的添加與過濾涉密信息的動態(tài)透明加解密,并以此為基礎(chǔ),配合訪問策略,實現(xiàn)涉密信息流向控制,使得涉密信息均以密文形式存在,只能被其知悉范圍內(nèi)的合法用戶所訪問。對進(jìn)行多級域劃分的內(nèi)網(wǎng)中的涉密信息,起到了很好的保護(hù)作用。
[1]楊瑞華,向?qū)?余艷,張林,陳樂,孟慶惠,劉琴華.網(wǎng)絡(luò)安全域劃分與信息流向控制的探討[J].學(xué)術(shù)交流.2010.
[2]鄭磊,馬兆豐,顧明.基于文件系統(tǒng)過濾驅(qū)動的安全增強(qiáng)型加密系統(tǒng)技術(shù)研究[J].小型微型計算機(jī)系統(tǒng).2007.
[3]吳濱.密級標(biāo)識技術(shù)在分級保護(hù)中的應(yīng)用[J].技術(shù)應(yīng)用.2006.
[4]Oney Walter.Programming the icrosoft windows driver model[M].Redmond,Wash.:Microsoft Press.2003.
[5]Mark E Russinovich,David A Solomon.Microsoft windows internals fourth edition[M].Redmond Wash:Microsoft Press.2005.