两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于Andriod內(nèi)核的強制訪問控制方法及裝置制造方法

文檔序號:6551902閱讀:142來源:國知局
一種基于Andriod內(nèi)核的強制訪問控制方法及裝置制造方法
【專利摘要】本發(fā)明提供了一種基于Andriod內(nèi)核的強制訪問控制方法及裝置,本發(fā)明針對待保護的監(jiān)控客體,需要對監(jiān)控主體進行二次判斷,即當監(jiān)控主體為合法監(jiān)控主體,且監(jiān)控主體可信時,才允許監(jiān)控主體訪問監(jiān)控客體。由于本方法是集成至操作系統(tǒng)內(nèi)核中的,所以惡意軟件不可能繞過該方法去攻擊監(jiān)控客體,即便惡意軟件獲得超級用戶權(quán)限,只要惡意軟件不是合法監(jiān)控主體也沒有訪問權(quán)利,即便合法監(jiān)控主體被黑客惡意篡改,會由于監(jiān)控主體不可信,而沒有訪問權(quán)利,因此本發(fā)明能夠防止所有非法或不可信的監(jiān)控主體訪問監(jiān)控客體,從而保護了用戶隱私不被泄露、保護系統(tǒng)安全。
【專利說明】—種基于Andriod內(nèi)核的強制訪問控制方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息安全【技術(shù)領(lǐng)域】,尤其涉及一種基于Andriod內(nèi)核的強制訪問控制方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)有的智能手機、平板電腦和數(shù)字電視等智能終端大部分采用Android系統(tǒng),Android系統(tǒng)是Linux操作系統(tǒng)和基于Java的Dalvik平臺的聯(lián)合體,目前流行的Android系統(tǒng)使用的為Linux2.6內(nèi)核。Linux內(nèi)核采用了基于用戶的自主訪問控制機制(Discretionary Access Control, DAC), DAC中任何程序?qū)ξ募碛型耆目刂茩?quán),控制權(quán)由用戶自己定義。
[0003]用戶能夠自行變動應(yīng)用程序?qū)ξ募脑L問權(quán)限,當智能終端遭受應(yīng)用層權(quán)限提升的攻擊后,即惡意軟件通過漏洞獲得超級用戶權(quán)限,當惡意軟件獲得超級用戶權(quán)限則擁有完全的訪問控制權(quán)限,進而可以控制整個操作系統(tǒng),例如:獲取用戶賬號、登陸令牌、聊天記錄等隱私信息,影響操作系統(tǒng)的安全性。
[0004]為了提高Android系統(tǒng)的安全性,保護個人數(shù)據(jù)及文件不被非法軟件訪問成為亟待解決問題。

【發(fā)明內(nèi)容】

[0005]本發(fā)明提供了一種基于Andriod內(nèi)核的強制訪問控制方法及裝置,本發(fā)明能夠保護個人數(shù)據(jù)及文件不被非法軟件訪問,從而提高了 Android系統(tǒng)的安全性。
[0006]—種基于Andriod內(nèi)核的強制訪問控制方法,包括:
[0007]當監(jiān)控主體訪問監(jiān)控客體時,依據(jù)內(nèi)嵌在內(nèi)核中的策略模塊判斷所述監(jiān)控客體是否為待保護客體;其中所述監(jiān)控主體為應(yīng)用程序,所述監(jiān)控客體為智能終端內(nèi)部的數(shù)據(jù)信息,所述策略模塊中包括至少一個待保護客體的絕對路徑和文件名,至少一個與所述待保護客體對應(yīng)的合法監(jiān)控主體;
[0008]當所述監(jiān)控客體為待保護客體時,從策略模塊中獲取與所述監(jiān)控客體對應(yīng)的合法監(jiān)控主體;
[0009]判斷所述監(jiān)控主體是否為合法監(jiān)控主體;
[0010]當所述監(jiān)控主體為合法監(jiān)控主體時,則判斷所述監(jiān)控主體是否可信;
[0011]當所述監(jiān)控主體可信時,則允許所述監(jiān)控主體訪問所述監(jiān)控客體。
[0012]優(yōu)選的,判斷所述監(jiān)控客體是否為待保護客體包括:
[0013]獲取所述監(jiān)控客體的絕對路徑和文件名;
[0014]判斷所述策略模塊內(nèi)是否包含所述監(jiān)控客體的絕對路徑和文件名;
[0015]當所述策略模塊內(nèi)包含所述監(jiān)控客體的絕對路徑和文件名時,表明所述監(jiān)控客體為待保護客體;
[0016]當所述策略模塊內(nèi)未包含所述監(jiān)控客體的絕對路徑和文件名時,表明所述監(jiān)控客體不為待保護客體。
[0017]優(yōu)選的,在判斷所述監(jiān)控主體是否可信之前,還包括:
[0018]利用摘要算法計算所述監(jiān)控主體的第一摘要信息;
[0019]在存儲模塊中獲取預(yù)先存儲的所述監(jiān)控主體的第二摘要信息,所述第二摘要信息為預(yù)先采用同一摘要算法計算得到的;
[0020]將所述第一摘要信息和第二摘要信息進行對比,獲得對比結(jié)果,其中當所述第一摘要信息和第二摘要信息一致,則表明所述監(jiān)控主體可信,當所述第一摘要信息和第二摘要信息不一致,則表明所述監(jiān)控主體不可信;
[0021]將所述對比結(jié)果存儲至監(jiān)控主體中。
[0022]優(yōu)選的,在判斷所述監(jiān)控主體是否可信之前,還包括:
[0023]利用安全散列算法SHA計算所述監(jiān)控主體的第一 HASH值;
[0024]在存儲模塊中獲取預(yù)先存儲的所述監(jiān)控主體的第二 HASH值,所述第二 HASH值為預(yù)先采用SHA算法計算得到的;
[0025]將所述第一 HASH值和第二 HASH值進行對比,并獲得對比結(jié)果,其中當所述第一HASH值和第二 HASH值一致,則表明所述監(jiān)控主體可信,當所述第一 HASH值和第二 HASH值不一致,則表明所述監(jiān)控主體不可信;
[0026]將所述對比結(jié)果存儲至監(jiān)控主體中。
[0027]優(yōu)選的,判斷所述監(jiān)控主體是否可信包括:
[0028]獲取所述監(jiān)控主體中的對比結(jié)果;
[0029]依據(jù)所述對比結(jié)果判定所述監(jiān)控主體是否可信。
[0030]優(yōu)選的,采用以下步驟更新所述存儲模塊:
[0031]接收待更新內(nèi)容和數(shù)字簽名信息;
[0032]對接收到的數(shù)字簽名信息進行公鑰解密獲得第三摘要信息;
[0033]對所述待更新內(nèi)容利用第二摘要算法獲得第四摘要信息;
[0034]判斷所述第三摘要信息和第四摘要信息是否一致;
[0035]當?shù)谌畔⒑偷谒恼畔⒁恢?,則判斷所述監(jiān)控主體第二版本號是否大于第一版本號;
[0036]當所述監(jiān)控主體第二版本號大于第一版本號時,則將待更新內(nèi)容寫入存儲模塊內(nèi)。
[0037]優(yōu)選的,數(shù)字簽名信息的獲得過程包括:
[0038]獲得待更新內(nèi)容;
[0039]將待更新內(nèi)容利用所述第二摘要算法生成第三摘要信息;
[0040]利用私鑰對所述第三摘要信息進行數(shù)字簽名獲得數(shù)字簽名信息;
[0041 ] 將所述待更新內(nèi)容和數(shù)字簽名信息進行發(fā)送。
[0042]一種基于Andriod內(nèi)核的強制訪問控制裝置,包括:
[0043]第一判斷單元,用于當監(jiān)控主體訪問監(jiān)控客體時,依據(jù)內(nèi)嵌在內(nèi)核中的策略模塊判斷所述監(jiān)控客體是否為待保護客體;其中所述監(jiān)控主體為應(yīng)用程序,所述監(jiān)控客體為智能終端內(nèi)部的數(shù)據(jù)信息,所述策略模塊中包括至少一個待保護客體的絕對路徑和文件名,至少一個與所述待保護客體對應(yīng)的合法監(jiān)控主體;[0044]獲取單元,用于當所述監(jiān)控客體為待保護客體時,從策略模塊中獲取與所述監(jiān)控客體對應(yīng)的合法監(jiān)控主體;
[0045]第二判斷單元,用于判斷所述監(jiān)控主體是否為合法監(jiān)控主體;當所述監(jiān)控主體為合法監(jiān)控主體時,則判斷所述監(jiān)控主體是否可信;
[0046]訪問單元,用于當所述監(jiān)控主體可信時,則允許所述監(jiān)控主體訪問所述監(jiān)控客體。
[0047]優(yōu)選的,還包括:
[0048]獲取對比結(jié)果單元,用于利用摘要算法計算所述監(jiān)控主體的第一摘要信息;在存儲模塊中獲取預(yù)先存儲的所述監(jiān)控主體的第二摘要信息,所述第二摘要信息為預(yù)先采用同一摘要算法計算得到的;將所述第一摘要信息和第二摘要信息進行對比,獲得對比結(jié)果,其中當所述第一摘要信息和第二摘要信息一致,則表明所述監(jiān)控主體可信,當所述第一摘要信息和第二摘要信息不一致,則表明所述監(jiān)控主體不可信;將所述對比結(jié)果存儲至監(jiān)控主體中。
[0049]優(yōu)選的,還包括:
[0050]更新單元,用于接收待更新內(nèi)容和數(shù)字簽名信息;對接收到的數(shù)字簽名信息進行公鑰解密獲得第三摘要信息;對所述待更新內(nèi)容利用第二摘要算法獲得第四摘要信息;判斷所述第三摘要信息和第四摘要信息是否一致;當?shù)谌畔⒑偷谒恼畔⒁恢?,則判斷所述監(jiān)控主體第二版本號是否大于第一版本號;當所述監(jiān)控主體第二版本號大于第一版本號時,則將待更新內(nèi)容寫入存儲模塊內(nèi)。
[0051]優(yōu)選的,還包括:
[0052]獲取簽名單元,用于獲得待更新內(nèi)容;將待更新內(nèi)容利用所述第二摘要算法生產(chǎn)第三摘要信息;利用私鑰對所述第三摘要信息進行數(shù)字簽名獲得數(shù)字簽名信息;將所述待更新內(nèi)容和數(shù)字簽名信息進行發(fā)送。
[0053]本發(fā)明提供了一種基于Andriod內(nèi)核的強制訪問控制方法及裝置,本發(fā)明針對待保護的監(jiān)控客體,需要對監(jiān)控主體進行二次判斷,即當監(jiān)控主體為合法監(jiān)控主體,且監(jiān)控主體可信時,才允許監(jiān)控主體訪問監(jiān)控客體。由于本方法和策略模塊都是集成至操作系統(tǒng)內(nèi)核中的,無法通過外界配置文件進行修改,無法繞過。所以惡意軟件不可能繞過本方法去攻擊監(jiān)控客體,即便惡意軟件獲得超級用戶權(quán)限,只要惡意軟件不是合法監(jiān)控主體也沒有訪問權(quán)利,即便合法監(jiān)控主體被黑客惡意篡改,也會由于監(jiān)控主體不可信,而沒有訪問權(quán)利,因此本發(fā)明能夠防止所有非法或不可信的監(jiān)控主體訪問監(jiān)控客體,從而保護了用戶隱私不被泄露、保護系統(tǒng)安全。
【專利附圖】

【附圖說明】
[0054]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0055]圖1為本發(fā)明公開的一種基于Andriod內(nèi)核的強制訪問控制方法的流程圖;
[0056]圖2為本發(fā)明公開的又一種基于Andriod內(nèi)核的強制訪問控制方法的流程圖;
[0057]圖3為本發(fā)明公開的又一種基于Andriod內(nèi)核的強制訪問控制方法的流程圖;[0058]圖4為本發(fā)明公開的又一種基于Andriod內(nèi)核的強制訪問控制方法的流程圖;
[0059]圖5為本發(fā)明公開的又一種基于Andriod內(nèi)核的強制訪問控制方法的流程圖;
[0060]圖6為本發(fā)明公開的又一種基于Andriod內(nèi)核的強制訪問控制方法的流程圖;
[0061]圖7為本發(fā)明公開的一種基于Andriod內(nèi)核的強制訪問控制裝置的流程圖;
[0062]圖8為本發(fā)明公開的一種基于Andriod內(nèi)核的強制訪問控制裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0063]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0064]如圖1所示,本發(fā)明提供了一種基于Andriod內(nèi)核的強制訪問控制方法,本方法應(yīng)用于終端內(nèi)部的內(nèi)核,包括:
[0065]步驟SlOl:當監(jiān)控主體訪問監(jiān)控客體時,依據(jù)內(nèi)嵌在內(nèi)核中的策略模塊判斷所述監(jiān)控客體是否為待保護客體;其中所述監(jiān)控主體為應(yīng)用程序,所述監(jiān)控客體為智能終端內(nèi)部的數(shù)據(jù)信息,所述策略模塊中包括至少一個待保護客體的絕對路徑和文件名,至少一個與所述待保護客體對應(yīng)的合法監(jiān)控主體;
[0066]當軟件程序需要訪問終端內(nèi)部的數(shù)據(jù)信息時,例如:文件、數(shù)據(jù)存儲內(nèi)容或其他內(nèi)容,為了防止惡意軟件對用戶的隱私文件或系統(tǒng)的重要內(nèi)容進行攻擊,所以本發(fā)明需要監(jiān)控軟件程序和終端內(nèi)部的數(shù)據(jù)信息,防止惡意軟件訪問終端內(nèi)部的重要數(shù)據(jù)信息,因此將軟件程序稱為監(jiān)控主體,將終端內(nèi)部的數(shù)據(jù)信息稱為監(jiān)控客體。
[0067]當監(jiān)控主體訪問監(jiān)控客體時,首先需要判斷監(jiān)控客體是否為待保護的客體,當監(jiān)控客體不是待保護的客體時,則退出程序,當監(jiān)控客體為待保護客體時,才啟動保護程序進行后續(xù)過程。
[0068]步驟S102:當所述監(jiān)控客體為待保護客體時,從策略模塊中獲取與所述監(jiān)控客體對應(yīng)的合法監(jiān)控主體;
[0069]當監(jiān)控客體時待保護客體時,則后續(xù)過程會判斷監(jiān)控主體是否合法,只有合法的監(jiān)控主體才能夠具有訪問監(jiān)控客體的權(quán)利,因此需要在策略模塊中獲取與所述監(jiān)控客體對應(yīng)的合法監(jiān)控主體,開發(fā)人員根據(jù)安全需求預(yù)先決定哪些軟件程序具有訪問該監(jiān)控客體的權(quán)利,便將這些軟件程序的信息,編譯到內(nèi)核的策略模塊中。
[0070]步驟S103:判斷所述監(jiān)控主體是否為合法監(jiān)控主體;
[0071]合法監(jiān)控主體的數(shù)量可以有多個,只有合法的監(jiān)控主體才能有權(quán)利訪問監(jiān)控客體,非法的監(jiān)控主體不具有訪問權(quán)利,當策略模塊中不包括監(jiān)控主體時則表明該監(jiān)控主體是非法的,此時則反饋錯誤信號進而退出程序,禁止非法監(jiān)控主體訪問待保護客體。
[0072]步驟S104:當所述監(jiān)控主體為合法監(jiān)控主體時,則判斷所述監(jiān)控主體是否可信;
[0073]當監(jiān)控主體是合法的監(jiān)控主體時,判斷監(jiān)控主體是否可信,當該監(jiān)控主體未被修改過的時候,該監(jiān)控主體是善意軟件不會對系統(tǒng)進行攻擊,當監(jiān)控主體被修改后,監(jiān)控主體是否還是善意軟件便不確定,即當監(jiān)控主體被修改后,其中可能包括木馬或病毒等其他內(nèi)容,為了保證系統(tǒng)安全,只要監(jiān)控主體被修改便判定監(jiān)控主體不可信。[0074]步驟S105:當所述監(jiān)控主體可信時,則允許所述監(jiān)控主體訪問所述監(jiān)控客體。
[0075]當監(jiān)控主體可信時,才會允許監(jiān)控主體訪問監(jiān)控客體。即當監(jiān)控客體為待保護客體時,當且僅當監(jiān)控主體合法且可信時,才允許監(jiān)控主體訪問監(jiān)控客體,保護了監(jiān)控客體的安全。監(jiān)控主體不可信則退出程序。
[0076]經(jīng)過上述實施例可知,本發(fā)明針對待保護的監(jiān)控客體,需要對監(jiān)控主體進行二次判斷,即當監(jiān)控主體為合法監(jiān)控主體,且監(jiān)控主體可信時,才允許監(jiān)控主體訪問監(jiān)控客體。由于本方法是集成至操作系統(tǒng)內(nèi)核中的,所以惡意軟件不可能繞過該方法去攻擊監(jiān)控客體,即便惡意軟件獲得超級用戶權(quán)限,只要惡意軟件不是合法監(jiān)控主體也沒有訪問權(quán)利,即便合法監(jiān)控主體被黑客惡意篡改,會由于監(jiān)控主體不可信,而沒有訪問權(quán)利,因此本發(fā)明能夠防止所有非法或不可信的監(jiān)控主體訪問監(jiān)控客體,從而保護了用戶隱私不被泄露、保護系統(tǒng)安全。
[0077]在上述實施例的步驟SlOl中,為了表明哪些監(jiān)控客體是需要保護的監(jiān)控客體,策略模塊中預(yù)先存儲至少一個待保護客體的絕對路徑和文件名,當然有多個待保護客體時,則預(yù)先存儲多個待保護客體的絕對路徑和文件名,并且絕對路徑和文件名一一對應(yīng)存儲。由于終端中可能有多個相同的文件名,為了唯一確定一個文件,采用絕對路徑和文件名一并確定待保護客體,由于同一絕對路徑下的文件名不可能是相同的,因此依據(jù)絕對路徑和文件名便可唯一確定一個待保護客體。
[0078]如圖2所示,下面介紹判斷所述監(jiān)控客體是否為待保護客體的具體過程。
[0079]步驟S201:獲取所述監(jiān)控客體的絕對路徑和文件名;
[0080]當監(jiān)控主體訪問監(jiān)控客體時,內(nèi)核獲取所述監(jiān)控客體的絕對路徑和文件名。
[0081]步驟S202:判斷所述策略模塊內(nèi)是否包含所述監(jiān)控客體的絕對路徑和文件名,所述策略模塊中預(yù)先存儲有至少一個與絕對路徑對應(yīng)的文件名;
[0082]將上述步驟獲取所述監(jiān)控客體的絕對路徑和文件名與策略模塊中預(yù)先存儲的絕對路徑和文件名進行一一對比,即相互匹配,當策略模塊中包括所述監(jiān)控客體的絕對路徑,也包括與所述監(jiān)控客體的絕對路徑對應(yīng)的文件名時,則表明所述監(jiān)控客體是在策略模塊中預(yù)先存儲的待保護客體。
[0083]步驟S203:當所述策略模塊內(nèi)包含所述監(jiān)控客體的絕對路徑和文件名時,表明所述監(jiān)控客體為待保護客體;當監(jiān)控客體為待保護客體,則執(zhí)行后續(xù)過程。
[0084]步驟S204:當所述策略模塊內(nèi)未包含所述監(jiān)控客體的絕對路徑和文件名時,表明所述監(jiān)控客體不為待保護客體。當監(jiān)控客體不是待保護客體則無需進行監(jiān)控。
[0085]在圖1所示的實施例中,步驟S104中判斷監(jiān)控主體是否可信具體通過獲取所述監(jiān)控主體中的對比結(jié)果;依據(jù)所述對比結(jié)果判定所述監(jiān)控主體是否可信。下面介紹對比結(jié)果是如何獲得的,如圖3所示,包括以下步驟:
[0086]步驟S301:利用摘要算法計算所述監(jiān)控主體的第一摘要信息;
[0087]在本方法執(zhí)行之前,項目開發(fā)人員會預(yù)先對合法監(jiān)控主體按摘要算法進行計算,獲得第二摘要信息,當合法監(jiān)控主體有多個時,則獲取多個第二摘要信息,并將多個第二摘要信息存儲至存儲模塊中;為了敘述方便,本實施例以一個第二摘要信息為例進行說明。
[0088]當監(jiān)控主體訪問監(jiān)控客體時,會將該監(jiān)控主體按同樣的摘要算法進行計算,獲得第一摘要信息,只要監(jiān)控主體的內(nèi)容不被修改,則兩者的摘要信息一致,只要監(jiān)控主體的內(nèi)容被修改一位,則兩者的摘要信息不一致的。
[0089]步驟S302:在存儲模塊中獲取預(yù)先存儲的所述監(jiān)控主體的第二摘要信息,所述第二摘要信息為預(yù)先采用同一摘要算法計算得到的;
[0090]步驟S303:將所述第一摘要信息和第二摘要信息進行對比,獲得對比結(jié)果,其中當所述第一摘要信息和第二摘要信息一致,則表明所述監(jiān)控主體可信,當所述第一摘要信息和第二摘要信息不一致,則表明所述監(jiān)控主體不可信;
[0091]步驟S304:將所述對比結(jié)果存儲至監(jiān)控主體中。優(yōu)選的,可以存儲至監(jiān)控主體的結(jié)構(gòu)體中。
[0092]優(yōu)選的,可以將對比結(jié)果以一個標志位的形式存儲至監(jiān)控主體的結(jié)構(gòu)體中,當標志位為“I”時,表明監(jiān)控主體可信,當標志位為“O”時表明監(jiān)控主體不可信,或者當標志位為“O”時,表明監(jiān)控主體可信,當標志位為“I”時表明監(jiān)控主體不可信。
[0093]下面介紹獲取對比結(jié)果的一個具體實例,如圖4所示,包括以下步驟:
[0094]步驟S401:利用安全散列算法Secure Hash Algorithm, SHA)計算所述監(jiān)控主體的第一 HASH值;HASH即散列的意思,此HASH值為利用安全散列算法得到的結(jié)果。
[0095]步驟S402:在存儲模塊中獲取預(yù)先存儲的所述監(jiān)控主體的第二 HASH值,所述第二HASH值為預(yù)先采用SHA算法計算得到的;
[0096]步驟S403:將所述第一 HASH值和第二 HASH值進行對比,并獲得對比結(jié)果,其中當所述第一 HASH值和第二 HASH值一致,則表明所述監(jiān)控主體可信,當所述第一 HASH值和第二 HASH值不一致,則表明所述監(jiān)控主體不可信;
[0097]步驟S404:將所述對比結(jié)果存儲至監(jiān)控主體中。
[0098]上述步驟與圖3所示的內(nèi)容大體一致,在此不再贅述。
[0099]在以上實施例中講述了策略模塊具有許多信息,具體包括:待保護客體的絕對路徑和文件名、與待保護客體對應(yīng)的合法監(jiān)控主體;上述存儲模塊包含與合法監(jiān)控主體對應(yīng)的編號、版本號和摘要信息,策略模塊和存儲模塊的內(nèi)容是圖1實施例的判斷依據(jù),圖1實施例的判斷訪問主體可信過程需依據(jù)存儲模塊的內(nèi)容進行,因此存儲模塊的內(nèi)容至關(guān)重要。
[0100]當需要更新存儲模塊的內(nèi)容時,即合法監(jiān)控主體需要改變時,為了保證存儲模塊中數(shù)據(jù)的安全性,本發(fā)明提供了更新存儲模塊的步驟,如圖5所示,具體包括以下步驟:
[0101]步驟S501:獲得待更新內(nèi)容;
[0102]為了防止惡意軟件更新存儲模塊,本發(fā)明對待更新內(nèi)容采用數(shù)字簽名驗證和版本控制等方式。其中,待更新內(nèi)容包括監(jiān)控訪問主體的編號、版本號和HASH值等信息;數(shù)字簽名是對待更新數(shù)據(jù)使用私鑰進行簽名,保證更新來源于安全的遠端服務(wù)器;版本控制是保證每次更新的是新版本,并驗證更新過程的新鮮性。當監(jiān)控主體更新時,遠端服務(wù)器收到更新安全存儲需求時,獲得待更新數(shù)據(jù)。
[0103]步驟S502:將待更新內(nèi)容利用所述第二摘要算法生成第三摘要信息;
[0104]步驟S503:利用私鑰對所述第三摘要信息進行數(shù)字簽名獲得數(shù)字簽名信息;
[0105]步驟S504:將所述待更新內(nèi)容和數(shù)字簽名信息進行發(fā)送。
[0106]以上內(nèi)容為將待更新內(nèi)容進行數(shù)字簽名,并將待更新內(nèi)容和數(shù)字簽名信息一并發(fā)送至更新安全存儲客戶端,轉(zhuǎn)發(fā)給內(nèi)核的安全存儲管理模塊,由安全存儲管理模塊進行判斷,待更新內(nèi)容是否合格,是否將待更新內(nèi)容存儲至存儲模塊中。
[0107]如圖6所示,安全存儲管理模塊執(zhí)行以下步驟,包括:
[0108]步驟S601:接收待更新內(nèi)容和數(shù)字簽名信息;
[0109]步驟S602:對接收到的數(shù)字簽名信息進行公鑰解密獲得第三摘要信息;
[0110]步驟S603:對所述待更新內(nèi)容利用第二摘要算法獲得第四摘要信息;
[0111]步驟S604:判斷所述第三摘要信息和第四摘要信息是否一致,第三摘要信息和第四摘要信息一致則表明發(fā)送待更新內(nèi)容的軟件程序可靠;當?shù)谌畔⒑偷谒恼畔⒉灰恢?,則退出程序。
[0112]步驟S605:當?shù)谌畔⒑偷谒恼畔⒁恢聲r,進一步判斷所述監(jiān)控主體第二版本號是否大于第一版本號。
[0113]讀取安全存儲模塊中的數(shù)據(jù)獲得監(jiān)控主體的第一版本號,解析接收到的待更新數(shù)據(jù)得到監(jiān)控主體的第二版本號,當?shù)诙姹咎柎笥诘谝话姹咎枙r,則說明待更新版本是監(jiān)控主體的新版本及更新過程是新鮮的;當?shù)诙姹咎柌淮笥诘谝话姹咎枙r,則退出程序。
[0114]步驟S606:當?shù)诙姹咎柎笥诘谝话姹咎枙r,則將待更新內(nèi)容寫入存儲模塊內(nèi)。
[0115]本方法保證了存儲模塊更新過程的準確性和新鮮性,進一步保證了內(nèi)核依據(jù)策略模塊和存儲模塊模塊,進行判斷是否允許監(jiān)控主體訪問監(jiān)控客體,保證了合法且可信的監(jiān)控主體訪問監(jiān)控客體。
[0116]下面介紹基于Android平臺的內(nèi)核具體實施例:
[0117]以主體(記為A)打開客體文件/data/tpm/system.data (記為F)為例。
[0118]Linux系統(tǒng)提供了用以執(zhí)行進程的系統(tǒng)調(diào)用函數(shù)SyS_exeCVe(),系統(tǒng)調(diào)用函數(shù)通過調(diào)用具體執(zhí)行程序函數(shù)do_execve()實現(xiàn)。在執(zhí)行函數(shù)do_execve O中,首先是打開文件函數(shù)0pen_exec O打開A,并檢查其有效性;接著進一步檢查A是否是可執(zhí)行文件,最后通過查詢函數(shù)search_binary_handler O查詢能夠處理該可執(zhí)行文件格式的處理函數(shù),并調(diào)用相應(yīng)的加載函數(shù)load_libary()進行加載。
[0119]在要加載的過程中,Linux內(nèi)核進程監(jiān)控模塊監(jiān)控主體函數(shù)mac_monitor_subject O監(jiān)控到這一操作,根據(jù)策略匹配函數(shù)mac_match_policy O確認當前進程A是否在策略模塊中所定義的訪問主體之列。如果是,度量模塊將通過計算HASH值函數(shù)mac_calc_hash O調(diào)用SHA算法模塊計算其HASH值,并從安全存儲模塊中讀取A的HASH值,兩者進行比較,結(jié)果保存在訪問主體結(jié)構(gòu)體struct mac_subject_entry中。
[0120]當A調(diào)用系統(tǒng)函數(shù)open O打開F時,Linux內(nèi)核執(zhí)行系統(tǒng)調(diào)用函數(shù)sys_execve O ,其通過調(diào)用具體執(zhí)行程序函數(shù)do_execve()實現(xiàn)打開功能。在執(zhí)行函數(shù)do_execve O中,通過調(diào)用打開文件函數(shù)open_exec()打開F,進一步調(diào)用do_filp_open O來執(zhí)行。在打開執(zhí)行過程中,Linux內(nèi)核進程監(jiān)控模塊客體監(jiān)控函數(shù)mac_monitor_object O監(jiān)控到這一操作,根據(jù)策略匹配函數(shù)mac_match_policy()依據(jù)絕對路徑和文件名等規(guī)則確認F是策略模塊中所定義的客體。然后進入審計階段,審計模塊的審計訪問主體函數(shù)mac_audit_sub ject O首先獲得訪問F的當前主體A的相關(guān)信息,策略規(guī)則匹配函數(shù)mac_match_policy O依據(jù)訪問規(guī)則確認當前主體A是否在允許訪問該客體F的范圍之列,然后查看主體結(jié)構(gòu)體structmac_subject_entry中的可信標簽,確認當前主體A合法后才允許訪問F,否則返回該操作無權(quán)限。[0121]下面介紹更新存儲模塊的數(shù)據(jù)的具體實施例:
[0122]當監(jiān)控訪問主體更新時,相關(guān)模塊需做(但不限于)以下工作:
[0123]①更新安全存儲客戶端向遠端服務(wù)器(記為A)發(fā)出更新請求;
[0124]②A收到更新請求后,做以下工作:
[0125]首先生成消息摘要,將要更新的數(shù)據(jù)Data(包括訪問主體編號、版本及HASH值)做HASH運算,產(chǎn)生消息摘要HASH [Data];
[0126]然后是數(shù)字簽名,用RSA私鑰對摘要值做數(shù)據(jù)簽名運算得RSAPrivateKey [HASH [Data]];
[0127]最后將包含數(shù)據(jù)Data及簽名結(jié)果RSAPHvateKey [HASH [Data]]的數(shù)據(jù)包即Data RSAPrivateKey[HASH[Data]]發(fā)送給更新安全存儲客戶端,再轉(zhuǎn)發(fā)給安全存儲管理模塊(記為B),其中更新安全存儲客戶端作為A和B之間通信的橋梁。
[0128]③B收到更新數(shù)據(jù)包之后,做以下工作:
[0129]首先簽名驗證,對接收到的數(shù)據(jù)Data做HASH運算,得到HASH[Data];
[0130]然后對接收到的數(shù)據(jù)RSAMvatdtey[HASH[Data]]做RSA公鑰解密運算RSApublidiey [HASH [Data]]得到 HASH [Data] *,把 HASH [Data]和 HASH [Data] * 二者相比較,一致則說明更新數(shù)據(jù)來自于合法的遠端服務(wù)器,向下繼續(xù)執(zhí)行,否則返回錯誤;
[0131]最后版本驗證,更新安全存儲數(shù)據(jù)。解析接收到數(shù)據(jù)Data得到訪問主體的版本號V,與安全存儲模塊中單調(diào)計數(shù)器的值V’比較,如果V>V’,則更新Data,將更新Data寫入安全存儲模塊;否則拒絕更新,返回錯誤。
[0132]如圖7所示,本發(fā)明一種基于Andriod內(nèi)核的強制訪問控制裝置,包括:
[0133]第一判斷單元701,用于當監(jiān)控主體訪問監(jiān)控客體時,依據(jù)內(nèi)嵌在內(nèi)核中的策略模塊判斷所述監(jiān)控客體是否為待保護客體;其中所述監(jiān)控主體為應(yīng)用程序,所述監(jiān)控客體為智能終端內(nèi)部的數(shù)據(jù)信息,所述策略模塊中包括至少一個待保護客體的絕對路徑和文件名,至少一個與所述待保護客體對應(yīng)的合法監(jiān)控主體;
[0134]獲取單元702,用于當所述監(jiān)控客體為待保護客體時,從策略模塊中獲取與所述監(jiān)控客體對應(yīng)的合法監(jiān)控主體;
[0135]第二判斷單元703,用于判斷所述監(jiān)控主體是否為合法監(jiān)控主體;當所述監(jiān)控主體為合法監(jiān)控主體時,則判斷所述監(jiān)控主體是否可信;訪問單元704,用于當所述監(jiān)控主體可信時,則允許所述監(jiān)控主體訪問所述監(jiān)控客體。
[0136]如圖7所示,本發(fā)明提供的一種基于Andriod內(nèi)核的強制訪問控制裝置還包括:
[0137]獲取對比結(jié)果單元705,用于利用摘要算法計算所述監(jiān)控主體的第一摘要信息;在存儲模塊中獲取預(yù)先存儲的所述監(jiān)控主體的第二摘要信息,所述第二摘要信息為預(yù)先采用同一摘要算法計算得到的;將所述第一摘要信息和第二摘要信息進行對比,獲得對比結(jié)果,其中當所述第一摘要信息和第二摘要信息一致,則表明所述監(jiān)控主體可信,當所述第一摘要信息和第二摘要信息不一致,則表明所述監(jiān)控主體不可信;將所述對比結(jié)果存儲至監(jiān)控主體中。
[0138]如圖8所示,本發(fā)明提供的基于Andriod內(nèi)核的強制訪問控制裝置,還包括:
[0139]更新單元706,用于接收待更新內(nèi)容和數(shù)字簽名信息;對接收到的數(shù)字簽名信息進行公鑰解密獲得第三摘要信息;對所述待更新內(nèi)容利用第二摘要算法獲得第四摘要信息;判斷所述第三摘要信息和第四摘要信息是否一致;當?shù)谌畔⒑偷谒恼畔⒁恢?,則判斷所述監(jiān)控主體第二版本號是否大于第一版本號;當?shù)诙姹咎柎笥诘谝话姹咎枙r,則將待更新內(nèi)容寫入存儲模塊內(nèi)。
[0140]獲取簽名單元707,用于獲得待更新內(nèi)容;將待更新內(nèi)容利用所述第二摘要算法生產(chǎn)第三摘要信息;利用私鑰對所述第三摘要信息進行數(shù)字簽名獲得數(shù)字簽名信息;將所述待更新內(nèi)容和數(shù)字簽名信息進行發(fā)送。
[0141]本實施例方法所述的功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算設(shè)備可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明實施例對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算設(shè)備(可以是個人計算機,服務(wù)器,移動計算設(shè)備或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM, Read-Only Memory)、隨機存取存儲器(RAM, Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0142]本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。
[0143]對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【權(quán)利要求】
1.一種基于Andr1d內(nèi)核的強制訪問控制方法,其特征在于,包括: 當監(jiān)控主體訪問監(jiān)控客體時,依據(jù)內(nèi)嵌在內(nèi)核中的策略模塊判斷所述監(jiān)控客體是否為待保護客體;其中所述監(jiān)控主體為應(yīng)用程序,所述監(jiān)控客體為智能終端內(nèi)部的數(shù)據(jù)信息,所述策略模塊中包括至少一個待保護客體的絕對路徑和文件名,至少一個與所述待保護客體對應(yīng)的合法監(jiān)控主體; 當所述監(jiān)控客體為待保護客體時,從策略模塊中獲取與所述監(jiān)控客體對應(yīng)的合法監(jiān)控主體; 判斷所述監(jiān)控主體是否為合法監(jiān)控主體; 當所述監(jiān)控主體為合法監(jiān)控主體時,則判斷所述監(jiān)控主體是否可信; 當所述監(jiān)控主體可信時,則允許所述監(jiān)控主體訪問所述監(jiān)控客體。
2.如權(quán)利要求1所述的方法,其特征在于,判斷所述監(jiān)控客體是否為待保護客體包括: 獲取所述監(jiān)控客體的絕對路徑和文件名; 判斷所述策略模塊內(nèi)是否包含所述監(jiān)控客體的絕對路徑和文件名; 當所述策略模塊內(nèi)包含所述監(jiān)控客體的絕對路徑和文件名時,表明所述監(jiān)控客體為待保護客體; 當所述策略模塊內(nèi)未包含所述監(jiān)控客體的絕對路徑和文件名時,表明所述監(jiān)控客體不為待保護客體。
3.如權(quán)利要求1所述的方法,其特征在于,在判斷所述監(jiān)控主體是否可信之前,還包括: 利用摘要算法計算所述監(jiān)控主體的第一摘要信息; 在存儲模塊中獲取預(yù)先存儲的所述監(jiān)控主體的第二摘要信息,所述第二摘要信息為預(yù)先采用同一摘要算法計算得到的; 將所述第一摘要信息和第二摘要信息進行對比,獲得對比結(jié)果,其中當所述第一摘要信息和第二摘要信息一致,則表明所述監(jiān)控主體可信,當所述第一摘要信息和第二摘要信息不一致,則表明所述監(jiān)控主體不可信; 將所述對比結(jié)果存儲至監(jiān)控主體中。
4.如權(quán)利要求3所述的方法,其特征在于,在判斷所述監(jiān)控主體是否可信之前,還包括: 利用安全散列算法SHA計算所述監(jiān)控主體的第一 HASH值; 在存儲模塊中獲取預(yù)先存儲的所述監(jiān)控主體的第二 HASH值,所述第二 HASH值為預(yù)先采用SHA算法計算得到的; 將所述第一 HASH值和第二 HASH值進行對比,并獲得對比結(jié)果,其中當所述第一 HASH值和第二 HASH值一致,則表明所述監(jiān)控主體可信,當所述第一 HASH值和第二 HASH值不一致,則表明所述監(jiān)控主體不可信; 將所述對比結(jié)果存儲至監(jiān)控主體中。
5.如權(quán)利要求3或4所述的方法,其特征在于,判斷所述監(jiān)控主體是否可信包括: 獲取所述監(jiān)控主體中的對比結(jié)果; 依據(jù)所述對比結(jié)果判定所述監(jiān)控主體是否可信。
6.如權(quán)利要求1所述的方法,其特征在于,采用以下步驟更新所述存儲模塊:接收待更新內(nèi)容和數(shù)字簽名信息; 對接收到的數(shù)字簽名信息進行公鑰解密獲得第三摘要信息; 對所述待更新內(nèi)容利用第二摘要算法獲得第四摘要信息; 判斷所述第三摘要信息和第四摘要信息是否一致; 當?shù)谌畔⒑偷谒恼畔⒁恢?,則判斷所述監(jiān)控主體第二版本號是否大于第一版本號; 當所述監(jiān)控主體第二版本號大于第一版本號時,則將待更新內(nèi)容寫入存儲模塊內(nèi)。
7.如權(quán)利要求6所述的方法,其特征在于,數(shù)字簽名信息的獲得過程包括: 獲得待更新內(nèi)容; 將待更新內(nèi)容利用所述第二摘要算法生成第三摘要信息; 利用私鑰對所述第三摘要信息進行數(shù)字簽名獲得數(shù)字簽名信息; 將所述待更新內(nèi)容和數(shù)字簽名信息進行發(fā)送。
8.一種基于Andr1d內(nèi)核的強制訪問控制裝置,其特征在于,包括: 第一判斷單元,用于當監(jiān)控主體訪問監(jiān)控客體時,依據(jù)內(nèi)嵌在內(nèi)核中的策略模塊判斷所述監(jiān)控客體是否為待保護客體;其中所述監(jiān)控主體為應(yīng)用程序,所述監(jiān)控客體為智能終端內(nèi)部的數(shù)據(jù)信息,所述策略模塊中包括至少一個待保護客體的絕對路徑和文件名,至少一個與所述待保護客體對應(yīng)的合法監(jiān)控主體; 獲取單元,用于當所述監(jiān)控客體為待保護客體時,從策略模塊中獲取與所述監(jiān)控客體對應(yīng)的合法監(jiān)控主體; 第二判斷單元,用于判斷所述監(jiān)控主體是否為合法監(jiān)控主體;當所述監(jiān)控主體為合法監(jiān)控主體時,則判斷所述監(jiān)控主體是否可信; 訪問單元,用于當所述監(jiān)控主體可信時,則允許所述監(jiān)控主體訪問所述監(jiān)控客體。
9.如權(quán)利要求8所述的裝置,其特征在于,還包括: 獲取對比結(jié)果單元,用于利用摘要算法計算所述監(jiān)控主體的第一摘要信息;在存儲模塊中獲取預(yù)先存儲的所述監(jiān)控主體的第二摘要信息,所述第二摘要信息為預(yù)先采用同一摘要算法計算得到的;將所述第一摘要信息和第二摘要信息進行對比,獲得對比結(jié)果,其中當所述第一摘要信息和第二摘要信息一致,則表明所述監(jiān)控主體可信,當所述第一摘要信息和第二摘要信息不一致,則表明所述監(jiān)控主體不可信;將所述對比結(jié)果存儲至監(jiān)控主體中。
10.如權(quán)利要求8所述的裝置,其特征在于,還包括: 更新單元,用于接收待更新內(nèi)容和數(shù)字簽名信息;對接收到的數(shù)字簽名信息進行公鑰解密獲得第三摘要信息;對所述待更新內(nèi)容利用第二摘要算法獲得第四摘要信息;判斷所述第三摘要信息和第四摘要信息是否一致;當?shù)谌畔⒑偷谒恼畔⒁恢?,則判斷所述監(jiān)控主體第二版本號是否大于第一版本號;當所述監(jiān)控主體第二版本號大于第一版本號時,則將待更新內(nèi)容寫入存儲模塊內(nèi)。
11.如權(quán)利要求10所述的裝置,其特征在于,還包括: 獲取簽名單元,用于獲得待更新內(nèi)容;將待更新內(nèi)容利用所述第二摘要算法生產(chǎn)第三摘要信息;利用私鑰對所述第三摘要信息進行數(shù)字簽名獲得數(shù)字簽名信息;將所述待更新內(nèi)容和數(shù)字簽名信息進行發(fā)送。
【文檔編號】G06F9/44GK104035787SQ201410309830
【公開日】2014年9月10日 申請日期:2014年7月1日 優(yōu)先權(quán)日:2014年7月1日
【發(fā)明者】鄒家須, 余小龍, 孫卓, 李新國, 宮俊, 黃華松, 趙寶龍 申請人:深圳數(shù)字電視國家工程實驗室股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
壤塘县| 尉犁县| 郎溪县| 信阳市| 休宁县| 博乐市| 长子县| 公安县| 西昌市| 黄冈市| 大竹县| 姚安县| 商水县| 巴林右旗| 嫩江县| 益阳市| 梧州市| 思茅市| 朝阳市| 元朗区| 永泰县| 本溪| 太仆寺旗| 博白县| 嵊泗县| 西城区| 云龙县| 张家口市| 克拉玛依市| 万源市| 通海县| 封丘县| 双流县| 元朗区| 绥宁县| 理塘县| 定结县| 闻喜县| 福安市| 札达县| 临潭县|