Ở cấp độ hệ điều hành, nền tảng Android cung cấp tính bảo mật của nhân Linux cũng như phương tiện giao tiếp giữa các tiến trình (IPC) an toàn để cho phép liên lạc an toàn giữa các ứng dụng chạy trong các tiến 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 việc khai thác lỗ hổng ứng dụng thì hệ thống vẫn đượ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 nhằm củng cố hạt nhân trên thiết bị của mình. Xem Tài liệu Định nghĩa Tương thích 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 được nghiên cứu, tấn công và sửa lỗi bởi hàng nghìn nhà phát triển, Linux đã trở thành một hạ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à nền tảng 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à tách biệt các 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 người dùng lẫn 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 làm cạn kiệ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 làm cạn kiệ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, hộp cát này cách ly 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, hãy 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ệ tính 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 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 người dùng riêng. Trừ khi nhà phát triển chia sẻ tệp một cách rõ ràng với các ứng dụng khác, các tệp do một ứng dụng tạo ra sẽ không thể được đọc hoặc thay đổi bởi ứng dụng khác.
Linux được 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 đã được xác minh
Android 7.0 trở lên hỗ trợ quá trình khởi động được xác minh được thực thi nghiêm ngặt, điều đó có nghĩa là các thiết bị bị xâm nhập không thể khởi động được. 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ừ phần cứng tin cậy gốc cho đến phân vùng hệ thống. Trong quá trình khởi động, mỗi giai đoạn sẽ 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 thi 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 tắc mã hóa tiêu chuẩn và được sử dụng phổ biến như AES, RSA, DSA và SHA. Ngoài ra, 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 khóa riêng 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 tiến trình không gian người dùng chạy bằng root. Khởi động được xác minh sẽ 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 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 mà API Android không cung cấp cho ứng dụng.
Trên một số thiết bị, người có quyền kiểm soát vật lý 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 việc khai thác lỗi kernel hoặc lỗ hổng bảo mật có thể vượt qua sự 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 bằng 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 khi không có khóa, nhưng đến một lúc nào đó, 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à sử dụng các giải pháp phần cứng. OEM có thể chọn triển khai các giải pháp phần cứng nhằm 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ộ lưu trữ đáng tin cậy liên quan đến NFC cho ví Google. 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ể bị truy cập nếu không biết thông tin xác thực trên 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 Android 10 trở lên và hầu hết các thiết bị khởi chạy Android 6.0 trở lên đều phải bật mã hóa bộ nhớ ngay lập tức.
Việc triển khai mã hóa bộ nhớ 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 một cách minh bạch 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à mã hóa 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 một khóa không bị ràng buộc với thông tin xác thực màn hình khóa của bất kỳ người dùng nào nhưng vẫn được bảo vệ bởi Khởi động đã xác minh.
Bảo vệ thông tin xác thực 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 (mã PIN, mật khẩu hoặc mẫu) trước khi 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 thông tin xác thực. Quản trị viên thiết bị có thể yêu cầu sử dụng thông tin xác thực màn hình khóa và/hoặc quy tắc phức tạp về thông tin xác thực.
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à khôi phục cài đặt gốc) cá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 đi kèm với hệ thống Android, các API này còn có sẵn cho các nhà cung cấp giải pháp Quản lý thiết bị bên thứ ba. Chi tiết về API được cung cấp tại Quản trị thiết bị .