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

Cihaz Tanımlayıcı Bileşen Motoru (DICE), Trusted Computing Group (TCG) spesifikasyonudur ve Android'e dahil edilmiştir. Başlatma sırası sırasında yüklenen her bir donanım yazılımı parçası için güçlü ve değişmez şifreleme kimlikleri oluşturur. Bu kimlikler, cihazın güvenlik durumunun uzaktan doğrulanmasını sağlar. Bu doğrulama yalnızca ROM'un güvenliği ihlal edilerek atlatılabilir.

DICE türetme süreci

Basitleştirilmiş DICE türetme süreci

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

DICE türetme süreci, herhangi bir donanım yazılımı görüntüsünde yapılan herhangi bir değişikliğin, o 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 bir sonrakini ölçüp onaylaması, böylece atlamayı veya kurcalamayı önleyen benzersiz kimlikler ve ilişkili anahtarlar oluşturmasıdır. Salt okunur bellek (ROM), bir anahtar türetme işlevi (KDF) ile ölçümü, yapılandırmayı ve benzersiz cihaz sırrını (UDS) işleyerek yüklenecek bir sonraki aşamanın sırrını türetir. Bu sır, bileşik cihaz tanımlayıcısı (CDI) olarak adlandırılır.

0. Aşama: Başlatma

DICE süreci, yonga setinin ROM'unun UDS'yi genellikle sigortalar olan değişmez bir 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 sağlanır. ROM, UDS'yi okuduktan sonra bir mandal gibi tedarikçiye bağlı bir donanım kilitleme mekanizması kullanarak UDS erişimini bir sonraki başlatmaya kadar kilitler.

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

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

2. aşamadan n. aşamaya: Yinelemeli anahtar türetme

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