Trusty TEE

Trusty là một hệ điều hành (OS) bảo mật, cung cấp Môi trường thực thi đáng tin cậy (TEE) cho Android. Hệ điều hành Trusty chạy trên cùng một bộ xử lý như hệ điều hành Android, nhưng Trusty được cách ly với phần còn lại của hệ thống bằng cả phần cứng và phần mềm. Trusty và Android chạy song song với nhau. Trusty có quyền truy cập vào toàn bộ sức mạnh của bộ xử lý và bộ nhớ chính của thiết bị nhưng hoàn toàn tách biệt. Tính năng cách ly của Trusty giúp bảo vệ hệ thống này khỏi các ứng dụng độc hại do người dùng cài đặt và các lỗ hổng tiềm ẩn trong Android.

Trusty tương thích với bộ xử lý ARM và Intel. Trên các hệ thống ARM, Trusty sử dụng TrustZone của ARM để ảo hoá bộ xử lý chính và tạo một TEE bảo mật. Tính năng hỗ trợ tương tự cũng có trên các nền tảng Intel x86 bằng Công nghệ ảo hoá của Intel.

Sơ đồ tổng quan về Trusty

Hình 1. Sơ đồ tổng quan về Trusty.

Trusty bao gồm:

  • Một nhân hệ điều hành nhỏ bắt nguồn từ Little Kernel
  • Một trình điều khiển nhân Linux để truyền dữ liệu giữa môi trường bảo mật và Android
  • Một thư viện không gian người dùng Android để giao tiếp với các ứng dụng đáng tin cậy (tức là các tác vụ và dịch vụ bảo mật) thông qua trình điều khiển nhân

Lưu ý: Trusty và Trusty API có thể thay đổi. Để biết thông tin về Trusty API, hãy xem Tài liệu tham khảo về Trusty API.

Ưu điểm của Trusty

Các hệ điều hành TEE khác thường được cung cấp dưới dạng các blob nhị phân của nhà cung cấp bên thứ ba hoặc được phát triển nội bộ. Việc phát triển các hệ thống TEE nội bộ hoặc cấp phép TEE từ bên thứ ba có thể tốn kém đối với các nhà cung cấp hệ thống trên một chip (SoC) và OEM. Chi phí bằng tiền kết hợp với các hệ thống không đáng tin cậy của bên thứ ba tạo ra một hệ sinh thái không ổn định cho Android. Trusty được cung cấp cho các đối tác của mình như một giải pháp thay thế nguồn mở đáng tin cậy và miễn phí cho TEE của họ. Trusty mang đến mức độ minh bạch mà các hệ thống nguồn đóng không thể có được.

Android hỗ trợ nhiều cách triển khai TEE nên bạn không bị hạn chế sử dụng Trusty. Mỗi hệ điều hành TEE đều có một cách triển khai riêng cho các ứng dụng đáng tin cậy. Sự phân mảnh này có thể là một vấn đề đối với các nhà phát triển ứng dụng đáng tin cậy đang cố gắng đảm bảo ứng dụng của họ hoạt động trên mọi thiết bị Android. Việc sử dụng Trusty làm tiêu chuẩn giúp các nhà phát triển ứng dụng tạo và triển khai ứng dụng mà không cần tính đến sự phân mảnh của nhiều hệ thống TEE. TEE Trusty mang đến cho các nhà phát triển và đối tác sự minh bạch, khả năng cộng tác, khả năng kiểm tra mã và khả năng gỡ lỗi đơn giản. Các nhà phát triển ứng dụng đáng tin cậy có thể tập hợp xung quanh các công cụ và API chung để giảm nguy cơ xuất hiện các lỗ hổng bảo mật. Các nhà phát triển này có thể tự tin phát triển một ứng dụng và sử dụng lại ứng dụng đó trên nhiều thiết bị mà không cần phát triển thêm.

Ứng dụng và dịch vụ

Ứng dụng Trusty là một tập hợp các tệp nhị phân (tệp thực thi và tệp tài nguyên), tệp kê khai nhị phân và chữ ký mật mã. Trong thời gian chạy, các ứng dụng Trusty sẽ chạy dưới dạng các quy trình riêng biệt ở chế độ không đặc quyền trong nhân Trusty. Mỗi quy trình chạy trong hộp cát bộ nhớ ảo riêng bằng cách sử dụng các chức năng của đơn vị quản lý bộ nhớ của bộ xử lý TEE. Bản dựng phần cứng sẽ thay đổi quy trình chính xác mà Trusty tuân theo, nhưng ví dụ: hạt nhân sẽ lên lịch cho các quy trình này bằng cách sử dụng trình lập lịch luân phiên dựa trên mức độ ưu tiên do một khoảng thời gian an toàn điều khiển. Tất cả các ứng dụng Trusty đều có cùng mức độ ưu tiên.

Tổng quan về ứng dụng Trusty

Hình 2. Tổng quan về ứng dụng Trusty.

Ứng dụng Trusty của bên thứ ba

Tất cả các ứng dụng Trusty đều do một bên phát triển và được đóng gói cùng với hình ảnh nhân Trusty. Toàn bộ hình ảnh được trình tải khởi động ký và xác minh trong quá trình khởi động. Trusty không hỗ trợ việc phát triển ứng dụng bên thứ ba. Mặc dù Trusty cho phép phát triển các ứng dụng mới, nhưng hãy làm việc này một cách hết sức cẩn thận; mỗi ứng dụng mới sẽ làm tăng diện tích của cơ sở điện toán đáng tin cậy (TCB) của hệ thống. Các ứng dụng đáng tin cậy có thể truy cập vào các bí mật của thiết bị và có thể thực hiện các phép tính hoặc chuyển đổi dữ liệu bằng cách sử dụng các bí mật đó. Khả năng phát triển các ứng dụng mới chạy trong TEE mở ra nhiều khả năng đổi mới. Tuy nhiên, do chính định nghĩa về TEE, những ứng dụng này không thể được phân phối nếu không có một hình thức tin cậy nào đó được đính kèm. Đây là chữ ký số của một pháp nhân mà người dùng sản phẩm mà ứng dụng chạy trên đó tin tưởng.

Cách sử dụng và ví dụ

TEE đang trở thành tiêu chuẩn trên thiết bị di động. Người dùng ngày càng phụ thuộc vào thiết bị di động trong cuộc sống hằng ngày và nhu cầu bảo mật ngày càng tăng. Các thiết bị di động có TEE sẽ an toàn hơn so với các thiết bị không có TEE.

Trên các thiết bị có triển khai TEE, bộ xử lý chính thường được gọi là *không đáng tin cậy*, tức là bộ xử lý này không thể truy cập vào một số vùng nhất định của RAM, các thanh ghi phần cứng và cầu chì chỉ ghi một lần mà nhà sản xuất lưu trữ dữ liệu bí mật (chẳng hạn như khoá mật mã dành riêng cho thiết bị). Phần mềm chạy trên bộ xử lý chính sẽ uỷ quyền mọi thao tác yêu cầu sử dụng dữ liệu bí mật cho bộ xử lý TEE.

Ví dụ phổ biến nhất về điều này trong hệ sinh thái Android là khung DRM cho nội dung được bảo vệ. Phần mềm chạy trên bộ xử lý TEE có thể truy cập vào các khoá dành riêng cho thiết bị cần thiết để giải mã nội dung được bảo vệ. Bộ xử lý chính chỉ thấy nội dung đã mã hoá, mang lại mức độ bảo mật cao và khả năng bảo vệ trước các cuộc tấn công dựa trên phần mềm.

TEE còn có những mục đích sử dụng khác, chẳng hạn như thanh toán di động, ngân hàng an toàn, xác thực đa yếu tố, bảo vệ khi đặt lại thiết bị, bộ nhớ liên tục được bảo vệ khỏi việc phát lại, xử lý an toàn mã PIN và vân tay, thậm chí là phát hiện phần mềm độc hại.