Brevet FR2900298A1 — publié le 20071026

La présente invention concerne un système sécurisé de traitement de données comportant un premier dispositif et au moins un second dispositif, les dispositifs comportant des moyens de commande et de communication et les moyens de commande et de communication du premier dispositif étant sécurisés. Elle concerne également les dispositifs correspondants, un procédé de k fonctionnement # système et un programme d'ordinateur associé. Lorsqu'un système électronique incluant divers périphériques tels qu'un écran, un clavier, un disque, ... a en charge un traitement de sécurité tel qu'une authentification d'utilisateur, une transaction commerciale, une signature électronique, un vote, ou encore le rendu d'un contenu multimédia protégé, et que ce traitement nécessite l'utilisation d'un ou de plusieurs de ces périphériques, le système doit s'assurer de l'état sécuritaire de ces périphériques au moment où ceux-ci sont requis pour ce traitement de sécurité. La détermination de l'état sécuritaire d'un périphérique est d'autant plus difficile que celui-ci peut être amovible, c'est-à-dire physiquement détachable du coeur du système et qu'il ne partage pas forcément ses ressources (espaces mémoire, registres, caches, etc.) avec ceux qui doivent en contrôler l'intégrité. Typiquement, de nombreux systèmes sont aujourd'hui constitués d'un coeur et de périphériques rapportés , associés au coeur au moyen, par exemple, de liaisons USB ou de connexions sans fil. Au-delà de l'authentification des périphériques au moment de leur association au système, le coeur du système doit obtenir des garanties sur l'état de sécurité effective de ces composants rapportés au moment où ils sont impliqués dans un traitement sensible. Typiquement, le coeur du système peut avoir besoin de s'assurer, le moment voulu, qu'un périphérique donné a été initialisé en suivant une procédure de confiance, que le code de ce périphérique est toujours sûr, que ces données sont toujours saines, et que ce périphérique est dans un mode d'exécution particulier, clairement défini et maîtrisé. Pour résoudre ce problème, une première solution a été proposée pour le coeur du système en créant un mécanisme de partitionnement logique, et éventuellement physique, assurant que les éléments sensibles de ce coeur sont isolés des éléments non sensibles du système, et qu'ils sont accessibles des éléments non sensibles du système au travers d'un canal de communication sécurisé par le mécanisme de partitionnement. De plus, le mécanisme de partitionnement permet d'exécuter les éléments sensibles dans un mode privilégié leur donnant accès à des facilités et des ressources du système qui ne sont pas accessibles aux éléments non sensibles. En complément, le coeur et les périphériques peuvent mettre en oeuvre des procédés d'appairage reposant typiquement sur le partage d'une clé secrète, ces procédés permettant l'authentification des deux parties et le scellement, ou le chiffrement, de leurs échanges. Cependant, ces solutions ne répondent pas au problème de la connaissance par le coeur du système, à un moment donné de son exécution, de l'état de sécurité d'un de ses périphériques alors que le coeur en question n'a pas directement accès aux ressources mémoire et autres éléments internes de ce périphérique qui lui permettraient d'obtenir directement des garanties sur l'état de sécurité effectif du périphérique à surveiller. Le but de l'invention est donc de proposer un système capable de fournir à un premier dispositif des garanties sur l'état de sécurité d'un autre (ou de plusieurs autres) dispositif(s), amovible(s) ou non, de façon à permettre à ce premier dispositif de décider si cet autre (ou ces autres) dispositif(s) peut (ou peuvent) exécuter des opérations sensibles. L'objet de l'invention est donc un système sécurisé de traitement de données comportant un premier dispositif comportant des moyens sécurisés de commande et de communication, et au moins un second dispositif comportant des moyens de commande et de communication avec le premier dispositif, caractérisé en ce que - les moyens de commande et de communication de chaque second dispositif comportent des moyens de surveillance adaptés pour transmettre au premier dispositif des informations de fonctionnement du second dispositif, et - les moyens sécurisés de commande et de communication du premier dispositif comportent des moyens de stockage d'un modèle de comportement de chaque second dispositif et des moyens de comparaison des informations de fonctionnement reçues de chaque second dispositif avec le modèle de comportement de ce second dispositif de façon à déterminer si le fonctionnement de ce second dispositif est conforme ou non au modèle de comportement stocké, et des moyens de validation adaptés pour empêcher le lancement d'une opération sensible sur ce second dispositif ou pour commander un changement d'état du second dispositif si les moyens de comparaison ont déterminé que ce second dispositif ne manifeste pas un fonctionnement conforme. D'autres caractéristiques de l'invention sont : -la vérification de la conformité du fonctionnement du second dispositif 5 au modèle de comportement stocké comporte une vérification de l'intégrité de certaines portions du code dudit second dispositif ; - la vérification de la conformité du fonctionnement du second dispositif au modèle de comportement stocké comporte une vérification de l'intégrité de certaines portions des données dudit second dispositif ; 10 - la vérification de la conformité du fonctionnement du second dispositif au modèle de comportement stocké comporte une vérification de l'authenticité dudit second dispositif ; - la vérification de la conformité du fonctionnement du second dispositif au modèle de comportement stocké comporte une vérification que l'état de 15 sécurité dudit second dispositif est suffisant pour effectuer une opération sensible ; - les moyens de surveillance de chaque second dispositif comportent du code de confiance injecté dans le code principal desdits seconds dispositifs ; - les moyens de communication des premier et second dispositifs sont 20 adaptés pour sécuriser les échanges d'informations entre eux ; - les moyens de sécurisation des échanges d'informations entre les premier et second dispositifs comportent l'émission d'une valeur aléatoire par le premier dispositif, l'utilisation de cette valeur aléatoire par les moyens de commande du second dispositif avant envoi au premier dispositif d'un résultat 25 dépendant de cette valeur aléatoire et validation dudit résultat par le premier dispositif par comparaison avec un résultat attendu fonction de la valeur aléatoire ; - les moyens de surveillance du second dispositif sont actionnés par une commande émise par les moyens sécurisés de commande et de 30 communication du premier dispositif ; - les moyens de surveillance du second dispositif peuvent transmettre, de leur propre initiative, des informations de fonctionnement aux moyens sécurisés du premier dispositif ; - les moyens de surveillance du second dispositif sont actionnés, au moins, au moment de l'installation dudit second dispositif ou lors de sa première interaction avec le premier dispositif. Un autre objet de l'invention est un dispositif de traitement de données comportant des moyens sécurisés de commande et de communication avec au moins un autre dispositif, les moyens sécurisés de commande et de communication comportant des moyens de stockage d'un modèle de comportement de chaque autre dispositif et des moyens de comparaison des informations de fonctionnement reçues de chaque autre dispositif avec le modèle de comportement de cet autre dispositif. Un autre objet de l'invention est un dispositif de traitement de données comportant des moyens de commande et de communication avec un dispositif tel que décrit ci-dessus et tel que - les moyens de commande et de communication comportent des 15 moyens de surveillance adaptés pour transmettre des informations sur le fonctionnement dudit dispositif. Un autre objet est un procédé sécurisé de traitement de données entre un premier dispositif comportant des moyens sécurisés de commande et de communication, et au moins un second dispositif comportant des moyens de 20 commande et de communication avec le premier dispositif, caractérisé en ce qu'il comporte les étapes de : - stockage dans le premier dispositif d'un modèle de comportement de chaque second dispositif ; - transmission de chaque second dispositif au premier dispositif 25 d'informations de fonctionnement du second dispositif ; - comparaison par le premier dispositif des informations de fonctionnement reçues avec le modèle de comportement stocké par le second dispositif correspondant ; - autorisation du lancement d'une opération sensible sur le second 30 dispositif si et seulement si la comparaison a détecté que le fonctionnement du second dispositif est conforme à son modèle de comportement stocké. Un autre objet est un programme d'ordinateur comportant des instructions de code de programme pour l'exécution des étapes du procédé lorsque ledit programme est exécuté sur un ordinateur. L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple, et faite en référence aux dessins dans lesquels : - la figure 1 est une vue schématique d'un système de traitement de données selon un mode de réalisation de l'invention ; la figure 2 est un ordinogramme du procédé de fonctionnement du système de la figure 1 ; et - la figure 3 est un ordinogramme d'un mode de réalisation de sécurisation de données. En référence à la figure 1, un système 1 de traitement de données comporte un premier dispositif 2. Ce premier dispositif 2 est connecté à au moins un second dispositif 3. Typiquement, le premier dispositif peut être une carte-mère d'un ordinateur personnel, l'unité centrale d'un terminal de télécommunication, un processeur applicatif de téléphone portatif et le second dispositif 3 est un périphérique (ou un processeur spécialisé) relié à cette carte-mère ou cette unité centrale par une liaison de données 4. Pour des raisons de clarté, un seul périphérique est représenté, mais il est bien connu qu'un système de traitement de données comporte une pluralité de périphériques ayant des fonctions diverses allant de la gestion de l'interface homme-machine au stockage de données en passant par la mise en réseau du système ou le traitement d'opérations spécifiques (codage, communications, etc.). La liaison de données 4 peut être de type interface interne telles que, par exemple, les normes PCI ou AGP ou de type interface externe telles que, par exemple, les normes USB ou Bluetooth. Le premier dispositif 2 comporte des moyens 5 sécurisés de commande et de communication, par exemple sous la forme d'un module de sécurité ou sous la forme d'un mode de fonctionnement spécifique de l'unité centrale permettant de garantir un mode privilégié de fonctionnement en sécurité. Le second dispositif 3 comporte des moyens 6 de commande et de communication, composés d'éléments matériels et logiciels. Cependant, ceux-ci ne sont pas obligatoirement sécurisés. En effet, la plupart des périphériques sont développés avec l'objectif de remplir une fonctionnalité particulière sans exigence de sécurité spécifique sur leur fonctionnement. Aussi, dans une étape préalable à leur mise à disposition pour des applications de sécurité, leurs moyens 6 de commande et de communication sont adaptés pour qu'ils comportent des moyens 7 de surveillance. Ces moyens 7 de surveillance sont formés, par exemple, d'un code de confiance injecté dans le code principal de pilotage du second dispositif. Ce code de confiance est neutre par rapport au code principal et ne crée pas d'effet de bord sur le comportement fonctionnel du second dispositif. L'injection du code de confiance dans le code principal est effectuée manuellement, ou de manière automatique ou semi-automatique après analyse du code principal. Cette analyse est effectuée, par exemple, à l'aide d'outils d'analyse statique de programme. Les techniques d'analyse statique sont nombreuses et bien connues : interprétation abstraite, analyses de flot de contrôle, analyses de flots de données, vérification de modèle ( model checking ), preuves formelles, etc. L'analyse statique d'un programme permet notamment de déterminer son flot de contrôle ù c'est-à-dire une représentation des chemins d'exécutions possibles du programme ù et ses flots de données, c'est-à-dire les valeurs de variables, registres, mémoires, expressions et états du programme en divers points d'un chemin d'exécution. Les outils d'analyse permettent donc d'identifier les points critiques du code principal. A titre d'exemples non limitatifs, ces points critiques sont des points précédant une modification ou un accès à une donnée sensible, ou l'envoi de données sensibles sur un port du second dispositif. Le code de confiance est entremêlé au code principal et/ou regroupé dans des bibliothèques spécifiques appelées par une partie de code de confiance intégrée dans le code principal. Le code de confiance permet de transmettre aux moyens 5 sécurisés du premier dispositif 2 des informations de fonctionnement du second dispositif 3. Ces informations de fonctionnement sont des informations permettant de connaître l'état du second dispositif et en particulier des éléments sensibles au point de vue sécuritaire de celui-ci. Par exemple, ces informations concernent le contenu de certaines zones mémoires ou le compte-rendu d'une opération particulière, en particulier de la bonne exécution de l'initialisation du second dispositif ou l'exécution d'une séquence d'opérations préalablement à un traitement donné. Elles permettent également de vérifier que le code (ou certaines portions de ce code) ainsi que les données (ou certaines parties de ces données) du second dispositif sont toujours intègres. Elles permettent également de s'assurer que le second dispositif se trouve dans un état de sécurité suffisant pour effectuer certaines opérations sensibles. Les moyens 5 sécurisés du premier dispositif 2 comportent des moyens de stockage 8 d'un modèle comportemental du second dispositif 3 ainsi que des moyens 9 de comparaison des informations de fonctionnement reçues du code de confiance 7 avec ce modèle comportemental. Cette comparaison permet de déterminer si le fonctionnement du second dispositif 3 est conforme au modèle comportemental et si le second dispositif se trouve dans un état de sécurité suffisant pour effectuer certaines opérations sensibles. Les moyens sécurisés 5 comportent également des moyens 10 de validation qui n'autorisent l'exécution d'une opération sensible impliquant le second dispositif 3 qui si la comparaison a déterminé que le second dispositif 3 a un fonctionnement conforme et qu'il se trouve dans un état de sécurité suffisant. Ces moyens 10 de validation peuvent également commander un changement d'état du second dispositif si la comparaison a déterminé que celui-ci ne se trouve pas dans un état de sécurité suffisant Ainsi, typiquement, le fonctionnement du système 1 est, figure 2, un procédé selon les étapes suivantes. Lors du fonctionnement du premier dispositif 2, les moyens sécurisés 5 de commande et de surveillance déterminent en 20 qu'une opération sensible doit être exécutée par le second dispositif 3. Ils émettent en 22 une ou des commandes de demande d'informations à destination des moyens 7 de surveillance. Les moyens 7 de surveillance renvoient en réponse, étape 24, les informations de fonctionnement demandées. Ces informations sont comparées en 26 aux informations du modèle comportemental stocké en 8. Si les informations sont conformes à ce qui est attendu au vu du modèle comportemental et que le second dispositif est jugé dans un état de sécurité suffisant, alors l'état du second dispositif 3 est validé en 28 et l'opération sensible est exécutée en 30 par le second dispositif. Par contre, si les informations ne sont pas conformes, le second dispositif 3 est considéré en 32 comme étant dans un état de sécurité insuffisant ou douteux et l'opération sensible est bloquée en 34 ; un message d'alerte peut également être transmis en 36 à l'utilisateur ou une commande de changement d'état envoyée au second dispositif. L'efficacité du système est basée sur la qualité des informations de fonctionnement transmises au premier dispositif 2. Aussi, pour éviter tout risque d'interception et/ou de modification de ces données, celles- ci peuvent être sécurisées, c'est à dire protégées û typiquement authentifiées ou chiffrées. Cela peut se faire ponctuellement, pour chaque donnée ou bien les moyens de communication des premier et second dispositifs sécurisent la transmission des informations en créant, par exemple, un tunnel chiffré. Une autre variante de sécurisation consiste à utiliser la technique bien connue de l'homme du métier dite de challenge/réponse . Le premier dispositif 2 émet, figure 3, en 40 un nombre aléatoire. Le second dispositif 3 utilise en 42 ce nombre aléatoire dans ses calculs et envoie le résultat au premier dispositif 2. Le premier dispositif étudie en 44 le résultat reçu. Dans ce résultat, il doit retrouver en 46 une information particulière correspondant à un calcul déterminé fait avec le nombre aléatoire. Si cette information est présente, cela implique que c'est bien le second dispositif qui a traité et envoyé les informations. Cette technique permet avantageusement d'éviter les stratagèmes de rejeu que pourrait utiliser un tiers qui surveille la liaison de données 4 et qui pourrait donc tenter de se faire passer pour le second dispositif après avoir récupéré les informations provenant d'échanges antérieurs. II est également souhaitable de s'assurer que les moyens de surveillance n'ont pas été modifiés ou court-circuités. Aussi, parmi les informations de fonctionnement demandées, une signature des moyens de surveillance peut être requise. Cette signature consiste, par exemple, à utiliser la valeur aléatoire reçue du premier dispositif tout au long de l'exécution du code de confiance, en lui appliquant divers traitements connus du premier dispositif et recalculables par celui-ci, ces informations pouvant inclure, bien sûr, des informations sur l'état du second dispositif. Cela permet avantageusement de compliquer la reconstruction d'une réponse valide du code de confiance par un acteur malveillant qui en aurait repéré l'existence et qui aurait compris le fonctionnement de la construction d'une réponse du code de confiance au premier dispositif. Comme indiqué ci-dessus, le fonctionnement type du système consiste pour les moyens sécurisés 5 du premier dispositif à envoyer une commande à laquelle les moyens 7 de surveillance du second dispositif 3 répondent. Cependant, il est également possible que ce soit les moyens 7 de surveillance qui prennent l'initiative d'envoyer des informations aux moyens sécurisés 5, voire des messages qui attendent une réponse du premier dispositif, cette réponse pouvant être ensuite utilisée par le second dispositif pour gérer son état de sécurité ou restreindre l'accès à certaines de ses ressources. Ce mode de fonctionnement est particulièrement pertinent quand le second dispositif comporte un module de sécurité qui fait alors office de moyen de surveillance ou, de façon générale, quand les moyens de surveillance peuvent être sécurisés. Le système décrit est particulièrement adapté à tout système de traitement de données qui doit échanger des informations confidentielles avec divers périphériques amovibles ou non. Typiquement, les téléphones cellulaires, les lecteurs audio, vidéo ou multimédia, les terminaux de paiement bancaire ou portatif, les assistants numériques personnels et les passerelles de routage domestiques sont de tels systèmes. Le procédé sécurisé de traitement de données ainsi décrit est donc exécuté par un dispositif informatique sous la commande d'instructions logicielles d'un programme d'ordinateur. Le programme peut être stocké dans ou transmis par un support de données. Celui-ci peut être un matériel de stockage tel qu'un CD-ROM, une disquette magnétique ou un disque dur, ou bien, un support transmissible tel qu'un signal électrique, optique ou radio. REVENDICATIONS 1. Système (1) sécurisé de traitement de données comportant un premier dispositif (2) comportant des moyens sécurisés (5) de commande et de communication, et au moins un second dispositif (3) comportant des moyens (6) de commande et de communication avec le premier dispositif, caractérisé en ce que - les moyens (6) de commande et de communication de chaque second dispositif (3) comportent des moyens (7) de surveillance adaptés pour transmettre au premier dispositif (2) des informations de fonctionnement du second dispositif (3), et - les moyens sécurisés (5) de commande et de communication du premier dispositif (2) comportent des moyens (8) de stockage d'un modèle de comportement de chaque second dispositif (3) et des moyens (9) de comparaison des informations de fonctionnement reçues de chaque second dispositif (3) avec le modèle de comportement de ce second dispositif de façon à déterminer si le fonctionnement de ce second dispositif (3) est conforme ou non au modèle de comportement stocké, et des moyens (10) de validation adaptés pour empêcher le lancement d'une opération sensible sur ce second dispositif ou pour commander un changement d'état du second dispositif si les moyens de comparaison ont déterminé que ce second dispositif ne manifeste pas un fonctionnement conforme. 2. Système sécurisé selon la revendication 1, caractérisé en ce que la vérification que le fonctionnement du second dispositif (3) est conforme au modèle de comportement stocké comporte une vérification de l'intégrité de certaines portions du code dudit second dispositif. 3. Système sécurisé selon la revendication 1 ou 2, caractérisé en ce que la vérification que le fonctionnement du second dispositif (3) est conforme au modèle de comportement stocké comporte une vérification de l'intégrité de certaines portions des données dudit second dispositif. 4. Système sécurisé selon l'une des revendications 1, 2 ou 3 caractérisé en ce que la vérification que le fonctionnement du second dispositif (3) est conforme au modèle de comportement stocké comporte une vérification de l'authenticité dudit second dispositif. 5. Système sécurisé selon l'une quelconque des revendications précédentes, caractérisé en ce que la vérification que le fonctionnement du second dispositif (3) est conforme au modèle de comportement stocké comporte une vérification que l'état de sécurité dudit second dispositif est suffisant pour effectuer une opération sensible. 6. Système sécurisé selon l'une quelconque des revendications précédentes, caractérisé en ce que les moyens de surveillance de chaque second dispositif comportent du code de confiance injecté dans le code principal desdits seconds dispositifs. 7. Système sécurisé selon l'une quelconque des revendications précédentes, caractérisé en ce que les moyens de communication des premier et second dispositifs sont adaptés pour sécuriser les échanges d'informations entre eux. 8. Système sécurisé selon la revendication 7, caractérisé en ce que les moyens de sécurisation des échanges d'informations entre les premier et second dispositifs comportent l'émission d'une valeur aléatoire par le premier dispositif, l'utilisation de cette valeur aléatoire par les moyens de commande du second dispositif avant envoi au premier dispositif d'un résultat dépendant de cette valeur aléatoire et validation dudit résultat par le premier dispositif par comparaison avec un résultat attendu fonction de la valeur aléatoire. 9. Système sécurisé selon l'une quelconque des revendications précédentes, caractérisé en ce que les moyens de surveillance du second dispositif sont actionnés par une commande émise par les moyens sécurisés de commande et de communication du premier dispositif. 10. Système sécurisé selon l'une quelconque des revendications précédentes, caractérisé en ce que les moyens de surveillance du second dispositif peuvent transmettre, de leur propre initiative, des informations de fonctionnement aux moyens sécurisés du premier dispositif. 11. Système sécurisé selon l'une quelconque des revendications précédentes, caractérisé en ce que les moyens de surveillance du second dispositif sont actionnés, au moins, au moment de l'installation dudit second dispositif ou lors de sa première interaction avec le premier dispositif. 12. Dispositif (2) de traitement de données comportant des moyens sécurisés (5) de commande et de communication avec au moins un autredispositif (3), caractérisé en ce que les moyens sécurisés (5) de commande et de communication comportent des moyens (8) de stockage d'un modèle de comportement de chaque autre dispositif et des moyens (9) de comparaison des informations de fonctionnement reçues de chaque autre dispositif avec le modèle de comportement de cet autre dispositif. 13. Dispositif (3) de traitement de données comportant des moyens (6) de commande et de communication avec un dispositif selon la revendication 12, caractérisé en ce que les moyens de commande et de communication comportent des moyens (7) de surveillance adaptés pour transmettre des informations sur le fonctionnement dudit dispositif. 14. Procédé sécurisé de traitement de données entre un premier dispositif comportant des moyens sécurisés (5) de commande et de communication, et au moins un second dispositif (3) comportant des moyens (6) de commande et de communication avec le premier dispositif, caractérisé en ce qu'il comporte les étapes de : - stockage dans le premier dispositif d'un modèle de comportement de chaque second dispositif ; - transmission de chaque second dispositif au premier dispositif d'informations de fonctionnement du second dispositif ; - comparaison par le premier dispositif des informations de fonctionnement reçues avec le modèle de comportement stocké par le second dispositif correspondant ; - autorisation du lancement d'une opération sensible sur le second dispositif si et seulement si la comparaison a détecté que le fonctionnement du second dispositif est conforme à son modèle de comportement stocké. 15. Programme d'ordinateur comportant des instructions de code de programme pour l'exécution des étapes du procédé selon la revendication 14 lorsque ledit programme est exécuté sur un ordinateur.