本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體涉及一種保護文件的方法、裝置和計算設(shè)備。
背景技術(shù):
隨著計算機技術(shù)在社會生活和工作中的普及,大量的文件被保存在各種的終端設(shè)備中,例如手機、pad、臺式電腦等,其中不乏一些比較重要的文件。但是,有些不法分子會采用各種方法侵入私人終端設(shè)備將文件修改,要求用戶給予一定的報酬,才將修改后的文件恢復(fù),以此非法謀取利益,同時,為了獲取更大的利益,還會將修改后的文件進行加密處理。如果用戶無法解密,只能聽之任之,則會造成一定的經(jīng)濟損失,也會縱容該行為的再次發(fā)生;如果用戶不予理會,則這些被修改并加密的文件,特別是一些重要的文件,無法恢復(fù)到原始的狀態(tài)或直接導(dǎo)致丟失,則會給用戶的生活或者工作帶來一定的影響和損失,降低用戶體驗。那么,如何達到保護文件的目的是一個急需解決的問題。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的保護文件的方法和相應(yīng)的裝置、計算設(shè)備。
依據(jù)本發(fā)明的一個方面,提供了一種保護文件的方法,其中,該方法包括:
對于進行文件修改操作的進程,判斷該進程是否使用指定加密算法對文件進行加密處理;
如果該進程使用指定加密算法對文件進行加密處理,則利用鉤子函數(shù)導(dǎo)出所述指定加密算法所使用的密鑰并保存;
當(dāng)需要時,根據(jù)所述指定加密算法和所保存密鑰對被加密處理的文件進行解密處理。
可選地,所述判斷該進程是否使用指定加密算法對文件進行加密處理包括:
在該進程中注入預(yù)先指定的動態(tài)鏈接庫DLL,由該DLL掃描并判斷該進程所調(diào)用的第三方加解密庫中和/或該進程本身的代碼中是否包含所述指定加密算法的特征碼;
如果該進程所調(diào)用的第三方加解密庫中包含所述指定加密算法的特征碼,或者,該進程本身的代碼中包含所述指定加密算法的特征碼,則確定該進程使用指定加密算法對文件進行加密處理。
可選地,如果該進程所調(diào)用的第三方加解密庫中包含所述指定加密算法的特征碼,則所述利用鉤子函數(shù)導(dǎo)出所述指定加密算法所使用的密鑰包括:
則利用鉤子函數(shù)HOOK所述第三方加解密庫的導(dǎo)出接口以攔截到所述指定加密算法所使用的密鑰。
可選地,如果該進程本身的代碼中包含所述指定加密算法的特征碼,則所述用鉤子函數(shù)導(dǎo)出所述指定加密算法所使用的密鑰包括:
在所述指定加密算法的特征碼所在位置處設(shè)置硬件執(zhí)行斷點或INT3斷點,當(dāng)該進程執(zhí)行到所設(shè)置的斷點處時觸發(fā)異常,進而由處理異常的鉤子函數(shù)從CPU寄存器和/或堆棧中的上下文信息中找出所述指定加密算法所使用的密鑰。
可選地,所述指定加密算法為對稱加密算法。
可選地,對于進行文件修改操作的進程,在判斷該進程是否使用指定加密算法對文件進行加密處理之前,該方法進一步包括:
判斷該進程的文件修改操作是否滿足如下條件中的一種或多種:
在預(yù)定時間內(nèi)修改的文件數(shù)量超過閾值;
對一個文件的內(nèi)容的修改比例超過閾值;
所修改的相同類型文件的數(shù)量超過閾值;
對相同類型文件的修改數(shù)據(jù)量超過閾值;
如果判斷為是,再執(zhí)行所述判斷該進程是否使用指定加密算法對文件進行加密處理的步驟。
可選地,對于進行文件修改操作的進程,在判斷該進程是否使用指定加密算法對文件進行加密處理之前,該方法進一步包括:
判斷該進程修改的文件是否包括預(yù)先被指定為需要保護的文件;
如果包括,再執(zhí)行所述判斷該進程是否使用指定加密算法對文件進行加密處理的步驟。
根據(jù)本發(fā)明的另一方面,提供了一種保護文件的裝置,該裝置包括:
加密判斷單元,適于對于進行文件修改操作的進程,判斷該進程是否使用指定加密算法對文件進行加密處理;
密鑰獲取單元,適于當(dāng)加密判斷單元判斷出該進程使用指定加密算法對文件進行加密處理時,利用鉤子函數(shù)導(dǎo)出所述指定加密算法所使用的密鑰并保存;
文件恢復(fù)單元,適于在需要時,根據(jù)所述指定加密算法和所保存密鑰對被加密處理的文件進行解密處理。
可選地,所述加密判斷單元,適于在該進程中注入預(yù)先指定的動態(tài)鏈接庫DLL,由該DLL掃描并判斷該進程所調(diào)用的第三方加解密庫中和/或該進程本身的代碼中是否包含所述指定加密算法的特征碼;如果該進程所調(diào)用的第三方加解密庫中包含所述指定加密算法的特征碼,或者,該進程本身的代碼中包含所述指定加密算法的特征碼,則確定該進程使用指定加密算法對文件進行加密處理。
可選地,所述密鑰獲取單元,適于當(dāng)該進程所調(diào)用的第三方加解密庫中包含所述指定加密算法的特征碼時,利用鉤子函數(shù)HOOK所述第三方加解密庫的導(dǎo)出接口以攔截到所述指定加密算法所使用的密鑰。
可選地,所述密鑰獲取單元,適于當(dāng)該進程本身的代碼中包含所述指定加密算法的特征碼時,在所述指定加密算法的特征碼所在位置處設(shè)置硬件執(zhí)行斷點或INT3斷點,當(dāng)該進程執(zhí)行到所設(shè)置的斷點處時觸發(fā)異常,進而由處理異常的鉤子函數(shù)從CPU寄存器和/或堆棧中的上下文信息中找出所述指定加密算法所使用的密鑰。
可選地,所述指定加密算法為對稱加密算法。
可選地,所述加密判斷單元,適于對于進行文件修改操作的進程,在判斷該進程是否使用指定加密算法對文件進行加密處理之前,進一步判斷該進程的文件修改操作是否滿足如下條件中的一種或多種:預(yù)定時間內(nèi)修改的文件數(shù)量超過閾值、對一個文件的內(nèi)容的修改比例超過閾值、所修改的相同類型文件的數(shù)量超過閾值、對相同類型文件的修改數(shù)據(jù)量超過閾值;如果判斷為是,再執(zhí)行所述判斷該進程是否使用指定加密算法對文件進行加密處理的步驟。
可選地,所述加密判斷單元,適于對于進行文件修改操作的進程,在判斷該進程是否使用指定加密算法對文件進行加密處理之前,進一步判斷該進程修改的文件是否包括預(yù)先被指定為需要保護的文件;如果包括,再執(zhí)行所述判斷該進程是否使用指定加密算法對文件進行加密處理的步驟。
依據(jù)本發(fā)明的又一個方面,提供了一種計算設(shè)備,該計算設(shè)備包括如前所述的保護文件的裝置。
根據(jù)本發(fā)明的技術(shù)方案,在文件被非法修改并對文件進行加密時,導(dǎo)出非法加密使用的密鑰;當(dāng)需要解密時,利用該密鑰對該文件進行解密。當(dāng)一個進程對文件進行修改操作時,判斷該進程是否使用了指定加密算法對文件進行加密,如果判斷為是,則利用鉤子函數(shù)導(dǎo)出該指定加密算法所使用的密鑰并保存;當(dāng)該進程對文件進行加密后,用戶需要對文件進行解密,則可以直接利用保存的密鑰解密,無需通過使用該進程的不法分子,就可以將該文件解密??梢姡景l(fā)明可以實現(xiàn)在文件被非法加密后,利用導(dǎo)出的密鑰將加密的文件進行解密,以恢復(fù)加密的文件,有效的保護文件,維護用戶自身的利益,提高用戶體驗。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明一個實施例的一種保護文件的方法的流程示意圖;
圖2示出了根據(jù)本發(fā)明一個實施例的一種保護文件的裝置的結(jié)構(gòu)示意圖;
圖3示出了根據(jù)本發(fā)明一個實施例的一種計算設(shè)備的結(jié)構(gòu)示意圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
圖1示出了根據(jù)本發(fā)明一個實施例的一種保護文件的方法的流程示意圖。如圖1所示,該方法包括:
步驟S110,對于進行文件修改操作的進程,判斷該進程是否使用指定加密算法對文件進行加密處理。
當(dāng)對終端設(shè)備中存儲的文件進行非法修改的時候,通常會利用相應(yīng)的可執(zhí)行程序exe進行,當(dāng)檢測到有程序在進行文件的修改時,就判斷對文件進行修改操作的進程中是否使用指定的加密算法進行加密處理。這里的指定加密算法一般是現(xiàn)有技術(shù)中已經(jīng)存在的加密算法,可以預(yù)知,在通常情況下,為了減少時間成本,對文件進行非法加密時,通常會使用現(xiàn)有的加密算法。例如,DES加密算法。所以,在本實施例中,會預(yù)先配置一些指定的加密算法,在判斷該進程是否使用指定加密算法對文件進行加密處理的時候,可以利用加密算法的特征碼進行匹配,如果可以匹配,則說明該進程確實在使用指定加密算法對文件進行加密處理。另外,也可以判斷這些程序是否調(diào)用系統(tǒng)DLL進行加密。
步驟S120,如果該進程使用指定加密算法對文件進行加密處理,則利用鉤子函數(shù)導(dǎo)出指定加密算法所使用的密鑰并保存。
經(jīng)過判斷后,如果確定該進程是在使用指定加密算法對文件進行加密處理,就通過插入鉤子函數(shù)的方式,將指定加密算法當(dāng)前使用的密鑰導(dǎo)出并保存起來。另外,當(dāng)判斷這些程序是調(diào)用系統(tǒng)DLL進行加密時,也可以通過鉤取(HOOK)系統(tǒng)DLL的導(dǎo)出函數(shù)來獲取密鑰并保存。這里密鑰的存儲位置可以是系統(tǒng)默認的,也可以是用戶指定的,當(dāng)存儲的時候,為了便于查找和解密,可以將被加密的文件名和對應(yīng)的密鑰一起保存或者以被加密的文件的文件名、原始路徑的組合作為密鑰的索引,將該密鑰的索引和加密文件對應(yīng)保存到一個特定位置,以便用戶可以獲知哪些文件被加密,并且利用索引中的信息和密鑰對加密的文件進行解密。
步驟S130,當(dāng)需要時,根據(jù)指定加密算法和所保存密鑰對被加密處理的文件進行解密處理。
當(dāng)用戶使用已經(jīng)被加密的文件時,發(fā)現(xiàn)該文件已經(jīng)被加密,那么用戶就可以直接利用已經(jīng)保存的密鑰對加密的文件進行解密,無需通過使用該可執(zhí)行程序exe的不法分子,就可以將該文件解密。
可見,本發(fā)明可以實現(xiàn)在文件被非法加密后,利用導(dǎo)出的密鑰將加密的文件進行解密,以恢復(fù)加密的文件,有效的保護文件,維護用戶自身的利益,提高用戶體驗。
如上文說明,在判斷該進程是否使用指定加密算法對文件進行加密處理的時候,可以利用加密算法的特征碼;而且,通常進行文件修改操作的進程使用的指定加密算法是使用第三方加解密庫進行加密算法的調(diào)用,或者在該進程本身代碼中包含有加密算法的執(zhí)行程序。那么,在本發(fā)明的一個實施例中,步驟S110中的判斷該進程是否使用指定加密算法對文件進行加密處理包括:
在該進程中注入預(yù)先指定的動態(tài)鏈接庫DLL,由該DLL掃描并判斷該進程所調(diào)用的第三方加解密庫中和/或該進程本身的代碼中是否包含指定加密算法的特征碼。動態(tài)鏈接庫DLL提供了一種方法,使進程可以調(diào)用不屬于其可執(zhí)行代碼的函數(shù)。本實施例中,在該進程中注入動態(tài)鏈接庫DLL,掃描并判斷該進程所調(diào)用的第三方加解密庫中和/或該進程本身的代碼中是否包含指定加密算法的特征碼。
如果該進程所調(diào)用的第三方加解密庫中包含指定加密算法的特征碼,或者,該進程本身的代碼中包含指定加密算法的特征碼,則確定該進程使用指定加密算法對文件進行加密處理。例如,如果調(diào)用的第三方加解密庫中包含DES加密算法的特征碼,和/或該exe進程本身的代碼中包含DES加密算法的特征碼,則確定該進程使用DES加密算法對文件進行加密處理。
針對上述的包含指定加密算法的特征碼的位置的不同,導(dǎo)出指定加密算法所使用的密鑰的方式也不同。詳見下文說明:
(1)如果該進程所調(diào)用的第三方加解密庫中包含指定加密算法的特征碼,則利用鉤子函數(shù)導(dǎo)出指定加密算法所使用的密鑰包括:利用鉤子函數(shù)HOOK第三方加解密庫的導(dǎo)出接口以攔截到指定加密算法所使用的密鑰。
鉤子函數(shù)可以捕捉系統(tǒng)中所有進程將發(fā)生的事件消息,當(dāng)一個事件發(fā)生時,如果安裝了一個鉤子函數(shù),進程中的鉤子函數(shù)將被調(diào)用。在本實施例中,當(dāng)確定該進程使用指定加密算法對文件進行加密處理的事件發(fā)生時,就會調(diào)用預(yù)先安裝的鉤子函數(shù),HOOK第三方加解密庫的導(dǎo)出接口以攔截到指定加密算法所使用的密鑰。HOOK這里可以理解為“鉤住”,即利用鉤子函數(shù)通過第三方加解密庫的導(dǎo)出接口攔截指定加密算法所使用的密鑰。
(2)如果該進程本身的代碼中包含指定加密算法的特征碼,則用鉤子函數(shù)導(dǎo)出指定加密算法所使用的密鑰包括:在指定加密算法的特征碼所在位置處設(shè)置硬件執(zhí)行斷點或INT3斷點,當(dāng)該進程執(zhí)行到所設(shè)置的斷點處時觸發(fā)異常,進而由處理異常的鉤子函數(shù)從CPU寄存器和/或堆棧中的上下文信息中找出指定加密算法所使用的密鑰。
當(dāng)該進程本身的代碼中包含指定加密算法的特征碼,則確定該進程使用指定加密算法對文件進行加密處理,加密處理的密鑰信息會在CPU寄存器和/或堆棧中的上下文信息中。因為在指定加密算法的特征碼所在的位置處設(shè)置了硬件執(zhí)行斷點或INT3斷點,當(dāng)程序執(zhí)行到指定加密算法的特征碼所在的位置處時,就會觸發(fā)硬件執(zhí)行斷點或INT3斷點的指定,觸發(fā)一個異常,調(diào)試器或CPU就會捕捉這個異常從而停在斷點處,然后從斷點處調(diào)用鉤子函數(shù),從CPU寄存器和/或堆棧中的上下文信息中找出指定加密算法所使用的密鑰。
這樣當(dāng)通過鉤子函數(shù)獲取到指定加密算法所使用的密鑰并保存,當(dāng)需要對加密的文件進行解密時,就可以利用保存的密鑰進行。
在本發(fā)明的一個實施例中,圖1所示的方法中指定加密算法為對稱加密算法。在對稱加密算法中,數(shù)據(jù)發(fā)信方將明文(原始數(shù)據(jù))和加密密鑰一起經(jīng)過特殊加密算法處理后,使其變成復(fù)雜的加密密文發(fā)送出去。收信方收到密文后,若想解讀原文,則需要使用加密用過的密鑰及相同算法的逆算法對密文進行解密,才能使其恢復(fù)成可讀明文。也就是說,在對稱加密算法中,使用的密鑰只有一個,發(fā)收信雙方都使用這個密鑰對數(shù)據(jù)進行加密和解密。如果進行文件修改操作的進程使用對稱加密算法對文件進行加密處理,當(dāng)已經(jīng)利用鉤子函數(shù)獲取到加密算法所使用的密鑰后,就可以對文件進行解密。
本發(fā)明提供的保護文件的方法的前提是非用戶本人對文件進行了非法修改操作,如果只是用戶本人正常的修改就不需要執(zhí)行本方案。那么,為了進一步確定對文件的修改是非法修改。在本發(fā)明的一個實施例中,步驟S110中的對于進行文件修改操作的進程,在判斷該進程是否使用指定加密算法對文件進行加密處理之前,該方法進一步包括:判斷該進程的文件修改操作是否滿足如下條件中的一種或多種:在預(yù)定時間內(nèi)修改的文件數(shù)量超過閾值、對一個文件的內(nèi)容的修改比例超過閾值、所修改的相同類型文件的數(shù)量超過閾值、對相同類型文件的修改數(shù)據(jù)量超過閾值。如果判斷為是,再執(zhí)行判斷該進程是否使用指定加密算法對文件進行加密處理的步驟;如果判斷為否,則不執(zhí)行判斷該進程是否使用指定加密算法對文件進行加密處理的步驟。
也就是說,當(dāng)該進程的文件修改操作滿足如下條件中的一種或多種時,再執(zhí)行判斷該進程是否使用指定加密算法對文件進行加密處理的步驟:
(1)當(dāng)該進程所修改的文件數(shù)量超過第一預(yù)設(shè)值,且修改數(shù)據(jù)量與文件總數(shù)據(jù)量的比值達到第二預(yù)設(shè)值時,再執(zhí)行判斷該進程是否使用指定加密算法對文件進行加密處理的步驟。只有上述兩個條件均滿足的情況下,才確定對需要保護的文件進行的修改是非法修改。例如,第一預(yù)設(shè)值為50%,第二預(yù)設(shè)值為80%,在一個較短的時間內(nèi),對本機中的文本文檔的個數(shù)已經(jīng)超過了本機存儲的總文本文檔個數(shù)的50%,并且對每一個文本文檔進行的修改的字數(shù)已經(jīng)超過該文本文檔總字數(shù)的80%,那么就確定該程序的修改為非法修改,需要執(zhí)行判斷該進程是否使用指定加密算法對文件進行加密處理的步驟,以便可以采取相應(yīng)的措施,保護本機的文件。如果,對本機中的文本文檔的個數(shù)只是本機存儲的總文本文檔個數(shù)的10%,并且對每一個文本文檔進行的修改的字數(shù)只占該文本文檔總字數(shù)的20%,那么就確定該程序的修改不是非法修改。
(2)在預(yù)定時間內(nèi)修改的文件數(shù)量超過閾值。例如,預(yù)設(shè)閾值為50%,在1h的時間內(nèi),對本機中的文本文檔的數(shù)量已經(jīng)超過了本機存儲的總文本文檔數(shù)量的50%。該預(yù)設(shè)時間可自定義,在這里不做限制。
(3)對一個文件的內(nèi)容的修改比例超過閾值。這里可以通過字數(shù)進行判斷,例如,預(yù)設(shè)閾值為80%,對每一個文本文檔進行的修改的字數(shù)已經(jīng)超過該文本文檔總字數(shù)的80%。
(4)所修改的相同類型文件的數(shù)量超過閾值。例如,對相同類型文件的修改的數(shù)量超過該相同文件類型的總數(shù)量的50%,就進行報警提示。
(5)對相同類型文件的修改數(shù)據(jù)量超過閾值。例如,對相同類型文件的修改的數(shù)據(jù)量(例如字數(shù))超過該相同文件類型的總數(shù)據(jù)量(例如同種類型所有文件的總字數(shù))的50%。
需要說明的是,判斷該進程的文件修改操作是否滿足條件時,可以使用上述的任意一個條件,也可以使用上述條件的任意組合。在另一實施例中,也可以通過以下方式判斷對需要保護的文件進行的修改是非法修改:當(dāng)需要保護的文件被修改時,判斷是否以系統(tǒng)默認工具修改該需要保護的文件,若否,則可以判斷所述修改是非法修改。
本發(fā)明案可以只針對一些特定的文件,對于用戶來講,終端設(shè)備中存儲的文件并非都是重要的,有一些文件可能都已經(jīng)是無用的文件,為了避免在執(zhí)行本方案時系統(tǒng)資源的非必要消耗,可是預(yù)先指定一些需要保護的默認文件,或者用戶自定義一些需要保護的文件,只有這些需要保護的文件被進行加密處理時,才執(zhí)行本方案。所以,在本發(fā)明的一個實施例中,步驟S110中的對于進行文件修改操作的進程,在判斷該進程是否使用指定加密算法對文件進行加密處理之前,該方法進一步包括:判斷該進程修改的文件是否包括預(yù)先被指定為需要保護的文件。如果包括,再執(zhí)行判斷該進程是否使用指定加密算法對文件進行加密處理的步驟;如果不包括,則不執(zhí)行判斷該進程是否使用指定加密算法對文件進行加密處理的步驟。
具體地,這里需要保護的文件包括如下的一種或多種:
(1)將指定的一個或多個類型的文件作為默認需要保護文件。例如,指定圖片文件、文本文件作為需要保護的文件,將終端設(shè)備中的這些文件設(shè)定為默認需要保護的文件。
(2)接收的用戶的指令,根據(jù)用戶的指令確定需要保護的文件。例如可以提供用戶自定義接口,通過該用戶自定義接口接收的用戶的指令,根據(jù)用戶的指令確定需要保護的文件。除了在(1)中的默認文件,用戶還可以自定義需要保護的文件,以根據(jù)用戶的自定義確定需要保護的文件,例如,視頻、音頻等。此外用戶還可以指定一個或多個文件夾,該一個或多個文件夾中的文件是需要保護的文件,不管文件類型為何種。
(3)掃描本機上存儲的文件,將本機上存儲的各類文件的類型信息展示給用戶供其進行選擇,將用戶選擇的類型對應(yīng)的文件確定為需要保護的文件。為了方便用戶選擇,預(yù)先掃描本機上已經(jīng)存儲的文件的類型,并展示給用戶,用戶在了解了本機上的文件的類型后,根據(jù)自身需求進行選擇需要保護的文件類型,提高用戶體驗。在另一實施例中,也可以列出本機上存儲的所有文件,以供用戶選擇特定文件進行保護。
(4)將易受攻擊的各類文件的類型信息展示給用戶供其進行選擇,將用戶選擇的類型對應(yīng)的文件確定為需要保護的文件。為了進一步的方便用戶選擇,還可以只給用戶展示比較容易受攻擊的文件的類型,以便用戶選擇。例如將文檔類的文件比較容易受到篡改攻擊,因此將此類文件的類型信息(如word、PDF等)展示給用戶供用戶進行勾選。
圖2示出了根據(jù)本發(fā)明一個實施例的一種保護文件的裝置的結(jié)構(gòu)示意圖。如圖2所示,該保護文件的裝置200包括:
加密判斷單元210,適于對于進行文件修改操作的進程,判斷該進程是否使用指定加密算法對文件進行加密處理。
當(dāng)對終端設(shè)備中存儲的文件進行非法修改的時候,通常會利用相應(yīng)的可執(zhí)行程序exe進行,當(dāng)檢測到有程序在進行文件的修改時,就判斷對文件進行修改操作的進程中是否使用指定的加密算法進行加密處理。這里的指定加密算法一般是現(xiàn)有技術(shù)中已經(jīng)存在的加密算法,可以預(yù)知,在通常情況下,為了減少時間成本,對文件進行非法加密時,通常會使用現(xiàn)有的加密算法。例如,DES加密算法。所以,在本實施例中,會預(yù)先配置一些指定的加密算法,在判斷該進程是否使用指定加密算法對文件進行加密處理的時候,可以利用加密算法的特征碼進行匹配,如果可以匹配,則說明該進程確實在使用指定加密算法對文件進行加密處理。另外,也可以判斷這些程序是否調(diào)用系統(tǒng)DLL進行加密。
密鑰獲取單元220,適于當(dāng)加密判斷單元判斷出該進程使用指定加密算法對文件進行加密處理時,利用鉤子函數(shù)導(dǎo)出指定加密算法所使用的密鑰并保存。
經(jīng)過判斷后,如果確定該進程是在使用指定加密算法對文件進行加密處理,就通過插入鉤子函數(shù)的方式,將指定加密算法當(dāng)前使用的密鑰導(dǎo)出并保存起來。另外,當(dāng)判斷這些程序是調(diào)用系統(tǒng)DLL進行加密時,也可以通過鉤取(HOOK)系統(tǒng)DLL的導(dǎo)出函數(shù)來獲取密鑰并保存。這里密鑰的存儲位置可以系統(tǒng)默認的,也可以是用戶指定的,當(dāng)存儲的時候,為了便于查找和解密,可以將被加密的文件名和對應(yīng)的密鑰一起保存或者以被加密的文件的文件名、原始路徑的組合作為密鑰的索引,將該密鑰的索引和加密文件對應(yīng)保存到一個特定位置,以便用戶可以獲知哪些文件被加密,并且利用索引中的信息和密鑰對加密的文件進行解密。
文件恢復(fù)單元230,適于在需要時,根據(jù)指定加密算法和所保存密鑰對被加密處理的文件進行解密處理。
當(dāng)用戶使用已經(jīng)被加密的文件時,發(fā)現(xiàn)該文件已經(jīng)被加密,那么用戶就可以直接利用已經(jīng)保存的密鑰對加密的文件進行解密,無需通過使用該可執(zhí)行程序exe的不法分子,就可以將該文件解密。
可見,本發(fā)明可以實現(xiàn)在文件被非法加密后,利用導(dǎo)出的密鑰將加密的文件進行解密,以恢復(fù)加密的文件,有效的保護文件,維護用戶自身的利益,提高用戶體驗。
如上文說明,在判斷該進程是否使用指定加密算法對文件進行加密處理的時候,可以利用加密算法的特征碼;而且,通常進行文件修改操作的進程使用的指定加密算法是使用第三方加解密庫進行加密算法的調(diào)用,或者在該進程本身代碼中包含有加密算法的執(zhí)行程序。那么,在本發(fā)明的一個實施例中,加密判斷單元210,適于在該進程中注入預(yù)先指定的動態(tài)鏈接庫DLL,由該DLL掃描并判斷該進程所調(diào)用的第三方加解密庫中和/或該進程本身的代碼中是否包含指定加密算法的特征碼。動態(tài)鏈接庫DLL提供了一種方法,使進程可以調(diào)用不屬于其可執(zhí)行代碼的函數(shù)。本實施例中,在該進程中注入動態(tài)鏈接庫DLL,掃描并判斷該進程所調(diào)用的第三方加解密庫中和/或該進程本身的代碼中是否包含指定加密算法的特征碼。
如果該進程所調(diào)用的第三方加解密庫中包含指定加密算法的特征碼,和/或,該進程本身的代碼中包含指定加密算法的特征碼,則確定該進程使用指定加密算法對文件進行加密處理。例如,如果調(diào)用的第三方加解密庫中包含DES加密算法的特征碼,和/或該exe進程本身的代碼中包含DES加密算法的特征碼,則確定該進程使用DES加密算法對文件進行加密處理。
動態(tài)鏈接庫DLL提供了一種方法,使進程可以調(diào)用不屬于其可執(zhí)行代碼的函數(shù)。本實施例中,在該進程中注入動態(tài)鏈接庫DLL,判斷該進程所調(diào)用的第三方加解密庫中和/或該進程本身的代碼中是否包含指定加密算法的特征碼。
針對上述的包含指定加密算法的特征碼的位置的不同,導(dǎo)出指定加密算法所使用的密鑰的方式也不同。詳見下文說明:
(1)密鑰獲取單元220,適于當(dāng)該進程所調(diào)用的第三方加解密庫中包含指定加密算法的特征碼時,利用鉤子函數(shù)HOOK第三方加解密庫的導(dǎo)出接口以攔截到指定加密算法所使用的密鑰。
鉤子函數(shù)可以捕捉系統(tǒng)中所有進程將發(fā)生的事件消息,當(dāng)一個事件發(fā)生時,如果安裝了一個鉤子函數(shù),進程中的鉤子函數(shù)將被調(diào)用。在本實施例中,當(dāng)確定該進程使用指定加密算法對文件進行加密處理的事件發(fā)生時,就會調(diào)用預(yù)先安裝的鉤子函數(shù),HOOK第三方加解密庫的導(dǎo)出接口以攔截到指定加密算法所使用的密鑰。HOOK這里可以理解為“鉤住”,即利用鉤子函數(shù)通過第三方加解密庫的導(dǎo)出接口攔截指定加密算法所使用的密鑰。
(2)密鑰獲取單元220,適于當(dāng)該進程本身的代碼中包含指定加密算法的特征碼時,在指定加密算法的特征碼所在位置處設(shè)置硬件執(zhí)行斷點或INT3斷點,當(dāng)該進程執(zhí)行到所設(shè)置的斷點處時觸發(fā)異常,進而由處理異常的鉤子函數(shù)從CPU寄存器和/或堆棧中的上下文信息中找出指定加密算法所使用的密鑰。
當(dāng)該進程本身的代碼中包含指定加密算法的特征碼,則確定該進程使用指定加密算法對文件進行加密處理,加密處理的密鑰信息會在CPU寄存器和/或堆棧中的上下文信息中。因為在指定加密算法的特征碼所在的位置處設(shè)置了硬件執(zhí)行斷點或INT3斷點,當(dāng)程序執(zhí)行到指定加密算法的特征碼所在的位置處時,就會觸發(fā)硬件執(zhí)行斷點或INT3斷點的指定,觸發(fā)一個異常,調(diào)試器或CPU就會捕捉這個異常從而停在斷點處,然后從斷點處調(diào)用鉤子函數(shù),從CPU寄存器和/或堆棧中的上下文信息中找出指定加密算法所使用的密鑰。
這樣當(dāng)通過鉤子函數(shù)獲取到指定加密算法所使用的密鑰并保存,當(dāng)需要對加密的文件進行解密時,就可以利用保存的密鑰進行。
在本發(fā)明的一個實施例中,指定加密算法為對稱加密算法。在對稱加密算法中,數(shù)據(jù)發(fā)信方將明文(原始數(shù)據(jù))和加密密鑰一起經(jīng)過特殊加密算法處理后,使其變成復(fù)雜的加密密文發(fā)送出去。收信方收到密文后,若想解讀原文,則需要使用加密用過的密鑰及相同算法的逆算法對密文進行解密,才能使其恢復(fù)成可讀明文。也就是說,在對稱加密算法中,使用的密鑰只有一個,發(fā)收信雙方都使用這個密鑰對數(shù)據(jù)進行加密和解密。如果進行文件修改操作的進程使用對稱加密算法對文件進行加密處理,當(dāng)已經(jīng)利用鉤子函數(shù)獲取到加密算法所使用的密鑰后,就可以對文件進行解密。
本發(fā)明提供的保護文件的方案的前提是非用戶本人對文件進行了非法修改操作,如果只是用戶本人正常的修改就不需要執(zhí)行本方案。那么,為了進一步確定對文件的修改是非法修改。在本發(fā)明的一個實施例中,加密判斷單元210,適于對于進行文件修改操作的進程,在判斷該進程是否使用指定加密算法對文件進行加密處理之前,進一步判斷該進程的文件修改操作是否滿足如下條件中的一種或多種:在預(yù)定時間內(nèi)修改的文件數(shù)量超過閾值、對一個文件的內(nèi)容的修改比例超過閾值、所修改的相同類型文件的數(shù)量超過閾值、對相同類型文件的修改數(shù)據(jù)量超過閾值。如果判斷為是,再執(zhí)行判斷該進程是否使用指定加密算法對文件進行加密處理的步驟;如果判斷為否,則不執(zhí)行判斷該進程是否使用指定加密算法對文件進行加密處理的步驟。
也就是說,當(dāng)該進程的文件修改操作滿足如下條件中的一種或多種時,再執(zhí)行判斷該進程是否使用指定加密算法對文件進行加密處理的步驟:
(1)當(dāng)該進程所修改的文件數(shù)量超過第一預(yù)設(shè)值,且修改數(shù)據(jù)量與文件總數(shù)據(jù)量的比值達到第二預(yù)設(shè)值時,再執(zhí)行判斷該進程是否使用指定加密算法對文件進行加密處理的步驟。只有上述兩個條件均滿足的情況下,才確定對需要保護的文件進行的修改是非法修改。例如,第一預(yù)設(shè)值為50%,第二預(yù)設(shè)值為80%,在一個較短的時間內(nèi),對本機中的文本文檔的個數(shù)已經(jīng)超過了本機存儲的總文本文檔個數(shù)的50%,并且對每一個文本文檔進行的修改的字數(shù)已經(jīng)超過該文本文檔總字數(shù)的80%,那么就確定該程序的修改為非法修改,需要執(zhí)行判斷該進程是否使用指定加密算法對文件進行加密處理的步驟,以便可以采取相應(yīng)的措施,保護本機的文件。如果,對本機中的文本文檔的個數(shù)只是本機存儲的總文本文檔個數(shù)的10%,并且對每一個文本文檔進行的修改的字數(shù)只占該文本文檔總字數(shù)的20%,那么就確定該程序的修改不是非法修改。
(2)在預(yù)定時間內(nèi)修改的文件數(shù)量超過閾值。例如,預(yù)設(shè)閾值為50%,在1h的時間內(nèi),對本機中的文本文檔的數(shù)量已經(jīng)超過了本機存儲的總文本文檔數(shù)量的50%。該預(yù)設(shè)時間可自定義,在這里不做限制。
(3)對一個文件的內(nèi)容的修改比例超過閾值。這里可以通過字數(shù)進行判斷,例如,預(yù)設(shè)閾值為80%,對每一個文本文檔進行的修改的字數(shù)已經(jīng)超過該文本文檔總字數(shù)的80%。
(4)所修改的相同類型文件的數(shù)量超過閾值。例如,對相同類型文件的修改的數(shù)量超過該相同文件類型的總數(shù)量的50%,就進行報警提示。
(5)對相同類型文件的修改數(shù)據(jù)量超過閾值。例如,對相同類型文件的修改的數(shù)據(jù)量(例如字數(shù))超過該相同文件類型的總數(shù)據(jù)量(例如同種類型所有文件的總字數(shù))的50%。
需要說明的是,判斷該進程的文件修改操作是否滿足條件時,可以使用上述的任意一個條件,也可以使用上述條件的任意組合。在另一實施例中,也可以通過以下方式判斷對需要保護的文件進行的修改是非法修改:當(dāng)需要保護的文件被修改時,判斷是否以系統(tǒng)默認工具修改該需要保護的文件,若否,則可以判斷所述修改是非法修改。
本發(fā)明案可以只針對一些特定的文件,對于用戶來講,終端設(shè)備中存儲的文件并非都是重要的,有一些文件可能都已經(jīng)是無用的文件,為了避免在執(zhí)行本方案時系統(tǒng)資源的非必要消耗,可是預(yù)先指定一些需要保護的默認文件,或者用戶自定義一些需要保護的文件,只有這些需要保護的文件被進行加密處理時,才執(zhí)行本方案。所以,在本發(fā)明的一個實施例中,加密判斷單元210,適于對于進行文件修改操作的進程,在判斷該進程是否使用指定加密算法對文件進行加密處理之前,進一步判斷該進程修改的文件是否包括預(yù)先被指定為需要保護的文件;如果包括,再執(zhí)行判斷該進程是否使用指定加密算法對文件進行加密處理的步驟;如果不包括,則不執(zhí)行判斷該進程是否使用指定加密算法對文件進行加密處理的步驟。
具體地,這里需要保護的文件包括如下的一種或多種:
(1)將指定的一個或多個類型的文件作為默認需要保護文件。例如,指定圖片文件、文本文件作為需要保護的文件,將終端設(shè)備中的這些文件設(shè)定為默認需要保護的文件。
(2)接收的用戶的指令,根據(jù)用戶的指令確定需要保護的文件。例如可以提供用戶自定義接口,通過該用戶自定義接口接收的用戶的指令,根據(jù)用戶的指令確定需要保護的文件。除了在(1)中的默認文件,用戶還可以自定義需要保護的文件,以根據(jù)用戶的自定義確定需要保護的文件,例如,視頻、音頻等。此外用戶還可以指定一個或多個文件夾,該一個或多個文件夾中的文件是需要保護的文件,不管文件類型為何種。
(3)掃描本機上存儲的文件,將本機上存儲的各類文件的類型信息展示給用戶供其進行選擇,將用戶選擇的類型對應(yīng)的文件確定為需要保護的文件。為了方便用戶選擇,預(yù)先掃描本機上已經(jīng)存儲的文件的類型,并展示給用戶,用戶在了解了本機上的文件的類型后,根據(jù)自身需求進行選擇需要保護的文件類型,提高用戶體驗。在另一實施例中,也可以列出本機上存儲的所有文件,以供用戶選擇特定文件進行保護。
(4)將易受攻擊的各類文件的類型信息展示給用戶供其進行選擇,將用戶選擇的類型對應(yīng)的文件確定為需要保護的文件。為了進一步的方便用戶選擇,還可以只給用戶展示比較容易受攻擊的文件的類型,以便用戶選擇。例如將文檔類的文件比較容易受到篡改攻擊,因此將此類文件的類型信息(如word、PDF等)展示給用戶供用戶進行勾選。
圖3示出了根據(jù)本發(fā)明一個實施例的一種計算設(shè)備的結(jié)構(gòu)示意圖。如圖3所示,該計算設(shè)備300包括如圖2所示的保護文件的裝置310。
需要說明的是,圖2所示的裝置、圖3所示的計算設(shè)備的各實施例與圖1所示方法的各實施例對應(yīng)相同,上文已有詳細說明,在此不再贅述。
綜上所述,根據(jù)本發(fā)明的技術(shù)方案,在文件被非法修改并對文件進行加密時,導(dǎo)出非法加密使用的密鑰;當(dāng)需要解密時,利用該密鑰對該文件進行解密。當(dāng)一個進程對文件進行修改操作時,判斷該進程是否使用了指定加密算法對文件進行加密,如果判斷為是,則利用鉤子函數(shù)導(dǎo)出該指定加密算法所使用的密鑰并保存;當(dāng)該進程對文件進行加密后,用戶需要對文件進行解密,則可以直接利用保存的密鑰解密,無需通過使用該進程的不法分子,就可以將該文件解密??梢?,本發(fā)明可以實現(xiàn)在文件被非法加密后,利用導(dǎo)出的密鑰將加密的文件進行解密,以恢復(fù)加密的文件,有效的保護文件,維護用戶自身的利益,提高用戶體驗。
需要說明的是:
在此提供的算法和顯示不與任何特定計算機、虛擬裝置或者其它設(shè)備固有相關(guān)。各種通用裝置也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類裝置所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的保護文件的裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
本發(fā)明公開了A1、一種保護文件的方法,包括:
對于進行文件修改操作的進程,判斷該進程是否使用指定加密算法對文件進行加密處理;
如果該進程使用指定加密算法對文件進行加密處理,則利用鉤子函數(shù)導(dǎo)出所述指定加密算法所使用的密鑰并保存;
當(dāng)需要時,根據(jù)所述指定加密算法和所保存密鑰對被加密處理的文件進行解密處理。
A2、如A1所述的方法,其中,所述判斷該進程是否使用指定加密算法對文件進行加密處理包括:
在該進程中注入預(yù)先指定的動態(tài)鏈接庫DLL,由該DLL掃描并判斷該進程所調(diào)用的第三方加解密庫中和/或該進程本身的代碼中是否包含所述指定加密算法的特征碼;
如果該進程所調(diào)用的第三方加解密庫中包含所述指定加密算法的特征碼,或者,該進程本身的代碼中包含所述指定加密算法的特征碼,則確定該進程使用指定加密算法對文件進行加密處理。
A3、如A2所述的方法,其中,
如果該進程所調(diào)用的第三方加解密庫中包含所述指定加密算法的特征碼,則所述利用鉤子函數(shù)導(dǎo)出所述指定加密算法所使用的密鑰包括:
則利用鉤子函數(shù)HOOK所述第三方加解密庫的導(dǎo)出接口以攔截到所述指定加密算法所使用的密鑰。
A4、如A2所述的方法,其中,
如果該進程本身的代碼中包含所述指定加密算法的特征碼,則所述用鉤子函數(shù)導(dǎo)出所述指定加密算法所使用的密鑰包括:
在所述指定加密算法的特征碼所在位置處設(shè)置硬件執(zhí)行斷點或INT3斷點,當(dāng)該進程執(zhí)行到所設(shè)置的斷點處時觸發(fā)異常,進而由處理異常的鉤子函數(shù)從CPU寄存器和/或堆棧中的上下文信息中找出所述指定加密算法所使用的密鑰。
A5、如A1所述的方法,其中,所述指定加密算法為對稱加密算法。
A6、如A1-A5中任一項所述的方法,其中,對于進行文件修改操作的進程,在判斷該進程是否使用指定加密算法對文件進行加密處理之前,該方法進一步包括:
判斷該進程的文件修改操作是否滿足如下條件中的一種或多種:
在預(yù)定時間內(nèi)修改的文件數(shù)量超過閾值;
對一個文件的內(nèi)容的修改比例超過閾值;
所修改的相同類型文件的數(shù)量超過閾值;
對相同類型文件的修改數(shù)據(jù)量超過閾值;
如果判斷為是,再執(zhí)行所述判斷該進程是否使用指定加密算法對文件進行加密處理的步驟。
A7、如A1-A5中任一項所述的方法,其中,對于進行文件修改操作的進程,在判斷該進程是否使用指定加密算法對文件進行加密處理之前,該方法進一步包括:
判斷該進程修改的文件是否包括預(yù)先被指定為需要保護的文件;
如果包括,再執(zhí)行所述判斷該進程是否使用指定加密算法對文件進行加密處理的步驟。
本發(fā)明還公開了B8、一種保護文件的裝置,包括:
加密判斷單元,適于對于進行文件修改操作的進程,判斷該進程是否使用指定加密算法對文件進行加密處理;
密鑰獲取單元,適于當(dāng)加密判斷單元判斷出該進程使用指定加密算法對文件進行加密處理時,利用鉤子函數(shù)導(dǎo)出所述指定加密算法所使用的密鑰并保存;
文件恢復(fù)單元,適于在需要時,根據(jù)所述指定加密算法和所保存密鑰對被加密處理的文件進行解密處理。
B9、如B8所述的裝置,其中,
所述加密判斷單元,適于在該進程中注入預(yù)先指定的動態(tài)鏈接庫DLL,由該DLL掃描并判斷該進程所調(diào)用的第三方加解密庫中和/或該進程本身的代碼中是否包含所述指定加密算法的特征碼;如果該進程所調(diào)用的第三方加解密庫中包含所述指定加密算法的特征碼,或者,該進程本身的代碼中包含所述指定加密算法的特征碼,則確定該進程使用指定加密算法對文件進行加密處理。
B10、如B9所述的裝置,其中,
所述密鑰獲取單元,適于當(dāng)該進程所調(diào)用的第三方加解密庫中包含所述指定加密算法的特征碼時,利用鉤子函數(shù)HOOK所述第三方加解密庫的導(dǎo)出接口以攔截到所述指定加密算法所使用的密鑰。
B11、如B9所述的裝置,其中,
所述密鑰獲取單元,適于當(dāng)該進程本身的代碼中包含所述指定加密算法的特征碼時,在所述指定加密算法的特征碼所在位置處設(shè)置硬件執(zhí)行斷點或INT3斷點,當(dāng)該進程執(zhí)行到所設(shè)置的斷點處時觸發(fā)異常,進而由處理異常的鉤子函數(shù)從CPU寄存器和/或堆棧中的上下文信息中找出所述指定加密算法所使用的密鑰。
B12、如B8所述的裝置,其中,所述指定加密算法為對稱加密算法。
B13、如B8-B12中任一項所述的裝置,其中,
所述加密判斷單元,適于對于進行文件修改操作的進程,在判斷該進程是否使用指定加密算法對文件進行加密處理之前,進一步判斷該進程的文件修改操作是否滿足如下條件中的一種或多種:預(yù)定時間內(nèi)修改的文件數(shù)量超過閾值、對一個文件的內(nèi)容的修改比例超過閾值、所修改的相同類型文件的數(shù)量超過閾值、對相同類型文件的修改數(shù)據(jù)量超過閾值;如果判斷為是,再執(zhí)行所述判斷該進程是否使用指定加密算法對文件進行加密處理的步驟。
B14、如B8-B12中任一項所述的裝置,其中,
所述加密判斷單元,適于對于進行文件修改操作的進程,在判斷該進程是否使用指定加密算法對文件進行加密處理之前,進一步判斷該進程修改的文件是否包括預(yù)先被指定為需要保護的文件;如果包括,再執(zhí)行所述判斷該進程是否使用指定加密算法對文件進行加密處理的步驟。
本發(fā)明還公開了C15、一種計算設(shè)備,其中,該計算設(shè)備包括如B8-B14中任一項所述的保護文件的裝置。