PEmicro-erlebniswelt

S32K3xx support de débogage sécurisé

Débogage sécurisé authentifié


Une fois que le débogueur a été authentifié, le développeur peut déboguer l'appareil en toute sécurité sous S32 Design Studio ou n'importe quel IDE tiers avec le plug-in PEmicro.

 

Introduction

Les appareils S32K3xx de NXP peuvent être mis dans un état où l'utilisateur doit effectuer une authentification par mot de passe ou une authentification Challenge & Response sur le débogueur au début d'une session de débogage S32DS standard. Ces modes de débogage sécurisés empêchent l'accès non autorisé au débogage en exigeant les informations de connexion correctes pour authentifier le débogueur avant de poursuivre une session de débogage sécurisée. Après une réinitialisation destructive ou une réinitialisation Power-On, une nouvelle procédure d'authentification est toujours nécessaire.

Pour obtenir un accès de débogage sécurisé pour un appareil sécurisé en mode mot de passe, le débogueur doit être authentifié avec un mot de passe. Pour déboguer en toute sécurité un appareil en mode Challenge & Response, l'utilisateur doit enregistrer une clé/un mot de passe de débogage d'application (ADKP) sur une carte à puce NXP avant d'authentifier le débogueur.

PEmicro met à disposition des scripts pour faciliter l'authentification d'un débogueur en mode mot de passe et aussi pour aider à enregistrer une clé existante sur une carte à puce NXP pour un débogage sécurisé en mode Challenge & Response.

Les scripts suivants peuvent être téléchargés dans le paquet de fichiers de soutien PEmicro, qui se trouve dans le dossier NXP\S32K3xx. Les scripts de PEmicro nécessitent Python 3.5 ou plus pour être exécutés.

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

Avant d'exécuter l'un des scripts, l'interface PEmicro (par exemple Multilink ou Cyclone) doit être connectée à l'en-tête de débogage de la cible et l'appareil S32K3xx doit être alimenté en électricité et fraîchement éteint et rallumé. Il convient de mentionner que l'état d'authentification est perdu à chaque fois que la pièce subit une réinitialisation destructive, de sorte que les scripts d'authentification doivent être exécutés après chaque événement de cycle d'alimentation.

S32K3xx_authenticate

Authentifier un débogueur pour le mode mot de passe sécurisé

Le script authenticate_password_mode.py de PEmicro authentifie un débogueur pour une communication sécurisée avec un appareil en mode mot de passe, afin qu'il puisse être débogué en toute sécurité (voir illustration 1).

Les entrées pour authenticate_password_mode.py sont :

hardwareid : l'adresse IP, le nom, le numéro de série ou le nom du port du matériel de débogage 
(par exemple -hardwareid=10.0.4.17 pour Ethernet Cyclone ou USB1 pour les interfaces USB Multilink)

Password : le mot de passe hexadécimal préconfiguré de 16 octets nécessaire à l'authentification de l'appareil 
(e.g. -password=0123456789ABCDEF0123456789ABCDEF)

Enregistrement de la clé et authentification d'un débogueur en mode sécurisé Challenge & Response

La clé doit d'abord être enregistrée sur une carte à puce de NXP. La carte à puce peut être connectée à un PC via un lecteur de carte à puce compatible PC/SC (généralement avec un port USB). Après l'enregistrement, la clé doit être authentifiée dans une requête Challenge & Response pour accéder au mode de débogage sécurisé.

Enregistrement d'une clé

Le script register_adkp.py de PEmicro enregistre une clé/un mot de passe de débogage d'application (ADKP) emballé existant sur la carte à puce NXP pour une utilisation avec certains appareils S32K3xx avec une sécurité Challenge & Response avancée (voir illustration 2 pour les détails). Tu trouveras plus d'informations sur la création d'un ADKP dans la documentation NXP et dans le support.

Les entrées pour register_adkp.py sont :

hardwareid : adresse IP, nom, numéro de série ou nom de port du matériel de débogage
(par exemple -hardwareid=10.0.4.17 pour Ethernet Cyclone ou=USB1 pour les interfaces USB Multilink)

wraped_adkp : la valeur ADKP de 256 octets encadrée en hexadécimal
(par exemple -wrapped_adkp=0123456789ABCDEF...)

user_pwd : le mot de passe qui authentifie l'utilisateur de la carte à puce
(par exemple -user_pwd=pwd123)

register_adkp_S32K3xx-2
S32K3xx_authenticate-3

Authentifier un débogueur pour le mode Challenge & Response

Le script "authenticate_challenge_reponse_mode.py" de PEmicro authentifie un débogueur pour une communication sécurisée avec un appareil dédié en mode Challenge & Response (voir illustration 3). L'étape Enregistrer ADKP doit être terminée avant que l'authentification ait lieu.

Les entrées pour authenticate_challenge_reponse_mode.py sont :

- hardwareid : adresse IP, nom, numéro de série ou nom de port du matériel de débogage

(par ex. -hardwareid=10.0.4.17 pour Ethernet Cyclone ou=USB1 pour les interfaces USB Multilink)

- user_pwd : le mot de passe qui authentifie l'utilisateur de la carte à puce

(par exemple -user_pwd=pwd123)

Débogage sécurisé authentifié

Une fois le débogueur authentifié, le développeur peut déboguer l'appareil en toute sécurité sous S32 Design Studio ou n'importe quel IDE tiers avec le plug-in PEmicro.

Les algorithmes de programmation FLASH compatibles HSE (par exemple nxp_s32k344_1x32x980k_hse_enabled.arp) doivent être sélectionnés lors du débogage ou de la programmation de certains appareils à sécurité avancée, car la mémoire flash disponible sur un appareil S32K3xx est adaptée au firmware HSE lorsque la pièce est déployée dans un mode à sécurité avancée. Note qu'un appareil S32K3xx avec le firmware HSE installé ne nécessite pas nécessairement une authentification sécurisée du débogueur. Lors de l'installation de HSE, l'appareil se trouve d'abord dans le cycle de vie CUST_DEL, pour lequel l'accès au débogage est ouvert. Ce n'est qu'au fur et à mesure de l'avancement du cycle de vie que le débogage sécurisé est nécessaire.

Lorsqu'un projet est créé sous S32DS IDE, le plugin PEmicro utilise automatiquement le pilote de programmation FLASH pour prendre en charge la programmation de toutes les zones P et D-FLASH des appareils - à condition que les modes de stockage HSE et AB Swap soient désactivés. Pour passer à un algorithme de programmation FLASH qui prend en charge les appareils avec une empreinte de micrologiciel HSE, l'utilisateur doit : ouvrir la configuration de PEmicro-Debug et sélectionner ce qui suit dans la zone de liste déroulante "Sélection de l'algorithme Flash" :

  → ouvrir la boîte de dialogue Options avancées → nxp_s32k344_1x32x980k_hse_enabled.arp

ou l'utilisateur peut cocher "Use Alternative Algorithm" (Utiliser un algorithme alternatif) et rechercher un algorithme FLASH compatible HSE à partir du dernier plug-in PEmicro (voir figures 4 et 5).

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

Les pilotes de programmation FLASH de PEmicro se trouvent à l'endroit suivant dans la mise en page de S32DS :

Installation de S32DS : répertoire}\eclipse\plugins\com.pemicro.debug.gdbjtag.pne_5.xxxxx\win32\gdi\P&E\supportFiles_ARM\NXP\S32K3xx

L'appareil reste accessible en débogage sécurisé jusqu'à la prochaine réinitialisation destructive ou l'extinction et la remise en marche. A ce moment-là, la pièce doit être authentifiée à nouveau.

Outils de programmation et de débogage de PEmicros

PEmicro développe et produit des outils de débogage et de programmation ISP pour une multitude d'architectures de microcontrôleurs. Le portefeuille se divise en deux séries d'appareils, la série Cyclone et la série Multilink. La série Cyclone est un programmateur in-système pour la production en série, qui offre un stockage interne sécurisé des images de programme, l'alimentation électrique de l'appareil cible, des fonctions de programmation manuelles et automatisées, la sérialisation, la programmation dynamique des données et une interface à écran tactile conviviale.

En utilisant la série Multilink, l'utilisateur peut utiliser le mode Background Debug pour arrêter l'exécution normale du processeur et contrôler le processeur via un PC. L'utilisateur peut ensuite contrôler directement l'exécution du processeur cible, lire / écrire des registres et des valeurs de mémoire, afficher le code de débogage sur le processeur et programmer des dispositifs de mémoire FLASH internes ou externes.

PEmicro Multilink UniverselMultilink Universal
Multilink Universal
USB-ML-UNIVERSAL
PEmicro Multilink Universal est une interface pour déboguer et programmer les processeurs ARM et 8/16/32 bits.

299,00 €*
PEmicro cyclone lc universalpemicro cyclone lc universal header layout
Cyclone LC Universel
CYCLONE-LC-UNIV
Le PEmicro Cyclone LC Universal est un programmeur autonome pour les processeurs ARM et 8/16/32 bits.

979,00 €*
pemicro cyclone fx universalCyclone FX Universal Header Layout
Cyclone Universal FX
CYCLONE-FX-UNIV
Le PEmicro Cyclone FX Universal est un programmeur autonome pour les processeurs ARM et 8/16/32 bits.

1 369,00 €*