古詩詞大全網 - 藝術簽名 - android安全沙箱機制是基於什麽

android安全沙箱機制是基於什麽

Android順其自然地繼承了Linux內核的安全機制,同時結合移動終端的具體應用特點,進行了許多有益的改進與提升。

window與unix/linux等傳統操作系統以用戶為中心,假設用戶之間是不可信的,更多考慮如何隔離不同用戶對資源(存儲區域與用戶文件,內存區域與用戶進程,底層設備等)的訪問。在Android系統中,假設應用軟件之間是不可信的,甚至用戶自行安裝的應用程序也是不可信的,因此,首先需要限制應用程序的功能,也就是將應用程序置於“沙箱”之內,實現應用程序之間的隔離,並且設定允許或拒絕API調用的權限,控制應用程序對資源的訪問,如訪問文件,目錄,網絡,傳感器等。

Android擴展了Linux內核安全模型的用戶與權限機制,將多用戶操作系統的用戶隔離機制巧妙地移植為應用程序隔離。在linux中,壹個用戶標識(UID)識別壹個給定用戶;在Android上,壹個UID則識別壹個應用程序。在安裝應用程序時向其分配UID。應用程序在設備上存續期間內,其UID保持不變。僅限用於允許或限制應用程序(而非用戶)對設備資源的訪問。如此,Android的安全機制與Linux內核的安全模型完美銜接!不同的應用程序分別屬於不同的用戶,因此,應用程序運行於自己獨立的進程空間,與UID不同的應用程序自然形成資源隔離,如此便形成了壹個操作系統級別的應用程序“沙箱”。

應用程序進程之間,應用程序與操作系統之間的安全性由Linux操作系統的標準進程級安全機制實現。在默認狀態下,應用程序之間無法交互,運行在進程沙箱內的應用程序沒有被分配權限,無法訪問系統或資源。因此,無論是直接運行於操作系統之上的應用程序,還是運行於Dalvik虛擬機的應用程序都得到同樣的安全隔離與保護,被限制在各自“沙箱”內的應用程序互不幹擾,對系統與其他應用程序的損害可降至最低。Android應用程序的“沙箱”機制如下圖,互相不具備信任關系的應用程序相互隔離,獨自運行:

在很多情況下,源自同壹開發者或同壹開發機構的應用程序,相互間存在信任關系。Android系統提供壹種所謂***享UID(SharedUserID)機制,使具備信任關系的應用程序可以運行於同壹進程空間。通常 ,這種信任關系由應用程序的數字簽名確定,並且需要應用程序在manifest文件中使用相同的UID。***享UID的應用程序進程空間