Android安全模型之Android安全機制(應用許可權)

來源:互聯網
上載者:User

標籤:android   style   io   ar   color   使用   sp   strong   檔案   

進程沙箱為互不信任的應用程式之間提供了隔離機制,SharedUserID則為具備信任關係的應用程式提供了共用資源的機制。然而,由於使用者自行安裝的應用程式也不具備可信性,在預設情況下,Android應用程式沒有任何許可權,不能訪問保護的裝置API與資源。因此,許可權機制是Android安全機制的基礎,決定允許還是限制應用程式訪問受限的API系統資源。應用程式的許可權需要明確定義,在安裝時被使用者確認,並且在運行時檢查,執行,授予和撤銷許可權。在定製許可權下,檔案和內容提供者也可以受到保護。

具體而言,應用程式在安裝時都分配有一個使用者標誌(UID)以區別於其他應用程式,保護自己的資料不被其他應用擷取。Android根據不同的使用者和組,分配不同許可權,比如訪問網路,訪問GPS資料等,這些Android許可權在底層映射為Linux的使用者與組許可權

許可權機制的實現層次簡要概括如下:

  • 應用程式層顯式聲明許可權:應用程式套件組合(.apk檔案)的許可權資訊在AndroidManifest.xml檔案中通過<permission>,<premission-group>與<permission-tree>等標籤指定。需要申請某個許可權,使用<uses-permission>指定。

  • 許可權聲明包含許可權名稱,屬於的許可權組與保護層級。

  • 許可權組是許可權按功能分成的不同集合,其中包含多個具體許可權,例如,發簡訊,無線上網與撥打到電話的許可權可列入一個產生費用的許可權組。

  • 許可權的保護層級分為Normal,Dangerous,Signature與Signatureorsystem四種,不同的層級限定了應用程式行使此許可權時的認證方式。比如,Normal只要申請就可用,Dangerous許可權在安裝時經使用者確認才可用,Signature與Signatureorsystem許可權需要應用程式必須為系統使用者,如OEM製造商或ODM製造商等。

  • 架構層與系統層逐級驗證,如果某許可權未在AndroidManifest.xml中聲明,那麼程式運行時會出錯。通過命令列調試工具logcat查看系統日誌可發現需要某許可權的錯誤資訊。

  • 共用UID的應用程式可與系統另一使用者程式同一簽名,也可同一許可權。一般可在AndroidManifest檔案中設定sharedUserId,如android:sharedUserId="android.uid.shared",以獲得系統許可權。但是,這種程式屬性通常由OEM植入,也就是說對系統軟體起作用。

Android的許可權管理模組在2.3版本之後,即使有root許可權,仍無法執行很多底層命令和API。例如,su到root使用者,執行ls等命令都會出現沒有許可權的錯誤。

Android安全模型之Android安全機制(應用許可權)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.