專利名稱:一種識別可信任進程的方法
技術領域:
本發明涉及計算機技術程序開發領域,尤其涉及在使用應用程序進程控制驅動程 序加解密中,識別可信任進程的方法。
背景技術:
在計算機程序開發中,根據實際的功能需求,往往需要通過識別確定進程正確可 信性來實現處理相關的程序操作。與本發明較接近的傳統方法是通過MD5運算獲取文件電子指紋(一串字符)來判 別文件的是否有改變。但在實際軟件需求中,對整個可執行程序進行MD5值運算會造成程 序運行緩慢等問題。另外對于同系列不同版本的軟件,需要對每個版本可執行程序進行MD5 值的計算,造成了同系列軟件應用程序進程識別效率低,影響整個軟件的執行效率,降低了 用戶使用軟件的體驗性。本發明通過判斷應用程序可執行文件的大小,決定計算文件的全部或指定內容組 合的MD5值,獲得該可執行文件的“電子指紋”,并將該“電子指紋”、數字簽名與文件名記錄 下來。驅動程序或后臺程序首先獲取打開文件的應用程序進程,通過快速電子指紋算法計 算出的指紋,和原提取的電子指紋進行比對,如果一樣則認為該進程是可信進程。當該文件 應用進程指紋與原提取的電子指紋不一樣時,獲取該進程的數字簽名和可執行文件名,只 有數字簽名和可執行文件名對原提取的數字簽名和文件名一樣時,才認為該進程是可信進 程,否則認為該進程不是可信進程。本發明方案主要解決目前對大字節可執行文件計算MD5值導致的程序運行緩慢, 和同系列不同版本的可執行文件的識別率低等問題,通過本發明,可以正確并高效的識別 與確定進程的可信性。
發明內容
本發明的目的在于提出一種識別可信任進程的方法,克服對大字節可執行文件計 算MD5值導致的程序運行緩慢,和同系列不同版本的可執行文件的識別率低等問題,實現 對進程可信性的正確和高效的識別。為達此目的,本發明采用以下技術方案一種識別可信任進程的方法,包括以下步驟A、對當前可執行文件進行“電子指紋”的計算,獲得該應用程序進程的電子指紋。B、將獲得的電子指紋與原提取的電子指紋進行比對。如果相同,轉至步驟C,如果 不相同,轉至步驟D。C、該進程是可信進程。D、獲取該可執行文件的數字簽名。E、將獲取的數字簽名與原提取的數字簽名進行比對。如果相同,轉至步驟F,如果 不相同,轉至步驟H。
3
F、獲取該可執行文件的文件名。G、將獲取的可執行文件名與原提取的文件名進行比對。如果相同,轉至步驟C,如 果不相同,轉至步驟HH、判斷該進程不是可信進程。還包括以下步驟提取進程“電子指紋”方法,通過計算需要提取電子指紋的應用程序可執行文件的 大小,判斷文件大小是否小于5KB。如果文件小于等于5KB,使用MD5算法對文件全部內容 進行運算,獲得“電子指紋”。如果文件大于5KB,截取文件指定部分內容,組合所截取的部 分,計算組合后得到字符串的MD5值,即獲得“電子指紋”。獲取可執行文件的數字簽名與文 件名,并記錄可執行文件的進程名、數字簽名和“電子指紋”。采用了本發明的技術方案,將解決計算全部MD5值導致的程序運行緩慢,和同系 列不同版本的可執行文件的識別率低等問題,該方法可以正確并高效的識別與確定進程的
可信性。
圖1是本發明對可執行文件獲取電子指紋、數字簽名等信息的提取流程圖。圖2是本發明對可執行文件進行驗證可信任進程的流程圖。
具體實施例方式下面結合附圖并通過具體實施方式
來進一步說明本發明的技術方案。本發明技術方案的主要思想是改進傳統的將全文件進行MD5運算獲得電子指紋 的方法,并結合可執行文件的電子指紋、數字簽名和進程名等信息,判斷該可執行程序是否 為可信任的。圖1是本發明對可執行文件獲取電子指紋、數字簽名等信息的提取流程圖。如圖 1所示,該提取流程包括以下步驟步驟101、提取電子指紋程序運行。步驟102、計算需要提取電子指紋的應用程序可執行文件的大小。步驟103、判斷文件大小是否小于5KB。如果文件小于等于5KB,直接進行MD5運算 獲取電子指紋,轉至步驟104,如果文件大于5KB,截取文件指定內容,再進行MD5運算,轉至 步驟105。步驟104、如果文件大小小于等于5KB,則使用MD5算法對文件全部內容進行運算, 獲得“電子指紋”。步驟105、截取文件指定部分內容。如果文件大小大于5KB,則截取文件頭部1KB 內容,文件二分之一長度后的2KB內容和文件尾部1KB內容。步驟106、組合所截取的部分,將頭部、尾部、中部截取的內容(字符串)相加。步驟107、計算組合后得到字符串的MD5值,即獲得“電子指紋”。步驟108、獲取可執行文件的數字簽名與文件名。步驟109、判斷可執行文件是否有數字簽名。如果有數字簽名,轉至步驟111,如果 沒有數字簽名,轉至步驟110。
步驟110、如果沒有數字簽名,則獲得一個默認的數字簽名值。步驟111、記錄可執行文件的進程名、數字簽名和“電子指紋”。步驟103、結束獲取電子指紋的程序。圖2是本發明對可執行文件進行驗證可信任進程的流程圖。如圖2所示,該驗證 流程包括以下步驟步驟201、驗證可信任進程的程序開始運行。步驟202、對當前可執行文件進行“電子指紋”的計算,獲得該應用程序進程的電子 指紋。步驟203、將步驟202中計算獲得的電子指紋與原提取的電子指紋進行比對。如果 相同,則認為判斷該進程是可信的,轉至步驟204,如果不相同,還需繼續判斷該進程是否可 信,轉至步驟205。比對結果不同,則需進一步判斷該進程的數字簽名和文件名是否相同。當該可執 行文件的進程電子指紋與原提取的電子指紋不一樣時,獲取該進程的數字簽名和可執行文 件名,如果數字簽名和可執行文件名對原提取指紋電子指紋的應用程序數字簽名和可執行 文件名一樣時,則認為該進程是可信進程。如果數字簽名不相同,無論文件名是否相同,都 認為該進程不是可信進程。步驟204、判斷該進程是可信進程。通過快速電子指紋算法計算出的指紋,和原提 取的電子指紋進行比對,如果一樣則認為該進程是可信進程。步驟205、獲取該可執行文件的數字簽名。步驟206、將獲取的數字簽名與原提取的數字簽名進行比對。如果相同,轉至步驟 207,如果不相同,轉至步驟209。步驟207、獲取該可執行文件的文件名。步驟208、將獲取的可執行文件名與原提取的文件名進行比對。如果相同,轉至步 驟204,如果不相同,轉至步驟209步驟209、判斷該進程不是可信進程。數字簽名不相同或者數字簽名相同但文件名 不同,則該進程不是可信的。步驟210、驗證可信任進程結束。以上所述,僅為本發明較佳的具體實施方式
,但本發明的保護范圍并不局限于此, 任何熟悉該技術的人在本發明所揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋 在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求的保護范圍為準。
權利要求
1. 一種識別可信任進程的方法中,提取進程“電子指紋”方法,其特征在于,包括以下步驟A、計算需要提取電子指紋的應用程序可執行文件的大小。B、判斷文件大小是否小于5KB。如果文件小于等于5KB,轉至步驟C,如果文件大于5KB,轉至步驟D。C、使用MD5算法對文件全部內容進行運算,獲得“電子指紋”。D、截取文件指定部分內容。截取文件頭部1KB內容,文件二分之一長度后的2KB內容 和文件尾部1KB內容。E、組合所截取的部分,將頭部、尾部、中部截取的內容(字符串)相加。F、計算組合后得到字符串的MD5值,即獲得“電子指紋”。G、獲取可執行文件的數字簽名與文件名。H、判斷可執行文件是否有數字簽名。如果有數字簽名,轉至步驟J,如果沒有數字簽名, 轉至步驟I。I、獲得一個默認的數字簽名值。J、記錄可執行文件的進程名、數字簽名和“電子指紋”。
2.一種識別可信任進程的方法中,其特征還在于,包括以下步驟A、對當前可執行文件進行“電子指紋”的計算,獲得該應用程序進程的電子指紋。B、將獲得的電子指紋與原提取的電子指紋進行比對。如果相同,轉至步驟C,如果不相 同,轉至步驟D。C、該進程是可信進程。D、獲取該可執行文件的數字簽名。E、將獲取的數字簽名與原提取的數字簽名進行比對。如果相同,轉至步驟F,如果不相 同,轉至步驟H。F、獲取該可執行文件的文件名。G、將獲取的可執行文件名與原提取的文件名進行比對。如果相同,轉至步驟C,如果不 相同,轉至步驟HH、判斷該進程不是可信進程。
3.根據權利要求1所述的一種識別可信任進程的方法中,提取進程“電子指紋”方法, 其特征還在于,需要判斷文件大小是否小于5KB。如果文件小于等于5KB,則使用MD5算法 對文件全部內容進行運算,獲得“電子指紋”。如果文件大于5KB,截取文件指定部分內容, 本發明中截取文件頭部1KB內容,文件二分之一長度后的2KB內容和文件尾部1KB內容,組 合所截取的部分,將頭部、尾部、中部截取的內容(字符串)相加,計算組合后得到字符串的 MD5值,獲得“電子指紋”。
4.根據權利要求2所述的一種識別可信任進程的方法,其特征在于,結合“電子指紋” 與數字簽名等信息,對可執行文件是否可信進行判斷。對當前可執行文件進行“電子指紋” 的計算,獲得該應用程序進程的電子指紋。將獲得的電子指紋與原提取的電子指紋進行比 對。如果相同,該進程是可信進程。如果不相同,再通過獲取該可執行文件的數字簽名和文 件名,與原提取的數字簽名和文件名進行對比,只有數字簽名和文件名都與原提取信息一 致時,才認為該進程為可信進程,有任何一項不一致,則認為該進程不是可信進程。
全文摘要
本發明公開了一種識別可信任進程的方法,結合“電子指紋”、數字簽名和可執行文件名稱等信息,以判斷可執行文件是否可信。通過對當前可執行文件進行“電子指紋”的計算,將獲得的電子指紋與原提取的電子指紋進行比對。如果相同,該進程是可信進程。如果不相同,則獲取該可執行文件的數字簽名和文件名與原提取的信息進行對比,當以上項目信息全部比對一致時,才認為該進程為可信進程,有任何一項不一致,則認為該進程不是可信進程。采用本發明的技術方案,可以正確并高效的識別與確定進程的可信性。
文檔編號G06F21/00GK102004879SQ20101055303
公開日2011年4月6日 申請日期2010年11月22日 優先權日2010年11月22日
發明者姜濤, 林皓, 高曦 申請人:北京北信源軟件股份有限公司