SoC physical security evaluation
Evaluation de la sécurité physique des SoC
Abstract
Since the democratization of mobile devices, sensitive operations likepayment, identification or healthcare, usually done using securityevaluated smartcards, are handled by these devices. However, mo-bile devices neither are designed for security nor security evaluated.Therefore, their resistance against powerful attacks, like physical at-tacks is questionable.In this thesis, we aim at evaluating the security of mobile devicesagainst physical attacks, in particular perturbation attacks. These at-tacks aims at modifying the execution environment of the device to in-duce bugs during its computation. These bugs are called faults. Thesefaults can compromise the security of a device by allowing the crypt-analysis of its secret or forcing an unauthorized authentication forinstance.Mobile devices are powered by modern processors, which are theheart of this work, and are never evaluated against fault attacks. How-ever, our knowledge about fault attacks on smartcards is not rele-vant as the processors powering smartcards are way less complex,in terms of number of modules, technology node and optimizationmechanisms, than modern processors.Regarding this situation, we aim at providing rationals on the se-curity of modern processors against fault attacks by defining a faultcharacterization method, using it on representative modern proces-sors and analyzing classical security mechanisms against the charac-terized faults.We characterized three devices, namely the BCM2837, BCM2711b0and the Intel Core i3-6100T against fault attacks using two differentinjection mediums: electromagnetic perturbations and a laser. We de-termined that these devices, despite having different architecture andusing different mediums are faulted in similar ways. Most of the time,a perturbation on these devices modify their executed instructions.As this is a powerful fault, we also analyzed classical security mech-anisms embedded in such devices. We successfully realized a dif-ferential fault analysis on the AES implementation of the OpenSSLlibrary, which is used in every Linux based operating system. Wealso analyzed the Linux user authentication process involved in thesudo program. This work highlights the lack of tools to efficiently ana-lyze Linux programs, which are rather complex with dynamic linkingmechanisms, against fault attacks.
De nos jours, nos appareils mobiles sont utilisés pour réaliser desopérations sensibles telles que du paiement, de l’identification ou lagestion de services santé. Historiquement, ces opérations sont réal-isées par des appareils conçus et évalués pour résister à diverses at-taques: les éléments sécurisés. En revanche, les appareils mobiles sontconçus pour fournir la meilleure performance possible et ne subissentaucune évaluation de sécurité. Cet état de fait interroge sur la résis-tance de ces appareils face aux attaques classiques contre lesquellesse protègent les éléments sécurisés.Parmi ces attaques, nous nous proposons, dans cette thèse, d’étudierles attaques par perturbations. Ces attaques consiste à modifier lesconditions d’exécution du circuit ciblé afin d’induire des erreurs dansson fonctionnement. Ces erreurs volontaires, communément appeléesfautes, permettent de créer des failles dans la cible pouvant allerjusqu’à la cryptanalyse d’un algorithme de chiffrement ou l’authentifi-cation d’un utilisateur non autorisé.Bien que ces méthodes d’attaques soient connues et étudiées surles éléments sécurisés, les appareils modernes reposent sur des pro-cesseurs modernes présentant des différences par rapport aux pro-cesseur des éléments sécurisés. Cela peut être le nombre de modulequ’ils embarquent, leur finesse de gravure ou des optimisations.L’impact de ces différences sur la sécurité des processeur n’a pasété étudié en prenant en compte la possibilité d’induire des fautes.C’est ce que nous réalisons dans cette thèse. Nous définissons uneméthode permettant de caractériser les effets de perturbations surun processeur moderne que nous appliquons sur trois processeursreprésentatifs des appareils existants: le BCM2837, le BCM2711b0 etl’Intel Core i3-6100T. Nous avons également utilisés deux moyensde perturbation classiques: l’injection d’onde électromagnétique etl’utilisation d’un laser. L’étude de ces cibles, en variant les moyensd’injections de faute, nous a permis de déterminer qu’elles réagissenttoutes de manière similaire aux différentes perturbations malgré leurdifférente architecture. L’effet le plus marquant étant la modificationdes instructions exécutées.Ce type de faute est très fort car il permet de modifier une par-tie du programme exécuté pendant son exécution. Vérifier le pro-gramme avant de l’exécuter ne protège en rien face à ce type defautes, par exemple. C’est pourquoi nous avons également étudié larésistance des mécanismes de sécurité présents dans ces cibles faceà ce type de faute. Nous avons notamment réussi à cryptanalyserl’implémentation de l’algorithme de chiffrement AES de la biblio-thèque OpenSSL, très utilisé dans les systèmes utilisant Linux. Nous avons également étudié la résistance du mécanisme d’authentificationdes utilisateurs d’un système Linux en regardant le programme sudo .Cette étude nous a, en particulier, révélé que la communauté manqued’outils efficace pour analyser ce type de programmes face aux fautes.En effet, les programmes s’exécutant dans un environnement Linuxbénéficient de nombreux mécanismes liés au noyau Linux qui rendentl’exécution d’un programme difficile à étudier.
Origin | Version validated by the jury (STAR) |
---|