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

Ở cấp hệ điều hành, nền tảng Android cung cấp tính năng bảo mật của nhân Linux, cũng như một cơ sở giao tiếp liên quy trình (IPC) an toàn để cho phép giao tiếp an toàn giữa các ứng dụng chạy trong nhiều quy trình. 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 của ứng dụng. Cho dù mã đó là kết quả của hành vi ứng dụng được đưa vào hay hành vi khai thác lỗ hổng ứng dụng, hệ thống đều được thiết kế để ngăn ứng dụng độc hại gây hại cho các ứng dụng khác, hệ thống Android hoặc chính thiết bị. Hãy xem Tài liệu định nghĩa về khả năng tương thích (CDD) cho Android để biết các chế độ cài đặt bắt buộc.

Bảo mật Linux

Nền tảng của Android là nhân Linux. Nhân hệ điều hành Linux đã được sử dụng rộng rãi trong nhiều năm và được dùng trong hàng triệu môi trường nhạy cảm về bảo mật. Thông qua quá trình không ngừng được hàng nghìn nhà phát triển nghiên cứu, tấn công và khắc phục, 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 tưởng.

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 bảo mật
  • Khả năng xoá các phần không cần thiết và có thể không an toàn của hạt nhân

Là một hệ điều hành đa 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 của 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 hao tổn 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 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

Tính năng bảo mật ứng dụng của Android được thực thi bằng Hộp cát ứng dụng, giúp tách biệt các ứng dụng với nhau và bảo vệ ứng dụng cũng như hệ thống khỏi các ứng dụng độc hại. Để biết thêm thông tin, hãy xem phần 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 chứa hạt 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à ứng dụng. Phân vùng này được đặt ở chế độ chỉ đọc. Khi người dùng khởi động thiết bị sang chế độ an toàn, chủ sở hữu thiết bị có thể chạy ứng dụng bên thứ ba theo cách thủ công nhưng theo mặc định, các ứng dụng này sẽ không chạy.

Quyền đối với hệ thống tệp

Trong môi trường kiểu UNIX, các quyền 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 dưới dạng người dùng riêng. Trừ phi nhà phát triển chia sẻ rõ ràng các tệp với các ứng dụng khác, ứng dụng khác không thể đọc hoặc thay đổi các tệp do một ứng dụng tạo.

Security-Enhanced Linux

Android sử dụng Security-Enhanced Linux (SELinux) để áp dụng các chính sách kiểm soát quyền truy cập và thiết lập quyền kiểm soát quyền truy cập bắt buộc (mac) trên các quy trình. Hãy xem phần Security-Enhanced Linux trong Android để biết thông tin chi tiết.

Xác minh quy trình khởi động

Android 7.0 trở lên hỗ trợ tính năng Khởi động được xác minh được thực thi nghiêm ngặt, nghĩa là các thiết bị bị xâm nhập sẽ không thể khởi động. Tính nă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 sẽ xác minh tính toàn vẹn và tính xác thực của giai đoạn tiếp theo bằng mật mã trước khi thực thi giai đoạn đó.
Hãy xem phần Khởi động được xác minh để biết thêm thông tin chi tiết.

Mật mã học

Android cung cấp một bộ API mật mã để các ứng dụng sử dụng. Các hàm này bao gồm việc triển khai các hàm mật mã gốc tiêu chuẩn và thường dùng 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ộ nhớ thông tin xác thực hệ thống cho khoá riêng tư và chuỗi chứng chỉ.

Can thiệp vào hệ thống của thiết bị

Theo mặc định, trên Android, chỉ nhân và một nhóm nhỏ các dịch vụ cốt lõi mới chạy bằng quyền truy cập thư mục gốc. SELinux vẫn hạn chế các quy trình không gian người dùng chạy dưới quyền root. Tính năng Khởi động đã xác minh ngăn người dùng hoặc dịch vụ có quyền gốc chỉnh sửa 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ó thể mở khoá trình tải 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 truy cập vào quyền truy cập thư mục gốc cho mục đích gỡ lỗi ứng dụng và các thành phần hệ thống hoặc truy cập vào các tính năng không được API Android hiển thị cho ứng dụng.

Trên một số thiết bị, người có quyền kiểm soát thực tế đối với thiết bị và cáp USB có thể cài đặt một hệ điều hành mới cung cấp đặc quyền cấp gốc 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ở khoá trình tải khởi động yêu cầu trình tải khởi động xoá mọi dữ liệu người dùng hiện có trong bước mở khoá. Quyền truy cập thư mục gốc có được thông qua việc khai thác lỗi hạt nhân hoặc lỗ hổng bảo mật có thể bỏ qua biện pháp bảo vệ này.

Việc mã hoá dữ liệu bằng khoá đượ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 có quyền truy cập thư mục gốc trên thiết bị đã bị can thiệp vào hệ thống. Ứng dụng có thể thêm một lớp bảo vệ dữ liệu bằng cách mã hoá bằng khoá đượ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 của người dùng. Phương pháp này có thể cung cấp biện pháp bảo vệ tạm thời khi khoá không có sẵn, nhưng tại một thời điểm nào đó, khoá phải được cung cấp cho ứng dụng và sau đó người dùng cấp cao có thể truy cập vào khoá đó.

Một phương pháp mạnh mẽ hơn để bảo vệ dữ liệu khỏi người dùng cấp gốc là thông qua việc sử dụng các giải pháp phần cứng. Nhà sản xuất thiết bị gốc (OEM) có thể chọn triển khai các giải pháp phần cứng hạn chế quyền truy cập vào một số loại nội dung cụ thể, chẳng hạn như DRM để phát 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, tính năng mã hoá bộ nhớ đảm bảo rằng không thể truy cập vào dữ liệu người dùng nếu không biết thông tin xác thực của người dùng trên màn hình khoá.

Các tính năng bảo mật dành cho người dùng

Mã hoá bộ nhớ

CDD yêu cầu tất cả thiết bị chạy Android 10 trở lên và hầu hết thiết bị chạy Android 6.0 trở lên phải bật tính năng mã hoá bộ nhớ ngay từ đầu.

Cách triển khai hiện tại của Android về việc mã hoá bộ nhớ là mã hoá dựa trên tệp kết hợp với mã hoá siêu dữ liệu. Phương thức mã hoá dựa trên tệp mã hoá nội dung và tên tệp một cách minh bạch trên phân vùng dữ liệu người dùng, sử dụng các khoá khác nhau cho các thư mục khác nhau. Thư mục này cung cấp các thư mục bộ nhớ được mã hoá bằng thông tin xác thực và được mã hoá bằng thiết bị cho mỗi người dùng, bao gồm cả hồ sơ công việc.

Tính năng mã hoá siêu dữ liệu bổ sung cho tính năng mã hoá dựa trên tệp. Phương thức này mã hoá tất cả các khối trên phân vùng dữ liệu người dùng chưa được mã hoá bằng phương thức mã hoá dựa trên tệp, bằng cách sử dụng khoá không liên kết với bất kỳ thông tin xác thực nào trên màn hình khoá của người dùng nhưng vẫn được bảo vệ bằng tính năng Xác minh quy trình khởi động.

Bảo vệ thông tin xác thực trên màn hình khoá

Bạn có thể định cấu hình Android để xác minh thông tin xác thực màn hình khoá do người dùng cung cấp (mã PIN, mật khẩu hoặc hình mở khoá) 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 khoá còn bảo vệ khoá mã hoá cho dữ liệu được mã hoá 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 thông tin xác thực trên màn hình khoá và/hoặc các quy tắc về độ phức tạp của 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, API này 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 tích hợp sẵn trên Android sử dụng các API để cải thiện khả năng 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 về thông tin xác thực trên màn hình khoá, bao gồm cả mật khẩu gồm chữ và số hoặc mã PIN gồm số trên các thiết bị. Quản trị viên cũng có thể xoá sạch dữ liệu từ xa (tức là khôi phục chế độ mặc định của nhà sản xuất) trên điện thoại di động 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ũng được cung cấp 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 phần Quản trị thiết bị.