一種基于文件過濾驅(qū)動的矢量地圖數(shù)據(jù)保護(hù)及訪問控制方法
【專利摘要】本發(fā)明屬于密碼學(xué)、信息安全、地理信息系統(tǒng)和數(shù)字圖像處理領(lǐng)域,涉及一種對數(shù)字矢量地圖進(jìn)行數(shù)據(jù)保護(hù)和文件訪問控制的基于文件過濾驅(qū)動的矢量地圖數(shù)據(jù)保護(hù)及訪問控制方法。本發(fā)明包括:判斷是否為矢量地圖文件;將文件放入控制列表;控制規(guī)則完整性認(rèn)證;文件訪問控制;文件內(nèi)容加解密;文件大小和控制信息隱藏;關(guān)閉時防止數(shù)據(jù)泄露。本發(fā)明結(jié)合文件過濾驅(qū)動,在操作系統(tǒng)底層對矢量地圖數(shù)據(jù)進(jìn)行透明加解密和文件訪問控制,不影響用戶操作習(xí)慣,保證磁盤上的矢量地圖數(shù)據(jù)以密文形式存儲,保護(hù)矢量地圖數(shù)據(jù)安全。本發(fā)明比數(shù)據(jù)水印對矢量地圖的保護(hù)更徹底,更牢靠。
【專利說明】一種基于文件過濾驅(qū)動的矢量地圖數(shù)據(jù)保護(hù)及訪問控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于密碼學(xué)、信息安全、地理信息系統(tǒng)和數(shù)字圖像處理領(lǐng)域,涉及一種對數(shù)字矢量地圖進(jìn)行數(shù)據(jù)保護(hù)和文件訪問控制的基于文件過濾驅(qū)動的矢量地圖數(shù)據(jù)保護(hù)及訪問控制方法。
【背景技術(shù)】
[0002]隨著信息處理技術(shù)與測繪技術(shù)的快速發(fā)展,空間信息應(yīng)用越來越廣泛,數(shù)字矢量地圖具有精度高、支持高質(zhì)量縮放、定位準(zhǔn)確、操作方便、更新便捷等多種優(yōu)勢,已成為地理信息系統(tǒng)、智能交通運輸系統(tǒng)、數(shù)字化城市和數(shù)字化國防建設(shè)等方面必需的保障資源。同時,數(shù)字化的信息數(shù)據(jù)始終面臨著被非法復(fù)制,惡意篡改以及人為泄露的安全問題。數(shù)字矢量地圖一旦發(fā)生數(shù)據(jù)泄露會嚴(yán)重?fù)p害地圖所有者的合法利益,甚至?xí)澜ㄔO(shè)產(chǎn)生重大負(fù)面影響,保護(hù)數(shù)字矢量地圖的安全使其不被竊取是迫切需要解決的問題。
[0003]當(dāng)前對數(shù)字矢量地圖保護(hù)的研究主要是利用水印技術(shù)對矢量地圖的版權(quán)進(jìn)行保護(hù),數(shù)字水印技術(shù)保護(hù)矢量地圖數(shù)據(jù),存在以下兩點不足。第一、沒能很好地保護(hù)好矢量地圖的數(shù)據(jù)信息,大部分水印技術(shù)只是做了版權(quán)的嵌入使得部分?jǐn)?shù)據(jù)精度受損,盜用者仍然可以將矢量地圖盜走加以利用,這樣的效果根本不能防止對矢量地圖數(shù)據(jù)的盜用。第二、大部分水印嵌入方式屬于手動嵌入,然而據(jù)有關(guān)調(diào)查顯示,80%的數(shù)據(jù)信息泄露是出自于內(nèi)部原因。數(shù)據(jù)水印無法防止內(nèi)部員工將數(shù)據(jù)盜出,只有強制自動對數(shù)據(jù)進(jìn)行透明加解密才能使得內(nèi)部人員無法偷取矢量地圖數(shù)據(jù)。
[0004]另外對電子文檔的保護(hù)方法,有一種流行的透明加解密方式可以強制對電子文檔進(jìn)行加解密,這種方法主要用來對文本信息進(jìn)行加解密保護(hù),其中譚文在《寒江獨釣-windows內(nèi)核安全編程》一書中具體介紹了文件過濾驅(qū)動技術(shù)。有少數(shù)學(xué)者將透明加解密引用到了矢量地圖中,但是存在以下三點缺陷:第一、沒有考慮到將數(shù)據(jù)拷貝到已存在文件中的情況,如果在移動設(shè)備中事先建立一個矢量地圖文件,然后將矢量地圖數(shù)據(jù)拷貝到這個文件,傳統(tǒng)的過濾驅(qū)動是不會對其進(jìn)行處理的,從而造成了數(shù)據(jù)泄露。第二、沒有考慮到矢量地圖多次外發(fā)的特點,對文件打開時間,打開次數(shù)等諸多方面無法進(jìn)行控制,從而無法有效保證地圖的安全。第三、無法對矢量地圖文件的重命名和刪除等操作進(jìn)行控制。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種保護(hù)文件在全生命周期中的安全的基于文件過濾驅(qū)動的矢量地圖數(shù)據(jù)保護(hù)及訪問控制方法。
[0006]本發(fā)明的目的是這樣實現(xiàn)的:
[0007](I)判斷是否為矢量地圖文件
[0008]操作系統(tǒng)處理文件時,發(fā)出I/O Requeset Package讀寫請求包IRP,在文件打開時操作系統(tǒng)發(fā)出IRP_MJ_CREATE,文件過濾驅(qū)動此時攔截需要打開的文件名,根據(jù)文件擴展名判斷是不是矢量地圖文件;
[0009](2)將文件放入控制列表
[0010]在判斷為矢量地圖文件之后,從文件尾部取出加密標(biāo)識和控制信息,對加密標(biāo)識進(jìn)行核實,如果有加密標(biāo)識,則表示該文件屬于已經(jīng)被標(biāo)記和處理過的矢量地圖文件,將文件對象和文件對應(yīng)的File Control Block文件控制塊FCB加入涉密文件列表,如果文件尾部不存在加密標(biāo)識,則說明該文件并沒有被處理過,需要對其進(jìn)行處理,則將文件對象和文件對應(yīng)的FCB加入涉密未處理列表;
[0011](3)控制規(guī)則完整性認(rèn)證
[0012]對于包含有加密標(biāo)識的矢量地圖文件,核實當(dāng)前進(jìn)程是否在其規(guī)定的合法進(jìn)程列表中,如果不在則表示當(dāng)前進(jìn)程沒有獲取正確矢量地圖數(shù)據(jù)的權(quán)限,直接交付操作系統(tǒng),讀出密文;如果當(dāng)前進(jìn)程是合法進(jìn)程,則利用MD5算法對控制信息進(jìn)行完整性認(rèn)證,判斷控制信息有無被篡改,如果控制信息被篡改,則訪問失敗,同時刪除該文件,如果控制信息沒有被篡改,則所有的控制規(guī)則與對應(yīng)的文件FCB添加到涉密文件列表;
[0013](4)文件訪問控制
[0014]根據(jù)文件嵌入的訪問控制信息,在IRP_MJ_CREATE中對文件訪問次數(shù)進(jìn)行核實,如果訪問次數(shù)達(dá)到規(guī)定次數(shù),則將文件刪除;文件訪問時間則利用Deferred ProcedureCall定時器DPC,進(jìn)行定時檢查,如果規(guī)定時間內(nèi)文件未關(guān)閉,則強制將文件緩存數(shù)據(jù)刷到磁盤,并關(guān)閉文件;當(dāng)需要進(jìn)行文件重命名和刪除時,操作系統(tǒng)會發(fā)出主功能號為IRP_MJ_SET_INF0RMAT10N的IRP,對文件進(jìn)行刪除和重命名操作時,在IRP_MJ_SET_INF0RMAT10N的分發(fā)函數(shù)中進(jìn)行監(jiān)控,從涉密文件列表中取出文件控制信息,如果允許所申請操作,則交付系統(tǒng)處理,如果不允許,則返回失敗;
[0015](5)文件內(nèi)容加解密
[0016]文件讀寫時,操作系統(tǒng)發(fā)出IRP_MJ_READ和IRP_MJ_WRITE,文件讀寫分為緩存讀寫和分頁讀寫兩種,以IRP所攜帶的標(biāo)識區(qū)分;利用文件過濾驅(qū)動,帶有IRP_PAGING_IOI IRP_SYNCHR0N0US_PAGING_101 IRP_N0CACHE標(biāo)志的讀寫請求,利用流加密方法對數(shù)據(jù)進(jìn)行加密和解密;
[0017](6)文件大小和控制信息隱藏
[0018]將控制信息和加密標(biāo)識放在文件擴展尾,利用IRP_MJ_QUERY_INF0RMAT10N對文件大小和控制信息進(jìn)行隱藏,當(dāng)系統(tǒng)獲取文件大小的時候,會下發(fā)IRP_MJ_QUERY_INFORMATION的IRP請求,過濾驅(qū)動在這個IRP請求中,將文件大小設(shè)置為真實文件大小長度,達(dá)到隱藏控制信息和文件大小的目的;
[0019](7)關(guān)閉時防止數(shù)據(jù)泄露
[0020]在一個文件關(guān)閉時,判斷此文件是否在涉密未處理列表中,在這個列表中的文件,表示為計算機中原有的未經(jīng)過加密處理的矢量地圖文件,對該文件進(jìn)行加密同時嵌入訪問控制信息。
[0021]本發(fā)明的有益效果在于:
[0022]本發(fā)明提出一種矢量地圖數(shù)據(jù)保護(hù)和訪問控制方法,結(jié)合文件過濾驅(qū)動技術(shù)對矢量地圖文件進(jìn)行透明的、強制地數(shù)據(jù)加解密和訪問控制。對比已有文件過濾驅(qū)動產(chǎn)品和矢量地圖保護(hù)產(chǎn)品,本發(fā)明具有以下優(yōu)點:[0023]1.本發(fā)明結(jié)合文件過濾驅(qū)動,在操作系統(tǒng)底層對矢量地圖數(shù)據(jù)進(jìn)行透明加解密和文件訪問控制,不影響用戶操作習(xí)慣,保證磁盤上的矢量地圖數(shù)據(jù)以密文形式存儲,保護(hù)矢量地圖數(shù)據(jù)安全。本發(fā)明比數(shù)據(jù)水印對矢量地圖的保護(hù)更徹底,更牢靠。
[0024]2.本發(fā)明可以透明地、強制地處理安裝驅(qū)動之前計算機本身已存在的、未經(jīng)過處理的矢量地圖文件,較之已有的文件過濾驅(qū)動產(chǎn)品,可以防止文件數(shù)據(jù)通過舊文件泄露,安全性更高。
[0025]3.本發(fā)明可以實現(xiàn)對矢量地圖文件的訪問時間、訪問次數(shù)、是否允許重命名、是否允許刪除等進(jìn)行控制,構(gòu)建起一個立體的保護(hù)空間。有效規(guī)避了長時間打開文件使得文件數(shù)據(jù)長時間在內(nèi)存中停留,而帶來的潛在風(fēng)險;同時又可以防止頻繁地對文件進(jìn)行訪問,有效地對文件破解進(jìn)行了限制,提高了保護(hù)等級。
[0026]4.本發(fā)明將加密標(biāo)識和文件控制信息放在文件擴展尾,并且摒棄以往的文件過濾驅(qū)動文件大小控制只在 IRP_MJ_SET_INF0RMAT10N 和 IRP_MJ_QUERY_INF0RMAT10N 中對文件大小進(jìn)行加減運算的方法,由驅(qū)動自身維護(hù)涉密矢量地圖文件的大小,攔截緩存讀寫操作,確保了文件讀寫能夠在準(zhǔn)確的位置讀取、寫入準(zhǔn)確的數(shù)據(jù)。
【專利附圖】
【附圖說明】
[0027]圖1系統(tǒng)整體流程示意圖;
[0028]圖2設(shè)置控制信息軟件界面;
[0029]圖3訪問進(jìn)程控制
[0030]圖4關(guān)閉時防止文件泄露
【具體實施方式】
[0031]下面結(jié)合附圖和實例對本發(fā)明技術(shù)方案做進(jìn)一步的描述:
[0032]首先對本發(fā)明工作的詳細(xì)流程進(jìn)行說明:操作系統(tǒng)在對文件進(jìn)行操作的時候,一次操作分幾次IRP進(jìn)行發(fā)放,對于文件讀寫操作,操作系統(tǒng)會依次發(fā)出IRP_MJ_CREATE、IRP_MJ_QUERY_INF0RMATION,IRP_MJ_READ、IRP_MJ_WRITE,IRP_MJ_SET_INF0RMAT10N,IRP_MJ_CLEANUP、IRP_MJ_CL0SE ;對于重命名和刪除會依次發(fā)出 IRP_MJ_CREATE、IRP_MJ_SET_INFORMATION、IRP_MJ_CLEANUP、IRP_MJ_CL0SE。根據(jù)系統(tǒng)的操作流程,本發(fā)明形成了如圖1所示的處理步驟:
[0033](I)在文件打開之后先判斷文件類型,如果不是矢量地圖文件則交付操作系統(tǒng),如果是矢量地圖文件則繼續(xù),文件讀寫進(jìn)入(2),文件刪除和文件重命名進(jìn)入(8)。
[0034](2)如果是文件讀寫,則進(jìn)行進(jìn)程檢查,進(jìn)程檢查的詳細(xì)步驟如圖3所示,判斷該文件是否在加密文件表和未處理表中。如果在,則從表中取出合法進(jìn)程列表,判斷該進(jìn)程是否合法。如果不在,則讀出文件尾,判斷是否有加密標(biāo)志。如果有加密標(biāo)志則從控制信息取出合法進(jìn)程列表,判斷該進(jìn)程是否合法;如果沒有加密標(biāo)志則將該文件加入未處理列表。如果進(jìn)程合法對控制信息進(jìn)行完整性認(rèn)證,并檢查訪問次數(shù)和設(shè)置DPC定時器控制訪問時間。然后進(jìn)入⑶。
[0035](3)查詢文件大小時系統(tǒng)發(fā)出IRP_MJ_QUERY_INF0RMAT10N,此時驅(qū)動攔截查詢操作,返回文件真實大小,實現(xiàn)信息隱藏,然后進(jìn)入(4)。[0036](4)進(jìn)入文件讀寫,要做兩件事:第一,對數(shù)據(jù)內(nèi)容進(jìn)行加解密;第二,對文件大小和偏移進(jìn)行維護(hù)。然后進(jìn)入(5)。
[0037](5)設(shè)置文件大小時系統(tǒng)發(fā)出IRP_MJ_SET_INF0RMAT10N,此時驅(qū)動攔截設(shè)置操作,將文件大小設(shè)置為文件添加了文件尾的大小。然后進(jìn)入(6)。
[0038](6)文件關(guān)閉時,操作系統(tǒng)會發(fā)出IRP_MJ_CLEANUP,此時驅(qū)動對文件進(jìn)行檢查,如果該文件在未處理列表中,則對文件進(jìn)行透明加解密,如果在涉密文件表中則解除DPC定時器。然后進(jìn)入(7);
[0039](7)對文件嵌入文件尾,文件尾包含控制信息、加密標(biāo)志和完整性認(rèn)證碼。然后進(jìn)入(11);
[0040](8)從文件尾部讀出控制信息和加密標(biāo)志,如果沒有加密標(biāo)志則交付操作系統(tǒng)處理。如果有加密標(biāo)志,那么文件刪除操作進(jìn)入(9),重命名進(jìn)入(10);
[0041](9)文件刪除時操作系統(tǒng)會發(fā)出IRP_MJ_SET_INF0RMAT10N,在此處攔截系統(tǒng)操作判斷(8)讀出的控制信息是否允許刪除,如果允許則刪除,如果不允許則禁止。
[0042](10)文件重命名時操作系統(tǒng)會發(fā)出IRP_MJ_SET_INF0RMAT10N,在此處攔截系統(tǒng)操作判斷(8)讀出的控制信息是否允許重命名,如果允許則重命名,如果不允許則禁止。
[0043](11)文件正常關(guān)閉。
[0044]本發(fā)明可以分為三部分,1.文件控制信息的嵌入與提取;2.涉密文件信息的內(nèi)部維護(hù);3.文件訪問控制。
[0045]1.文件控制信息的嵌入與提取
[0046]控制信息分為兩種,一種是共有文件控制信息,針對所有地圖文件在第一次被嵌入控制信息時使用;另一種是單獨文件控制信息,由用戶對已嵌入控制信息的單個文件進(jìn)行更改。
[0047](I)共有文件控制信息
[0048]文件控制信息主要包括合法進(jìn)程列表、文件訪問次數(shù)、文件訪問時間、是否允許重命名,是否允許刪除。將默認(rèn)文件控制信息放在注冊表中,支持用戶自己配置默認(rèn)文件控制信息。驅(qū)動在進(jìn)行首次控制嵌入的時候從注冊表中將默認(rèn)控制信息讀出,并將信息通過創(chuàng)建IRP的方式向底層設(shè)備發(fā)送,將控制信息寫入文件尾部。
[0049]共有文件控制信息的嵌入時機在IRP_MJ_CLEANUP中,文件關(guān)閉之前,通過驅(qū)動自身維護(hù)的文件真實大小和偏移等信息,向底層設(shè)備發(fā)送自定義IRP,將加密標(biāo)識、控制信息按固定的格式寫入文件尾部。
[0050](2)單獨文件控制信息
[0051]單獨文件控制信息,用來更改單個文件的控制信息。從而達(dá)到對特殊地圖的針對性處理的目的。同樣可以配置合法進(jìn)程列表、文件訪問次數(shù)、文件訪問時間、是否允許重命名和是否允許刪除這五項。通過如圖2所示的應(yīng)用層軟件,用戶可以更改文件控制信息。給出需要更改控制信息的文件絕對路徑,然后根據(jù)修改需求,對控制規(guī)則進(jìn)行重新嵌入。
[0052]單獨對文件控制信息進(jìn)行修改的時候,控制信息通過IOCTL技術(shù)進(jìn)行應(yīng)用層與內(nèi)核層通信,過濾驅(qū)動在內(nèi)核層構(gòu)造IRP對文件進(jìn)行打開和讀取操作,然后對數(shù)據(jù)進(jìn)行更改,再寫回文件尾部,最后關(guān)閉文件清除緩存。
[0053]2.涉密文件信息的內(nèi)部維護(hù)[0054]涉密文件的信息維護(hù)主要分為兩部分,第一部分是文件大小和偏移量的維護(hù);第二部分是文件控制信息的維護(hù)。
[0055](I)文件大小和偏移量的維護(hù)
[0056]根據(jù)文件讀寫特點,可以將讀寫操作分為緩存讀寫和分頁讀寫兩種類型。分頁讀寫請求是從磁盤中讀取數(shù)據(jù),或者向磁盤寫入數(shù)據(jù)。由于磁盤讀取和寫入是嚴(yán)格按扇區(qū)和簇對齊的,因此在分頁讀寫過程中僅僅能夠?qū)?shù)據(jù)進(jìn)行加解密工作,而無法對文件的真實大小進(jìn)行維護(hù)。
[0057]而緩存讀寫則不同,緩存讀寫請求,所發(fā)出的讀寫數(shù)據(jù)長度是真實的本次需要讀取或者寫入的數(shù)據(jù)的真實長度,因此通過對緩存讀寫IRP的監(jiān)控從中維護(hù)文件的真實大小和偏移量,然后將信息跟新到涉密文件表中,從而保持了數(shù)據(jù)的一致性。在控制信息進(jìn)行嵌入的時候就可以準(zhǔn)確無誤的從涉密文件表中得到文件的真實的大小,然后計算出準(zhǔn)確的信息嵌入位置。
[0058](2)文件控制信息維護(hù)
[0059]文件控制信息包括文件訪問時間、文件訪問次數(shù)、合法進(jìn)程列表、是否允許重命名、是否允許刪除這五種控制信息。這五種控制信息、文件大小以及扇區(qū)補齊長度形成如下的結(jié)構(gòu)體:
[0060]
【權(quán)利要求】
1.一種基于文件過濾驅(qū)動的矢量地圖數(shù)據(jù)保護(hù)及訪問控制方法,其特征在于: (1)判斷是否為矢量地圖文件 操作系統(tǒng)處理文件時,發(fā)出I/O Requeset Package讀寫請求包IRP,在文件打開時操作系統(tǒng)發(fā)出IRP_MJ_CREATE,文件過濾驅(qū)動此時攔截需要打開的文件名,根據(jù)文件擴展名判斷是不是矢量地圖文件; (2)將文件放入控制列表 在判斷為矢量地圖文件之后,從文件尾部取出加密標(biāo)識和控制信息,對加密標(biāo)識進(jìn)行核實,如果有加密標(biāo)識,則表示該文件屬于已經(jīng)被標(biāo)記和處理過的矢量地圖文件,將文件對象和文件對應(yīng)的File Control Block文件控制塊FCB加入涉密文件列表,如果文件尾部不存在加密標(biāo)識,則說明該文件并沒有被處理過,需要對其進(jìn)行處理,則將文件對象和文件對應(yīng)的FCB加入涉密未處理列表; (3)控制規(guī)則完整性認(rèn)證 對于包含有加密標(biāo)識的矢量地圖文件,核實當(dāng)前進(jìn)程是否在其規(guī)定的合法進(jìn)程列表中,如果不在則表示當(dāng)前進(jìn)程沒有獲取正確矢量地圖數(shù)據(jù)的權(quán)限,直接交付操作系統(tǒng),讀出密文;如果當(dāng)前進(jìn)程是合法進(jìn)程,則利用MD5算法對控制信息進(jìn)行完整性認(rèn)證,判斷控制信息有無被篡改,如果控制信息被篡改,則訪問失敗,同時刪除該文件,如果控制信息沒有被篡改,則所有的控制規(guī)則與對應(yīng)的文件FCB添加到涉密文件列表; (4)文件訪問控制 根據(jù)文件嵌入的訪問控制信息,在IRP_MJ_CREATE中對文件訪問次數(shù)進(jìn)行核實,如果訪問次數(shù)達(dá)到規(guī)定次數(shù),則將文件刪除;文件訪問時間則利用DeferredProcedure Call定時器DPC,進(jìn)行定時檢查,如果規(guī)定時間內(nèi)文件未關(guān)閉,則強制將文件緩存數(shù)據(jù)刷到磁盤,并關(guān)閉文件;當(dāng)需要進(jìn)行文件重命名和刪除時,操作系統(tǒng)會發(fā)出主功能號為IRP_MJ_SET_INFORMAT1N的IRP,對文件進(jìn)行刪除和重命名操作時,在IRP_MJ_SET_INFORMAT1N的分發(fā)函數(shù)中進(jìn)行監(jiān)控,從涉密文件列表中取出文件控制信息,如果允許所申請操作,則交付系統(tǒng)處理,如果不允許,則返回失??; (5)文件內(nèi)容加解密 文件讀寫時,操作系統(tǒng)發(fā)出IRP_MJ_READ和IRP_MJ_WRITE,文件讀寫分為緩存讀寫和分頁讀寫兩種,以IRP所攜帶的標(biāo)識區(qū)分;利用文件過濾驅(qū)動,帶有IRP_PAGING_1| IRP_SYNCHRONOUS_PAGING_1 | IRP_NOCACHE標(biāo)志的讀寫請求,利用流加密方法對數(shù)據(jù)進(jìn)行加密和解密; (6)文件大小和控制信息隱藏 將控制信息和加密標(biāo)識放在文件擴展尾,利用IRP_MJ_QUERY_INFORMAT1N對文件大小和控制信息進(jìn)行隱藏,當(dāng)系統(tǒng)獲取文件大小的時候,會下發(fā)IRP_MJ_QUERY_INFORMAT1N的IRP請求,過濾驅(qū)動在這個IRP請求中,將文件大小設(shè)置為真實文件大小長度,達(dá)到隱藏控制信息和文件大小的目的; (7)關(guān)閉時防止數(shù)據(jù)泄露 在一個文件關(guān)閉時,判斷此文件是否在涉密未處理列表中,在這個列表中的文件,表示為計算機中原有的未經(jīng)過加密處理的矢量地圖文件,對該文件進(jìn)行加密同時嵌入訪問控制信息。
【文檔編號】G06F21/62GK104036197SQ201410246900
【公開日】2014年9月10日 申請日期:2014年6月5日 優(yōu)先權(quán)日:2014年6月5日
【發(fā)明者】門朝光, 田澤宇, 李海洋, 王一超 申請人:哈爾濱工程大學(xué)