🛠 Sécurité industrielle : élément sécurisé SE050C2 (EAL6+), PSA Certified et Parsec

Arduino Portenta X8 · avance · Schéma : IMG-portenta-x8-avance-3-portenta-x8-securite-se050-parsec.svg — chaîne de confiance de la Portenta X8 en maillons : puce NXP SE050C2 blindée au centre avec ses clés, bus dédié vers l'i.MX 8M Mini, badges PSA Certified et Arm SystemReady IR, conteneur Docker demandant une signature via le service Parsec, mise à jour OTA signée entrant par le réseau, bouclier Common Criteria EAL6+ en arrière-plan

Objectifs

La X8 se vend comme « l'un des premiers produits Cassini » du marché : une chaîne de sécurité complète embarquée. Cartographie : NXP SE050C2 sur bus dédié (I²C esclave jusqu'à 3,4 MHz) — Common Criteria EAL 6+ (jusqu'au niveau OS), génération de clés, crypto accélérée, stockage sécurisé, « sécurise la mémoire flash utilisateur jusqu'à 50 kB » ; plateforme PSA Certified et Arm SystemReady IR certifiées ; services Parsec intégrés pour exposer la racine de confiance aux conteneurs ; OTA signée côté factory. Ce tuto : comprendre où vivent les clés, comment un conteneur consigne la sécurité sans les toucher, et comment l'OTA signé protège le déploiement.

Matériel

Code complet

# 1. Verifier la presence des services de sécurité dans l'image
adb shell
fio@portenta-x8:~$ sudo -i
fio@portenta-x8:~$ ls /sys/class/misc/ | grep -i se050   # trace du SE ?
fio@portenta-x8:~$ systemctl list-units | grep -iE "parsec|m4-proxy"

# 2. Un conteneur consigne Parsec (racine de confiance) sans jamais
#    voir les cles : montage du socket dans l'app conteneurisee.
#    > 
#    d'usine — verifie avec systemctl status parsec sur ta carte.
docker run -d --name app-securisee \
  -v /run/parsec:/run/parsec \
  -p 5002-5020:5002-5020 \
  --device /dev/ttyGS0 \
  arduino/python-rpc-serial

# 3. Principes a respecter (pas de code magic) :
#    - les cles privees sont generees et restent DANS le SE050C2 ;
#    - l'OTA de la factory est signee : une image falsifiee n'est
#      pas installee ; les cles de provisioning sont par appareil ;
#    - le M4 (Arduino) n'a pas besoin des secrets réseau : garde
#      l'authentification MQTT/TLS dans le conteneur, adossee au SE.

Vérification attendue

La carte expose les traces des composants de sécurité (service Parsec, accès au SE) et un conteneur peut consigner le service sans que aucune clé n'apparaisse dans son système de fichiers — c'est tout l'intérêt du modèle : le SE050C2 signe/déchiffre pour l'application, les secrets ne traversent jamais le conteneur. Côté déploiement, seule une image signée par ta factory passe — une image falsifiée en transit est refusée.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels