Trusty là một Hệ điều hành (OS) an toàn 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ý với hệ điều hành Android, nhưng Trusty bị cô lập với phần còn lại của hệ thống bởi 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 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 bị cô lập. Sự cách ly của Trusty bảo vệ nó 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ộ vi xử lý ARM và Intel. Trên các hệ thống ARM, Trusty sử dụng Trustzone ™ của ARM để ảo hóa bộ xử lý chính và tạo ra một môi trường thực thi đáng tin cậy an toàn. Hỗ trợ tương tự cũng có sẵn trên nền tảng Intel x86 sử dụng Công nghệ ảo hóa của Intel.

Hình 1 . Sơ đồ tổng quan đáng tin cậy.
Trusty bao gồm:
- Một nhân hệ điều hành nhỏ có nguồn gốc từ Little Kernel
- Trình điều khiển nhân Linux để truyền dữ liệu giữa môi trường an toàn 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 (nghĩa là các tác vụ / dịch vụ an toàn) 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ề API Trusty, hãy xem Tham chiếu API .
Tại sao Trusty?
Các hệ điều hành TEE khác theo truyền thống được cung cấp dưới dạng các đốm màu nhị phân bởi 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ể gây tốn kém 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 của 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 mình như 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ột mức độ minh bạch không thể có với các hệ thống mã nguồn đóng.
Android hỗ trợ các triển khai TEE khác nhau, do đó bạn không bị hạn chế khi sử dụng Trusty. Mỗi hệ điều hành TEE có cách triển khai ứng dụng đáng tin cậy riêng. 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. Sử dụng Trusty làm tiêu chuẩn giúp các nhà phát triển ứng dụng dễ dàng tạo và triển khai các ứng dụng mà không tính đến sự phân mảnh của nhiều hệ thống TEE. Trusty TEE cung cấp cho các nhà phát triển và đối tác sự minh bạch, cộng tác, khả năng kiểm tra của mã và dễ dàng gỡ lỗi. Các nhà phát triển ứng dụng đáng tin cậy có thể hội tụ xung quanh các công cụ và API phổ biến để giảm nguy cơ giới thiệu các 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 nó 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 được định nghĩa 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 chạy dưới dạng các tiến trình cô lập ở chế độ không đặc quyền trong hạt nhân Trusty. Mỗi quá trình chạy trong hộp cát bộ nhớ ảo của riêng nó sử dụng khả năng của đơn vị quản lý bộ nhớ của bộ xử lý TEE. Việc xây dựng phần cứng thay đổi quy trình chính xác mà Trusty tuân theo, nhưng ví dụ: hạt nhân lập lịch cho các quy trình này bằng cách sử dụng bộ lập lịch vòng tròn, dựa trên mức độ ưu tiên được điều khiển bởi một dấu hẹn giờ an toàn. Tất cả các ứng dụng Trusty đều có chung một mức độ ưu tiên.

Hình 2 . Tổng quan về ứng dụng đáng tin cậy.
Ứng dụng Trusty của bên thứ ba
Hiện tại tất cả các ứng dụng Trusty đều được phát triển bởi một bên duy nhất và được đóng gói với hình ảnh hạt nhân Trusty. Toàn bộ hình ảnh được bộ nạp khởi động ký và xác minh trong quá trình khởi động. Trusty hiện không hỗ trợ phát triển ứng dụng của bên thứ ba. Mặc dù Trusty cho phép phát triển các ứng dụng mới, nhưng làm như vậy phải được thực hiện 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ơ sở tính toán tin cậy (TCB) của hệ thống. Các ứng dụng đáng tin cậy có thể truy cập bí mật của thiết bị và có thể thực hiện tính toán hoặc biến đổi dữ liệu bằng cách sử dụng chúng. 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 mà không có một số hình thức ủy thác kèm theo. Thông thường, điều này có dạng chữ ký điện tử của một thực thể được người dùng tin cậy của sản phẩm mà ứng dụng chạy trên đó.
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 phụ thuộc nhiều hơn vào các thiết bị di động cho cuộc sống hàng ngày của họ và nhu cầu bảo mật luôn tăng lên. 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ị có triển khai TEE, bộ xử lý chính thường được gọi là "không đáng tin cậy", có nghĩa là nó không thể truy cập vào các khu vực nhất định của RAM, thanh ghi phần cứng và kết hợp ghi một lần nơi dữ liệu bí mật (chẳng hạn như khóa mật mã dành riêng cho thiết bị). do nhà sản xuất lưu trữ. Phần mềm chạy trên bộ xử lý chính ủy quyền bất kỳ hoạt động nào yêu cầu sử dụng dữ liệu bí mật cho bộ xử lý TEE.
Ví dụ được biết đến rộng rãi 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 các khóa 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ỉ nhìn thấy nội dung được mã hóa, cung cấp mức độ bảo mật cao và bảo vệ chống lại các cuộc tấn công dựa trên phần mềm.
Có nhiều cách sử dụng khác cho TEE như thanh toán di động, ngân hàng an toàn, xác thực đa yếu tố, bảo vệ thiết lập lại thiết bị, lưu trữ liên tục được bảo vệ lại, xử lý mã PIN và dấu vân tay an toàn và thậm chí là phát hiện phần mềm độc hại.