用于設備上的平臺和用戶應用安全性的方法和系統的制作方法
【技術領域】
[0001]本發明涉及一種計算機系統和方法,更特別地,涉及一種用于計算設備上的平臺和用戶應用安全性的系統和方法。
【背景技術】
[0002]保護計算設備(諸如移動電話)上的用戶空間的代碼已經變得越來越重要。目前存在有多種用于這類設備上的應用代碼的安全性的方法:這些方法中的一種是自主訪問控制(discret1nary access control, DAC)。按照慣例,操作系統(0S)使用DAC來基于用戶ID限制對對象的訪問,由此保護對象不受未經授權的訪問。在DAC之下的對象的所有者有做出策略決策和/或指派安全性屬性的能力。使用DAC,許可或拒絕例如用于執行某個用戶應用代碼的其他用戶權限就成為可能。然而,DAC方法的根本局限性在于存在“根”用戶,“根”用戶是免除了由DAC強加在所有其他用戶ID上的限制,因而惡意用戶可以通過僅僅獲取根特權(也被稱為“使設備生根”)來完全繞過DAC。
[0003]SE Linux是另一種方法,其通過強加強制訪問控制(Mandatory Access Control,MAC)來保護Linux平臺,顧名思義,MAC不是基于用戶ID的自主性的。SE Linux方法提供了一種基于策略的安全性機制,其中對文件、驅動程序和其他系統資源的每個可能取得特權的訪問,均基于不僅僅用戶ID而且基于發起請求的執行進程來被準予或拒絕。使用SELinux的根本難點(和其沒有更廣泛使用的原因)在于:所述安全策略數據是非常復雜的(幾乎都是這樣),因為其必須描述系統上的每個資源以及對那些資源可能或者可能不被允許訪問的每個進程的完整矩陣。此外,每次在設備中安裝新軟件時都需要對策略進行更新。事實上,這在實際操作中是難管理的,因此很大程度上阻礙了 SE Linux在真實世界的米用。
[0004]因此,需要提供一種新的系統和方法,用于提高計算設備的安全性。
【發明內容】
[0005]本發明的目的是提供一種能夠消除或減輕現有系統的至少一個缺點的方法和系統。
[0006]根據本公開的一個方面,提供了一種增強計算設備的安全性的方法,其包括:驗證計算設備的操作系統代碼的完整性以便在計算設備的操作系統中建立可信任執行環境;以及響應于操作系統代碼的完整性驗證成功,將計算設備的用戶空間的應用綁定到計算設備的操作系統。
[0007]根據本公開的另一個方面,提供了一種存儲一個或多個程序的計算機可讀存儲介質,所述一個或多個程序包括指令,當上述指令由計算設備中的計算機處理器執行時,使得所述處理器執行增強計算設備的安全性的方法。
[0008]根據本公開的另一個方面,提供了一種增強計算設備的安全性的系統,包括:處理器,配置為:驗證計算設備的操作系統代碼的完整性以便在計算設備的操作系統中建立可信任的執行環境;以及響應于所述操作系統代碼的完整性驗證成功,將計算設備的用戶空間的應用綁定到計算設備的操作系統。
【附圖說明】
[0009]從其中參照附圖的下列描述,本發明的這些及其他特征將變得更加顯然,其中:
圖1A-1H是圖示增強計算設備的安全性的示例的流程圖;
圖2A-2D是圖示用于安全平臺的示例性構建和供應過程的示意圖;
圖3A是圖示在安全平臺中的系統啟動過程的一個示例的示意圖,系統啟動過程包括創建內核和內核代理;
圖3B是圖示系統啟動過程的另一個示意圖,系統啟動過程包括在內核空間建立可信任執行環境(TEE);
圖4A是圖示在安全平臺中的用戶應用啟動過程的一個示例的示意圖,用戶應用啟動過程包括創建用戶應用過程;
圖4B是圖示所述用戶應用啟動過程的另一個示意圖,用戶應用啟動過程包括用戶應用進程的完整性驗證;
圖4C是圖示所述用戶應用啟動過程的又一個示意圖,用戶應用啟動過程包括將用戶應用進程綁定到內核空間;以及
圖5是圖示具有開源0S的移動設備的一個示例的示意圖,針對該開源0S,附圖3A和3B中所示的用戶啟動過程以及附圖4A?4C中所示的用戶應用啟動過程可以被實施。
[0010]為圖示說明的簡明和清楚起見,附圖中的元件未必是按比例的,只是示意性的和非限制性的,公知的組件可以被省略,而且在不同的附圖中相同的附圖標記指示相同元件,除非另有說明。
[0011]在下面的描述中,術語“設備(多個)”、“平臺(多個)”和“系統(多個)”可以互換使用,且術語“可執行”、“進程”、“模塊”和“組件”可以互換使用。在下面的描述中,術語“內核(可執行)進程”、“內核(可執行)模塊”和“內核”可以互換使用。在下面的描述中,術語“內核代理(可執行)進程”,“內核代理模塊”和“內核代理”可以互換使用。
詳細說明
[0012]參照附圖1-5僅以舉例的方式在下文中描述各實施例。
[0013]在本公開中,提供了一種用于增強計算設備的安全性的安全平臺和方法。用于增強計算設備的安全性的安全平臺和方法適用于例如但不限于任何計算設備,計算設備包括移動電話、游戲機、平板、機頂盒、電視機或其他消費電子設備。本公開的實施例僅以舉例的方式就如下的任何平臺進行了描述,所述平臺使用開源操作系統(0S)(例如但不限于,Linux或Android?0S),并且這些示例不應該被解釋為限制本發明的預定范圍。
[0014]參考圖1A-1H,圖示了在運行時增強計算設備的安全性的過程的示例。所述過程包括驗證(100)計算設備的代碼的完整性以便在計算設備中建立軟件(SW)TEE,以及響應于完整性驗證(“IV”)的結果,綁定(120)計算設備的用戶空間的應用到計算設備的0S。代碼的IV包括0S的IV (110)和用戶空間的應用的IV (130)中的任一個或者多個。
[0015]在非限制性的示例中,IV(10)步驟包括0S代碼的IV(llO)以驗證該計算設備具有用于在0S空間中建立SW TEE的可信任0S。如果OS代碼的IV(llO)是成功的,則確定所述計算設備的OS是被充分信任的。在非限制性的示例中,當OS的IV(110)成功時,實施綁定(120)步驟。在非限制性的示例中,OS的IV(llO)包括以下項中的任一個或者多個:磁盤上OS映像的IV,存儲器內OS映像的IV,以及存儲器內OS映像的連續/增量IV。在非限制性的示例中,在磁盤上和存儲器內OS映像的IV成功(112)時,綁定(120)步驟被實施。在非限制性的示例中,在磁盤上和存儲器內OS映像的IV(112)成功時,實施存儲器內OS映像的連續/增量IV(114)(參見附圖1B)。如果存儲器內OS映像的連續/增量IV(114)成功,則實施綁定(120)步驟。
[0016]在非限制性的示例中,IV(10)步驟包括用戶空間應用的IV(130)以驗證該計算設備在用戶空間中具有SW TEE(參見例如附圖1C-1H)。如果用戶空間應用的IV(130)成功,則確定所述計算設備的用戶空間被充分信任。在非限制性的示例中,如果0S映像的完全IV (110)是成功的,則實施用戶空間應用的IV (130),這在0S空間和用戶空間中建立SWTEE。在非限制性的示例中,用戶空間應用的IV(130)包括如下項中的任一個或者多個:磁盤上用戶空間應用映像的IV(132),存儲器內用戶空間應用映像的IV(134),以及存儲器內用戶空間應用映像的連續/增量IV (150、170)。這些IV中的任一個或多個可以隨后實施。在非限制性的示例中,當用戶空間應用映像的磁盤上映像的完全IV(132)成功時,綁定(120)步驟被實施。在非限制性的示例中,當磁盤上用戶空間應用映像的完全IV(132)成功時,存儲器內用戶空間應用映像的完全IV(134)被實施。在非限制性的示例中,存儲器內用戶空間應用映像的完全IV(134)是通過跳過重定位(例如:用于加載磁盤上用戶應用的內容的加載器的重定位)來實施的。在非限制性的示例中,當磁盤上和存儲器內用戶空間應用映像的完全IV成功時,綁定(120)步驟被實施。
[0017]在非限制性的示例中,在用戶空間應用映像的IV(130)之后,存儲器內用戶空間應用(包括重定位)的映像被簽署(140)(參見例如附圖1E-1H)。在非限制性的示例中,在簽署存儲器內用戶空間應用映像(140)后,存儲器內用戶空間應用映像的連續/增量IV(150)基于(與簽署(140)步驟關聯的)完全簽名得以實施。在非限制性的示例中,當存儲器內用戶空間應用映像的連續/增量IV(150)成功時,綁定(120)步驟得以實施(參見例如附圖1E)。在非限制性的示例中,在簽署存儲器內用戶空間應用映像(140)后,綁定
(120)步驟被實施,然后存儲器內用戶空間應用映像被重簽署(160),因為它可能已經由于綁定步驟的結果而發生變化。在非限制性的示例中,在重新簽署存儲器內用戶空間應用映像(160)后,存儲器內應用映像的連續/增量IV(170)基于(與重簽署(160)步驟關聯的)完全簽名得以實施(參見附圖1F)。在非限制性的示例中,在綁定(120)步驟后,存儲器內應用映像的連續/增量IV(170)被實施,因為綁定(120)步驟可能改變用戶應用映像(參見附圖1G)。
[0018]在非限制性的示例中,綁定(120)步驟包括