Si vous livrez dans l'Union européenne un appareil qui prend des décisions automatisées, la question cesse d'être « le modèle est-il précis » et devient « pouvez-vous montrer ce qu'il a décidé, et prouver que ce qui a décidé est bien ce que vous avez testé ». Ce sont des exigences d'ingénierie, et sur un microcontrôleur elles sont inhabituelles.
Ceci est une note technique, pas un conseil juridique. Les obligations applicables dépendent de la classification de votre produit, ce qui relève d'un juriste.
Quatre choses qu'un appareil doit démontrer
| Exigence | Ce que cela veut dire en firmware |
|---|---|
| Tenue de registres | Un journal de décisions qui survit à une coupure et dont un tiers peut vérifier qu'il n'a pas été modifié après coup. |
| Transparence | L'appareil sait dire quelle version de modèle a produit une décision, et cet identifiant est lié aux octets réels. |
| Supervision humaine | Les cas peu confiants doivent pouvoir remonter au lieu d'être appliqués en silence. Un chemin d'abstention, pas une étiquette forcée. |
| Robustesse et exactitude | Un chiffre mesuré avec une méthode énoncée, et le comportement sur des entrées jamais vues. |
Pourquoi c'est difficile sur un microcontrôleur
- Preuve d'inviolabilité sans serveur. Une chaîne de hachage — chaque enregistrement couvrant l'empreinte du précédent — fait qu'altérer un enregistrement passé invalide tous les suivants, détectable hors ligne.
- Lier l'identité du modèle aux octets réels. « Modèle v1.4 » dans un champ de configuration est une étiquette. Une signature vérifiée au chargement est un lien.
- Une abstention qui veut dire quelque chose. Un softmax produit toujours
une réponse. Dans un de nos tests d'intégration, canal 0 mis à plat, le modèle répondait
encore
class=4, accept=1— une étiquette confiante et vide de sens. Le garde hors-distribution l'a supprimée et a journalisé un défaut capteur.
Où la parité bit à bit gagne sa place
L'obligation est de montrer que le système déployé se comporte comme celui qui a été évalué. Si le moteur embarqué est identique octet pour octet à la référence, cela devient un test qui passe ou échoue. Notre max |Δ| vaut 3.7e-7, et sur la ligne capteurs le moteur C a égalé la référence sur 2947/2947 fenêtres.
Ce que nous livrons, et ce que nous ne livrons pas
- Présent : modèles signés Ed25519 avec contrôle d'intégrité au chargement, journal de décisions chaîné et inviolable (154 octets de surcoût), garde hors-distribution avec abstention à deux niveaux, parité bit à bit.
- Absent : une certification. Rien de ce qui précède ne rend un appareil conforme. Cela rend possible la production des preuves qu'une évaluation de conformité réclame, ce qui est une affirmation bien plus modeste.