Brevet FR2938671A1 — publié le 20100521

Le domaine de l'invention est celui des équipements avioniques. L'invention concerne plus précisément les équipements embarqués dans un aéronef qui fournissent une interface de communication avec un réseau avionique destiné à servir de support aux communications internes de l'aéronef, par exemple une interface de communication pour un réseau avionique ARINC 664 (notamment réseau AFDX - Avionics Full Duplex), ou encore une interface de type Bus CAN, USB ou HDLC. Les systèmes avioniques comprennent aujourd'hui des équipements distants de type capteurs ou actionneurs de plus en plus intelligents. Il s'agit 1 o notamment d'équipements critiques de commande de vol, par exemple des vérins électriques, qui sont non seulement commandés par un contrôleur central mais également aptes à élaborer des rapports destinés au contrôleur central. Un équipement avionique remplit ainsi généralement une fonction 15 critique en ce sens que la fourniture d'informations erronées non détectées peut avoir des conséquences catastrophiques pour la sécurité de l'aéronef et de ses passagers. La criticité est notamment définie dans le domaine d'application de l'invention par les référentiels aéronautiques suivants : CS25.1309 / ARP-4754 / DO-254 / DO-178B. 20 Il est aujourd'hui pratique courante de développer un composant électronique spécifique de type ASIC (ou FPGA, PLD) pour remplir la fonction d'interface AFDX d'un équipement avionique, ce composant étant relié à un processeur qui réalise les autres fonctions ù notamment des fonctions critiques ù de l'équipement. 25 Cette solution s'avère toutefois complexe et coûteuse dans la mesure où le composant ASIC doit être développé dans un souci de garantir un bon niveau d'assurance conception (niveau A et B de la spécification DO-254). L'invention a pour objectif de proposer une technique qui permette de s'affranchir de cet inconvénient, en permettant de réaliser la fonction 30 d'interface AFDX de manière plus simple et moins coûteuse tout en garantissant la sécurité du système avionique. A cet effet, l'invention propose un équipement électronique comprenant un processeur, une mémoire et un module de communication assurant une interface avec un réseau de données avionique, caractérisé en ce que le module de communication et le processeur sont embarqués au sein d'un microcontrôleur de sorte que la mémoire est partagée entre le processeur et le module de communication, et en ce qu'il comporte en outre un module de surveillance des accès à la mémoire configurés pour détecter un accès du module de communication dans une zone d'adresses non autorisée de la mémoire. 1 o Certains aspects préférés, mais non limitatifs, de cet équipement sont les suivants : - le module de surveillance est configuré pour déclencher une interruption et une remise à l'état initial du microcontrôleur en cas d'accès du module de communication en écriture dans la zone 15 d'adresses non autorisée ; - la zone d'adresses non autorisée correspond à une zone d'adresses réservée au logiciel s'exécutant sur le processeur ; - la zone d'adresses non autorisée est préalablement définie lors de la conception de l'équipement électronique ; 20 - le processeur et le module de communication sont reliés à la mémoire par l'intermédiaire d'un bus commun ; - le processeur comporte une unité de gestion mémoire responsable de l'accès à la mémoire principale demandé par le processeur ; - le module de communication fournit une interface AFDX avec le 25 réseau avionique ; - le processeur est configuré pour calculer une somme de contrôle pour des trames de données issues du module de communication avant leur transmission sur le réseau avionique ; - le module de surveillance est un dispositif électronique simple au sens 3o de la spécification DO-254 ; et - le processeur est programmé pour réaliser une fonction critique au sens de la spécification DO-254. Selon un second aspect, l'invention concerne un procédé de sécurisation d'un équipement électronique comprenant un processeur et un module de communication assurant une interface avec un réseau de données avionique, le processeur et le module de communication étant embarqués au sein d'un microcontrôleur de sorte qu'ils partagent une même mémoire, comprenant la mise en oeuvre d'une surveillance des accès à la mémoire partagée pour détecter un accès du module de communication dans une zone d'adresses non autorisée. D'autres aspects, buts et avantages de la présente invention apparaîtront mieux à la lecture de la description détaillée suivante de formes de réalisation préférées de celle-ci, donnée à titre d'exemple non limitatif, et faite en référence aux dessins annexés sur lesquels : - la figure 1 est un schéma représentant un équipement conforme à un mode de réalisation possible du premier aspect de l'invention ; - la figure 2 illustre les accès mémoire réalisé par le module de communication d'un équipement conforme à un mode de réalisation possible du premier aspect de l'invention ; - la figure 3 est un schéma de principe représentant un mode de réalisation possible d'un module de surveillance des accès mémoire destiné à être intégré dans un équipement selon le premier aspect de l'invention Selon un premier aspect, l'invention concerne un équipement comprenant un processeur, une fonction mémoire et un module de communication assurant une interface de communication avec un réseau avionique. Dans le cadre de l'invention, il est proposé de regrouper la fonction d'interface avec le réseau avionique (réseau AFDX dans l'exemple non limitatif de réalisation de l'invention qui sera considéré par la suite) avec les autres fonctions de l'équipement avionique sur un même composant de type 4 micro-contrôleur, la fonction AFDX étant déléguée à un périphérique complexe interne spécifique du microcontrôleur. L'équipement selon le premier aspect de l'invention comporte ainsi un module de communication (chargé de la fonction d'interface AFDX) et un processeur (chargé des autres fonctions, notamment critiques, de l'équipement) tous deux embarqués au sein d'un même composant de type microcontrôleur. On a représenté sur la figure 1 un schéma de principe d'un équipement avionique selon le premier aspect de l'invention. L'équipement comporte en particulier un microcontrôleur 1 intégrant un coeur processeur 2, un module de communication 3 destiné à assurer l'interface avec un réseau avionique et une unité d'interface 10 incorporant notamment un contrôleur de mémoire et un arbitre de bus. Le microcontrôleur 1 est par exemple le microcontrôleur MPC 8270 de la société Freescale. Dans la terminologie associée à ce microcontrôleur MPC 8270, le processeur est dénommé coeur processeur (� PowerPC Core �), le module de communication est dénommé Module Processeur de Communication (� Communication Processor Module �). On notera que sur la figure 1, seuls les éléments du microcontrôleur 1 nécessaires à la compréhension de l'invention ont été représentés. Le module de communication 3 comporte notamment une mémoire 4 de type RAM, par exemple une mémoire DPRAM (� Dual Ported Random Access Memory �), et un processeur de communication 5 (� Communication Processor �) doté d'un microprocesseur et d'une mémoire 6 de type ROM ou RAM dans laquelle est stocké un microcode définissant le fonctionnement du module de communication 3. Dans l'exemple de réalisation ici présenté, deux contrôleurs Ethernet 7a, 7b (typiquement des contrôleurs de communication rapide FCC selon la terminologie anglo-saxonne � Fast Communication Controller �) du module de communication 3 sont utilisés pour réaliser les opérations d'interface avec le réseau avionique AFDX. Les contrôleurs Ethernet 7a, 7b communiquent avec des modules d'émission-réception 9a, 9b (par exemple du type LXT973 dans le cas du bus AFDX) via une interface 8 (par exemple une interface indépendante du média MII comme spécifié par la norme Ethernet IEEE802.3 en particulier une interface MII par canal FCC). L'unité d'interface système 10 est reliée à une mémoire principale 11, par exemple une mémoire de type RAM par l'intermédiaire d'un bus mémoire 12. On retiendra que le processeur 2 comporte par ailleurs une unité de gestion mémoire MMU (pour Memory Management Unit) responsable de l'accès à la mémoire principale 11 demandé par le processeur 2 et qui garantit le niveau de sécurité nécessaire dans le domaine d'application de l'invention dans le cadre du fonctionnement du logiciel sur le coeur processeur 2. Le fonctionnement est globalement le suivant : û les trames de données AFDX sont écrites ou lues par le processeur 2 dans la mémoire principale 11 ; û les trames de données AFDX sont écrites ou lues par le module de communication 3 dans la mémoire principale 11 via des accès direct mémoire (DMA - Direct Access Memory) initiés par le module de communication 3 ; û le processeur 2 et le module de communication 3 partagent le bus 12 sous le contrôle de l'arbitre de bus de l'unité d'interface système 10 ; û les échanges sont contrôlés par un descripteur de trame stocké dans la mémoire principale. Plus précisément, pour chacun des contrôleurs Ethernet 7a, 7b (désignés par FCC1 et FCC2 sur la figure 2), les trames sont organisées dans le module de communication au sein de la mémoire 4 de type RAM de manière à correspondre à un table de description de tampon (� Buffer Descriptor Table � û � BD table � sur la figure 2) dans la mémoire principale 11, la table de description de tampon comprenant notamment un champ de pointeur pointant vers une table de tampon (� Buffer table � sur la figure 2) dans la mémoire principale 11 où une trame AFDX reçue ou à transmettre est stockée ; ù seul un pointeur vers l'adresse de la mémoire principale où la table de description de tampon est située est stocké dans la mémoire RAM 4 du module de communication 3 (non protégée par code correcteur d'erreur ECC). Dans le domaine d'application de l'invention, le processeur 2 du microcontrôleur 1 (par exemple le microcontrôleur MPC 8270 de Freescale) ne nécessite pas de justifications particulières : on considère effectivement 1 o du point de vue certification que les processeurs sont couverts par les vérifications des logiciels qu'ils supportent (norme DO 178B). En revanche, on ne dispose pas de garantie d'assurance conception pour le module de communication 3. En effet, le microcode définissant le fonctionnement du module de communication est développé par le 15 concepteur du microcontrôleur. Or le concepteur n'apporte aucun support pour la justification du module de communication, ni côté matériel, ni côté microcode, de sorte que le module de communication 3 est un composant dont le niveau d'assurance développement n'est pas connu par manque d'informations ; de ce fait, la justification � composant complexe � au sens 20 des certifications avioniques est difficile à obtenir. Une des problématiques à résoudre est alors de garantir que les anomalies et défaillances du module de communication 3 n'ont pas d'effet catastrophique sur la sécurité du système. En effet, comme on l'a vu précédemment, le processeur 2 et le module 25 de communication 3 sont reliés à la mémoire principale 11 par l'intermédiaire d'un bus commun 12. Dès lors, un mode de défaillance du module de communication 3 pourrait conduire à des accès non souhaités à la mémoire 11, avec pour conséquence la modification des données ou du code utilisés par le processeur 2 qui sont stockés dans la mémoire 11. Si le processeur 2 3o réalise une fonction critique, ce mode de défaillance peut avoir un effet catastrophique sur la sécurité du système avionique, car le processeur 2 n'a aucun moyen de détecter une telle corruption de son code ou de ses données. On cherche dès lors à prévenir l'effet d'un tel mode de défaillance du module de communication 3 sur la sécurité du système avionique. On notera ici que la réception de trames AFDX n'est pas décrite dans ce qui suit, dans la mesure où la perte de données AFDX ou la réception de données AFDX erronées sont considérées comme n'ayant pas conséquence sur la sécurité du système avionique. On a représenté sur la figure 2 la mémoire principale 11 telle que vue 1 o par le module de communication 3. La mémoire 11 est divisée en deux blocs : - une zone non autorisée 12 : un accès du module de communication 3 dans cette zone 12 correspond à une erreur due à un disfonctionnement du module de communication 3 ou à une altération d'un pointeur ; 15 - une zone autorisée 13, qui contient les données manipulées par le module de communication 3. Ces zones doivent notamment être préalablement définies, lors de la conception de l'équipement avionique. De manière préférentielle, la zone non autorisée 12 de la mémoire 11 20 correspond à des éléments de la mémoire 11 qui sont réservés pour le processeur 2. Le programme et les données utilisés par le processeur 2 sont ainsi destinés à être stockés dans cette zone non autorisée 12. Sur cette figure 2, on a représenté : - par des flèches portant la référence 14 un accès normal du module de 25 communication de données 3 à la mémoire 11 dans la zone autorisée 13 ; - par une flèche portant la référence 15 un accès anormal du module de communication de données 3 à la mémoire 11, dans la zone non autorisée 12 ; - par une flèche portant la référence 15 un accès anormal du module de 30 communication de données 3 à la mémoire 11, dans la zone autorisée 13, du fait d'un comportement inattendu ou d'un pointeur corrompu. Selon l'invention, et en référence à la figure 1, l'équipement selon le premier aspect de l'invention comporte en outre un module 17 de surveillance des accès à la mémoire principale 11 configuré pour détecter un accès du module de communication 3 dans la zone d'adresses non autorisée 12. Le module 17 est ainsi configuré pour détecter tout accès anormal dans la zone non autorisée 12 de la mémoire principale 11 (accès portant la référence 15 sur la figure 2). Le module 17 permet la mise en oeuvre d'un mécanisme de surveillance hardware, extérieur au microcontrôleur surveillé. Le module 17 de surveillance des accès à la mémoire principale 11 1 o surveille la provenance des données devant être écrites dans la mémoire 11 et analyse les adresses de rangement pour détecter un éventuel adressage d'un composant (ici le module de communication 3) dans une zone non autorisée. Le module 17 de surveillance des accès à la mémoire principale 11 15 surveille ainsi le comportement du module de communication 3 tel que vu du côté du bus 12 partagé entre le processeur 2 et le module de communication 3. Le module 17 peut notamment être configuré pour déclencher une interruption en cas d'accès du module de communication 3 en écriture dans 20 la zone d'adresses non autorisée 12. Le processeur 2 peut quant lui être configuré pour générer une exception lorsque le module de surveillance déclenche une interruption. Le module 17 peut également être configuré pour déclencher une remise à l'état initial (ou reset) de l'ensemble de la fonction processeur 2 en 25 cas d'accès du module de communication 3 en écriture dans la zone d'adresses non autorisée 12. La fonction communication peut également être remise à l'état initial afin de bloquer le canal de communication sortant et empêcher l'émission de toute donnée potentiellement erronée. Lorsque la zone non autorisée 12 correspond au code et données 3o utilisés par le processeur 2, on comprend que l'invention permet de détecter l'occurrence d'un dysfonctionnement du module de communication 3 susceptible d'engendrer une altération du code et données utilisés par le processeur 2 et par conséquent d'altérer les fonctions critiques remplies par le processeur 2. Selon un mode de réalisation possible, le module 17 de surveillance des accès à la mémoire principale 11 surveille le signal de Code de Transaction (TC) et les adresses du microcontrôleur 1, et provoque une interruption lorsque l'équation logique suivante est observée : - Le code de transaction correspond à une demande d'accès du module de communication 3 ; ET - La mémoire est adressée en mode Ecriture ; ET - La zone mémoire adressée est en dehors de la zone autorisée 13 pour les transactions issues du module de communication 3. Le module de surveillance des accès mémoire 17 est préférentiellement un composant programmable (composant PLD selon la terminologie anglo- saxonne "Programmable Logic Device �) particulièrement simple développé au niveau A de la spécification DO-254. Il en découle que les ressources nécessaires pour le développement de ce composant sont la logique combinatoire, des verrous contrôlés par une seule horloge, sans mise en oeuvre d'une machine d'états. On a représenté sur la figure 3 un diagramme fonctionnel d'un mode de réalisation d'un tel composant programmable. Le composant comprend une première bascule 18 recevant notamment en entrée I les signaux transitant sur le bus partagé 12 entre le microcontrôleur 1 et la mémoire principal 11. Un signal d'horloge CK est fourni à la première bascule 18 de sorte qu'elle recopie l'entrée sur un front du signal d'horloge (réalisant de la sorte un échantillonnage des signaux transitant sur le bus partagé, notamment des signaux correspondant aux accès du module de communication à la mémoire principale). L'entrée recopiée est fournie à un module 19 de décodage d'adresses mettant par exemple en oeuvre l'équation logique présentée ci-dessus pour fournir un signal de sortie avertissant d'un éventuel accès en écriture en dehors de la zone autorisée. Ce signal de sortie est fourni à une seconde bascule 20 qui le recopie à une cadence définie par le signal d'horloge CK pour fournir un signal de sortie S indicatif d'une éventuelle erreur d'adressage. Selon un mode de réalisation préférentiel de l'invention, on réalise un deuxième mécanisme de sécurisation pour prévenir toute défaillance du module de communication 3 entraînant la transmission de trames AFDX erronées. Il s'agit notamment de prévenir tout accès anormal du module de communication 3 dans la zone autorisée 13 de la mémoire principale 11 (accès portant la référence 16 sur la figure 2), par exemple du fait d'erreurs de conception du module de communication 3. Pour ce faire, le processeur 2 est configuré pour calculer une somme de contrôle (par exemple via un contrôle de redondance cyclique CRC) pour des trames de données issues du module de communication 3 avant leur transmission sur le réseau avionique. Des trames altérées par le module de communication 3 peuvent de la sorte être détectées par les appareils connectés à l'équipement selon le premier aspect de l'invention via le réseau avionique AFDX. Enfin, on aura compris que l'invention n'est pas limitée à un équipement selon le premier aspect, mais s'étend également à un procédé de sécurisation d'un équipement électronique comprenant un processeur et un module de communication assurant une interface avec un réseau de données avionique, le processeur et le module de communication étant embarqués au sein d'un microcontrôleur de sorte qu'ils partagent une même mémoire, le procédé comprenant la mise en oeuvre d'une surveillance des accès à la mémoire partagée pour détecter un accès du module de communication dans une zone d'adresses non autorisée. REVENDICATIONS1. Equipement électronique comprenant un processeur (2), une mémoire (11) et un module de communication (3) assurant une interface avec un réseau de données avionique, caractérisé en ce que le module de communication (3) et le processeur (2) sont embarqués au sein d'un microcontrôleur (1) de sorte que la mémoire (11) est partagée entre le processeur et le module de communication, et en ce qu'il comporte en outre 1 o un module de surveillance des accès à la mémoire (17) configurés pour détecter un accès du module de communication (3) dans une zone d'adresses non autorisée (12) de la mémoire (11). 2. Equipement selon la revendication 1, dans lequel le module de 15 surveillance (17) est configuré pour déclencher une interruption et une remise à l'état initial du microcontrôleur en cas d'accès du module de communication (3) en écriture dans la zone d'adresses non autorisée. 3. Equipement selon l'une des revendications 1 à 2, dans lequel la zone 20 d'adresses non autorisée correspond à une zone d'adresses réservée au logiciel s'exécutant sur le processeur. 4. Equipement selon l'une des revendications 1 à 3, dans lequel la zone d'adresses non autorisée est préalablement définie lors de la conception de 25 l'équipement électronique. 5. Equipement selon l'une des revendications 1 à 4, dans lequel le processeur et le module de communication sont reliés à la mémoire par l'intermédiaire d'un bus commun (12). 30 6. Equipement selon l'une des revendications 1 à 5, dans lequel le processeur comporte une unité de gestion mémoire responsable de l'accès à la mémoire principale demandé par le processeur. 7. Equipement selon l'une des revendications 1 à 6, dans lequel le module de communication fournit une interface AFDX avec le réseau avionique. 8. Equipement selon l'une des revendications 1 à 7, dans lequel le processeur est configuré pour calculer une somme de contrôle pour des trames de données issues du module de communication avant leur transmission sur le réseau avionique. 9. Equipement selon l'une des revendications 1 à 8, dans lequel le module de surveillance est un dispositif électronique simple au sens de la spécification DO-254. 10. Equipement selon l'une des revendications 1 à 9, dans lequel le processeur est programmé pour réaliser une fonction critique au sens de la spécification DO-254. 11. Procédé de sécurisation d'un équipement électronique comprenant un processeur et un module de communication assurant une interface avec un réseau de données avionique, le processeur et le module de communication étant embarqués au sein d'un microcontrôleur de sorte qu'ils partagent une même mémoire, comprenant la mise en oeuvre d'une surveillance des accès à la mémoire partagée pour détecter un accès du module de communication dans une zone d'adresses non autorisée.