android的安全機制
『壹』 android的安全機制有哪些
• 進程沙箱隔離機制。
• 應用程序簽名機制。
• 許可權聲明機制。
• 訪問控制機制。
• 進程通信機制。
• 內存管理機制。
• SElinux
『貳』 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的應用程序進程空間