Pourquoi faire confiance aux circuits électroniques ?

26/08/2017
Auteurs : Jean-Luc Danger
OAI : oai:www.see.asso.fr:1301:2013-4:19563
DOI :

Résumé

Pourquoi faire confiance aux circuits électroniques ?

Métriques

27
5
388.13 Ko
 application/pdf
bitcache://ad3b5d7cd705180a925c0d2171639f1d10585d23

Licence

Creative Commons Aucune (Tous droits réservés)
<resource  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xmlns="http://datacite.org/schema/kernel-4"
                xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4/metadata.xsd">
        <identifier identifierType="DOI">10.23723/1301:2013-4/19563</identifier><creators><creator><creatorName>Jean-Luc Danger</creatorName></creator><creator><creatorName>Sylvain Guilley</creatorName></creator></creators><titles>
            <title>Pourquoi faire confiance aux circuits électroniques ?</title></titles>
        <publisher>SEE</publisher>
        <publicationYear>2017</publicationYear>
        <resourceType resourceTypeGeneral="Text">Text</resourceType><dates>
	    <date dateType="Created">Sat 26 Aug 2017</date>
	    <date dateType="Updated">Sat 26 Aug 2017</date>
            <date dateType="Submitted">Tue 13 Nov 2018</date>
	</dates>
        <alternateIdentifiers>
	    <alternateIdentifier alternateIdentifierType="bitstream">ad3b5d7cd705180a925c0d2171639f1d10585d23</alternateIdentifier>
	</alternateIdentifiers>
        <formats>
	    <format>application/pdf</format>
	</formats>
	<version>33293</version>
        <descriptions>
            <description descriptionType="Abstract"></description>
        </descriptions>
    </resource>
.

48 REE N°4/2013 LA PROTECTION DE L'ACCÈS AUX DONNÉES Jean-Luc Danger, Sylvain Guilley Télécom ParisTech Introduction La sécurité de nos données personnelles a long- temps été une affaire de mathématiciens, d’éminents cryptographes ou de spécialistes des protocoles. Elle repose sur des algorithmes et des modèles de me- nace formalisés, sur lesquels il est possible de prouver ou quantifier le degré de vulnérabilité. Ainsi le jour où Paul C. Kocher, “hacker” dans l’âme, a présenté ses premières attaques physiques sur les circuits cryptographiques, la communauté scientifique a été sous le choc : les fonctions cryptographiques les plus robustes étaient devenues vulnérables, non pas par cryptanalyse classique, mais en tirant parti des phénomènes physiques émanant du calcul. Parmi les exemples d’attaques physiques les plus connues, figurent notamment celles sur KeyLoq (ouverture des voitures) [1] et Mifare (carte à puce sans contact) [2]. En effet le temps de calcul et l’énergie dépensée par le calculateur sont indirectement liés au secret. Le fait d’observer cette activité forme un canal très efficace pour retrouver une information qui est par ail- leurs mathématiquement bien protégée. De même, perturber le calcul peut forcer le système à sortir des résultats erronés qui contiennent de l’information sur les secrets internes. En conséquence, comme tous les autres éléments de la chaîne de sécurité, les circuits électroniques, et au sens large les systèmes embarqués, doivent faire l’objet d’une attention particulière pour ne pas laisser fuir (ou fuiter) de l’information. C’est, en particulier, le cas des objets électroniques utilisés au quotidien, comme les cartes à puce, les téléphones portables, les tablettes tactiles, les distributeurs bancaires ... Les centres de recherche, comme le laboratoire sécurité de Télécom ParisTech, ont mis au point de nombreuses solutions de protection des circuits, ce qui peut en faire des objets ayant un très haut niveau de confiance, à condition de respecter cer- taines règles. Cet article vise à décrire les principes de sécurisation des circuits électroniques, en présentant d’abord les vulnérabilités et « attaques » potentielles, puis la façon de les contourner pour en faire des ob- jets de confiance. Les fuites de secret par les circuits électroniques Il ne faut pas forcément chercher midi à quatorze heures pour « attaquer » un circuit. Si un secret, sous The security of our private data has long been considered as a matter of mathematicians, distinguished cryptographers or specialists of protocols. It relies on algorithms and formal threat models on which it becomes possible to prove or quantify the vulnerability level. But when Paul Kocher presented his first physical attacks on cryptographic circuits, the scientific community was in shock: the most robust cryptographic functions became vulnerable, not by classical cryptanalysis, but by taking advantage of physical phenomenon originating from the computation activity. Indeed, the computation time or the energy consumed by the compu- ter, are indirectly linked to the secret information. The observation of this activity is a very efficient way to retrieve information even if they are mathematically very well protected. Similarly, a deliberate disturbance of computation creating faults can be exploited to recover internal secrets. Consequently, as all other elements of the security chain, the electronic devices, or more generally the embedded systems, must be subject to a particular attention for avoiding the leakage of sensitive information. This is particularly true for the common electronics devices as smartcards, smartphones, tablets... The research centers, at the Télécom ParisTech lab, studied many solutions to protect the circuits. This contributed to greatly increase their level of trust by meeting specific design rules. This article aims at giving an overview of methods to secure the circuits and embedded systems against physical attacks. The vulnerabilities and potential attacks are first described; then the protections, or countermeasures, are presented to transform the circuits in trusted objects. ABSTRACT REE N°4/2013 49 forme de fonction ou de donnée, est caché dans une puce, il suffit simplement de l’ouvrir et d’observer sa structure. Cette action intrusive est certes simple dans le principe mais nécessite des moyens techniques très divers et associés à des méthodes artisanales. Par exemple, l’ouverture d’un boîtier tire parti de procédés mécaniques et chimiques dont la pratique a été validée par de nombreux laboratoires qui les ont fiabilisés. Certaines recettes permettent d’ouvrir des composants électroniques en garantissant qu’ils restent fonc- tionnels. La figure 1 montre par exemple un microprocesseur ouvert, où certains modules sont clairement identifiables. Puis, si l’objectif de l’opération est de faire une contrefaçon, il reste à dévoiler et analyser les couches d’interconnexion, de l’ordre de six à sept, la couche la plus basse correspondant aux transistors composant les portes logiques. Cette attaque, dite en retro-conception, est très coûteuse mais reste réa- liste et rentable s’il existe un enjeu économique ou militaire stratégique. Des actions moins intrusives peuvent être entreprises une fois le circuit décapsulé et donc accessible à la lumière. Les structures à semi-conducteur sont en effet sensibles à l’énergie optique ; aussi, un tir laser peut venir perturber le calcul, ce qui permet de tirer parti d’algorithmes d’attaque. Un exemple est de venir inverser la valeur d’une variable de contrôle pour invalider une protection. Un autre est de com- parer le résultat d’un calcul de chiffrement correct avec un erroné, permettant de retrouver la clé par résolution d’un sys- tème d’équations booléennes. Cette attaque dite « active », ou à « injection de faute », est très efficace et constitue un test puissant des circuits pour les rendre aptes à une certifica- tion, comme celle des « critères communs » [3] nécessaires à l’utilisation des cartes à puce. De nombreux autres moyens pour perturber les circuits existent, notamment les injections de fautes par voie électro- magnétique qui ont l’avantage de ne pas être intrusifs mais sont moins précis que les lasers. Des attaques plus globales reposent sur le changement de la température, de la tension d’alimentation, l’injection de parasites sur la ligne d’alimen- tation ou sur l’horloge des bascules d’état du circuit. Elles peuvent s’avérer très puissantes mais ont le défaut d’adresser l’ensemble du circuit, ce qui ne permet pas toujours de cibler la partie où se trouve le secret recherché. L’observation de l’activité du circuit est la caractéristique des attaques passives. Elle se fait sur des canaux non fonc- tionnels appelés canaux auxiliaires ou canaux cachés. Les plus utilisés sont le temps de calcul, le courant consommé instantané ou le champ électromagnétique rayonné. Le prin- cipe est d’exploiter le fait que la réalisation d’une variable booléenne en un signal électronique nécessite de l’énergie et du temps. Les transitions de ces signaux sont particulière- ment porteuses d’information : un courant transitoire se crée uniquement si la variable change d’état. La mesure du temps de calcul est aussi un indice très fort car il dépend des va- leurs des variables. On appelle ces émanations des « fuites », et l’on dit que le composant « fuit » (ou même parfois « fuite », car il s’agit d’une fuite d’un secret, comme une information Figure 1 : Photographie d’un microcontrôleur, qui a ses différents modules « à l’air ». Figure 2 : Attaque simple sur le RSA, qui divulgue la clé secrète bit par bit 50 REE N°4/2013 LA PROTECTION DE L'ACCÈS AUX DONNÉES confidentielle qui « fuite » dans la presse...). Bien sûr il est nécessaire de connaître au minimum la nature de la fonction calculée de façon à bâtir un modèle ou motif d’activité et le comparer avec les échantillons temporels de fuite observés. Pour illustrer ce principe, l’attaque “Simple Power Analysis” est assez parlante. Elle consiste à repérer dans la trace de consommation, le motif de l’opération car celui-ci est différent suivant la valeur du bit d’exposant. En effet si le bit est à 1 le motif correspond à l’activité de la « multiplication et carré », alors que si le bit est à 0, le motif correspond au « carré seul ». Elle est illustrée par la figure 2 sur une implémentation naïve de l’algorithme de signature électronique RSA. D’autres attaques plus puissantes sont basées sur des propriétés statistiques, comme la CPA, ou “Correlation Power Analysis”, consistant à corréler un prédicteur d’activité à l’ob- servation. Ces attaques sont souvent menées dans une ap- proche diviser-pour-régner, où le secret est extrait morceau par morceau (e.g. octet par octet). Par exemple, dans la figure 3, on voit une partie de l’at- taque, où un octet de clé est retrouvé (il s’agit de l’octet qui donne la plus grande corrélation). Avec les mêmes traces, les 15 autres octets de clé de l’AES vont être retrouvés. Les moyens d’obtenir des circuits robustes Protection physique des circuits Il existe des protections physiques appelées aussi « contre- mesures », pour chaque type de menace. Pour le premier niveau de protection physique des composants, il est usuel de s’inspirer des méthodes éprouvées utilisées dans la pro- tection physique des biens, comme des bâtiments. On va par exemple élever des barrières et des grillages pour dissuader un voleur de pénétrer. S’il est motivé, le voleur va tenter de contourner ces obstacles, pour s’immiscer tout de même. Ainsi, on va mettre en place une protection active, par exemple en munissant le site de caméras de surveillance. Les pendants dans la protection des systèmes embarqués s’ap- pellent “shield1 ” et « senseur ». Ceux-ci peuvent être respecti- vement ajoutés autour du système ou parsemés à l’intérieur. Il est même possible d’intégrer “shields” et senseurs au sein d’un composant réalisé en technologie CMOS (procédé dominant pour la fabrication des composants électroniques numériques intégrés). La figure 4 montre un “shield” actif, c’est-à-dire un grillage de fils, éventuellement enchevêtrés, qui véhicule des signaux secrets. Dans la figure 4, le grillage ou “shield” a une trame verticale dans l’exemple de gauche, et une trame diagonale dans l’exemple de droite. Toute ten- tative de destruction, de coupe ou de modification du grillage conduira donc à une détection. Protection contre les attaques via les canaux cachés Les attaques sur les canaux auxiliaires ont ceci de sournois qu’elles peuvent être réalisées à l’insu du composant. Effecti- vement, elles sont passives (elles n’interagissent pas avec le système) et non intrusives (on peut les réaliser sans même toucher le système). Ceci est particulièrement vrai pour les attaques qui mesurent le temps de calcul et le rayonnement électromagnétique des circuits. Dans ce cas, on peut imiter les méthodes des films d’espionnage permettant d’échanger de l’information confidentielle même si l’on sait que l’on est écouté. Il suffit pour cela de mettre de la musique très fort dans la pièce, pour couvrir la conversation. On peut aussi trouver un parallèle avec la stéganographie : la protection consiste à noyer le signal dans une masse d’information. Dans les systèmes 1 Bouclier. Figure 3 : Attaque différentielle sur un chiffrement AES, qui met en évidence la valeur d’un octet de clé REE N°4/2013 51 embarqués, un tel bruitage artificiel peut être obtenu dans le temps, en désynchronisant les calculs (random delays [5]), ou verticalement, en effectuant plusieurs opérations (dont des opérations inutiles) en parallèle au calcul utile. Bref, nous sommes en train de décrire une stratégie de défense en profondeur, par la mise en place de couches de protection, qui doivent être toutes attaquées avec succès pour accéder aux secrets que le système recèle. Une autre façon d’éviter une extraction du secret en uti- lisant les canaux cachés, est de faire en sorte que le secret évolue entre les différents essais nécessaires à l’attaque. Ainsi, une attaque sur des ressources cryptographiques n’au- ra-t-elle pas encore eu le temps d’aboutir que la clé cryp- tographique ne sera plus pertinente. Une implémentation d’une telle protection par clés éphémères est décrite dans [6]. Ces protections au niveau protocolaire sont particuliè- rement efficaces en termes de surcoût, car essentiellement, elles ne nécessitent que peu de ressources supplémentaires (en-dehors d’un compteur qui mémorise la fréquence des mises à jour) et ne ralentissent qu’à la marge les opérations cryptographiques. Il convient de noter que cette approche visant à contrôler l’usage de la primitive cryptographique l’immunise également des attaques sur les injections de fautes [7]. Il est très élégant de savoir calculer de façon sécurisée avec une primitive vulnérable (sans protection) qui fuit et qui est sensible aux perturbations. Mais l’inconvénient de cette approche est qu’il existe de nombreux cas d’usage où il est important que l’utilisateur puisse appeler la primitive cryptographique selon un protocole qu’il définit lui-même. Par exemple, il peut souhaiter pouvoir faire de nombreuses transactions courtes, avec de nombreux interlocuteurs, sans avoir à se resynchroniser sans cesse avec eux (pour mettre à jour la clé de chiffrement). Il existe donc aussi un besoin de disposer de primitives de calcul intrinsèquement robustes. De nombreuses protections ont été inventées pour prévenir ou empêcher les attaques. De prime abord, on peut envisager deux types de protec- tion [8] : 1. des protections dynamiques, où le secret à protéger est manipulé via des fonctions aléatoires, ce qui entrave toute tentative de perturbation ciblée et brouille toute écoute de canal auxiliaire ; 2. des protections statiques, où le secret à protéger est en- codé de façon équilibrée, pour que les éventuelles fuites soient indépendantes du bien à protéger. Dans le premier cas, on parlera de masquage. On peut l’illustrer en prenant l’exemple d’un piéton qui doit se rendre d’un point A à un autre B dans une ville et qui choisit d’ef- fectuer son parcours à chaque fois en prenant des ruelles au hasard. Comme il existe plusieurs façons d’aller de A à B (imaginez Manhattan, où les rues forment un quadrillage), il sera possible sans grande perte de temps de faire le che- min de façon imprédictible sans pour autant perdre trop de temps. Un tel procédé de sécurisation peut s’implémenter au niveau algorithmique : il suffit de savoir calculer sur des données qui ont été masquées aléatoirement. Dans le second cas, à savoir une protection statique, il apparaît clairement qu’une prise en compte de la plate- forme d’exécution est primordiale. Une réalisation classique se nomme double-rail. Elle consiste à dupliquer le calcul, de telle sorte qu’une moitié « fausse » (factice) vienne couvrir l’activité « vraie » (nominale) de l’autre moitié. Un tel équili- brage au niveau de l’implémentation nécessite une caracté- risation fine du support de calcul, ce qui est le cas des circuits ASIC (conçus « à façon ») et dans une certaine mesure des circuits FPGA (i.e. circuits reprogrammables). Perspectives Nous venons de voir que la sécurité s’appuie sur une com- position de différentes méthodes complémentaires : protec- tion physique (“shield”, senseurs, etc.), et protection logique, fortement couplée à l’algorithme à protéger (aux niveaux pro- tocolaire, algorithmique et/ou implémentation). La quantité Figure 4 : Protection d’un composant électronique par la confection sur le dessus d’un “shield” : source [4]. 52 REE N°4/2013 LA PROTECTION DE L'ACCÈS AUX DONNÉES et la qualité des protections à utiliser est une question de com- promis sécurité/coût. À ce jour, cet exercice reste manuel, tout comme la réalisation des protections. Il est effectivement diffi- cile (hormis peut-être pour les solutions de “shields” et de sen- seurs) de proposer un déploiement générique de la protection. Un schéma de masquage (arithmétique ou booléen) s’adapte par exemple en fonction de l’algorithme à protéger et du support matériel (microprocesseur ou cryptoproces- seur) sur lequel est implanté l’algorithme. Le concepteur doit aussi prendre tour à tour le rôle de dé- fenseur et d’attaquant pour valider ses schémas de protection face aux attaques potentielles qui sont en progrès constant. Cette grande part d’expertise explique que beaucoup de pro- tections sont codées sur mesure. Ainsi l’évaluation de la sécu- rité ne se fait qu’une fois le circuit fabriqué, car la technologie utilisée peut impacter le niveau de sécurité. Aussi seul le circuit final permet de valider la combinaison des protections mul- tiples pour faire face aux différentes attaques. Pour minimiser cette latence et le risque de fabriquer un circuit dont on s’aper- çoit après fabrication de ses vulnérabilités avérées, il serait préférable de faire de la sécurité « par design », c’est-à-dire en prenant en compte les spécificités du matériel dès la phase de conception. Ceci permet de valider au niveau de modèles plus ou moins abstraits, la robustesse d’une implantation. D’autre part le travail sur un modèle peut tirer parti de méthodes auto- matisant l’insertion des protections. L’utilisation de modèles et la formalisation des menaces est aussi une tendance forte pour prouver formellement les propriétés de sécurité. Conclusion Les attaques sur les systèmes embarqués sont devenues monnaie courante. Il est donc important de définir des pa- rades de confiance pour les protéger. Maintenant, rien de tel que de connaître son adversaire pour mieux préparer sa défense. C’est à partir de ce principe que nous établissons une cartographie des attaquants potentiels et en déduisons des méthodes de protection idoines. Ainsi, quelle que soit la force présumée de l’attaquant, il est possible de mobiliser des protections qui vont contrecar- rer les assauts de l’attaquant. Pour résumer, la confiance dans les équipements électroniques est de mise si les menaces sont clairement identifiées et si les composants ont été bien conçus : l’essentiel de la difficulté est donc d’anticiper ration- nellement l’attaquant et ainsi, de réaliser une étude de risque réaliste. Ensuite, on trouvera soit sur le marché des compo- sants « clés en main » pour résister face à la menace, soit des industriels en mesure de produire de tels composants à façon. Références [1] KeyLoq, «http://en.wikipedia.org/wiki/KeeLoq». [2] Mifare, «http://fr.wikipedia.org/wiki/Mifare». [3] CC, “Common Criteria Consortium. Common Criteria (aka CC) for InformationTechnology Security Evaluation (ISO/ IEC 15408)”, 2013. [4] C. Tarnovsky, “Infineon / ST Mesh Comparison”, 2010. [5] J. S. Coron, “Analysis and Improvement of the Random Delay Countermeasure”, Springer LNCS, 2009. [6] P. C. Kocher, “Design and Validation Strategies for Obtaining Assurance in Countermeasures to Power Analysis and Related Attacks”, 2005. [7] S. Guilley, “Performance Evaluation of Protocols Resilient to Physical Attacks”, 2011. [8] S. Guilley, “Vade Mecum on Side-Channels Attacks and Countermeasures for the Designer and the Evaluator”, 2011. Jean-Luc Danger est Directeur d’Etudes à Institut Mines-Télé- com/Télécom ParisTech. Il anime le groupe de recherche sur les architectures des systèmes électroniques numériques. Ses activi- tés de recherches portent sur la sécurité des systèmes embarqués, les architectures reconfigurables et l’implémentation d’algorithmes complexes. Il est l’auteur d’environ 150 articles scientifiques et 15 brevets sur les architectures électroniques contraintes au niveau complexité, vitesse et sécurité. Il est membre IACR et IEEE, a le diplôme d’ingénieur de l’École Supérieure d’Electricité (1981), et a mené une carrière industrielle chez Philips et Nokia avant de deve- nir enseignant/chercheur à Télécom ParisTech en 1993. Jean-Luc a co-fondé en 2010 la société Secure-IC S.A.S., spin-off de Télécom ParisTech spécialisée dans la sécurité des systèmes embarqués. Sylvain Guilley est Ingénieur en Chef des Mines et Maître de Conférences associé à Institut Mines-Télécom/Télécom Paris- Tech. Depuis 2002, il mène des recherches sur la sécurité prou- vée dans les circuits et systèmes embarqués. Sylvain est l’auteur d’une centaine articles scientifiques et d’une dizaine de brevets sur la sécurité des systèmes embarqués. Il est membre de l’IACR, de l’IEEE et du club CryptArchi. De formation, il est diplômé de l’École Polytechnique (X97), de Télécom-ParisTech (2002), a ob- tenu un MSc de l’ENS/Université Paris 6, un doctorat de Télécom ParisTech (2007) et une HDR de l’université de Paris 7 (2012). Sylvain a co-fondé en 2010 la société Secure-IC S.A.S., spin-off de Télécom ParisTech spécialisée dans la sécurité des systèmes embarqués. Depuis 2012, il organise la conférence PROOFS, qui rassemble une communauté de chercheurs dont l’objectif d’ac- croître la confiance dans la sécurité des systèmes embarqués. LES AUTEURS