一種Android系統的完整性保護系統的制作方法
【專利摘要】本發明涉及一種Android系統的完整性保護系統,屬于智能設備安全【技術領域】。該系統包括:用戶接口模塊,后臺服務模塊,數據簽名模塊,數據庫模塊。用戶接口模塊與后臺服務模塊、數據庫模塊雙向通信;后臺服務模塊與數據簽名模塊與數據庫模塊雙向通信。本發明專門針對Root過的系統,可以有效的對Android系統進行完整性保護;實施方便,該保護方法無需修改操作系統,Root過的Android手機只需安裝一個應用程序,便可以對系統進行保護。
【專利說明】一種Android系統的完整性保護系統
【技術領域】
[0001]本發明屬于智能設備安全【技術領域】,涉及一種Android系統的完整性保護系統,具體是針對Root過的Android系統的完整性保護系統。
【背景技術】
[0002]隨著移動互聯網的興起,移動智能設備已經融入人們的日常生活。就2012年來說,依據IDC的統計數據,Android智能設備的出貨量位居第一。將Android智能設備Root后,能獲得更好的玩機體驗,但同時也帶來了新的安全問題,病毒木馬獲得Root權限后,可以肆意攻擊系統。
[0003]在過去幾年的研究里,Android系統的安全問題一直是一個吸引人的主題。目前已經提出的方法多數針對未Root的系統,例如:在Android系統安裝殺毒軟件等,雖然也取得了很多成果,但是沒有一個方法能夠完全解決Android的安全問題。此外,Root過的系統面臨一些新的安全問題,其中非常重要的就是系統完整性問題,這是先前的方法所沒有考慮到的。
[0004]Android系統的安全機制主要包括兩個方面,一個是Iinux原有的的權限管理機制,通過UID來控制文件的訪問;另一個是Android系統增加的Permission機制。這種安全機制存在著缺陷=Linux存在超級用戶,該用戶擁有完全的系統訪問控制權限,惡意軟件可以通過系統中應用軟件的漏洞來獲取超級用戶權限,進而控制整個系統。
[0005]Root是Linux系統下的一個超級用戶,它擁有整個系統的最聞權限。
[0006]本發明提出的Android系統的完整性保護系統基于Root過的Android系統,方案的實施需要系統獲得Root權限,這樣能讀取系統文件,進而對系統進行完整性保護。
【發明內容】
[0007]本發明的目的在于提出一種Android系統的完整性保護系統,解決了 Root過的Android系統的完整性保護等安全問題,防止病毒木馬獲得Root權限后,肆意攻擊系統。本發明實現Iv能夠在Android設備開機時自動啟動的完整性保護系統,該系統能夠跟Android系統雙向通信,對Android系統的重要文件實施安全保護。
[0008]本發明的目的是通過下述技術方案實現的。
[0009]一種Android系統的完整性保護系統,包括:用戶接口模塊,后臺服務模塊,數據簽名模塊,數據庫模塊。
[0010]用戶接口模塊提供密碼設置、用戶登錄時的密碼驗證、顯示受保護的文件列表、系統運行日志、設置定期檢測時間間隔、手動檢測系統完整性、受保護文件被篡改時的用戶消息推送等功能,其為系統的正常運行提供必要的操作參數。
[0011]用戶接口模塊與后臺服務模塊、數據庫模塊雙向通信;后臺服務模塊與數據簽名模塊與數據庫模塊雙向通信。
[0012]用戶接口模塊的功能是負責用戶與應用系統的交互。[0013]密碼設置功能是為了防止其他人的隨意使用;系統在首次運行時要求用戶設置登錄密碼。
[0014]登錄密碼需加密保存,以保證其安全性。
[0015]所述的用戶登錄時的密碼驗證功能是每次打開該應用時,要求用戶輸入密碼,對用戶的身份進行驗證。
[0016]顯示受保護的文件列表功能是在智能設備的顯示屏上顯示受保護的文件。
[0017]系統運行日志功能是詳細記錄受保護文件的修改情況。
[0018]設置定期檢測時間間隔功能是設置自動檢測的時間間隔。該時間間隔是進行自動檢測的參數。
[0019]自動檢測功能可設置為打開或關閉。
[0020]所述的手動檢測系統完整性功能是實時接受用戶提交的系統完整性檢測請求。
[0021]所述的受保護文件被篡改時的用戶消息推送功能是在當發現受保護文件被篡改時,在通知欄中對用戶進行實時提醒。
[0022]用戶接口模塊的設計應符合Android人機界面設計規范。
[0023]所述的后臺服務模塊功能是在后臺調用數據簽名模塊、數據庫模塊對系統完整性進行檢測。當系統自動檢測或用戶手動檢測系統完整性時,該服務被喚醒。
[0024]所述的后臺服務模塊是系統的核心,除提供受保護文件的完整性檢測外,還提供了一些其他功能,例如:密碼設置、用戶登錄時的密碼驗證、設置定期檢測時間間隔、手動檢測系統完整性等,它們需要使用用戶接口模塊提供的操作參數來操作。
[0025]優選的,后臺服務模塊在檢測受保護文件的完整性時,有兩種工作方式,一種是自動檢測方式,一種是手動檢測方式。用戶可以通過設置時間間隔使后臺系統每隔一定的時間自動對系統的完整性進行檢測,也可以隨時通過用戶接口調用對系統的完整性檢測。
[0026]所述的數據簽名模塊功能是保證信息傳輸的完整性,對發送者的身份認證,防止抵賴發生。
[0027]所述的數據簽名模塊包括Root權限提升模塊,HMAC (Hash-based MessageAuthentication Code)模塊。
[0028]所述的Root權限提升模塊的進程由后臺服務模塊創建,通過執行su命令提升為Root權限,以執行需要Root權限的命令。
[0029]所述的HMAC模塊功能是計算每個受保護文件的摘要值。HMAC模塊需用到一個加密散列算法,可以使用MD5或SHA-1 (Secure Hash Algorithm)算法。
[0030]HMAC模塊程序的具體處理過程如下:
[0031]步驟1:啟動受保護文件的自動檢測或手動檢測;
[0032]步驟2:如果受保護文件列表中還有未檢測的文件,從中取出一個文件,并將其內容作為HMAC算法中的message,密鑰由用戶設定,通過HMAC算法,計算受保護文件的摘要值;如果受保護文件列表的文件檢測完畢,跳轉至結束;
[0033]步驟3:將計算得到的摘要值與數據庫中的值進行比較;
[0034]步驟4:若摘要值不同,說明受保護文件被修改,將消息推送給用戶,修復被篡改的受保護文件,重新計算摘要值并更新數據表;若摘要值相同,跳轉至步驟2 ;
[0035]步驟5:結束;[0036]所述的受保護文件列表由應用系統在后臺維護。
[0037]所述受保護的文件不是指系統中所有的文件,判斷標準為:
[0038]1.需要保護的文件指那些惡意軟件企圖篡改的文件。惡意軟件一般會攻擊與系統的運行和功能有關的文件,即可執行文件或一些動態鏈接庫等,例如init文件,init.rc文件,system/bin/下的文件等。
[0039]2.需要保護的文件指那些不輕易改變的文件。若文件經常改變,應用系統無法分辨是來自于惡意軟件的修改還是系統本身的修改。
[0040]所述數據庫模塊功能是維護文件摘要數據表和日志記錄數據表。文件摘要數據表用于保存被監測的受保護文件的路徑名及摘要值,日志記錄數據表用于保存每次檢測的結果,當發現某個文件被修改后,該文件的路徑名、檢測結果信息和檢測時的時間保存到該數據庫表中。
[0041]用戶接口模塊與后臺服務模塊、數據庫模塊雙向通信;后臺服務模塊與數據簽名模塊與數據庫模塊雙向通信。
[0042]有益效果:
[0043]本發明提出的Android系統的完整性保護系統具有如下優點:
[0044]1.專門針對Root過的系統,可以有效的對Android系統進行完整性保護。
[0045]2.實施方便。該保護方法無需修改操作系統,Root過的Android手機只需安裝一個應用程序,便可以對系統進行保護。
【專利附圖】
【附圖說明】
[0046]圖1Android系統的完整性保護系統示意圖;
[0047]圖2安裝有殺毒軟件的Android系統的完整性保護系統示意圖;
[0048]圖3為本發明【具體實施方式】中Android系統的完整性保護系統的軟件模塊示意圖;
[0049]圖4為檢測受保護文件的工作流程圖。
【具體實施方式】
[0050]為了更好的說明本發明的技術方案,下面結合附圖,通過2個實施例,對本發明做
進一步說明。
[0051]實施例1為無殺毒軟件的Android系統的完整性保護系統,如圖1所示。
[0052]該完整性保護系統包括:用戶接口模塊,后臺服務模塊,數據簽名模塊,數據庫模塊,見圖3。
[0053]用戶接口模塊與后臺服務模塊、數據庫模塊雙向通信;后臺服務模塊與數據簽名模塊與數據庫模塊雙向通信。
[0054]用戶接口模塊的功能是負責用戶與應用系統的交互。
[0055]所述的用戶接口模塊提供密碼設置、用戶登錄時的密碼驗證、顯示被保護的文件列表、系統運行日志、設置定期檢測時間間隔、手動檢測系統完整性、受保護文件被篡改時的用戶消息推送功能等,其為系統的正常運行提供必要的操作參數。
[0056]所述的后臺服務模塊功能是在后臺調用數據簽名模塊、數據庫模塊對系統完整性進行檢測。當系統自動檢測或用戶手動檢測系統完整性時,該服務被喚醒。
[0057]所述的后臺服務模塊是系統的核心,除提供受保護文件的完整性檢測外,還提供了一些其他功能,例如:密碼設置、用戶登錄時的密碼驗證、設置定期檢測時間間隔、手動檢測系統完整性等,它們需要使用用戶接口模塊提供的操作參數來操作。
[0058]所述的數據簽名模塊功能是保證信息傳輸的完整性,對發送者的身份認證,防止抵賴發生。
[0059]所述的數據簽名模塊包括Root權限提升模塊,HMAC (Hash-based MessageAuthentication Code)模塊。
[0060]所述的Root權限提升模塊通過在Android應用程序中啟動一個Shell進程,在該進程中執行su命令,將該進程提升為Root權限。
[0061]所述數據庫模塊功能是維護文件摘要數據表和日志記錄數據表。文件摘要數據表用于保存被監測的受保護文件的路徑名及摘要值,日志記錄數據表用于保存每次檢測的結果,當發現某個文件被修改后,該文件的路徑名、檢測結果信息和檢測時的時間保存到該數據庫表中。
[0062]所述Android系統的完整性保護系統安裝在安裝了 Android系統的智能設備上,在設備開機時自動啟動。
[0063]當應用系統自動檢測系統完整性或用戶手動檢測系統完整性時,后臺服務程序被喚醒,見圖4,具體操作步驟為:
[0064]步驟1:將受保護的文件列表添加入棧;
[0065]步驟2:如果棧為空,程序結束;
[0066]步驟3:從棧S中取出一個文件,將其內容作為HMAC算法中的message,結合用戶設定的密鑰,由HMAC算法計算該文件的摘要值;
[0067]步驟4:將摘要值與數據庫中值進行比較;
[0068]步驟5:若摘要值不同,說明該受保護文件被修改,將消息推送給用戶;若摘要值相同,不做任何操作,跳轉至步驟2 ;
[0069]步驟6:修復被篡改的受保護文件,重新計算摘要值并更新數據表跳轉至步驟2 ;
[0070]步驟7:結束;
[0071]經過上述步驟,即完成系統完整性檢測。
[0072]實施例2為安裝有殺毒軟件的Android系統的完整性保護系統,如圖2所示。Android系統分別與完整性保護系統、殺毒軟件連接。完整性保護系統獨立于殺毒軟件存在,二者配合使用能使系統的安全性更高。
【權利要求】
1.一種Android系統的完整性保護系統,其特征在于,包括:用戶接口模塊,后臺服務模塊,數據簽名模塊,數據庫模塊;其中, 用戶接口模塊的功能是負責用戶與系統的交互; 后臺服務模塊功能是在后臺調用數據簽名模塊、數據庫模塊對Android系統完整性進行檢測;當系統自動檢測或用戶手動檢測系統完整性時,該服務被喚醒; 數據簽名模塊功能是保證信息傳輸的完整性,對發送者的身份認證,防止抵賴發生; 數據庫模塊功能是維護文件摘要數據表和日志記錄數據表;文件摘要數據表用于保存被監測的受保護文件的路徑名及摘要值,日志記錄數據表用于保存每次檢測的結果,當發現某個文件被修改后,該文件的路徑名、檢測結果信息和檢測時的時間保存到該數據庫表中; 用戶接口模塊與后臺服務模塊、數據庫模塊雙向通信;后臺服務模塊與數據簽名模塊與數據庫模塊雙向通信。
2.如權利要求1所述一種Android系統的完整性保護系統,其特征在于:所述保護系統是在設備開機時自動啟動的Android應用程序。
3.如權利要求1所述的一種Android系統的完整性保護系統,其特征在于: 所述數據簽名模塊包括Root權限提升模塊,HMAC模塊; HMAC模塊具體處理過程如下: 步驟1:啟動受保護文件的自動檢測或手動檢測; 步驟2:如果受保護文件列表中還有未檢測的文件,從中取出一個文件,并將其內容作為HMAC算法中的message,密鑰由用戶設定,通過HMAC算法,計算受保護文件的摘要值;如果受保護文件列表的文件檢測完畢,跳至步驟5 ; 步驟3:將計算得到的摘要值與數據庫中的值進行比較; 步驟4:若摘要值不同,說明受保護文件被修改,將消息推送給用戶,修復被篡改的受保護文件,重新計算摘要值并更新數據表;若摘要值相同,跳轉至步驟2 ; 步驟5:結束。
4.如權利要求3所述的一種Android系統的完整性保護系統,其特征在于:Root權限提升模塊通過執行su命令提升為Root權限。
5.如權利要求3所述的一種Android系統的完整性保護系統,其特征在于:受保護文件判斷標準為:①需要保護的文件指那些惡意軟件企圖篡改的文件;惡意軟件一般會攻擊與系統的運行和功能有關的文件,即可執行文件或一些動態鏈接庫等,例如init文件,init.rc文件,system/bin/下的文件等需要保護的文件指那些不輕易改變的文件;若文件經常改變,系統無法分辨是來自于惡意軟件的修改還是系統本身的修改。
6.如權利要求3所述的一種Android系統的完整性保護系統,其特征在于:如果受保護文件被修改,系統將把消息推送給用戶。
7.如權利要求1所述的一種Android系統的完整性保護系統,其特征在于:用戶接口模塊提供了一個Android應用程序的操作界面,該界面的設計為符合Android人機界面設計規范。
【文檔編號】G06F21/56GK103530559SQ201310449571
【公開日】2014年1月22日 申請日期:2013年9月27日 優先權日:2013年9月27日
【發明者】劉增良, 于瀟, 譚毓安, 張全新, 劉懿昊, 左偉歡, 孫宗文 申請人:北京理工大學