Brevet FR2610744A1 — publié le 19880812

La présente invention a trait à un procéde et dispositif de limitation de l'exploitation de tout ou partie d'un logiciel pour ordinateur par une personne non autorisée. Le terme "ordinateur" s'applique essentiellement Ici aux microordinateurs voire aux mini-ordinateurs On connaît des procédés visant à empêcher une personne non autorisée d'utiliser un logiciel. Certains consistent à insérer dans le logiciel des instructions pour demander à l'utilisateur d'entrer un code ou un mot de passe que lui seul est supposé connaître, mais il est alors assez facile de se procurer le code ou le mot de passe et de se servir de copies du logiciel. D'autres vérifient la présence d'un numéro interne et propre à la machine. Ces 1 o numéros n'existent pas dans les micro-ordinateurs pour des raisons de fabrication en grande série. D'autres instructions peuvent être intégrées au logiciel en vue de rendre difficile sa copie, mais Il existe à l'heure actuelle des programmes de copie très puissants. D'autre part, si un logiciel est très bien protégé contre la copie, l'utilisateur ne peut pas se faire des copies de sauvegarde de son logiciel. 1 5 Ces procédés de l'art antérieur ont un point commun: ils relèvent de ce que les informaticiens appellent le "software", c'est-à-dire qu'ils ne reposent que sur des modifications du logiciel d'origine, par opposition à des procédés qui mettraient en jeu des dispositifs physiques ou qui reposeraient sur des modifications du matériel rentrant dans la composition du système informatique lui-même, le "hardware". Il suffit pour les déjouer soit -d'utiliser des logiciels spécialisés, soit de "désassembler" le logiciel -le transcrire d'un langage machine dans un autre langage informatique, notamment l'assembleur- et retrouver les modifications apportées. La neutralisation ou la suppression de ces modifications -le "déplombage" du logiciel- sont souvent difficiles, mais elles restent plus accessibles aux "pirateurs" -utilisateurs ou copieurs de logiciels non autorisés- que des interventions sur le matériel luimême. Autrement dit, les "pirateurs" ont plus souvent des compétences relatives au "software" qu'au "hardware", et il leur est plus facile de "déplomber" un logiciel ou se procurer un code d'accès que de localiser et neutraliser une modification apportée au matériel lui-même. Cependant, il existe également des procédés reposant sur une modification du matériel pour l'adapter à l'utilisation du logiciel, mais ils interdisent l'utilisation du logiciel sur des ordinateurs n'ayant pas subi cette modification, ce qui restreint inutilement l'utilisation du logiciel. Enfin, d'autres procédés sont basés sur l'utilisation d'un accessoire physique à greffer sur le matériel avant utilisation d'un logiciel. Certains sont très simples, ce-qui les rend faciles à reconstituer, tels les "straps" -pontages ou shunt- entre certaines des bornes périphériques de l'ordinateur, dont le logiciel demande à l'ordinateur de vérifier la présence. D'autres sont plus complexes et donc plus difficiles à contrefaire, surtout s'ils comprennent des circuits électroniques noyés dans de la résine, ou des composants électroniques dont on a effacé les références, ou encore des mémoires mortes programmées -PROM-, mais aucun n'est tout-àfait transparent: soit ils empêchent l'utilisation de certaines des commandes de l'ordinateur, soit ils bloquent certaines des bornes périphériques de l'ordinateur. Le but de la présente Invention est de proposer un procédé et dispositif de limitation de l'utilisation d'un logiciel pour un ordinateur qui permette à un utilisateur autorisé de faire autant de copies de sauvegarde qu'il souhaite, qui soit immédiatement transférable d'un ordinateur à un autre, et efficace, sûr, transparent et peu coûteux. Selon la présente invention, un procédé de limitation de l'utilisation d'un logiciel par un ordinateur prévoit d'ajouter audit logiciel des Instructions ayant pour effet de faire vérifier par l'ordinateur si un dispositif dit de protection, comprenant un circuit électronique spécifique, est connecté à certaines des bornes de liaison dudit ordinateur avec une unité périphérique. Ladite unité périphérique est par exemple une imprimante, une table traçante, ou un modem. Avantageusement, ledit circuit électronique peut être mis dans deux états distincts depuis l'ordinateur chargé par ledit logiciel ainsi modifié, en fonction des signaux qu'il capte en provenance de l'ordinateur, un premier état dit de transparence dans lequel il n'lntervient pas sur la liaison entre l'ordinateur et l'unité périphérique, et un deuxième état dit de vérification dans lequel ledit dispositif de protection renvoie à l'ordinateur des signaux dits de retour en réponse à des signaux dits de vérification provenant dudit ordinateur, lesdits signaux de retour étant comparés par l'ordinateur à des signaux prédéterminés pour vérifier la présence dudit dispositif auxdites bornes de liaison. Dans un mode de réalisation avantageux de la présente invention, ledit circuit électronique comporte un circuit diviseur jouant le rôle d'un compteur, notamment binaire, et lesdits signaux de vérification sont des séries d'impulsions, ledit circuit diviseur comptant les Impulsions de chaque série, certaines des bornes de sortie dudit circuit diviseur étant connectées à une porte NON-OU pour délivrer lesdits signaux de retour. D'autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture de la description suivante donnée à titre d'exemples non limitatifs des formes possibles de réalisation de l'invention, en regard des dessins ci-joints et qui fera bien 3 o comprendre comment l'invention peut être réalisée. Sur les dessins: - les figures I a et l b sont des schémas de montage représentant des modes de connexion possibles de dispositifs selon l'invention; - la figure 2 est un schéma de principe du câblage d'un dispositif selon l'invention; -' la figure 3 est un schéma de principe du circuit électronique faisant partie du dispositif de la figure 2. Sur les figures la et lb, un ordinateur 1 est connecté à une imprimante 2 au moyen d'un cordon de liaison 3 muni en chacune de ses extrémités de prises de connexion 4, 5 à plusieurs bornes, enfichables respectivement sur l'ordinateur 1 et l'imprimante 2. Selon l'invention, des instructions sont ajoutées à un logiciel de façon à ce que l'exploitation de tout ou partie du logiciel soit subordonné à la présence, à certaines des bornes périphériques de l'ordinateur, d'un dispositif dit de protection. Sur la figure la, ledit dispositif se présente sous la forme d'un boîtier 6 connecté globalement en série entre l'ordinateur et l'une des prises 4 du cordon de liaison 3, et abritant un circuit électronique spécifique qui sera décrit ci-aprs. Sur la figure 1 b, le dispositif de protection est scindé en deux parties: d'une part 1 0 un boîtier de dérivation 7 prolongé par un câble 8 muni d'une prise de connexion 9, d'autre part un boîtier terminal 10 sur lequel on peut enficher la prise 9, et abritant ledit circuit électronique spécifique. La variante de la figure 1 b permet d'installer et retirer le dispositif de protection sans débrancher l'imprimante. Les connexions Internes du boîtier 10 sont telles que celuici pourrait être branché directement sur l'ordinateur en l'absence de i 5 l'imprimante. La figure 2 représente schématiquement l'intérieur du dispositif 6 de la figure la selon l'invention. Nous sommes dans le cas d'une interface normalisée de type parallèle entre l'ordlnateur et l'imprimante. Cette Interface comporte vingt-cinq bornes ayant des attributions normalisées, qui seront décrites cl-après en référence à la figure 3. Pour conserver les liaisons entre l'ordinateur et l'imprimante, le boîtier comporte vingt-cinq bornes d'entrée I 1 reliées directement et respectivement à ses vingt-cinq bornes de sortie 12. Sur l'exemple de la figure 2, les bornes numéros 1, 3, 5, 7, 8, 9, et 10 sont reliées aux bornes d'un circuit électronique spéclflque 13. Sur le schéma de fonctionnement de la figure 3, on a représenté celles des liaisons entre les bornes d'entrée et de sortie du boîtier 6 qui étalent reliées au circuit électronique 13. Le circuit électronique 13 a pour composant principal un circuit diviseur jouant le rôle d'un compteur binaire, connu en soi. Sur l'exemple de la figure 3, les bornes normalisées numéros 1 et 5 de l'interface de type parallèle sont reliées à la borne de remise à zéro du compteur par l'intermédiaire d'une porte OU 14, la borne normalisée numéro 7 est reliée à 3 0 l'entrée du compteur proprement dit et les bornes numéro 3 et 8 sont respectivement reliées aux bornes d'alimentation et de validation du circuit électronique. Certaines des bornes de sortie du compteur binaire, ici les bornes correspondant aux nombres d'impulsions deux, trois et cinq sont reliées par l'intermédiaire d'une porte NON-OU 15 aux bornes normalisées numéros 9 et 10 du boîtier. Les bornes numéros 9 et 10 sont toutefois isolées l'une de l'autre par deux diodes 16. Rappelons que les numéros des bornes du boîtier 6 correspondent aux numéros des conducteurs d'une interface normalisée de type parallèle entre l'ordinateur et l'imprimante, telle qu'utilisée par exemple par le fabricant IBM. Sur une interface normalisée de type parallèle telle que décrite cidessus, les numéros des vingt-cinq bornes correspondent aux attributions suivantes: - la borne ne 1, appelée "STROBE" par l'homme de l'art, conduit un signal qui prévient l'unité périphérique, ici l'imprimante 2, que l'on s'adresse à elle et que des instructions vont lui parvenir t toute commande provenant de l'ordinateur et adressée à l'imprimante est précédée d'un signal prédéterminé, en l'occurence un front descendant sur le STROBE; - les bornes nô 2 à 9 sont des bornes dites de données, appelées souvent bornes "DATA" par l'homme de l'art. C'est d'elles que partent les données à destination de l'imprimante, telles qu'un texte à imprimer par exemple; - les bornes ne 10 à 17 sont des bornes dites de service, par lesquelles passent des commandes prédéterminées entre l'ordinateur et l'imprimante. La borne ne 10 a une fonction particulière: c'est la borne dite d'accusé de réception, appelée "ACKNOWLEDGE" par l'homme de l'art; l'ordinateur peut y lire des Informations, pour savoir par exemple si l'imprimante a bien reçu les données ou les instructions qu'il lui a envoyées; - les bornes n' 18 à 25 sont reliées à la masse. Le fonctionnement du dispositif de l'exemple de la figure 3 va maintenant être décrit. Les instructions supplémentaires ajoutées audit logiciel ont pour effet d'envoyer un signal de remise à zéro du compteur à la borne numéro 5, une tension d'alimentation à la borne numéro 3, et un signal de validation à la borne numéro 8. Le dispositif est alors mis dans l'état dit de vérification. L'ordinateur envoie ensuite des signaux de vérification comprenant des trains d'lmpulsions de nombres croissants d'impulsions, qui sont comptées par le compteur binaire. Sur l'exemple de la figure 3, puisque les bornes de sortie numéros 2, 3 et 5 du compteur sont connectées physiquement à la porte NON-OU 15, le dispositif renvoie des signaux de retour aux bornes numéros 9 (DATA n9) et 10 (ACKNOWLEDOE) du dispositif et donc aux bornes correspondantes de l'ordinateur, lorsque des trains d'impulsions respectivement de deux, trois et cinq impulsions parviennent au compteur. Si l'ordinateur reçoit les signaux de retour qu'il attendait, le logiciel ainsi modifié "accepte" de continuer d'être exploité. Sinon, l'exploitation du logiciel est soit impossible, soit limitée à certaines parties, par exemple pour une démonstration dudit logiciel. Un autre choix concernant les bornes numéros 3, 5, 7 et 8 aurait pu être fait. On remarquera que ce procédé et dispositif a un avantage qui n'avait pas été mentionné jusqu'ici. En effet, il est ainsi possible d'empiler des dispositifs d'une même famille correspondant à des logiciels différents possédant chacun leur propre dispositif ou clé. On entend par dispositifs de la même famille des dispositifs dont les circuits électroniques 3 5 spécifiques sont connectés sur les mêmes bornes normalisées de l'interface de type parallèle. Des clés de la même famille peuvent être empilées car cet empilement revient à mettre des 2 610744 portes NON-OU en parallèle. I Iest ainsi possible d'utiliser simultanément plusieurs logiciels dont l'exploitation est soumise à la présence de dispositifs ou clés de protection. Lorsque l'ordinateur désire s'adresser à l'imprimante, il commence toujours par envoyer un signal en front descendant sur la borne normalisée numéro 1, STROBE, ce qui a pour effet de désactiver le circuit électronique. En effet, selon les protocoles en vigueur, notamment le protocole CENTRONICS, un front descendant sur la borne STROBE force l'imprimante à lire les signaux en présence sur les bornes DATA 2 à 9, et seulement dans ce cas. Le dispositif ou clé est alors réinitialisé et mis dans l'état dit de transparence, et n'intervient plus sur la liaison entre l'ordinateur et l'imprimante. C'est dans ce but que la 1 o borne normalisée numéro 1, STROBE, est connectée à la borne de remise à zéro (par l'intermédiaire de la porte OU 14, sur laquelle arrive également la liaison avec la borne n'5, comme déjà décrit ci-dessus). Dans une variante de ce mode de réalisation de l'invention, on aurait pu également utiliser la borne normalisée "PAPER-END" à la place de la borne n' 10 "ACKNOWLEDGE". 1 5 L'lnterface entre l'ordinateur et l'imprimante étant normalisée, il est possible d'utiliser le logiciel ainsi modifié pour limiter son exploitation sur d'autres ordinateurs possédant ce type d'interface. Il suffit pour cela de se munir de la disquette sur laquelle est enregistré le logiciel et de la clé correspondante nécessaire à son exploitation. Il est inutile de protéger le loglciel contre la copie puisqu'il faut être en possession de 2 0 la clé pour l'utiliser. On peut donc faire autant de copies de sauvegardé du logiciel qu'on le souhaite. On peut même prêter un exemplaire du logiciel à des fins de démonstration sans craindre qu'il soit copié pour être exploité. La limitation de l'exploitation du logiciel est de plus programmable avant la compilation du logiciel, ce qui permet à l'utilisateur de mettre au point son propre programme d'utilisation de la clé. Ce programme peut même être développé non seulement en langage machine, mais aussi en tout autre langage tel que le Basic, le C, etc... dans divers systèmes d'exploitation (MS-DOS, XENIX, PROLOGUE, etc...). Deux niveaux de numéros distinctifs peuvent être associés à un dispositif ou clé selon l'invention: - un premier numéro distinctif correspondant à ladite famille, composé à partir des numéros des bornes normalisées de l'interface, qui eux-mêmes sont arrangés dans un certain ordre; - un deuxième numéro distinctif correspondant au câblage interne dudit circuit électronique spécifique, c'est-à-dire composé à partir des numéros des bornes de sortie du compteur binaire. Ledit premier numéro distinctif peut être associé à un concepteur de logiciel, et ledit deuxième numéro distinctif peut être associé à un logiciel commercialisé par ce concepteur. Les logiciels d'un même concepteur pourront ainsi être utilisés simultanément sur le même ordinateur, comme cela a été expliqué ci-dessus. Bien qu'elle ait été décrite en détail dans le cas d'une interface de type parallèle, l'invention est également applicable à une interface de type série. Dans le cas des interfaces de type série équipant les microordinateurs, le principe est identique. La masse est prise sur la borne normalisée numéro 2 (TD: "Transmitted Data"), et la borne normalisée numéro 4 (RTS: "Request To Send") permet, par un passage temporisé à 1, d'une part la remise à zéro du compteur et sa validation, d'autre part la charge d'une capacité qui alimente le circuit pendant son fonctionnement. Le comptage s'effectue par la borne normalisée numéro 20 (DTR 1 0: "Data Terminal Ready"). La lecture du compteur peut se faire sur les bornes normalisées numéros 6 (DSR: "Data Set Ready"), 8 (RLSD: "Received Line Signal Detector") ou 22 (RI Ring Indicator") suivant le type d'accessoire périphérique utilisé en série avec la clé. Généralement, au moins une de ces trois bornes est inutilisée. Le fonctionnement d'un dispositif selon l'invention applicable à une interface de type 1 5 série est semblable à celui, décrit en exemple, applicable à une interface de type parallèle, mais il ne permet pas de faire varier les bornes utilisées en entrée du dispositif (numéros 2, 4 ou 20) mals seulement les bornes de sortie (numéros 6, 8, ou 22). Le choix de la borne de sortie est limité à celle non utilisée par l'unité périphérique branchée en série avec le dispositif -ou "clé"- pour assurer sa transparence. REVENDICATIONS 1. Procédé de limitation de l'exploitation d'un logiciel pour ordinateur, caractérisé en ce qu'il comprend l'étape d'ajouter audit logiciel des instructions supplémentaires subordonnant l'exploitation par un ordinateur (1) de tout ou partie dudit logiciel à la présence, à certaines des bornes périphériques dudit ordinateur, d'un dispositif dit de protection (6, 10) comprenant un circuit électronique spécifique (13). 2. Procédé de limitation de l'exploitation d'un logiciel pour ordinateur selon la revendication 1 caractérisé en ce que lesdites bornes périphériques font partie des bornes d'une interface du type parallèle ou série entre l'ordinateur ( 1) et une unité péripérique (2) qu'il commande. 1 0 3. Procédé de limitation de l'exploitation d'un logiciel pour ordinateur selon la revendication 1 ou la revendication 2 caractérisé en ce que ledit dispositif de protection (6, ) peut prendre au moins deux états en fonction des signaux qu'il capte en provenance de l'ordinateur, un premier état dit de transparence dans lequel il n'intervient pas sur la liaison entre l'ordinateur ( 1) et l'unité périphérique (2), et un deuxième état dit de vérification dans lequel ledit dispositif de protection (6, 10) renvoie à l'ordinateur des signaux dits de retour en réponse à des signaux dits de vérification provenant dudit ordinateur, lesdits signaux de retour étant comparés par l'ordinateur à des signaux prédéterminés pour vérifier la présence dudit dispositif (6, 10) auxdites bornes périphériques. 4. Procédé de limitation de l'exploitation d'un logiciel pour ordinateur selon la revendication 3, caractérisé en ce que ledit circuit électronique ( 13) comporte un circuit diviseur jouant le rôle d'un compteur, notamment binaire, et en ce que lesdits signaux de vérification sont des séries d'impulsions, ledit circuit diviseur comptant les impulsions de chaque sérle, certaines des bornes de sortie dudit circuit diviseur étant connectées à une porte NON-OU ( 15) pour délivrer lesdits signaux de retour. 2 5. Procédé de limitation de l'exploitation d'un logiciel pour ordinateur selon l'une des revendications 3 ou 4, caractérisé en ce que ladite interface est du type parallèle et en ce que l'une desdites bornes périphériques est la borne de commande de l'ordinateur, dite borne "STROBE", un signal comportant un front descendant, généré par l'ordinateur pour envoyer les données à l'unité périphérique, et arrivant sur la borne STROBE mettant ledit dispositif 3 0 (6, 10) dans l'état dit de transparence. 6. Procédé de limitation de l'exploitation d'un logiciel pour ordinateur selon la revendication 5, carectérisé en ce que l'une desdites bornes est la borne d'accusé de réception, dite "ACKNOWLEDGE", de l'interface de type parallèle, et reçoit lesdits signaux de retour venant dudit dispositif de protection (6, 10). 7. Procédé de limitation de l'exploitation d'un logiciel pour ordinateur selon la revendication 5, caractérisé en ce que l'une desdites bornes est la borne dite "PAPER-END", de l'interface de type parallèle, et reçoit lesdits signaux de retour venant dudit dispositif de protection (6, 10). 8. Procédé de limitation de l'exploitation d'un logiciel pour ordinateur selon la revendication 6 ou la revendication 7, caractérisé en ce que les autres bornes sont choisies parmi les bornes de données, appelées DATA par l'homme de l'art. 9. Procédé de limitation de l'exploitation d'un logiciel pour ordinateur selon l'une des revendications précédentes, caractérisé en ce que l'une desdites bornes reçoit un courant électrique d'alimentation pour ledit dispositif (6, 10), 10. Procédé de limitation de l'exploitation d'un logiciel pour ordinateur selon l'une des revendications précédentes 2 à 9 caractérisé en ce que le choix et l'affectation des bornes de ladite interface vis-à-vis dudit dispositif de protection déterminent un arrangement des numéros d'ordre normalisés desdites bornes formant ensemble un numéro distinctif. 1 1, Procédé de limitation de l'exploitation d'un logiciel pour ordinateur selon l'une des revendications précédentes 2 à 10 caractérisé en ce que ladite unité périphérique est une imprimante (2), une table traçante ou un modem; 12. Dispositif de limitation de l'exploitation d'un logiciel donné pour un ordinateur (1), ledit dispositif (6, 10) comprenant un circuit électronique (13) qui se connecte sur certaines des bornes périphériques d'une interface normalisée de type parallèle dudit ordinateur, caractérisé en ce que ledit circuit électronique (13) comporte un circuit diviseur jouant le rôle d'un compteur binaire dont l'entrée est reliée à une desdites bornes périphériques, la borne de remise à zéro dudit circuit diviseur étant reliée à la borne de commande dite "STROBE" de ladite interface, certaines des bornes de sortie dudit circuit diviseur étant connectées par l'intermédiaire d'une porte NON-OU (15) à la borne normalisée d'accusé de réception dite "ACKNOWLEDGE", ou à la borne normalisée dite "PAPER-END", de ladite interface. 13. Dispositif de limitation de l'exploitation d'un logiciel donné pour un ordinateur (1), ledit dispositif (6, 10) comprenant un circuit électronique (13) qui se connecte sur certaines des bornes périphériques d'une interface normalisée de type série dudit ordinateur, caractérisé en ce que ledit circuit électronique (13) comporte un circuit diviseur jouant le rôle d'un compteur binaire dont l'entrée est reliée à une desdites bornes périphériques, la borne de remise à zéro dudit circuit diviseur étant reliée à la borne normalisée numéro 4 (RTS) de ladite interface de type série, l'entrée dudit circuit diviseur étant reliée à la borne 3 5 normalisée numéro 20 (DTR), et certaines des bornes de sortie dudit circuit diviseur étant connectées par l'intermédiaire d'une porte NON-OU (15) à au moins une des bornes normalisées numéros 6 (DSR), 8 (RLSD) ou 22 (RI), de ladite interfacede type série. 26 1 0744 14. Dispositif selon la revendication 12 ou la revendication 13 caractérisé en ce qu'il se présente sous la forme d'un boîtier (6, 10) muni de bornes d'entrée et/ou de sortie ( 11, 12) enfichables sur une prise de connexion normalisée pour ladite interface.