Brevet FR3091370A1 — publié le 20200703

Description Titre de l'invention : Circuit de protection Domaine technique [0001] La présente description concerne de façon générale les circuits et systèmes élec- troniques et, plus particulièrement, une contremesure contre des attaques par injections de fautes. Technique antérieure [0002] Certains circuits électroniques manipulent des données ou exécutent des algorithmes ou programmes dont on souhaite réserver l'accès à des utilisateurs ou circuits autorisés. On fait alors généralement référence à des données secrètes ou algorithmes de chiffrement utilisant des dés dites secrètes. [0003] Pour percer les secrets de tels circuits et, par exemple, découvrir les quantités ou données secrètes manipulées, une catégorie d'attaques consiste à injecter des fautes permanentes ou temporaires dans le circuit afin de pouvoir analyser sa réaction. Il s'agit, par exemple, d'analyses par canaux cachés analysant la consommation du circuit (analyse de la consommation de type SPA - Simple Power Analysis ou DPA - Differential Power Analysis), son rayonnement électromagnétique, etc. Il peut s'agir également d'analyses de la réponse du circuit (de ses entrées-sorties), etc. [0004] L'injection de fautes s'effectue de plus en plus souvent sans utiliser les entrées- sorties du circuit mais par modification d'états internes, par exemple à l'aide d'un laser (attaques FIB - Focuscd Ion Bcam), par perturbation électrique ou électromagnétique, ou de façon plus intrusive en forçant certains états internes en coupant ou détournant des chemins électriques de façon physique. Certaines de ces attaques font appel à des traitements préalables d'élimination de couches (attaques face arrière) ou de réalisation de fenêtres pour accéder aux couches actives. [0005] Dans des circuits électroniques, par exemple des microcontrôleurs, dits sécurisés, le circuit est équipé de mécanismes pour contrer d'éventuelles attaques ou, à tout le moins en limiter les effets. En particulier, l'objectif des contremesures est d'empêcher que le pirate ne parvienne à extraire les données ou quantités secrètes du circuit protégé. [0006] Une catégorie de contremesures à laquelle s'applique plus particulièrement les modes de réalisation décrits concerne les contremesures qui réinitialisent (reset) le circuit lorsqu'une tentative d'attaque est détectée. Une telle réinitialisation évite que l'attaquant ne puisse extraire des informations sensibles. Toutefois, une difficulté est qu'en rejouant l'attaque plusieurs fois de façon localisée, l'attaquant est susceptible d'identifier la zone du microcontrôleur où se trouvent les circuits provoquant la réinitialisation et/ou les conducteurs véhiculant les signaux de réinitialisation. Une fois 2 cette identification effectuée, l'attaquant peut être en mesure de déjouer la réinitialisation et le microcontrôleur n'est alors plus sécurisé. Résumé de l'invention [0007] 11 existe un besoin d'amélioration des contremesures contres des attaques par injection de fautes. [0008] Un mode de réalisation prévoit un circuit de protection contre des attaques par injection de fautes palliant tout ou partie des inconvénients des solutions connues. [0009] Un mode de réalisation prévoit un circuit électronique comportant : plusieurs noeuds de protection comportant chacun : au moins une fonction de traitement. d'informations représentatives d'une détection d'une perturbation, provenant d'au moins une fonction de détection ; et au moins une fonction de mise en oeuvre d'une contremesure commandée par la fonction de traitement. [0010] Selon un mode de réalisation, chaque noeud comporte au moins une fonction de détection d'une perturbation. [0011] Selon un mode de réalisation, chaque fonction de traitement reçoit les informations provenant de tous les détecteurs du circuit. [0012] Selon un mode de réalisation, les fonctions de traitement des différents noeuds com- muniquent entre-elles. [0013] Selon un mode de réalisation, les fonctions de traitement sont reliées entre-elles par un bus. [0014] Selon un mode de réalisation, les fonctions de traitement sont reliées deux à deux par des liaisons dédiées. [0015] Un mode de réalisation prévoit un microcontrôleur comportant un circuit tel que décrit. [0016] Selon un mode de réalisation, le microcontrôleur comporte en outre un circuit de commande d'une réinitialisation du microcontrôlcur. Brève description des dessins 100171 Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : 100181 Ifig.11 la figure I représente un exemple de circuit électronique du type auquel s'applique les modes de réalisation décrits ; 100191 Ifig.21 la figure 2 illustre, de façon très schématique et sous forme de chronogramme, un exemple de signature électromagnétique usuelle d'un microcontrôleur sécurisé lors de 3 la détection d'une attaque potentielle ; [0020] [fig.3] la figure 3 représente, de façon très schématique et sous forme de blocs, un mode de réalisation de circuit électronique équipé d'un mode de réalisation d'une architecture de protection ; [0021] [fig.4] la figure 4 représente, de façon très schématique et sous forme de blocs, un mode de réalisation d'un noeud de protection ; [0022] [fig.5] la figure 5 représente, de façon très schématique et sous forme de blocs, un exemple d'architecture de sécurisation d'un microcontrôleur ; et [0023] [fig.6] la figure 6 représente, de façon très schématique et sous forme de blocs, un autre exemple d'architecture de sécurisation d'un microcontrôleur. Description des modes de réalisation [0024] De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. [00251 Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. En particulier, les applications ainsi que les fonctions mises en oeuvre par le circuit électronique protégé n'ont pas été détaillées, les mécanismes de protection décrits étant compatibles avec les applications et fonctions des circuits usuels. De plus les détecteurs d'intrusions ou d'attaques n'ont pas été détaillés, les modes de réalisation décrits intervenant sur les contremesures et étant compatible avec tout détecteur usuel. [0026] Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés ou couplés entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés ou couplés par l'intermédiaire d'un ou plusieurs autres éléments. [0027] Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "altère", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures. [0028] Sauf précision contraire, les expressions "environ", "approximativement", sen- siblement", et "de l'ordre de" signifient à 10% près, de préférence à 5 % près. [0029] La figure 1 représente un exemple de circuit électronique du type auquel s'applique les modes de réalisation décrits. [0030] Le circuit de la figure 1 est par exemple un microcontrôleur sécurisé 1. [0031] Un tel microcontrôleur est basé sur un microprocesseur ou unité centrale 11 (CPU), susceptible de communiquer, par l'intermédiaire d'un ou plusieurs bus 13, avec différents autres circuits avec lesquels il est intégré. [0032] Typiquement, le microcontrôleur 1 intègre des circuits mémoires, par exemple une ou plusieurs mémoires non volatiles réinscriptibles 151 (NVM), une ou plusieurs mémoires à lecture seulement 153 (ROM), une ou plusieurs mémoires volatiles 155 (RAM). Le microcontrôleur peut également intégrer diverses fonctions matérielles ou circuits, symbolisés par un bloc 17 (FCT), par exemple une fonction cryptographique, des fonctions de calcul spécifiques, des interfaces d'entrée-sortie filaires et/ou sans fil, etc. [0033] Selon l'application, le microcontrôleur 1 communique également, par le ou les bus 13, avec un ou plusieurs périphériques internes ou externes, symbolisés par un bloc 19 (PERIPH), par exemple, des détecteurs de caractéristiques environnementales (pression, température, etc.) ou autres. [0034] Dans une application à un microcontrôleur sécurisé, celui-ci doit s'assurer qu'il soit toujours dans un état sécurisé, dans lequel des secrets contenus dans le système ne sont pas divulgués. Pour ce faire, le circuit ou microcontrôleur 1 comporte divers détecteurs (DET) matériels et/ou logiciels de tentatives d'attaques de son contenu ou de détection d'un dysfonctionnement accidentel ou volontaire. De tels détecteurs peuvent prendre divers aspects. Il s'agit, par exemple, de détecteurs matériels capables de détecter une perturbation électrique ou électromagnétique après que le circuit ait subi une modification structurelle, telle que l'élimination de couches présentes en face arrière. Il peut également s'agir de détecteurs matériels d'attaques laser. Il peut encore s'agir de détecteurs logiciels capables de détecter un dysfonctionnement opérationnel de certaines fonctions du circuit. Les détecteurs peuvent ou non être associés à des fonctions spécifiques du microcontrôleur. En figure 1, on a illustré le cas où des détecteurs 211, 213 et 215 sont intercalés entre les mémoires 151, 153, 155 et le bus 13 et sont alors dédiés à la mémoire correspondante, et le cas d'un détecteur 217 indépendant d'une fonction particulière. Par ailleurs, les fonctions 17 et/ou les périphériques 19 du circuit 1 peuvent également être associés à des détecteurs (non représentés). [0035] Tous les détecteurs de perturbations ayant pour objet de détecter une potentialité de faute sont électriquement reliés (de manière filaire) à un bloc 3 (HWCM) matériel et/ ou logiciel de réaction ou de mise en place d'une contremesure à l'attaque suspectée. Le rôle du bloc 3 est d'agir sur plusieurs fonctions du circuit 1 ainsi que de déclencher une réinitialisation du circuit 1. En figure 1, on a symbolisé un circuit de réinitialisation 4 (RESET) distinct des autres circuits et fonctions. [0036] Le rôle de la réinitialisation est, en présence d'une alarme indicatrice d'un dysfonc- tionnement, qu'il soit accidentel ou volontaire (attaque), de s'assurer que le circuit 1 reste dans un état sécurisé. La réinitialisation répond à cet objectif dans la mesure où toutes les fonctions redémarrent dans leur état sécurisé d'origine. Cette réinitialisation évite que des zones sensibles du circuit ne deviennent accessibles par suite d'une attaque. [0037] Toutefois, la réaction du système qui se traduit par une réinitialisation constitue une indication observable par l'attaquant, lui indiquant que son attaque a modifié le comportement du circuit. [0038] En particulier, toute réaction du circuit, par exemple signature de consommation, de rayonnement, etc. qui est différente de ce qui se produit en fonctionnement normal renseigne l'attaquant. Si un attaquant identifie une réaction du circuit, cela le renseigne sur le fait que son attaque a provoqué un comportement atypique du circuit. Il peut alors effectuer une autre attaque consistant à inhiber la réaction du système. Par exemple, en identifiant la zone du circuit provoquant la réinitialisation, il peut intervenir pour en empêcher le fonctionnement. Il lui suffit ensuite de rejouer sa première attaque, le circuit n'étant plus dans un état sûr (« safe » ou « secure »). La réinitialisation d'un microcontrôleur est en outre particulièrement identifiable sur une signature en consommation ou électromagnétique. [0039] Plus précisément, si l'attaquant parvient à localiser le conducteur physique 34 reliant le circuit 3 à l'entité de réinitialisation 4, il lui suffit de couper ou de détourner ce conducteur pour pouvoir rejouer sa première attaque et qu'elle réussisse. [0040] La figure 2 illustre, de façon très schématique et sous forme de chronogramme, un exemple de signature électromagnétique usuelle d'un microcontrôleur sécurisé lors de la détection d'une attaque potentielle. [0041] On suppose un fonctionnement initial normal du microcontrôleur (Normal operation). [0042] Lors d'une injection de faute (Fault injection), ou plus généralement d'une action ou d'un fonctionnement détecté comme anormal par l'un des détecteur DET (figure 1), le circuit 3 provoque habituellement immédiatement une réinitialisation (reset) du micro-contrôleur. Ce dernier est alors redémarré (BOOT), puis le microcontrôleur reprend son fonctionnement normal (Normal operation). Le redémarrage BOOT du micro-contrôleur est aisément identifiable d'autant plus qu'il est généralement de durée fixe. [0043] Selon les modes de réalisation décrits, on prévoit une nouvelle organisation des contremesures au sein du circuit électronique. En d'autres termes, on prévoit d'intégrer dans le circuit électronique à protéger, une architecture de protection particulière. 6 [0044] Selon un mode de réalisation, on prévoit au moins deux circuits de protection, ou noeuds de protection, équipés chacun d'un ou plusieurs détecteurs de perturbations. Chaque circuit ou noeud de protection comporte un circuit d'interprétation de la détection et de communication avec les autres noeuds. Chaque noeud de protection est en outre associé à une ou plusieurs fonctions de réaction ou contremcsures qui lui sont dédiées. Ainsi, chaque noeud de protection est capable de mettre en oeuvre, à la fois une réaction, dite locale, de sécurisation d'une fonction spécifique du circuit électronique protégé, et une communication avec l'autre ou les autres circuits de protection. Cette communication s'effectue, soit par le bus général 13 du microcontrôleur, soit par un bus spécifique, soit par des conducteurs reliant les différents noeuds de protection deux à deux dans un réseau maillé. Le fait d'informer les autres circuits de protection d'un dysfonctionnement apparenté à une tentative d'attaque permet à ces autres circuits de mettre eux-mêmes en oeuvre la réaction locale de sécurisation de la fonction spécifique à laquelle ils sont respectivement associés. [0045] Ainsi, la réaction ou contrernesure de chaque circuit de protection peut être dé- clenchée par suite d'une détection au niveau du noeud de protection concerné ou par suite d'une détection par n'importe lequel des noeuds de protection. [0046] La réaction ou contremcsure locale peut prendre diverses formes, en elles-mêmes usuelles, selon la fonction à laquelle est associée le circuit de protection. Il s'agit, par exemple, d'un blocage d'une écriture ou des accès dans une mémoire, d'un effacement de la mémoire volatile, d'un blocage des sorties d'une interface d'entrée-sortie, d'un effacement de clés cryptographique d'un circuit de chiffrement, etc. [0047] La figure 3 représente, de façon très schématique et sous forme de blocs, un mode de réalisation de circuit électronique équipé d'un mode de réalisation d'une architecture de protection. [0048] Le circuit de la figure 3 est par exemple un microcontrôleur sécurisé 1. [0049] Comme précédemment, un tel microcontrôleur 1 est basé sur un microprocesseur ou unité centrale 11 (CPU), susceptible de communiquer, par l'intermédiaire d'un ou plusieurs bus 13, avec différents autres circuits avec lesquels il est intégré. Pour simplifier, un bus 13 a été représenté en figure 3, mais il s'agit le plus souvent de plusieurs bus, respectivement d'adresses, de données et de commandes. En outre, certains composants du microcontrôleur peuvent également communiquer directement entre eux. [0050] Typiquement, le microcontrôleur 1 intègre des circuits mémoires, par exemple une ou plusieurs mémoires non volatiles réinscriptibles 151 (NVM), une ou plusieurs mémoires à lecture seulement 153 (ROM), une ou plusieurs mémoires volatiles 155 (RAM). Le microcontrôleur peut également intégrer diverses fonctions matérielles ou circuits, symbolisés par un bloc 17 (FCT), par exemple une fonction cryptographique, 7 des fonctions de calcul spécifiques, des interfaces d'entrée-sortie filaires et/ou sans fil, etc. [0051] Selon l'application, le microcontrôlcur 1 communique également, par le ou les bus 13, avec un ou plusieurs périphériques internes ou externes, symbolisés par un bloc 19 (PERIPH), par exemple, des détecteurs de caractéristiques environnementales (pression, température, etc.) ou autres. [0052] Le microcontrôlcur de la figure 3 est en outre équipé d'une architecture de protection particulière. [0053] Dans l'exemple représenté en figure 3, les mémoires 151, 153, 155 sont chacune associées à un circuit ou noeud de protection, respectivement 511, 513 et 515. Par ailleurs, on suppose que les fonctions 17 et périphériques 19 sont également associés à des noeuds de protection 517 et 519 et que le circuit intègre en outre au moins un noeud de protection 51 interagissant avec l'unité centrale 11 (par exemple pour réinitialiser son horloge). [0054] Dans l'exemple de la figure 3, on suppose que les noeuds de protection com- muniquent entre eux via le bus 13, mais d'autres exemples seront illustrés en relation avec les figures 5 et 6. [0055] La figure 4 représente, de façon très schématique et sous forme de blocs, un mode de réalisation d'un noeud de protection 5, du type des noeuds 511, 513, 515, 517, 519 et 51 de la figure 3. [0056] Chaque noeud de protection 5 comporte ou est associé à au moins un détecteur 53 (DET) matériel et/ou logiciel de détection d'un dysfonctionnement accidentel ou volontaire. La nature du détecteur n'est en soi pas modifiée par les modes de réalisation prévus. Les modes de réalisation décrits ne modifient en effet pas les méthodes ou façons usuelles de détecter une éventuelle attaque ou perturbation, et s'appliquent quels que soient les mécanismes de détections utilisés (photoniques, électriques, magnétique, etc. ; localisés ou répartis dans le circuit, matériels ou logiciels, etc.). [0057] Chaque noeud de protection 5 comporte ou est associé à un circuit (ou fonction) de traitement ou de surveillance 55 (MONITOR) recevant des informations représentatives d'un dysfonctionnement détecté au niveau du rnicrocontrôleur. Par exemple, chaque circuit 55 reçoit et traite les signaux du ou des détecteurs 53 du noeud auquel il est associé. Le rôle du circuit 55 est, en cas de dysfonctionnement détecté, de provoquer une réaction locale (bloc 57, REACT) associée au noeud concerné et, de préférence, d'informer les autres noeuds (leur circuit de surveillance) de la tentative d'attaque afin que ces derniers mettent également en oeuvre leurs contremesures locales respectives. Chaque circuit 55 est alors en outre capable de recevoir une information provenant d'autres circuits 55 pour provoquer une action de son propre circuit de réaction 57. 8 [0058] On notera que la mise en oeuvre de l'architecture prévue est compatible avec la mise en oeuvre d'une protection globale telle qu'illustrée en figure 1. Ainsi, le micro-contrôleur 1 de la figure 3 comporte également un bloc 3 (HWCM) matériel et/ou logiciel recevant des informations de tous les détecteurs 53 (tous les noeud 5). Le bloc 3 est capable de déclencher, via un circuit de réinitialisation 4 (RESET), une réinitialisation du circuit I. En figure 3, on a symbolisé un circuit de réinitialisation 4 (RESET) distinct des autres circuits et fonctions. La fonction de réinitialisation peut, en variante, se trouver au niveau de l'unité centrale 11. La communication entre les différents noeuds 55 et le bloc 3 peut passer par des liaisons filaires dédiées ou par le bus 13. [0059] Un avantage de l'architecture décrite est que, même si un attaquant parvient à localiser la liaison électrique 34 entre le bloc 3 et le circuit de réinitialisation 4 et à interrompre cette liaison, le microcontrôleur reste sécurisé. En effet, cela empêchera une réinitialisation globale du microcontrôleur par ce bloc 3 à la prochaine attaque, mais n'empêchera pas la mises en oeuvre des autres contremesures de sécurisation associées aux différents noeuds. Les modes de réalisation décrits sont en outre compatibles avec toute contremcsure usuelle. [0060] Dans le cas où le bus 13, ou un bus spécifique partagé par les différents noeuds, est utilisé pour faire communiquer leurs circuits 55 respectifs, on peut prévoir des cycles de communication périodiques permettant aux noeuds de détecter une éventuelle rupture du bus et mettre ainsi en oeuvre leurs contremesures respectives. En pratique, dans un cycle de communication, chaque noeud prend successivement le bus pour envoyer son état à tous les autres noeuds. [0061] En variante, la valeur à véhiculer sur le bus pour indiquer une absence de per- turbation est programmable et le programme doit rafraichir cette valeur périodiquement, faute de quoi, les noeuds interprètent une erreur. [0062] La figure 5 représente, de façon très schématique et sous forme de blocs, un exemple d'architecture de sécurisation d'un microcontrôleur reprenant les principes illustrés en figures 3 et 4. [0063] Pour simplifier, seuls les noeuds de protection et leurs liaisons ont été représentés. Les interactions entre le circuit de contremesure de chaque noeud et la fonction du microcontrôleur à laquelle il est associé n'ont pas été illustrées. [0064] Dans l'exemple de la figure 5, on suppose que l'architecture de protection comporte trois noeuds 5A, 5B et 5C, dont les circuits de surveillance respectifs 55A, 55B et 55C reçoivent des signaux de détecteurs 53A, 53B et 53C et commandent des réactions locales 57A, 57B et 57C. Selon le mode de réalisation de la figure 5, chaque circuit de surveillance 55 communique avec les circuits de surveillance des autres noeuds par des liaisons dédiées GAB. GBC et GAC, deux à deux. 9 [0065] L'exemple de la figure 5 illustre également le cas de noeuds comportant plusieurs dé- tecteurs (les noeuds 5A et 5C comportent chacun deux détecteurs, respectivement 53A et 53C) et comportant plusieurs blocs de réaction (le noeud 5B comporte deux circuits 57B de contrernesurc). [0066] La figure 6 représente, de façon très schématique et sous forme de blocs, un autre exemple d'architecture de sécurisation d'un microcontrôleur reprenant les principes illustrés en figures 3 et 4. [0067] Comme dans l'exemple de la figure S. on suppose le cas de trois noeuds 5A, 5B et 5C comportant chacun un détecteur 53A, 53B, 53C, un circuit de surveillance 55A, 55B, 55C et un circuit de réaction 57A, 57B, 57C. [0068] Toutefois, dans le mode de réalisation de la figure 6, les circuits de surveillance 55 ne communiquent pas entre eux mais reçoivent chacun le résultat de détection des différents détecteurs 53 du microcontrôleur. Chaque circuit 55 agit sur le circuit de réaction de son noeud. [0069] Ainsi, dans ce mode de réalisation, tous les résultats de détection sont envoyés à tous les noeuds de protection (et leurs circuits de surveillance respectifs). [0070] Un avantage des modes de réalisation décrits est que la réaction du circuit protégé est plus difficile à détecter par un attaquant. [0071] Un autre avantage est que le placement du circuit dans un état de protection (par suite de la détection d'une attaque) engendre des réactions locales dont la commande n'est pas centralisée. Il est alors beaucoup plus difficile pour un attaquant de contrer la réaction du circuit. En particulier, il faudrait que l'attaquant détecte et coupe physiquement toutes les liaisons électriques de l'architecture de protection pour pouvoir rejouer son attaque sans que le circuit ne se mette dans un état sécurisé. [0072] On notera que les éléments (détecteur(s) 53, circuit de surveillance 55, et fonction(s) de réaction 57) d'un même noeud 5 peuvent être disséminés dans le circuit intégré. Ils ne sont pas nécessairement géographiquement voisins. [0073] Bien qu'une réalisation logicielle des fonctions de surveillance 55 au niveau de certain noeuds 5 ne soit pas exclue, les circuits de surveillance 55 sont de préférence réalisés sous forme matérielle. Les fonctions de détection 53 et les contremesures 57 peuvent quant à elles prendre de formes logicielle et/ou matérielle selon les noeuds. [0074] Divers modes de réalisation et variantes ont été décrits. L'homme de l'art comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d'autres variantes apparaitront à l'homme de Fart. [0075] Enfin, la mise en oeuvre pratique des modes de réalisation et variantes décrits est à la portée de l'homme du métier à partir des indications fonctionnelles données ci-dessus, en particulier, pour ce qui est du choix des réactions (contremesures) exécutées par le microcontrôleur par suite de la détection d'une attaque. 11