PEmicro-erlebniswelt

Supporto per il debug sicuro di S32K3xx

Debug autenticato sicuro


Una volta che il debugger è stato autenticato, lo sviluppatore può eseguire il debug sicuro del dispositivo in S32 Design Studio o in qualsiasi IDE di terze parti utilizzando il plug-in PEmicro.

 

Introduzione

I dispositivi S32K3xx di NXP possono essere impostati in uno stato in cui l'utente deve eseguire l'autenticazione con password o l'autenticazione con sfida e risposta sul debugger all'inizio di una sessione di debug standard S32DS. Queste modalità di debug sicuro impediscono l'accesso non autorizzato al debug richiedendo le credenziali corrette per autenticare il debugger prima di procedere con una sessione di debug sicura. Un nuovo processo di autenticazione è sempre richiesto dopo un reset distruttivo o un reset all'accensione.

Per ottenere l'accesso al debug sicuro di un dispositivo in modalità password, il debugger deve essere autenticato con una password. Per eseguire il debug sicuro di un dispositivo in modalità Challenge & Response, l'utente deve registrare una Application Debug Key/Password (ADKP) su una smart card NXP prima dell'autenticazione del debugger.

PEmicro mette a disposizione degli script per facilitare l'autenticazione di un debugger in modalità password e per assistere nella registrazione di una chiave esistente su una smart card NXP per il debug sicuro in modalità Challenge & Response.

I seguenti script possono essere scaricati dal pacchetto di file di supporto PEmicro situato nella cartella NXP\S32K3xx. Gli script di PEmicro richiedono Python 3.5 o superiore per essere eseguiti.

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

Prima di eseguire qualsiasi script, l'interfaccia PEmicro (ad esempio Multilink o Cyclone) deve essere collegata all'header di debug del target e il dispositivo S32K3xx deve essere acceso e appena spento e acceso. Vale la pena notare che lo stato di autenticazione viene perso ogni volta che il dispositivo subisce un reset distruttivo, quindi gli script per l'autenticazione devono essere eseguiti dopo ogni ciclo di alimentazione.

S32K3xx_authenticate

Autenticare un debugger per la modalità password sicura

Lo script authenticate_password_mode.py di PEmicro autentica un debugger per la comunicazione sicura con un dispositivo in modalità password, in modo da poter eseguire il debug in modo sicuro (vedi Figura 1).

Gli input di authenticate_password_mode.py sono:

hardwareid: l'indirizzo IP, il nome, il numero di serie o il nome della porta dell'hardware di debug 
(ad esempio -hardwareid=10.0.4.17 per Ethernet Cyclone o USB1 per le interfacce USB Multilink)

Password: la password esadecimale preconfigurata di 16 byte necessaria per autenticare l'unità 
(ad esempio -password=0123456789ABCDEF0123456789ABCDEF)

Registrazione della chiave e autenticazione di un debugger in modalità sicura challenge & response

La chiave deve essere prima registrata su una smartcard di NXP. La smartcard può essere collegata a un PC tramite un lettore di smartcard compatibile con PC/SC (di solito con connessione USB). Dopo la registrazione, la chiave deve essere autenticata in una richiesta di Challenge & Response per accedere alla modalità di debug sicuro.

Registrazione di una chiave

Lo script register_adkp.py di PEmicro registra una chiave/Password di Debug dell'Applicazione (ADKP) già confezionata sulla smart card NXP per l'uso con alcuni dispositivi S32K3xx con una maggiore sicurezza di sfida e risposta (vedi Figura 2 per i dettagli). Per maggiori informazioni sulla creazione di una ADKP, consulta la documentazione e il supporto di NXP.

Gli input di register_adkp.py sono:

hardwareid: indirizzo IP, nome, numero di serie o nome della porta dell'hardware di debug
(ad esempio -hardwareid=10.0.4.17 per Ethernet Cyclone o=USB1 per interfacce USB Multilink)

wraped_adkp: il valore ADKP esadecimale avvolto a 256 byte
(ad esempio -wrapped_adkp=0123456789ABCDEF...)

user_pwd: la password che autentica l'utente della smartcard
(ad esempio -user_pwd=pwd123)

register_adkp_S32K3xx-2
S32K3xx_authenticate-3

Autenticare un debugger per la modalità Challenge & Response

Lo script "authenticate_challenge_reponse_mode.py" di PEmicro autentica un debugger per una comunicazione sicura con un dispositivo dedicato in modalità Challenge & Response (vedi Figura 3). Il passaggio Register ADKP deve essere completato prima che avvenga l'autenticazione.

Gli input di authenticate_challenge_reponse_mode.py sono:

- hardwareid: indirizzo IP, nome, numero di serie o nome della porta dell'hardware di debug

(ad esempio -hardwareid=10.0.4.17 per Ethernet Cyclone o=USB1 per le interfacce USB Multilink)

- user_pwd: la password che autentica l'utente della smartcard

(ad esempio -user_pwd=pwd123)

Debug autenticato sicuro

Una volta che il debugger è stato autenticato, lo sviluppatore può eseguire il debug sicuro del dispositivo in S32 Design Studio o in qualsiasi IDE di terze parti utilizzando il plug-in PEmicro.

Gli algoritmi di programmazione FLASH abilitati per HSE (ad esempio nxp_s32k344_1x32x980k_hse_enabled.arp) devono essere selezionati quando si esegue il debug o la programmazione di alcuni dispositivi con sicurezza avanzata, poiché la flash disponibile su un dispositivo S32K3xx è adattata al firmware HSE quando la parte viene distribuita in modalità di sicurezza avanzata. Tieni presente che un dispositivo S32K3xx con firmware HSE installato non richiede necessariamente l'autenticazione sicura del debugger. Quando viene installato HSE, l'unità si trova inizialmente nel ciclo di vita CUST_DEL per il quale l'accesso al debug è aperto. Solo quando il ciclo di vita progredisce è necessario un debug sicuro.

Quando si crea un progetto con l'IDE S32DS, il plugin PEmicro utilizza automaticamente il driver di programmazione FLASH per supportare la programmazione dell'intera gamma di dispositivi FLASH P e D, a condizione che le modalità di memoria HSE e AB Swap siano disabilitate. Per passare a un algoritmo di programmazione FLASH che supporti i dispositivi con un'impronta firmware HSE, l'utente deve: aprire la configurazione di debug di PEmicro e selezionare quanto segue dalla casella a discesa Selezione algoritmo flash:

  → Aprire il dialogo Opzioni avanzate → nxp_s32k344_1x32x980k_hse_enabled.arp

oppure l'utente può selezionare "Usa un algoritmo alternativo" e cercare un algoritmo FLASH abilitato HSE dall'ultimo plug-in PEmicro (vedi Figure 4 e 5).

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

I driver di programmazione FLASH di PEmicro si trovano nella seguente posizione del layout S32DS:

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

L'unità rimane accessibile in debug sicuro fino al successivo reset distruttivo o spegnimento e accensione. A questo punto, la parte deve essere nuovamente autenticata.

Strumenti di programmazione e debug di PEmicro

PEmicro sviluppa e produce strumenti di debug e programmazione ISP per diverse architetture di microcontrollori. Il portafoglio è suddiviso in due serie di dispositivi, la serie Cyclone e la serie Multilink. La serie Cyclone è costituita da programmatori di sistema per la produzione in serie che offrono una memorizzazione interna sicura delle immagini del programma, l'alimentazione del dispositivo di destinazione, funzioni di programmazione manuale e automatizzata, serializzazione, programmazione dinamica dei dati e un'interfaccia touch screen di facile utilizzo.

Utilizzando la serie Multilink, l'utente può utilizzare la modalità di debug in background per interrompere la normale esecuzione del processore e controllarlo tramite un PC. L'utente può quindi controllare direttamente l'esecuzione del processore di destinazione, leggere/scrivere registri e valori di memoria, visualizzare il codice di debug sul processore e programmare dispositivi di memoria FLASH interni o esterni.

PEmicro Multilink UniversalMultilink Universal
Multilink Universal
USB-ML-UNIVERSAL
PEmicro Multilink Universal è un'interfaccia per il debug e la programmazione di processori ARM e 8/16/32 bit.

299,00 €*
PEmicro cyclone lc universalpemicro cyclone lc universal header layout
Cyclone LC Universal
CYCLONE-LC-UNIV
Il PEmicro Cyclone LC Universal è un programmatore indipendente per processori ARM e 8/16/32 bit.

979,00 €*
pemicro cyclone fx universalCyclone FX Universal Header Layout
Cyclone Universal FX
CYCLONE-FX-UNIV
Il PEmicro Cyclone FX Universal è un programmatore indipendente per processori ARM e 8/16/32 bit.

1.369,00 €*