Brevet FR2718863A1 — publié le 19951020

PROCEDE DESTINE A VERIFIER A DISTANCE LA CONFORMITE D'UN LOGICIEL DESCRIPTION Domaine technique La présente invention concerne un procédé destiné à vérifier à distance la conformité d'un logiciel implanté dans une mémoire d'un équipement 1o distant, placé dans un environnement public, à une version de base de ce même logiciel implantée dans une mémoire d'un équipement central. Etat de la technique antérieure Dans le domaine des services pouvant être rendus dans un environnement public, certains équipements distants, comme des publiphones ou des distributeurs de banque, utilisent des logiciels, implantés dans des mémoires, leur permettant de faire évoluer les services qu'ils rendent en fonction des besoins nouveaux des utilisateurs. Ceci conduit à la mise en place périodique de nouvelles versions logicielles destinées à répondre à ces évolutions. Ces logiciels, une fois présents dans les mémoires mortes de ces équipements extérieurs, sont soumis à une menace: les mémoires peuvent être volées puis remises en place avec des logiciels altérés. Il convient donc d'rtre capable de pouvoir vérifier à distance la conformité de ces versions logicielles à des versions de référence stockées dans un serveur centralisé relié aux équipements distants. Les documents de rart connu décrivent des procédés permettant de vérifier à distance que les logiciels implantés dans ces équipements distants sont toujours présents, et donc de vérifier rabsence d'un accident tel qu'un effacement ou une altération de ces logkiciels. L'équipement distant renvoie une information qui est le résultat d'un calcul et qui, lorsque le logiciel ne change pas, reste toujours la même. Ainsi, au cours de la vie de ces logiciels, un serveur centralisé, lors de cycles de scrutation réguliers, va contrôler systématiquement la conformité de chacun des logiciels présents dans chacun de ces équipements distants. A rheure actuelle, ce type de vérification existe partiellement pour le publiphone mais il ne porte que sur le code produit (type de publiphone) et le statut (logiciel présent, absent ou erroné). L'inconvénient principal d'un tel système de contrôle par émission vers le serveur crd'un champ fixe comme le code produit et le statut du publiphone est, qu'à chaque cycle de scrutation, les informations émises par le publiphone sont toujours identiques et donc une simple écoute de la ligne de io transmission entre le publiphone et le serveur permet crobtenir ces informations, laissant ainsi la possibilité à un fraudeur d'implanter un logiciel différent de celui téléchargé par le serveur et d'émettre ensuite des informations de contrôle valides lors des demandes de contrôle envoyées par le serveur. De manière à permettre une protection contre toute activité frauduleuse, rinvention a pour objet un procédé de vérification à distance d'au moins un logiciel, procédé qui est tel que les informations envoyées par un équipement distant vers un équipement central, ou Oserveur", soient différentes à chaque contrôle, et ce pour une même version de logiciel. ExDosé de rinvention La présente invention concerne un procédé de vérification à distance de la conformité d'au moins un logiciel implanté dans une mémoire crd'au moins un équipement distant, placé dans un environnement public, à une version de base de ce logiciel implantée dans la mémoire d'un équipement central, pouvant communiquer avec chaque équipement distant au travers d'un réseau de communication, caractérisé en ce qu'il comprend les étapes suivantes: - une étape d'émission d'un nombre aléatoire par réquipement central vers cet équipement distant, dans lequel ce nombre est juxtaposé au logiciel pour obtenir un premier fichier, dans lequel une fonction est appliquée à ce premier fichier pour obtenir une premier résultat et dans lequel ce premier résultat est transmis à l'équipement central; - une étape de réception de ce premier résultat par l'équipement central; - une étape de juxtaposition du nombre aléatoire et du logiciel de référence, crobtention d'un second fichier, d'application de la fonction à ce second fichier et crobtention crd'un second résultat; -une étape de vérification de la conformité du logiciel au logiciel de référence par rléquipement central, en effectuant la comparaison des deux résultats. Du fait de la non-reproductibilité du résultat envoyé de réquipement distant vers l'équipement central, d'une fois sur rautre, le procédé selon rinvention permet d'obtenir une protection contre toute activité frauduleuse. Avantageusement le nombre aléatoire est placé en début du premier fichier, et en début du second fichier. Avantageusement les différentes étapes de ces procédés sont réalisées périodiquement lors de cycles de scrutation régurmrs. Dans une réalisation avantageuse le réseau de communication est le réseau téléphonique. Brève description des dessins - La figure 1 illustre un système dcréquipements distants reliés à un équipement central par un réseau de communication; - la figure 2 illustre le procédé selon rinvention. ExDosé détaillé de modes de réalisation Sur la figure 1 sont représentés deux ensembles: un équipement central 10, ou serveur, et des équipements distants 11. Le serveur est relié à ces équipements distants 11 par rintermédiaire d'un réseau de communication 12, par exemple le réseau téléphonique. Le premier ensemble, à savoir le serveur, détient des moyens M1 de calcul de nombre A non reproductible et des moyens M2 de calcul d'une fonction de condensation f qui est une fonction informatique associée à un fichier de champs d'éléments binaires de longueur déterminée. Il détient également une copie de référence du logiciel L1 que ron souhaite contrôler, soit L2. En général, cet ensemble est une partie du logiciel du serveur. Chaque équipement distant du deuxième ensemble renferme les mémes moyens M2 ainsi qu'un logiciel L1 en mémoire dont il convient de vérifier la validité. Dans le procédé selon rinvention: -rléquipemrent central émet un nombre non reproductible A (étape 20); - r'équipement distant reçoit ce nombre A (étape 21); - r'équipement distant juxtapose le nombre A reçu et le logiciel L1 dont le premier ensemble souhaite vérifier la validité et obtient un fichier F1 (étape 22); - rléquipement distant applique au fichier F1 une fonction de condensation f et trouve un résultat R1 (étape 23); - réquipement distant transmet le résultat R1 au premier ensemble (étape 24); - rléquipement central juxtapose le nombre A et le logiciel L2 (copie de référence correspondant au logiciel L1) et obtient un fichier F2 (étape 25); - réquipement central applique au fichier F2 la fonction f et trouve un résultat R2 (étape 26); - réquipement central reçoit le résultat R1 (étape 27); - rléquipement central compare R1 et R2 (étape 28); si ces résultats sont identiques, le logiciel L1 est déclaré conforme à la version de référence 12. Le fichier F1 est une suite d'informations (suite de zéros et de uns présents dans une certaine zone de mémoire, dont on ne connaît pas a priori la taille. La fonction de condensation f permet crobtenir un résultat R qui est un champ de longueur courte, alors que le logiciel L peut avoir plusieurs centaines de kilo-octets. Cette fonction f est telle que la moindre modification dans le logiciel se traduise par une modification dans le résultat Cette fonction de condensation f est une fonction qui à un message ou un fichier de longueur quelconque associe un champ R (ensemble de r bits) de longueur fixée restreinte (généralement 64 ou 128 bits) avec une dépendance forte de R vis-à- vis du message ou du fichier. Cette dépendance forte signifie qu'une modification, mêmne infime, du message ou du fichier (par exemple en changeant un bit, ou en retirant un bit) entraîine une modification complète du résultat R. De plus, la fonction f est telle qu'il est impossible de trouver deux fichiers différents ayant le même condensé (impossible au sens de informatiquement impossible"). En général les fonctions f procèdent de la façon suivante: on divise F en blocs M1.... Mp de longueurs déterminées, par exemple 64 bits. On utilise alors une fonction B qui, à deux blocs de 64 bits, associe un bloc de 64 bits. On condense crd'abord M1 et M2 pour obtenir un condensé M' puis on condense M' et M3 pour obtenir un condensé Mu, puis on condense Mu et M4.... et ainsi de suite jusqu'à Mp. Le dernier résultat est le condensé R. Il est donc important de placer r'aléa A au début du fichier, car ainsi tous les résultats intermédiaires M', Mr.... dépendent de A. Ainsi dans le procédé selon rinvention à chaque contrôle par l'équipement central de la présence d'un logiciel autorisé dans la mémoire de I'équipement distant, r'équipement central émet un nombre aléatoire A vers réquipement distant dont runité de traitement calcule le condensé du logiciel associé au nombre aléatoire fourni par rléquipemrent central et le transmet vers r'équipement central qui en vérifie la cohérence. Lors crd'un premier envoi du nombre A, celui-ci a une valeur A1, on obtient un fichier F1 et un résultat R1. Lors crun autre envoi du nombre A, celui-ci a une valeur A'1 * A1 on obtient un fichier F'1 et un résultat R'1 * R1. Les seuls logiciels résidant dans la mémoire morte (PROM) de l'équipement distant sont les suivants: - un logiciel du protocole d'échanges des informations entre réquipement central et réquipement distant (notamment le logiciel de téléchargeent); et -un logiciel de vérification de signature qui comprend le programme de calcul du condensé d'un fichier. En mémoire vive (RAM) de réquipement distant se trouve: - le logiciel chargé (L1) dans réquipement distant; et - le nombre aléatoire (A) reçu lors de la phase de contrôle par réquipement central. s Cette phase de contrôle est effectuée au cours des cycles de scrutation réguliers de réquipement central qui contrôle ainsi la validité du logiciel présent dans équipement distant REVENDICATIONS 1. Procédé de vérification à distance de la conformité d'au moins au logiciel (L1) implanté dans une mémoire d'un équipement distant (11), placé dans un environnement public, à une version de base de ce logiciel (L2) implantée dans la mémoire d'un équipement central (10) pouvant communiquer avec chaque équipement local au travers d'un réseau (12) de communication, caractérisé en ce qu'il comprend les étapes suivantes: une étape d'émission d'un nombre aléatoire (A) par réquipement central vers cet équipement local, dans lequel ce nombre (A) est juxtaposé au logiciel (L1) pour obtenir un premier fichier (F1), dans lequel une fonction (f) est appliquée à ce premier fichier (F1) pour obtenir un premier résultat (R1), et dans lequel ce premier résultat (R1) est transmis à l'équipement central; - une étape de réception de ce premier résultat (R1) par rléquipement central; - une étape de juxtaposition du nombre aléatoire (A) et du logiciel de référence, d'obtention d'un second fichier (F2), d'application de la fonction (f) à ce second fichier (F2) et d'obtention d'un second résultat (R2); - une étape de vérification de la conformité du logiciel (L1) au logiciel de référence (L2) par rléquipement central en effectuant la comparaison des deux résultats (R1, R2). 2. Procédé selon la revendication 1, caractérisé en ce que le nombre aléatoire (A) est placé en début du premier fichier (F1) et en début du second fichier (F2). 3. Procédé selon la revendication 1, caractérisé en ce que les différentes étapes de ce procédé sont réalisées périodiquement lors de cycles de scrutation réguliers. 4. Procédé selon la revendication 1, caractérisé en ce que le réseau de communication est le réseau téléphonique