Cihaz Tanımlayıcısı Oluşturma Motoru

Cihaz Tanımlayıcı Bileşim Motoru (DICE), Trusted Computing Group tarafından geliştirilen ve Android'de kullanılan bir spesifikasyondur. DICE, bir cihaz için değişmez bir kriptografik kimlik oluşturmayı ve önyükleme sırasında yüklenen donanım yazılımının uzaktan doğrulanabilir bir ölçümünü sağlamayı amaçlar. Bu işlem ayrıca, yüklenen her donanım yazılımı parçası için kriptografik kimlikler oluşturur. Bu kimlikler tamamen temel kimliğe ve belirli bir önyükleme sırasında yüklenen her donanım yazılımı görüntüsüne bağlıdır.

DICE, yonga setinin ROM'u, çip üretim sürecinde kriptografik olarak rastgele bir değerle güvenli bir şekilde temel hazırlığı yapılan, genellikle sigortalardan oluşan değişmez bir veri bankasından benzersiz bir cihaz gizlisi (UDS) yüklediğinde başlar. ROM bu gizli bilgiyi okuduğunda, mandal gibi tedarikçiye bağlı bir donanım kilitleme mekanizması kullanarak UDS'ye başka bir erişim yapılmasını engeller. UDS'ye erişim bir sonraki başlatma işlemine kadar geri yüklenmez.

ROM, belirli bir cihazı tanımlayan kalıcı asimetrik anahtar çiftini oluşturmak için UDS'yi bir anahtar türetme işlevine (KDF) girdi olarak kullanır. ROM, önyükleme sırasında donanım yazılımının bir sonraki aşamasını yükler ve ölçer. Bu sırada, ilgili önyükleme için ortamla ilgili ek meta veriler (ör. güvenli önyüklemenin etkin olup olmadığı) belirtir. ROM, bir sonraki aşamanın yüklenmesi için gizli anahtarı elde etmek üzere ölçümü, yapılandırmayı ve UDS'yi bir KDF ile işler. Bu gizli anahtara birleşik cihaz tanımlayıcısı (CDI) denir.

Daha sonra işlem tekrarlanır. CDI, bir sonraki aşamanın UDS'si olarak çalışır. Bu aşama bir anahtar çifti oluşturur ve CDI, başka bir türetilmiş CDI değeri oluşturmak için yüklenecek sonraki resmin karmasıyla birlikte bir KDF'ye girilir.

Yüklenen donanım yazılımı, oluşturulan anahtar çiftlerini kullanarak CBOR Nesne İmzalama ve Şifreleme (COSE) Sign1 sertifikalarını imzalar. Her aşama, yüklenecek bir sonraki aşama üzerinde bir sertifika imzalar. Bu sertifika, ilgili aşamanın ölçümü, önyüklemenin bulunduğu mod, ilgili aşamanın CDI ortak anahtarı ve ilişkili diğer meta veriler gibi bilgileri içerir.

Basitleştirilmiş DICE türev işlemi süreci

Şekil 1. Basitleştirilmiş DICE türetme süreci.

Bu işlem, yüklü bir donanım yazılımı resmindeki herhangi bir değişikliğin hem kendi CDI değerini hem de sonraki tüm aşamaların CDI değerlerini değiştirmesini sağlar. Bu da, yüklenen her donanım yazılımı kombinasyonunun benzersiz kimlikler ve ilişkili anahtarlar oluşturduğu anlamına gelir. Ayrıca imzalama, her aşamanın bir önceki aşama tarafından ölçülmesini ve onaylanmasını garanti edecek şekilde yapılır ve kendi sertifikasını oluşturarak herhangi bir aşamanın ölçümden kaçınmasını sağlar. Bu, ROM'un güvenliği ihlal edilmediği sürece cihazın güvenlik durumuna yönelik yamalar uygulanıp cihaz dışından uzaktan doğrulanabileceği anlamına gelir.