Accueil  >  Type de post  >  Contributions  >  Pourquoi sécuriser l’implémentation des algorithmes cryptographiques ? [par Jacques Fournier, CEA]

FIC Tech

Pourquoi sécuriser l’implémentation des algorithmes cryptographiques ? [par Jacques Fournier, CEA]

Dans nos systèmes d’information modernes, la sécurisation des données peut être faite à plusieurs niveaux : soit à travers la manière de représenter ces données pour en assurer la confidentialité, l’intégrité ou l’authenticité ; soit à travers la manière de les gérer (camouflage, anonymisation…). Différents outils cryptographiques sont disponibles aujourd’hui afin de répondre à ces différents...

Dans nos systèmes d’information modernes, la sécurisation des données peut être faite à plusieurs niveaux : soit à travers la manière de représenter ces données pour en assurer la confidentialité, l’intégrité ou l’authenticité ; soit à travers la manière de les gérer (camouflage, anonymisation…). Différents outils cryptographiques sont disponibles aujourd’hui afin de répondre à ces différents objectifs de sécurité. Pour la confidentialité, les algorithmes dits ‘symétriques’ (où la même clef sert à chiffrer et à déchiffrer) tels que le Triple-DES (Data Encryption Standard) ou l’AES (Advanced Encryption Standard) sont utilisés pour chiffrer les données pour les rendre inintelligibles à quiconque ne possédant pas les clefs de déchiffrement adéquates. La confidentialité des données peut aussi être assurée à travers des algorithmes dits ‘asymétriques’ (où une clef dite ‘publique’ sert à chiffrer et une autre dite ‘privée’ sert à déchiffrer) tels que le RSA (algorithme de Rivest Shamir Adleman) ou les ECC (Elliptic Curves Cryptography). Ces derniers permettent aussi de mettre en œuvre des schémas de signatures électroniques pour authentifier l’origine des données. L’intégrité peut être assurée à travers des fonctions de hachage (SHA2, SHA3…).

Le niveau de sécurité des algorithmes de cryptographie utilisés a donc un effet direct sur le niveau de sécurité de tout système d’information les intégrant. De manière traditionnelle, le niveau de sécurité des algorithmes cryptographiques est mesuré en fonction des attaques algébriques ou structurelles possibles ou en fonction du nombre d’opérations nécessaires pour des recherches exhaustives sur les clefs utilisées. Cependant ce que révèle le domaine des systèmes embarqués (notamment le monde de la carte à puce) c’est que la sécurité de ces algorithmes dépend aussi de la manière dont elles sont mises en œuvre, en particulier par rapport à une classe d’attaques appelée « attaques physiques » : l’attaquant a physiquement accès au composant embarquant ces algorithmes et exploite les faiblesses liées aux implémentations de ceux-ci afin d’en déduire des informations sur les clefs secrètes utilisées.

Lors de ces attaques physiques, les faiblesses intrinsèques des circuits intégrés (CI) sur lesquels sont exécutés ces algorithmes cryptographiques sont exploitées afin d’en déduire des informations sur les algorithmes exécutés ou sur les données secrètes manipulées (par exemple les clefs cryptographiques supposément secrètes). Parmi les techniques d’attaques physiques, les plus dangereuses (de par leur facilité de mise en œuvre sur des circuits non sécurisés et de par le faible coût du matériel requis, de l’ordre de quelques dizaines de milliers d’euros) sont les attaques par canaux auxiliaires et les attaques par injections de fautes.

Ces attaques physiques ont été efficacement utilisées pour attaquer la plupart des algorithmes cryptographiques connus et déployés (DES, AES, RSA, ECC) directement (en attaquant le cœur même de l’algorithme) ou indirectement (en attaquant des périphériques, comme les mémoires, manipulant les données liées à ces algorithmes). Ces pratiques ont été validées contre différentes cibles matérielles et logicielles : processeurs embarqués, crypto-accélérateurs dédiés, circuits de téléphones portables, PC etc. Ainsi, l’implémentation de tout système de sécurisation de données doit prendre en compte cet aspect, encore plus dans le contexte actuel où le nombre d’objets connectés va croître exponentiellement et où tout nœud physique de ce nuage d’objets pourra être considéré comme un point de vulnérabilité contre ces attaques physiques.

 Les attaques physiques

Une ‘attaque physique’ contre un circuit électronique est un scénario où un attaquant ayant physiquement accès (ou se trouve à proximité) à un composant électronique va soit effectuer une étape de rétro-ingénierie, soit espionner un canal auxiliaire du composant ou soit perturber le fonctionnement du composant afin d’en extraire ou déduire des informations sensibles. Un canal auxiliaire peut être le courant consommé par le CI ou le champ Electromagnétique (EM) émis par celui-ci. Les perturbations, elles, peuvent être dues à des surtensions, à des rayonnements laser ciblés ou à des impulsions EM ciblant le circuit électronique. L’approche par rétro-ingénierie est une approche invasive, nécessitant des équipements relativement coûteux (de type FIB – Focused Ion Beam), qui permet de modifier physiquement le circuit ou d’aller en lire directement le contenu mémoire ou bus de communication. Dans la suite nous nous intéresserons principalement aux deux autres approches d’attaques physiques non invasives et beaucoup plus abordables en matière de coût de mise en œuvre.

Les premières références sur l’exploitation des canaux auxiliaires pour l’accès à des informations secrètes ou confidentielles viennent du projet TEMPEST [1] où par exemple le rayonnement électromagnétique des écrans d’ordinateurs était exploité à distance par des espions. Dans un contexte plus ‘grand public’ c’est vers la fin des années 90 que les premiers articles sont publiés sur l’exploitation de canaux auxiliaires pour extraire des données secrètes d’un composant électronique [2]. Un premier principe exploité est basé sur le fait que le temps d’exécution des certains algorithmes est directement corrélé aux données secrètes manipulées : on parlera alors de Timing Analysis. Un deuxième principe exploité est basé sur la corrélation entre les données manipulées et le courant consommé par un CI ou le champ EM émis. Cette corrélation est ainsi étudiée pour faire des hypothèses sur la valeur binaire manipulée et statistiquement trouver l’hypothèse la plus probable : on parlera alors de Differential Power/EM Analysis (DPA/DEMA) [3] ou de Correlation Power/EM Analysis (CPA/CEMA) [4]. Ainsi, cette technique a été utilisée pour extraire d’un CI « non protégé » les clefs cryptographiques manipulées par celui-ci, indépendamment de la robustesse ‘cryptanalytique’ de l’algorithme concerné, lors de chiffrements à base d’algorithmes cryptographiques standards tels que le DES, l’AES ou le RSA. Le canal auxiliaire émis peut aussi dépendre des instructions et opérations exécutées : dans ce cas l’observation directe du canal auxiliaire peut permettre de retrouver des clefs lorsque ces instructions dépendent des valeurs secrètes manipulées par le CI. Nous parlerons alors de Simple Power/EM Analysis (SPA/SEMA) qui a été pratiquement validé contre des implémentations « non protégées » ou « naïves » de RSA ou de cryptographie à base de courbes elliptiques (ECC) [5]. Ces différentes attaques par observations de canaux auxiliaires ont été validées sur des implémentations logicielles ou matérielles (sous forme de crypto-accélérateurs) de tout type d’algorithme de cryptographie et avec l’évolution et la maturation des technologies de « circuits intégrés sécurisés » les techniques d’analyses ont évolué et se sont affinées. Dans une certaine mesure, l’observation de canaux auxiliaires peut permettre de faire de la rétro-ingénierie non invasive permettant d’inférer des informations sur des algorithmes cryptographiques dont les spécifications ne seraient pas entièrement connues [6].

Les circuits intégrés sont par nature sensibles à leur environnement. Le fonctionnement correct d’un CI est garanti lorsque le circuit est alimenté dans une certaine plage de tension d’alimentation, lorsqu’il évolue dans une certaine plage de rayonnement environnant ou de champ EM. Ainsi, injecter une surtension sur un CI [7], le soumettre de manière locale à un stress lumineux (laser) [8] ou à une impulsion EM [9] peut soit dérouter le CI de son fonctionnement normal soit modifier localement et temporellement une valeur manipulée. Ces perturbations génèrent ainsi des résultats erronés. Dans le contexte des algorithmes cryptographiques, en ayant accès à la fois à un tel résultat erroné et au résultat correct attendu, des analyses différentielles peuvent être faites permettant de remonter à tout ou partie des clefs secrètes utilisées par l’algorithme. Nous parlerons alors de Differential Fault Analysis (DFA) contre le DES [10], l’AES [11], le RSA [12], les ECC [13] et même contre des schémas beaucoup plus complexes à base de Couplages [14][15]. La complexité des attaques par perturbations (aussi appelées attaques par injections de fautes) réside dans le fait qu’il y a différents moyens d’injecter des fautes avec différents effets possibles en fonction de la technologie dans laquelle est réalisé le CI, l’architecture de celui-ci, l’instant d’injection etc. Le concepteur se doit donc d’essayer de couvrir cette multitude de paramètres alors que pour l’attaquant, il lui suffit de trouver une configuration qui lui permette de récupérer un résultat erroné.

Ainsi, à cause de ces attaques physiques, utiliser des algorithmes de cryptographie au sein d’un circuit intégré pour le protéger ou protéger le système dans lequel il est intégré ne suffit pas. Une analyse doit être menée afin d’évaluer le risque lié au scénario où un attaquant a accès au circuit et arrive à en extraire les clefs de chiffrements ou d’authentifications via la mise en œuvre d’attaques physiques.  De plus, cette analyse doit régulièrement être actualisée face aux techniques de mesures plus précises et techniques d’analyses plus fines qui évoluent constamment.

Durant ces vingt dernières années, différentes techniques (logicielles et matérielles) ont été étudiées et proposées afin de concevoir des circuits dits « sécurisés » tels que ceux qu’on retrouve aujourd’hui dans des produits de type ‘cartes à puce’. Dans l’état actuel de la technologie, les chercheurs concentrent leurs efforts sur la possibilité de valider ces contre-mesures lors de la conception même des CI (on parlera alors de « security by design » ou encore de « at-design-time validation ») pour éviter de se fier uniquement sur des tests pratiques sur les circuits finaux.

 Les expertises du CEA

Au sein du CEA, différentes expertises sont disponibles afin de couvrir la grande majorité des aspects techniques liés à cette problématique d’attaques physiques contre les implémentations d’algorithmes cryptographiques.

Le Laboratoire Systèmes et Architectures Sécurisés (LSAS) [16] du CEA est spécialisé dans la mise en œuvre, l’analyse et l’exploitation des attaques physiques contre les CI. Ce laboratoire possède et maîtrise les outils matériels et logiciels permettant de faire des mesures précises en courant ou en champs EM émis et des injections de fautes en utilisant des ‘glitchs’ d’horloge, des surtensions d’alimentations, des tirs lasers (multi-sources) ou encore des impulsions EM. A travers l’infrastructure MicroPackS™ du Campus Georges Charpak Provence [17], le LSAS a aussi accès à une salle blanche permettant de faire de la rétro-ingénierie préliminaire ou de la préparation d’échantillons. Ainsi, ces compétences peuvent non seulement aider à jauger la robustesse des implémentations d’algorithmes cryptographiques contre les attaques physiques mais aussi d’aider les concepteurs de ces implémentations à comprendre l’origine des vulnérabilités (matérielles ou logicielles) et à mieux définir des contre-mesures adaptées.

Dans plus, les experts CEA accompagnent les concepteurs de solutions de sécurité dans l’analyse du risque que représentent ces attaques physiques contre les implémentations de cryptographie afin de les aider à concevoir des contre-mesures adaptées aux contraintes des applications visées. Ainsi, le département DCOS du CEA Leti [18] intervient à la fois sur la mise en œuvre de technologies mémoires sécurisées et sur l’étude d’écrans et capteurs dédiés. Le département DACLE du CEA Leti, lui, intervient au niveau de la conception d’architectures dédiées à la sécurité [18] tandis que le département DSIS intervient sur l’intégration des solutions de sécurité dans les systèmes. Le département DILS du CEA List [19] propose pour sa part des outils permettant de faire des vérifications d’implémentations de logiciels embarqués. Finalement, le CESTI du CEA Leti est l’un des trois laboratoires accrédités par le Schéma Français de Certification pour effectuer des évaluations sécuritaires sur des circuits intégrés dans le cadre de certifications de type Critères Communs [20]. Il est également accrédité par les grands réseaux bancaires (EMVCo [21], VISACARD, MASTERCARD) pour effectuer des évaluations de cartes bancaires.

 

Références

[1] https://www.nsa.gov/public_info/_files/cryptologic_spectrum/tempest.pdf

[2] P. Kocher el al,  “Differential Power Analysis”, CRYPTO’99, LNCS 1666, 1999, pp. 388-397.

[3] K. Gandolfi el al, “Electromagnetic Analysis: Concrete Results”, CHES’01, LNCS 2162, pp. 251-261.

[4] E. Brier el al, “Correlation Power Analysis with a leakage model”, CHES’04, LNCS 3156, pp. 16-29.

[5] S.A. Kadir el al, “Simple power analysis attack against elliptic curve cryptography processor on FPGA implementation”, ICEEI 2011, pp.1-4.

[6] C. Clavier, “An Improved SCARE Cryptanalysis Against a Secret A3/A8 GSM Algorithm”, ICISS 2007, pp 143-155.

[7] A. Djellid-Ouar et al, “Supply voltage glitches effects on CMOS circuits”, DTIS 2006, pp.257-261.

[8] F. Courbon et al, “Adjusting laser injections for fully controlled faults”, COSADE 2014.

[9] A. Dehbaoui et al, “Electromagnetic Transient Faults Injection on a Hardware and a Software Implementations of AES”, FDTC 2012, pp. 7-15.

[10] D. Boneh et al, “On the importance of checking cryptographic protocols for fault”, EUROCRYPT ’97, LNCS 1233, pp. 37-51.

[11] R. Lashermes et al, “A DFA on AES based on the entropy of error distributions”, FDTC 2012, pp. 34-43.

[12] C. Aumüller et al, “Fault attacks on RSA with CRT: Concrete Results and Practical Countermeasures”, in Cryptology ePrint Archive, Report 2002/073, http://eprint.iacr.org/.

[13] I.Biehl et al, “Differential Fault Attacks on Elliptic Curve Cryptosystems”, CRYPTO 2000, LNCS 1880, pp 131-146.

[14] R.Lashermes et al, “Practical validation of several fault attacks against the Miller algorithm”, FDTC 2014.

[15] R. Lashermes et al, “Inverting the final exponentiation of Tate pairings on ordinary elliptic curves using faults” CHES 2013.

[16] http://cmp.mines-stetienne.fr/fr/content/692-systemes-et-architectures-securises-sas

[17] http://cmp.mines-stetienne.fr/sites/default/files/Doc%20Gardanne%20BD.pdf

[18] http://www-leti.cea.fr/

[19] http://www-list.cea.fr/

[20] https://www.commoncriteriaportal.org/

[21] https://www.emvco.com/approvals.asp

 

Pin It