時,SI將通過例如上述方式接管該請求操作。然后針對發(fā)起ROOT權限請求的應用,對當前加載的白名單進行匹配檢查。在一個實施例中,可以通過以下方式來進行匹配檢查:首先計算產(chǎn)生該ROOT權限請求的應用的數(shù)字摘要(MD5、SHA1等);然后將該數(shù)字摘要與白名單中各應用的數(shù)字摘要進行比較;如果發(fā)現(xiàn)存在相同(匹配)的數(shù)字摘要,則確定該應用在白名單中;否則,則確定該應用不在白名單中。在另一個實施例中,也可以簡單地通過比較該應用的應用名或同時比較應用名和數(shù)字摘要來進行匹配檢查。當然,本發(fā)明不限于上述匹配檢查方式,也可以采用任何其他的匹配方式。
[0061]如果發(fā)現(xiàn)該應用或服務Al沒有在終端100的白名單列表中,那么SI可以終止當前ROOT權限請求,并可以調用系統(tǒng)消息接口,通過彈出消息窗口方式向用戶進行告警。
[0062]在一個實施例中,如果發(fā)現(xiàn)該應用或服務Al存在于白名單中,則可以檢查白名單列表中的相應應用的“云端檢查”標志,該標志指示了是否需要針對該應用在云端服務器上進行進一步檢查。如果該標志設定為需要進一步云端檢查,則Si可以向云端白名單服務器(例如,服務器200)發(fā)出請求,要求對當前發(fā)出ROOT權限請求的Al進行最新白名單檢查。該請求中可以包括Al的名稱、數(shù)字摘要等信息,供云端服務器來判斷Al是否在云端白名單中。如果該Al存在于云端服務器的最新的白名單中,那么SI將會放開Al發(fā)出的ROOT權限請求(即,返回普通ROOT權限請求流程),并可以允許Al對信息資源的后續(xù)訪問請求。
[0063]當然,在其他實施例中,在判斷出應用Al不在終端100本地的白名單中的情況下,也可以根據(jù)缺省“云端檢查”標志向云端服務器發(fā)起云端檢查過程,本發(fā)明不限于此。
[0064]此外,在白名單檢測過程中產(chǎn)生的所有日志都可以通過明文文本文件方式存放在和白名單同級的目錄下,例如“/sdcard/whitelist/check.log”。
[0065]此外,對于SI運行中需要檢查的各參數(shù)配置,可以通過專門的用戶界面供用戶進行管理配置。該用戶界面至少可以包括(但不限于)更新設置、云端檢測設置和日志管理等三個部分。更新設置可以設定與是否需要進行更新檢查相關的開關。云端檢測設置可以設定是否需要進行進一步云端檢查,該設置可以針對白名單列表中的每個應用單獨設置,也可以針對應用組設置,此外還可以存在缺省設置,以如上所述供白名單列表中不存在的應用來使用。日志管理可以設定日志的管理方式和/或是否需要進行對日志的進一步云端分析。如上所述,在SI運行的所有階段中產(chǎn)生的日志都可以保存在終端100本地。當通過日志管理來設定需要對日志進行進一步的云端分析時,可以向遠程分析服務器(例如,服務器200)提交這些日志,供分析服務器分析之用。該用戶界面可以是使用Java語言和Android SDK來開發(fā)的。
[0066]此外,該白名單可以基于第三方安全服務提供商提供的云平臺中的安全樣本庫作為基礎數(shù)據(jù)。從而,云平臺樣本庫的持續(xù)更新可以保證白名單機制的準確性,減少誤報或漏報發(fā)生的可能。
[0067]通過使用上述權限管理流程,提出了涉及應用安裝和應用(服務)運行時兩個階段的ROOT權限請求的白名單檢測機制。其不需要人工參與,自動進行請求安全性檢測,保證只有存在于本地或云端白名單中的應用才被允許獲得ROOT權限以及讀取與用戶終端相關的隱私和關鍵信息數(shù)據(jù)的訪問行為。
[0068]圖3是示出了根據(jù)本發(fā)明實施例的用于管理應用程序的方法400的流程圖。如圖3所示,方法400可以包括步驟S410、S420和S430。根據(jù)本發(fā)明,方法400的一些步驟可以單獨執(zhí)行或組合執(zhí)行,以及可以并行執(zhí)行或順序執(zhí)行,并不局限于圖3所示的具體操作順序。在一些實施例中,方法400可以由圖1所示的終端100或安裝在終端100中的客戶端150執(zhí)行。
[0069]圖4是示出了根據(jù)本發(fā)明實施例的用于權限管理的示例終端100的框圖。如圖4所示,終端100可以包括:監(jiān)聽單元110、比對單元120和管理單元130。
[0070]監(jiān)聽單元110用于監(jiān)聽終端100上的權限請求。監(jiān)聽單元110可以是終端100的中央處理單元(CPU)、數(shù)字信號處理器(DSP)、微處理器、微控制器等等,其可以通過修改終端100的系統(tǒng)中負責處理權限請求的模塊,來監(jiān)聽終端100上的權限請求。
[0071]比對單元120用于將發(fā)起權限請求的應用與在終端100上維護的應用白名單進行比對。比對單元120可以是終端100的中央處理單元(CPU)、數(shù)字信號處理器(DSP)、微處理器、微控制器等等,其可以與終端100的存儲器(RAM、SD卡等)相配合,將發(fā)起權限請求的應用與在終端100存儲器中上維護的應用白名單進行比對,以確定該應用是否在應用白名單中。
[0072]管理單元130用于根據(jù)比對的結果,執(zhí)行相應的權限管理。管理單元130可以是終端100的中央處理單元(CPU)、數(shù)字信號處理器(DSP)、微處理器、微控制器等等,其可以與終端100的存儲器(RAM、SD卡等)相配合,根據(jù)比對的結果,執(zhí)行相應的權限管理,從而允許由在應用白名單中的應用發(fā)起的權限請求,或向用戶提示由不在白名單中的應用發(fā)起的權限請求。
[0073]此外,終端100還可以包括圖4末示出的其他單元,例如更新單元。在一些實施例中,更新單元可以用于定期或在啟動時更新應用白名單。
[0074]以下將結合圖3和圖4,對根據(jù)本發(fā)明實施例的用于在終端100上管理權限的方法400和終端100進行詳細的描述。
[0075]方法400開始于步驟S410,在步驟S410中,可以由終端100的監(jiān)聽單元110來監(jiān)聽終端100上的權限請求。
[0076]在步驟S420中,可以由終端100的比對單元120將發(fā)起權限請求的應用與在終端100上維護的應用白名單進行比對。
[0077]在步驟S430中,可以由終端100的管理單元130根據(jù)比對的結果,執(zhí)行相應的權限管理。
[0078]在一些實施例中,步驟S430可以包括:如果比對的結果是應用在應用白名單中,則許可權限請求;如果比對的結果是應用不在應用白名單中,則向終端100的用戶告警。
[0079]在一些實施例中,應用白名單可以是由終端100從服務器200獲取的。
[0080]在一些實施例中,終端100的更新單元可以定期或在啟動時更新應用白名單。
[0081]在一些實施例中,定期或在啟動時更新應用白名單包括:終端100的更新單元可以比較應用白名單的時間戳或版本號和服務器200上的應用白名單的時間戳或版本號,以確定是否需要更新應用白名單;如果需要更新,則從服務器200下載最新的應用白名單,并基于下載的應用白名單來更新終端100上的應用白名單;如果不需要更新,則結束更新過程。
[0082]在一些實施例中,基于下載的應用白名單來更新終端100上的應用白名單包括:終端100的更新單元可以備份終端100上的應用白名單;對下載的應用白名單進行完整性和有效性校驗;以及如果校驗結果正確,則用下載的應用白名單來替換終端100的上的應用白名單;如果校驗結果不正確,則結束更新過程。
[0083]在一些實施例中,終端100的更新單元可以將更新過程中的相關信息以日志方式加以保存。
[0084]在一些實施例中,步驟S410可以包括:在終端100上調用以后臺服務模式運行的監(jiān)聽模塊,以監(jiān)聽終端100上的權限請求。
[0085]在一些實施例中,應用白名單中還可以包括與各應用分別相關的“