PEmicro-erlebniswelt

S32K3xx Secure Debug Unterstützung

Sicheres authentifiziertes Debuggen


Nachdem der Debugger authentifiziert wurde, kann der Entwickler das Gerät unter S32 Design Studio oder beliebigen IDEs von Drittanbietern mit dem PEmicro-Plug-in sicher debuggen.

 

Einführung

Die S32K3xx-Geräte von NXP können in einen Zustand versetzt werden, in dem der Benutzer zu Beginn einer Standard-S32DS-Debug-Sitzung eine Kennwortauthentifizierung oder eine Challenge & Response-Authentifizierung auf dem Debugger ausführen muss. Diese sicheren Debug-Modi verhindern unbefugten Debug-Zugriff, indem die richtigen Anmeldeinformationen zur Authentifizierung des Debuggers erforderlich sind, bevor mit einer sicheren Debug-Sitzung fortgefahren wird. Nach einem destruktiven Reset oder Power-On-Reset ist immer ein neuer Authentifizierungsvorgang erforderlich.

Um einen sicheren Debug-Zugriff für ein sicheres Gerät im Kennwortmodus zu erhalten, muss der Debugger mit einem Kennwort authentifiziert werden. Zum sicheren Debuggen eines Geräts im Challenge & Response-Modus muss der Benutzer vor der Debugger-Authentifizierung einen Application Debug Key/Password (ADKP) auf einer NXP-Smartcard registrieren.

PEmicro stellt Skripte zur Verfügung, um die Authentifizierung eines Debuggers im Passwortmodus zu erleichtern und auch bei der Registrierung eines vorhandenen Schlüssels auf einer NXP-Smartcard für sicheres Debuggen im Challenge & Response-Modus zu helfen.

Die folgenden Skripte können im PEmicro-Unterstützungsdateipaket heruntergeladen werden, das sich im Ordner NXP\S32K3xx befindet. Die Skripte von PEmicro erfordern zur Ausführung Python 3.5 oder höher.

  • authenticate_password_mode.py
  • register_adkp.py
  • authenticate_challenge_response_mode.py

Bevor eines der Skripts ausgeführt wird, muss die PEmicro-Schnittstelle (z. B. Multilink oder Cyclone) mit dem Debug-Header des Ziels verbunden werden und das S32K3xx-Gerät muss mit Strom versorgt und frisch aus- und wieder eingeschaltet werden. Es ist erwähnenswert, dass der Authentifizierungsstatus jedes Mal verloren geht, wenn das Teil einen destruktiven Reset durchläuft, sodass die Skripts zur Authentifizierung nach jedem Power-Cycle-Ereignis ausgeführt werden müssen.

S32K3xx_authenticate

Authentifizieren eines Debuggers für den sicheren Kennwortmodus

Das Skript authenticate_password_mode.py von PEmicro authentifiziert einen Debugger für die sichere Kommunikation mit einem Gerät im Passwortmodus, so dass es sicher debuggt werden kann (siehe Abbildung 1).

Die Eingaben für authenticate_password_mode.py sind:

hardwareid: die IP-Adresse, der Name, die Seriennummer oder der Portname der Debug-Hardware 
(z.B. -hardwareid=10.0.4.17 für Ethernet Cyclone oder USB1 für USB Multilink Schnittstellen)

Password: das vorkonfigurierte 16-Byte-Hexadezimal-Passwort, das zur Authentifizierung des Geräts benötigt wird 
(e.g. -password=0123456789ABCDEF0123456789ABCDEF)

Schlüsselregistrierung und Authentifizierung eines Debuggers im sicheren Challenge & Response-Modus

Der Schlüssel muss zuerst auf einer Smartcard von NXP registriert werden. Die Smartcard kann über einen PC/SC-kompatiblen Smartcard-Leser (normalerweise mit USB-Anschluss) mit einem PC verbunden werden. Nach der Registrierung muss der Schlüssel in einer Challenge & Response-Abfrage authentifiziert werden, um in den sicheren Debug-Modus zu gelangen.

Registrierung eines Schlüssels

Das Skript register_adkp.py von PEmicro registriert einen vorhandenen verpackten Application Debug Key/Password (ADKP) auf der NXP-Smartcard zur Verwendung mit bestimmten S32K3xx-Geräten mit erweiterter Challenge & Response-Sicherheit (siehe Abbildung 2 für Details). Weitere Informationen zum Erstellen eines ADKP finden Sie in der NXP-Dokumentation und im Support.

Die Eingaben für register_adkp.py sind:

hardwareid: IP-Adresse, Name, Seriennummer oder Portname der Debug-Hardware
(z. B. -hardwareid=10.0.4.17 für Ethernet Cyclone oder =USB1 für USB Multilink-Schnittstellen)

wraped_adkp: der hexadezimal umschlossene 256-Byte-ADKP-Wert
(zB -wrapped_adkp=0123456789ABCDEF...)

user_pwd: das Passwort, das den Smartcard-Benutzer authentifiziert
(zB -user_pwd=pwd123)

register_adkp_S32K3xx-2
S32K3xx_authenticate-3

Authentifizieren eines Debuggers für den Challenge & Response-Modus

Das Skript „authenticate_challenge_reponse_mode.py“ von PEmicro authentifiziert einen Debugger für die sichere Kommunikation mit einem dedizierten Gerät im Challenge & Response-Modus (siehe Abbildung 3). Der Schritt ADKP registrieren muss abgeschlossen sein, bevor die Authentifizierung stattfindet.

Die Eingaben für authenticate_challenge_reponse_mode.py sind:

• hardwareid: IP-Adresse, Name, Seriennummer oder Portname der Debug-Hardware

(z. B. -hardwareid=10.0.4.17 für Ethernet Cyclone oder =USB1 für USB Multilink-Schnittstellen)

• user_pwd: das Kennwort, das den Smartcard-Benutzer authentifiziert

(zB -user_pwd=pwd123)

Sicheres authentifiziertes Debuggen

Nachdem der Debugger authentifiziert wurde, kann der Entwickler das Gerät unter S32 Design Studio oder beliebigen IDEs von Drittanbietern mit dem PEmicro-Plug-in sicher debuggen.

HSE-fähige FLASH-Programmieralgorithmen (z. B. nxp_s32k344_1x32x980k_hse_enabled.arp) müssen beim Debuggen oder Programmieren bestimmter Geräte mit erweiterter Sicherheit ausgewählt werden, da der verfügbare Flash auf einem S32K3xx-Gerät auf HSE-Firmware zugeschnitten ist, wenn das Teil in einem mit erweiterter Sicherheit bereitgestellt wird Modi. Bitte beachten Sie, dass ein S32K3xx-Gerät mit installierter HSE-Firmware nicht unbedingt eine sichere Debugger-Authentifizierung benötigt. Bei der Installation von HSE befindet sich das Gerät zunächst im Lebenszyklus CUST_DEL, für den der Debug-Zugriff geöffnet ist. Erst mit fortschreitendem Lebenszyklus ist ein sicheres Debugging erforderlich.

Wenn ein Projekt unter S32DS IDE erstellt wird, verwendet das PEmicro-Plugin automatisch den FLASH-Programmiertreiber, um die Programmierung der gesamten P- und D-FLASH-Bereiche von Geräten zu unterstützen – vorausgesetzt, dass die Speichermodi HSE und AB Swap deaktiviert sind. Um zu einem FLASH-Programmieralgorithmus zu wechseln, der Geräte mit einem HSE-Firmware-Footprint unterstützt, muss der Benutzer: die PEmicro-Debug-Konfiguration öffnen und aus dem Dropdown-Feld „Flash-Algorithmus-Auswahl“ Folgendes auswählen:

    → Dialog Erweiterte Optionen öffnen → nxp_s32k344_1x32x980k_hse_enabled.arp

oder der Benutzer kann „Use Alternative Algorithm“ (Alternativen Algorithmus verwenden) markieren und nach einem HSE-fähigen FLASH-Algorithmus aus dem neuesten PEmicro-Plug-in suchen (siehe Abbildungen 4 und 5).

PEmicro-NXP-Debug-Configuration-4
PEmicro_Advanced_Options-5

Die FLASH-Programmiertreiber von PEmicro finden Sie an der folgenden Stelle im S32DS-Layout:

S32DS-Installation: Verzeichnis}\eclipse\plugins\com.pemicro.debug.gdbjtag.pne_5.xxxxx\win32\gdi\P&E\supportFiles_ARM\NXP\S32K3xx

Das Gerät bleibt im sicheren Debugging bis zum nächsten destruktiven Reset oder Aus- und Wiedereinschalten zugänglich. An diesem Punkt muss das Teil erneut authentifiziert werden.

PEmicros Programmier- & Debugwerkzeuge

PEmicro entwickelt und produziert Debug- und ISP-Programmierwerkzeuge für eine Vielzahl von Microcontroller Architekturen. Das Portfolio teil sich in zwei Geräteserien, die Cyclone Serie sowie die Multilink Serie auf. Bei der Cyclone Serie handelt es sich um In-System-Programmer für die Serienfertigung, die eine sichere interne Speicherung von Programm-Images, die Stromversorgung für das Zielgerät, manuelle und automatisierte Programmierfunktionen, Serialisierung, dynamische Datenprogrammierung und eine benutzerfreundliche Touchscreen-Oberfläche bieten.

Durch die Verwendung der Multilink Serie kann der Benutzer den Background-Debug-Modus nutzen, um die normale Prozessorausführung zu stoppen und den Prozessor über einen PC zu steuern. Der Benutzer kann anschließend direkt die Ausführung des Zielprozessors steuern, Register und Speicherwerte lesen / schreiben, den Debug-Code auf dem Prozessor anzeigen und interne oder externe FLASH-Speichergeräte programmieren.

PEmicro Multilink UniversalMultilink Universal
Multilink Universal
USB-ML-UNIVERSAL
Der Multilink Universal (U-Multilink) ist eine Schnittstelle zum Debuggen & Programmieren von ARM und 8/16/32 bit Prozessoren.

290,00 €*
PEmicro cyclone lc universalpemicro cyclone lc universal header layout
Cyclone LC Universal
CYCLONE-LC-UNIV
Der PEmicro Cyclone LC Universal (U-Cyclone) ist eine Standalone Programmer für ARM und 8/16/32 bit Prozessoren.

979,00 €*
pemicro cyclone fx universalCyclone FX Universal Header Layout
Cyclone Universal FX
CYCLONE-FX-UNIV
Der PEmicro Cyclone Universal FX (U-Cyclone-FX) ist eine Standalone Programmer für ARM und 8/16/32 bit Prozessoren.

1.369,00 €*