Kể từ ngày 27 tháng 3 năm 2025, bạn nên sử dụng android-latest-release
thay vì aosp-main
để xây dựng và đóng góp cho AOSP. Để biết thêm thông tin, hãy xem phần Thay đổi đối với AOSP.
Công cụ thành phần nhận dạng thiết bị
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
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

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.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[],null,["# Device Identifier Composition Engine\n\nThe Device Identifier Composition Engine (DICE) is a\n[Trusted Computing Group (TCG) specification](https://trustedcomputinggroup.org/what-is-a-device-identifier-composition-engine-dice/)\nthat has been [adopted into Android](https://pigweed.googlesource.com/open-dice/+/refs/heads/android16-release/docs/android.md).\nIt creates a set of strong, immutable cryptographic identities for each piece of firmware loaded\nduring the boot sequence. These identities enable remote verification of a device's security\nposture, which can only be evaded by compromising the ROM.\n\nDICE derivation process\n-----------------------\n\n***Figure 1.** Simplified DICE derivation process.*\n\n\nThe DICE derivation process ensures that any change to any firmware image results in a new unique\nidentifier for that stage and every stage thereafter. This is because each loaded firmware stage\nmeasures and certifies the next, generating unique identities and associated keys that prevent\nbypassing or tampering. The [read-only memory (ROM)](https://en.wikipedia.org/wiki/Read-only_memory)\nprocesses the measurement, configuration, and unique device secret (UDS) with a key derivation\nfunction (KDF) to derive the secret for the next stage to be loaded. This secret is referred to as\na compound device identifier (CDI).\n\n### Stage 0: Initialization\n\n\nThe DICE process begins with the chipset's ROM loading the UDS from a bank of immutable data,\ntypically fuses. This UDS is securely provisioned with a cryptographically random value during the\nchip production process. After reading the UDS, the ROM uses a vendor-dependent hardware-locking\nmechanism such as a latch to lock UDS access until the next boot.\n\n### Stage 1: Initial key derivation\n\n\nThe ROM uses the UDS as input to a [key derivation function (KDF)](https://en.wikipedia.org/wiki/Key_derivation_function)\nto generate the permanent asymmetric key pair that uniquely identifies that device. It measures\nthe next firmware stage, including metadata about the boot environment such as whether secure boot\nis enabled. The ROM then combines the UDS, firmware measurement, and configuration data in the KDF\nto derive the first CDI, which is passed to the next stage as a secret.\n\n### Stage 2 to n: Recursive key derivation\n\n\nThe process then repeats. In all subsequent stages, the CDI from the previous stage serves as the\ninput for a new KDF. This KDF uses the CDI and the hash of the next firmware image to produce a\nnew derived CDI. Each stage generates its own key pair and uses it to sign a certificate\ncontaining stage-specific measurements and other associated metadata."]]