Android 的安全機制有:
訪問限制:訪問限制對于任何操作系統的安全性而言都是核心要素。在 Android中,任何程序都沒有權限來執行可能有害于操作系統的操作。這些操作包括讀/寫用戶的隱私數據(例如聯系方式或 E-mail)、讀/寫其他應用程序的文件等。該結構同樣避免了可能會運行有害的或是影響到用戶的程序。據此,保證了用戶一些“敏感”數據不被某些未經授權的程序所困擾。
應用程序簽名:所有的Android應用程序(.apk文件)必須通過一個證書的簽名,此證書的密鑰必須被開發者所掌握,這個證書的標識是應用程序的作者。這個證書不需要通過證書組織的簽署,Android應用程序對于使用自簽署的證書是完全允許的。
DVM防護:Android采用了進程隔離策略來保障應用軟件及其數據文件的完整性和機密性。
權限命名機制:一個權限主要包含3個方面的信息:權限的名稱、屬于的權限組、保護級別。一個權限組是指把權限按照功能分成的不同集合。每一個權限組包含若干具體權限,例如,在COST_MONEY組中包含android.permission.SEND_SMS、android.permission.CALL_PHONE等和費用相關的權限。每個權限通過Protection Level來標識保護級別,如Normal、Dangerous、Signature、Signatureorsystem。不同的保護級別代表了程序要使用此權限時的認證方式。Normal 的權限只要申請了就可以使用;Dangerous 的權限在安裝時需要用戶確認才可以使用;Signature和Signatureorsystem的權限需要使用者的APP和系統使用同一個數字證書。Package的權限信息主要通過在AndroidManifest.xml中通過一些標簽來指定。
數據安全機制UID:安裝在Android手機中的每個程序都會被分配給一個屬于自己的統一的Linux用戶ID,并且為它創建一個Sandbox以防止影響其他程序。在程序安裝到手機中時被分配用戶ID,并且在這個設備中保持它的永久性。
“沙箱”機制:在Android系統中,每個APP和系統進程都被分配唯一并且固定的User ID,這個UID與內核層進程的UID對應。每個APP在各自獨立的DVM中運行,擁有獨立的地址空間和資源。運行于DVM中的進程必須依托內核層Linux進程而存在,因此,Android使用DVM和Linux的文件訪問控制來實現沙箱機制,任何應用程序如果想訪問系統資源或者其他應用程序的資源必須在自己的manifest文件中進行聲明權限或者共享UID。