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. Trusty OS chạy trên cùng một bộ xử lý với Android OS, nhưng Trusty được tách biệt 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 tách biệt của Trusty bảo vệ Trusty 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 có thể được phát hiệ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 môi trường thực thi đáng tin cậy và an toàn. Hỗ trợ tương tự cũng có sẵn trên các nền tảng Intel x86 sử dụng Công nghệ ảo hoá của Intel.

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
- Trình điều khiển hạt nhân Linux để chuyển dữ liệu giữa môi trường bảo mật và Android
- 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ụ/dịch vụ bảo mật) thông qua trình điều khiển hạt nhân
Lưu ý: Trusty và API Trusty có thể thay đổi. Để biết thông tin về Trusty API, hãy xem Tài liệu tham khảo API.
Tại sao nên dùng Trusty?
Các hệ điều hành TEE khác thường được cung cấp dưới dạng tệp nhị phân của các nhà cung cấp bên thứ ba hoặc được phát triển nội bộ. Việc phát triển 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 chi phí cho các nhà cung cấp Hệ thống trên chip (SoC) và OEM. Chi phí tiền tệ kết hợp với các hệ thống bên thứ ba không đáng tin cậy tạo ra một hệ sinh thái không ổn định cho Android. Trusty đang được cung cấp cho các đối tác của Google dưới dạng một giải pháp thay thế nguồn mở miễn phí và đáng tin cậy cho Môi trường thực thi đáng tin cậy của họ. Trusty cung cấp mức độ minh bạch mà các hệ thống nguồn đóng không thể có được.
Android hỗ trợ nhiều phương thức triển khai TEE để bạn không bị hạn chế sử dụng Trusty. Mỗi hệ điều hành TEE đều có cách triển khai ứng dụng đáng tin cậy riêng. Tình trạng phân mảnh này có thể gây ra vấn đề cho các nhà phát triển ứng dụng đáng tin cậy khi 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 nhà phát triển ứng dụng dễ 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. Trusty TEE mang đến cho nhà phát triển và đối tác tính minh bạch, khả năng cộng tác, khả năng kiểm tra mã và dễ dàng gỡ lỗi. Các nhà phát triển ứng dụng đáng tin cậy có thể tập trung vào các công cụ và API phổ biến để giảm nguy cơ tạo ra lỗ hổng bảo mật. Những nhà phát triển này sẽ tự tin rằng họ có thể 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 đáng tin cậy được xác định 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ã hoá. Trong thời gian chạy, các ứng dụng Trusty chạy dưới dạng các quy trình riêng biệt ở chế độ không đặc quyền trong hạt nhân Trusty. Mỗi quy trình chạy trong hộp cát bộ nhớ ảo riêng, 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 thay đổi quy trình chính xác mà Trusty tuân theo, nhưng ví dụ: nhân sẽ lên lịch các quy trình này bằng cách sử dụng trình lập lịch biểu theo vòng tròn dựa trên mức độ ưu tiên do một kim đánh dấu thời gian bảo mật điều khiển. Tất cả ứng dụng Trusty đều có cùng mức độ ưu tiên.

Hình 2. Tổng quan về ứng dụng đáng tin cậy.
Ứng dụng đáng tin cậy của bên thứ ba
Hiện tại, tất cả ứng dụng Trusty đều do một bên phát triển và được đóng gói bằng hình ảnh hạt 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. Hiện tại, Trusty không hỗ trợ 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 bạn phải thực hiện việc này một cách cực kỳ 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 khoá 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 khoá 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 định nghĩa của TEE, các ứng dụng này không thể được phân phối nếu không có một số hình thức tin cậy đi kèm. Thông thường, chữ ký này có dạng chữ ký số do một pháp nhân mà người dùng sản phẩm nơi ứng dụng chạy tin cậy.
Cách sử dụng và ví dụ
Môi trường thực thi đáng tin cậy đang nhanh chóng trở thành một tiêu chuẩn trong các thiết bị di động. Người dùng ngày càng dựa vào thiết bị di động trong cuộc sống hằng ngày và nhu cầu bảo mật luôn gia tăng. Thiết bị di động có TEE an toàn hơn thiết bị không có TEE.
Trên các thiết bị triển khai TEE, bộ xử lý chính thường được gọi là "không đáng tin cậy", nghĩa là bộ xử lý này không thể truy cập vào một số khu vực nhất định của RAM, thanh ghi phần cứng và cầu 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 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à bảo vệ khỏi các cuộc tấn công dựa trên phần mềm.
TEE còn có nhiều ứng dụng khác như thanh toán di động, ngân hàng bảo mật, xác thực đa yếu tố, bảo vệ khi đặt lại thiết bị, bộ nhớ cố định được bảo vệ chống phát lại, xử lý vân tay và mã PIN bảo mật, thậm chí là phát hiện phần mềm độc hại.