Ce que garantit la certification EAL (et ce qu’elle ne garantit pas)
CC EAL6+ n’est pas un certificat d’inviolabilité. Nous vous expliquons précisément ce qu’il signifie.
Si vous avez comparé des hardware wallets, vous avez vu que les notes EAL sont souvent mises en avant. L’élément sécurisé EAL6+ évoque le plus haut niveau de sécurité possible. Ces certifications sont réelles, le processus est rigoureux, et les puces qui arborent ces labels ont effectivement été testées selon des standards exigeants.
Mais la certification EAL est aussi l’un des concepts les plus souvent mal compris dans le marketing des hardware wallets. Elle est régulièrement présentée et interprétée comme une garantie de sécurité quasi absolue, alors que ce n’est pas le cas.
Cet article détaille le cadre EAL depuis la base, explique le processus d’évaluation pour EAL5+ et EAL6+, cite les puces utilisées dans les hardware wallets et leur niveau de certification, puis analyse les trois limites structurelles que la certification ne couvre pas.
La certification EAL indique la profondeur et la rigueur de l’évaluation de sécurité subie par une puce. Elle ne garantit pas que la puce ne puisse être compromise. Ce sont deux affirmations différentes, et les confondre crée un faux sentiment de sécurité.
Qu’est-ce que Common Criteria ?
Common Criteria (officiellement : Common Criteria for Information Technology Security Evaluation, ISO/IEC 15408) est un cadre international d’évaluation de la sécurité des produits informatiques. Il a été créé en 1999 pour harmoniser un paysage fragmenté de schémas nationaux d’évaluation de sécurité.
Aujourd’hui, plus de 30 pays participent à l’Accord de reconnaissance Common Criteria (CCRA), et un certificat CC est la norme mondiale pour la sécurité des produits évalués de façon indépendante.
Target of Evaluation
Le cadre repose sur un concept central : le Target of Evaluation, ou TOE. Le TOE est le produit ou composant précis évalué. Pour les secure elements, il s’agit généralement de la puce elle-même, y compris son architecture matérielle, son système d’exploitation embarqué et la bibliothèque cryptographique qu’elle exécute.
Le fabricant du TOE soumet un document Security Target, une spécification formelle de ce que le produit doit protéger, des menaces à contrer, des fonctions de sécurité mises en œuvre, et des hypothèses sous lesquelles ces fonctions sont valides.
Délivrance du certificat
Un laboratoire d’évaluation indépendant et accrédité teste alors le produit selon ces critères, avec la profondeur et la rigueur correspondant au niveau EAL revendiqué. Si le produit satisfait à son Security Target au niveau annoncé, un organisme national délivre le certificat.
Conséquence importante : l’évaluation teste le produit selon son propre Security Target, c’est-à-dire ce que le fabricant a déclaré. Un produit qui revendique des protections modestes et les tient peut obtenir le même EAL qu’un produit aux protections plus larges et respectées.
L’EAL mesure la rigueur de l’évaluation, pas l’ambition ni l’exhaustivité de la conception de sécurité. Ce choix permet à Common Criteria de s’appliquer à une grande variété de produits.
Résumé de l’échelle EAL
Common Criteria définit sept niveaux d’assurance (EAL1 à EAL7). Chaque niveau impose des exigences croissantes : principalement sur la documentation, l’analyse et les tests de la conception du produit, ainsi que sur le niveau de sophistication de l’attaquant supposé.
Un niveau EAL plus élevé ne signifie pas automatiquement un produit plus sécurisé, mais un produit évalué plus en profondeur.
Un produit avec des fonctions de sécurité limitées mais correctement mises en œuvre, évalué EAL6, n’est pas forcément plus sûr en pratique qu’un produit aux fonctions plus larges évalué EAL4. Tout dépend de ce que couvre le Security Target.
| Niveau | Nom officiel | Signification | Usage typique | Profil de l’attaquant |
|---|---|---|---|---|
| EAL1 | Testé fonctionnellement | Tests basiques pour vérifier que le produit fait ce qu’il annonce | Produits non critiques | Aucun attaquant structuré |
| EAL2 | Testé structurellement | Tests développeur + revue indépendante limitée | Commercial à faible risque | Attaquant opportuniste |
| EAL3 | Testé méthodiquement | Tests systématiques avec preuves de cycle de vie sécurisé | Commercial avec besoins de sécurité | Niveau de compétence modéré |
| EAL4 | Conçu, testé et audité méthodiquement | Documentation complète + tests d’intrusion indépendants | Logiciel d’entreprise, OS | Compétent avec outils standards |
| EAL5 | Conception vérifiée et testée semi-formellement | Vérification semi-formelle + tests d’attaque indépendants rigoureux | Cartes à puce, matériel crypto | Potentiel d’attaque élevé |
| EAL6 | Conception vérifiée et testée semi-formellement (étendue) | Rigueur EAL5 + analyse de vulnérabilité étendue + vérification partielle formelle | Secure elements, passeports, HSM | Potentiel d’attaque très élevé |
| EAL7 | Conception vérifiée et testée formellement | Preuve mathématique complète des propriétés de sécurité | Systèmes militaires, classifiés | Adversaire étatique |
Pour les hardware wallets et secure elements, EAL5+ et EAL6+ sont les niveaux pertinents. EAL4 est la norme pour les logiciels d’entreprise comme les systèmes d’exploitation et les pare-feu. EAL7, le niveau le plus élevé, est en pratique réservé à des systèmes militaires ou classifiés très spécifiques.
Le suffixe « + » indique une extension : des exigences supplémentaires au-delà du niveau de base, incluses dans l’évaluation. Pour les secure elements, l’extension la plus importante est souvent AVA_VAN.5, le niveau d’analyse de vulnérabilité le plus élevé, qui exige des tests d’attaque avec les techniques les plus avancées disponibles pour un adversaire à très haut potentiel d’attaque.
Que couvrent EAL5+ et EAL6+ ?
La différence entre EAL5 et EAL6 réside dans la profondeur de la vérification de la conception et la sophistication de l’attaquant supposé. Les deux niveaux exigent des tests d’intrusion réalisés par des évaluateurs indépendants qui tentent de compromettre la puce.
EAL5+ : Conception vérifiée et testée semi-formellement
Au niveau EAL5+, les fabricants doivent fournir une documentation de conception semi-formelle. Il s’agit d’une représentation structurée et mathématique de l’architecture de sécurité de la puce, plus poussée que la documentation requise aux niveaux inférieurs.
Les évaluateurs indépendants analysent ces conceptions pour détecter des faiblesses et réalisent des tests d’intrusion, en se plaçant dans la peau d’un adversaire à fort potentiel d’attaque : connaissances techniques avancées, ressources, motivation et temps conséquent pour étudier la puce.
La ST33J2M0, l’élément sécurisé de STMicroelectronics utilisé dans le Ledger Nano X, est certifiée EAL5+. C’est un standard pour les puces utilisées dans la banque, les terminaux de paiement et la majorité des cartes à puce de paiement.
EAL6+ : Conception vérifiée et testée semi-formellement (étendue)
EAL6+ ajoute des exigences importantes par rapport à EAL5+. La vérification de la conception doit être plus complète, couvrant davantage de modules internes de la puce et leurs interactions.
L’analyse de vulnérabilité est étendue à un plus large éventail de scénarios d’attaque. L’attaquant supposé passe à un « potentiel d’attaque très élevé » avec des techniques de pointe, un temps d’analyse prolongé et des équipements sophistiqués, incluant la fault-injection et l’analyse invasive de puce.
EAL6+ est la norme pour des produits déployés dans des environnements où d’importantes ressources peuvent être mobilisées contre une seule cible : secure elements de passeports gouvernementaux, HSM bancaires, matériel grand public sensible.
Une puce certifiée EAL6+ a été soumise à des tentatives d’attaque par des chercheurs en sécurité expérimentés, équipés de matériel professionnel, et ces attaques ont échoué dans le périmètre de l’évaluation.
La ST33K1M5 (utilisée dans les Ledger Nano S Plus, Stax et Flex), les puces Samsung Semiconductors (notamment la famille S3D350 présente dans Tangem Wallet), la famille NXP SE050/SE051, la série NXP P60/SmartMX2 et la famille Infineon SLE78/OPTIGA sont toutes certifiées EAL6+. Ce sont les puces que l’on retrouve dans les hardware wallets les plus sécurisés.
Secure elements utilisés dans les hardware wallets
| Fabricant | Famille de puces | Niveau EAL | Utilisé dans | Remarques |
|---|---|---|---|---|
| STMicroelectronics | ST33J2M0 | EAL5+ | Ledger Nano X | ARM SC300 core, certifié EMVCo |
| STMicroelectronics | ST33K1M5 | EAL6+ | Ledger Nano S Plus, Ledger Stax, Ledger Flex | ARM SC300 core, schéma EUCC/CC:2022 |
| NXP Semiconductors | Famille SE050 / SE051 | EAL6+ | Sécurité IoT, hardware wallets (CoolWallet) | Java Card OS, support PUF |
| NXP Semiconductors | P60 / SmartMX2 | EAL6+ | Banque, passeports, IoT | PUF, SecureFetch™, GlueLogic™ |
| Infineon Technologies | Famille SLE78 / OPTIGA | EAL6+ | Hardware wallets (HASHWallet), modules TPM | |
| Samsung Semiconductors | S3D232A | EAL6+ | Hardware wallets, documents de voyage lisibles par machine (MRTD) | Utilisé dans le Tangem Wallet |
Trois principales limites des certifications EAL
La certification EAL est la meilleure assurance indépendante disponible qu’une puce a été sérieusement testée contre des techniques d’attaque avancées. Mais elle comporte trois limites structurelles majeures.
Limite 1 : le périmètre de l’évaluation
Chaque évaluation EAL est bornée par son Target of Evaluation, souvent la puce seule. Tout ce qui est en dehors est explicitement exclu de l’évaluation, ce qui a des conséquences concrètes.
Même à l’intérieur de la puce, seules certaines fonctions de sécurité sont évaluées. Par exemple, une puce évaluée pour sa résistance à l’analyse de puissance sur des opérations RSA a été certifiée pour cette fonction spécifique.
Si l’implémentation d’une autre opération cryptographique, comme une routine de signature ECDSA ajoutée ultérieurement, n’est pas explicitement couverte dans le Security Target, elle ne bénéficie pas du même niveau d’assurance évaluée.
Limite 2 : l’instantané
Un certificat EAL est délivré à un instant donné, pour une version précise du produit, dans une configuration spécifique. Le certificat ne devient pas caduc automatiquement si de nouvelles techniques d’attaque sont découvertes ou si une vulnérabilité apparaît dans le produit évalué.
Cela crée un écart entre la date du certificat et le niveau de sécurité actuel de l’appareil. Une étude majeure de l’University of Cambridge Computer Laboratory par Skorobogatov et Anderson a montré dès 2002 que des attaques par injection de fautes optiques sur des microcontrôleurs sécurisés et des cartes à puce pouvaient être menées avec du matériel à moins de 40 $ ; une découverte qui a secoué l’industrie de la carte à puce et poussé les fabricants à renforcer les contre-mesures sur des puces déjà certifiées.
Limite 3 : le modèle de menace
À EAL6+, l’attaquant supposé dispose d’un potentiel d’attaque très élevé. Cela implique une forte sophistication technique, l’accès à des équipements professionnels, un temps étendu et une grande motivation.
Ce modèle de menace est rigoureux pour toute norme commerciale. Mais il ne couvre pas automatiquement tous les attaquants possibles, et exclut les techniques classifiées.
Le laboratoire d’évaluation utilise des techniques publiques. Les agences de renseignement disposant de capacités de recherche classifiées peuvent avoir des méthodes d’attaque non appliquées lors de l’évaluation.
EAL6+ signifie : un évaluateur compétent, bien équipé et accrédité indépendamment a tenté de compromettre cette puce avec les meilleures techniques publiques, sur les fonctions de sécurité définies dans le Security Target, et n’y est pas parvenu. Ce n’est pas la même chose que « cette puce ne peut pas être compromise ».
| Ce que garantit la certification EAL5+/6+ | Ce que la certification EAL5+/6+ ne garantit PAS |
|---|---|
| La puce a été évaluée par un laboratoire indépendant accrédité | Que la puce soit impossible à compromettre |
| Les évaluateurs ont tenté des attaques physiques et par canaux auxiliaires sans pouvoir extraire les clés dans le périmètre défini | Que l’évaluation ait couvert toutes les attaques possibles |
| La conception de la puce a été examinée formellement selon le niveau certifié | Que le firmware, l’application compagnon ou la chaîne d’approvisionnement répondent au même standard |
| Le document Security Target définit ce qui a été testé et dans quelles conditions | Que la certification s’applique à toute configuration autre que celle précisément évaluée |
| La puce répond au standard de résistance face à des adversaires à fort potentiel d’attaque | Qu’un EAL plus élevé signifie toujours une meilleure sécurité réelle. Chaque Security Target évalue des aspects différents |
Conclusion
Les notes EAL sont un signal utile : un indicateur parmi d’autres, chacun ayant une portée limitée.
Pour comparer les wallets :
- Vérifiez la version exacte de la puce sur le portail CC.
- Assurez-vous que l’appareil complet (et non la seule puce) bénéficie d’audits indépendants.
- Comprenez l’architecture du firmware : un firmware immuable élimine la surface d’attaque liée aux mises à jour que le certificat EAL de la puce ne couvre pas.
Références
- Common Criteria Portal — ISO/IEC 15408
- Common Criteria Part 5 : définitions EAL (PDF)
- Common Criteria Recognition Arrangement (CCRA)
- Skorobogatov, S.P. & Anderson, R.J. (2002). Optical Fault Induction Attacks. CHES 2002, LNCS 2523, Springer. University of Cambridge Computer Laboratory.
- Skorobogatov, S.P. (2005). Semi-Invasive Attacks: A New Approach to Hardware Security Analysis. Technical Report UCAM-CL-TR-630. University of Cambridge Computer Laboratory.
- Fault Attacks on Secure Embedded Software: Threats, Design and Evaluation (arXiv)
- Eurosmart : certification Common Criteria EAL6+ et problématique du périmètre
- Qu’est-ce qu’un secure element et pourquoi un cold wallet en a besoin ?
- Pourquoi le secure element n’est pas un point de confiance unique