本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體涉及一種基于文件雙緩存的文件權(quán)限管理的方法及裝置。
背景技術(shù):
現(xiàn)階段基于文件加密驅(qū)動(dòng)的文件權(quán)限管理的方式為:安全廠商文件加密產(chǎn)品對文檔一文一密的實(shí)現(xiàn)方式,但文檔權(quán)限只能做到同進(jìn)程同權(quán)限,無法做到同進(jìn)程多權(quán)限。
現(xiàn)階段安全廠家的dlp(dataleakageprevention)產(chǎn)品文件加密和權(quán)限管理流程如下:
1)加密進(jìn)程打開文檔;
2)應(yīng)用層程序向驅(qū)動(dòng)下發(fā)密鑰和權(quán)限相關(guān)信息;
3)加密進(jìn)程利用密鑰打開文檔,并根據(jù)權(quán)限做相應(yīng)的控制。
單個(gè)加密進(jìn)程只能打開并編輯一個(gè)加密文檔,如果打開多個(gè)文檔將導(dǎo)致文檔權(quán)限混亂。
本發(fā)明在文件過濾驅(qū)動(dòng)中利用雙緩存結(jié)構(gòu),對同一進(jìn)程打開多個(gè)文檔的權(quán)限進(jìn)行標(biāo)記跟蹤,并記錄到自建緩存中,解決了同一進(jìn)程打開多個(gè)文件時(shí)的權(quán)限管理與加密問題。
技術(shù)實(shí)現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明提供了一種基于文件雙緩存的文件打開權(quán)限管理方法,包括以下步驟:
1).截獲文件的打開動(dòng)作;
2).讀取文件頭,判斷是否為加密文檔,如果是則向文件過濾驅(qū)動(dòng)下發(fā)加密策略;
3).文件過濾驅(qū)動(dòng)判斷打開文件的進(jìn)程是否為加密進(jìn)程,如果是,則匹配上述加密策略;
4).為打開的所述文件創(chuàng)建文件控制塊(fcb),使該文件控制塊具有明文和密文兩個(gè)緩存;
5).在所述文件控制塊中記錄該文件的密鑰和文檔權(quán)限。
為解決上述技術(shù)問題,本發(fā)明提供了一種基于文件雙緩存的新建文件方法,包括以下步驟:
1).判斷新建文件的類型,并對其標(biāo)記為臨時(shí)文件或原始文件;
2).為新建的臨時(shí)文件或原始文件創(chuàng)建文件控制塊(fcb),使該文件控制塊具有明文和密文兩個(gè)緩存;
3).對所述新建文件進(jìn)行讀寫時(shí)進(jìn)行加解密處理。
優(yōu)選的,在步驟3)之后對所述新建文件進(jìn)行保存:
4.1).判斷文件保存的類型;
4.2).如果不是文件重命名操作,則跳轉(zhuǎn)到步驟4.6),如果是文件重命名操作,則跳轉(zhuǎn)到步驟4.3);
4.3).判斷保存的文件是否為臨時(shí)文件,如果是則跳轉(zhuǎn)到步驟4.4),否則跳轉(zhuǎn)到步驟4.5);
4.4).在常駐數(shù)據(jù)表中是否找到保存的文件名,如果找到,則替換文件控制塊中文件權(quán)限位的相應(yīng)數(shù)據(jù),替換文件頭,跳轉(zhuǎn)到步驟4.7),否則跳轉(zhuǎn)到步驟4.6);
4.5).將重命名的文件名加入常駐數(shù)據(jù)表中,跳轉(zhuǎn)到步驟4.7);
4.6).保持文件頭不變;
4.7).結(jié)束。
優(yōu)選的,所述步驟4.3)通過所述標(biāo)記判斷文件是否為臨時(shí)文件。
為解決上述技術(shù)問題,本發(fā)明提供了一種基于文件雙緩存的文件打開權(quán)限管理的裝置,包括:
獲取文件裝置,截獲文件的打開動(dòng)作;
判斷裝置,讀取文件頭,判斷是否為加密文檔,如果是則向文件過濾驅(qū)動(dòng)下發(fā)加密策略;
匹配裝置,文件過濾驅(qū)動(dòng)判斷打開文件的進(jìn)程是否為加密進(jìn)程,如果是,則匹配上述加密策略;
文件控制塊創(chuàng)建裝置,為打開的所述文件創(chuàng)建文件控制塊(fcb),使該文件控制塊具有明文和密文兩個(gè)緩存;
記錄裝置,在所述文件控制塊中記錄該文件的密鑰和文檔權(quán)限。
為解決上述技術(shù)問題,本發(fā)明提供了一種基于文件雙緩存的新建文件的裝置,包括:
類型判斷裝置,判斷新建文件的類型,并對其標(biāo)記為臨時(shí)文件或原始文件;
文件控制塊創(chuàng)建裝置,為新建的臨時(shí)文件或原始文件創(chuàng)建文件控制塊(fcb),使該文件控制塊具有明文和密文兩個(gè)緩存;
文件讀寫裝置,對所述新建文件進(jìn)行讀寫時(shí)進(jìn)行加解密處理。
優(yōu)選的,還包括對所述新建文件進(jìn)行保存的保存裝置,該保存裝置包括:
判斷文件保存的類型的裝置;
判斷是否為文件重命名操作的裝置;
判斷保存的文件是否為臨時(shí)文件的裝置;
在常駐數(shù)據(jù)表中查找文件名的裝置;
替換文件控制塊中文件權(quán)限位的相應(yīng)數(shù)據(jù),替換文件頭的裝置;
將重命名的文件名加入常駐數(shù)據(jù)表中的裝置;
保持文件頭不變的裝置。
優(yōu)選的,所述判斷保存的文件是否為臨時(shí)文件的裝置通過所述標(biāo)記判斷文件是否為臨時(shí)文件。
為解決上述技術(shù)問題,本發(fā)明提供了一種計(jì)算機(jī)設(shè)備,其包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)指令,當(dāng)所述處理器執(zhí)行所述計(jì)算機(jī)指令時(shí),執(zhí)行上述方法之一。
為解決上述技術(shù)問題,本發(fā)明提供了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)執(zhí)行所述計(jì)算機(jī)程序時(shí),執(zhí)行上述方法之一。
通過本發(fā)明的技術(shù)方案取得了以下技術(shù)效果:
(一)可以更好的控制文檔惡意泄密;
(二)使得文檔能夠在受控的情況下,方便的供員工查看編輯。
附圖說明
圖1是現(xiàn)有技術(shù)實(shí)現(xiàn)流程圖
圖2是本發(fā)明文件打開流程圖
圖3是本發(fā)明文件編輯流程圖
圖4是本發(fā)明文件保存流程圖
圖5是本發(fā)明的一具體實(shí)施方式流程圖
具體實(shí)施方式
本發(fā)明在文件過濾驅(qū)動(dòng)中利用雙緩存結(jié)構(gòu),對同一進(jìn)程打開多個(gè)文檔的權(quán)限進(jìn)行標(biāo)記跟蹤,并記錄到自建緩存中,解決了同一進(jìn)程打開多個(gè)文件時(shí)的權(quán)限管理與加密問題。
如圖2所示,本發(fā)明的文檔打開流程如下:
(一)雙擊打開文檔,截獲雙擊過程。
(二)讀取文檔頭,判斷是否為加密文檔,如果是則向文件過濾驅(qū)動(dòng)下發(fā)加密策略(包括加密密鑰和文檔訪問權(quán)限)。
(三)文件過濾驅(qū)動(dòng)判斷打開文檔進(jìn)程是否為加密進(jìn)程,如果是匹配加密策略。
(四)為文檔創(chuàng)建fcb,使用該文檔具有明文和密文兩個(gè)緩存。其中,所述創(chuàng)建的fcb實(shí)際負(fù)責(zé)管理自建的明文緩存,這個(gè)明文緩存只有加密進(jìn)程能夠訪問,而非加密進(jìn)程只能訪問由系統(tǒng)自行創(chuàng)建的密文緩存,密文緩存是因?yàn)榧用芪臋n由非加密進(jìn)程打開時(shí),驅(qū)動(dòng)是不給它解密的,因此系統(tǒng)直接將磁盤上的加密內(nèi)容讀到緩存中,所以也就是密文了。其中,文件頭位于fcb中。
(五)在自建的fcb中記錄該文檔的密鑰和文檔權(quán)限,文檔大小等屬性。
如圖3,本發(fā)明的文檔編輯流程如下:
(一)如果文檔為新建的文檔,說明該文檔為臨時(shí)文件,用來保存文檔編輯過程中的臨時(shí)數(shù)據(jù)。
(二)創(chuàng)建fcb,生成明文和密文兩個(gè)緩存。
(三)對文件讀寫時(shí)進(jìn)行加解密處理。
如圖4,文檔保存其實(shí)只有兩種情況,一種像記事本那種的,編輯修改的內(nèi)容直接在原文件上進(jìn)行操作,因此這種情況文件頭中的數(shù)據(jù)就是原文件中的數(shù)據(jù),權(quán)限密鑰都沒有變,就不需要變換文件頭。而第二種情況,最典型的就是office文檔,比如word,編輯時(shí)它會(huì)新建一個(gè)臨時(shí)文件,如:35dad6.tmp這樣的文件,將編輯修改的內(nèi)容全部放到這個(gè)臨時(shí)文件中,當(dāng)我們保存文檔時(shí),word會(huì)將原文件改變成其它名字,再將臨時(shí)文件改成原文件的名字,因此,當(dāng)原文件改成其它名字的時(shí)候,驅(qū)動(dòng)需要把這個(gè)原文件和文件頭中的權(quán)限信息記住,放到常駐數(shù)據(jù)表中,而臨時(shí)文件改回成原文件時(shí),通過查詢常駐數(shù)據(jù)表進(jìn)行匹配,將表中記錄的原文件權(quán)限信息寫回到臨時(shí)文件頭中,這樣就保證了文件權(quán)限的繼承。
本發(fā)明的文檔保存流程如下:
(一)如果有重命名操作,則說明文檔是用臨時(shí)文件重命名的方式保存文檔,如果非文件重命名操作,保持文件頭不變。
(二)判斷重命名的源文檔中的fcb是否標(biāo)記為臨時(shí)文件,如果不是,將該文件頭加入常駐數(shù)據(jù)表。常駐數(shù)據(jù)表,是驅(qū)動(dòng)自行維護(hù)的數(shù)據(jù)結(jié)構(gòu)鏈表,用來保存原始文檔的文件頭數(shù)據(jù)。
(三)如果是臨時(shí)文件,在常駐數(shù)據(jù)表中查找該文件名。
(四)找到文件名后,替換文件頭中的文件權(quán)限部分的數(shù)據(jù)。
(五)如果沒在找到,保持文件頭不變。文件頭中包括文件權(quán)限位。
本發(fā)明還提供了一種基于文件雙緩存的文件打開權(quán)限管理的裝置,包括:
獲取文件裝置,截獲文件的打開動(dòng)作;
判斷裝置,讀取文件頭,判斷是否為加密文檔,如果是則向文件過濾驅(qū)動(dòng)下發(fā)加密策略;
匹配裝置,文件過濾驅(qū)動(dòng)判斷打開文件的進(jìn)程是否為加密進(jìn)程,如果是,則匹配上述加密策略;
文件控制塊創(chuàng)建裝置,為打開的所述文件創(chuàng)建文件控制塊(fcb),使該文件控制塊具有明文和密文兩個(gè)緩存;
記錄裝置,在所述文件控制塊中記錄該文件的密鑰和文檔權(quán)限。
本發(fā)明還提供了一種基于文件雙緩存的新建文件的裝置,包括:
類型判斷裝置,判斷新建文件的類型,并對其標(biāo)記為臨時(shí)文件或原始文件;
文件控制塊創(chuàng)建裝置,為新建的臨時(shí)文件或原始文件創(chuàng)建文件控制塊(fcb),使該文件控制塊具有明文和密文兩個(gè)緩存;
文件讀寫裝置,對所述新建文件進(jìn)行讀寫時(shí)進(jìn)行加解密處理。
上述裝置,還包括對所述新建文件進(jìn)行保存的保存裝置,該保存裝置包括:
判斷文件保存的類型的裝置;
判斷是否為文件重命名操作的裝置;
判斷保存的文件是否為臨時(shí)文件的裝置;
在常駐數(shù)據(jù)表中查找文件名的裝置;
替換文件控制塊中文件權(quán)限位的相應(yīng)數(shù)據(jù),替換文件頭的裝置;
將重命名的文件名加入常駐數(shù)據(jù)表中的裝置;
保持文件頭不變的裝置。
所述判斷保存的文件是否為臨時(shí)文件的裝置通過所述標(biāo)記判斷文件是否為臨時(shí)文件。
本發(fā)明還提供了一種計(jì)算機(jī)設(shè)備,其包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)指令,當(dāng)所述處理器執(zhí)行所述計(jì)算機(jī)指令時(shí),執(zhí)行與上述之一方法。
本發(fā)明還提供了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)執(zhí)行所述計(jì)算機(jī)程序時(shí),執(zhí)行與所述之一的方法。
如圖5,本發(fā)明的某一具體實(shí)施方式如下:
(一)服務(wù)器配置并下發(fā)文件密級策略(可以有多個(gè))。
(二)終端接收文件密級策略。
(三)當(dāng)有用戶打開文檔時(shí),依據(jù)文檔頭標(biāo)識,下發(fā)相應(yīng)的文件密級策略到文件驅(qū)動(dòng)進(jìn)行文檔權(quán)限和加密控制。
該項(xiàng)目要求辦公室所有pc上的文檔在不同部門之間流轉(zhuǎn)時(shí)都需要加密和配置相應(yīng)權(quán)限,安裝了本功能后,很好的解決了這個(gè)需求,使得某些部門只能只讀打開文檔,無法編輯,無法解密,而且一個(gè)進(jìn)程打開了多個(gè)不同權(quán)限的文檔,極大的減小了因安裝了文檔控制造成的不便。
通過本發(fā)明提供的方案,可以更好的控制文檔惡意泄密;使得文檔能夠在受控的情況下,方便的供員工查看編輯。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進(jìn)等,均應(yīng)保護(hù)在本發(fā)明的保護(hù)范圍之內(nèi)。