国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

透明加密文件系統(tǒng)中對文件內(nèi)容的增強(qiáng)保護(hù)

2010-03-24 06:16:18周建欽
關(guān)鍵詞:剪貼板保密粘貼

陳 平,周建欽

(杭州電子科技大學(xué)通信工程學(xué)院,浙江杭州310018)

0 引 言

文件透明加密技術(shù)是近年來針對企業(yè)文件保護(hù)需求應(yīng)運(yùn)而生的一種文件保護(hù)方式,它在不改變用戶操作習(xí)慣的基礎(chǔ)上實(shí)現(xiàn)了文件的自動(dòng)加解密,增強(qiáng)了文件的安全性[1-3]。文獻(xiàn)1提出的透明加密方案運(yùn)用過濾驅(qū)動(dòng)技術(shù),綜合采用對稱與非對稱兩種加密方式,提高了數(shù)據(jù)的存儲安全,然而沒有對在內(nèi)存中以明文形式出現(xiàn)的文件內(nèi)容提供保護(hù)措施,無法對數(shù)據(jù)進(jìn)行全方位的保護(hù)。針對文件內(nèi)容的保護(hù),由于應(yīng)用環(huán)境的復(fù)雜性及泄密方式的多樣性,存在著很多不足,文獻(xiàn)4提出的基于應(yīng)用層的剪貼板監(jiān)控技術(shù)與文件過濾驅(qū)動(dòng)技術(shù)結(jié)合,實(shí)現(xiàn)了對用戶剪貼板操作的監(jiān)控,然而防護(hù)力度不夠,存在泄密的可能?;诖?本文在實(shí)現(xiàn)文件透明加解密的基礎(chǔ)上增加了一套較為完整的文件內(nèi)容保護(hù)措施,初步實(shí)現(xiàn)了對文件內(nèi)容使用及流向的監(jiān)控,防止惡意用戶通過系統(tǒng)剪貼板、拖放、截圖泄密,提升了文件的安全系數(shù)。

1 透明加密文件系統(tǒng)

透明加密文件系統(tǒng)與文件系統(tǒng)緊密結(jié)合,在文件的訪問流程中添加自定義處理,獲取文件操作的相關(guān)信息,然后匹配已制定的保護(hù)規(guī)則,篩選并處理針對特定文件的操作請求,從而實(shí)現(xiàn)對某類文件的自動(dòng)加解密。

本文所講述的透明加密文件系統(tǒng)模型基于文件過濾驅(qū)動(dòng)技術(shù)[1],采用兩種加密算法對文件進(jìn)行加密,對文件數(shù)據(jù)采用流密碼加密算法加密,密鑰隨機(jī)生成;生成的密鑰用加密強(qiáng)度更高的加密算法加密并保存在特定的密鑰文件里,其中該加密密鑰由用戶提供。系統(tǒng)簡要的工作流程如下:(1)系統(tǒng)初始化,完成過濾驅(qū)動(dòng)的加載以及系統(tǒng)參數(shù)的設(shè)定;(2)過濾驅(qū)動(dòng)截獲并處理IRP,在截獲的IRP_MJ_CREATE中,獲取該請求所針對文件的相關(guān)信息并與保護(hù)規(guī)則進(jìn)行匹配,判斷文件是否涉密,有無加密標(biāo)識等,然后將相關(guān)信息存入專為該文件生成的文件上下文中;在截獲的IRP_MJ_DEVICE_CONTROL中,獲得由用戶通過函數(shù)DeviceIoControl()提供的加密密鑰;若截獲到針對涉密文件的IRP_MJ_READ或IRP_MJ_WRITE請求,則在其例程中對IRP攜帶的數(shù)據(jù)進(jìn)行處理,完成透明加解密。

系統(tǒng)基本的保護(hù)規(guī)則:保密文件與保密進(jìn)程是對應(yīng)關(guān)系,即除保密進(jìn)程以外的其他應(yīng)用程序無法正常地訪問保密文件,其中保密進(jìn)程是系統(tǒng)為保密文件指定的訪問進(jìn)程。

2 與文件內(nèi)容操作相關(guān)的技術(shù)

2.1 W indows環(huán)境下的剪貼板機(jī)制

Windows剪貼板是一種應(yīng)用廣泛同時(shí)也是開銷比較小的進(jìn)程間通訊機(jī)制[4,5]。Windows系統(tǒng)支持剪貼板是在系統(tǒng)中預(yù)留了一塊全局共享內(nèi)存,用來暫存進(jìn)程間需要交換的數(shù)據(jù)。應(yīng)用程序通過復(fù)制、剪切操作設(shè)置剪貼板數(shù)據(jù),通過粘貼操作檢索并獲取剪貼板數(shù)據(jù)。

剪貼板是Windows子系統(tǒng)的一部分,在user32.dll動(dòng)態(tài)庫中定義了關(guān)于剪貼板的API函數(shù)、消息和預(yù)定義數(shù)據(jù)格式等,其對應(yīng)的內(nèi)核模式部分位于Win32.sys模塊中。

Windows系統(tǒng)調(diào)用剪貼板的簡化步驟為:(1)提供數(shù)據(jù)的進(jìn)程調(diào)用GlobalAlloc()函數(shù)創(chuàng)建一個(gè)全局共享內(nèi)存塊,并將這塊內(nèi)存交給剪貼板處理;(2)通過調(diào)用OpenClipboard()函數(shù)打開剪貼板;(3)復(fù)制或剪切操作時(shí),先清空剪貼板,然后調(diào)用SetClipboardData()函數(shù)設(shè)置剪貼板數(shù)據(jù);粘貼操作時(shí),則調(diào)用GetClipboardData()函數(shù)獲取剪貼板數(shù)據(jù);(4)最后調(diào)用CloseClipboard()函數(shù)關(guān)閉剪貼板。

2.2 W indows環(huán)境下的拖放機(jī)制

拖放是一種不同于剪貼板的數(shù)據(jù)傳輸方式,可以完成鼠標(biāo)所選對象在不同窗口或同一窗口的不同位置間移動(dòng)、復(fù)制和粘貼等操作[6]。

拖放有兩種類型:文件管理器拖放和OLE拖放。文件管理器拖放主要處理文件名,通過映射目的窗口的WM_DROPFILES消息,使窗口可以獲取被拖放的文件名。OLE拖放更加通用,它允許拖放可被保存在剪貼板上的任何數(shù)據(jù)。在本系統(tǒng)中,對文件內(nèi)容的保護(hù)主要考慮OLE拖放即可。OLE拖放是應(yīng)用COM組件進(jìn)行數(shù)據(jù)傳輸?shù)?簡要流程如下:(1)一個(gè)對象被拖拽之后,函數(shù)DoDragDrop()被調(diào)用,拖放啟動(dòng);(2)在拖操作的過程中,系統(tǒng)回調(diào)對象pDropSource的虛函數(shù)QueryContinueDrag()來決定是否繼續(xù)拖操作;(3)在窗口初始化時(shí),窗口會調(diào)用RegisterDragDrop()函數(shù),向系統(tǒng)注冊該窗口可接受拖放,以及接管拖放的接口是pDropTarget;(4)當(dāng)對象拖進(jìn)窗口hwnd的區(qū)域時(shí),系統(tǒng)回調(diào)pDropTarget的虛函數(shù)DragEnter();當(dāng)對象在hwnd區(qū)域內(nèi)滑動(dòng)時(shí),系統(tǒng)回調(diào)pDropTarget的虛函數(shù)DragOver();當(dāng)對象拖出hwnd區(qū)域時(shí),系統(tǒng)回調(diào)pDropTarget的虛函數(shù)DragLeave();(5)當(dāng)放操作發(fā)生時(shí),系統(tǒng)回調(diào)pDrop-Target的虛函數(shù)Drop()。

3 文件內(nèi)容保護(hù)的具體實(shí)現(xiàn)

3.1 實(shí)現(xiàn)文件內(nèi)容保護(hù)的總體框架

系統(tǒng)的主要模塊:規(guī)則解析模塊,拖放監(jiān)控模塊,剪貼板監(jiān)控模塊,過濾驅(qū)動(dòng)模塊。關(guān)系如圖1所示:

核心企業(yè)雖然作為鏈主存在于整個(gè)供應(yīng)鏈管理體系中,但因其對于供應(yīng)鏈上下游掌控范圍有限,存在信息的不對稱和不透明問題,甚至存在信息作假和被篡改的風(fēng)險(xiǎn)。這些問題一方面會增加核心企業(yè)的供應(yīng)鏈管理向上下游延伸的難度,另一方面使得核心企業(yè)對供應(yīng)鏈上的實(shí)物流、信息流和資金流的合理整合難以保證,導(dǎo)致管理能力和需求的不對稱。

圖1 文件內(nèi)容保護(hù)的主要模塊

3.2 規(guī)則制定與文件內(nèi)容保護(hù)模式

對文件內(nèi)容的保護(hù)僅僅局限在打開保密文件的進(jìn)程是不完善的,還需要防止用戶通過系統(tǒng)截圖的方式(PrintScreen鍵)將涉密信息泄漏出去。由于系統(tǒng)截圖后會把數(shù)據(jù)把暫時(shí)保存在剪貼板中,因此對此操作的控制可以在剪貼板中完成。所以,在本系統(tǒng)中對文件內(nèi)容的保護(hù)擴(kuò)大到所有進(jìn)程:當(dāng)保密進(jìn)程打開保密文件后,所有剪貼板的粘貼操作只能完成在保密進(jìn)程中,即此時(shí)只有保密文件能得到剪貼板的數(shù)據(jù);針對涉密數(shù)據(jù)的拖操作,其相應(yīng)的放操作只能發(fā)生于保密進(jìn)程中,即涉密數(shù)據(jù)只能在保密文件之間拖放,從而實(shí)現(xiàn)涉密的文件內(nèi)容只能在保密文件中傳遞。本系統(tǒng)定義了3種文件內(nèi)容保護(hù)模式:

(1)(DISABLEALL):禁止系統(tǒng)內(nèi)的所有剪貼板和拖放操作;

(2)(PROTETECT):對剪貼板和拖放操作進(jìn)行限制,保護(hù)涉密數(shù)據(jù);

(3)(NOPROTETECT):對剪貼板和拖放操作不做任何限制。

在本系統(tǒng)中,規(guī)則模板為{涉密文件類型|涉密進(jìn)程|文件內(nèi)容保護(hù)模式}。保護(hù)模式在保密進(jìn)程與保密文件類型對應(yīng)的前提下能夠有效地保護(hù)涉密數(shù)據(jù)。

3.3 文件內(nèi)容保護(hù)的具體實(shí)現(xiàn)

鑒于剪貼板和拖放是基于不同的處理機(jī)制,所以對這兩種操作采用不同的監(jiān)控處理方式。

(1)對剪貼板的監(jiān)控

通過剪貼板復(fù)制數(shù)據(jù)可分為兩個(gè)獨(dú)立的操作:復(fù)制(或剪切)和粘貼,其中復(fù)制(或剪切)由SetClipboardData()函數(shù)完成,粘貼由GetClipboardData()函數(shù)完成。在本系統(tǒng)中,對剪貼板的監(jiān)控選擇對粘貼操作進(jìn)行監(jiān)控即可。有兩種方法可以完成對剪貼板的監(jiān)控:第一種方法,在用戶模式掛鉤GetClipboard-Data()函數(shù);第二種方法,是在內(nèi)核模式掛鉤NtUserGetClipboardData()函數(shù)。由于相對于應(yīng)用層掛鉤,基于內(nèi)核模式的掛鉤具有很多優(yōu)勢,所以本系統(tǒng)選擇在內(nèi)核模式掛鉤NtUserGetClipboardData(),完成對剪貼板的監(jiān)控。首先,查找函數(shù)NtUserGetClipboardData()的地址,并保存函數(shù)地址,然后用攔截函數(shù)代替原函數(shù),在攔截函數(shù)里查詢要求獲取剪貼板數(shù)據(jù)的進(jìn)程,即調(diào)用函數(shù)NtUserGetClipboardData()的進(jìn)程,若該進(jìn)程是涉密進(jìn)程則允許該進(jìn)程獲取剪貼板數(shù)據(jù),執(zhí)行粘貼操作。

在本系統(tǒng)中,對剪貼板實(shí)施的監(jiān)控只是為了對涉密文件的內(nèi)容進(jìn)行保護(hù),并且對涉密文件的復(fù)制粘貼實(shí)施的監(jiān)控在文件過濾驅(qū)動(dòng)中已完成,因此可以不限制剪貼板對文件的復(fù)制和粘貼。進(jìn)程explorer.exe與系統(tǒng)資源管理有關(guān),即與文件的復(fù)制、剪切和粘貼操作有關(guān),因此,在剪貼板保護(hù)模式下,需要解除對explorer.exe進(jìn)程的限制,即若獲取剪貼板數(shù)據(jù)的進(jìn)程是explorer.exe,允許粘貼操作,從而達(dá)到允許文件的復(fù)制粘貼的目的。

(2)對拖放的監(jiān)控

拖放操作可分為兩個(gè)獨(dú)立操作:拖操作和放操作。在本系統(tǒng)中,對拖放操作的監(jiān)控選擇其中的一個(gè)操作即可。根據(jù)兩個(gè)操作的特性(DoDragDrop()函數(shù)在拖操作發(fā)生時(shí)被調(diào)用,RegisterDragDrop()函數(shù)在窗口初始化的時(shí)候被調(diào)用),本系統(tǒng)選擇對拖操作進(jìn)行監(jiān)控。當(dāng)DoDragDrop()被調(diào)用時(shí),進(jìn)入一個(gè)消息循環(huán),用來監(jiān)視鼠標(biāo)和一些簡單的消息,此時(shí)系統(tǒng)回調(diào)dropSource的虛函數(shù)QueryContinueDrag()來決定是否繼續(xù)拖操作,該函數(shù)的返回值有3種:1)S_OK,拖動(dòng)操作繼續(xù);2)RAGDROP_S_DROP,放操作發(fā)生,完成拖操作;3)DRAGDROP_S_CANCEL,還未發(fā)生放操作時(shí),拖操作被取消。

在涉密進(jìn)程中,對函數(shù)DoDragDrop()進(jìn)行掛鉤,替代為MyDoDragDrop()。在函數(shù)MyDoDragDrop()中對pDropSource中的虛函數(shù)QueryContinueDrag()進(jìn)行掛鉤,替代為函數(shù)MyQueryContinueDrag()。在函數(shù)MyQueryContinueDrag()里跟蹤當(dāng)前鼠標(biāo)的位置,得到鼠標(biāo)所在的窗口句柄,判斷窗口所屬進(jìn)程是否為涉密進(jìn)程,并把判斷的結(jié)果與虛函數(shù)QueryContinueDrag()的返回值進(jìn)行匹配,使得涉密數(shù)據(jù)的拖放只發(fā)生在涉密進(jìn)程中。

4 結(jié)束語

本文所介紹的透明加密文件系統(tǒng)在保證數(shù)據(jù)存儲安全的基礎(chǔ)上,對文件內(nèi)容的使用和流向進(jìn)行監(jiān)控。測試中,以word文檔為例,規(guī)則設(shè)為:{.doc|WINWORD.EXE|PROTETECT},若文檔的訪問狀態(tài)合法,系統(tǒng)執(zhí)行正常的加解密功能,文檔的訪問結(jié)果正常,若文檔的訪問狀態(tài)非法,文檔無法正常打開,顯示為亂碼;當(dāng)涉密文檔打開后,剪貼板中數(shù)據(jù)只能粘貼在涉密進(jìn)程WINWORD.EXE的窗口中,無法粘貼到其他進(jìn)程的窗口中,且對文檔內(nèi)容進(jìn)行拖動(dòng)時(shí),若鼠標(biāo)在涉密進(jìn)程的窗口范圍內(nèi),鼠標(biāo)狀態(tài)為所拖放內(nèi)容可放下,當(dāng)鼠標(biāo)在非涉密進(jìn)程的窗口范圍內(nèi),鼠標(biāo)狀態(tài)為所拖放內(nèi)容不可放下,系統(tǒng)運(yùn)行正常。

雖然該系統(tǒng)基本實(shí)現(xiàn)了設(shè)計(jì)目標(biāo),保證數(shù)據(jù)的存儲安全同時(shí)防止用戶通過系統(tǒng)剪貼板、拖放或截圖將涉密的文件內(nèi)容泄漏出去,但是還可以做進(jìn)一步完善,如密鑰管理。

[1] 顧正義,黃皓.新加密文件系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(14):3 272-3 277.

[2] Alf Zugenmaier,Sven Lachmund,Dileesh Jostin.Transparent Encryption for External Storage Media with Key Management Adapted to Mobile Use[C].Honolu lu:Computer Security App lications Conference,2009:333-340.

[3] 瞿進(jìn).網(wǎng)絡(luò)終端信息存儲安全監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].鄭州:解放軍信息工程大學(xué)信息工程學(xué)院,2007.

[4] 任建華,江國華.終端文件安全保障系統(tǒng)中剪貼板監(jiān)控技術(shù)的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2005,25(12):86-91.

[5] Volodymyr Sham ray,Apriorit Inc.Forbidding the Clipboard for the specified process[EB/OL].http://www.codeproject.com/KB/clipboard/forbidding-clipboard.aspx,2009-11-11.

[6]Michael Dunn.How to Implement Drag and Drop Between Your Program and Exp lorer[EB/OL].http://www.codeproject.com/KB/shell/explorerd ragd rop.aspx,2002-12-14.

猜你喜歡
剪貼板保密粘貼
多措并舉筑牢安全保密防線
中國石化(2022年5期)2022-06-10 06:39:32
《信息安全與通信保密》征稿函
帖臉譜
《貓頭鷹》小粘貼
Windowsl0剪貼板的云同步
電腦愛好者(2019年1期)2019-10-30 03:45:47
讓剪貼操作更上一層樓
A ski trip to Japan
What Would I Change It To
論中國共產(chǎn)黨的保密觀
一鍵激活Office剪貼板
電腦迷(2014年22期)2014-04-29 10:22:37
大庆市| 屏山县| 高要市| 册亨县| 古田县| 红安县| 定结县| 当涂县| 张家界市| 称多县| 隆化县| 玉山县| 阳朔县| 台南县| 大名县| 临猗县| 离岛区| 屏东县| 台中县| 满城县| 周至县| 鲁山县| 绍兴市| 深水埗区| 巨野县| 平定县| 贞丰县| 新余市| 八宿县| 吉林省| 华宁县| 无极县| 睢宁县| 长垣县| 江川县| 沁水县| 潍坊市| 阿荣旗| 商城县| 普陀区| 中卫市|