FR 2876235 A1 20060407 FR 0510162 A 20051005 Système et méthode de mise à jour sécurisée de logiciels d'un dispositif distant La présente invention concerne une méthode et un système de mise à jour de logiciels. Les réalisations décrites concernent plus particulièrement la mise à jour sécurisée de logiciels dans un dispositif distant. L'invention trouve une application particulière dans les machines à affranchir. D'un point de vue historique, les fournisseurs de dispositifs à logiciels commandés à distance se sont toujours intéressés à la question de savoir comment traiter de manière rentable les dispositifs qui sont estimés posséder des logiciels contenant des erreurs ou des logiciels qui nécessitent une mise à niveau pour améliorer le fonctionnement ou la performance desdits dispositifs. Avec les dispositifs sur le terrain, le coût pour rappeler, reprogrammer et retourner les dispositifs aux clients pouvait être prohibitif, sans parler du fait que le client était privé du dispositif pendant une période de temps, en conclusion, le dispositif n'était donc pas mis à jour. Dans les dispositifs actuels plus récents, la capacité de télécharger le logiciel dans ledit dispositif est un mécanisme répandu pour fournir au client la version la plus actuelle du logiciel pour le dispositif concerné. Une des caractéristiques d'un tel système est le besoin de s'assurer que le dispositif est mis à jour de manière sécurisée et correcte, sinon le dispositif mis à jour ne 2876235 2 fonctionnerait pas correctement, nécessitant des procédures administratives pour corriger la tentative de mise à jour. La présente invention concerne un système et une méthode permettant de mettre à jour le logiciel du dispositif via un centre de service à distance. Le centre de service, lorsqu'il est contacté par le dispositif, procède à l'examen du logiciel du dispositif pour déterminer si une mise à jour est nécessaire suite à une révision qui a été effectuée sur la structure ou à un bogue qui a été trouvé et corrigé. Selon un mode préférentiel de réalisation, la méthode permettant de mettre à jour de manière sécurisée le logiciel dans le dispositif distant implique de copier dans une mémoire des parties sélectionnées du code de programme contenu dans le dispositif distant, de télécharger le logiciel dans le dispositif distant et, lorsqu'un téléchargement non réussi est détecté, de réinstaller les parties sélectionnées du code de programme. Selon ce mode de réalisation la méthode comporte en outre l'identification automatique du dispositif distant nécessitant une mise à jour du logiciel. Selon un aspect préférentiel de ce mode de réalisation la méthode comporte une étape de signature numérique du logiciel permettant l'identification spécifique dudit logiciel par le dispositif distant ainsi qu'un calcul d'une empreinte numérique du logiciel garantissant la sécurité de toute transaction de téléchargement. 2876235 3 L'invention comporte de même un système permettant la mise à jour sécurisée d'un logiciel dans un dispositif distant dans lequel un serveur fournit la mise à jour du logiciel au dispositif distant via un réseau de communication de données. Selon un mode de réalisation préférentiel le serveur est un centre de réinitialisation de machine à affranchir, le dispositif distant est une machine à affranchir, le serveur communiquant avec les machines à affranchir par l'intermédiaire d'un protocole ou standard de modulation. Les aspects ci-dessus et d'autres caractéristiques de la présente invention sont expliqués dans la description qui suit, en association avec les dessins qui l'accompagnent, sur lesquels: Fig. 1 montre un schéma fonctionnel d'un système adapté pour mettre en pratique l'invention; et Fig. 2 montre un dispositif distant approprié pour fonctionner dans 20 le système de Fig. 1. Fig. 1 montre un schéma fonctionnel d'un système approprié pour mettre en pratique l'invention divulguée dans le présent document. Bien que la présente invention soit décrite en faisant référence à la réalisation représentée sur les dessins, il faut bien comprendre que la présente invention peut être appliquée sous de nombreuses autres formes d'application. De plus, toute taille, toute forme ou tout type approprié d'éléments ou de matériels pourrait être utilisé. 2876235 4 Le système 100 est un système permettant de fournir des services, par exemple un système de fournisseur de services postaux. Le système 100 inclut un ou plusieurs dispositifs distants, par exemple des dispositifs produisant des empreintes ou des marquages, montrés sur la figure 1 sous la forme des machines à affranchir 1151... 115., et un centre de données à distance, montré généralement sous la forme d'un serveur 135. Une caractéristique de la présente invention est que le serveur 135 10 fournit aux dispositifs distants des mises à jour de logiciels. Dans une réalisation, le serveur 135 peut se connecter aux machines à affranchir 1151 115. sans fil. Dans une autre réalisation, la connexion peut être une connexion par câble. Le serveur 135 inclut généralement un processeur 105, une mémoire 110 et une base de données 130 permettant de stocker les informations. Le processeur 105 fonctionne généralement sous le contrôle des programmes stockés dans la mémoire 110 pour gérer les opérations du serveur 135. Le serveur 135 fournit généralement des mises à jour, des programmes qui permettent d'ajouter une fonctionnalité, des programmes de remplacement, des tables de données et d'autres données et informations aux dispositifs distants 1151 115n. De plus, le serveur 135 peut collecter des données provenant des dispositifs distants 1151 115n et fournit des services de comptabilité et d'information comptable. Le serveur 135 peut être couplé à un réseau de communication de données 120. Le réseau de communication de données 120 peut inclure n'importe quel réseau de communication approprié, par 2876235 5 exemple le Réseau Téléphonique Public Commuté, un réseau sans fil, un réseau câblé, un Réseau Local (LAN), un Réseau Etendu (WAN), un réseau privé virtuel, etc. Le serveur 135 peut communiquer avec les machines à affranchir 1151 115n en utilisant n'importe quel protocole ou standard de modulation approprié, par exemple X.25, ATM (Mode de Transfert Asynchrone), TCP-IP, V34, V90, etc. Lorsque le réseau de communication de données 120 est mis en place comme un réseau sans fil, il incorpore généralement une interface radio utilisant tout protocole de communication sans fil approprié ou signalant les techniques ou standards, par exernple TDMA (Accès multiple par répartition dans le temps), CDMA (Accès multiple par répartition en code), IEEE 802.11, profil Bluetooth, RF à courte fréquence, optique, tout standard de communication par satellite approprié, etc. Fig. 2 montre un schéma fonctionnel général d'un dispositif distant 115. Les dispositifs distants 1151 115n fournissent généralement des services à un ou plusieurs clients. Dans une réalisation, les dispositifs distants peuvent fournir des empreintes qui ont une valeur, par exemple l'affranchissement, des tickets autorisant l'admission à un événement ou permettant l'utilisation d'un service, etc. Le dispositif distant 115 peut inclure un port de communication 117 et un microprocesseur 118 permettant de réaliser les fonctions de comptabilité 160, 165, de commande et de traitement selon les programmes stockés dans un dispositif de stockage 119. Certaines de ces fonctions ou certains sous-ensembles de ces fonctions peuvent être groupés dans un périmètre sécurisé, comme par exemple un Dispositif de Sécurité Postale. 2876235 6 Le dispositif de stockage 119 stocke généralement un code de programme lisible par machine qui est adapté pour faire exécuter au microprocesseur 118 des fonctions associées avec l'impression d'empreintes 146. Le dispositif de stockage 119 peut utiliser des dispositifs optiques, magnétiques, semi-conducteurs, électroniques ou d'autres types de dispositifs pour stocker le code de programme. Actuellement, il n'existe pas de système et de méthode bon marché pour fournir une méthode ou un système garanti et sécurisé permettant de mettre à jour à distance le logiciel du dispositif distant. Les réalisations décrites offrent la capacité de ramener de manière sécurisée le dispositif distant à son etat antérieur a une tentative ratée de mise à jour et essaient de minimiser les frais généraux requis par tout processus administratif. Les réalisations exemplaires incluent une méthode et un système qui fournissent une identification automatique d'un dispositif distant nécessitant une mise à jour de logiciel. De manière avantageuse, le système inclut un centre de données à distance ou un serveur 135, par exemple un système de réinitialisation d'une machine à affranchir Neopost qui est en communication avec les dispositifs d'affranchissement sur les sites des clients. Selon les réalisations exemplaires, un dispositif 115 de client contacte périodiquement le serveur 135 pour signaler son statut, demander une mise à jour des fonds d'affranchissement, commander du matériel ou autre. Au moment du contact, le serveur 135 évalue sa base de données pour voir si le dispositif 115 est un candidat pour une mise à jour du logiciel. 2876235 7 Le serveur lance une session de communication sécurisée avec le dispositif 115 durant laquelle le logiciel mis à jour est téléchargé sur le dispositif 115. Le logiciel dans le dispositif 115 est signé cryptographiquemerit par le serveur 135 de sorte que le logiciel associé est spécifiquement identifié par le dispositif 115. Ce mécanisme inclut l'incorporation de l'identité du dispositif (par ex. un numéro de série) dans le processus de signature. Le dispositif récepteur 115 utilise la clé publique du serveur 135 pour établir un rapport entre son numéro de série spécial et celui à l'intérieur du logiciel téléchargé (généralement un paramètre d'en-tête de message) et applique un processus pour accepter le téléchargement comme valide ou rejeter le téléchargement. Dans une réalisation, le téléchargement peut être constitué de pièces ou segments multiples où chaque pièce ou segment est uniquement signé par le serveur 135 et peut être téléchargé par unité ou par séquence. Le dispositif distant 115 peut être un chargeur d'amorce capable d'accepter le logiciel téléchargé et de garnir les mémoires du dispositif en conséquence. Pour garantir un retour à l'efficacité opérationnelle s'il survient un événement qui interrompe, endommage ou alors rende le téléchargement du logiciel incomplet, le dispositif distant réalise généralement des sauvegardes d'images de son contenu de mémoire (par ex., EPROM - mémoire morte reprogrammable -, Mémoire vive secourue par une batterie, FLASH, ou tout autre contenu de mémoire du dispositif) avant de commencer le processus de téléchargement. Le dispositif, lorsqu'il détecte un téléchargement de logiciel défaillant, incomplet ou non réussi, peut réinstaller le contenu d'images de chacun de ses contenus de mémoire. Le contenu de mémoire se compose à la fois du logiciel et des données 2876235 8 de fonctionnement /d'application. La sauvegarde informatique des images peut être conservée sous forme compressée ou non compressée selon la quantité de mémoire réservée pour ladite transaction. Dans une réalisation préférée, afin de garantir la sécurité de toute transaction de téléchargement de logiciel et de s'assurer que le nouveau logiciel n'a pas été trafiqué, en supplément du processus de signature numérique, le dispositif 115 calcule une empreinte numérique de son logiciel et la signe avec sa clé de chiffrement privée. Le dispositif 115 peut également fournir au serveur 135 l'empreinte numérique et le serveur peut ensuite valider l'empreinte numérique en utilisant la clé publique du dispositif 115 qui peut être retenue par le serveur 135. En plus de valider le dispositif 115, le serveur 135 peut également déterminer le niveau de version du logiciel du dispositif (c'est-à-dire que l'hôte retient une empreinte numérique de ses versions de logiciel). Pour que le dispositif soit sûr que le logiciel téléchargé provient vraiment du serveur 135 et n'est pas compromis d'une quelconque manière, le serveur 135, dans le cadre du téléchargement du nouveau logiciel, va renvoyer une version signée de l'empreinte digitale envoyée par le dispositif 115 au serveur 135. Puisque le serveur 135 a utilisé sa clé privée pour signer l'empreinte numérique, seul le dispositif 115 avec une clé publique associée du serveur 135 peut valider l'empreinte numérique et comparer l'empreinte numérique renvoyée avec l'empreinte numérique envoyée à l'origine. Si les deux valeurs d'empreinte numérique sont égales, le logiciel téléchargé provient du serveur associé 135. 2876235 9 Une fois que le nouveau logiciel est téléchargé avec succès, comme cela est déterminé par le traitement complet du message, le serveur 135 valide que le dispositif 115 fonctionne correctement avec le nouveau logiciel en demandant au dispositif 115 d'exécuter un diagnostic approprié pour acquérir les paramètres de diagnostic/de performance du système pour la transmission au serveur 135. Si lesdits paramètres de diagnostic/de performance s'avèrent acceptables, le serveur 135 donne au dispositif 115 l'instruction de mettre en service le nouveau logiciel et de supprimer le contenu d'images sauvegardé. Si le serveur 115 détermine que les paramètres de diagnostic/de performance ne sont pas en accord avec ceux souhaités, le serveur peut demander au dispositif 115 de remplacer ledit nouveau logiciel par son contenu d'images de mémoire sauvegardé et de recommencer à fonctionner avec le logiciel d'origine du dispositif. Dans ce cas, un nouvel essai de téléchargement du logiciel peut fonctionner ou un support de service peut être nécessaire ou le dispositif va être maintenu au niveau de sa version logicielle d'origine. Il faut bien comprendre que la description précédente est uniquement une illustration de l'invention. Diverses alternatives et modifications peuvent être imaginées par les gens de métier sans s'éloigner de l'invention. Par conséquent, la présente invention a pour but d'englober toutes ces alternatives et modifications qui entrent dans le champ des revendications annexées. 2876235 10 Revendications 1. Une méthode permettant la mise à jour sécurisée d'un 5 logiciel dans un dispositif distant caractérisée en ce qu'elle comprend: la copie dans une mémoire des parties sélectionnées du code de programme contenu dans le dispositif distant; le téléchargement du logiciel dans le dispositif distant; et lors de la détection d'un téléchargement non réussi, la réinstallation des parties sélectionnées du code de 15 programme. 2. Méthode selon la revendication 1 caractérisée en ce qu'elle comporte en outre l'identification automatique du dispositif distant nécessitant une mise à jour du logiciel. 3. Méthode selon les revendications 1 et 2 caractérisée en ce qu'elle comporte une étape de signature numérique du logiciel permettant l'identification spécifique dudit logiciel par le dispositif distant. 4. Méthode selon la revendication 3 caractérisée en ce qu'elle comporte en outre le calcul d'une empreinte numérique du logiciel garantissant la sécurité de toute transaction de téléchargement. 2876235 11 5. Système permettant la mise à jour mise en oeuvre selon l'une des revendications 1 à 4 caractérisé en ce qu'un serveur (135) fournit la mise à jour du logiciel au dispositif distant (1151... 115n) via un réseau de communication de données (120). 6. Système selon la revendication 5 caractérisé en ce que le serveur (135) est un centre de réinitialisation de machine à affranchir. 7. Système selon la revendication 5 caractérisé en ce que le dispositif distant (1151... 1 15n) est une machine à affranchir. 8. Système selon les revendications 5 à 7 caractérisé en ce que le serveur (135) communique avec les machines à affranchir (1151... 115n) par l'intermédiaire d'un protocole ou standard de modulation.