一種基于Andriod內核的強制訪問控制方法及裝置制造方法
【專利摘要】本發明提供了一種基于Andriod內核的強制訪問控制方法及裝置,本發明針對待保護的監控客體,需要對監控主體進行二次判斷,即當監控主體為合法監控主體,且監控主體可信時,才允許監控主體訪問監控客體。由于本方法是集成至操作系統內核中的,所以惡意軟件不可能繞過該方法去攻擊監控客體,即便惡意軟件獲得超級用戶權限,只要惡意軟件不是合法監控主體也沒有訪問權利,即便合法監控主體被黑客惡意篡改,會由于監控主體不可信,而沒有訪問權利,因此本發明能夠防止所有非法或不可信的監控主體訪問監控客體,從而保護了用戶隱私不被泄露、保護系統安全。
【專利說明】—種基于Andriod內核的強制訪問控制方法及裝置
【技術領域】
[0001]本發明涉及信息安全【技術領域】,尤其涉及一種基于Andriod內核的強制訪問控制方法及裝置。
【背景技術】
[0002]現有的智能手機、平板電腦和數字電視等智能終端大部分采用Android系統,Android系統是Linux操作系統和基于Java的Dalvik平臺的聯合體,目前流行的Android系統使用的為Linux2.6內核。Linux內核采用了基于用戶的自主訪問控制機制(Discretionary Access Control, DAC), DAC中任何程序對文件享有完全的控制權,控制權由用戶自己定義。
[0003]用戶能夠自行變動應用程序對文件的訪問權限,當智能終端遭受應用層權限提升的攻擊后,即惡意軟件通過漏洞獲得超級用戶權限,當惡意軟件獲得超級用戶權限則擁有完全的訪問控制權限,進而可以控制整個操作系統,例如:獲取用戶賬號、登陸令牌、聊天記錄等隱私信息,影響操作系統的安全性。
[0004]為了提高Android系統的安全性,保護個人數據及文件不被非法軟件訪問成為亟待解決問題。
【發明內容】
[0005]本發明提供了一種基于Andriod內核的強制訪問控制方法及裝置,本發明能夠保護個人數據及文件不被非法軟件訪問,從而提高了 Android系統的安全性。
[0006]—種基于Andriod內核的強制訪問控制方法,包括:
[0007]當監控主體訪問監控客體時,依據內嵌在內核中的策略模塊判斷所述監控客體是否為待保護客體;其中所述監控主體為應用程序,所述監控客體為智能終端內部的數據信息,所述策略模塊中包括至少一個待保護客體的絕對路徑和文件名,至少一個與所述待保護客體對應的合法監控主體;
[0008]當所述監控客體為待保護客體時,從策略模塊中獲取與所述監控客體對應的合法監控主體;
[0009]判斷所述監控主體是否為合法監控主體;
[0010]當所述監控主體為合法監控主體時,則判斷所述監控主體是否可信;
[0011]當所述監控主體可信時,則允許所述監控主體訪問所述監控客體。
[0012]優選的,判斷所述監控客體是否為待保護客體包括:
[0013]獲取所述監控客體的絕對路徑和文件名;
[0014]判斷所述策略模塊內是否包含所述監控客體的絕對路徑和文件名;
[0015]當所述策略模塊內包含所述監控客體的絕對路徑和文件名時,表明所述監控客體為待保護客體;
[0016]當所述策略模塊內未包含所述監控客體的絕對路徑和文件名時,表明所述監控客體不為待保護客體。
[0017]優選的,在判斷所述監控主體是否可信之前,還包括:
[0018]利用摘要算法計算所述監控主體的第一摘要信息;
[0019]在存儲模塊中獲取預先存儲的所述監控主體的第二摘要信息,所述第二摘要信息為預先采用同一摘要算法計算得到的;
[0020]將所述第一摘要信息和第二摘要信息進行對比,獲得對比結果,其中當所述第一摘要信息和第二摘要信息一致,則表明所述監控主體可信,當所述第一摘要信息和第二摘要信息不一致,則表明所述監控主體不可信;
[0021]將所述對比結果存儲至監控主體中。
[0022]優選的,在判斷所述監控主體是否可信之前,還包括:
[0023]利用安全散列算法SHA計算所述監控主體的第一 HASH值;
[0024]在存儲模塊中獲取預先存儲的所述監控主體的第二 HASH值,所述第二 HASH值為預先采用SHA算法計算得到的;
[0025]將所述第一 HASH值和第二 HASH值進行對比,并獲得對比結果,其中當所述第一HASH值和第二 HASH值一致,則表明所述監控主體可信,當所述第一 HASH值和第二 HASH值不一致,則表明所述監控主體不可信;
[0026]將所述對比結果存儲至監控主體中。
[0027]優選的,判斷所述監控主體是否可信包括:
[0028]獲取所述監控主體中的對比結果;
[0029]依據所述對比結果判定所述監控主體是否可信。
[0030]優選的,采用以下步驟更新所述存儲模塊:
[0031]接收待更新內容和數字簽名信息;
[0032]對接收到的數字簽名信息進行公鑰解密獲得第三摘要信息;
[0033]對所述待更新內容利用第二摘要算法獲得第四摘要信息;
[0034]判斷所述第三摘要信息和第四摘要信息是否一致;
[0035]當第三摘要信息和第四摘要信息一致,則判斷所述監控主體第二版本號是否大于第一版本號;
[0036]當所述監控主體第二版本號大于第一版本號時,則將待更新內容寫入存儲模塊內。
[0037]優選的,數字簽名信息的獲得過程包括:
[0038]獲得待更新內容;
[0039]將待更新內容利用所述第二摘要算法生成第三摘要信息;
[0040]利用私鑰對所述第三摘要信息進行數字簽名獲得數字簽名信息;
[0041 ] 將所述待更新內容和數字簽名信息進行發送。
[0042]一種基于Andriod內核的強制訪問控制裝置,包括:
[0043]第一判斷單元,用于當監控主體訪問監控客體時,依據內嵌在內核中的策略模塊判斷所述監控客體是否為待保護客體;其中所述監控主體為應用程序,所述監控客體為智能終端內部的數據信息,所述策略模塊中包括至少一個待保護客體的絕對路徑和文件名,至少一個與所述待保護客體對應的合法監控主體;[0044]獲取單元,用于當所述監控客體為待保護客體時,從策略模塊中獲取與所述監控客體對應的合法監控主體;
[0045]第二判斷單元,用于判斷所述監控主體是否為合法監控主體;當所述監控主體為合法監控主體時,則判斷所述監控主體是否可信;
[0046]訪問單元,用于當所述監控主體可信時,則允許所述監控主體訪問所述監控客體。
[0047]優選的,還包括:
[0048]獲取對比結果單元,用于利用摘要算法計算所述監控主體的第一摘要信息;在存儲模塊中獲取預先存儲的所述監控主體的第二摘要信息,所述第二摘要信息為預先采用同一摘要算法計算得到的;將所述第一摘要信息和第二摘要信息進行對比,獲得對比結果,其中當所述第一摘要信息和第二摘要信息一致,則表明所述監控主體可信,當所述第一摘要信息和第二摘要信息不一致,則表明所述監控主體不可信;將所述對比結果存儲至監控主體中。
[0049]優選的,還包括:
[0050]更新單元,用于接收待更新內容和數字簽名信息;對接收到的數字簽名信息進行公鑰解密獲得第三摘要信息;對所述待更新內容利用第二摘要算法獲得第四摘要信息;判斷所述第三摘要信息和第四摘要信息是否一致;當第三摘要信息和第四摘要信息一致,則判斷所述監控主體第二版本號是否大于第一版本號;當所述監控主體第二版本號大于第一版本號時,則將待更新內容寫入存儲模塊內。
[0051]優選的,還包括:
[0052]獲取簽名單元,用于獲得待更新內容;將待更新內容利用所述第二摘要算法生產第三摘要信息;利用私鑰對所述第三摘要信息進行數字簽名獲得數字簽名信息;將所述待更新內容和數字簽名信息進行發送。
[0053]本發明提供了一種基于Andriod內核的強制訪問控制方法及裝置,本發明針對待保護的監控客體,需要對監控主體進行二次判斷,即當監控主體為合法監控主體,且監控主體可信時,才允許監控主體訪問監控客體。由于本方法和策略模塊都是集成至操作系統內核中的,無法通過外界配置文件進行修改,無法繞過。所以惡意軟件不可能繞過本方法去攻擊監控客體,即便惡意軟件獲得超級用戶權限,只要惡意軟件不是合法監控主體也沒有訪問權利,即便合法監控主體被黑客惡意篡改,也會由于監控主體不可信,而沒有訪問權利,因此本發明能夠防止所有非法或不可信的監控主體訪問監控客體,從而保護了用戶隱私不被泄露、保護系統安全。
【專利附圖】
【附圖說明】
[0054]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
[0055]圖1為本發明公開的一種基于Andriod內核的強制訪問控制方法的流程圖;
[0056]圖2為本發明公開的又一種基于Andriod內核的強制訪問控制方法的流程圖;
[0057]圖3為本發明公開的又一種基于Andriod內核的強制訪問控制方法的流程圖;[0058]圖4為本發明公開的又一種基于Andriod內核的強制訪問控制方法的流程圖;
[0059]圖5為本發明公開的又一種基于Andriod內核的強制訪問控制方法的流程圖;
[0060]圖6為本發明公開的又一種基于Andriod內核的強制訪問控制方法的流程圖;
[0061]圖7為本發明公開的一種基于Andriod內核的強制訪問控制裝置的流程圖;
[0062]圖8為本發明公開的一種基于Andriod內核的強制訪問控制裝置的結構示意圖。
【具體實施方式】
[0063]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0064]如圖1所示,本發明提供了一種基于Andriod內核的強制訪問控制方法,本方法應用于終端內部的內核,包括:
[0065]步驟SlOl:當監控主體訪問監控客體時,依據內嵌在內核中的策略模塊判斷所述監控客體是否為待保護客體;其中所述監控主體為應用程序,所述監控客體為智能終端內部的數據信息,所述策略模塊中包括至少一個待保護客體的絕對路徑和文件名,至少一個與所述待保護客體對應的合法監控主體;
[0066]當軟件程序需要訪問終端內部的數據信息時,例如:文件、數據存儲內容或其他內容,為了防止惡意軟件對用戶的隱私文件或系統的重要內容進行攻擊,所以本發明需要監控軟件程序和終端內部的數據信息,防止惡意軟件訪問終端內部的重要數據信息,因此將軟件程序稱為監控主體,將終端內部的數據信息稱為監控客體。
[0067]當監控主體訪問監控客體時,首先需要判斷監控客體是否為待保護的客體,當監控客體不是待保護的客體時,則退出程序,當監控客體為待保護客體時,才啟動保護程序進行后續過程。
[0068]步驟S102:當所述監控客體為待保護客體時,從策略模塊中獲取與所述監控客體對應的合法監控主體;
[0069]當監控客體時待保護客體時,則后續過程會判斷監控主體是否合法,只有合法的監控主體才能夠具有訪問監控客體的權利,因此需要在策略模塊中獲取與所述監控客體對應的合法監控主體,開發人員根據安全需求預先決定哪些軟件程序具有訪問該監控客體的權利,便將這些軟件程序的信息,編譯到內核的策略模塊中。
[0070]步驟S103:判斷所述監控主體是否為合法監控主體;
[0071]合法監控主體的數量可以有多個,只有合法的監控主體才能有權利訪問監控客體,非法的監控主體不具有訪問權利,當策略模塊中不包括監控主體時則表明該監控主體是非法的,此時則反饋錯誤信號進而退出程序,禁止非法監控主體訪問待保護客體。
[0072]步驟S104:當所述監控主體為合法監控主體時,則判斷所述監控主體是否可信;
[0073]當監控主體是合法的監控主體時,判斷監控主體是否可信,當該監控主體未被修改過的時候,該監控主體是善意軟件不會對系統進行攻擊,當監控主體被修改后,監控主體是否還是善意軟件便不確定,即當監控主體被修改后,其中可能包括木馬或病毒等其他內容,為了保證系統安全,只要監控主體被修改便判定監控主體不可信。[0074]步驟S105:當所述監控主體可信時,則允許所述監控主體訪問所述監控客體。
[0075]當監控主體可信時,才會允許監控主體訪問監控客體。即當監控客體為待保護客體時,當且僅當監控主體合法且可信時,才允許監控主體訪問監控客體,保護了監控客體的安全。監控主體不可信則退出程序。
[0076]經過上述實施例可知,本發明針對待保護的監控客體,需要對監控主體進行二次判斷,即當監控主體為合法監控主體,且監控主體可信時,才允許監控主體訪問監控客體。由于本方法是集成至操作系統內核中的,所以惡意軟件不可能繞過該方法去攻擊監控客體,即便惡意軟件獲得超級用戶權限,只要惡意軟件不是合法監控主體也沒有訪問權利,即便合法監控主體被黑客惡意篡改,會由于監控主體不可信,而沒有訪問權利,因此本發明能夠防止所有非法或不可信的監控主體訪問監控客體,從而保護了用戶隱私不被泄露、保護系統安全。
[0077]在上述實施例的步驟SlOl中,為了表明哪些監控客體是需要保護的監控客體,策略模塊中預先存儲至少一個待保護客體的絕對路徑和文件名,當然有多個待保護客體時,則預先存儲多個待保護客體的絕對路徑和文件名,并且絕對路徑和文件名一一對應存儲。由于終端中可能有多個相同的文件名,為了唯一確定一個文件,采用絕對路徑和文件名一并確定待保護客體,由于同一絕對路徑下的文件名不可能是相同的,因此依據絕對路徑和文件名便可唯一確定一個待保護客體。
[0078]如圖2所示,下面介紹判斷所述監控客體是否為待保護客體的具體過程。
[0079]步驟S201:獲取所述監控客體的絕對路徑和文件名;
[0080]當監控主體訪問監控客體時,內核獲取所述監控客體的絕對路徑和文件名。
[0081]步驟S202:判斷所述策略模塊內是否包含所述監控客體的絕對路徑和文件名,所述策略模塊中預先存儲有至少一個與絕對路徑對應的文件名;
[0082]將上述步驟獲取所述監控客體的絕對路徑和文件名與策略模塊中預先存儲的絕對路徑和文件名進行一一對比,即相互匹配,當策略模塊中包括所述監控客體的絕對路徑,也包括與所述監控客體的絕對路徑對應的文件名時,則表明所述監控客體是在策略模塊中預先存儲的待保護客體。
[0083]步驟S203:當所述策略模塊內包含所述監控客體的絕對路徑和文件名時,表明所述監控客體為待保護客體;當監控客體為待保護客體,則執行后續過程。
[0084]步驟S204:當所述策略模塊內未包含所述監控客體的絕對路徑和文件名時,表明所述監控客體不為待保護客體。當監控客體不是待保護客體則無需進行監控。
[0085]在圖1所示的實施例中,步驟S104中判斷監控主體是否可信具體通過獲取所述監控主體中的對比結果;依據所述對比結果判定所述監控主體是否可信。下面介紹對比結果是如何獲得的,如圖3所示,包括以下步驟:
[0086]步驟S301:利用摘要算法計算所述監控主體的第一摘要信息;
[0087]在本方法執行之前,項目開發人員會預先對合法監控主體按摘要算法進行計算,獲得第二摘要信息,當合法監控主體有多個時,則獲取多個第二摘要信息,并將多個第二摘要信息存儲至存儲模塊中;為了敘述方便,本實施例以一個第二摘要信息為例進行說明。
[0088]當監控主體訪問監控客體時,會將該監控主體按同樣的摘要算法進行計算,獲得第一摘要信息,只要監控主體的內容不被修改,則兩者的摘要信息一致,只要監控主體的內容被修改一位,則兩者的摘要信息不一致的。
[0089]步驟S302:在存儲模塊中獲取預先存儲的所述監控主體的第二摘要信息,所述第二摘要信息為預先采用同一摘要算法計算得到的;
[0090]步驟S303:將所述第一摘要信息和第二摘要信息進行對比,獲得對比結果,其中當所述第一摘要信息和第二摘要信息一致,則表明所述監控主體可信,當所述第一摘要信息和第二摘要信息不一致,則表明所述監控主體不可信;
[0091]步驟S304:將所述對比結果存儲至監控主體中。優選的,可以存儲至監控主體的結構體中。
[0092]優選的,可以將對比結果以一個標志位的形式存儲至監控主體的結構體中,當標志位為“I”時,表明監控主體可信,當標志位為“O”時表明監控主體不可信,或者當標志位為“O”時,表明監控主體可信,當標志位為“I”時表明監控主體不可信。
[0093]下面介紹獲取對比結果的一個具體實例,如圖4所示,包括以下步驟:
[0094]步驟S401:利用安全散列算法Secure Hash Algorithm, SHA)計算所述監控主體的第一 HASH值;HASH即散列的意思,此HASH值為利用安全散列算法得到的結果。
[0095]步驟S402:在存儲模塊中獲取預先存儲的所述監控主體的第二 HASH值,所述第二HASH值為預先采用SHA算法計算得到的;
[0096]步驟S403:將所述第一 HASH值和第二 HASH值進行對比,并獲得對比結果,其中當所述第一 HASH值和第二 HASH值一致,則表明所述監控主體可信,當所述第一 HASH值和第二 HASH值不一致,則表明所述監控主體不可信;
[0097]步驟S404:將所述對比結果存儲至監控主體中。
[0098]上述步驟與圖3所示的內容大體一致,在此不再贅述。
[0099]在以上實施例中講述了策略模塊具有許多信息,具體包括:待保護客體的絕對路徑和文件名、與待保護客體對應的合法監控主體;上述存儲模塊包含與合法監控主體對應的編號、版本號和摘要信息,策略模塊和存儲模塊的內容是圖1實施例的判斷依據,圖1實施例的判斷訪問主體可信過程需依據存儲模塊的內容進行,因此存儲模塊的內容至關重要。
[0100]當需要更新存儲模塊的內容時,即合法監控主體需要改變時,為了保證存儲模塊中數據的安全性,本發明提供了更新存儲模塊的步驟,如圖5所示,具體包括以下步驟:
[0101]步驟S501:獲得待更新內容;
[0102]為了防止惡意軟件更新存儲模塊,本發明對待更新內容采用數字簽名驗證和版本控制等方式。其中,待更新內容包括監控訪問主體的編號、版本號和HASH值等信息;數字簽名是對待更新數據使用私鑰進行簽名,保證更新來源于安全的遠端服務器;版本控制是保證每次更新的是新版本,并驗證更新過程的新鮮性。當監控主體更新時,遠端服務器收到更新安全存儲需求時,獲得待更新數據。
[0103]步驟S502:將待更新內容利用所述第二摘要算法生成第三摘要信息;
[0104]步驟S503:利用私鑰對所述第三摘要信息進行數字簽名獲得數字簽名信息;
[0105]步驟S504:將所述待更新內容和數字簽名信息進行發送。
[0106]以上內容為將待更新內容進行數字簽名,并將待更新內容和數字簽名信息一并發送至更新安全存儲客戶端,轉發給內核的安全存儲管理模塊,由安全存儲管理模塊進行判斷,待更新內容是否合格,是否將待更新內容存儲至存儲模塊中。
[0107]如圖6所示,安全存儲管理模塊執行以下步驟,包括:
[0108]步驟S601:接收待更新內容和數字簽名信息;
[0109]步驟S602:對接收到的數字簽名信息進行公鑰解密獲得第三摘要信息;
[0110]步驟S603:對所述待更新內容利用第二摘要算法獲得第四摘要信息;
[0111]步驟S604:判斷所述第三摘要信息和第四摘要信息是否一致,第三摘要信息和第四摘要信息一致則表明發送待更新內容的軟件程序可靠;當第三摘要信息和第四摘要信息不一致,則退出程序。
[0112]步驟S605:當第三摘要信息和第四摘要信息一致時,進一步判斷所述監控主體第二版本號是否大于第一版本號。
[0113]讀取安全存儲模塊中的數據獲得監控主體的第一版本號,解析接收到的待更新數據得到監控主體的第二版本號,當第二版本號大于第一版本號時,則說明待更新版本是監控主體的新版本及更新過程是新鮮的;當第二版本號不大于第一版本號時,則退出程序。
[0114]步驟S606:當第二版本號大于第一版本號時,則將待更新內容寫入存儲模塊內。
[0115]本方法保證了存儲模塊更新過程的準確性和新鮮性,進一步保證了內核依據策略模塊和存儲模塊模塊,進行判斷是否允許監控主體訪問監控客體,保證了合法且可信的監控主體訪問監控客體。
[0116]下面介紹基于Android平臺的內核具體實施例:
[0117]以主體(記為A)打開客體文件/data/tpm/system.data (記為F)為例。
[0118]Linux系統提供了用以執行進程的系統調用函數SyS_exeCVe(),系統調用函數通過調用具體執行程序函數do_execve()實現。在執行函數do_execve O中,首先是打開文件函數0pen_exec O打開A,并檢查其有效性;接著進一步檢查A是否是可執行文件,最后通過查詢函數search_binary_handler O查詢能夠處理該可執行文件格式的處理函數,并調用相應的加載函數load_libary()進行加載。
[0119]在要加載的過程中,Linux內核進程監控模塊監控主體函數mac_monitor_subject O監控到這一操作,根據策略匹配函數mac_match_policy O確認當前進程A是否在策略模塊中所定義的訪問主體之列。如果是,度量模塊將通過計算HASH值函數mac_calc_hash O調用SHA算法模塊計算其HASH值,并從安全存儲模塊中讀取A的HASH值,兩者進行比較,結果保存在訪問主體結構體struct mac_subject_entry中。
[0120]當A調用系統函數open O打開F時,Linux內核執行系統調用函數sys_execve O ,其通過調用具體執行程序函數do_execve()實現打開功能。在執行函數do_execve O中,通過調用打開文件函數open_exec()打開F,進一步調用do_filp_open O來執行。在打開執行過程中,Linux內核進程監控模塊客體監控函數mac_monitor_object O監控到這一操作,根據策略匹配函數mac_match_policy()依據絕對路徑和文件名等規則確認F是策略模塊中所定義的客體。然后進入審計階段,審計模塊的審計訪問主體函數mac_audit_sub ject O首先獲得訪問F的當前主體A的相關信息,策略規則匹配函數mac_match_policy O依據訪問規則確認當前主體A是否在允許訪問該客體F的范圍之列,然后查看主體結構體structmac_subject_entry中的可信標簽,確認當前主體A合法后才允許訪問F,否則返回該操作無權限。[0121]下面介紹更新存儲模塊的數據的具體實施例:
[0122]當監控訪問主體更新時,相關模塊需做(但不限于)以下工作:
[0123]①更新安全存儲客戶端向遠端服務器(記為A)發出更新請求;
[0124]②A收到更新請求后,做以下工作:
[0125]首先生成消息摘要,將要更新的數據Data(包括訪問主體編號、版本及HASH值)做HASH運算,產生消息摘要HASH [Data];
[0126]然后是數字簽名,用RSA私鑰對摘要值做數據簽名運算得RSAPrivateKey [HASH [Data]];
[0127]最后將包含數據Data及簽名結果RSAPHvateKey [HASH [Data]]的數據包即Data RSAPrivateKey[HASH[Data]]發送給更新安全存儲客戶端,再轉發給安全存儲管理模塊(記為B),其中更新安全存儲客戶端作為A和B之間通信的橋梁。
[0128]③B收到更新數據包之后,做以下工作:
[0129]首先簽名驗證,對接收到的數據Data做HASH運算,得到HASH[Data];
[0130]然后對接收到的數據RSAMvatdtey[HASH[Data]]做RSA公鑰解密運算RSApublidiey [HASH [Data]]得到 HASH [Data] *,把 HASH [Data]和 HASH [Data] * 二者相比較,一致則說明更新數據來自于合法的遠端服務器,向下繼續執行,否則返回錯誤;
[0131]最后版本驗證,更新安全存儲數據。解析接收到數據Data得到訪問主體的版本號V,與安全存儲模塊中單調計數器的值V’比較,如果V>V’,則更新Data,將更新Data寫入安全存儲模塊;否則拒絕更新,返回錯誤。
[0132]如圖7所示,本發明一種基于Andriod內核的強制訪問控制裝置,包括:
[0133]第一判斷單元701,用于當監控主體訪問監控客體時,依據內嵌在內核中的策略模塊判斷所述監控客體是否為待保護客體;其中所述監控主體為應用程序,所述監控客體為智能終端內部的數據信息,所述策略模塊中包括至少一個待保護客體的絕對路徑和文件名,至少一個與所述待保護客體對應的合法監控主體;
[0134]獲取單元702,用于當所述監控客體為待保護客體時,從策略模塊中獲取與所述監控客體對應的合法監控主體;
[0135]第二判斷單元703,用于判斷所述監控主體是否為合法監控主體;當所述監控主體為合法監控主體時,則判斷所述監控主體是否可信;訪問單元704,用于當所述監控主體可信時,則允許所述監控主體訪問所述監控客體。
[0136]如圖7所示,本發明提供的一種基于Andriod內核的強制訪問控制裝置還包括:
[0137]獲取對比結果單元705,用于利用摘要算法計算所述監控主體的第一摘要信息;在存儲模塊中獲取預先存儲的所述監控主體的第二摘要信息,所述第二摘要信息為預先采用同一摘要算法計算得到的;將所述第一摘要信息和第二摘要信息進行對比,獲得對比結果,其中當所述第一摘要信息和第二摘要信息一致,則表明所述監控主體可信,當所述第一摘要信息和第二摘要信息不一致,則表明所述監控主體不可信;將所述對比結果存儲至監控主體中。
[0138]如圖8所示,本發明提供的基于Andriod內核的強制訪問控制裝置,還包括:
[0139]更新單元706,用于接收待更新內容和數字簽名信息;對接收到的數字簽名信息進行公鑰解密獲得第三摘要信息;對所述待更新內容利用第二摘要算法獲得第四摘要信息;判斷所述第三摘要信息和第四摘要信息是否一致;當第三摘要信息和第四摘要信息一致,則判斷所述監控主體第二版本號是否大于第一版本號;當第二版本號大于第一版本號時,則將待更新內容寫入存儲模塊內。
[0140]獲取簽名單元707,用于獲得待更新內容;將待更新內容利用所述第二摘要算法生產第三摘要信息;利用私鑰對所述第三摘要信息進行數字簽名獲得數字簽名信息;將所述待更新內容和數字簽名信息進行發送。
[0141]本實施例方法所述的功能如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算設備可讀取存儲介質中。基于這樣的理解,本發明實施例對現有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現出來,該軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算設備(可以是個人計算機,服務器,移動計算設備或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM, Read-Only Memory)、隨機存取存儲器(RAM, Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0142]本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。
[0143]對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其它實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【權利要求】
1.一種基于Andr1d內核的強制訪問控制方法,其特征在于,包括: 當監控主體訪問監控客體時,依據內嵌在內核中的策略模塊判斷所述監控客體是否為待保護客體;其中所述監控主體為應用程序,所述監控客體為智能終端內部的數據信息,所述策略模塊中包括至少一個待保護客體的絕對路徑和文件名,至少一個與所述待保護客體對應的合法監控主體; 當所述監控客體為待保護客體時,從策略模塊中獲取與所述監控客體對應的合法監控主體; 判斷所述監控主體是否為合法監控主體; 當所述監控主體為合法監控主體時,則判斷所述監控主體是否可信; 當所述監控主體可信時,則允許所述監控主體訪問所述監控客體。
2.如權利要求1所述的方法,其特征在于,判斷所述監控客體是否為待保護客體包括: 獲取所述監控客體的絕對路徑和文件名; 判斷所述策略模塊內是否包含所述監控客體的絕對路徑和文件名; 當所述策略模塊內包含所述監控客體的絕對路徑和文件名時,表明所述監控客體為待保護客體; 當所述策略模塊內未包含所述監控客體的絕對路徑和文件名時,表明所述監控客體不為待保護客體。
3.如權利要求1所述的方法,其特征在于,在判斷所述監控主體是否可信之前,還包括: 利用摘要算法計算所述監控主體的第一摘要信息; 在存儲模塊中獲取預先存儲的所述監控主體的第二摘要信息,所述第二摘要信息為預先采用同一摘要算法計算得到的; 將所述第一摘要信息和第二摘要信息進行對比,獲得對比結果,其中當所述第一摘要信息和第二摘要信息一致,則表明所述監控主體可信,當所述第一摘要信息和第二摘要信息不一致,則表明所述監控主體不可信; 將所述對比結果存儲至監控主體中。
4.如權利要求3所述的方法,其特征在于,在判斷所述監控主體是否可信之前,還包括: 利用安全散列算法SHA計算所述監控主體的第一 HASH值; 在存儲模塊中獲取預先存儲的所述監控主體的第二 HASH值,所述第二 HASH值為預先采用SHA算法計算得到的; 將所述第一 HASH值和第二 HASH值進行對比,并獲得對比結果,其中當所述第一 HASH值和第二 HASH值一致,則表明所述監控主體可信,當所述第一 HASH值和第二 HASH值不一致,則表明所述監控主體不可信; 將所述對比結果存儲至監控主體中。
5.如權利要求3或4所述的方法,其特征在于,判斷所述監控主體是否可信包括: 獲取所述監控主體中的對比結果; 依據所述對比結果判定所述監控主體是否可信。
6.如權利要求1所述的方法,其特征在于,采用以下步驟更新所述存儲模塊:接收待更新內容和數字簽名信息; 對接收到的數字簽名信息進行公鑰解密獲得第三摘要信息; 對所述待更新內容利用第二摘要算法獲得第四摘要信息; 判斷所述第三摘要信息和第四摘要信息是否一致; 當第三摘要信息和第四摘要信息一致,則判斷所述監控主體第二版本號是否大于第一版本號; 當所述監控主體第二版本號大于第一版本號時,則將待更新內容寫入存儲模塊內。
7.如權利要求6所述的方法,其特征在于,數字簽名信息的獲得過程包括: 獲得待更新內容; 將待更新內容利用所述第二摘要算法生成第三摘要信息; 利用私鑰對所述第三摘要信息進行數字簽名獲得數字簽名信息; 將所述待更新內容和數字簽名信息進行發送。
8.一種基于Andr1d內核的強制訪問控制裝置,其特征在于,包括: 第一判斷單元,用于當監控主體訪問監控客體時,依據內嵌在內核中的策略模塊判斷所述監控客體是否為待保護客體;其中所述監控主體為應用程序,所述監控客體為智能終端內部的數據信息,所述策略模塊中包括至少一個待保護客體的絕對路徑和文件名,至少一個與所述待保護客體對應的合法監控主體; 獲取單元,用于當所述監控客體為待保護客體時,從策略模塊中獲取與所述監控客體對應的合法監控主體; 第二判斷單元,用于判斷所述監控主體是否為合法監控主體;當所述監控主體為合法監控主體時,則判斷所述監控主體是否可信; 訪問單元,用于當所述監控主體可信時,則允許所述監控主體訪問所述監控客體。
9.如權利要求8所述的裝置,其特征在于,還包括: 獲取對比結果單元,用于利用摘要算法計算所述監控主體的第一摘要信息;在存儲模塊中獲取預先存儲的所述監控主體的第二摘要信息,所述第二摘要信息為預先采用同一摘要算法計算得到的;將所述第一摘要信息和第二摘要信息進行對比,獲得對比結果,其中當所述第一摘要信息和第二摘要信息一致,則表明所述監控主體可信,當所述第一摘要信息和第二摘要信息不一致,則表明所述監控主體不可信;將所述對比結果存儲至監控主體中。
10.如權利要求8所述的裝置,其特征在于,還包括: 更新單元,用于接收待更新內容和數字簽名信息;對接收到的數字簽名信息進行公鑰解密獲得第三摘要信息;對所述待更新內容利用第二摘要算法獲得第四摘要信息;判斷所述第三摘要信息和第四摘要信息是否一致;當第三摘要信息和第四摘要信息一致,則判斷所述監控主體第二版本號是否大于第一版本號;當所述監控主體第二版本號大于第一版本號時,則將待更新內容寫入存儲模塊內。
11.如權利要求10所述的裝置,其特征在于,還包括: 獲取簽名單元,用于獲得待更新內容;將待更新內容利用所述第二摘要算法生產第三摘要信息;利用私鑰對所述第三摘要信息進行數字簽名獲得數字簽名信息;將所述待更新內容和數字簽名信息進行發送。
【文檔編號】G06F9/44GK104035787SQ201410309830
【公開日】2014年9月10日 申請日期:2014年7月1日 優先權日:2014年7月1日
【發明者】鄒家須, 余小龍, 孫卓, 李新國, 宮俊, 黃華松, 趙寶龍 申請人:深圳數字電視國家工程實驗室股份有限公司