Brevet FR3131020A1 — publié le 20230623

Module et procédé de sécurisation d’un équipement informatique Ce module de sécurisation (MS) d’un équipement informatique (OC) comporte : - au moins une mémoire RAM accessible par un processeur hôte (H-CPU) externe audit module de sécurisation (MS), via un bus mémoire ; - un contrôleur (CTR) configuré pour pouvoir être programmé par le processeur hôte (H-CPU) via un canal de contrôle (CC) ; - des unités de traitement de données (DPU) configurées pour pouvoir accéder à des zones de ladite mémoire via une interface DMA, lesdites unités de traitement de données (DPU) étant contrôlées par ledit contrôleur (CTR) ; - ledit contrôleur (CTR) étant configuré pour contrôler l’accès à ladite mémoire soit par le processeur hôte (H-CPU) soit par lesdites unités de traitement de données (DPU) ; - ledit contrôleur (CTR) étant configuré pour mettre en œuvre au moins une évaluation heuristique d’un état de sécurité (st_sec CTR ) de l’équipement informatique (OC) tel que perçu par ledit contrôleur (CTR), ladite évaluation heuristique comportant : (i) le chargement d’instructions dans une mémoire d’instructions (MI) de ladite unité de traitement de données (DPU) pour que celle-ci effectue au moins une opération sur au moins une partie de ladite mémoire ; (ii) l’obtention d’un résultat (ret 0 , ret + ) de ladite opération ; (iii) la détermination dudit état de sécurité (st_sec CTR ) à partir dudit résultat - ledit contrôleur (CTR) étant configuré pour corrompre ladite mémoire en fonction dudit état de sécurité (st_sec CTR ) pour déclencher un arrêt ou un redémarrage du fonctionnement du processeur hôte (H-CPU) dudit équipement informatique (OC). Fig. 2 Module et procédé de sécurisation d’un équipement informatique Arrière-plan de l’invention La présente invention se rapporte au domaine de la sécurisation des systèmes informatiques. Elle trouve un avantage particulier, mais non limitatif, pour la sécurisation des objets connectés (en anglais « Internet of Things », IoT). Ces objets connectés sont aujourd’hui dépourvus de moyens de sécurisation efficaces, en particulier pour des raisons de coûts de fabrication. Ils sont donc vulnérables. L’invention propose une solution pour remédier à cette situation qui n’est pas satisfaisante. Objet et résumé de l’invention Ainsi, et selon un premier aspect, l’invention concerne un module de sécurisation d’un équipement informatique, ce module comportant : - au moins une mémoire RAM accessible par un processeur hôte externe audit module de sécurisation, via un bus mémoire; - un contrôleur configuré pour pouvoir être programmé par le processeur hôte via un canal de contrôle ; - des unités de traitement de données configurées pour pouvoir accéder à des zones de ladite mémoire via une interface DMA, ces unités de traitement de données étant contrôlées par le contrôleur ; - ledit contrôleur étant configuré pour contrôler l’accès à ladite mémoire soit par le processeur hôte soit par les unités de traitement de données ; - ledit contrôleur étant configuré pour mettre en œuvre au moins une évaluation heuristique d’un état de sécurité de l’équipement informatique tel que perçu par ledit contrôleur, ladite évaluation heuristique comportant : (i) le chargement d’instructions dans une mémoire d’instructions de ladite unité de traitement de données pour que celle-ci effectue au moins une opération sur au moins une partie de ladite mémoire; (ii) l’obtention d’un résultat de ladite opération ; (iii) la détermination dudit état de sécurité à partir dudit résultat, - ledit contrôleur étant configuré pour corrompre ladite mémoire en fonction dudit état de sécurité pour déclencher un arrêt ou un redémarrage du fonctionnement dudit processeur hôte dudit équipement informatique. Ainsi, et d’une façon générale, l’invention propose un module de sécurisation d’un équipement informatique, ce module présentant l’avantage de pouvoir être installé en remplacement de la mémoire RAM de l’équipement informatique à sécuriser. Cette caractéristique est particulièrement avantageuse car le module de sécurisation peut être très facilement intégré dans l’équipement informatique à sécuriser, sans modification importante de son logiciel ni de son architecture matérielle. Dans le mode de réalisation décrit ici, ces modules de sécurisation ont une architecture du type de celles des PIM DRAMs (PIM pour, en anglais, « processor in memory ») décrites dans le document FR3032814A1. Les modules de sécurisation proposés par l’invention peuvent être fabriqués avec les technologies utilisées pour fabriquer des DRAM conventionnelles comme celles des PIM décrites dans le document FR3032814A1. Ils se comportent et sont vus du processeur hôte comme une DRAM classique mais ils offrent en plus une fonction de sécurisation de l’équipement informatique. En ce sens le contrôleur embarqué dans le module de sécurisation et son unité de traitement de données peuvent être vus comme un coprocesseur de sécurisation du processeur hôte. Ce contrôleur met en œuvre une ou plusieurs évaluations heuristiques de l’état de sécurité de l’équipement informatique en analysant la mémoire utilisée par le processeur hôte. Comme le contrôleur n’a pas lui-même directement accès à la mémoire, il s’appuie, notamment pour toutes les opérations d’accès à la mémoire, sur les unités de traitement de données, chacune d’entre elles pouvant accéder, sous le contrôle du contrôleur, à une partie de mémoire partagée avec le processeur hôte. Les heuristiques utilisées pour ces évaluations peuvent être de différentes natures. Dans un mode particulier de réalisation, une heuristique détermine que l’état de sécurité de l’équipement informatique, tel que perçu par ledit contrôleur, représente un risque important de dysfonctionnement dudit équipement informatique, par exemple si une zone mémoire normalement destinée à recevoir une constante du système d’exploitation a été modifiée ou accédée selon un schéma considéré suspect. Par exemple, un schéma d’accès à une zone mémoire peut être considéré suspect en fonction d’un nombre d’accès, d’une fréquence d’accès, ou d’une variation d’un de ces paramètres. L’homme du métier sait en particulier que les systèmes d’exploitation habituels (Linux, Windows, …), ainsi que la plupart des logiciels obtenus par compilation depuis un langage évolué notamment, ont pour habitude d’écrire des données constantes dans certaines zones réservées de la mémoire. Une heuristique peut surveiller ces zones et supposer un état de dysfonctionnement du dispositif informatique dès lors que le contenu de ces zones réservées est modifié ou exploité de manière inhabituelle. Dans un mode particulier de réalisation, une heuristique utilise une méthode d’apprentissage, par exemple un réseau de neurones pour déterminer, à partir d’une signature du contenu d’au moins une partie d’au moins une mémoire calculée par au moins dite unité de traitement de données, une probabilité que ledit équipement informatique soit dans un état de dysfonctionnement, l’état de sécurité de l’équipement informatique tel que perçu par ledit contrôleur étant déterminé à partir de cette probabilité. Ce réseau de neurones peut préalablement être entraîné en mode supervisé avec des signatures de contenus de mémoires d’équipements à différents niveaux de dysfonctionnement. Mais l’évaluation ou la détermination d’un état de sécurité de sécurité de l’équipement informatique ne suffit pas à le sécuriser. De façon remarquable, l’invention propose, pour déclencher l’arrêt ou le redémarrage du fonctionnement de l’équipement informatique de corrompre au moins une partie de sa mémoire pour placer l’équipement dans un état imprévisible du point de vue du processeur hôte, de sorte à déclencher des actions sécuritaires du processeur hôte. Dans un mode particulier de réalisation, pour corrompre une mémoire, le contrôleur est configuré bloquer l’accès à ladite mémoire par ledit processeur hôte. Dans un mode particulier de réalisation, pour corrompre une dite mémoire, ledit contrôleur est configuré pour charger des instructions dans une mémoire d’instructions d’une dite unité de traitement de données pour que celle-ci enregistre une donnée dans une zone de ladite mémoire réservée à un autre usage. Lorsque le processeur hôte est confronté à l’une ou l’autre situation (accès impossible à la mémoire ou mémoire corrompue), il peut déclencher une action de sécurité consistant à arrêter le fonctionnement du système et à le redémarrer dans un état sain. L’invention vise également un procédé de sécurisation d’un équipement informatique, ce procédé étant mis en œuvre par un contrôleur embarqué dans un module de sécurisation, ledit contrôleur étant configuré pour contrôler l’accès à une zone de mémoire RAM soit par un processeur hôte via un bus mémoire, soit par une unité de traitement de données via une interface DMA, ledit procédé comportant : - la mise en œuvre d’au moins une évaluation heuristique d’un état de sécurité de l’équipement informatique, ladite évaluation heuristique comportant : (i) le chargement d’instructions dans une mémoire d’instructions de ladite unité de traitement de données pour que celle-ci effectue au moins une opération sur au moins une partie de ladite mémoire; (ii) l’obtention d’un résultat de ladite opération ; (iii) la détermination dudit état de sécurité à partir dudit résultat - la corruption de ladite mémoire en fonction dudit état de sécurité pour déclencher un arrêt ou un redémarrage du fonctionnement du processeur hôte de l’équipement informatique. L’invention vise aussi un équipement informatique, par exemple un objet connecté, comportant un processeur hôte et au moins un module de sécurisation tel que mentionné ci-dessus. Dans un mode particulier de réalisation, une heuristique est enregistrée de façon certifiée dans une mémoire non volatile dudit contrôleur. Ce mode de réalisation permet de prévoir une heuristique dite de base qui sera systématiquement exécutée. Elle peut par exemple être préenregistrée dans le micro-logiciel ou firmware du contrôleur de sorte que le module de sécurisation incorpore nativement une solution complète de sécurisation (surveillance de la mémoire, déclenchement d’une action sécuritaire). Dans un mode particulier de réalisation, le contrôleur est configuré pour recevoir une heuristique du processeur hôte via le canal de contrôle. Dans un mode particulier de réalisation dans lequel le processeur hôte comporte un environnement d’exécution sécurisé, cette heuristique peut être envoyée par une application certifiée de cet environnement d’exécution sécurisé. Une signature de cette heuristique effectuée par le processeur hôte ou par une application certifiée de l’environnement sécurisée peut être vérifiée par le contrôleur avant utilisation de cette heuristique. Cette heuristique peut être préférentiellement exécutée par le contrôleur en complément de l’heuristique de base. Dans les modes de réalisation de l’invention mentionnés ci-dessus, le contrôleur met en œuvre au moins une heuristique, pour déterminer un état de sécurité de l’équipement informatique tel que perçu par ce contrôleur. Dans un mode particulier de réalisation, le contrôleur prend aussi en considération un état de sécurité de l’objet informatique tel que perçu par un tiers de confiance. Ainsi, dans un mode particulier de réalisation, le module de sécurisation est caractérisé en ce que le contrôleur est configuré pour charger des instructions dans une mémoire d’instructions d’une dite unité de traitement de données pour que celle-ci : - obtienne un jeton dans un registre de la mémoire accessible par cette unité de traitement de données ; - déchiffre ledit jeton avec une clé publique du tiers de confiance pour obtenir un état de sécurité de l’équipement informatique tel que perçu par ce tiers de confiance ; - retourne cet état de sécurité audit contrôleur ; - ledit contrôleur étant configuré pour corrompre ladite mémoire en fonction : (i) de l’état de sécurité de l’objet informatique tel que perçu par le contrôleur ; et (ii) de l’état de sécurité de l’objet informatique tel que perçu par le tiers de confiance. Ces jetons envoyés par le tiers de confiance permettent au contrôleur d’obtenir de l’information sur l’environnement de l’équipement informatique. Par exemple, si le contrôleur cesse de recevoir des jetons du tiers de confiance, il peut en déduire un dysfonctionnement de l’équipement informatique et décider de corrompre sa mémoire pour déclencher l’arrêt et éventuellement le redémarrage de son fonctionnement. Dans un mode particulier de réalisation, le contrôleur est configuré pour charger des d’instructions dans une mémoire d’instructions d’une unité de traitement de données pour que celle-ci : - obtienne un jeton par chiffrement de l’état de sécurité vu du contrôleur avec une clef publique du tiers de confiance ; et - enregistre ce jeton dans un registre de la mémoire accessible par cette unité de traitement de données. Ce mode de réalisation de l’invention permet de remonter au tiers de confiance l’état de sécurité de l’objet connecté vu du contrôleur. Dans un mode de réalisation, la communication entre le tiers de confiance et l’équipement informatique est assurée par un processus applicatif exécuté par le processeur hôte. Dans ce mode de réalisation, le processeur hôte est configuré pour exécuter un processus applicatif comportant des instructions pour : - enregistrer les jetons reçus du tiers de confiance dans un registre d’une dite mémoire, ces jetons étant les états de sécurité de l’équipement informatique perçus par le tiers de confiance et signés par la clé privée dudit tiers de confiance; et pour - envoyer au tiers de confiance, les jetons lus dans un registre de la mémoire et correspondants à des états de sécurité de l’équipement informatique perçus par ledit contrôleur et signés par la clé publique dudit tiers de confiance. Dans un mode particulier de réalisation, les différentes étapes du procédé de sécurisation sont déterminées par des instructions de programmes d'ordinateurs ou sont implémentées par une puce en silicium qui comprend des transistors adaptés pour constituer des portes logiques d'une logique câblée non programmable. En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en œuvre dans contrôleur, ce programme comportant des instructions adaptées à la mise en œuvre des étapes d'un procédé de gestion d’urgence tel que décrit ci-dessus. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, une mémoire non volatile de type flash ou encore un moyen d'enregistrement magnétique, par exemple un disque dur. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. D’autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif. Sur les figures : La représente de façon schématique un équipement informatique conforme à un mode particulier de réalisation de l’invention; La représente un processeur hôte et un module de sécurisation dans un mode particulier de mise en œuvre de l’invention ; La représente un exemple d’environnement logiciel du processeur hôte dans un mode particulier de mise en œuvre de l’invention ; La représente, sous forme d’organigramme, les principales étapes d’un procédé de sécurisation conforme à un mode particulier de réalisation de l’invention ; et La représente un contrôleur pouvant être utilisé dans un mode particulier de mise en œuvre de l’invention. Module de sécurisation (MS) d’un équipement informatique (OC), ce module comportant : - au moins une mémoire RAM accessible par un processeur hôte (H-CPU) externe audit module de sécurisation (MS), via un bus mémoire ; - un contrôleur (CTR) configuré pour pouvoir être programmé par le processeur hôte (H-CPU) via un canal de contrôle (CC) ; - des unités de traitement de données (DPU) configurées pour pouvoir accéder à des zones de ladite mémoire via une interface DMA, lesdites unités de traitement de données (DPU) étant contrôlées par ledit contrôleur (CTR); - ledit contrôleur (CTR) étant configuré pour contrôler l’accès à ladite mémoire soit par le processeur hôte (H-CPU) soit par lesdites unités de traitement de données (DPU) ; - ledit contrôleur (CTR) étant configuré pour mettre en œuvre au moins une évaluation heuristique d’un état de sécurité (st_sec CTR ) de l’équipement informatique (OC) tel que perçu par ledit contrôleur (CTR), ladite évaluation heuristique comportant : (i) le chargement d’instructions dans une mémoire d’instructions (MI) de ladite unité de traitement de données (DPU) pour que celle-ci effectue au moins une opération sur au moins une partie de ladite mémoire ; (ii) l’obtention d’un résultat (ret 0 , ret + ) de ladite opération ; (iii) la détermination dudit état de sécurité (st_sec CTR ) à partir dudit résultat - ledit contrôleur (CTR) étant configuré pour corrompre ladite mémoire en fonction dudit état de sécurité (st_sec CTR ) pour déclencher un arrêt ou un redémarrage du fonctionnement dudit processeur hôte (H-CPU) dudit équipement informatique (OC). Module de sécurisation (MS) selon la revendication 1, caractérisé en ce que ladite évaluation heuristique comporte une heuristique (H 0 ) enregistrée de façon certifiée dans une mémoire non volatile (11) dudit contrôleur (CTR). Module de sécurisation (MS) selon la revendication 1 ou 2, caractérisé en ce que ledit contrôleur (CTR) est configuré pour recevoir une dite heuristique (H + ) dudit processeur hôte (H-CPU) via ledit canal de contrôle (CC), ladite heuristique (H + ) étant utilisée pour ladite au moins une évaluation heuristique. Module de sécurisation (MS) selon l’une quelconque des revendications 1 à 3, caractérisé en ce que ledit contrôleur (CTR) est configuré pour charger des d’instructions dans une mémoire d’instructions (MI) d’une dite unité de traitement de données (DPU) pour que celle-ci : - obtienne un jeton (tok ext ) dans un registre (REG IN ) de la mémoire accessible par cette unité de traitement de données (DPU) ; - vérifie une signature dudit jeton (tok ext ) avec une clé publique d’un tiers de confiance (OP) pour obtenir un état de sécurité (st_sec OP ) de l’équipement informatique (OC) tel que perçu par ledit tiers de confiance (OP) ; - retourne cet état de sécurité (st_sec OP ) audit contrôleur (CTR) ; - ledit contrôleur (CTR) étant configuré pour corrompre ladite mémoire en fonction : (i) de l’état de sécurité (st_sec CTR ) de l’objet informatique tel que perçu par le contrôleur (CTR) ; et (ii) de l’état de sécurité (st_sec OP ) de l’objet informatique tel que perçu par le tiers de confiance. Module de sécurisation (MS) selon l’une quelconque des revendications 1 à 4, caractérisé en ce que ledit contrôleur (CTR) est configuré pour charger des d’instructions dans une mémoire d’instructions (MI) d’une dite unité de traitement de données (DPU) pour que celle-ci : - obtienne un jeton (tok int ) par chiffrement dudit état de sécurité (st_sec CTR ) tel que perçu par ledit contrôleur (CTR) avec une clef publique (KPUB) d’un tiers de confiance (OP) ; et - enregistre ledit jeton (tok int ) dans un registre (REG OUT ) de la mémoire accessible par cette unité de traitement de données (DPU). Module de sécurisation (MS) selon l’une quelconque des revendications 1 à 5, caractérisé en ce que, pour corrompre une dite mémoire, ledit contrôleur (CTR) est configuré pour bloquer l’accès à ladite mémoire par ledit processeur hôte. Module de sécurisation (MS) selon l’une quelconque des revendications 1 à 6, caractérisé en ce que, pour corrompre une dite mémoire, ledit contrôleur (CTR) est configuré pour charger des d’instructions dans une mémoire d’instructions (MI) d’une dite unité de traitement de données (DPU) pour que celle-ci enregistre une donnée dans une zone (ZR OS ) de ladite mémoire réservée à un autre usage. Module de sécurisation (MS) selon l’une quelconque des revendications 1 à 7, caractérisé en ce que ladite au moins une heuristique détermine que l’état de sécurité (st_sec CTR ) de l’équipement informatique (OC) tel que perçu par ledit contrôleur (CTR), doit représenter un risque important de dysfonctionnement dudit équipement informatique si une zone d’une dite mémoire normalement destinée à recevoir une constante du système d’exploitation (OS) a été modifiée ou accédée selon un schéma considéré suspect. Module de sécurisation (MS) selon l’une quelconque des revendications 1 à 8, caractérisé en ce que ladite au moins une heuristique utilise une méthode d’apprentissage pour déterminer, à partir d’une signature du contenu d’au moins une partie d’au moins une mémoire calculée par au moins une dite unité de traitement de données (DPU), une probabilité que ledit équipement informatique (OC) soit dans un état de dysfonctionnement, l’état de sécurité (st_sec CTR ) de l’équipement informatique (OC) tel que perçu par ledit contrôleur (CTR) étant déterminé à partir de cette probabilité. Procédé de sécurisation (MS) d’un équipement informatique (OC), ce procédé étant mis en œuvre par un contrôleur (CTR) embarqué dans un module de sécurisation (MS), ledit contrôleur étant configuré pour contrôler l’accès à une zone de mémoire RAM soit par un processeur hôte (H-CPU) via un bus mémoire, soit par une unité de traitement de données (DPU) via une interface DMA, ledit précédé comportant : - la mise en œuvre d’au moins une évaluation heuristique d’un état de sécurité (st_sec CTR ) de l’équipement informatique (OC), ladite évaluation heuristique (H 0 , H + ) comportant : (i) le chargement (E30, E40) d’instructions dans une mémoire d’instructions (MI) de ladite unité de traitement de données (DPU) pour que celle-ci effectue au moins une opération sur au moins une partie de ladite mémoire ; (ii) l’obtention (E30, E40) d’un résultat (ret 0 , ret + ) de ladite opération ; (iii) la détermination (E50) dudit état de sécurité (st_sec CTR ) à partir dudit résultat - la corruption (E80) de ladite mémoire en fonction dudit état de sécurité (st_sec CTR ) pour déclencher un arrêt ou un redémarrage du fonctionnement dudit processeur hôte (H-CPU) dudit équipement informatique (OC). Equipement informatique (OC) comportant un processeur hôte (H-CPU) et au moins un module de sécurisation (MS) selon l’une quelconque des revendications 1 à 9. Equipement informatique (OC) selon la revendication 11, ledit processeur hôte (H-CPU) comportant un environnement d’exécution sécurisé (TEE) configuré pour envoyer une heuristique (H + ) utilisée pour ladite évaluation heuristique audit contrôleur (CTR) via ledit canal de contrôle (CC). Equipement informatique (OC) selon la revendication 11 ou 12, ledit module de sécurisation (MS) étant selon les revendications 4 et 5, ledit processeur hôte (H-CPU) étant configuré pour exécuter un processus applicatif (PA) comportant des instructions pour : - enregistrer des jetons (tok ext ) reçus d’un tiers de confiance (OP) dans un registre (REG OUT ) d’une dite mémoire, ces jetons (tok ext ) étant lesdits états de sécurité (st_sec OP ) de l’équipement informatique (OC) perçus par ledit tiers de confiance (OP) et signés par la clé privée (KPRIV) dudit tiers de confiance ;; et pour - envoyer audit tiers de confiance (OP), des jetons (tok int ) lus dans un registre (REG IN ) d’une dite mémoire et correspondants à des états de sécurité (st_sec CTR ) de l’équipement informatique (OC) perçus par ledit contrôleur chiffrés par la clé publique (KPUB) dudit tiers de confiance. Programme d’ordinateur (PG) comportant des instructions pour l’exécution des étapes du procédé de sécurisation selon la revendication 10. Support d’information (14) lisible par un contrôleur (CTR) et comportant des instructions d'un programme d'ordinateur selon la revendication 14.