Google致力於提高黑人社區的種族平等。 怎麼看。
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

系統和內核安全

在操作系統級別,Android平台提供Linux內核的安全性,以及安全的進程間通信(IPC)功能,以啟用在不同進程中運行的應用程序之間的安全通信。操作系統級別的這些安全功能可確保即使本機代碼也受應用程序沙箱的約束。無論該代碼是包含的應用程序行為的結果還是應用程序漏洞的利用,該系統均旨在防止惡意應用程序損害其他應用程序,Android系統或設備本身。請參閱內核配置,以了解可採取的措施來增強設備上的內核。有關所需設置,請參見Android兼容性定義文檔(CDD)

Linux安全性

Android平台的基礎是Linux內核。 Linux內核已被廣泛使用多年,並且已在數百萬個對安全性敏感的環境中使用。通過其不斷被成千上萬的開發人員研究,攻擊和修復的歷史,Linux已成為許多公司和安全專業人員所信任的穩定且安全的內核。

作為移動計算環境的基礎,Linux內核為Android提供了一些關鍵的安全功能,包括:

  • 基於用戶的權限模型
  • 流程隔離
  • 安全IPC的可擴展機制
  • 刪除內核中不必要和可能不安全的部分的能力

作為多用戶操作系統,Linux內核的基本安全目標是將用戶資源彼此隔離。 Linux安全理念是保護用戶資源彼此之間。因此,Linux:

  • 防止用戶A讀取用戶B的文件
  • 確保用戶A不會耗盡用戶B的內存
  • 確保用戶A不會耗盡用戶B的CPU資源
  • 確保用戶A不會耗盡用戶B的設備(例如,電話,GPS和藍牙)

應用程序沙箱

Android的應用程序安全性由應用程序沙箱強制執行,該沙箱將應用程序彼此隔離,並保護應用程序和系統免受惡意應用程序的侵害。有關更多詳細信息,請參見“ 應用程序沙箱”

系統分區和安全模式

系統分區包含Android的內核以及操作系統庫,應用程序運行時,應用程序框架和應用程序。該分區設置為只讀。當用戶將設備引導進入安全模式時,第三方應用程序可能由設備所有者手動啟動,但默認情況下未啟動。

文件系統權限

在UNIX風格的環境中,文件系統權限可確保一個用戶無法更改或讀取另一用戶的文件。對於Android,每個應用程序均以其自己的用戶身份運行。除非開發人員與其他應用程序明確共享文件,否則一個應用程序無法讀取或更改由一個應用程序創建的文件。

增強安全性的Linux

Android使用增強安全性Linux(SELinux)來應用訪問控制策略並在進程上建立強制性訪問控制(mac)。有關詳細信息,請參見Android中的增強安全性的Linux

驗證啟動

Android 6.0及更高版本支持經過驗證的啟動和device-mapper-verity。從引導的硬件根到系統分區,經過驗證的引導可確保設備軟件的完整性。在引導過程中,每個階段在執行前都會以密碼方式驗證下一階段的完整性和真實性。

Android 7.0及更高版本支持嚴格執行的已驗證啟動,這意味著受感染的設備無法啟動。

有關更多詳細信息,請參見驗證啟動

密碼學

Android提供了一組供應用程序使用的加密API。這些包括標準和常用密碼原語的實現,例如AES,RSA,DSA和SHA。此外,還為更高級別的協議(例如SSL和HTTPS)提供了API。

Android 4.0引入了KeyChain類,以允許應用程序將系統憑據存儲用於私鑰和證書鏈。

設備生根

默認情況下,在Android上,只有內核和一小部分核心應用程序具有root權限運行。 Android不會阻止具有root權限的用戶或應用程序修改操作系統,內核或任何其他應用程序。通常,root具有對所有應用程序和所有應用程序數據的完全訪問權限。更改Android設備上的權限以授予對應用程序的根訪問權限的用戶會增加對惡意應用程序和潛在的應用程序漏洞的安全性。

修改自己擁有的Android設備的能力對於使用Android平台的開發人員而言非常重要。在許多Android設備上,用戶都可以解鎖引導加載程序,以允許安裝備用操作系統。這些備用操作系統可以允許所有者獲得root用戶訪問權限,以用於調試應用程序和系統組件或訪問未由Android API呈現給應用程序的功能。

在某些設備上,具有設備物理控制能力和USB電纜的人員能夠安裝向用戶提供root特權的新操作系統。為了防止任何現有用戶數據受到損害,引導加載程序解鎖機制要求引導加載程序擦除所有現有用戶數據,作為解鎖步驟的一部分。通過利用內核漏洞或安全漏洞獲得的根訪問權限可以繞過此保護。

使用存儲在設備上的密鑰對數據加密不會保護應用程序數據免受root用戶的攻擊。應用程序可以使用設備外存儲的密鑰(例如服務器或用戶密碼)進行加密,從而添加一層數據保護。當密鑰不存在時,此方法可以提供臨時保護,但是必須在某個時候將密鑰提供給應用程序,然後root用戶才能訪問它。

保護硬件免受根用戶攻擊的更強大方法是使用硬件解決方案。 OEM可能會選擇實施硬件解決方案,以限制對特定類型內容的訪問,例如用於視頻播放的DRM或用於Google錢包的NFC相關可信存儲。

如果設備丟失或被盜,Android設備上的完整文件系統加密將使用設備密碼來保護加密密鑰,因此,修改引導加載程序或操作系統不足以在沒有用戶設備密碼的情況下訪問用戶數據。

用戶安全功能

文件系統加密

Android 3.0及更高版本提供了完整的文件系統加密,因此可以在內核中對所有用戶數據進行加密。

Android 5.0及更高版本支持全盤加密 。全盤加密使用受用戶設備密碼保護的單個密鑰來保護設備的整個用戶數據分區。引導時,用戶必須提供其憑據才能訪問磁盤的任何部分。

Android 7.0及更高版本支持基於文件的加密 。基於文件的加密允許使用可以獨立解鎖的不同密鑰來加密不同的文件。

有關文件系統加密實施的更多詳細信息,請參見“ 加密”部分。

密碼保護

可以將Android配置為在提供對設備的訪問權限之前驗證用戶提供的密碼。除了防止未經授權使用設備外,此密碼還保護加密密鑰以進行完整的文件系統加密。

設備管理員可能需要使用密碼和/或密碼複雜性規則。

設備管理

Android 2.2及更高版本提供了Android設備管理API,該API在系統級別提供了設備管理功能。例如,內置的Android Email應用程序使用API​​來改善Exchange支持。通過電子郵件應用程序,Exchange管理員可以在設備之間實施密碼策略,包括字母數字密碼或數字PIN。管理員還可以遠程擦除丟失或被盜的手機(即恢復出廠默認設置)。

除了用於Android系統隨附的應用程序之外,這些API還可供設備管理解決方案的第三方提供商使用。 API的詳細信息在“ 設備管理”中提供。