Brevet FR2538927A1 — publié le 19840706

Système de protection des logiciels et notamment des logiciels standards. La présente invention concerne un système de protection des logiciels et notamment des logiciels standards. Au début de l'ère informatique, les constructeurs d'ordinateurs réalisaient des systèmes d'exploitation particuliers à chaque type de machine. Dans la mémoire centrale d'un ordinateur réside principalement un système d'exploitatioh et un programme objet qui est réalisé à partir d'un texte écrit en un langage appelé de haut niveau, tel que Cobol, Basic ou Fortran. Le texte est traduit en une suite de O et 1 par un compilateur. La suite de O et 1 constitue en fait ledit programme objet qui, lorsqu'il est exécuté par l'ordinateur, traite la plupart du temps des données. Ces dernières constituent en fait ce qu'on appelle communément une application de traitement tel qu'un programme de comptabilité, de paye, de gestion de stock, etc. Les différentes branches d'activité économique utilisent de plus en plus des équipements informatiques de toutes tailles. Devant la répétition de certaines données applicables à de nombreux utilisateurs distincts, les fabricants d'ordinateurs et de logiciels ont mis au point des systèmes d'exploitation qui, par leur grande diffusion, ont constitue des standards, tels que le CP/M de Digital Research. A partir de ces systèmes d'exploitation standards, des logiciels d'application standards ou progiciels, non particuliers pour un utilisateur donné, sont apparus sur le marché et leur prix s'est trouvé, en conséquence, fortement diminué grâce à leur large diffusion. Bien évidemment, chacun de ces progiciels pourrait être particularisé en fonction de telle ou telle demande d'un utilisateur.Toutefois, les modifications souhaitées et apportées sont faites sur le progiciel et ne doivent pas entraîner une refonte complète du logiciel, faute de quoi on serait ramené à créer un logiciel unique et particulier. Les progiciels présentant par définition un caractère répétitif et étant en fait exploités par différents types d'ordinateurs, les fabricants de logiciels tentent d'empêcher une prolifération non ré munérabrice pour l'auteur desdits progiciels. Plusieurs systèmes de protection contre une telle prolifération frauduleuse sont proposés. Un premier système consiste à associer à un programme objet donné en général matérialisé par une ou deux disquettes, ou autre support en général magnétique, une clef électronique qui se présente sous la forme d'un boîtier se branchant sur l'ordinateur ou le terminal à partir duquel l'ordinateur est interrogé. L'ensemble boîtier-disquettes est unique pour chaque application et l'absence du boîtier interdit le fonctionnement du programme. Même si la copie dela clef électronique est difficile à réaliser1 bien que possible, il n'en demeure pas moins vrai qu'un tel système présente des inconvénients. En effet, dès qu'un utilisateur possède plusieurs programmes de traitement, et cela est courant même dans des petites et moyennes industries, le système devient extrêmement lourd car à chaque programme correspond une clef, onéreux pour des raisons évidentes. D'autres moyens de protection existent également et concernent non plus la machine mais le système d'exploitation de l'ordinateur, c'est-à-dire en fait le logiciel de base. Un de ces moyens consiste par exemple à modifier le système d'exploitation de l'ordinateur, avant d'exécuter le programme objet, de façon à rendre impossible la copie dudit programme objet. Une telle protection contre la fraude s'accompagne malheureusement d'inconvénients graves. C'est ainsi que les copies de sauvegarde du programme objet ne peuvent être exécutées. Le fabricant du logiciel est donc amené à fournir à l'utilisateur au moins deux disquettes par logiciel utilisé. De plus, en cas de modification importante du système d'exploitation et lorsqu'elle modifie sensiblement les programmes objets, alors il est nécessaire de refaire ces derniers. Tous les systèmes de protection sont basés sur le fait qu'il faut empêcher la fraude dès le dé- part même si cela doit entraîner des inconvénients graves pour l'utilisateur. La présente invention a pour objet un système de protection des logiciels et plus particulièrement des progiciels qui ne pénalise en aucune façon les utilisateurs honnêtes mais qui, par contre, permet de prendre en défaut un fraudeur et ce, de façon irrémédiable. Le système selon l'invention consiste à mélanger aux données d'un utilisateur accrédité dudit logiciel un certain nombre d'informations, notamment au moins une information de pérennité relative à la datation des données, au moins une information aléatoire et au moins une information confidentielle de déverrouillage. Selon une autre caractéristique, au moins une information non significative ou leurre est mélangée aux données de l'utilisateur. D'autres caractéristiques apparaîtront à la lecture de la description d'un mode préféré de l'invention, donné à titre d'exemple non limitatif. Le système de protection selon la présente invention consiste à mélanger aux données de l'utilisateur un certain nombre d'informations qui permettront au fournisseur du progiciel de vérifier si l'utilisateur est de bonne ou de mauvaise foi. Une premiere information présente le caractère dit de pérennité qui, en fait, fixe la durée moyenne d'utilisation du progiciel par l'utilisateur. En effet, en fonction de la nature même du progiciel, le fournisseur peut déterminer approximativement la durée d'utilisation. C'est ainsi qu'unkrogiciel établi pour la paye du personnel est utilisé une ou deux fois par mois, soit entre 12 et 24 fois dans l'année. Un progiciel affecté à la comptabilité est utilisé, en moyenne, 2 fois par semaine, soit 100 fois environ dans l'année. En conséquence, il s'agit pour un progiciel spécifique de déterminer approximativement la période de temps qui s'est écoulée depuis le début de la mise en oeuvre du traitement de données, et ranger ce nombre, bien caché, dans lesdites données de l'utilisateur. On peut, pour des raisons de sécurité, ranger ce nombre en plusieurs endroits différents et vérin fier par la suite leur conformite. Il va de soi que ce nombre se présente de la même façon que lesdites données, c'est-à-dire par exemple représenté par des O et des 1. La deuxième information consiste en un nombre aléatoire qui est la base de la clef du progiciel et qui permet de déverrouiller le système à l'utilisateur légitime. A chaque utilisateur correspond évidemment un nombre aléatoire qui change à chaque contrôle de légitimité. Il est, de la même façon~ que l'information de pérennité, rangé et caché parmi les données de l'utilisateur. Une manière de choisir ce nombre aléatoire consiste par exemple à compter le nombre de passages par un sous-menu et au cours d'une période de temps prédéterminée. D'autres critères de choix du nombre aléatoire peuvent être retenus, à la condition que le caractère aléatoire et donc non répétitif-soit respecté et qu'il ne puisse y avoir une confusion possible avec certains des éléments du fichier de l'utilisateur. Enfin, la troisième information est relative à la fonction de validation du système. En fait, ladite troisième information constitue ce qu'on pourrait appeler un verrouillage électronique qui empêche un progiciel d'être utilisé indéfiniment. Une façon simple de choisir cette information est par exemple de diviser le nombre aléatoire affecté à l'utilisateur par un nombre premier. Le reste de la division, à 6 chiffres significatifs, constitue la clef qui déverrouille le système. Là encore, d'autres critères de choix peuvent conduire à d'autres moyens de validation. Le système de protection suivant l'invention et décrit ci-dessus est applicable lorsque les progiciels, mis å la disposition des utilisateurs par l'auteur, doivent être validés au bout de période#s de temps prédéterminées par l'auteur du progiciel. A supposer par exemple qu'une desdites périodes soit fixée à 8 mois, après la mise en route du progiciel, le traitement de données ne peut être poursuivi par blocage desdites données, ledit blocage étant provoqué par l'information de pérennité qui empêche le programme de fonctionner. Dans ces conditions, l'utilisateur prend contact avec le fournisseur du progiciel et indique le nombre aléatoire qui lui avait été affecté. Si l'utilisateur est légitime, le fournisseur lui indique le nombre de 6 chiffres, si c'est la clef choisie pour déverrouiller le progiciel. Dans l'hypothèse où l'utilisateur serait un fraudeur, alors la preuve sera faite irrémédiablement qu'il n-'est pas un auteur légitime. Même s'il bénéficie de la complicité d'un utilisateur légitime, la fraude sera dévoilée, l'information de pérennité permettant de déceler une fraude de ce genre. En effet, un utilisateur légitime ne doit pas, sauf cas rarissime, avoir besoin de déverrouiller son progiciel plusieurs fois dans les périodes d'utilisation qui lui ont été imparties. Par conséquent, chaque fois qu'une copie du progiciel aura été faite sans le consentement de l'auteur et/ou du fournisseur, le fraudeur sera dévoilé au bout d'un temps variable et limité entre la date de la copie et celle à laquelle le progiciel doit normalement s'arrêter de fonctionner. Chacun peut constater qu'au contraire des sys tèmes rappelés en préambule, la présente invention permet la copie d'un progiciel mais peut induire un grave préjudice à l'utilisateur frauduleux, préjudice cependant totalement et immédiatement réparable au gré de l'auteur du progiciel. D'autre part, on peut également compliquer le système de protection selon l'invention, en introduisant dans les données de l'utilisateur plusieurs informations de même type. Il en est notamment ainsi pour l'information de pérennité qui peut être déduite de la comparaison entre plusieurs moyens de datation. De même, on peut générer plusieurs nombres aléatoires cachés parmi les données en des endroits différents suivant le degré d'invulnérabilité souhaité. Quant à la fonction de validation, elle peut résulter de plusieurs clefs de verrouillage qui se déduisent par un algorithme plus ou moins complexe à partir desdits nombres aléatoires. Dans tout ce qui précède, on fait appel à des informations utiles pour le système de protection. Mais rien n'empêche d'introduire également des leurres parmi les données, lesdits leurres n'ayant d'autre fonction que de rendre plus invulnérable la protection. Ces leurres, comme les autres informations, seront dispersés et bien cachés pour qu'ils soient très difficiles à retrouver. Il est à noter que l'introduction de toutes ces informations ne limitent pas pour autant la capacité des données car, en réalité, un système de protection très complexe n'utilise qu-'une infime partie de la mémoire dévolue aux données de l'utilisateur, ce qui est parfaitement acceptable même pour des progiciels simples. Bien entendu, l'invention n'est nullement limitée au mode de réalisation de l'exemple décrit elle elle est susceptible de nombreuses variantes accessibles à l'homme de l'art, suivant les applications envisagées et sans s'écarter pour cela du cadre de l'invention. REVENDICATIONS 1. Système de protection des logiciels et notamment des logiciels -standards de traitement de données, caractérisé en ce qu'il consiste à mélanger aux données d'un utilisateur accrédité dudit logiciel un certain nombre d'informations, notamment au moins une information de pérennité relative à la datation des données, au moins une information aléatoire et au moins une information confidentielle de déverrouillage. 2. Système selon-la revendicatioh I, caractérisé en ce qu'au moins une information non significative ou leurre est mélangée aux données de l'utilisateur. 3. Système selon la revendication 1, caractérisé en ce qu'après chaque validation du logiciel au moins les informations aléatoire et de validation sont changées. 4. Système selon la revendication 1, caractérisé en ce que l'information de pérennité est la durée d'utilisation du logiciel. 5. Système selon la revendication 1, caractérisé en ce que l'information de déverrouillage est constituée par exemple par le reste à 6 chiffres près, de la division d'un nombre aléatoire par un nombre premier. 6. Système selon les revendications précédentes, caractérisé en ce qu'au moins une desdites informations est introduite plusieurs fois dans les données de l'utilisateur et en des emplacements différents.