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

Cihaz Tanımlayıcı Bileşim Motoru (DICE), Android'de benimsenen Trusted Computing Group (TCG) spesifikasyonudur. Açılış sırası sırasında yüklenen her donanım yazılımı parçası için güçlü ve değiştirilemez bir dizi şifreleme kimliği oluşturur. Bu kimlikler, bir cihazın güvenlik durumunun uzaktan doğrulanmasını sağlar. Bu doğrulamadan yalnızca ROM'un güvenliği ihlal edilerek kaçılabilir.

DICE türetme süreci

Basitleştirilmiş DICE türetme süreci

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

DICE türetme işlemi, herhangi bir donanım yazılımı görüntüsünde yapılan değişikliklerin, söz konusu aşama ve sonraki her aşama için yeni bir benzersiz tanımlayıcıyla sonuçlanmasını sağlar. Bunun nedeni, yüklenen her donanım yazılımı aşamasının sonraki aşamayı ölçmesi ve onaylaması, atlamayı veya bozulmayı önleyen benzersiz kimlikler ve ilişkili anahtarlar oluşturmasıdır. Salt okunur bellek (ROM), ölçümü, yapılandırmayı ve benzersiz cihaz gizlisini (UDS) bir anahtar türetme işleviyle (KDF) işleyip yüklenecek bir sonraki aşamanın gizlisini türetmektedir. Bu gizli anahtara birleşik cihaz tanımlayıcısı (CDI) denir.

0. Aşama: Başlatma

DICE süreci, yonga setinin ROM'unun UDS'yi genellikle sigortalardan oluşan bir değişmez veri bankasından yüklemesiyle başlar. Bu UDS, çip üretim süreci sırasında kriptografik olarak rastgele bir değerle güvenli bir şekilde hazırlanır. ROM, UDS'yi okuduktan sonra bir sonraki açılışa kadar UDS erişimini kilitlemek için tetikleyici gibi tedarikçiye bağlı bir donanım kilitleme mekanizması kullanır.

1. Aşama: İlk anahtar türetme

ROM, cihazı benzersiz şekilde tanımlayan kalıcı asimetrik anahtar çiftini oluşturmak için UDS'yi bir anahtar türetme işlevine (KDF) girdi olarak kullanır. Güvenli başlatmanın etkin olup olmadığı gibi önyükleme ortamıyla ilgili meta veriler de dahil olmak üzere sonraki donanım yazılımı aşamasını ölçer. Ardından ROM, KDF'deki UDS, donanım yazılımı ölçümü ve yapılandırma verilerini birleştirerek ilk CDI'yi oluşturur. Bu CDI, gizli olarak bir sonraki aşamaya iletilir.

2. ila n. aşama: Yinelenen anahtar türetme

Süreç tekrarlanır. Sonraki tüm aşamalarda, önceki aşamadaki CDI yeni bir KDF'nin girişi olarak kullanılır. Bu KDF, yeni türetilmiş bir CDI oluşturmak için CDI'yi ve sonraki donanım yazılımı görüntüsünün karmasını kullanır. Her aşama kendi anahtar çiftini oluşturur ve bu anahtarı, aşamaya özgü ölçümleri ve ilişkili diğer meta verileri içeren bir sertifikayı imzalamak için kullanır.