Brevet FR2668623A1 — publié le 19920430

Système destiné à limiter l'exploitation d'un logiciel réservé aux seuls apDareillages habilités. L'invention concerne un système destiné à limiter l'exploitation d'un logiciel réservé aux seuls appareillages habilités. De manière connue, quelques microprocesseurs produits en très grandes séries se retrouvent dans la plus grande partie des appareils très divers où des processeurs peuvent avantageusement être mis en oeuvre. De ce fait, ce sont en grande partie les programmations de ces microprocesseurs qui différencient les appareillages concurrents dans un secteur donné, l'identité des microprocesseurs conduisant à des similitudes de structures tant au niveau matériel que logiciel. Or dans la plupart des cas ce sont les études effectuées pour obtenir des logiciels performants pour un appareillage donné et pour développer des applications nouvelles qui constituent l'essentiel des coûts, la diffusion de ces logiciels est alors généralement soumise à restriction de manière que leur usage reste réservé aux utilisateurs dûment autorisés. Il est donc essentiel pour le développeur de pouvoir empêcher que les logiciels d'exploitation fournis pour un appareillage donné restent réservés et ne soient pas exploités sur d'autres appareillages similaires après simple copie, lorsque celle-ci n'a pas été dûment prévue. A titre d'exemple, il est courant de fournir des logiciels d'exploitation dans des mémoires statiques de type standard qui sont destinées à être installées à proximité des microprocesseurs dans des appareillages, par exemple sur les mêmes cartes ou sur des cartes voisines. Or il existe des machines permettant de lire et de recopier le contenu de ces mémoires dans des mémoires identiques ou similaires. Une solution connue pour tenter d'éviter de telles copies consiste à enfermer les mémoires, contenant de tels logiciels réservés, dans des boîtiers clos de manière qu'ils soient au moins difficilement accessibles. Toutefois cette solution n'est pas très satisfaisante lorsque, comme souvent, des mises à jour du logiciel doivent être faites au cours du temps, car il est alors nécessaire de substituer de nouveaux boîtiers à tous les boîtiers exploités pour lesquels les mises à jour sont nécessaires. Le nombre de boîtiers différents susceptibles de coexister devient vite très grand et pose des problèmes analogues à ceux existants avec les pièces détachées pour l'utilisateur, pour le fabricant et pour les revendeurs. La présente invention propose donc un système destiné à limiter l'exploitation d'un logiciel réservé aux seuls appareillages habilités. Classiquement chacun de ces derniers comporte au moins un processeur exploitant auquel le logiciel réservé est transmis pour usage, à partir d'une mémoire où ce logiciel réservé est implanté. Selon une caractéristique de l'invention, le système associe un composant spécifique au processeur exploitant pour valider, en cours d'usage, ledit logiciel réservé. L'invention, ses caractéristiques et ses avantages sont précisés dans la description qui suit, en liaison avec les figures répertoriées ci-dessous. La figure 1 présente un schéma de principe d'un exemple d'une unité de commande d'appareillage équipé d'un système selon l'invention. La figure 2 présente un schéma d'une variante d'unité de commande, pour système selon l'invention. Le système selon l'invention est destiné à être mis en oeuvre dans le cadre d'une unité de commande d'appareillage, cette unité comportant au moins un processeur 1 auquel est associé au moins une mémoire 2 contenant tout ou partie d'un logiciel réservé mis en oeuvre par le processeur 1 pour l'exploitation de l'appareillage considéré. La mémoire 2 et le processeur 1 communiquent entre eux par un agencement de transmission 3 qui est couramment de type bus, la mémoire 2 n'étant éventuellement que l'une des mémoires d'un ensemble de mémoires mortes ou vives, non figurées auquel le processeur 1 à accès dans l'appareillage considéré. L'agencement de transmission 3 présenté ici associe, de manière usuelle, un bus de transmission de données 4 à un bus de transmission d'adresse 5 permettant notamment au processeur 1 de venir lire et/ou écrire des données à des adresses déterminées tant dans la mémoire 2 qu'éventuellement dans d'autres mémoires, lorsque celles-ci sont sélectionnées. Un appareillage, tel qu'envisagé ici, se limite éventuellement à une unité de commande qui est composée d'un ou de plusieurs processeurs et d'une ou de plusieurs mémoires et qui est associée à des capteurs et/ou à des actionneurs qu'elle supervise. Un appareillage peut aussi être un ensemble relativement complexe par exemple un commutateur téléphonique d'une installation privée pour laquelle à partir d'un matériel identique ou sensiblement équivalent, il est possible de réaliser des exploitations personnalisées, différentes, basées sur des logiciels d'application spécifiques. Un même logiciel peut également être exploité par un appareillage comportant plusieurs unités ou appareils identiques ou similaires se partageant une même ressource commune, par exemple plusieurs commutateurs téléphoniques d'un réseau privé reliés à un répondeur-enregistreur commun pour la réception, la conservation et l'envoi de messages. Ces logiciels, destinés à permettre la mise en service d'une application particulière ou d'une fonctionnalité donnée pour un type d'appareillage déterminé, sont alors optionnels, ils sont fournis aux utilisateurs en cas de besoin et/ou de demande et leur usage est généralement restreint contractuellement à un appareillage donné. Dans certaines formes d'exploitation, ces logiciels sont implantés dans des mémoires, par exemple de type REPROM, contenues dans des composants destinés à être montés sur des cartes de circuit, par exemple de manière amovible sur les cartes qui portent les processeurs. L'implémentation d'une fonctionnalité nouvelle dans une unité de commande d'un appareillage donné se limite alors à insérer un nouveau composant contenant le logiciel réservé correspondant à un emplacement prévu à cet effet sur la carte, cet emplacement ayant été soit laissé vacant, soit préalablement débarrassé du composant antérieurement présent, auquel se substitue le nouveau composant. Selon l'invention, on vient associer un composant de validation 6 à l'ensemble formé par le processeur 1 exploitant un logiciel réservé, la mémoire 2 où est conservé ce logiciel réservé et l'agencement de transmission 3 reliant notamment ce processeur 1 et cette mémoire 2. Le composant de validation 6 est réalisé sous la forme d'un module programmable par exemple de type réseau logique, dont la reproduction n'est pas réalisable de manière simple. Dans une première forme de réalisation, le module constituant un composant de validation 6 contient des données caractéristiques qui sont organisées en mots. Le logiciel réservé contenu en mémoire 2 est structuré de manière connue en soi pour venir commander au processeur exploitant de lire, au moins à l'initialisation et lors des réinitialisations ou, si besoin est, cycliquement dans le composant de validation des mots inscrits à des adresses déterminées et pour déterminer si au moins l'un de ces mots correspond à une information attendue, la correspondance conditionnant la poursuite de la mise en oeuvre du logiciel réservé, dont l'exploitation est autrement bloquée. La correspondance peut, sous sa forme la plus simple, être déterminée par comparaison du mot adressé par le processeur exploitant 1 dans le composant de validation 6 avec un mot contenu à une adresse donnée dans la mémoire 2 où est conservée le logiciel réservé. Un même composant de validation 6 est éventuellement exploitable pour une série de programmes réservés disposant chacun d'un ou de plusieurs mots caractéristiques spécifiquement adressables. Dans une seconde forme de réalisation présentée en liaison avec la figure 2, le composant de validation, ici référencé 6', est inséré en sortie de données de la mémoire 2 contenant le logiciel réservé de manière à voir passer toutes les données transmises par cette mémoire, via le bus de données 4 desservant notamment le processeur exploitant 1. Le composant de validation 6' agit alors à la manière d'un filtre qui transcode les données alors cryptées sous la forme desquelles le logiciel réservé est contenu en mémoire 2, sous une forme en clair qui est seule exploitable par le processeur 1. Le cryptage peut concerner tout ou partie des données constituant le logiciel réservé . Dans une forme simple une structure en OU exclusif du composant de validation 6' assure le transcodage des données concernées qui sont transmises par la mémoire 2, en les combinant avec un mot déterminé caractéristique du programme réservé considéré. REVENDICATIONS 1/ Système destiné à limiter l'exploitation d'un logiciel réservé aux seuls appareillages habilités, chacun d'entre eux comportant au moins un processeur exploitant (1) auquel le logiciel réservé est transmis pour usage, cette transmission s'effectuant à partir d'une mémoire (2) où le logiciel réservé est implanté, caractérisé en ce qu'il associe un composant spécifique (6) au processeur exploitant pour valider le logiciel réservé, en cours d'usage. 2/ Système selon la revendication 1, caractérisé en ce que le composant de validation (6) est un composant de type logique programmée qui est relié au bus (3) par l'intermédiaire duquel communiquent le processeur et la mémoire où le logiciel réservé est implanté. 3/ Système selon la revendication 2, caractérisé en ce que le composant de validation (6) mémorise des données caractéristiques qui sont stockées à une ou plusieurs adresses déterminées et dont la communication au processeur exploitant conditionne la poursuite de l'exploitation du logiciel réservé. 4/ Système selon la revendication 3, caractérisé en ce que le composant de validation (6') comporte des moyens pour transcoder, sous une forme exploitable par le processeur exploitant (1), au moins certaines des informations provenant sous forme cryptée de la mémoire (2) où le logiciel est implanté.