件系統調用返回正確的文件描述符,使繼續執行應用程序后續的操作。同時提示用戶該應用程序完整。
[0046]步驟213:檢測完畢。
[0047]參考圖3為本發明實施案例所使用的內核驗證代理執行過程圖
[0048]其具體步驟是:
[0049]開始步驟300,捕獲打開文件系統調用。
[0050]其中,所述步驟300更詳細的情況是,應用層需要打開文件,調用了內核中打開文件的系統調用,內核捕獲到以后,獲得了文件描述符。
[0051]繼續步驟301,判斷有無為完整性驗證而添加的擴展屬性。
[0052]所述步驟301更詳細的情況是,根據步驟300獲得的文件描述符和步驟403設置的擴展屬性名,調用擴展屬性判斷函數判斷有無步驟403所設置的擴展屬性名。根據判斷返回的結果標識,分為兩種情況:
[0053]情況1:如果結果標識表示沒有相應的擴展屬性,則表示該應用程序無需進行完整性驗證,就不需要繼續后面的驗證,給應用層返回正確的文件描述符。
[0054]情況2:如果結果標識表示有相應的擴展屬性,則表示該應用程序需要進行完整性驗證,繼續后續的驗證步驟。
[0055]繼續步驟302,獲取文件為完整性驗證而添加的擴展屬性。
[0056]所述步驟302更詳細的情況是,根據步驟300獲得的文件描述符和步驟403設置的擴展屬性名,調用擴展屬性值獲取函數得到擴展屬性值。
[0057]繼續步驟303,計算Hash值。
[0058]所述步驟303更詳細的情況是,先判斷步驟300打開文件方式是否以讀的方式打開,結果分為兩種情況:
[0059]情況1:如果沒有以讀的方式打開文件,那么計算Hash值時不能夠讀取文件內容,所以再一次用讀的方式打開文件,獲得新的文件描述符,利用新的文件描述符獲取應用程序,再計算應用程序的Hash值。
[0060]情況2:如果是以讀的方式打開文件,那么利用步驟300所獲得的文件描述符獲取應用程序,計算應用程序的Hash值。
[0061]繼續步驟304,返回比較結果。
[0062]步驟304的詳細過程是,比較步驟302獲得的擴展屬性值和步驟303計算所得的Hash值,比較結果分為兩種情況:
[0063]情況1:如果比較結果相等,證明文件是完整的,此時返回步驟300所獲得的文件描述符。
[0064]情況2:如果比較結果不相等,證明文件的完整性遭到破壞,此時返回一個無用的文件描述符,通過此文件描述符不能對任何文件進行任何操作,同時提示文件遭到破壞。
[0065]系統通過文件描述符來查看文件相關的所有東西。驗證模塊是在操作系統內核中,不需要返回文件描述符自己就可以使用。而應用層上面的用戶能否操作文件,需要內核返回給應用層正確的文件描述符。應用層是通過內核的打開文件系統調用獲取文件描述符。
[0066]參考圖4為本發明實施案例所使用的標識設置程序執行過程圖
[0067]其具體步驟是:
[0068]開始步驟400,用戶發出請求。
[0069]步驟400詳細的過程是,用戶根據自己的需求決定哪些應用程序需要完整性檢測,哪些應用程序需要取消完整性檢測。結果分為兩種情況:
[0070]情況1:當需要為程序添加完整性檢測時,繼續執行步驟402計算Hash值,當計算得到應用程序的Hash值后,利用擴展屬性設置函數繼續執行步驟403設置擴展屬性,該擴展屬性的值為步驟402計算出來的Hash值,擴展屬性名根據文件系統擴展屬性名命名規則和方便理解的原則而命名。
[0071]情況2:當需要為程序刪除完整性檢測時,繼續執行步驟401刪除完整性擴展屬性,這樣在以后對應用程序的各種操作中跳過完整性檢測。
[0072]繼續步驟404,返回請求結果。
[0073]步驟404詳細的情況是,根據用戶不同的要求,請求結果分為兩種情況:
[0074]情況1:當用戶的請求是刪除應用程序完整性擴展屬性,返回是否成功刪除信息提示用戶。如果不成功,可重試刪除請求。
[0075]情況2:當用戶的請求是添加應用程序完整性擴展屬性,返回是否成功添加的信息提示用戶。如果不成功,可重試添加請求。
[0076]以上公開的僅為本發明的具體實施案例,但本發明并非局限于此,任何本領域的技術人員都可以在上述實施例的基礎上作多種變化,同樣能夠實現本發明的目的,都應落在本發明的保護范圍內。
【主權項】
1.一種應用程序完整性驗證方法,其特征在于,包括以下步驟: 1)設置步驟: 1-1)應用層接收對應用程序完整性驗證進行設置的請求,觸發應用層中的標識設置模塊; 1-2)標識設置模塊判斷請求類型,當請求類型為添加完整性驗證時,則計算該應用程序的哈希完整性校驗值,在該應用程序的擴展屬性中添加完整性擴展屬性,并將完整性校驗值作為該完整性擴展屬性的值;當請求類型為取消完整性驗證時,則刪除該應用程序的完整性擴展屬性值; 2)驗證步驟: 2-1)內核層捕獲打開文件系統調用后,觸發內核層中的驗證代理模塊; 2-2)驗證代理模塊獲取當前應用程序的文件描述符,通過該文件描述符查看應用程序,判斷應用程序是否有完整性擴展屬性值,如是,進入步驟2-3),如否,進入步驟2-5); 2-3)驗證代理模塊計算當前打開應用程序的完整性校驗值,再與獲取完整性擴展屬性值進行比較,當比較結果相同則進入步驟2-5),否則進入步驟2-4); 2-4)驗證代理模塊返回打開文件系統調用一個無用的文件描述符,同時提示應用程序被破壞; 2-5)驗證代理模塊返回打開文件系統調用正確的文件描述符。
2.如權利要求1所述一種應用程序完整性驗證方法,其特征在于,步驟2-3)中驗證代理模塊計算當前打開應用程序的完整性校驗值之前,判斷當前打開應用程序的方式是否以讀的方式打開,如是,則計算當前打開應用程序的完整性校驗值,如否,使用讀的方式重新打開當前應用程序后再計算當前打開應用程序的完整性校驗值。
3.如權利要求1所述一種應用程序完整性驗證方法,其特征在于,完整性校驗值為哈希Hash值。
【專利摘要】本發明提供一種應用程序完整性驗證方法。內核層捕獲打開文件系統調用后,觸發內核層中的驗證代理模塊;驗證代理模塊獲取當前應用程序的文件描述符,通過該文件描述符查看應用程序,判斷應用程序是否有完整性擴展屬性值,驗證代理模塊獲取應用程序為完整性驗證所添加的擴展屬性值,計算當前打開應用程序的完整性校驗值,再與獲取的擴展屬性值進行比較。本發明與文件系統完整性驗證方法相比減少了驗證開銷;通過使用文件系統自帶的擴展屬性存完整性擴展屬性值,不需要輔助硬件的存儲支持。
【IPC分類】G06F21-56
【公開號】CN104778410
【申請號】CN201510179575
【發明人】楊霞, 桑楠, 雷林, 石鵬, 劉志偉, 孫超群, 孫海泳, 任飛, 吳開均, 劉維飛, 武瓊, 袁藝, 楊姍, 李昊星, 唐偉文
【申請人】電子科技大學
【公開日】2015年7月15日
【申請日】2015年4月16日