文件塊結(jié)構(gòu)又包含文件頭和文件體,其中,每個文件塊包括一個文件頭,用于 描述文件權(quán)限和校驗信息;一個文件體,為真實文件的密文形式。
[0055] 進一步地,優(yōu)選的方法是,所述文件頭中,具體包括:本包中包含的文件個數(shù)、是否 需要密碼打開、是否綁定機器、是否使用網(wǎng)絡(luò)時間。
[0056] 進一步地,優(yōu)選的方法是,本地生成CFP文件,具體包括:
[0057] 建一個空白的CFP文件,生成包頭,并將包頭寫入CFP文件;
[0058] 根據(jù)CFP寫入文件的數(shù)量計算文件偏移表大小,生成文件偏移表,保留在內(nèi)存中;
[0059] 跳過文件偏移表的大小,逐個寫入文件塊,先根據(jù)文件權(quán)限生成文件頭,再將文件 加密到臨時目錄,往CFP文件寫入文件頭,再寫入加密的源文件,其中,每寫入一個文件時 計算文件偏移,填充到內(nèi)存中的文件偏移表。循環(huán)這一操作直到所有文件都被寫入CFP文 件;
[0060] 將文件指針調(diào)整到文件偏移表的開始處,寫入文件偏移表。
[0061] 進一步地,優(yōu)選的方法是,所述沙箱環(huán)境采取DLL注入和API HOOK方式構(gòu)建,具體 包括:
[0062] Cfp瀏覽器加載proclimit. dll使自己成為沙箱;
[0063] HOOK API CreateProcessInternalW監(jiān)視子進程創(chuàng)建,在子進程創(chuàng)建的時候?qū)ψ?進程注入 proclimit. dll;
[0064]其中,CreateProcessInternalW 的 H00K 處理如下:
[0065] 1)修改進程創(chuàng)建參數(shù),使創(chuàng)建的進程是掛起狀態(tài)的。
[0066] 2)在掛起的進程的導(dǎo)入表中寫入proclimit. dll的全路徑,這樣當(dāng)進程繼續(xù)運行 時會主動加載proclimit. dll。
[0067] 3)讓掛起的程序重新跑起來;
[0068] 其中,如果當(dāng)前進程是CfpViewer. exe,貝丨」不再H00K別的API。
[0069] 進一步地,優(yōu)選的方法是,基于文件權(quán)限控制所述HOOK API CreateProcessInternalW 啟動的 API 進程。
[0070] 相對于現(xiàn)有技術(shù),本發(fā)明具有以下優(yōu)點:
[0071]1.比起傳統(tǒng)的外發(fā)保護,本方案環(huán)境簡單,僅僅外發(fā)一個exe文件即可完成所有 步驟,不需要安裝整套加解密環(huán)境。
[0072] 2.本方案不會對接收計算機環(huán)境產(chǎn)生污染,有沒有泄密意識的上,接收計算機完 全感覺不到打開的外發(fā)文件和本地文件有何不同。
[0073] 其中,更具體地說,本發(fā)明的具體工作流程如下:
[0074] 本方案起始步驟1)在外發(fā)發(fā)起者本地生成CFP文件,同一個外發(fā)包支持多個文 件,并包裝成EXE文件的形式,達到一鍵外發(fā)的目的。
[0075] 步驟2)將打包的EXE文件直接發(fā)送給接收計算機。
[0076] 步驟3)接收計算機直接雙擊EXE文件,即能在受限的環(huán)境中閱讀源文件。
[0077] 本方案有兩個關(guān)鍵點,一是外發(fā)文件的結(jié)構(gòu),二是外發(fā)沙箱在外部主機上的建立, 外發(fā)文件的結(jié)構(gòu)保證了文件的安全性和強壯性,外發(fā)沙箱保證了在外部主機上能正常閱讀 文件并不會對自有環(huán)境造成影響。
[0078] 下面分別就這兩點進行描述。
[0079]外發(fā)文件的生成步驟:
[0080]外發(fā)文件是一個獨立的EXE文件,稱之外發(fā)外殼程序。此EXE文件中包裝了一個 CFP文件,在本地生成CFP文件后,將CFP以資源的形式打包進外發(fā)外殼程序中,外殼程序包 括CFP文件和CFP瀏覽器。在外部主機上雙擊外發(fā)外殼程序后,外發(fā)外殼釋放出CFP文件 和CFP瀏覽器,再使用CFP瀏覽器打開CFP文件。這個邏輯是很簡單的,所以外發(fā)文件核心 在于CFP文件自身,下面描述CFP文件的結(jié)構(gòu):
[0081]文件分3部分:包頭、文件偏移表、文件塊結(jié)構(gòu)(又包含文件頭和文件體)列表,作 用分別如下:
[0082] 1.包頭包含一些全局信息,如本包中包含的文件個數(shù)、是否需要密碼打開、是否綁 定機器、是否使用網(wǎng)絡(luò)時間,等等。包頭是自校驗的,如果被人惡意破壞,則整個CFP文件將 不可再使用。包頭的C語言結(jié)構(gòu)體表示如下:
[0083]
【主權(quán)項】
1. 一種外發(fā)文檔加密保護方法,其特征在于,包括: 步驟1)在本地計算機上生成CFP文件后,將CFP文件打包進外發(fā)外殼程序中,外殼程 序包括CFP文件和CFP瀏覽器; 步驟2)將打包的外發(fā)外殼程序發(fā)送給接收計算機; 步驟3)在接收計算機上直接雙擊外發(fā)外殼程序,所述外發(fā)外殼程序直接啟動CFP瀏覽 器,當(dāng)用戶點擊瀏覽文件按鈕時,C巧瀏覽器啟動一沙箱環(huán)境,并將CFP文件釋放到沙箱環(huán) 境下的特定目錄; 所述C巧瀏覽器進一步根據(jù)CFP文件格式,啟動計算機上的外部應(yīng)用程序進程,并在沙 箱環(huán)境下打開該文件,其中,該CFP文件的配置訪問權(quán)限為:該特定目錄中的文件只能在沙 箱環(huán)境下訪問。
2. 根據(jù)權(quán)利要求1所述的外發(fā)文檔加密保護方法,其特征在于,所述外發(fā)外殼程序被 做成可執(zhí)行應(yīng)用程序的格式。
3. 根據(jù)權(quán)利要求1或2所述的外發(fā)文檔加密保護方法,其特征在于,所述沙箱環(huán)境下啟 動的應(yīng)用程序為一沙箱進程,由該應(yīng)用程序啟動的其他應(yīng)用程序也都為沙箱進程。
4. 根據(jù)權(quán)利要求1或2所述的外發(fā)文檔加密保護方法,其特征在于,所述CFP文件的結(jié) 構(gòu)包括:包頭、文件偏移表、文件塊結(jié)構(gòu),其中,包頭包含全局信息,且包頭為自檢驗; 所述文件偏移表包括文件偏移項,文件偏移項指示文件對應(yīng)在CFP文件中的偏移信 息; 所述文件塊結(jié)構(gòu)又包含文件頭和文件體,其中,每個文件塊包括一個文件頭,用于描述 文件權(quán)限和校驗信息;一個文件體,為真實文件的密文形式。
5. 根據(jù)權(quán)利要求4所述的外發(fā)文檔加密保護方法,其特征在于,所述文件頭中,具體包 括:本包中包含的文件個數(shù)、是否需要密碼打開、是否綁定機器、是否使用網(wǎng)絡(luò)時間。
6. 根據(jù)權(quán)利要求1所述的外發(fā)文檔加密保護方法,其特征在于,本地生成CFP文件,具 體包括: 建一個空白的CFP文件,生成包頭,并將包頭寫入CFP文件; 根據(jù)CFP寫入文件的數(shù)量計算文件偏移表大小,生成文件偏移表,保留在內(nèi)存中; 跳過文件偏移表的大小,逐個寫入文件塊,先根據(jù)文件權(quán)限生成文件頭,再將文件加密 到臨時目錄,往CFP文件寫入文件頭,再寫入加密的源文件,其中,每寫入一個文件時計算 文件偏移,填充到內(nèi)存中的文件偏移表。循環(huán)該一操作直到所有文件都被寫入CFP文件; 將文件指針調(diào)整到文件偏移表的開始處,寫入文件偏移表。
7. 根據(jù)權(quán)利要求1所述的外發(fā)文檔加密保護方法,其特征在于,所述沙箱環(huán)境采取化L 注入和API冊0K方式構(gòu)建,具體包括; C巧瀏覽器加載proclimit. dll使自己成為沙箱; 冊0K API heateProcessInternalW監(jiān)視子進程創(chuàng)建,在子進程創(chuàng)建的時候?qū)ψ舆M程 注入proclimit. dll ; 其中,CreateProcessInternalW的冊O(shè)K處理如下; 1) 修改進程創(chuàng)建參數(shù),使創(chuàng)建的進程是掛起狀態(tài)的。 2) 在掛起的進程的導(dǎo)入表中寫入proclimit.dll的全路徑,該樣當(dāng)進程繼續(xù)運行時會 主動方口載proclimit.dll。 3)讓掛起的程序重新跑起來; 其中,如果當(dāng)前進程是WpViewer.exe,則不再冊0K別的API。
8.根據(jù)權(quán)利要求1所述的外發(fā)文檔加密保護方法,其特征在于,基于文件權(quán)限控制所 述冊0KAPICreateProcessInternalW啟動的API進程。
【專利摘要】本發(fā)明公開了一種外發(fā)文檔的加密保護方法,包括:步驟1)在本地計算機上生成CFP文件后,將CFP文件打包進外發(fā)外殼程序中,外殼程序包括CFP文件和CFP瀏覽器;步驟2)將打包的外發(fā)外殼程序發(fā)送給接收計算機;步驟3)在接收計算機上直接雙擊外發(fā)外殼程序,所述外發(fā)外殼程序直接啟動CFP瀏覽器,當(dāng)用戶點擊瀏覽文件按鈕時,Cfp瀏覽器啟動一沙箱環(huán)境,并將CFP文件釋放到沙箱環(huán)境下的特定目錄;所述Cfp瀏覽器進一步根據(jù)CFP文件格式啟動計算機上的外部應(yīng)用程序進程,并在沙箱環(huán)境下打開該文件,其中,該CFP文件的配置訪問權(quán)限為:該特定目錄中的文件只能在沙箱環(huán)境下訪問。
【IPC分類】G06F21-62
【公開號】CN104715209
【申請?zhí)枴緾N201510158011
【發(fā)明人】吳永
【申請人】山東華軟金盾軟件有限公司
【公開日】2015年6月17日
【申請日】2015年4月3日