Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Hệ thống và bảo mật hạt nhân

Ở cấp độ hệ điều hành, nền tảng Android cung cấp khả năng bảo mật cho nhân Linux, cũng như cơ sở liên lạc giữa các quá trình (IPC) an toàn để cho phép liên lạc an toàn giữa các ứng dụng đang chạy trong các quy trình khác nhau. Các tính năng bảo mật này ở cấp hệ điều hành đảm bảo rằng ngay cả mã gốc cũng bị hạn chế bởi Hộp cát ứng dụng. Cho dù mã đó là kết quả của hành vi ứng dụng đi kèm hay khai thác lỗ hổng ứng dụng, thì hệ thống được thiết kế để ngăn ứng dụng giả mạo gây hại cho các ứng dụng khác, hệ thống Android hoặc chính thiết bị. Xem Cấu hình hạt nhân để biết các biện pháp bạn có thể thực hiện để củng cố hạt nhân trên thiết bị của mình. Xem Tài liệu định nghĩa khả năng tương thích của Android (CDD) để biết các cài đặt bắt buộc.

Bảo mật Linux

Nền tảng của nền tảng Android là nhân Linux. Nhân Linux đã được sử dụng rộng rãi trong nhiều năm và được sử dụng trong hàng triệu môi trường nhạy cảm về bảo mật. Trải qua lịch sử liên tục bị hàng nghìn nhà phát triển nghiên cứu, tấn công và sửa lỗi, Linux đã trở thành một nhân ổn định và an toàn được nhiều tập đoàn và chuyên gia bảo mật tin cậy.

Là cơ sở cho môi trường điện toán di động, nhân Linux cung cấp cho Android một số tính năng bảo mật chính, bao gồm:

  • Mô hình quyền dựa trên người dùng
  • cách ly quy trình
  • Cơ chế mở rộng cho IPC an toàn
  • Khả năng loại bỏ các phần không cần thiết và có khả năng không an toàn của kernel

Là một hệ điều hành nhiều người dùng, mục tiêu bảo mật cơ bản của nhân Linux là cách ly tài nguyên người dùng với nhau. Triết lý bảo mật của Linux là bảo vệ tài nguyên của người dùng khỏi nhau, Linux:

  • Ngăn người dùng A đọc tệp của người dùng B
  • Đảm bảo rằng người dùng A không làm cạn kiệt bộ nhớ của người dùng B
  • Đảm bảo rằng người dùng A không sử dụng hết tài nguyên CPU của người dùng B
  • Đảm bảo rằng người dùng A không sử dụng hết thiết bị của người dùng B (ví dụ: điện thoại, GPS và Bluetooth)

Hộp cát ứng dụng

Bảo mật ứng dụng của Android được thực thi bởi hộp cát ứng dụng, giúp cô lập các ứng dụng với nhau và bảo vệ các ứng dụng cũng như hệ thống khỏi các ứng dụng độc hại. Để biết thêm chi tiết, xem Hộp cát ứng dụng .

Phân vùng hệ thống và Chế độ an toàn

Các phân vùng được bảo vệ toàn vẹn khác nhau chứa nhân của Android cũng như các thư viện hệ điều hành, thời gian chạy ứng dụng, khung ứng dụng và các ứng dụng. Phân vùng này được đặt thành chỉ đọc. Khi người dùng khởi động thiết bị vào Chế độ an toàn, chủ sở hữu thiết bị có thể khởi chạy các ứng dụng của bên thứ ba theo cách thủ công nhưng không được khởi chạy theo mặc định.

Quyền hệ thống tập tin

Trong môi trường kiểu UNIX, các quyền của hệ thống tệp đảm bảo rằng một người dùng không thể thay đổi hoặc đọc các tệp của người dùng khác. Trong trường hợp của Android, mỗi ứng dụng chạy với tư cách là người dùng của chính nó. Trừ khi nhà phát triển chia sẻ rõ ràng các tệp với các ứng dụng khác, các tệp được tạo bởi một ứng dụng không thể được đọc hoặc thay đổi bởi một ứng dụng khác.

Linux tăng cường bảo mật

Android sử dụng Linux được tăng cường bảo mật (SELinux) để áp dụng các chính sách kiểm soát truy cập và thiết lập kiểm soát truy cập bắt buộc (mac) trên các quy trình. Xem Linux được tăng cường bảo mật trong Android để biết chi tiết.

khởi động đã xác minh

Android 7.0 trở lên hỗ trợ khởi động được xác minh nghiêm ngặt, có nghĩa là các thiết bị bị xâm phạm không thể khởi động. Khởi động được xác minh đảm bảo tính toàn vẹn của phần mềm thiết bị bắt đầu từ gốc phần cứng đáng tin cậy cho đến phân vùng hệ thống. Trong quá trình khởi động, mỗi giai đoạn xác minh bằng mật mã tính toàn vẹn và tính xác thực của giai đoạn tiếp theo trước khi thực hiện nó.
Xem Khởi động đã xác minh để biết thêm chi tiết.

mật mã

Android cung cấp một bộ API mật mã để các ứng dụng sử dụng. Chúng bao gồm việc triển khai các nguyên mẫu mật mã tiêu chuẩn và thường được sử dụng như AES, RSA, DSA và SHA. Ngoài ra, các API được cung cấp cho các giao thức cấp cao hơn như SSL và HTTPS.

Android 4.0 đã giới thiệu lớp KeyChain để cho phép các ứng dụng sử dụng bộ lưu trữ thông tin xác thực hệ thống cho các khóa riêng tư và chuỗi chứng chỉ.

Root thiết bị

Theo mặc định, trên Android chỉ có kernel và một tập hợp con nhỏ của các dịch vụ cốt lõi chạy với quyền root. SELinux vẫn hạn chế các quy trình không gian người dùng chạy với quyền root. Khởi động được xác minh ngăn người dùng hoặc dịch vụ có quyền root sửa đổi vĩnh viễn hệ điều hành.

Khả năng sửa đổi thiết bị Android mà họ sở hữu rất quan trọng đối với các nhà phát triển làm việc với nền tảng Android. Trên nhiều thiết bị Android, người dùng có khả năng mở khóa bộ nạp khởi động để cho phép cài đặt một hệ điều hành thay thế. Các hệ điều hành thay thế này có thể cho phép chủ sở hữu có quyền truy cập root nhằm mục đích gỡ lỗi các ứng dụng và thành phần hệ thống hoặc để truy cập các tính năng không được API Android cung cấp cho các ứng dụng.

Trên một số thiết bị, một người có quyền kiểm soát vật lý đối với thiết bị và cáp USB có thể cài đặt hệ điều hành mới cung cấp quyền root cho người dùng. Để bảo vệ mọi dữ liệu người dùng hiện có khỏi bị xâm phạm, cơ chế mở khóa bộ nạp khởi động yêu cầu bộ nạp khởi động xóa mọi dữ liệu người dùng hiện có như một phần của bước mở khóa. Quyền truy cập root có được thông qua khai thác lỗi kernel hoặc lỗ hổng bảo mật có thể vượt qua lớp bảo vệ này.

Mã hóa dữ liệu bằng khóa được lưu trữ trên thiết bị không bảo vệ dữ liệu ứng dụng khỏi người dùng root trên thiết bị đã root. Các ứng dụng có thể thêm một lớp bảo vệ dữ liệu bằng cách sử dụng mã hóa với khóa được lưu trữ bên ngoài thiết bị, chẳng hạn như trên máy chủ hoặc mật khẩu người dùng. Cách tiếp cận này có thể cung cấp sự bảo vệ tạm thời trong khi không có khóa, nhưng tại một số điểm, khóa phải được cung cấp cho ứng dụng và sau đó người dùng root có thể truy cập được.

Một cách tiếp cận mạnh mẽ hơn để bảo vệ dữ liệu khỏi người dùng root là thông qua việc sử dụng các giải pháp phần cứng. Các OEM có thể chọn triển khai các giải pháp phần cứng giới hạn quyền truy cập vào các loại nội dung cụ thể, chẳng hạn như DRM để phát lại video hoặc bộ nhớ đáng tin cậy liên quan đến NFC cho Google Wallet. Trong trường hợp thiết bị bị mất hoặc bị đánh cắp, mã hóa lưu trữ đảm bảo rằng dữ liệu người dùng không thể truy cập được nếu không biết thông tin đăng nhập màn hình khóa của người dùng.

Tính năng bảo mật người dùng

Mã hóa lưu trữ

CDD yêu cầu tất cả các thiết bị khởi chạy với Android 10 trở lên và hầu hết các thiết bị khởi chạy với Android 6.0 trở lên đều phải bật mã hóa bộ nhớ ngay lập tức.

Triển khai mã hóa lưu trữ hiện tại của Android là mã hóa dựa trên tệp kết hợp với mã hóa siêu dữ liệu . Mã hóa dựa trên tệp mã hóa trong suốt nội dung và tên tệp trên phân vùng dữ liệu người dùng, sử dụng các khóa khác nhau cho các thư mục khác nhau. Nó cung cấp các thư mục lưu trữ được mã hóa bằng thông tin xác thực và được mã hóa bằng thiết bị cho mỗi người dùng, bao gồm cả hồ sơ công việc.

Mã hóa siêu dữ liệu bổ sung cho mã hóa dựa trên tệp. Nó mã hóa tất cả các khối trên phân vùng dữ liệu người dùng chưa được mã hóa bằng mã hóa dựa trên tệp, sử dụng khóa không bị ràng buộc với bất kỳ thông tin đăng nhập màn hình khóa nào của người dùng nhưng vẫn được bảo vệ bởi Khởi động được xác minh.

Bảo vệ thông tin đăng nhập màn hình khóa

Android có thể được định cấu hình để xác minh thông tin xác thực màn hình khóa do người dùng cung cấp (PIN, mật khẩu hoặc mẫu) trước khi cung cấp quyền truy cập vào thiết bị. Ngoài việc ngăn chặn việc sử dụng trái phép thiết bị, thông tin xác thực trên màn hình khóa còn bảo vệ khóa mật mã cho dữ liệu được mã hóa bằng thông tin xác thực. Quản trị viên thiết bị có thể yêu cầu sử dụng chứng chỉ màn hình khóa và/hoặc quy tắc độ phức tạp của chứng chỉ.

Quản trị thiết bị

Android 2.2 trở lên cung cấp API quản trị thiết bị Android, cung cấp các tính năng quản trị thiết bị ở cấp hệ thống. Ví dụ: ứng dụng Email Android tích hợp sử dụng API để cải thiện hỗ trợ Exchange. Thông qua ứng dụng Email, quản trị viên Exchange có thể thực thi các chính sách xác thực màn hình khóa — bao gồm mật khẩu chữ và số hoặc mã PIN số — trên các thiết bị. Quản trị viên cũng có thể xóa từ xa (nghĩa là bật khôi phục cài đặt gốc) thiết bị cầm tay bị mất hoặc bị đánh cắp.

Ngoài việc sử dụng trong các ứng dụng có trong hệ thống Android, các API này có sẵn cho các nhà cung cấp giải pháp Quản lý thiết bị bên thứ ba. Thông tin chi tiết về API được cung cấp tại Quản trị thiết bị .