FR 2876202 A1 20060407 FR 0552897 A 20050927 PAQUET DE CODES POUR LA PROTECTION DE REVENUS La présente invention revendique le bénéfice de la demande provisoire de brevet US n 60/616 719, déposée le 5 octobre 2004, qui est 5 intégrée en référence ici dans sa globalité. ARRIERE-PLAN La présente invention concerne l'utilisation d'un code logiciel pour protéger et vérifier un téléchargement de logiciel commercial. Brève description des développements associés Un client de la poste aux volumes élevés peut utiliser une machine à affranchir qui comprend un dispositif de sécurité d'affranchissement pour sécuriser la preuve de paiement du code à barres d'affranchissement postal. Le code à barres d'affranchissement est appliqué au courrier et identifie la valeur de l'affranchissement appliqué et d'autres informations. Le client peut acheter de l'affranchissement et la valeur achetée peut être stockée dans le dispositif de sécurité d'affranchissement. Lorsque le code à barres d'affranchissement est appliqué au courrier, la valeur appliquée peut être déduite de la valeur stockée. Une fois que le code à barres d'affranchissement est appliqué, le courrier peut alors être envoyé dans le flux de collecte du système postal particulier puis traité en vue d'être livré. Dans différents pays, par exemple aux États-Unis, les machines à affranchir peuvent communiquer avec un centre de traitement de données distant pour réapprovisionner les comptes d'affranchissement. Aux ÉtatsUnis, un client de la poste peut généralement ajouter de l'affranchissement à sa machine à affranchir de deux façons. La première consiste à amener physiquement la machine à affranchir à l'autorité postale, appelée de manière générale ici la poste , dans laquelle l'affranchissement est acheté et ajouté au dispositif de sécurité d'affranchissement. La deuxième consiste à ajouter à distance de l'affranchissement par le biais d'un réseau, par exemple, une ligne téléphonique avec un modem, ou l'Internet, dans laquelle l'affranchissement ajouté est déduit d'un compte habituellement détenu chez un fournisseur de machine à affranchir ou un administrateur tiers de confiance, par exemple, une institution financière. Dans ce cas, l'accès du client ou de l'autorité postale à un système de comptage ou système de mémoire de la machine à affranchir n'est généralement pas possible. Les machines à affranchir possédant ce type de capacité de communication communiquent généralement avec un centre de traitement de données d'un fournisseur de service postal pour ajouter des fonds ou pour ré-établir une authenticité. Un cycle de communication peut être lancé automatiquement, ou par l'utilisateur de la machine à affranchir. Occasionnellement, une machine à affranchir peut nécessiter une mise à jour de son logiciel opérationnel, peut avoir besoin d'une mise à jour ou modification des services auxiliaires qu'elle assure (par exemple, tarifs postaux), ou peut d'une manière générale nécessiter un téléchargement d'informations d'un type quelconque. Par exemple, alors que l'équipement postal est généralement extrêmement fiable, une panne de la machine à affranchir peut survenir, entraînant pour l'utilisateur un certain désagrément. Quand un programme ou autre type de données doit être installé pour remédier au problème, une réparation sur site n'est pas pratique en raison de la nature sécurisée de la machine à affranchir. Par conséquent, une machine à affranchir de remplacement doit être fournie, allongeant encore le temps d'immobilisation d'équipement pour le client. Dans le cas d'une machine à affranchir postale, l'appareil en panne doit être mis hors service, l'autorité postale doit être notifiée, une unité de remplacement doit être consignée avec l'autorité postale, et l'unité de remplacement doit ensuite être fournie au client. Il est avantageux de fournir des services, mises à niveau, révisions, programmes et d'une manière générale de fournir des informations de types variés par le biais d'une méthode et d'un système de téléchargement à distance qui minimisent l'envoi postal voire le transport de logiciel sur des supports physiques. II existe un besoin de s'assurer qu'un dispositif distant est actualisé de manière fiable et correcte, et que la mise à jour est valide, provienne d'une source valide, et que le dispositif lui- même remplisse les conditions du téléchargement. RESUME DES MODES DE REALISATION ILLUSTRATIFS C'est une caractéristique des modes de réalisation illustratifs d'un serveur de fournir à un ou plusieurs dispositifs distants des mises à jour logicielles. Dans le cadre du processus de mise à jour, le serveur construit un code logiciel, appelé paquet de codes. Après qu'une mise à jour a été fournie à un dispositif distant, le dispositif accède au paquet de codes du serveur, le compare à un paquet de codes généré en interne, et permet le téléchargement du logiciel si les paquets de codes correspondent. BREVE DESCRIPTION DES DESSINS Les aspects précédents et d'autres caractéristiques de la présente invention sont expliqués dans la description qui suit, prise conjointement aux dessins annexés, sur lesquels: la Figure 1 illustre un schéma de principe d'un système approprié pour la mise en oeuvre de l'invention; et la Figure 2 illustre un dispositif distant pouvant fonctionner à l'intérieur du système de la figure 1. DESCRIPTION DETAILLEE DES MODES DE REALISATION PREFERES La Figure 1 illustre un schéma de principe d'un système approprié pour la mise en oeuvre de l'invention décrite ici. Bien que la présente invention soit décrite en référence au mode de réalisation illustré sur les dessins, il doit être entendu que la présente invention peut être mise en oeuvre sous de nombreuses formes alternatives de modes de réalisation. En outre, toute taille, forme ou type d'éléments ou matériaux appropriés peut être utilisé. Le système 100 est un système destiné à fournir des services, par exemple, un système fournisseur de services postaux. Le système 100 comprend un ou plusieurs dispositifs distants, par exemple, des dispositifs de production ou marquage de codes à barres d'affranchissement, illustrés sur la Figure 1 en tant que machines à affranchir 1151... 115n, et un centre de traitement de données distant, illustré de manière générale en tant que serveur 135. C'est une caractéristique de la présente invention que le serveur fournisse aux dispositifs distants des informations révisées, mises à jour, fonctions supplémentaires, etc., appelées des téléchargements. Dans le cadre de la fourniture d'un téléchargement, un code logiciel, appelé paquet de codes, est construit. Après la fourniture du téléchargement, le dispositif distant accède au paquet de codes construit, le compare à un paquet de codes généré en interne, et permet le téléchargement si les paquets de codes construits et générés en interne correspondent. Le serveur 135 comprend de manière générale un processeur 105, une mémoire 110, et une base de données 130 destinée à stocker des informations. Le processeur 105 fonctionne de manière générale sous le contrôle de programmes stockés dans la mémoire 110 pour gérer les opérations du serveur 135. Comme mentionné ci-dessus, le serveur 135 fournit de manière générale des mises à jour, programmes qui permettent des fonctionnalités supplémentaires, programmes de remplacement, tables de données, autres données et informations, appelés téléchargements aux dispositifs distants 1151... 115n. En outre, le serveur 135 peut collecter des données issues des dispositifs distants 1151... 115x, et fournir des services de report et comptage. Le serveur 135 peut être couplé à un réseau de transmission 120. Le réseau de transmission 120 peut comprendre tout réseau de communication approprié, par exemple, le Réseau Téléphonique Public Commuté (RTPC), réseau sans fil, réseau câblé, réseau local (LAN), réseau étendu (WAN), réseau privé virtuel (RPV), etc. Le serveur 135 peut communiquer avec des dispositifs distants 1151... 115, en utilisant n'importe quel protocole approprié, ou norme de modulation, par exemple, X.25, ATM, TCPIIP, V34, V90, etc. Quand le réseau de transmission 120 est mis en oeuvre en tant que réseau sans fil, il intègre généralement une interface radio utilisant tout protocole de communication sans fil approprié ou technique ou norme de signalisation, par exemple TDMA, CDMA, IEEE 802.11, Bluetooth, RF à faible portée, optique, toute norme de communication par satellite appropriée, etc. La Figure 2 illustre un schéma de principe général d'un dispositif distant 115. Les dispositifs distants 1151... 115, fournissent généralement des services à un ou plusieurs clients. Dans un mode de réalisation, les dispositifs distants peuvent fournir un code à barres d'affranchissement qui comportent une certaine valeur, par exemple, un affranchissement postal, des tickets permettant l'entrée à un événement ou autorisant l'utilisation d'un service, etc. Le dispositif distant 115 peut comprendre un port de communication 117 et un microprocesseur 118 destiné à réaliser des fonctions de comptage, contrôle et gestion conformément à des programmes stockés dans un dispositif de stockage 119. Certaines de ces fonctions ou sous-ensembles de ces fonctions peuvent être groupés à l'intérieur d'un périmètre de sécurité tel que communément appelé dispositif de sécurité d'affranchissement. Le dispositif de stockage 119 stocke généralement un code de programme lisible informatiquement qui est adapté pour amener le microprocesseur 118 à effectuer des fonctions associées à la fourniture de services, par exemple, la production d'un code à barres d'affranchissement. Le dispositif de stockage 119 peut utiliser des types optiques, magnétiques, à semi-conducteur, électroniques, ou autre de dispositifs appropriés pour stocker le code de programme. Dans le système de la Figure 1, un client utilisant un dispositif distant possède de manière générale un compte sur le serveur 135. Dans le cadre de ce compte, le serveur peut stocker des informations spécifiques au dispositif distant 115. De telles informations peuvent comprendre l'adresse MAC du dispositif distant, des informations sur l'utilisateur ou le client (nom, société, téléphone, adresse, etc.), le numéro de série, la clé publique, des informations client de téléchargement vers le serveur, des options achetées par le client, des informations concernant une société d'exploitation qui peut fournir des services au dispositif distant, et toute autre information spécifique au dispositif distant 115. Le serveur peut comprendre des informations supplémentaires spécifiques au dispositif distant et peut assembler les informations spécifiques en un faisceau d'informations pour le dispositif distant 115 et les stocker dans le serveur 135. Une copie du faisceau d'informations peut également être assemblée et stockée dans le dispositif distant 115 sous la forme d'un faisceau local d'informations. Selon les modes de réalisation illustratifs, le serveur permet de fournir au dispositif distant 115 un téléchargement logiciel. De manière générale, pendant le téléchargement, le serveur opère sur le faisceau d'informations du serveur pour créer un paquet de codes du serveur. De telles opérations peuvent inclure la signature, le chiffrement, le codage, ou d'autres opérations. Le paquet de codes du serveur est délivré au dispositif distant dans le cadre du téléchargement. Après le téléchargement, le dispositif distant 115 peut généralement redémarrer et le logiciel d'application dans le dispositif peut opérer sur le faisceau local d'informations pour créer un paquet de codes local. Le logiciel d'application dans le dispositif compare le paquet de codes local au paquet de codes du serveur, et s'ils correspondent exactement, le logiciel téléchargé est activé. Si les paquets de codes ne correspondent pas, alors le logiciel d'application peut afficher un message associé et peut également générer une communication avec le serveur 135 pour fournir une notification de problème. Dans un autre mode de réalisation, les faisceaux d'informations sont assemblés et les paquets de codes sont générés parallèlement à ou dans le cadre du processus de téléchargement. Par exemple, au moment où le téléchargement est demandé, le serveur 135 peut collecter les informations spécifiques au dispositif distant 115 et peut en option ajouter des informations supplémentaires pour créer le faisceau d'informations, et peut ensuite opérer sur le faisceau d'informations pour créer le paquet de codes. Le serveur peut ensuite télécharger à la fois le logiciel demandé et le paquet de codes du serveur. À la réception du téléchargement, le dispositif distant peut alors effectuer sa propre opération de collecte et assembler un faisceau local d'informations au moment du téléchargement, puis opérer sur le faisceau d'informations pour créer le paquet de codes local. Après le téléchargement, le dispositif distant 115 peut généralement redémarrer et le logiciel d'application dans le dispositif peut comparer le paquet de codes local au paquet de codes du serveur, et s'ils correspondent exactement, le logiciel téléchargé peut être activé. Dans le cas contraire, si les paquets de codes ne correspondent pas, le logiciel d'application peut afficher un message d'erreur et générer une communication de message d'erreur avec le serveur 135. Dans encore un autre mode de réalisation, la procédure de téléchargement peut comprendre un processus d'enregistrement. Par exemple, au niveau du dispositif distant 115, un utilisateur peut installer un logiciel. Le dispositif distant peut alors inviter l'utilisateur à l'enregistrer. L'utilisateur peut remplir des champs d'informations, comprenant par exemple, des informations sur l'utilisateur, un identifiant de la société d'exploitation, etc. Le dispositif distant 115 peut ensuite stocker les champs d'informations dans le cadre du faisceau local d'informations et lancer une connexion au serveur 135 sur lequel le dispositif distant télécharge vers le serveur les informations d'enregistrement. Au niveau du serveur 135, le serveur peut intégrer les informations d'enregistrement dans le faisceau d'informations du serveur puis le téléchargement continue comme décrit ci- dessus. Dans un autre mode de réalisation, le dispositif distant peut mettre à jour périodiquement son faisceau local d'informations et l'envoyer au serveur 135. Le serveur 135 peut comparer le faisceau d'informations du dispositif distant aux informations qu'il stocke concernant les versions logicielles, les téléchargements précédents, etc. pour garantir une correspondance, et peut générer des messages d'erreur lors de la détection de divergence Les modes de réalisation illustratifs décrits peuvent tolérer certaines exceptions ou erreurs qui peuvent se produire pendant le processus de téléchargement, appelées flux d'exception. Par exemple, un flux d'exception peut être lancé car une adresse MAC d'un dispositif peut avoir changé (nouvel ordinateur ou dispositif) auquel cas le démarrage d'une application échoue. Le dispositif distant 115 peut afficher des instructions à un utilisateur concernant une cause probable. Le dispositif distant peut alors demander un nouvel enregistrement et construire un nouveau faisceau d'informations. Le serveur peut ensuite recevoir le nouveau faisceau d'informations et continuer comme décrit cidessus. Il doit être entendu que la description précédente est uniquement illustrative de l'invention. Différentes variantes et modifications peuvent être conçues par l'homme du métier sans s'éloigner de l'invention. Par conséquent, la présente invention vise à englober toutes telles variantes modifications et variations qui se situent dans la portée des revendications annexées. Revendications: 1. Procédé de vérification et de protection d'un téléchargement de logiciel comprenant: - la construction d'un premier paquet de codes dans le cadre du téléchargement de logiciel; - l'accès au premier paquet de codes après que le téléchargement a été fourni; - la comparaison du premier paquet de codes par rapport à un paquet de codes généré en interne, et l'activation du logiciel téléchargé si les paquets de codes correspondent.