FR 3071079 A1 20190315 FR 1758290 A 20170908 Procédé de transmission et de vérification de validité de données de configuration dans un système électronique, système électronique et produit programme d'ordinateur associés La présente invention concerne un procédé de transmission et de vérification de validité de données de configuration dans un système électronique, un système électronique et un produit programme d'ordinateur associés. Dans l'état de la technique, il est connu d'utiliser des systèmes électroniques à stockage centralisé de données de configuration. Les données de configuration sont destinées à différents modules ou encore cartes électroniques constituant ces systèmes. Parmi ces systèmes, on peut notamment citer certains équipements embarqués à bord d'un véhicule ferroviaire, comme par exemple une console de communication avec le conducteur du véhicule ferroviaire, un équipement de traction, un équipement réseau, un équipement qui actionne des sorties ou lit des entrées. On peut notamment aussi citer certains équipements au sol le long des voies d'un système ferroviaire, notamment de signalisation, comme par exemple un équipement qui s'interface avec des objets à la voie (feux de signalisation, aiguillage, passage à niveaux, circuit de voies, balises). Les données de configuration sont nécessaires pour le fonctionnement des modules ou des cartes électroniques correspondants, et sont stockées dans un module de stockage centralisé prévu à cet effet. Lorsqu'un système électronique à stockage centralisé de données de configuration présente un niveau de criticité élevé, les données de configuration sont stockées sous la forme d'une structure de données sécurisée. Cette structure est associée à une signature qui permet de vérifier la validité des données de configuration correspondantes. La vérification de la validité des données comprend notamment la vérification de l'authenticité, de l'intégrité et de la cohérence de ces données. De manière générale, la validité des données de configuration est vérifiée à chaque démarrage du système électronique correspondant. En particulier, lors d'un tel démarrage, l'une des cartes électroniques du système électronique extrait du module de stockage l'ensemble des données de configuration et vérifie la validité de ces données. Lorsque la validité est vérifiée, ladite carte électronique transmet aux autres cartes électroniques les données de configuration correspondant à ces cartes. 2 À la réception des données de configuration correspondantes, chaque carte électronique stocke ces données dans sa mémoire interne et vérifie leur intégrité ainsi que leur cohérence. Le système électronique est opérationnel lorsque chaque carte a reçu, a vérifié et 5 a stocké les données de configuration correspondantes. On conçoit alors qu'une telle méthode de démarrage d'un système électronique à stockage centralisé de données de configuration est particulièrement lente et se trouve inadaptée lorsqu'il est nécessaire de faire souvent des redémarrages du système et/ou lorsque le système comporte un grand nombre de modules ou de cartes électroniques. 10 Ainsi, par exemple, la durée d'un démarrage d'un système électronique selon cette méthode peut prendre jusqu'à 30 minutes lorsque le système est constitué par exemple de 50 cartes électroniques. La présente invention a pour but de remédier à cet inconvénient de l'état de la technique en proposant un système électronique et un procédé de transmission et de 15 vérification de validité de données de configuration mis en oeuvre par ce système, permettant de réduire considérablement le temps de redémarrage d'un tel système. À cet effet, l'invention a pour objet un procédé de transmission et de vérification de validité de données de configuration dans un système électronique à stockage centralisé des données de configuration, le système électronique comportant une pluralité de cartes 20 électroniques aptes à mettre en oeuvre le fonctionnement du système électronique en utilisant des données de configuration propres à chacune de ces cartes et un module de stockage centralisé apte à stocker de manière centralisée les données de configuration pour l'ensemble des cartes électroniques, chaque carte électronique comprenant une mémoire interne propre à mémoriser une variable signature et des variables de 25 configuration. Le procédé comprend les étapes suivantes : - la génération d'une signature élémentaire pour chacune des cartes électroniques à partir des données de configuration mémorisées dans le module de stockage centralisé; - la transmission à chaque carte électronique de la signature élémentaire propre à 30 cette carte ; - le calcul par chaque carte électronique de la variable signature en fonction des variables de configuration mémorisées dans la mémoire interne de cette carte électronique ; - la vérification par chaque carte électronique de la validité des variables de configuration mémorisées dans la mémoire interne de cette carte en utilisant la signature élémentaire reçue et la variable signature ; 3 et le procédé comprend l'étape suivante mise en oeuvre pour chaque carte électronique, pour laquelle lors de l'étape de vérification de la validité des variables de configuration, les variables de configuration sont considérées invalides : - la récupération des données de configuration propres à cette carte et la 5 modification des variables de configuration à partir des données de configuration récupérées. Suivant d'autres aspects avantageux de l'invention, le procédé comprend une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les combinaisons techniquement possibles : 10 - chaque signature élémentaire est générée par une seule des cartes électroniques en utilisant les données de configuration propres à chacune des cartes électroniques mémorisées dans le module de stockage centralisé ; - les données de configuration sont stockées sous la forme d'une structure de données sécurisée associée à une signature globale ; 15 - le procédé comprenant, précédemment à l'étape de génération, l'étape de vérification de la validité des données de configuration de la structure de données en utilisant la signature globale associée à cette structure, si la validité des données de configuration est vérifiée, l'étape de génération est réalisée et l'étape de transmission comprend également la transmission de la signature globale à chaque carte électronique ; 20 - l'ensemble des signatures élémentaires et la signature globale sont stockées dans la mémoire interne de l'une des cartes électroniques, dite carte principale ; - les étapes de vérification de la validité des données de configuration et de génération d'une signature élémentaire pour chacune des cartes électroniques sont mises en oeuvre par la carte principale ; 25 - lors de l'étape de récupération des données de configuration, une vérification que les données de configuration récupérées correspondent à la signature élémentaire est effectuée, puis les variables de configuration sont modifiées à partir des données de configuration récupérées de sorte à stocker en mémoire interne de ladite carte les données de configuration récupérées ; 30 - le procédé comprend, pour chaque carte électronique, pour laquelle lors de l'étape de vérification de la validité des variables de configuration, les variables de configuration sont considérées valides : + la récupération par la carte électronique des variables de configuration depuis la mémoire interne de cette carte ; 35 - l'étape de récupération des données de configuration comprend en outre : 4 + la récupération par la carte électronique correspondante des variables de configuration depuis la mémoire interne de cette carte ; - le procédé comprend les étapes suivantes : + le changement d'une carte électronique dans le système électronique par 5 une nouvelle carte électronique ; + la génération d'une signature élémentaire pour au moins la nouvelle carte électronique à partir des données de configuration mémorisées dans le module de stockage centralisé ; + la transmission au moins à la nouvelle carte électronique de la signature 10 élémentaire ; et + la réalisation de l'étape de vérification des variables de configuration pour la nouvelle carte électronique. L'invention a également pour objet un produit programme d'ordinateur comportant des instructions logicielles qui, lorsque mises en oeuvre par un équipement informatique, 15 mettent en oeuvre le procédé tel que défini ci-dessus. L'invention a également pour objet un système électronique à stockage centralisé des données de configuration, le système électronique comportant une pluralité de cartes électroniques aptes à mettre en oeuvre le fonctionnement du système électronique en utilisant des données de configuration propres à chacune de ces cartes et un module de 20 stockage centralisé apte à stocker de manière centralisée les données de configuration pour l'ensemble des cartes électroniques, chaque carte électronique comprenant une mémoire interne propre à mémoriser une variable signature et des variables de configuration ; le système électronique comportant des moyens mettant en oeuvre le procédé tel que précédemment décrit. 25 Ces caractéristiques et avantages de l'invention apparaitront à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels : - la figure 1 est une vue schématique d'un système électronique selon l'invention, le système comportant notamment un module de stockage centralisé ; 30 - la figure 2 est une vue schématique d'une structure de données stockée dans le module de stockage de la figure 1 ; et - la figure 3 est un organigramme d'un procédé de transmission et de vérification de validité de données de configuration dans le système électronique de la figure 1. Le système électronique 10 de la figure 1 comporte une pluralité de cartes 35 électroniques 12A à 12N mettant en oeuvre le fonctionnement du système 10, et un module de stockage centralisé 14. 5 Le système électronique 10 est notamment utilisable dans le domaine ferroviaire et présente par exemple un équipement embarqué à bord d'un véhicule ferroviaire, tel qu'une console de communication avec le conducteur du véhicule. Chaque carte électronique 12A à 12N fournit un service au système électronique 5 10 en utilisant des données de configuration propres à cette carte. Autrement dit, les données de configuration définissent le service fourni par la carte électronique 12A à 12N correspondante en réponse à de différents évènements survenus dans le système 10. Chaque carte électronique 12A à 12N se présente par exemple sous la forme d'un circuit logique programmable comportant notamment une mémoire interne M. Un tel 10 circuit logique programmable est par exemple de type FPGA (de l'anglais « Field- Programmable Gate Array »). La mémoire interne M peut avoir la propriété de garder les informations stockées même quand elle n'est pas alimentée électriquement. La mémoire interne est propre à mémoriser une variable signature et des variables 15 de configuration. La variable de signature correspond à une signature élémentaire des variables de configuration. Les variables de configuration correspondent à des données configuration récupérées par la carte électronique 12A à 12N comme cela sera expliqué par la suite. 20 Selon une variante de réalisation, au moins certaines des cartes électroniques se présentent sous une forme plus complexe, par exemple sous la forme d'un minicalculateur comportant notamment un processeur et une mémoire interne. Selon une variante de réalisation, au moins certaines des cartes électroniques sont remplaçables. Dans ce cas, le système électronique 10 est dit modulable. 25 Selon une variante de réalisation, au moins certaines des cartes électroniques sont remplaçables à chaud sans perturber le fonctionnement des autres cartes du système (excepté les communications/service avec la carte en cours de remplacement). Dans ce cas, le système électronique 10 est dit modulable à chaud ou en fonctionnement. Les données de configuration de l'ensemble des cartes 12A à 12N sont stockées 30 au moins initialement dans le module de stockage centralisé 14 sous la forme d'une structure de données 20 sécurisée qui est illustrée plus en détail sur la figure 2. Ainsi, en référence à cette figure 2, la structure de données 20 comprend une pluralité de blocs de données de configuration 22A à 22N associés respectivement aux cartes électroniques 12A à 12N. 35 Chacun de ces blocs de données 22A à 22N comporte des données de configuration propres à la carte électronique 12A à 12N associée à ce bloc. 6 La structure de données 20 est associée à une signature globale 24 permettant de vérifier la validité des données contenues dans cette structure. La signature globale 24 est par exemple stockée dans le module de stockage centralisé 14 avec la structure de données 20. 5 La signature globale 24 est par exemple déterminée à partir des données contenues dans la structure 20 selon des méthodes connues en soi. Les données de configuration sont modifiables par exemple par un utilisateur afin de modifier le fonctionnement du système embarqué 10. Ainsi, dans le précédent exemple de la console de communication avec le conducteur, la modification des 10 données de configuration permet par exemple d'activer de nouveaux messages pour le conducteur. Lorsque les données de configuration sont modifiées, la signature globale 24 est également modifiée. Le module de stockage centralisé 14 est relié à l'une des cartes électroniques 12A 15 à 12N, par exemple à la carte électronique 12A, appelée par la suite carte principale. La carte principale 12A permet de mettre en oeuvre un procédé de transmission et de vérification de validité des données de configuration issues du module de stockage centralisé 14 qui sera expliqué par la suite en référence à la figure 3 illustrant un organigramme de ses étapes. 20 En particulier, le procédé de transmission et de vérification de validité des données de configuration correspond à une phase de démarrage PR du système électronique 10. Cette phase de démarrage PR est alors mise en oeuvre au démarrage initial du système électronique 10 et à chaque redémarrage suivant. Lors de l'étape initiale 110 de la phase de démarrage PR, le système électronique 25 10 reçoit une commande de démarrage initial ou de redémarrage. Il est à noter que la commande reçue n'indique pas si le démarrage est initial ou avec des données de configuration modifiées ou non. Le système électronique 10 active alors le fonctionnement de l'ensemble des cartes électroniques 12A à 12N et notamment le fonctionnement de la carte principale 30 12A. Lors de l'étape 120 suivante, la carte principale 12A extrait du module de stockage 14 la structure de données 20. Puis, la carte principale 12A vérifie la validité des données de configuration issues de la structure de données 20. 35 La vérification de la validité des données de configuration comprend notamment la vérification de l'authenticité, de l'intégrité et de la cohérence de ces données. 7 Pour vérifier la validité, la carte principale 12A génère par exemple à partir des données de configuration reçues, une signature globale SG en utilisant les mêmes méthodes que celles utilisées pour déterminer la signature globale 24 associée à la structure de données 20. 5 Puis, la carte principale 12A compare la signature globale générée SG avec la signature 24 associée à la structure de données 20. Lorsque les deux signatures coïncident, la carte principale 12A passe à l'étape 130. Dans le cas contraire, la carte principale 12A passe à l'étape 135 lors de laquelle elle génère un message d'erreur destiné par exemple à l'utilisateur et interrompt l'exécution 10 de la phase de démarrage PR. Lors de l'étape 130, la carte principale 12A génère une signature élémentaire SE pour chacune des cartes électroniques 12A à 12N. Une telle signature élémentaire SE pour une carte électronique 12A à 12N donnée est par exemple générée à partir des données de configuration propres à cette carte 15 électronique 12A à 12N, en utilisant par exemple des méthodes analogues à celles utilisées pour générer la signature globale SG. Lors de l'étape 140 suivante, la carte principale 12A stocke les signatures élémentaires SE générées et la signature globale SG générée, dans sa mémoire interne M. 20 Puis, lors de la même étape 140, la carte principale 12A met à disposition de chaque carte électronique 12A à 12N les signatures élémentaires SE générées et les données de configuration propres à cette carte 12A à 12N. Puis, chaque carte électronique 12A à 12N récupère la signature élémentaire qui lui est associée par la carte principale 12A. 25 Lors de l'étape 145 suivante, chaque carte 12A à 12N calcule sa signature élémentaire SE à partir des variables de configuration mémorisées dans sa mémoire interne M, en utilisant par exemple des méthodes analogues à celles utilisées pour générer la signature globale SG, et fixe la variable de signature égale à la valeur calculée de la signature élémentaire 30 Lors de l'étape 150 suivante, chaque carte électronique 12A à 12N compare la signature élémentaire SE récupérée avec la variable signature qu'elle a dans sa mémoire interne M (à noter que si aucune information a été stockée dans cette mémoire M au préalable la carte se comportera comme si la variable signature est différente et que les données ne sont pas valides). 8 Puis, chaque carte électronique 12A à 12N vérifie la validité des variables de configuration stockées dans sa mémoire interne M en utilisant la signature élémentaire SE récupérée et la variable signature. Pour vérifier la validité des variables de configuration correspondantes, chaque 5 carte électronique 12A à 12N compare la variable signature avec la signature élémentaire SE récupérée. Si la signature élémentaire SE coïncide avec la variable signature, la carte électronique 12A à 12N correspondante valide les variables de configuration et la carte 12A à 12N passe à l'étape 180. Dans le cas contraire, la carte électronique 12A à 12N 10 correspondante passe à l'étape 160. Lors de l'étape 180, la carte 12A à 12N correspondante récupère les variables de configuration depuis sa mémoire interne M et, par exemple, met en place ces variables pour être opérationnelle. Lors de l'étape 160, la carte 12A à 12N récupère les données de configuration qui 15 lui sont associées et sont mises à disposition par la carte principale 12A, calcule la signature SE des données reçues et vérifie qu'elle coïncide avec la signature SE mise à disposition. Puis, la carte 12A à 12N correspondante fixe la variable de signature égale à la signature élémentaire SE calculée ou récupérée et les variables de configuration égales 20 aux données de configurations récupérées. À la fin de cette étape 160, la carte 12A à 12N correspondante récupère les variables de configuration depuis sa mémoire interne et, par exemple, met en place ces variables pour être opérationnelle. Ainsi, après les étapes 160 et 180, chaque carte 12A à 12N possède ses données 25 de configuration et leur signature SE et a une copie des données de configuration et de leur signature dans sa mémoire M. L'étape 190 est l'étape finale de la phase de démarrage PR à l'issue de laquelle, le système électronique 20 est opérationnel. Avantageusement, à la suite de l'étape 180, de manière périodique, les cartes 12B 30 à 12N vérifient que les données de configuration utilisées sont bien autorisées. Pour cela, elles vérifient que la signature élémentaire SE utilisée, c'est-à-dire la variable signature, est toujours la même que celle mise à disposition par la carte principale 12A. Si cela n'est pas le cas, la carte génère un message d'erreur destiné par exemple à l'utilisateur et interrompt l'exécution ou retourne à l'étape 160 pour récupérer les 35 nouvelles données de configuration (ce choix dépend de la fonction fournie, par exemple sur une fonction de sécurité le produit se mettra dans un état sûr). 9 Avantageusement, le procédé simplifie considérablement le changement d'une carte électronique 12B, ... 12N dans le système électronique 10 par une nouvelle carte électronique. Dans ce cas, le procédé comprend en outre les étapes suivantes : 5 - le changement d'une carte électronique 12B, ... 12N dans le système électronique 10 par une nouvelle carte électronique ; - la génération d'une signature élémentaire SE pour au moins la nouvelle carte électronique à partir des données de configuration mémorisées dans le module de stockage centralisé 14 ; 10 - la transmission au moins à la nouvelle carte électronique de la signature élémentaire SE ; et - la réalisation de l'étape de vérification 150 des variables de configuration pour la nouvelle carte électronique. On conçoit alors que l'invention présente un certain nombre d'avantages. 15 En effet, le procédé de transmission et de vérification de validité de données de configuration selon l'invention permet d'effectuer un redémarrage du système électronique de façon particulièrement rapide car seules les données non présentes seront envoyées. En particulier, lors de la phase de redémarrage du système électronique 10, les 20 données de configuration, lorsqu'elles sont inchangées, ne sont pas transmises à nouveau aux cartes électroniques correspondantes. La validité de ces données est vérifiée en utilisant les signatures élémentaires correspondantes qui sont transmises aux cartes électroniques correspondantes de façon particulièrement rapide. 25 La validité de ces données est vérifiée périodiquement en utilisant les signatures élémentaires correspondantes ceci permet de s'assurer qu'un changement de configuration est bien appliqué (ou que les actions appropriées seront effectuées). Ceci permet alors de réduire considérablement le temps d'exécution REVENDICATIONS1.- Procédé de transmission et de vérification de validité de données de configuration dans un système électronique (10) à stockage centralisé des données de configuration, le système électronique comportant une pluralité de cartes électroniques (12A,...,12N) aptes à mettre en oeuvre le fonctionnement du système électronique (10) en utilisant des données de configuration propres à chacune de ces cartes (12A,...,12N) et un module de stockage centralisé (14) apte à stocker de manière centralisée les données de configuration pour l'ensemble des cartes électroniques (12A,...,12N), chaque carte électronique (12A,...,12N) comprenant une mémoire interne propre à mémoriser une variable signature et des variables de configuration; le procédé comprenant les étapes suivantes : - la génération (130) d'une signature élémentaire (SE) pour chacune des cartes électroniques (12A,...,12N) à partir des données de configuration mémorisées dans le module de stockage centralisé (14) ; - la transmission (140) à chaque carte électronique (12A,...,12N) de la signature élémentaire (SE) propre à cette carte (12A,...,12N) ; - le calcul (145) par chaque carte électronique (12A,...,12N) de la variable signature en fonction des variables de configuration mémorisées dans la mémoire interne de cette carte électronique (12A,...,12N) ; - la vérification (150) par chaque carte électronique (12A,...,12N) de la validité des variables de configuration mémorisées dans la mémoire interne de cette carte (12A,...,12N) en utilisant la signature élémentaire (SE) reçue et la variable signature ; et le procédé comprenant l'étape suivante mise en oeuvre pour chaque carte électronique (12A,...,12N), pour laquelle lors de l'étape de vérification (150) de la validité des variables de configuration les variables de configuration sont considérées invalides : - la récupération (160) des données de configuration propres à cette carte (12A,...,12N) et la modification des variables de configuration à partir des données de configuration récupérées. 2.- Procédé selon la revendication 1, dans lequel chaque signature élémentaire (SE) est générée par une seule des cartes électroniques (12A,...,12N) en utilisant les données de configuration propres à chacune des cartes électroniques (12A,...,12N) mémorisées dans le module de stockage centralisé (14). 11 3.- Procédé selon la revendication 1 ou 2, dans lequel les données de configuration sont stockées sous la forme d'une structure de données sécurisée (20) associée à une signature globale (24). 5 4. Procédé selon la revendication 3, le procédé comprenant, précédemment à l'étape de génération (130), l'étape suivante : - la vérification (120) de la validité des données de configuration de la structure de données (20) en utilisant la signature globale (24) associée à cette structure (20) ; et si la validité des données de configuration est vérifiée, l'étape de génération 10 (130) est réalisée. 5.- Procédé selon la revendication 4, dans lequel à la suite de l'étape de génération, l'ensemble des signatures élémentaires (SE) et la signature globale (24) sont stockées dans la mémoire interne de l'une des cartes électroniques (12A,...,12N), dite 15 carte principale (12A). 6.- Procédé selon la revendication 5, dans lequel les étapes de vérification (120) de la validité des données de configuration et de génération (130) d'une signature élémentaire (SE) pour chacune des cartes électroniques (12A,...,12N) sont mises en 20 oeuvre par la carte principale (12A). 7. Procédé selon l'une quelconque des revendications précédentes, dans lequel lors de l'étape de récupération (160) des données de configuration, une vérification que les données de configuration récupérées correspondent à la signature élémentaire (SE) 25 est effectuée, puis les variables de configuration sont modifiées à partir des données de configuration récupérées de sorte à stocker en mémoire interne de ladite carte (12A, ... 12N) les données de configuration récupérées. 8. Procédé selon l'une quelconque des revendications précédentes, dans lequel le 30 procédé comprend, pour chaque carte électronique (12A,...,12N), pour laquelle lors de l'étape de vérification (150) de la validité des variables de configuration, les variables de configuration sont considérées valides : - la récupération (180) par la carte électronique (12A, ..., 12N) des variables de configuration depuis la mémoire interne de cette carte (12A, ... 12N). 35 12 9. Procédé selon l'une quelconque des revendications précédentes, dans lequel l'étape de récupération (160) des données de configuration comprend en outre : - la récupération par la carte électronique (12A, ..., 12N) correspondante des variables de configuration depuis la mémoire interne de cette carte (12A, ... 12N). 5 10. - Procédé selon l'une quelconque des revendications précédentes, dans lequel le procédé comprend les étapes suivantes : - le changement d'une carte électronique (12B, ... 12N) dans le système électronique (10) par une nouvelle carte électronique ; 10 - la génération d'une signature élémentaire (SE) pour au moins la nouvelle carte électronique à partir des données de configuration mémorisées dans le module de stockage centralisé (14) ; - la transmission au moins à la nouvelle carte électronique de la signature élémentaire (SE) ; et 15 - la réalisation de l'étape de vérification (150) des variables de configuration pour la nouvelle carte électronique. 11.- Produit programme d'ordinateur comportant des instructions logicielles qui, lorsque mises en oeuvre par un équipement informatique, mettent en oeuvre le procédé 20 selon l'une quelconque des revendications précédentes. 12.- Système électronique (10) à stockage centralisé des données de configuration, le système électronique comportant une pluralité de cartes électroniques (12A,...,12N) aptes à mettre en oeuvre le fonctionnement du système électronique (10) en 25 utilisant des données de configuration propres à chacune de ces cartes (12A,...,12N) et un module de stockage centralisé (14) apte à stocker de manière centralisée les données de configuration pour l'ensemble des cartes électroniques (12A,...,12N), chaque carte électronique (12A,...,12N) comprenant une mémoire interne propre à mémoriser une variable signature et des variables de configuration ; 30 le système électronique (20) comportant des moyens mettant en oeuvre le procédé selon l'une quelconque des revendications 1 à 10.