Brevet FR2913122A1 — publié le 20080829

SYSTÈME D'INFORMATION EMBARQUÉ À RESTAURATION AUTOMATIQUE DESCRIPTION 5 DOMAINE TECHNIQUE La présente invention concerne de manière générale le domaine de la sécurité informatique, en particulier celle d'un système d'information embarqué, tel qu'un système avionique. ÉTAT DE LA TECHNIQUE ANTÉRIEURE Les systèmes d'information embarqués sont des éléments essentiels de la sécurité d'un aéronef. A titre d'exemple un système d'information embarqué peut 15 comprendre des systèmes avioniques adaptés à exécuter une commande de vol, à contrôler un élément de l'aéronef, à mesurer un paramètre de vol, à surveiller une partie de l'aéronef, un manuel de vol électronique, ou encore tout système de télécommunication assurant 20 une liaison à bord ou avec le sol. Le dysfonctionnement d'un système d'information embarqué est susceptible d'impacter le fonctionnement de l'aéronef ou son pilotage. Les systèmes d'information sont généralement 25 connectés à un réseau embarqué, typiquement un réseau selon la norme ARINC 429 ou selon la norme ARINC 664, dénommé dans ce dernier cas réseau AFDX (Avionics Full DupleX). Ce réseau est partitionné en zones de niveaux de sécurité distincts. La zone de plus haut niveau de 30 sécurité inclut notamment les systèmes d'information et 10 de contrôle situés dans le cockpit et la baie avionique. La zone de plus faible niveau de sécurité correspond à la cabine et est donc accessible aux terminaux des passagers. La sécurité de l'avion dépend au premier chef de l'intégrité des logiciels hébergés par les systèmes d'information. Or, ces logiciels sont susceptibles d'être corrompus par des attaques menées à partir du terminal d'un passager voire d'un terminal de maintenance. Différentes mesures ont été proposées pour prévenir ces attaques, entre autres l'instauration de liaisons unidirectionnelles entre zones de différents niveaux de sécurité ou la signature électronique des logiciels embarqués. On trouvera un exemple d'application de réseau partitionné présentant des liaisons unidirectionnelles entre zones dans la demande de brevet FR 06 54406 déposée au nom de la présente demanderesse. La signature électronique des logiciels embarqués au moyen d'une clé permet de vérifier ultérieurement leur intégrité. C'est notamment le cas lorsque ces logiciels ont été téléchargés via un terminal de maintenance dans le cadre d'une mise à jour. Toutefois, les mesures précitées s'avèrent particulièrement contraignantes. En pratique, il est quasiment impossible d'assurer l'inviolabilité absolue de la zone de plus haut niveau de sécurité, d'autant que l'on souhaite également disposer de points d'accès au réseau pour les besoins de la maintenance. En outre, la signature électronique d'un logiciel ne garantit pas qu'il ne puisse être effacé ou substitué, accidentellement ou intentionnellement. En cas de corruption, d'effacement ou de substitution de logiciel dans un système d'information, il faut procéder à sa réinstallation complète à partir d'une copie de sauvegarde, ce qui est pénalisant en termes d'interruption d'exploitation. Le but de la présente invention est de proposer un système avionique de haut niveau d'intégrité, robuste et compatible avec l'utilisation d'un réseau non sécurisé. EXPOSÉ DE L'INVENTION La présente invention est définie par un système d'information embarqué comprenant : - une première mémoire non réinscriptible contenant un programme de lancement ; - une mémoire volatile ; - une seconde mémoire non réinscriptible contenant un système d'exploitation ainsi qu'un ensemble de fichiers exécutables, ledit programme de lancement étant adapté à charger le système d'exploitation et au moins une partie des fichiers exécutables dans la mémoire volatile lorsque le système d'information embarqué est initialisé. Avantageusement ladite seconde mémoire non réinscriptible contient également tous les fichiers de données permanentes nécessaires à l'exécution desdits fichiers exécutables par ladite unité centrale. De préférence, le programme de lancement est adapté à charger lesdits fichiers de données permanentes dans la mémoire vive lorsque ledit système embarqué est initialisé. La première mémoire non réinscriptible est par exemple une mémoire ROM. La seconde mémoire non réinscriptible est avantageusement un disque dur verrouillé en lecture seule, une mémoire flash verrouillée en lecture seule, un CD-ROM ou un DVD. L'invention est aussi définie par un système en réseau comprenant une pluralité de systèmes d'information embarqués, chaque système d'information embarqué comprenant une unité centrale, une première mémoire non réinscriptible contenant un programme de lancement ainsi qu'une mémoire volatile, ledit système en réseau comprenant en outre : - une pluralité de serveurs de fichiers, 15 chaque serveur comprenant une mémoire de masse nonréinscriptible ; - un réseau embarqué auquel sont connectés lesdits systèmes embarqués et lesdits serveurs de fichiers ; 20 dans lequel, pour au moins l'un desdits systèmes embarqués, le programme de lancement est adapté, à chaque initialisation, à télécharger à partir d'au moins l'un desdits serveurs, un système d'exploitation et/ou un/des fichier(s) exécutable(s) et 25 à le/les stocker dans ladite mémoire volatile. De préférence, au moins l'un desdits systèmes d'information embarqués comprend une seconde mémoire non réinscriptible dans laquelle est stocké ledit système d'exploitation. 30 Selon une variante le système en réseau comprend au moins deux serveurs de fichiers dont les mémoires de masse respectives contiennent des fichiers identiques. Le téléchargement de fichiers à partir desdits serveurs est effectué de préférence selon un protocole de transfert de fichier sécurisé. Enfin, l'invention est également définie par un aéronef comprenant un système d'information embarqué ou un système en réseau, tel qu'exposé ci-dessus. BRÈVE DESCRIPTION DES DESSINS D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture d'un mode de réalisation préférentiel de l'invention fait en référence aux figures jointes parmi lesquelles : La Fig. 1 illustre schématiquement un système d'information selon un premier mode de réalisation de l'invention ; La Fig. 2 illustre schématiquement un système en réseau selon un second mode de réalisation de l'invention ; La Fig. 3 illustre un exemple d'utilisation de l'invention. EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS L'invention part du principe qu'une attaque d'un système d'information, notamment via le réseau embarqué, ne pouvant être exclue, ce système doit présenter un haut niveau d'intégrité intrinsèque. La Fig. 1 représente un tel système d'information embarqué 100. Il comprend une première mémoire nonréinscriptible 110, une seconde mémoire nonréinscriptible 120, une mémoire volatile 130 et une unité centrale 140. Par mémoire non-réinscriptible, on entend une mémoire exclusivement accessible en lecture, autrement dit une mémoire dans laquelle toute écriture est physiquement impossible. Ce sera notamment le cas pour une mémoire ROM au sens strict du terme, à l'exclusion de toute mémoire de type EEPROM ou d'une mémoire flash (non verrouillée). On peut citer également comme exemple de mémoire non réinscriptible un CD-ROM classique voire un DVD, un disque dur ou une mémoire flash en lecture seule. La première mémoire non-réinscriptible 110 est de préférence une mémoire ROM qui contient un programme de lancement ou boot loader 111. La seconde mémoire non-réinscriptible 120 contient le système d'exploitation 121 ainsi que tous les fichiers exécutables 123 permettant au système d'information de réaliser la fonction qu'il doit remplir. Cette mémoire comprend également les fichiers de données permanentes 125, lorsque de telles données sont utilisées par les programmes exécutables. Par données permanentes on entend des constantes par opposition aux variables ou données non permanentes telles qu'issues par exemple d'un processus de mesure. Pour chaque application, les fichiers exécutables et les fichiers de données seront stockés séparément. La mémoire volatile 130 est avantageusement partitionnée en une première zone mémoire 131 destinée à stocker le système d'exploitation ainsi qu'au moins une partie des fichiers exécutables et des fichiers de données précitées, et une seconde zone mémoire 133 destinée à stocker les données non permanentes du système. Lors d'une mise en route du système d'information, soit logicielle (soft reboot) soit par mise sous tension (hard reboot), le système d'exploitation et tous ou certains des fichiers exécutables sont chargés dans la zone 131 de la mémoire volatile 130 par le programme de lancement 111. A chaque arrêt du système d'information, le contenu de la mémoire volatile 130 est effacé. De cette manière, l'intégrité des logiciels hébergés par le système d'information est garantie et l'état de départ de ce dernier est parfaitement défini. Cette situation est à distinguer soigneusement d'un système BIOS présent dans la mémoire morte d'une carte mère, d'une carte vidéo ou réseau d'un ordinateur et s'exécutant lors de son démarrage. En effet, dans ces cas, le BIOS ne joue que le rôle d'une amorce : il se contente de déclarer les disques, de configurer les composants et de rechercher un système d'exploitation avant de le lancer. Classiquement, le système d'exploitation est simplement stocké sur un disque dur. Au contraire, selon le présent mode de réalisation de l'invention, le système d'exploitation 121, tous les fichiers exécutables 123 et, le cas échéant, tous les fichiers de données permanentes 125 sont stockés dans la mémoire non-réinscriptible 120.30 La Fig. 2 illustre un second mode de réalisation de l'invention, dans lequel les systèmes d'information 100 sont reliés à un réseau embarqué 200, par exemple un réseau AFDX. A la différence du premier mode de réalisation, les systèmes d'information ne stockent pas individuellement leurs systèmes d'exploitation, leurs fichiers exécutables et, le cas échéant, leurs fichiers de données permanentes. Tous ces fichiers sont stockés dans une mémoire de masse non réinscriptible 160 d'au moins un serveur de fichiers 170. De préférence, plusieurs serveurs 170 sont prévus dans le réseau, selon une architecture distribuée, de manière à accélérer les transferts de fichiers. Avantageusement, à chaque serveur de fichiers 170 correspond au moins un serveur miroir 170m permettant de suppléer à une éventuelle défaillance du premier ou à celle d'un élément du réseau (par exemple d'un commutateur SW). Lors de l'initialisation (par activation logicielle ou par mise sous tension) d'un système d'information 100, un programme de lancement, résidant dans une mémoire locale non réinscriptible 110, transmet au serveur 170 qui lui est affecté une requête de transfert de fichiers. Ces fichiers comprennent notamment le système d'exploitation, les fichiers exécutables et leurs données permanentes associées. Selon une variante de réalisation indiquée en pointillés, le système d'exploitation est résident dans une mémoire locale non-réinscriptible 120, de sorte que seuls les fichiers exécutables et les fichiers de données permanentes sont transférés via le réseau. Avantageusement, le transfert de fichiers est effectué en mode sécurisé par chiffrement, par exemple selon le protocole FTPS (File Transfer Protocol over SSL), la vérification de l'intégrité des fichiers chiffrés reçus étant prise en charge par le programme de lancement. En cas d'erreur due à une défaillance du serveur ou du réseau (par exemple d'un commutateur), le programme de lancement bascule automatiquement sur le serveur miroir. Ce second mode de réalisation présente notamment l'avantage d'une mise en commun de certains fichiers entre systèmes d'information ainsi que d'une plus grande facilité de maintenance. Selon un exemple d'application, le réseau 200 est celui d'un système NSS (Network Server System) tel que défini dans la norme ARINC 763 et le serveur de fichiers 150 est une unité NSU (Network Server Unit). La Fig. 3 illustre une utilisation du système selon l'invention. Il sera ici fait abstraction des différences entre les premier et second modes de réalisation, le principe d'opération étant le même dans les deux cas. La réinitialisation d'un système d'information peut être réalisée par une opération de mise hors tension suivie d'une mise sous tension, l'actionnement d'un bouton d'initialisation (interruption matérielle), voire une interruption logicielle (combinaison de touches sur un clavier). Cette réinitialisation peut être effectuée sur survenance d'un incident de fonctionnement ou systématiquement à chaque atterrissage de l'avion. De préférence, une réinitialisation systématique intervient après les opérations de maintenance au sol, comme indiqué en Fig. 3. La phase 180 correspond à l'atterrissage de l'avion. En 181, on débute les opérations de maintenance. Celles-ci comportent notamment des accès au réseau embarqué, incluant notamment des transferts de données entre le terminal de maintenance et les systèmes d'information, classiquement selon un protocole défini dans la norme ARINC 615. En 182, on termine les opérations de maintenance. Tous les accès au réseau sont alors physiquement fermés, de sorte que ce dernier est isolé de l'extérieur. En 183, on réinitialise tous les systèmes d'information par arrêt-remise sous tension, pression sur bouton de reboot, activation logicielle. En 184, après réinitialisation, le système est dans une configuration nominale, définie de manière univoque par les fichiers exécutables et les fichiers de données permanentes stockés dans les mémoires non réinscriptibles 120 et/ou 160. L'aéronef est alors prêt pour démarrer un nouveau cycle d'exploitation en 185.25 REVENDICATIONS 1. Système d'information embarqué, comprenant : - une unité centrale (140) ; - une première mémoire non réinscriptible (110) contenant un programme de lancement (111) ; - une mémoire volatile (130) ; caractérisé en ce qu'il comprend en outre - une seconde mémoire non réinscriptible (120) contenant un système d'exploitation (121) ainsi qu'un ensemble de fichiers exécutables (123), ledit programme de lancement étant adapté à charger le système d'exploitation et au moins une partie des 15 fichiers exécutables dans la mémoire volatile lorsque le système d'information embarqué est initialisé. 2. Système d'information embarqué selon la revendication 1, caractérisé en ce que ladite seconde 20 mémoire non réinscriptible contient également tous les fichiers de données permanentes (125) nécessaires à l'exécution desdits fichiers exécutables par ladite unité centrale. 25 3. Système d'information embarqué selon la revendication 2, caractérisé en ce que le programme de lancement est adapté à charger lesdits fichiers de données permanentes dans la mémoire vive lorsque ledit système embarqué est initialisé. 10 30 4. Système d'information embarqué selon l'une des revendications précédentes, caractérisé en ce que la première mémoire non réinscriptible est une mémoire ROM. 5. Système embarqué selon l'une des revendications précédentes, caractérisé en ce que la seconde mémoire non réinscriptible est un disque dur verrouillé en lecture seule, une mémoire flash verrouillée en lecture seule, un CD-ROM ou un DVD. 6. Système en réseau comprenant une pluralité de systèmes d'information embarqués, chacun étant piloté par un logiciel pour réaliser une fonction prédéterminée et comprenant une unité centrale (140), une première mémoire non réinscriptible (110) contenant un programme de lancement ainsi qu'une mémoire volatile (130), ledit système en réseau étant caractérisé en ce qu'il comprend en outre : une pluralité de serveurs de fichiers (170), chaque serveur comprenant une mémoire de masse non-réinscriptible (160) ; - un réseau embarqué (200) auquel sont connectés lesdits systèmes embarqués et lesdits serveurs de fichiers ; et en ce que, pour au moins l'un desdits systèmes embarqués, le programme de lancement est adapté, à chaque initialisation, à télécharger à partir d'au moins l'un desdits serveurs, un système d'exploitation et/ou un/des fichier(s) exécutable(s) et à le/les stocker dans ladite mémoire volatile. 7. Système en réseau selon la revendication 6, caractérisé en ce qu'au moins l'un desdits systèmes d'information embarqués comprend une second mémoire non réinscriptible dans laquelle est stocké ledit système d'exploitation. 8. Système en réseau selon la revendication 6 ou 7, caractérisé en ce qu'il comprend au moins deux serveurs de fichiers (170, 170m) dont les mémoires de masse respectives contiennent des fichiers identiques. 9. Système en réseau selon l'une des revendications 6 à 8, caractérisé en ce que le téléchargement de fichiers à partir desdits serveurs est effectué selon un protocole de transfert de fichier sécurisé. 10. Aéronef comprenant un système d'information embarqué selon l'une des revendications 1 à 5, ou un système en réseau selon l'une des revendications 6 à 9.