🛠 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

Objectives

The X8 is marketed as "one of the first Cassini products" on the market: a complete embedded security chain. Mapping: NXP SE050C2 on a dedicated bus (I²C slave up to 3.4 MHz) — Common Criteria EAL 6+ (up to OS level), key generation, accelerated crypto, secure storage, "secures user flash memory up to 50 kB"; PSA Certified and Arm SystemReady IR certified platforms; integrated Parsec services to expose the root of trust to containers; factory-signed OTA. This tutorial: understand where keys live, how a container leverages security without touching them, and how signed OTA protects deployment.

Hardware

Complete code

# 1. Verifier la presence des services de securite 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 reseau : garde
#      l'authentification MQTT/TLS dans le conteneur, adossee au SE.

Expected verification

The board exposes traces of the security components (Parsec service, SE access) and a container can leverage the service without any key appearing in its filesystem — this is the whole point of the model: the SE050C2 signs/decrypts for the application, secrets never traverse the container. On the deployment side, only an image signed by your factory passes — a tampered image in transit is rejected.

Common errors

Other tutorials for this board

Code examples for this board

← Back to the board 🛠 All tutorials