Android系統安全機制

大雄45發表於2021-03-29
導讀 Android 將安全設計貫穿系統架構的各個層面,覆蓋系統核心、虛擬機器、應用程式框架層以及應用層各個環節,力求在開放的同時,也能保護使用者的資料、應用程式和裝置安全。

Android是一種基於 的、自由的、開源的作業系統。它主要使用於移動裝置,如智慧手機和平板電腦,由Google公司和開放手機聯盟開發。Android系統架構可以分為4層結構,由上至下分別是應用程式層、應用程式框架層、系統執行庫層以及核心層,如圖1所示。

Android系統安全機制Android系統安全機制

Android應用層允許開發者無須修改底層程式碼就能對裝置的功能進行擴充,Android的應用程式框架層為開發者提供了大量的API來訪問Android的裝置。

Android 應用和Android 框架都是用 Java 語言開發的,並執行在 DalvikVM 中執行。DalvikVM的作用主要就是為作業系統底層提供一個高效的抽象層。DalvikVM是一種基於暫存器的虛擬機器,能夠解釋執行Dalvik可執行格式DEX的位元組碼,Android 應用和Android 框架都是用 Java 語言開發的,並執行在 DalvikVM 中執行。DalvikVM的作用主要就是為作業系統底層提供一個高效的抽象層。DalvikVM是一種基於暫存器的虛擬機器,能夠解釋執行Dalvik可執行格式DEX的位元組碼,

Android 將安全設計貫穿系統架構的各個層面,覆蓋系統核心、虛擬機器、應用程式框架層以及應用層各個環節,力求在開放的同時,也能保護使用者的資料、應用程式和裝置安全。

1.Android程式沙箱隔離機制

程式沙箱隔離機制,使Android應用程式在安裝時被賦予獨特的使用者標識(UID),並永久保持。應用程式及其執行的Dalvik虛擬機器執行在獨立的Linux程式空間,與其他應用程式完全隔離,如圖2所示。

Android系統安全機制Android系統安全機制

在特殊情況下,程式間還可以存在相互信任關係。如源自同一開發者或同一開發機構的應用程式,透過Android提供的共享UID(Shared UserId)機制,使具備信任關係的應用程式可以執行在同一程式空間。

2. 應用程式簽名機制

規定 APK 檔案必須被開發者進行數字簽名,以便標識應用程式作者和在應用程式之間的信任關係。在安裝應用程式APK時,系統安裝程式首先檢查APK是否被簽名,有簽名才能安裝。當應用程式升級時,需要檢查新版應用的數字簽名與已安裝的應用程式的簽名是否相同,否則,會被當作一個新的應用程式。Android 開發者有可能把安裝包命名為相同的名字,透過不同的簽名可以把它們區分開來,也保證簽名不同的安裝包不被替換,同時防止惡意軟體替換安裝的應用。

3. 許可權宣告機制

要想在物件上進行操作,就需要把許可權和此物件的操作進行繫結。不同級別要求應用程式行使許可權的認證方式也不一樣,Normal級申請就可以使用,Dangerous級需要安裝時由使用者確認,Signature和SignatureOrSystem級則必須是系統使用者才可用。

4. 程式通訊機制

基於共享記憶體的 Binder 實現,提供輕量級的遠端程式呼叫(RPC)。透過介面描述語言(AIDL)定義介面與交換資料的型別,確保程式間通訊的資料不會溢位越界,如圖3所示。

Android系統安全機制Android系統安全機制

5. 記憶體管理機制

基於Linux的低記憶體管理機制,設計實現了獨特的LMK,將程式重要性分級、分組,當記憶體不足時,自動清理級別程式所佔用的記憶體空間。同時,引入的 Ashmem 記憶體機制,使Android具備清理不再使用共享記憶體區域的能力。

正是因為Android採用多層架構,在保護資訊保安的同時,也保證開放平臺的靈活性。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2765590/,如需轉載,請註明出處,否則將追究法律責任。

相關文章