Wat is DICE (Device Identifier Composition Engine)?

Een door de TCG (Trusted Computing Group) vastgelegd mechanisme dat uit een apparaatspecifiek geheim en de meetwaarden van de firmware van elke laag die opstart, met eenrichtingsfuncties geheimen en sleutels per laag afleidt. Elke laag maakt, nadat ze het geheim van de volgende laag heeft gemaakt, haar eigen geheim onleesbaar voordat ze de besturing overdraagt. Als de firmware verandert, veranderen ook de afgeleide sleutels, dus gemanipuleerde firmware kan de juiste sleutels niet gebruiken. Het maakt apparaatidentiteit en attestatie mogelijk, zelfs op kleine microcontrollers zonder TPM.

Japanse benaming: DICE(Device Identifier Composition Engine)

“DICE (Device Identifier Composition Engine)” komt voor in 1 oefenvragen uit 1 onderwerpen, bijv. Hardwarebeveiliging: nieuwste ontwikkelingen.

Vakgebied: Hardwarebeveiliging: nieuwste ontwikkelingen

Geheimen laag voor laag afleiden

Bij de productie krijgt elk apparaat een uniek geheim (UDS: Unique Device Secret) in fuses, een PUF of iets vergelijkbaars. Bij het inschakelen leidt de kleine hardware of ROM-code die als eerste draait met een eenrichtingsfunctie een geheim af dat CDI (Compound Device Identifier) heet, uit de UDS en de hash van de firmware die daarna draait, maakt de UDS onleesbaar en draagt de besturing over. De volgende laag leidt op dezelfde manier uit haar eigen CDI en de meetwaarde van de daaropvolgende laag de volgende CDI af en wist haar eigen CDI voordat ze verdergaat. Zo is het geheim van elke laag gebonden aan de inhoud van alle firmware die tot en met die laag is opgestart.

Sleutels en certificaten

Elke laag kan uit haar CDI deterministisch een sleutelpaar voor ondertekening afleiden. De sleutel voor de apparaatidentiteit (DeviceID) die de eerste laag afleidt, verandert niet zolang die firmware gelijk blijft, dus de fabrikant kan er bij de productie een certificaat voor uitgeven. Voor sleutels van hogere lagen (zoals Alias-sleutels) geeft de laag eronder een certificaat uit dat de meetwaarden bevat, en de keten van certificaten laat aan buitenstaanders zien welk apparaat met welke firmware draait. Dit is de basis van attestatie met DICE.

Voordelen en aandachtspunten

De benodigde hardware is alleen een manier om de UDS te beschermen en een kleine schakeling of ROM-code die de eenrichtingsfunctie berekent, dus het is gemakkelijk toe te voegen, zelfs aan een goedkope microcontroller. Ook als een latere laag een kwetsbaarheid heeft en wordt overgenomen, lekken de CDI's van eerdere lagen en de UDS niet, omdat die zijn gewist. Omdat het bijwerken van firmware de afgeleide sleutels verandert, moeten anderzijds procedures zoals het uitgeven van nieuwe certificaten na een update in het ontwerp worden opgenomen.

Nu oefenen: vragen over DICE (Device Identifier Composition Engine)

Welke uitspraak beschrijft het mechanisme van DICE (Device Identifier Composition Engine), vastgelegd door de TCG, juist?

  1. AAlle apparaten krijgen dezelfde geheime waarde, en ook wanneer de firmware wordt bijgewerkt en verandert, wordt voor altijd dezelfde sleutel als bij de productie gebruikt
  2. BBij elke start wordt via het netwerk een nieuwe sleutel van een server gedownload en gebruikt, en het apparaat bevat zelf geen enkele geheime waarde
  3. CUit het apparaatspecifieke geheim en de meetwaarde van de firmware van de volgende laag wordt het geheim van die laag afgeleid, en elke laag maakt het eigen geheim onleesbaar voordat ze verdergaat
Antwoord en toelichting tonen

Antwoord: C. Uit het apparaatspecifieke geheim en de meetwaarde van de firmware van de volgende laag wordt het geheim van die laag afgeleid, en elke laag maakt het eigen geheim onleesbaar voordat ze verdergaat

Bij DICE leidt de kleine hardware of ROM-code die direct na het inschakelen draait met een eenrichtingsfunctie een geheim af dat CDI heet, uit het apparaatspecifieke geheim (UDS) en de hash van de firmware die als eerste draait. Die firmware gebruikt op haar beurt de meetwaarde van de volgende laag om de CDI van de volgende laag af te leiden, en wist haar eigen CDI voordat ze de besturing overdraagt. Als firmware wordt herschreven, veranderen ook de afgeleide geheimen, dus gemanipuleerde firmware kan zich niet met de juiste sleutel voordoen, en zelfs als een latere laag wordt overgenomen, lekken de geheimen van eerdere lagen niet. Ook op een kleine microcontroller zonder TPM kunnen apparaatidentiteit en attestatie met weinig hardware worden gerealiseerd.

Veelgestelde vragen

Wat is het verschil tussen DICE en een TPM?

Een TPM is een apart onderdeel (of een functie) dat sleutels bewaart, meetwaarden registreert en ondertekent, en vergt vrij veel schakelingen. DICE legt een procedure vast om sleutels uit meetwaarden af te leiden, kan met zeer weinig hardware worden gerealiseerd en laat de meetwaarden doorwerken in de sleutels zelf in plaats van in een logboek. De doelen lijken op elkaar, maar de manier van beschermen en de benodigde omvang verschillen.

Is het een probleem dat sleutels veranderen wanneer de firmware wordt bijgewerkt?

Die verandering is zelf een beveiligingsvoordeel: sleutels van oude firmware kunnen na een update niet meer worden gebruikt. In de praktijk wordt de sleutel voor de apparaatidentiteit afgeleid uit een laag die niet verandert, en worden voor de sleutels van lagen die wel veranderen bij elke update nieuwe certificaten uitgegeven, zodat verschillende lagen verschillend worden behandeld.

“DICE (Device Identifier Composition Engine)” in de toelichting

Vragen met “DICE (Device Identifier Composition Engine)” (1)

  1. Welke uitspraak beschrijft het mechanisme van DICE (Device Identifier Composition Engine), vastgelegd door de TCG, juist?

Verwante termen

Microcontroller (MCU) TPM Arm CCA (Confidential Compute Architecture) CHERI Confidential computing Control-flow-integriteit (control-flow integrity) FIPS 140-3 Getaltheoretische transformatie HBOM (hardware bill of materials) Laserfoutinjectie (laser fault injection)

Naar de woordenlijst