Công cụ thành phần nhận dạng thiết bị

Công cụ kết hợp giá trị nhận dạng thiết bị (DICE) là một quy cách của Nhóm điện toán đáng tin cậy (TCG) đã được chuyển sang Android. Công cụ này tạo một tập hợp các giá trị nhận dạng mã hoá mạnh và không thể thay đổi cho từng phần của phần mềm được tải trong trình tự khởi động. Các danh tính này cho phép xác minh từ xa trạng thái bảo mật của thiết bị. Bạn chỉ có thể tránh được việc này bằng cách xâm phạm ROM.

Quy trình dẫn xuất DICE

Quy trình đơn giản hoá việc lấy DICE

Hình 1. Đơn giản hoá quy trình dẫn xuất DICE.

Quy trình dẫn xuất DICE đảm bảo rằng mọi thay đổi đối với hình ảnh firmware đều dẫn đến một giá trị nhận dạng duy nhất mới cho giai đoạn đó và mọi giai đoạn sau đó. Điều này là do mỗi giai đoạn phần mềm đã tải đo lường và chứng nhận giai đoạn tiếp theo, tạo ra các mã nhận dạng duy nhất và các khoá liên kết để ngăn chặn việc bỏ qua hoặc can thiệp. Bộ nhớ chỉ đọc (ROM) xử lý thông tin đo lường, cấu hình và khoá bí mật thiết bị duy nhất (UDS) bằng hàm dẫn xuất khoá (KDF) để lấy khoá bí mật cho giai đoạn tiếp theo được tải. Khoá bí mật này được gọi là giá trị nhận dạng thiết bị phức hợp (CDI).

Giai đoạn 0: Khởi chạy

Quá trình DICE bắt đầu bằng việc ROM của chipset tải UDS từ một nhóm dữ liệu không thể thay đổi, thường là các khối kết hợp. UDS này được cấp phát một cách an toàn bằng một giá trị ngẫu nhiên được mã hoá trong quá trình sản xuất chip. Sau khi đọc UDS, ROM sẽ sử dụng cơ chế khoá phần cứng phụ thuộc vào nhà cung cấp, chẳng hạn như một chốt để khoá quyền truy cập UDS cho đến lần khởi động tiếp theo.

Giai đoạn 1: Trích xuất khoá ban đầu

ROM sử dụng UDS làm dữ liệu đầu vào cho hàm dẫn xuất khoá (KDF) để tạo cặp khoá bất đối xứng vĩnh viễn giúp xác định duy nhất thiết bị đó. Chỉ số này đo lường giai đoạn tiếp theo của phần mềm, bao gồm cả siêu dữ liệu về môi trường khởi động, chẳng hạn như liệu tính năng khởi động bảo mật có được bật hay không. Sau đó, ROM sẽ kết hợp UDS, dữ liệu đo lường phần mềm và cấu hình trong KDF để lấy CDI đầu tiên. CDI này được chuyển đến giai đoạn tiếp theo dưới dạng một bí mật.

Giai đoạn 2 đến n: Trích xuất khoá đệ quy

Sau đó, quá trình này sẽ lặp lại. Trong tất cả các giai đoạn tiếp theo, CDI từ giai đoạn trước đóng vai trò là đầu vào cho một KDF mới. KDF này sử dụng CDI và hàm băm của hình ảnh chương trình cơ sở tiếp theo để tạo ra một CDI phái sinh mới. Mỗi giai đoạn tạo một cặp khoá riêng và sử dụng cặp khoá đó để ký một chứng chỉ chứa các phép đo dành riêng cho giai đoạn và siêu dữ liệu liên quan khác.