Brevet FR2622319A1 — publié le 19890428

La présente invention concerne un support de logiciel à protection contre la copie et un dispositif de mise en oeuvre d'un logiciel à protection contre la copie. On sait que la protection des logiciels contre la copie par desmoyenslégaux, est extrêmement difficile et on a donc recherché à protéger les logiciels par des moyens pratiques ne nécessitant pas un recours à la voie légale. La première protection a été# obtenue par une écriture de données spéciales sur le support magnétique contenant Le logiciel å protéger. Ces données spéciales modifient ce que l'on appelle le formatage du support magnétique. Les moyens d'exploitation ne sont généralement pas capables de reproduire spontanément un formatage particulier et, tant que ce formatage n'a pas été introduit dans les moyens d'exploitation, il n'est pas possible d'effectuer une copie du logiciel ainsi protégé. Cependant, les pirates ont rapidement mis au point des logiciels spécifiques visant pnécisément à analyser le formatage du support magnétique du logiciel protégé et à le reproduire sur un support magnétique vierge qui devient alors apte à recevoir une copie.Un autre procédé mis au point par les pirates consiste, au moyen d'outils logiciels divers, à éliminer totalement du logiciel protégé les sous-programmes qui vérifie la présence du formatage spécial sur le support magnétique, ce qui permet alors de recopier indéfiniment le logiciel concerné sans outil de copie spécifique. Il existe également des systèmes de protection plus sophistiqués faisant appel à une clé électronique, c'est-àdire un petit circuit électronique qui est branché sur une borne d'entrée-sortie des moyens d'exploitation pour réagir à un signal venant du logiciel considéré et envoyer un signal en retour dont la présence est détectée au niveau du logiciel considéré. Le support magnétique du logiciel ne contient alors aucune protection particulière et il est donc possible pour un utilisateur habituel d'effectuer tout à fait légalement et aisément des copies de sauvegarde de son logiciel, copies qui s'avèrent souvent nécessaires étant donné la durée de vie limi tée d'un support magnétique et sa relative fragilité. Cependant la clé électronique ne participe pas au déroulement du logiciel.Lors de l'exploitation du logiciel, une vérîficatio est seulement effectuée, au moyen de sous-programmes insérés dans le logiciel, que la clé est bien présente, c'est-à-dire qu'elle renvoie bien les valeurs précises attendues lorsqu'el est sollicitée. Les pirates sont rapidement en mesure de reco naître dans le logiciel les sous-programmes de test associé à la clé et- ils sont donc en mesure soit de simuler la présence d'une clé en entrant dans l'ordinateur les valeurs atte par les sous-programmes de -test, soit d'éliminer les sousprogrammes tests du logiciel, permettant ainsi l'utilisation du logiciel modifié à partir de n'importe quelle copie. Ce mox de protection ne s'avère donc finalement pas satisfaisant. Pour une protection absolue, on pourrait certes envisager de supprimer l'ex i st en ce des logiciels sur des supports reproductibles et de ne commercialiser ces logiciels que sur des supports non lisibles, le logiciel étant par exemple complètement intégré à une carte électronique multicouches réalisée au moyen de masques.Indépendamment du coût de ces réalisations qui serait incompatible avec les impératif économiques, un logiciel comportant un très grand nombre d'instructions ne pourrait être entièrement contenu que sur un carte électronique de très grande dimension incompatible avec les exigences de faible encombrement imposées à l'heure actuelle Un but de la présente invention est de proposer un support de logiciel et un dispositif de mise en oeuvre d'un logiciel assurant en pratique une inviolabilité totale du logi ciel sans augmenter de façon déraisonnable le coût et l'encombrement des supports ou des dispositifs existants. En vue de la réalisation de ce but, on prévoit se l'invention un support de logiciel comportant un premier organ de logiciel pouvant être lu sur lequel est stockée une première partie d'un logiciel, et un second organe de stockage et d'exé- cution de logiciel ne pouvant pas être lu dans lequel est stock et exécutée une seconde partie du logiciel, ce second organe de stockage comportant des moyens de connection à une borne d'entrée-sortie d'un ordinateur. Ainsi, la lecture de la partie de logiciel contenue dans le premier organe de stockage ne permet pas de faire fonctionner le logiciel et sa lecture ne donne aucune indication de la partie de programme contenue sur le second organe de stockage et d'exécution du logiciel de sorte qu'il n'est plus possible d##e simuler la présence de ce second organe, cette présence n'étant plus seulement vérifiée par un sous-programme de test comme dans les dispositifs existants mais absolument indispensable pour un déroulement de L'exploitation du logiciel. Selon une version avantageuse de l'invention, le second organe de stockage et d'exécution comporte un micro-contrleur muni d'une mémoire morte équipée d'un bit de protection contre la copie, programmable et effaçable en même temps que la mémoire. Ainsi, il est possible pour un concepteur de logiciels d'utiliser le même support successivement pour différents logiciels tout en assurant à chaque fois l'inviolabilité du logiciel en place sur le support Selon un autre aspect de l'invention, on prévoit un dispositif de mise en oeuvre d'un logiciel comprenant un premier organe de stockage de logiciel pouvant être lu associé à des moyens d'exploitation de logiciels comportant au moins une borne d'entrée-sortie, le dispositif comportant en outre au moins un second organe de stockage et d'exécution de logiciel ne pouvant pas être lu relié à l'une des bornes d'entrée-sortie des moyens d'exploitation. Ainsi, les moyens d'exploitation ont accès tant à la partie lisible qu'aux résultats de la partie non lisible du logiciel et peuvent assurer un déroulement satisfaisant de celui-ci. Selon une version avantageuse de cet aspect de l'invention, le dispositif comporte un support pour une pluralité de seconds organes de stockage et d'exécution de logiciel, ce support étant relié à une borne d'entrée-sortie unique des moyens d'exploitation. Ainsi, on peut utiliser simultanément plusieurs logiciels chacun rendu inviolable avec les moyens de Itin vent ion. D'autres caractéristiques et avantages de l'invention apparaitront encore à la lumière de La description qui suit d'un mode de réalisation particulier de l'invention en liaison avec la figure unique ci-jointe qui illustre de façon schématique un support de logiciel et un dispositif de mise en oeuvre d'un logiciel selon l'invention protégés contre la copie. En référence à la figure, le support de logiciel selon l'invention comporte un premier organe de stockage de logiciel pouvant être lu, par exemple une disquette magnétiqu 1 sur laquelle est stockée une première partie d'un logiciel, et un second organe de stockage et d'exécution de logiciel ne pouvant pas être lu. Par organe de stockage et d'exécution ne pouvant pas être lu, on entend un organe qui peut exécuter la séquence d'instructions qu'il contient mais dont cette séquen d'instructions ne peut être lue de l'extérieur et ne peut don être dupliquée quelque soit le moyen d'investigation utilisé cet organe est par exemple une carte électronique 2 portant ui circuit électronique 3 relié à des contacts 4 permettant d'assure une connection avec une borne d'entrée-sortie 5 d'un ordinate généralement désigné en 6. Le circuit électronique 3 comporte depréférenceunmicrtcontm muni d'une mémoire morte équipée d'un bit de protection contre la ccpie,effaçable en même temps que la mémoire. Un tel circuit est actuellement commercialisé en particulier par la société INTEL sous la référence 8751H. Il s'agit d'un circuit intégré à quarante broches qui contient un micro-processeur à huit bits, une zon de mémoire morte à écriture multiple effaçable aux rayons ult violetsde quatre kilo -octets et une zone de mémoire à accès aléatoire de cent vingt-huit -octets. La seconde partie de Iog ciel peut ainsi être introduite dans la zone de quatre kilo octets au moyen du compilateur correspondant. Le dispositif de mise en oeuvre selon I' inven- tion est formé par l'ordinateur 6 dont le premier organe de stockage de logiciel pouvant être lu est réalisé par une mémoire interne à l'ordinateur 6, par exemple un disque magnétique 7 associé d'une façon connue en soi à des moyens d'exploitation 8 également reliés aux bornes d'entrée-sortie 5. Le dispositif de mise en oeuvre comporte également de façonhabituelle un clavier 9, un écran 10 et une imprimante Il reliés aux moyens d'exploitation 8 par des câbles de liaison. Selon le mode de réalisation préféré illustré le dispositif comporte également un support 12 pour une pluralité de cartes électroniques 2, ce support étant relié à une borne d'entréesortie 5 unique des moyens d'exploitation 8. Lors de l'utilisation, la première partie de logiciel est chargée dans les moyens d'exploitation 8 par une lecture directe de la disquette 1, du disque dur 7 ou de tout autre premier organe de stockage de logiciel pouvant être lu. Simultanément le second organe de stockage et d'exécution de logiciel 2 est relié à la borne d'entrée-sortie de l'ordi- nateur soit directement soit par l'intermédiaire du support multi-cartes 12. Le dispositif de mise en oeuvre fonctionne alors correctement en utilisant les instructions contenues sur le premier organe de stockage, tandis que l'organe de stockage et d' exé- cution reçoit des données dues au traitement de ces instructions par l'intermédiaire de la borne d'entrée-sortie, données sur lesquelles il effectue des opérations selon la partie du logiciel qu'il contient. Les résultats de ces opérations sont transmis à l'ordinateur par la borne d'entrée-sortie et sont utilisés par la partie du logiciel chargé dans l'ordinateur àpartirdu premier organe de stockage.Les deux parties du logiciel se complètent mutuellement. On remarquera à ceproposquelesdynees de départ traitées par le logiciel sont constamment changeantes en fonction de l'utilisation et que le second organe de stockage et d'exécution ne transmet pas des valeurs fixes qui pourraient être simulées comme dans le cas du dispositif antérieur mais des résultats d'un traitement par la partie de logiciel contenue dans le second organe de stockage. Les données traitées retournées à l'ordinateur ne pourraient donc être reconstituées qu'en concevant à nouveau les parties de logiciel contenues dans le second organe de stockage. Ceci est bien entendu exactement contraire au but des pirates qui est de tenter de profiter de la conception réalisée sans avoir à fournir l'effort intellectuel correspondant.On placera donc dans le second organe de stockage et d'exécution des parties de logiciel comportant un faible nom d'instructions mais de structure complexe afin d'augmenter la difficulté de reconstitution des parties manquantes. Bien entendu, l'invention n'est pas limitée au mode de réalisation décrit et on peut y apporter des variante de réalisation sans sortir du cadre de l'invention En particulier, bien que l'invention ait été décrite de préférence avec un second organe de stockage et d'exécution comportant u micro-cqntroleur muni d'une mémoire morte, on pourra égalemen utiliser une carte électronique réalisant une partie d'un log ciel sous forme d'un circuit câblé ou bien d'un circuit multi couches obtenu à l'aide de masque-s, cette dernière réalisatio étant réservée, compte tenu de son coût à des logiciels de pr élevé et de diffusion importante. REVENDICATIONS 1. Support de logiciel à protection contre la copie, caractérisé en ce qu il comporte un premier organe de stockage de logiciel (1) pouvant être lu sur lequel est stockée une première partie d'un logiciel et un second organe de stockage et d'exécution de logiciel (2) ne pouvant pas être lu dans lequel est stockée et exécutée une seconde partie du logiciel, ce second organe de stockage et d'exécution (2) comportant des moyens de connexion (4) à une borne d'entrée-sortie (5) d'un ordinateur (6). 2. Support de logiciel à protection contre la copie selon la revendication 1, caractérisé en ce que le second organe de stockage et dtexécution (2) comporte un microcontroleur muni d'une mémoire morte (3) équipée d'un bit de protection contre la copie,programmable et effaçable en même temps que la mémoire. 3. Dispositif de mise en oeuvre d'un logiciel à protection contre la copie comprenant un premier organe de stockage de logiciel (7) pouvant être lu associé à des moyens d'exploitation de logiciel (8) comportant au moins une borne d'entrée-sortie (5) caractérisé en ce qu'il comporte au moins un second organe de stockage et d'exécution -de logiciel (2) ne pouvant pas être lu relié à l'une des bornes d'entrée-sortie (5) des moyens d'exploitation (g) 4. Dispositif de mise en oeuvre d'un logiciel à protection contre la copie selon la revendication 3, caractéri-sé en ce que le second organe de stockage et d'exécution (2) comporte un micro-controleur muni d'une mémoire morte équipée d'un bit de protection contre la copie, programmable et effaçable en même temps que la mémoire. 5. Dispositif de mise en oeuvre d'un logiciel selon la revendication 3 ou la revendication 4, caractérisé en ce qu'il comporte un support (12) pour une pluralité de seconds organes de stockage de logiciel (2), ce support étant relié à une borne d'entrée-sortie unique (5) des moyens d'exploitation (8).