Analyse par canaux auxiliaires sur les Secure Elements
Attaques électromagnétiques par canaux auxiliaires : ce que révèle la recherche publique sur les limites du matériel certifié.
La plupart des failles de sécurité matérielle surviennent au niveau de la puce : dans le firmware, la chaîne d’approvisionnement, les logiciels compagnons ou le comportement de l’utilisateur. Dans la majorité des incidents documentés, le Secure Element est contourné plutôt que compromis. Les articles précédents de cette série ont détaillé ce constat.
Cependant, la puce elle-même a également été compromise. Des attaques physiques directes contre des Secure Elements ont été documentées. Ces attaques visent les opérations cryptographiques internes de la puce, extraient des clés secrètes et réussissent malgré les défenses matérielles spécialement conçues pour les protéger.
Cet article présente les cas les plus marquants de recherches publiques sur les attaques électromagnétiques par canaux auxiliaires.
Qu’est-ce qu’une attaque par canal auxiliaire électromagnétique ?
Une attaque par canal auxiliaire électromagnétique consiste à surveiller les émissions radio d’une puce pendant des opérations cryptographiques afin d’en déduire les clés secrètes utilisées.
Cette attaque exploite le fait qu’une puce effectuant des opérations cryptographiques divulgue des informations via des phénomènes physiques observables (consommation électrique, variations de temps d’exécution, émissions électromagnétiques) qui sont corrélés aux valeurs secrètes traitées.
Dans un algorithme cryptographique à temps constant parfait, toutes les opérations prennent le même temps et consomment la même énergie, quel que soit l’entrée. C’est la défense standard contre les attaques temporelles et par consommation. Le fabricant doit rendre le signal uniforme pour qu’aucune information ne puisse être observée.
Le défi réside dans le fait qu’obtenir un comportement réellement constant sur toute une implémentation cryptographique est difficile, et de petites variations sont faciles à introduire et difficiles à détecter.
Cas d’analyse par canaux auxiliaires sur les SE
Cas 1 : NXP A700X / Google Titan Security Key
CANAL AUXILIAIRE ÉLECTROMAGNÉTIQUE · NinjaLab · USENIX Security 2021 · CVE-2021-3011
Le NXP A700X est un Secure Element de la famille P5x de NXP Semiconductors, une gamme de microcontrôleurs sécurisés utilisés dans les cartes bancaires, les documents d’identité et les tokens d’authentification matériels. Le A700X est la puce intégrée dans la Google Titan Security Key, le token d’authentification à deux facteurs matériel de Google, utilisé pour protéger les comptes Google et l’authentification FIDO U2F. On la retrouve aussi dans la YubiKey NEO de Yubico et dans les tokens d’authentification de Feitian.
La puce a pour rôle de générer et stocker une clé ECDSA privée lors de l’enregistrement du dispositif, puis d’utiliser cette clé pour signer les défis d’authentification. Le protocole FIDO U2F est explicitement conçu pour que la clé privée ne quitte jamais l’appareil. Aucun moyen légitime ne permet de l’exporter.
Déroulement de l’attaque
Pour comprendre l’implémentation ECDSA de NXP sans accès au code source, les chercheurs ont d’abord utilisé la NXP J3D081, une plateforme JavaCard open source qui utilise la même bibliothèque cryptographique que la A700X.
Ils ont rétro-ingéniéré la structure de l’algorithme sur la J3D081, ce qui leur a permis d’identifier le calcul vulnérable sur la puce cible A700X.
Préparation physique : un pistolet à air chaud et un scalpel ont permis de retirer le boîtier plastique de la Titan, exposant la puce NXP A700X. La sonde EM a été positionnée au plus près de la surface de la puce. L’appareil est resté pleinement fonctionnel, aucune modification permanente n’étant nécessaire.
Collecte de données : environ 6 000 opérations de signature ECDSA ont été déclenchées en envoyant des défis d’authentification à la Titan. Chaque opération a produit une trace EM. L’ensemble de la collecte a duré environ six heures.
Récupération de la clé : les traces EM ont été traitées hors ligne à l’aide d’algorithmes de récupération de clé par réseaux de lattices. La clé privée ECDSA a été extraite avec succès. Les chercheurs ont ensuite utilisé la clé récupérée pour créer un clone logiciel capable d’imiter la Titan physique pour n’importe quel compte enregistré.
Équipement utilisé : sonde EM Langer à champ proche, micro-manipulateur trois axes Thorlabs, oscilloscope PicoScope de Pico Technology. Coût total de l’équipement : environ 13 000 $.
Accès physique requis : plusieurs heures avec l’appareil. Le boîtier plastique de la Titan doit être ouvert, laissant des traces visibles d’effraction. L’appareil reste fonctionnel et peut être restitué à la victime.
Ce que révèle cette attaque
L’attaque sur le NXP A700X est une extraction directe et réussie d’une clé privée depuis une puce conçue pour empêcher précisément cela. La garantie de sécurité du protocole FIDO U2F — que la clé ne quitte jamais l’appareil — a été contournée grâce à la lecture d’informations fuitant de l’implémentation physique de l’algorithme sur la puce.
La famille P5x de NXP avait obtenu la certification CC, la dernière évaluation datant de 2015. L’impact de cette attaque sur le matériel actuel est limité, mais elle illustre clairement ce que la certification CC peut ne pas couvrir.
Cas 2 : Infineon SLE78 / EUCLEAK (YubiKey 5 Series)
CANAL AUXILIAIRE ÉLECTROMAGNÉTIQUE · NinjaLab · CHES 2024 · CVE-2024-45678
L’Infineon SLE78 est l’une des familles de Secure Elements les plus déployées au monde. C’est la puce qui équipe la YubiKey 5 Series, la clé de sécurité matérielle la plus populaire au monde. On la retrouve aussi dans de nombreux usages critiques :
- Passeports électroniques,
- Cartes bancaires,
- Systèmes de clés automobiles,
- Infrastructure d’authentification IoT,
- Wallets matériels de cryptomonnaies.
La SLE78 dispose de la certification CC EAL6+, le deuxième plus haut niveau d’assurance disponible, standard pour les applications commerciales les plus exigeantes en sécurité. Elle a passé environ 80 évaluations CC distinctes sur différentes configurations de produits.
La bibliothèque cryptographique d’Infineon est propriétaire. Elle est compilée dans le firmware de la puce et n’est pas documentée publiquement.
Identification de la vulnérabilité : approche plateforme ouverte
Thomas Roche de NinjaLab, en s’appuyant sur la même méthodologie que pour la recherche Titan de 2021, a commencé par étudier Feitian — une plateforme ouverte et programmable basée sur une puce Infineon SLE78 similaire, utilisant la même bibliothèque cryptographique que la YubiKey 5.
Après avoir caractérisé la vulnérabilité sur la plateforme Feitian ouverte, Roche est passé à la YubiKey 5Ci réelle.
Préparation physique : le boîtier externe de la YubiKey a été ouvert et la sonde EM positionnée près de la surface de la SLE78. L’appareil est resté fonctionnel.
Collecte de données : des traces EM ont été recueillies lors des opérations de signature ECDSA, soit la même opération que lors de chaque authentification avec la YubiKey.
Récupération de la clé : chaque trace a capturé les émissions EM lors de l’étape d’inversion modulaire. La clé privée ECDSA a été récupérée avec succès à l’aide d’algorithmes sur réseaux de lattices.
Coût de l’équipement : environ 10 000 €, incluant l’ordinateur portable utilisé pour le traitement hors ligne.
Fenêtre d’accès physique : quelques minutes avec l’appareil suffisent pour collecter les acquisitions EM nécessaires. Le traitement hors ligne demande du temps supplémentaire mais plus d’accès physique.
Ce que révèle cette recherche
Cela signifie que la YubiKey pourrait être clonée. Un attaquant sophistiqué disposant d’un accès physique temporaire à l’appareil, d’une sonde adaptée et du temps de calcul hors ligne nécessaire pourrait produire une copie logicielle générant des réponses d’authentification valides pour tous les comptes enregistrés sur la YubiKey.
La méthodologie d’évaluation n’a peut-être pas inclus d’équipements de mesure EM suffisamment sensibles. Les évaluateurs CC EAL ont pu concentrer leur analyse sur d’autres opérations mathématiques de la routine de signature.
EUCLEAK est la preuve publique la plus claire que la certification CC EAL6+ signifie que la puce a été testée contre des techniques connues et des modèles de menace définis.
Ce que démontrent ces deux cas
Pris ensemble, l’attaque NXP A700X et EUCLEAK constituent une trace documentée d’attaques physiques directes contre des puces sécurisées ou proches du domaine. Chacune a visé un fabricant différent avec la même technique, et a abouti.
Puce | Technique | Année | Résultat clé |
|---|---|---|---|
NXP famille P5x (CC EAL4+) | Canal auxiliaire EM (SCA) | 2021 | Clé privée ECDSA extraite ; token FIDO cloné sans détection. Failles dans la multiplication scalaire non constante dans la cryptobibliothèque ECC de NXP. |
Infineon SLE78 (CC EAL6+) | Canal auxiliaire EM (timing via EEA) | 2024 | Clé privée ECDSA extraite d’une puce certifiée EAL6+. Vulnérabilité non détectée pendant 14 ans et près de 80 évaluations CC. |
C’est là tout le défi de la conception d’un Secure Element : une cryptographie correcte est nécessaire, mais pas suffisante. L’implémentation doit aussi être à temps constant, correctement blindée et résistante à l’analyse par canaux auxiliaires.
Conclusions
Les deux attaques décrites dans cet article ont nécessité que le chercheur ait l’appareil cible en main pendant plusieurs minutes ou heures, utilise un équipement de laboratoire spécialisé et coûteux (10 000–13 000 € minimum) et possède une expertise en analyse par canaux auxiliaires électromagnétiques et en cryptanalyse sur réseaux de lattices. Aucune ne peut être réalisée à distance, et aucune ne laisse l’appareil visiblement endommagé.
Pour vous, utilisateur moyen de hardware wallet, votre véritable adversaire n’est pas un laboratoire d’État équipé d’une sonde Langer et d’une suite de traitement du signal. Ce sont le phishing, l’ingénierie sociale, les logiciels malveillants et la mauvaise conservation de la phrase de récupération.
Sources principales
Cas 1 — NXP A700X / Google Titan :
- Article complet : ninjalab.io/a-side-journey-to-titan/ et eprint.iacr.org/2021/028
- Présentation USENIX Security 2021 : usenix.org/conference/usenixsecurity21/presentation/roche
- CVE-2021-3011
Cas 2 — Infineon SLE78 / EUCLEAK :
- Article complet et page officielle : ninjalab.io/eucleak/
- Cryptology ePrint Archive : eprint.iacr.org/2024/1380
- Alerte sécurité Yubico : YSA-2024-03
- CVE-2024-45678 — NVD/NIST
- Présentation CHES 2024 : hardwear.io/netherlands-2024/presentation/eucleak.pdf