Les cartes à puces et la sécurité

Le 25 Mars 1974, le français Roland Moreno dépose un brevet décrivant un circuit microélectronique embarquant une mémoire, intégrée dans une fine carte plastique. Ces circuits sont appelés cartes à puce, ou smartcard en anglais. Deux ans plus tard, dans le but de sécuriser les informations contenues dans cette mémoire, un autre français, Michel Ugon, parviendra à intégrer un microprocesseur dans ces cartes plastiques. Le microcontrôleur sécurisé est né. Depuis, la carte à puce s’est très largement répandue dans de nombreux domaines tels que la communication (carte SIM), le secteur bancaire (carte bancaire), le médical (carte vitale) ou comme moyen d’identification (passeport biométrique, badge d’entreprise…).

Composition et fonctionnement des cartes à puces

La communication entre une carte à puce et le lecteur est réalisée par un micromodule doré très mince,  mettant en contant les broches du lecteur avec les différents contacts de la puce embarquée dans la carte plastique. Une alternative pour communiquer avec la puce a été récemment mise en œuvre et déployée auprès des consommateurs. Il s’agit d’un protocole radio-fréquence : le protocole NFC pour Near Field Communication, qui ne nécessite donc aucun contact physique avec la carte.

Le micromodule comporte 5 points de contact (les trois autres ne sont pas ou plus utilisés). Le plot Vcc fournit l’alimentation générale du circuit intégré (CI), tandis que le plot Gnd est utilisé comme potentiel de masse (ou Ground, Gnd). Le CI étant un circuit synchrone, un signal d’horloge (CLK) est fourni par le plot de contact Clk, bien que maintenant la majorité des circuits aient un générateur de signaux d’horloge interne pour des raisons de sécurité. Le transfert des données entre le lecteur et la carte à puce est assuré par le contact d’entrée/sortie, I/O (Input/Output). Enfin, le contact Rst (Reset) permet d’envoyer un signal de réinitialisation à la puce lors de son fonctionnement.

Sa communication avec le lecteur extérieur se fait via l’émetteur récepteur asynchrone universel appelé l’UART (Universal Asynchronous Receiver Transmitter), au moyen des plots de contacts. Elle est également constituée des éléments classiques d’un microcontrôleur, à savoir un microprocesseur (CPU), des mémoires (RAM, ROM et EEPROM) et d’un bloc analogique. Les signaux de données sont transportés dans l’ensemble des éléments du circuit via le bus de données. Un module d’interface radiofréquence (RF) permet la communication avec l’extérieur par la technologie NFC et une antenne. Enfin, les puces conçues pour des applications sécuritaires, intègrent généralement un ou plusieurs processeurs cryptographiques (ou cryptoprocesseurs), permettant de chiffrer plus efficacement et de manière plus sûre des données. Ces éléments primordiaux et les concepts de la cryptographie sont détaillés dans la section suivante.

Le crypto-processeur 

Une carte à puce peut contenir des données personnelles et sensibles dont il est primordial d’assurer la sécurité. La sécurisation de ce type de données est devenue un enjeu d’autant plus important que les objets connectés (Internet Of Things), constituant des cibles de choix pour les pirates, se sont multipliés ces dernières années.

L’intégration d’algorithmes cryptographiques au sein des puces est donc devenue incontournable ces dernières années : même les microcontrôleurs dédiés à des applications standards (non sécuritaires) intègrent désormais de tels algorithmes.

L’objectif d’un système sécurisé est d’assurer :
– La confidentialité des données : seules les personnes autorisées peuvent lire les informations chiffrées.
– L’intégrité des données : le message chiffré ne peut pas être modifié ou altéré sans que cela soit perçu par les personnes autorisées.
– L’authenticité des données : les données lues par le destinataire ont bien été envoyées par l’émetteur signant ces données.
– La non-répudiation : l’auteur d’un message codé ne peut pas renier en être la source.

Les algorithmes de chiffrement se basent sur les principes de Kerckhoff [4]. Ces derniers partent du postulat selon lequel toutes les méthodes de chiffrement sont connues de l’ennemi, et affirment donc que la sécurité d’un système cryptographique ne doit reposer que sur la confidentialité des clés de chiffrement et en aucun cas sur la méthode de chiffrement.

La méthode de chiffrement la plus utilisée est le chiffrement symétrique (utilisant la même clé secrète pour le cryptage et décryptage) par bloc. De tels algorithmes se déroulent en général en plusieurs rondes durant lesquelles une sous-clé (dérivée de la clé secrète) est utilisée pour chiffrer le message. Le nombre de rondes dépend du nombre de bits de la clé secrète. Par exemple, les algorithmes AES (Advanced Encryption Standard) à 128bits, 192 bits et 256bits se déroulent en 10, 12 et 14 rondes respectivement. Au terme de la dernière ronde, le message est entièrement crypté.

Le message (ou cyphertext) que l’on souhaite transmettre est d’abord chiffré par un algorithme de cryptage, en utilisant une clé symétrique. Ce message est ainsi chiffré pour être transmis à un tiers, via un canal non sécurisé. Le destinataire du message le décrypte alors en utilisant la même clé.

Des crypto-processeurs matériels sont souvent utilisés pour effectuer les algorithmes cryptographies, pour gérer les clefs et messages cryptographiques et pour implanter les protocoles cryptographiques décrits dans le paragraphe précédent. Ils sont utilisés pour leur flexibilité et leur haute performance et sont donc également les cibles d’attaques logicielles et matérielles dont le but est souvent de révéler les clés secrètes de chiffrement.

Table des matières

Introduction générale
État de l’Art
1.1 Les cartes à puces et la sécurité
1.1.1 Composition et fonctionnement des cartes à puces
1.1.2 Le crypto-processeur
1.2 Les attaques matérielles sur le circuit
1.2.1 Classification des attaques matérielles
1.2.1.a Les attaques physiques
1.2.1.b Les attaques par canaux cachés
1.2.2 Attaques par injection de fautes
1.2.2.a Types de fautes
1.2.2.b Attaques par perturbation globale
1.2.2.c Attaques par perturbation locale
1.2.2.d Perturbation de la polarisation du substrat
1.2.2.e Attaques par particules ionisantes
1.2.2.f Attaques par illumination
1.2.2.g Attaque par injection électromagnétiques
1.3 Rappel de fondements de l’électromagnétisme
1.3.1 Création d’un champ électromagnétique
1.3.2 Le couplage électromagnétique
1.4 L’apparition de l’injection de fautes électromagnétique
1.4.1 Première injection de faute
1.4.2 Les injections EM harmoniques
1.4.3 Les injections par impulsion EM
1.5 Les différents modèles de fautes de l’injection de fautes électromagnétique
1.5.1 Fautes de timing
1.5.2 Fautes d’échantillonnage
1.5.3 Autres modèles de fautes
1.5.4 Modélisation de l’EMFI
1.6 Contre-mesures face aux attaques par injection de fautes et EMFI
1.6.1 Conception du circuit
1.6.2 Capteur de variation physique
1.6.3 Détecteur numérique
1.7 Contexte et objectifs de la thèse
Modélisation de l’impact de l’EMFI sur l’alimentation d’un circuit intégré
2.1 Structure d’un circuit intégré
2.1.1 Les différents niveaux de métallisation
2.1.2 Layout d’un circuit
2.2 Problématiques expérimentales de l’EMFI
2.2.1.a Plateforme d’injection de pulses électromagnétiques
2.2.1.b Développement de circuits de tests
2.2.2 Problématique des fils de bonding
2.2.2.a Injection EM sur des pistes métalliques
2.2.2.b Effet d’une EMFI sur un registre à décalage
2.3 Couplage entre la sonde d’injection EM et le circuit
2.3.1 Hypothèses de couplage
2.3.2 Profils de distribution du champ EM et principe de superposition
2.4 Modélisation de l’effet du couplage EM avec les grilles d’alimentation
2.4.1 Modélisation du couplage entre une sonde d’injection EM et le réseau
d’alimentation et de masse
2.4.2 Modélisation des portes logiques standards
2.4.3 Simulation de l’effet d’une induction EM sur la grille d’alimentation d’un circuit intégré
2.4.3.a Modélisation de l’ensemble d’un circuit intégré
2.4.3.b Modèle de l’impulsion de tension appliquée à la sonde EMFI
2.4.3.c Simulation d’une EMFI : sonde proche du circuit
2.4.3.d Simulation d’une EMFI : sonde éloignée du circuit
2.4.3.e Analyse des variations de swing
2.5 Conclusion
Modélisation de l’impact d’une EMFI sur le fonctionnement d’un CI synchrone
3.1 La bascule, base de la logique séquentielle
3.1.1 Les bascules dans un circuit synchrone
3.1.2 Bascule D : fonctionnement et contraintes de temps
3.1.3 Principe de fonctionnement des CIs synchrones
3.2 Simulation d’EMFI sur CI synchrone
3.2.1 Présentation des conditions de simulation
3.2.2 Critère de faute F
3.3 Effet d’une EMFI sur un CI synchrone
3.3.1 Apparition des fautes d’échantillonnage
3.3.1.a Cas d’une transition de l’état ‘0’ vers ‘1’
3.3.1.b Cas d’une transition de ‘1’ vers ‘0’
3.3.2 Impact des réglages de l’EMFI sur la fenêtre de faute d’échantillonnage
3.3.2.a Impact du Swidth
3.3.2.b Impact de Vdd la tension nominale d’alimentation du CI
3.3.3 Mécanisme de la formation de faute d’échantillonnage
3.3.4 Variations de swing hétérogènes sur les différentes parties du circuit
3.4 Parallèle simulations vs expérimentations du modèle de faute d’échantillonnage
3.4.1 Plateforme et conditions expérimentales
3.4.2 Fautes et fréquence d’horloge
3.4.3 Fautes et paramètres de l’EMFI
3.4.3.a Effet des variations du 𝑽𝒑𝒖𝒍𝒔
3.4.3.b Effet des variations du PW
3.4.3.c Effet des variations de la tension d’alimentation Vdd
3.5 Conclusion
Proposition de contre-mesures
4.1 Règle de conception du CI
4.1.1 Routages des alimentations
4.1.2 Routages des blocs logiques
4.1.3 Influence des capacités de découplage
4.2 Exploitation des fils de bonding
4.3 Détecteurs de dérives temporelles
4.4 Simulation et test d’un détecteur d’EMFI
4.5 Conclusion
Synthèse
Conclusion générale

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *