Brevet FR2895538A1 — publié le 20070629

L'invention concerne un système pour la protection de périphériques d'un système informatique comportant au moins un bus reliant les périphériques à au moins un microprocesseur. D'une manière générale, on sait que les bus utilisés dans les appareils 15 électroniques (ordinateurs personnels, PDA, téléphones mobiles, set top box, etc.) servent à connecter les différentes unités fonctionnelles telles que les microprocesseurs et les périphériques. Certaines architectures matérielles nécessitent de filtrer les messages circulant 20 sur le bus afin de contrôler l'accès aux périphériques. Un filtre permet ainsi de configurer certains périphériques comme n'étant accessibles que sous certaines conditions définies par le filtre. A titre d'exemple, certaines architectures matérielles définissent des modes 25 d'exécution sécurisée, visant à exécuter du code dit sensible. Un mode sécurisé correspond à un état spécifique du microprocesseur qui permet au code exécuté d'accéder à des espaces de données réservés, seulement accessibles lorsque le mode sécurisé est actif. Ces espaces de données réservés peuvent correspondre à des zones mémoires protégées, à des périphériques ou 30 à des modes de fonctionnement particuliers des périphériques. Un cas de configuration typique est le partitionnement d'une mémoire externe en 1 -2 2895538 différentes zones accessibles en fonction du mode d'utilisation du processeur. Il est également possible d'autoriser ou non l'accès à des périphériques ou de n'autoriser l'accès qu'en lecture seule. De telles architectures nécessitent donc des composants contrôlant que l'accès à des zones mémoires ou à des Périphériques Protégés n'est autorisé que dans certains modes de fonctionnement du microprocesseur. Une solution consiste à placer un composant sur le bus de façon à valider ou refuser l'accès aux périphériques en fonction de règles prédéfinies. Les composants de protection existants agissent de façon active sur les bus de communication. Ils sont placés sur les bus entre un microprocesseur et un périphérique. Ils interceptent les communications du bus, les analysent et si un problème est détecté, ils agissent sur le bus, soit en supprimant le message, soit en émettant une erreur. Ces composants sont donc soumis à des exigences fortes en terme de performance car ils doivent être capables d'analyser le trafic du bus en temps réel sans dégrader le taux de transfert du bus. L'augmentation continue des taux de transfert des bus a pour conséquence de complexifier l'implémentation et donc le coût de tels composants qui nécessitent de plus en plus de portes logiques afin de paralléliser les traitements requis pour l'analyse des données. Des composants d'analyse de bus, tels que celui décrit par le document EP 0 994 418, permettent de capturer les signaux émis sur un bus ainsi que l'état des périphériques afin d'analyser le comportement du système. Un tel composant est placé entre un bus et un périphérique et contient de la mémoire pour stocker les signaux émis sur le bus ainsi que les changements d'états du périphérique. Ce composant peut être utilisé pour effectuer une mise au point ou un diagnostic d'un système par une analyse des données a posteriori. Néanmoins, un tel composant ne permet pas d'analyser dynamiquement les signaux ni d'agir sur le système afin de déclencher une contre-mesure. Ce composant a donc pour vocation unique la mise au point ou analyse de système et non la protection du système dans un mode opérationnel. L'invention a donc plus particulièrement pour but de supprimer ces inconvénients. Elle propose, à cet effet, un système de protection de périphériques, dits Périphériques Protégés , d'un système informatique comportant au moins un bus reliant lesdits périphériques à au moins un microprocesseur, ce système de protection comprenant un composant matériel dit "Composant de Protection" connecté à un bus relié aux périphériques, ce Composant de Protection comportant : des moyens d'écoute passive, sans perturbation, des signaux circulant sur le bus, des moyens d'évaluation d'un ensemble de contraintes relatives à ces signaux, - des moyens de déclenchement (immédiat ou différé) d'une opération 20 d'alerte dans le cas où certaines contraintes ne sont pas satisfaites. L'analyse des signaux circulant sur le bus pourra être effectuée par des filtres inclus dans le Composant de Protection, un filtre mettant en oeuvre un ensemble de contraintes à vérifier sur les signaux observés. Avantageusement : - les filtres logiques ainsi que la nature des alertes déclenchées en fonction des signaux émis peuvent être programmés par du code exécuté sur un 30 microprocesseur; les opérations d'alerte pourront comprendre : 25 - 4 • l'émission d'un message d'alerte sur le bus, • l'activation d'une interruption matérielle du microprocesseur, • le stockage d'une information d'alerte dans un registre interne du Composant de Protection, le Composant de Protection est connecté selon le cas : • à un bus externe entre le ou les boîtiers contenant les microprocesseurs et le ou les boîtiers contenant les Périphériques Protégés, • à un bus interne du SoC ("system-on-chip") entre le ou les microprocesseurs et les Périphériques Protégés situés sur le SoC, • à la sortie d'un bus externe du SoC utilisé pour accéder aux Périphériques Protégés situés à l'extérieur du SoC, • à un bus interne du SoC utilisé pour accéder aux Périphériques Protégés situés à l'extérieur du SoC. De même, ce Composant de Protection pourra être intégré dans le boîtier d'un Périphérique Protégé, sur le bus d'entrée de ce Périphérique Protégé. Des modes d'exécution de l'invention seront décrits ci-après, à titre d'exemples non limitatifs, avec référence aux dessins annexés dans lesquels : La figure 1 est un schéma synoptique d'un Composant de Protection selon l'invention ; Les figures 2 à 6 sont des représentations schématiques illustrant 25 différents types de montage du composant dans un réseau faisant intervenir un ou plusieurs microprocesseurs connectés par un bus à un ou plusieurs périphériques cibles. Dans l'exemple illustré sur la figure 1, le Composant de Protection 1 est 30 connecté de façon passive sur un bus 2 reliant un microprocesseur représenté schématiquement par un bloc 3 à un périphérique 4.20 Ce composant comprend un multiplexeur 5 dont l'entrée est connectée au bus 2 et dont les sorties (ici deux sorties) sont connectées à un réseau de filtrage logique matriciel 6 constitué ici de deux filtres logiques (filtre 1 - filtre 2) à deux étages (étage 1 - étage 2). Ce réseau de filtrage logique 6 est par ailleurs connecté à un analyseur/déclencheur d'alerte 7. Le Composant de Protection 1 effectue une écoute passive du trafic circulant sur le bus 2, sans modifier ni perturber les signaux émis. Il analyse en parallèle grâce au réseau de filtrage logique 6 la nature des signaux transitant sur le bus 2. Les filtres logiques sont chacun constitués par un ensemble de contraintes à vérifier sur le signaux observés. A titre d'exemple, un filtre pourra concerner toute tentative d'écriture dans une plage d'adresses donnée. Dans ce cas, la détection d'une telle tentative par le filtre sera prise en charge par l'analyseur/déclencheur d'alerte 7 qui pourra éventuellement émettre un signal d'alerte. La particularité de ce processus consiste en ce que si une contrainte n'est pas vérifiée, le Composant de Protection 1 déclenche une alerte 8 sans intervenir 20 sur les signaux ayant déclenché l'alerte. Les alertes 8 peuvent donc être générées a posteriori et la vérification des contraintes n'a donc pas besoin d'être effectuée à la vitesse de transaction du bus 2. 25 La principale caractéristique de ce Composant de Protection 1 est donc une écoute passive du bus 2, une analyse des données et un déclenchement d'alerte a posteriori, ne nécessitant aucune action directe sur les données circulant sur le bus 2. Cette caractéristique est essentielle car elle permet au Composant de 30 Protection 1 de s'affranchir des contraintes de performance requises par les solutions actuelles. Le déclenchement des alertes a posteriori ne permet pas de bloquer les signaux invalides mais constitue néanmoins un système de protection efficace dans de nombreux cas d'utilisation. Par exemple, lorsque le périphérique contrôlé est lent (c'est le cas des lecteurs de carte MMC par exemple), l'analyse et le déclenchement de l'alerte seront effectués avant que le périphérique n'ait pu répondre au microprocesseur. Il en va de même pour les périphériques ou plusieurs transactions de bus sont nécessaires avant d'obtenir une information protégée. De plus, même si la lenteur relative de la détection permet d'obtenir une fraction d'information avant que l'alerte ne soit lancée, la valeur de cette fraction de donnée peut être suffisamment faible pour rendre la protection efficace. C'est le cas, par exemple, d'un contenu multimédia. Dans une mise en oeuvre préférée de l'invention, le Composant de Protection 1 peut être programmé par du code exécuté sur un microprocesseur. Bien que cet accès pour programmation puisse utiliser le bus 2 observé par le composant 1, ces deux utilisations du bus 2 sont décorrélées. La nature de l'alerte peut également faire l'objet d'une programmation. Suivant les cas d'utilisation et les caractéristiques de l'architecture matérielle du système, différents types d'alertes peuvent être mis en oeuvre : ^ Le composant 1 peut générer directement un message d'alerte sur le bus 2. Dans ce cas un programme de détection d'erreur de bus doit prendre les contre-mesures. ^ Le composant 1 peut activer une interruption matérielle d'un microprocesseur 3. Dans ce cas, le programme de protection est activé par gestionnaire d'interruption. ^ Le composant 1 peut stocker l'alerte dans un registre interne du composant 1. Dans ce cas, un programme d'audit doit lire régulièrement les registres du composant 1. Le Composant de Protection précédemment décrit pourra prendre différentes formes en fonction de l'architecture matérielle du système. Ainsi, comme illustré sur la figure 2, ce composant pourra consister en un composant discret (bloc 11) placé sur un bus externe 12 entre le(ou les) boîtier(s) 13 contenant le(ou les) microprocesseur(s) 14 (boîtiers usuellement appelés SoC "System-on-chip") et le(ou les) boîtier(s) 15 contenant les périphériques cibles. En variante, comme illustré sur la figure 3, le Composant de Protection 16 pourra être intégré au boîtier SoC 17 et connecté à un bus interne 18 du SoC 17 entre le(ou les) microprocesseur(s) 19 et le(s) périphérique(s) cible(s) internes 20 du boîtier SoC 17. De même, le Composant de Protection 21 pourra être intégré sur le boîtier SoC 22 et connecté à la sortie d'un bus externe 23 du boîtier SoC 22 utilisé pour accéder aux périphériques cibles 24 externes au boîtier SoC 22 (figure 4). Dans cet exemple, le bus externe 23 est relié à un bus interne 26 du SoC 22 par l'intermédiaire d'une interface 25. Ce bus interne est lui-même connecté à un ou plusieurs microprocesseurs 27. Le Composant de Protection 31 pourra éventuellement être intégré sur le boîtier SoC 32 d'un microprocesseur 37 et connecté à un bus interne 33 du SoC 32 utilisé pour accéder aux périphériques cibles 34 externes au SoC 32 via une interface 35 et un bus externe 36 (figure 5). Comme illustré figure 6, le Composant de Protection 41 pourra être intégré dans le boîtier 42 d'un périphérique cible 43 sur le bus d'entrée 44 de ce périphérique 43 (figure 6). Ce bus d'entrée 44 est lui-même connecté au boîtier SoC 45 d'un microprocesseur 46. Revendications 1. Système de protection de périphériques (4), dits Périphériques Protégés , d'un système informatique comportant au moins un bus (2) reliant lesdits périphériques (4) à au moins un microprocesseur (3), ce système de protection comprenant un composant matériel dit "Composant de Protection (1)" connecté à un bus relié aux périphériques (4), caractérisé en ce que ledit Composant de Protection comprend : des moyens d'écoute passive, sans perturbation, des signaux circulant sur le bus (2), - des moyens d'évaluation d'un ensemble de contraintes relatives à ces signaux, - des moyens de déclenchement (7) (immédiat ou différé) d'une opération d'alerte (8) dans le cas où certaines contraintes ne sont pas satisfaites. 2. Système selon la revendication 1, caractérisé en ce que la nature des alertes déclenchées en fonction des signaux émis est programmée par du code exécuté sur un microprocesseur (3) du 20 système informatique. 3. Système selon l'une des revendications 1 et 2, caractérisé en ce que les opérations d'alerte comprennent l'émission d'un message d'alerte sur le bus (2). 4. Système selon l'une des revendications 1 et 2, caractérisé en ce que les opérations d'alerte comprennent l'activation d'une interruption matérielle d'un microprocesseur (3). 8 25 5. Système selon l'une des revendications 1 et 2, caractérisé en ce que les opérations d'alerte comprennent le stockage d'une information d'alerte dans un registre interne du Composant de Protection (1). 6. Système selon l'une des revendications 1 à 5, caractérisé en ce que le Composant de Protection (11) est connecté à un bus externe (12) entre le ou les boîtiers (13) contenant les microprocesseurs (14) et le ou les boîtiers contenant les Périphériques Protégés (15). 7. Système selon l'une des revendications 1 à 5, caractérisé en ce que le Composant de Protection (16) est connecté à un bus interne (18) du SoC (17) ( System on Chip) ) entre le ou les microprocesseurs (19) et les Périphériques Protégés (20) situés sur le SoC (17). 8. Système selon l'une des revendications 1 à 5, caractérisé en ce que le Composant de Protection (21) est placé à la sortie d'un bus externe (23) du SoC (22) utilisé pour accéder aux Périphériques Protégés (24) situés à l'extérieur du SoC (22). 9. Système selon l'une des revendications 1 à 5, caractérisé en ce que le Composant de Protection (31) est connecté à un bus interne (33) du SoC (32) utilisé pour accéder aux Périphériques Protégés (34) situés à l'extérieur du SoC (32). 10. Système selon l'une des revendications 1 à 5, caractérisé en ce que le Composant de Protection (41) est intégré dans le boîtier (42) d'un Périphérique Protégé (43) sur le bus d'entrée (44) de ce Périphérique Protégé (43). 25 30-10- 11. Système de protection de périphériques selon l'une des revendications précédentes, caractérisé en ce qu'il s'exécute sur un appareil individuel (ordinateur personnel, téléphone portable, lecteur audio ou vidéo, PDA, décodeur de 5 télévision, etc.).