TEE đáng tin cậy

Trusty là Hệ điều hành (HĐH) 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 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 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 bị cô lập. Sự cô lập 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ộ xử lý ARM và Intel. Trên hệ thống ARM, Trusty sử dụng Trustzone™ của ARM để ảo hóa bộ xử lý chính và tạo môi trường thực thi an toàn, đáng tin cậy. 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ụ 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ề API Trusty, hãy xem Tài liệu tham khảo API .

Tại sao đáng tin cậy?

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í bằng tiền kết hợp với hệ thống của bên thứ ba không đáng tin cậy sẽ 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ức độ minh bạch mà các hệ thống nguồn đóng không thể thực hiện được.

Android hỗ trợ nhiều triển khai TEE khác nhau nên bạn không bị hạn chế sử dụng Trusty. Mỗi hệ điều hành TEE có cách riêng để triển khai các ứng dụng đáng tin cậy. Sự phân mảnh này có thể là 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 ứ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 tính minh bạch, 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ể hội tụ các công cụ và API phổ biến để giảm nguy cơ tạo ra 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 ứ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 đượ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 biệt lập ở chế độ không có đặc quyền trong lõi 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 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 sẽ thay đổi quy trình chính xác mà Trusty tuân theo, nhưng ví dụ: hạt nhân lên lịch cho các quy trình này bằng cách sử dụng bộ lập lịch quay vòng, dựa trên mức độ ưu tiên được điều khiển bởi dấu tích hẹn giờ an toàn. Tất cả các ứng dụng Trusty đều có chung 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 bằng image kernel Trusty. Toàn bộ image được bootloader ký và xác minh trong quá trình khởi động. Phát triển ứng dụng của bên thứ ba không được hỗ trợ trong Trusty tại thời điểm này. Mặc dù Trusty cho phép phát triển các ứng dụng mới nhưng việc này phải được thực hiện hết sức thận trọng; mỗi ứng dụng mới sẽ tăng diện tích cơ sở tính 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 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 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 nếu không có một số hình thức tin cậy kèm theo. Thông thường, điều này xuất hiện dưới dạng chữ ký điện tử bởi một thực thể được người dùng sản phẩm mà ứng dụng chạy trên đó tin cậy.

Công dụng và ví dụ

Môi trường thực thi đáng tin cậy đang nhanh chóng trở thành tiêu chuẩn trong thiết bị di động. Người dùng ngày càng phụ thuộc nhiều hơn vào thiết bị di động cho cuộc sống hàng ngày của họ và nhu cầu về bảo mật luôn tăng lên. Thiết bị di động có TEE sẽ 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à nó không thể truy cập vào một số vùng RAM, thanh ghi phần cứng và cầu chì ghi một lần nơi chứa dữ liệu bí mật (chẳng hạn như khóa mật mã dành riêng cho thiết bị). được nhà sản xuất lưu giữ. Phần mềm chạy trên bộ xử lý chính ủy quyền mọi hoạt động 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 dành 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 và bảo vệ cao trước 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ệ bằng phát lại, xử lý mã PIN và dấu vân tay an toàn và thậm chí cả phát hiện phần mềm độc hại.