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

Công cụ cấu trúc nhận dạng thiết bị (DICE) là một thông số kỹ thuật của Nhóm tính toán đáng tin cậy đã được áp dụng vào Android. DICE nhằm mục đích tạo một danh tính mã hoá không thể thay đổi cho một thiết bị, cùng với một phép đo có thể xác minh từ xa về phần mềm được tải trong quá trình khởi động. Quá trình này cũng tạo ra các giá trị nhận dạng mã hoá cho từng phần của phần mềm cơ sở được tải. Những danh tính này hoàn toàn phụ thuộc vào danh tính cơ sở và mỗi hình ảnh chương trình cơ sở được tải trong một lần khởi động nhất định.

DICE bắt đầu khi ROM của bộ vi mạch tải một khoá bí mật thiết bị (UDS) duy nhất từ một ngân hàng dữ liệu bất biến, thường là hợp nhất, được cấp phép an toàn với một giá trị ngẫu nhiên được mã hoá trong quá trình sản xuất chip. Khi ROM đã đọc bí mật này, ROM sẽ tắt mọi quyền truy cập khác vào UDS bằng một số 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. Quyền truy cập vào UDS sẽ không được khôi phục cho đến khi quá trình khởi động tiếp theo diễn ra.

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 xác định thiết bị cụ thể đó. ROM tải và đo lường giai đoạn tiếp theo của phần mềm trong trình tự khởi động, đồng thời chỉ định siêu dữ liệu bổ sung về môi trường cho quá trình khởi động cụ thể, chẳng hạn như nếu bạn bật tính năng khởi động bảo mật. ROM xử lý hoạt động đo lường, cấu hình và UDS bằng KDF để lấy mã bí mật cho giai đoạn tiếp theo sẽ đượ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).

Sau đó, quá trình này sẽ lặp lại. CDI đóng vai trò là UDS của giai đoạn tiếp theo, giai đoạn đó sẽ lấy một cặp khoá và CDI được nhập vào KDF cùng với hàm băm của hình ảnh tiếp theo sẽ được tải để tạo một giá trị CDI phái sinh khác.

Phần mềm đã tải sử dụng các cặp khoá đã tạo để ký chứng chỉ Sign1 Ký và mã hoá đối tượng CBOR (COSE). Mỗi giai đoạn sẽ ký chứng chỉ qua giai đoạn tiếp theo sẽ được tải. Chứng chỉ này bao gồm thông tin như kết quả đo lường của giai đoạn đó, chế độ khởi động, khoá công khai CDI cho giai đoạn đó và các siêu dữ liệu liên quan khác.

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

Hình 1. Quy trình dẫn xuất DICE được đơn giản hoá.

Quy trình này giúp đảm bảo rằng mọi thay đổi trong hình ảnh firmware đã tải sẽ thay đổi cả giá trị CDI của chính hình ảnh đó và giá trị CDI của tất cả các giai đoạn tiếp theo. Điều này có nghĩa là mọi tổ hợp phần mềm đã tải sẽ tạo ra các mã nhận dạng và khoá liên kết duy nhất. Hơn nữa, việc ký được thực hiện theo cách đảm bảo rằng mỗi giai đoạn được đo lường và chứng nhận bởi giai đoạn trước, ngăn chặn mọi giai đoạn trốn tránh việc đo lường bằng cách giả mạo chứng chỉ của chính giai đoạn đó. Điều này có nghĩa là miễn là ROM không bị xâm phạm, thì trạng thái bảo mật của thiết bị có thể được vá và xác minh từ xa khi không có thiết bị.