Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Cloud Computing

Arm TrustZone-Sicherheit in der LPC5500-MCU-Serie nutzen

Erfahren Sie, wie Arm TrustZone die Sicherheit in NXPs LPC5500-Mikrocontrollern erhöht und wie sich sichere und unsichere Anwendungen implementieren lassen.

Mit der Verbreitung vernetzter Geräte nehmen auch raffinierte Bedrohungen zu. NXP begegnet diesem Trend, indem es robuste Sicherheitsprimitive in die LPC5500-MCU-Familie integriert: einen FIPS-konformen Zufallszahlengenerator, die „Prince“-Verschlüsselungs-Engine für die Ausführung verschlüsselten Codes und einen 4096-Bit-On-Chip-Schlüssel, der via PUF-Technologie generiert wird. Gekoppelt mit dem kryptografischen On-Chip-Beschleuniger „CASPER“ eignen sich diese MCUs ideal für IoT-Einsätze am Netzwerkrand, die Ende-zu-Ende-Schlüsselbereitstellung und widerstandsfähige Cybersicherheit erfordern.

Zentral für diese Fähigkeit ist Arm TrustZone für Cortex-M. Die folgenden Abschnitte führen Sie durch die Grundlagen und zeigen, wie Sie diese in Ihren Projekten nutzen können.

Arm TrustZone für Cortex-M

TrustZone schafft zwei isolierte Ausführungskontexte: eine sichere Welt, die proprietären oder sensiblen Code beherbergt, und eine nicht-sichere Welt für Benutzeranwendungen. Die proprietären Bibliotheken des Herstellers können im ROM residieren, geschützt vor Reverse Engineering, und dennoch über eine kontrollierte Schnittstelle von Anwendungscode aufgerufen werden.

Abbildung 1 veranschaulicht das Zusammenwirken von sicherem ROM und unsicherem Benutzercode auf demselben Silizium.

Arm TrustZone-Sicherheit in der LPC5500-MCU-Serie nutzen
Abbildung 1. Sicheres ROM und unsicherer Benutzercode teilen sich denselben MCU, sind aber isoliert.

Übergänge zwischen den beiden Welten werden durch TrustZones Sicherheitserweiterung geregelt, wodurch sichergestellt wird, dass eine unsichere Anwendung nur exponierte sichere Funktionen aufrufen kann, niemals jedoch direkt auf sicheren Speicher zugreift.

Prozessormodi mit TrustZone

Während Cortex-M3- und M4-Kerne Thread- und Handler-Modi mit privilegierten/ungeprivilegierten Ebenen bieten, fügt der Cortex-M33 TrustZone hinzu, was vier Modi ergibt: nicht-sicherer Thread, sicherer Thread, nicht-sicherer Handler und sicherer Handler. Diese Aufteilung führt auch separate SysTick-Timer für jede Domäne ein.

Arm TrustZone-Sicherheit in der LPC5500-MCU-Serie nutzen
Abbildung 2. TrustZone erweitert den Cortex-M33 auf vier Prozessormodi.

Speicherpartitionierung

TrustZone weist Adressbereichen Sicherheitsattribute zu: Sicher (S), Nicht-Sicher (NS) und Nicht-Sicher Aufrufbar (NSC). Der Zugriff auf jeden Bereich hängt vom aktuellen Zustand des Kerns ab. Der LPC55S69 behandelt beispielsweise Adressen mit Bit 28 = 0 als nicht-sicher und den Rest als sicher, außer dem Programmspeicher, der über die Security Attribution Unit (SAU) konfigurierbar ist.

Arm TrustZone-Sicherheit in der LPC5500-MCU-Serie nutzen
Abbildung 3. CPU-Zugriff variiert zwischen sicherem und nicht-sicherem Modus.

Eine sichere Anwendung erstellen

Sicherer Code legt seine Internas nicht direkt offen. Stattdessen veröffentlicht er eine Veneer-Tabelle – eine dünne Schicht nicht-sicher aufrufbarer Funktionen, die Aufrufe in die sichere Welt weiterleiten. Die Veneer-Tabelle residiert im NSC-Speicher, während die eigentlichen Implementierungen im sicheren Speicher liegen.

Typische sichere Projekte werden in eine Objektbibliothek und eine Header-Datei kompiliert, die die Veneer-Funktionen deklariert. Die nicht-sichere Anwendung bindet nur den Header ein; zur Laufzeit vermittelt die Veneer-Tabelle Aufrufe an sichere Dienste.

Wechsel zwischen den Welten

Zwei spezielle Instruktionen verwalten den Zustandswechsel:

Eine nicht-sichere Aufrufsequenz sieht so aus:

 // Nicht-sicherer Code SG(); // Eintritt in die sichere Welt SecureFunc(); // Aufruf sicherer Dienste via Veneer BXNS(); // Rückkehr in nicht-sichere Welt 

Jeder illegale Zugriff löst eine Secure-Fault-Exception aus und wahrt so die Systemintegrität.

Secure Hello World Beispiel

Das LPCXpresso55S69 SDK enthält TrustZone-Demos, die den Build in ein sicheres und ein nicht-sicheres Projekt aufteilen. Das sichere Projekt beginnt mit einem frühen Initialisierungsaufruf:

__attribute__((cmse_nonsecure_entry)) void BOARD_InitTrustZone(void); 

Diese Funktion konfiguriert SAU, IDAU und Speicherpartitionierung. Die nicht-sichere Main-Funktion bleibt knapp, da das gesamte Setup in der sicheren Domäne erfolgt:

int main(void) { // Minimaler nicht-sicherer Code return 0; } 

Wenn die nicht-sichere Seite einen sicheren Dienst benötigt, ruft sie eine Veneer-Funktion auf, z. B. PRINTF_NSE():

void PRINTF_NSE(const char *format, ...) __attribute__((cmse_nonsecure_entry)); 

Die entsprechende sichere Implementierung residiert im sicheren Projekt und wird in die Veneer-Tabelle exportiert.

Werkzeuge zur Speicherpartitionierung

Innerhalb von MCUXpresso bietet die TEE-Perspektive einen visuellen Editor für SAU- und IDAU-Konfiguration:

Arm TrustZone-Sicherheit in der LPC5500-MCU-Serie nutzen
Abbildung 5. MCUXpresso-Werkzeug zur Anzeige und Bearbeitung der Sicherheitsattribute der Speicherkarte.

Nutzen Sie die linke Tabelle, um das Sicherheitslevel für jeden Bereich festzulegen; die rechte Karte reflektiert die resultierende Partitionierung.

Warum TrustZone für LPC5500 wichtig ist

TrustZone gibt dem LPC5500 eine klare Trennung der Zuständigkeiten: Die sichere Welt schützt proprietären Code und kryptografische Schlüssel, während die nicht-sichere Welt Benutzeranwendungen beherbergt. Die Hardware garantiert, dass illegale Speicherzugriffe blockiert werden, und die Software-Infrastruktur (Veneer-Tabellen, SG/BXNS-Instruktionen und TEE-Tools) vereinfacht die Entwicklung sicherer Anwendungen.

Für tiefere Einblicke schauen Sie sich das NXP-Webinar TrustZone: Calling the Secure World an oder erkunden Sie die offizielle Dokumentation.

Industry-Artikel sind eine Content-Form, die es Industriepartnern ermöglicht, nützliche Nachrichten, Botschaften und Technologien mit All-About-Circuits-Lesern zu teilen – auf eine Weise, wie es redaktionelle Inhalte nicht gut können. Alle Industry-Artikel unterliegen strengen redaktionellen Richtlinien, um Lesern nützliche Nachrichten, technische Expertise oder Geschichten zu bieten. Die Standpunkte und Meinungen in Industry-Artikeln sind die des Partners und nicht unbedingt die von All About Circuits oder dessen Autoren.

Cloud Computing

  1. Die Cloud-Revolution: Wie Cloud Computing IT, Sicherheit und Karrieren transformiert
  2. Warum Cloud Security der Eckpfeiler moderner Cyber Defense ist
  3. Pfad zum Cloud Security Engineer: Skills, Verantwortlichkeiten, Zertifizierungen
  4. Warum Cloud-Datensicherheit programmierbar wird
  5. Cloud Technologie sichern: Best Practices für Datenschutz und Risikominderung
  6. Cloud Security meistern: Bewährte Strategien zur Risikominderung und zum Schutz Ihrer Organisation
  7. Wie Hacker Cloud-Umgebungen angreifen – AWS-Sicherheit stärken
  8. Google Cloud Engineer-Zertifizierung meistern: Bewährte Lernstrategien & Insider-Tipps
  9. DevOps in der Cloud deployen: Bewährter Blueprint für digitale Transformation
  10. ERP in die Cloud migrieren: Bewährter Roadmap für Erfolg