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