• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Windows下文件過濾驅(qū)動技術

    2016-12-21 02:25:04徐國棟朱亮
    微型電腦應用 2016年8期
    關鍵詞:驅(qū)動程序緩沖區(qū)解密

    徐國棟,朱亮

    Windows下文件過濾驅(qū)動技術

    徐國棟,朱亮

    Windows文件過濾驅(qū)動在不改變復雜的文件系統(tǒng)基礎上,可方便地擴展I/O子系統(tǒng)的功能。在深入研究了文件過濾驅(qū)動技術基礎上,結合安全加密技術與權限控制技術,實現(xiàn)了一個安全、易用、管理方便的安全文件系統(tǒng)。

    文件過濾驅(qū)動;I/O請求包;基于角色的訪問控制

    0 引言

    隨著企事業(yè)單位的快速發(fā)展,電子文檔為企事業(yè)單位承載了越來越多的重要信息。而由于電子文檔的容易散播性,導致企事業(yè)單位的重要資料很容易被非法獲取、篡改、乃至無序傳播等,這使得企事業(yè)單位所做的大量工作付之東流,嚴重危害了自身的利益。特別是棱鏡門事件后,文檔安全的重要性也日益受到重視。文件安全管理就是為了提高電子文檔數(shù)據(jù)的安全性和保密性、防止秘密數(shù)據(jù)被意外、或非法獲取所采用的技術手段。

    密碼學是信息系統(tǒng)安全的核心,它是研究密碼系統(tǒng)和通信安全的一門學科[1]。密碼學的基本功能是提供保密性,使非授權者無法獲悉消息的內(nèi)容。

    1 文件過濾驅(qū)動

    Windows的I/O管理器是一個可擴展的結構,通過開發(fā)過濾驅(qū)動程序可以擴展I/O子系統(tǒng)的功能。 I/O管理器支持分層驅(qū)動程序模型,每個I/O請求包(IRP,I/O request package)的處理分別經(jīng)過各層驅(qū)動程序,直到某層驅(qū)動程序完成這個請求[2]。

    1.1 過濾驅(qū)動程序

    過濾驅(qū)動工作在系統(tǒng)驅(qū)動層和應用層之間,透明地截取發(fā)往低級驅(qū)動程序設備對象的請求,低級驅(qū)動程序的用戶完全不知道它們的請求被過濾器驅(qū)動程序預處理和截取了。使用過濾器驅(qū)動程序可以實現(xiàn)以下幾種主要功能:

    允許修改已有驅(qū)動程序在某些方面的行為,而不必重寫整個驅(qū)動程序。

    可以更加容易地隱藏低級驅(qū)動程序的限制。

    允許把諸如壓縮、加密等新特征添加到設備上,而不必修改基本的設備驅(qū)動程序或者使用設備的程序。

    1.2 文件系統(tǒng)過濾驅(qū)動

    文件系統(tǒng)是負責為用戶建立、存入、讀出、修改、轉(zhuǎn)儲文件,控制文件的存取與撤銷。文件系統(tǒng)過濾驅(qū)動工作模式如圖1所示:

    圖1 文件過濾驅(qū)動工作模型

    作為一種內(nèi)核態(tài)中間層驅(qū)動,只需對下層的文件系統(tǒng)驅(qū)動作相應的功能擴展,加密粒度靈活、可靠性強、效率高、易于擴展。

    2 文件安全保護

    借助于Windows的可安裝文件系統(tǒng)IFS,Installable File System設備驅(qū)動程序開發(fā)工具DDK,Device Development Kit),即可以對Windows I/O 的子系統(tǒng)進行方便的擴展,實現(xiàn)一個文件加密過濾驅(qū)動程序。此程序有如下特點:

    不改變現(xiàn)有Windows的操作習慣。

    攔截所有用戶寫請求:在加密文檔寫入磁盤前加密數(shù)據(jù),保證存儲在磁盤的都是加密數(shù)據(jù)。

    攔截所有用戶讀請求:在加密文檔數(shù)據(jù)返回給用戶前解密數(shù)據(jù),保證應用程序看到的是明文數(shù)據(jù)。

    2.1 Create例程中判斷是否需要加解密

    Windows文件系統(tǒng)通過Create(IRP_MJ_CREATE)例程來創(chuàng)建或打開文件。文件創(chuàng)建/打開時,Windows系統(tǒng)會創(chuàng)建一個FILE_OBJECT對象來表示此文件,根據(jù)此FILE_OBJECT來獲取文件相關的信息并判斷是否需要加密。

    所有需要加/解密的文件都通過一個加密集合來維護[3],當前打開的文件如果已在集合中,則肯定需要對其加/解密;否則:

    新建的文件(打開標記為FILE_CREATED、FILE_OVERWRITTEN或FILE_SUPERSEDED者,都認定為新建),則根據(jù)設定的規(guī)則判斷是否需要對其加/解密。

    打開的文件,則先獲取其加/解密標志(與文件關聯(lián)的加/解密相關信息);如果有,則對其加/解密。

    2.2 Write例程中加密

    Windows的寫操作在Write(IRP_MJ_WRITE)例程中捕獲。當寫請求(IRP)到達時,先獲取FILE_OBJECT對象,來判斷是否為加密文件。非加密文件直接放行(Pass Through)即可;即使是加密文件,也不是所有的寫操作都需要加密,只有在真實數(shù)據(jù)要寫入到磁盤時(標記位為IRP_NOCACHE,且數(shù)據(jù)長度大于零)才需要加密。

    對于要加密數(shù)據(jù)的寫請求,在IRP傳遞到下一層前以及完成后,都需要進行處理:

    在IRP傳遞到下層前,需要對數(shù)據(jù)進行加密:

    申請非分頁內(nèi)存(設為緩沖區(qū)N),用于存放加密后的數(shù)據(jù)。

    用緩沖區(qū)N來替換IRP中原來的UserBuff(設為緩沖區(qū)O)。

    在IRP完成后,要做清理:

    把IRP中的UserBuff設回為緩沖區(qū)O。

    釋放前面申請的緩沖區(qū)N。

    加密數(shù)據(jù)一定要存放在新申請的緩沖區(qū)中去,不能對原有緩沖區(qū)中的內(nèi)容進行修改。

    2.3 Read例程中解密

    Windows的讀操作可在Read(IRP_MJ_READ)例程中捕獲。當寫讀請求(IRP)到達時,先獲取FILE_OBJECT對象,來判斷是否為加密文件。非加密文件直接放行(Pass Through)即可;即使是加密文件,也不是所有的讀操作都需要解密,只有在真實從磁盤中讀取數(shù)據(jù)時(標記位為IRP_NOCACHE,且數(shù)據(jù)長度大于零)才需要解密。

    對于要解密數(shù)據(jù)的讀請求,在IRP傳遞到下一層前以及完成后,都需要進行處理:

    在IRP傳遞到下層前,需要重設緩沖區(qū):

    申請非分頁內(nèi)存(設為緩沖區(qū)N),用于存放讀取到的加密數(shù)據(jù)。

    用緩沖區(qū)N來替換IRP中原來的UserBuff(設為緩沖區(qū)O)。

    在IRP完成后,對數(shù)據(jù)進行解密:

    把讀取到的加密數(shù)據(jù)解密到緩沖區(qū)O中。

    把IRP中的UserBuff設回為緩沖區(qū)O。

    釋放前面申請的緩沖區(qū)N。

    2.4 其他例程操作

    除了上面與加解密直接相關的例程外,還有其他一些例程需要處理,本文就不詳述了:

    在Close例程(IRP_MJ_CLOSE)處理與文件關閉相關操作。

    在SetInformation例程(IRP_MJ_SET_INFORMA -TION)處理重命名、刪除等相關操作。

    在QueryInformation例程(IRP_MJ_QUERY_IN -FORMATION)中處理各種與獲取文件信息相關的操作

    2.5 文件密鑰管理

    為保證安全并方便管理,筆者使用對稱算法來加密文件內(nèi)容,使用非對稱算法來保護對稱算法的密鑰[4],此方案有如下優(yōu)勢:

    使用對稱加密算法對文件內(nèi)容進行加密,來提高效率與安全性。

    每個文件使用獨立的密鑰,進一步提升其安全性。

    使用非對稱算法對文件密鑰進行加密保護,在保證安全的同時簡化了密鑰管理。

    3 文件權限管理

    企業(yè)電子文檔數(shù)量巨大且有不同程度的信息敏感度每個用戶有不同的訪問需求,使得其安全管理非常復雜。

    基于角色的訪問控制將權限與角色聯(lián)系起來,在系統(tǒng)中根據(jù)應用的需要為不同的工作崗位創(chuàng)建相應的角色同時根據(jù)用戶職責指派合適的角色,用戶通過所指派的角色獲得相應的權限[5],實現(xiàn)對文件的訪問如圖2所示:

    圖2 訪問控制模型

    這樣,整個訪問控制過程就分成兩個部分,即訪問權限與角色相關聯(lián),角色再與用戶關聯(lián),從而實現(xiàn)了用戶與訪問權限的邏輯分離。

    角色/權限之間的變化比角色/用戶關系之間的變化相對要少的多,但是也復雜的多。所以:分配權限到角色對技術要求較高,由專門的技術管理人員(文件安全管理人員)來承擔。

    委派用戶到角色不需要很多技術,由行政管理人員來執(zhí)行。

    通過用戶與訪問權限的邏輯分離,基于角色的訪問控制極大的方便了權限管理,實現(xiàn)最少權限原則和職責分離的原則。

    4 總結

    筆者應用此方案已成功實現(xiàn)了多個系統(tǒng),并取得了良好的效果。要構建一個完善的安全系統(tǒng),除了透明文件加密、權限管理外,還需要終端外設管理[6]、網(wǎng)絡安全管理等各種技術。只有融合多種技術才能實現(xiàn)一個安全、易用的安全系統(tǒng),來保護我們的數(shù)據(jù)。

    [1] William Stallings著,王張宜, 楊敏, 杜瑞穎,等譯. 密碼編碼學與網(wǎng)絡安全——原理與實踐[M]. 電子工業(yè)出版社,2012.

    [2] Rajeev Nagar. Windows NT File System Internals. O’REILLY. 1997.

    [3] 徐國棟, 白英彩. 加密文件系統(tǒng)在Windows下的實現(xiàn)[J]. 微型電腦應用, 2006, 22(5):56-58.

    [4] Bruce Schneier著,吳世忠, 祝世雄, 張文政,等譯. 應用密碼學——協(xié)議、算法與C源程序[M]. 機械工業(yè)出版社,2014.

    [5] Xuan H L, Doll T, Barbosu M, et al. An enhancement of the Role-Based Access Control model to facilitate information access management in context of team collaboration and workflow. Journal of Biomedical Informatics, 2012, 45(6):1084-1107.

    [6] Beckley K, Sikora P, Allos B. File transfer system and method for monitoring and management of remote devices, US8880653[P]. 2014.

    File Filter Diver On Windows

    Xu Guodong, Zhu Liang
    (Shaanxi Defence Vocational and Technical College, Xi’An 710300, China)

    Via file filter driver, the I/O subsystem can be extended easily without changing the complex file system. Combined with cryptography and access control technology, a security file system is realized.

    File Filter Driver; I/O request package; Role-Based Access Control.

    TP183

    A

    1007-757X(2016)07-0074-02

    2016.01.20)

    徐國棟(1981-),男,上海其祥電腦系統(tǒng)工程有限公司,工程師,碩士,研究方向:信息安全與網(wǎng)絡通訊,上海 200237

    朱 亮(1983-),男,北京科瑞科技發(fā)展股份有限公司,碩士,研究方向:信息安全與系統(tǒng)應用,上海,100097

    猜你喜歡
    驅(qū)動程序緩沖區(qū)解密
    嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設計與實現(xiàn)
    解密“熱脹冷縮”
    解密“一包三改”
    少先隊活動(2020年9期)2020-12-17 06:17:31
    炫詞解密
    關鍵鏈技術緩沖區(qū)的確定方法研究
    解密“大調(diào)解”
    地理信息系統(tǒng)繪圖緩沖區(qū)技術設計與實現(xiàn)
    AVS標準中的視頻碼流緩沖區(qū)校驗模型分析
    電視技術(2012年1期)2012-06-06 08:13:58
    驅(qū)動程序更新與推薦
    驅(qū)動程序更新與推薦
    蓬安县| 青海省| 巫溪县| 凌源市| 衡东县| 舒兰市| 东平县| 义马市| 宜章县| 西宁市| 梧州市| 邛崃市| 新郑市| 临沂市| 金门县| 长汀县| 闵行区| 上虞市| 依兰县| 介休市| 图木舒克市| 泽州县| 米林县| 烟台市| 四子王旗| 辛集市| 峨眉山市| 南安市| 和田县| 武鸣县| 射阳县| 达日县| 泌阳县| 壶关县| 陆丰市| 平山县| 安泽县| 中牟县| 平阴县| 永川市| 石楼县|