Android系統安全機制

Android 將安全設計貫穿系統架構的各個層面,覆蓋系統內核、虛擬機、應用程序框架層以及應用層各個環節,力求在開放的同時,也能保護用戶的數據、應用程序和設備安全。

Android是一種基於Linux的、自由的、開源的操作系統。它主要使用於移動設備,如智能手機和平板電腦,由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採用多層架構,在保護信息安全的同時,也保證開放平臺的靈活性。

本文地址:https://www.linuxprobe.com/android-security-system.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章