Blog

i.MX8 Secure Boot leicht gemacht – Code Signing mit Yocto

Wednesday, 06 Apr 2022  |  Nathan Drude

Inzwischen haben die meisten Programmierer von Secure Boot und den Vorteilen seiner Verwendung gehört. Nach einem kurzen Blick in die Dokumentation erscheint Secure Boot jedoch zu kompliziert und zeitaufwändig und wird als „gewünscht, aber nicht notwendig“ für die Zukunft beiseite gelegt. Kommt Ihnen das bekannt vor?

 

Mit der Integration von Secure Boot und Yocto duch Variscite, war es nie einfacher, Secure Boot auf Ihrem Variscite i.MX8-basierten Produkt zu aktivieren. Während das manuelle Erstellen und Signieren Ihrer Images außerhalb des Yocto-Build-Systems viele Schritte erfordert und Raum für menschliche Fehler lässt, spart die Nutzung von Yocto zum automatischen Signieren Ihrer Images Zeit, ist leicht reproduzierbar, kann an viele Entwickler verteilt werden und erfordert nur eine kleine Konfiguration in local.conf.

 

Was ist Secure Boot und wer sollte es verwenden?
Secure Boot ist der Prozess der Authentifizierung der Boot-Images und des Betriebssystems in Ihrem Produkt. So können Sie darauf vertrauen, dass die Software, die auf Ihrem Produkt läuft, authentisch ist und nicht von Externen modifiziert oder ersetzt wurde. Unter anderem verhindert dies, dass Ihr Produkt umfunktioniert oder mit bösartiger Boot- oder Betriebssystem-Software infiziert wird.

 

Wie funktioniert es?
Die Produktfamilien i.MX8 (i.MX8Q und iMX8X) und i.MX8M (i.MX8M, i.MX8M Mini, i.MX8M Nano und iMX8M Plus) SoC verfügen über eine optionale Hardware-Funktion zur Aktivierung von Secure Boot. Die Produktfamilie i.MX8M bietet High Assurance Boot (HAB), und die Produktfamilie i.MX8 bietet Advanced High Assurance Boot (AHAB). Auch wenn die Architektur sich in den beiden Produktfamilien leicht unterscheidet, erzielen beide dasselbe Endergebnis.
Die HAB/AHAB-Authentifizierung basiert auf der Kryptographie mit öffentlichem Schlüssel. Die Authentifizierung erfolgt über einen Super Root Key (SRK), der ein RSA-Schlüsselpaar ist. Die Boot-Images werden offline mit dem privaten Schlüssel signiert. Die entstehenden signierten Images werden dann mit dem entsprechenden öffentlichen Schlüssel auf dem i.MX-Prozessor verifiziert. Der öffentliche Schlüssel ist in der endgültigen Binärdatei enthalten, und ein Hash des öffentlichen Schlüssels ist im SoC in einmalig programmierbaren E-Fuses programmiert, um die Vertrauenswurzel zu schaffen.
Das erste Boot-Bild wird vom i.MX ROM Bootloader authentifiziert. Jedes Image ruft dann die HAB/AHAB-API auf, um das nächste Bild zu authentifizieren und eine Vertrauenskette aufzubauen.

 

DART-MX8M
DART-MX8M SoM

 

Wie beginne ich?
Die Yocto-Schicht von Variscite, meta-variscite-hab, macht den Einstieg in die Nutzung von Secure Boot auf Ihrem Produkt einfach. Der allgemeine Prozess läuft wie folgt ab:

 

  1. Folgen Sie der Wiki-Anleitung von Variscite „Yocto aus dem Quellcode bauen“, um Ihre Yocto-Build-Umgebung einzurichten
  2. Laden Sie sich das Code Signing Tool (CST) von NXP herunter
  3. Verwenden Sie CST zur Erstellung eines Public-Key-Infrastructure (PKI)-Baums. Dies muss nur einmal gemacht werden.
  4. Konfigurieren Sie meta-variscite-hab in conf/local.conf mit den benutzerdefinierten spezifischen Informationen
  5. Verwenden Sie bitbake zur Erstellung eines signierten SD-Karten-Images
  6. U-Boot: Programmieren Sie i.MX SoC E-Fuses mit SRK Public Key Hash
  7. U-Boot: Verifizieren Sie das signierte Image, indem Sie running hab_status oder ahab_status ausführen
  8. U-Boot: Schließen Sie das Gerät, indem Sie in eine spezielle SoC-E-Fuse schreiben

Um eine vollständige Schritt-für-Schritt-Anleitung zu erhalten, besuchen Sie bitte das Variscite-Software-Wiki für Ihr Variscite SoM:

 

Letzte Beiträge
Software releases
August 2025 Software Releases
Bleiben Sie mit Software-Updates auf dem Laufenden – Sorgen Sie mit unseren neuesten Software-Versionen dafür, dass Ihre Variscite-SoMs immer die optimale Leistung erbringen.
 
10.09.2025
Newsroom
Variscite and Memfault
Variscite ist eine strategische Partnerschaft mit Memfault eingegangen, um die Möglichkeiten des Gerätemanagements in seinem System on Module (SoM)-Portfolio zu erweitern, einschließlich Modulen basierend auf on DART-MX95, VAR-SOM-MX93, DART-MX8M-PLUS, und VAR-SOM-AM62P. Diese Zusammenarbeit stattet Ingenieursteams mit fortschrittlichen Tools für die Fernüberwachung, Fehlerbehebung und sichere Bereitstellung von Software-Updates aus.
Erweiterte Überwachung und Over-the-Air (OTA)-Updates für eingebettete Geräte
Die Integration mit der Plattform von Memfault erweitert die Lösungen von Variscite um fortschrittliche Diagnosefunktionen. Entwicklungsteams erhalten Zugriff auf wertvolle Daten von Endgeräten, wie etwa Leistungsmetriken, Systemereignisse und Betriebsstatistiken, ohne dass ein physischer Zugriff erforderlich ist. Diese Transparenz ermöglicht eine proaktive Wartung und ermöglicht Ingenieuren, Probleme zu erkennen und zu beheben, ohne auf das Feedback der Endbenutzer angewiesen zu sein.
21.05.2025
Blog
VAR-SOM-MX8M-PLUS
In der sich ständig weiterentwickelnden Landschaft eingebetteter Systeme kann die Auswahl des geeigneten Linux den Erfolg Ihres Projekts erheblich beeinflussen. Obwohl es verschiedene Möglichkeiten zur Erstellung eingebetteter Betriebssysteme gibt, konzentrieren wir uns auf zwei leistungsstarke Kandidaten: Yocto und Debian. Das Verständnis ihrer unterschiedlichen Eigenschaften und Fähigkeiten hilft Ihnen, eine fundierte Entscheidung zu treffen und die optimale Wahl für die Anforderungen Ihrer Anwendung zu treffen.
30.07.2025