Brevet FR2779543A1 — publié le 19991210

PROCEDE DE PROTECTION DE LOGICIEL La présente invention est relative à la protection des systèmes informatiques et plus particulièrement à la protection des logiciels. On a proposé, en informatique, de protéger les logiciels au moyen de mots de passe. En général le mot de passe est codé et enregistré dans le logiciel protégé. Dans ces conditions, un utilisateur peut recopier le logiciel et l'installer sur une nouvelle machine ou ordinateur en utilisant le mot de passe utilisable avec le logiciel recopié. Une telle protection a été jugée insuffisante et l'on s'est tourné vers des éléments physiques de mémoires indépendants de l'ordinateur et du logiciel et contenant des informations nécessaires au logiciel pour pouvoir le mettre en oeuvre. Les informations contenues dans cet élément, lequel doit être connecté sur l'ordinateur pour pouvoir mettre en oeuvre le logiciel, ne peuvent pas être copiées de manière logique par l'ordinateur, ce qui rend la copie du logiciel sur une autre machine inopérante. D'autres propositions pour la protection des logiciels ont fait l'objet de publications. Le brevet US 4 757 534 décrit l'incorporation, à l'intérieur d'un logiciel, d'un procédé d'encryptage de manière à ne permettre l'utilisation du logiciel que sur une machine déterminée ou son utilisation sur différentes machines lorsque l'utilisateur possède une carte à puces ou composants actifs. Dans ce document, l'utilisateur fournit un mot de passe au moment de l'installation du logiciel de manière à dédier le logiciel à une machine unique, rendant ainsi les copies ultérieures pratiquement impossibles. Dans le brevet US 5 509 070 on a proposé de fournir un logiciel comportant deux modes de fonctionnement. Un mode de fonctionnement de 2 5 démonstration disponible par copie simple du logiciel et accessible sans mot de passe, et un mode amélioré, comprenant des fonctionnalités supplémentaires, pour lequel il faut rentrer un mot de passe fourni par le propriétaire du logiciel. Les fonctionnalités proposées dans le mode amélioré sont automatiquement désactivées lorsqu'on recopie le logiciel sur un autre ordinateur. Dans le brevet EP 0 679 980 le logiciel est encrypté et ne peut être utilisé qu'avec une clé permettant le décryptage. Cette clé est fonction de la machine sur laquelle est copié le logiciel, évitant ainsi les copies frauduleuses à partir du logiciel installé sur une machine vers une autre machine. Cette clé peut aussi comprendre des fonctionnalités permettant l'utilisation temporaire du logiciel en vue d'un essai préalable à l'achat définitif. L'invention vise à fournir un procédé de protection d'un logiciel facile à mettre en oeuvre et permettant plusieurs niveaux de protection. Dans un mode de fonctionnement "basse protection", le logiciel est livré soit sous la forme d'une ou plusieurs disquettes ou est accessible par le réseau informatique, par exemple Internet. Lors de la première installation, l'utilisateur n'a pas besoin de fournir de clé pour déverrouiller le fonctionnement du logiciel. Une clé générée de manière transparente en interne autorise le fonctionnement du logiciel pour une période déterminée, permettant ainsi une distribution en grande quantité en vue de publicité, d'essai avant achat ou autre. Ce type de protection permet l'installation du logiciel sur plusieurs machines et le fonctionnement de ce logiciel sur chaque machine pendant une période donnée. A la fin de cette période, le logiciel mettant en oeuvre l'invention est automatiquement verrouillé et incite l'utilisateur à prendre contact avec l'éditeur du logiciel en vu d'acquitter des droits pour être autorisé à utiliser le logiciel. Dans un mode de fonctionnement "moyenne protection", le logiciel est soit livré sous la forme d'une ou plusieurs disquettes, soit accessible par le réseau informatique, par exemple Internet, et lors de la première installation le logiciel réclame la fourniture d'une clé pour déverrouiller le fonctionnement du logiciel. Cette clé peut être obtenue gratuitement par exemple après contact avec l'éditeur soit par réseau, soit par téléphone, soit par tout autre moyen, permettant ainsi de prendre des renseignements sur l'utilisateur en vu de se constituer un fichier client. La clé fournie autorise le fonctionnement du logiciel pendant une période donnée. A la fin de cette période, le logiciel mettant en oeuvre l'invention est automatiquement verrouillé et incite l'utilisateur à prendre à nouveau contact avec l'éditeur du logiciel en vu d'acquitter des droits pour être autorisé à utiliser le logiciel. Ce type de protection convient pour la distribution de logiciels en moyenne quantité et en particulier à la distribution de programmes en test. Dans un mode de fonctionnement "haute protection", le logiciel est livré soit sous la forme d'une ou plusieurs disquettes ou est accessible par le réseau informatique, par exemple Internet. Lors de la première installation le logiciel réclame la fourniture d'une clé pour déverrouiller le fonctionnement du logiciel. L'utilisateur rentre en contact avec l'éditeur du logiciel et lui fournit un code aléatoire généré par la machine et contenant l'identification de la machine de manière à ce que cet éditeur de logiciel puisse lui fournir, moyennant rétribution, une clé lui autorisant la mise en oeuvre de ce logiciel. Ce type de fonctionnement suivant l'invention dans lequel le code aléatoire contient 1' identification de la machine permet de vérifier que le logiciel n'a pas déjà été installé sur cette machine. Ce type de protection convient pour contrôler la distribution de logiciels vendus en général en nombre relativement peu important. Dans chacun des modes de protection le procédé suivant l'invention interdit la réinstallation facile du logiciel sur la même machine, interdisant ainsi une période d'essai se renouvelant de manière continue. De plus, le procédé suivant l'invention interdit l'utilisation du logiciel dont les fichiers ont été copiés sur une machine à partir d'une machine sur laquelle a été installé le logiciel. Le procédé suivant l'invention ne faisant appel à aucun composant physique est facile à installer et à mettre en oeuvre. Le procédé suivant l'invention permet la protection d'un logiciel fourni par un éditeur de manière à ne permettre son installation et son exécution que sur un seul matériel déterminé. Le logiciel qui est fourni sous la forme d'un fichier compacté comprenant des informations et qui nécessite la fourniture d'une clé d'utilisation, cohérente avec une donnée générée et enregistrée par le logiciel, pour autoriser son exécution comprend les étapes suivantes: a) lors de l'installation sur le matériel déterminé, la copie décompactée des informations fournies par le fichier compacté afin de restituer l'ensemble des fichiers constituant le logiciel; b) l'exécution du logiciel enchaînée à cette opération d'installation de manière à déterminer un ensemble de paramètres identifiant de manière univoque le matériel déterminé sur lequel le logiciel est copié; c) la vérification que cette installation n'a pas déjà eu lieu, et: cl) dans le cas o cette installation a déjà eu lieu, la création d'une donnée aléatoire qui est enregistrée et affichée et qui annule la cohérence entre la clé et la donnée générée et enregistrée de manière à entraîner la fourniture d'une nouvelle clé; ou c2) dans le cas o cette installation n'a pas déjà eu lieu, soit la création d'une clé autorisant l'exécution du logiciel pendant une période déterminée, soit la fourniture, au moyen d'une interface appropriée, d'une clé fournie par l'éditeur à partir de la donnée générée, enregistrée et affichée par le logiciel; et d) l'enregistrement de l'ensemble des paramètres caractérisant le matériel déterminé en une première localisation par concaténation avec un fichier exécutable du logiciel et en au moins une seconde localisation par création d'un champ dans un fichier système; ces paramètres enregistrés et ce champ étant utilisés lors de la vérification prévue à l'étape c). Avantageusement, l'acquisition de la licence d'utilisation du logiciel est matérialisée par la fourniture d'une clé d'autorisation. Cette clé dépend de l'identifiant de la machine sur laquelle est installé le logiciel. De ce fait la licence d'utilisation n'est valable que pour une machine unique déterminée. Dans un mode de réalisation particulièrement intéressant la clé commande la durée d'utilisation possible pour le logiciel. Cette durée d'autorisation incluse dans la clé peut être choisie par l'éditeur de logiciel comme dans les modes de fonctionnement "haute protection" et "moyenne protection" ou prédéterminée comme dans le mode de fonctionnement "basse protection". Un autre avantage de l'invention réside dans le fait qu'il rend pratiquement inutile tout essai de copie du logiciel installé sur une machine donnée vers une autre machine car la clé dépend de la machine sur lequel le logiciel est installé. Un autre avantage de l'invention réside dans le fait que la clé est rendue inutilisable à chaque tentative de tricherie telle que par exemple réinstallation, modification de la date et de l'heure courante de la machine, copie/suppression de fichiers d'identification, etc. Dans un mode de réalisation envisagé l'invention permet la protection de plusieurs logiciels différents et la délégation à un sous- traitant de la gestion des autorisations. D'autres avantages apparaîtront à la lecture de la description et des revendications faite en référence au dessin annexé dans lequel: La figure 1 représente schématiquement les diverses étapes permettant la commercialisation d'un logiciel; La figure 2 représente un mode de réalisation d'un fichier d'identification; La figure 3 représente un organigramme des étapes du procédé mis en oeuvre par l'invention; La figure 4 représente schématiquement les opérations mises en oeuvre par le logiciel suivant l'invention lors de la validation de la protection; La figure 5 représente schématiquement les opérations mises en oeuvre par le logiciel suivant l'invention lors de l'installation du module de protection; La figure 6 représente schématiquement les opérations mises en oeuvre par le logiciel suivant l'invention lors de la validation de la clé d'utilisation La figure 7 représente un autre mode de réalisation du fichier d'identification selon l'invention utilisable pour différents logiciels; La figure 8 représente schématiquement le mode de fonctionnement du logiciel mettant en oeuvre le procédé suivant l'invention dans une utilisation permettant la protection de deux logiciels La figure 9 représente schématiquement les fonctions à mettre en oeuvre pour permettre la modification dynamique d'un fichier. Pour comprendre le fonctionnement du procédé suivant 1' invention, il est préférable de rappeler succinctement le mode de fonctionnement habituel d'une protection logicielle. Un logiciel, non protégé ou peu protégé, est composé d'un nombre déterminé de fichiers, par exemple, un exécutable et des librairies dynamiques (dans les systèmes d'exploitation Windows, et tel que représenté sur la figure 1, on les nomme DLL). En localisant l'ensemble de ces fichiers puis en les recopiant à partir d'un site installé ou machine installée, sur un autre site ou machine, le logiciel peut être mis en oeuvre sur la machine nouvellement installée moyennant une éventuelle reconfiguration telle que par exemple le numéro de port parallèle, les interruptions, la vitesse de transmission, etc. Un logiciel peu protégé nécessite un identifiant tel qu'un mot de passe ou autre pour être déverrouillé. Dans les logiciels peu protégés l'identifiant d'une machine installée peut être utilisé sur une autre machine. Le logiciel peut donc être relativement facilement copié puis utilisé. L'invention se propose de rendre l'utilisation d'une copie sur une machine cible d'un logiciel déjà installé sur une autre machine pratiquement impossible sans l'autorisation de l'éditeur du logiciel. L'expression "éditeur du logiciel" utilisée dans la présente demande désigne toute personne susceptible de fournir une clé permettant d'autoriser légalement l'utilisation du logiciel. En général cette personne sera propriétaire des droits relatifs à l'exploitation du logiciel ou son représentant. La figure 1 représente les étapes usuelles utilisées lors de la réalisation et de la commercialisation de logiciels. La figure 1A représente le logiciel lors de sa conception. Le logiciel comprend un ou plusieurs fichiers "EXE" comprenant les ordres d'exécution des opérations, un ou plusieurs fichiers de données "DATA", et une ou plusieurs librairies "DLL" contenant les routines adressées par le ou les fichiers "EXE". Il est bien connu de fournir des logiciels à partir de disquettes ou par l'intermédiaire d'un réseau tel que par exemple Internet. La plupart des logiciels sont fournis sous forme compressée; c'est ce que représente la flèche reliant la figure 1A à la figure IB. Comme représenté à la figure 1B, l'ensemble des fichiers constituant le logiciel est compressé de manière à prendre moins de place et est mis à disposition des futurs utilisateurs soit sur un réseau, par exemple de type Internet, soit par disquettes, sous la forme d'un fichier auto- extractif. L'auto-extraction consiste à extraire tous les fichiers un à un puis à les copier sur le disque dur de la machine du client après les avoir décompressés grâce à un installateur; cette opération est représentée par la flèche conduisant de la figure 1B à la figure 1C. La figure 1C représente les fichiers du logiciel une fois décompressés. Comme on le remarquera, l'utilisateur ne peut voir les fichiers du logiciel qu'après l'installation de ce dernier. Il est courant qu'un utilisateur un peu curieux et désireux de bénéficier de sa connaissance en informatique recherche les noms des divers fichiers installés utiles au logiciel et les recopient sur le disque dur d'une autre machine. De plus, il est relativement facile de vérifier les tailles des fichiers pour connaître les fichiers modifiés lors de l'installation de la protection. L'invention propose donc de créer, dans plusieurs points d'ancrage cachés, comme représenté par les zones Info 1 Info 2 et Info 3 sur la figure 1C, une information relative au matériel ou à la machine sur laquelle on a copié le logiciel de manière à ne pas pouvoir utiliser facilement les fichiers transportés d'une machine sur une autre machine. De plus, il est courant que les utilisateurs essaient de modifier la date et l'heure de leur machine de manière à faire croire au système qu'une durée déterminée ne s'est pas encore écoulée. Il est donc préférable de conserver une information relative à la date d'installation ainsi qu'une information relative à la date de la dernière utilisation. Pour éviter que le fichier contenant ces informations ne soit trop facilement détecté, les informations sont incrustées ou concaténées à l'un ou à plusieurs fichiers dynamiques du logiciel. Il est évident que l'on peut disposer ces informations dans plusieurs fichiers. Avantageusement, et pour éviter que la modification de la taille du fichier touché par une telle concaténation ne soit détectée lors de la mise en oeuvre de la protection, l' installateur enchaînera automatiquement l'opération d'installation de la protection à la création et au décompactage des fichiers fournis par l'éditeur. De ce fait, l'utilisateur ne peut jamais voir la taille des fichiers originaux, tel que par exemple la taille des fichiers "DLL modifiée", "Registry" et "Répertoire Système" représentés à la figure 1C, et ne se doute pas que ces fichiers ont été modifiés dynamiquement après installation du logiciel. Ce type de fonctionnement équivaut à livrer à chaque utilisateur une version différente du logiciel, du point de vue code programme. Dans un mode de réalisation, on a utilisé comme identifiant de la machine sur laquelle le logiciel est installé, appelée aussi dans la présente demande signature du système d'exploitation, le nom de la machine et le numéro de série du disque dur principal. Toutefois il est évident, comme on peut le voir sur la figure 2, que l'on peut utiliser d'autres éléments, soit enregistrés dans la machine tels que par exemple la capacité du disque dur principal, la capacité de la mémoire, etc., soit fournis au moyen du clavier tels que par exemple le nom de l'utilisateur, l'adresse IP lorsque la machine est en réseau, etc. De plus les informations relatives à la date et à l'heure d'installation et à la date et à l'heure de dernière utilisation pourront aussi comprendre le contenu du compteur d'impulsions horloges de la machine. Le contenu de ce compteur ne pouvant que très difficilement être modifié. Ces informations ainsi que d'autres, qui seront explicitées plus en détail par la suite, sont regroupées dans un ou plusieurs fichiers de manière à être testé lors de la validation de la protection. Ces fichiers sont appelés par la suite "point d'ancrage". Le logiciel, conçu suivant l'invention fonctionne de la manière représentée à la figure 3. L'utilisateur, après avoir acquis le logiciel contenu soit sur des disquettes soit importé au moyen du réseau, lance l'exécution de l'installateur 10. Avantageusement, on pourra utiliser comme installateur 10, celui connu sous la référence "Installshield" distribué par Installshield Corporation. L'exécution de l'installateur, en 15, décompresse et copie les fichiers du logiciel. La mise en oeuvre de l'invention requiert un installateur I0 dans lequel on peut introduire des paramètres permettant l'exécution automatique de certains fichiers. Une fois que les fichiers relatifs au logiciel ont été copiés, l'installateur déclenche en 20 l'exécution du logiciel. Comme on peut le voir sur la figure 3, cette exécution peut être déclenchée manuellement par l'opérateur. Toutefois, suivant l'invention, la première mise en oeuvre est obtenue automatiquement par une instruction secrète fournie par l'installateur. De cette manière le logiciel installe automatiquement un module de protection "PL.DLL".Comme on l'a mentionné préalablement le logiciel possède au moins deux modes de fonctionnement; l'un permettant l'installation de la protection et l'autre l'exécution normale. Pour différencier les modes de fonctionnement, le logiciel doit donc pouvoir prendre en compte des paramètres de lancement. Par exemple, lorsque le nom du fichier principal exécutable du logiciel est "logiciel.exe", la commande qui sert à démarrer le logiciel en mode normal est "logiciel. exe". Avantageusement, la commande d'installation de la protection pourra être "logiciel.exe Installer_protection" dans laquelle "Installerprotection" est un paramètre de lancement qui n'est pas divulgué aux utilisateurs. Avantageusement, seul le créateur du logiciel connaîtra le nom du paramètre de lancement. L'installateur exécute cette commande juste après l'installation des fichiers. Après lancement de l'exécution du logiciel, en 20, le logiciel vérifie l'existence d'un paramètre programme en 22. Si le paramètre programme est présent, l'installation du module de protection est mise en oeuvre en 24. Lors de la mise en oeuvre du module de protection, ce dernier calcule tout d'abord les données "Système" telles que représentées par exemple à la figure 2. Ensuite, dans le mode de réalisation décrit comme exemple, il crée, en 26, un premier point d'ancrage Info 1 par incrustation ou concaténation de ces informations avec un ou plusieurs fichiers DLL. La description du mode de fonctionnement du logiciel pour créer le point d'ancrage Info 1 sera décrite plus en détail par la suite. Comme on le voit sur la figure 3, après avoir créé le fichier Info 1, le logiciel parvient à l'étape 40 dans laquelle on teste la validation de la protection. Une fois cette opération faite, lorsque l'utilisateur a acquis les droits d'utilisation du logiciel, il pourra utiliser le logiciel. Lorsque le fonctionnement du logiciel est déclenché manuellement par un utilisateur, ce dernier rentre au clavier la seule commande de lancement qui lui est connue et qui, comme indiqué préalablement, peut être "logiciel.exe". Cette commande n'est pas suivie par un paramètre de lancement et donc l'opération 22 dirige le logiciel par la branche "Non" vers l'opération 40. Après vérification, l'utilisateur qui a acquis les droits d'utilisation du logiciel pourra utiliser le logiciel. Le mode de fonctionnement de cette opération de validation de la protection 40 est décrit en référence à la figure 4. Tout d'abord le logiciel calcule un identifiant du "Système" en 60; cet identifiant est aussi appelé par la suite "paramètres" du système ou informations "Système". Ensuite il vérifie en 62 l'existence du point d'ancrage Info 1. Si ce point d'ancrage n'existe pas, le module de protection considère qu'il y a eu fraude et réclame une clé d'autorisation par la 2 0 branche qui conduit en 200 puisque, soit ce fichier vient d'être créé lorsque c'est la première installation, soit cette opération 40 a été déclenchée manuellement et le fichier Info 1 a été créé préalablement et devrait être présent. Lorsque le fichier Info I est présent, le logiciel compare en 64 les informations "Système" avec le contenu du fichier Info 1. Lorsqu'il y a concordance entre les informations 2 5 "Système", appelées aussi Sysinfo, et le fichier Info 1, le logiciel teste en 66 l'existence du fichier Info 2. Si les informations "Système" et le contenu du fichier Info 1 ne sont pas en concordance, le logiciel réclame l'introduction d'une clé d'autorisation, par la branche qui conduit en 200, puisqu'il considère qu'il y a eu fraude, les caractéristiques de la machine ayant été modifiées. Ceci peut être dû par exemple à une copie des fichiers du logiciel d'une machine sur une autre machine. Lorsque le logiciel constate la non existence du fichier Info 2, il vérifie en 68 la non existence du fichier Info 3. Si ces deux fichiers n'existent pas, il considère que le fonctionnement en cours de déroulement correspond bien à une première installation que l'on décrira en liaison avec la figure 5. Lorsque le fichier Info 3 existe et que le fichier Info 2 n'est pas présent, le logiciel considère qu'il y a eu fraude puisque les deux fichiers sont créés lors du déroulement de la première installation. A chaque fois que le logiciel considère qu'il y a eu fraude, il réclame l'introduction d'une clé d'autorisation, par une branche qui conduit en 200. Lorsque le fichier Info 2 existe, le logiciel vérifie en 70 que les informations "Système" et le contenu du fichier Info 2 sont en concordance. Lorsque les informations "Système" et le contenu du fichier Info 2 ne sont pas en concordance, le logiciel considère qu'il y a eu fraude. Le logiciel teste ensuite en 72 l'existence du fichier Info 3. Lorsque le fichier Info 2 existe et que le fichier Info 3 n'est pas présent, le logiciel considère qu'il y a eu fraude puisque les deux fichiers sont créés lors du déroulement de la première installation et réclame l'introduction d'une clé d'autorisation. Lorsque le fichier Info 3 existe, le logiciel vérifie en 74 que les informations "Système" et le contenu du fichier Info 3 sont en concordance. Lorsque les informations "Système" et le contenu du fichier Info 3 ne sont pas en concordance, le logiciel réclame l'introduction d'une clé d'autorisation puisqu'il considère qu'il y a eu fraude. Dans le mode de réalisation utilisé, le second point d'ancrage, Info 2, se trouve caché dans le fichier système appelé "Registry" pour Windows; le troisième point d'ancrage, Info 3, se trouve caché dans un répertoire système. Lorsque l'installation se déroule correctement les fichiers Info 1, Info 2 et Info 3 sont en concordance. L'opération de validation de la protection consiste donc comme on vient de le décrire tout d'abord à déterminer l'identifiant de la machine sur laquelle tourne le logiciel puis à vérifier l'intégrité de la protection, c'est-à-dire que les points d'ancrage n'ont pas été modifiés. Dans le mode de réalisation utilisé, les trois fichiers Info 1, Info 2 et Info 3 doivent être identiques et l'on vérifie l'identité de ces trois fichiers Info 1, Info 2 et Info 3 avec l'identifiant de la machine. De plus, lors de la validation, on vérifiera comme on le verra par la suite que la date/heure courante de la machine est supérieure à la date/heure de dernière utilisation enregistrée dans les points d'ancrage. L'ensemble de ces vérifications permettent d'éviter les fraudes telles que la réinstallation, la copie de fichiers entre machines, la modification de la date et de l'heure courante de la machine. Dans le cas o les informations propres à la machine, c'est à dire Sysinfo, ne sont pas en concordance avec le contenu des points d'ancrage, le logiciel constate qu'il y a eu très probablement fraude par copie de fichiers entre deux machines et considère que la protection du logiciel doit être "haute" et demande à l'utilisateur une clé d'utilisation pour pouvoir continuer son exécution. Dans ce dernier cas le logiciel est renvoyé à l'opération 200 (voir figure 5). Comme indiqué préalablement, le logiciel présente une possibilité d'avoir plusieurs niveaux de protection. Pour ce faire, après la validation de la protection, le logiciel teste en 80 le niveau de protection et la nécessité de fournir une clé autorisant l'utilisation légale du logiciel. Lorsque le niveau de protection est "bas", les premières utilisations sont gratuites afin que l'utilisateur puisse tester les fonctionnalités offertes par le logiciel pendant une période déterminée avant d'acquérir, en contrepartie d'un prix, le droit légal d'utilisation de ce logiciel. Le programme peut être obtenu soit par copie à partir d'un réseau de type Internet soit à partir de disquettes. Aucune limitation n'est prévue et il n'y a pas besoin de fournir une clé pour obtenir le fonctionnement du logiciel pendant une période d'essai. Dans ce type de protection, le logiciel recopie en 82 dans une zone I.C. un identifiant clé prédéterminé qui a été enregistré préalablement dans le logiciel. Puis il recopie en 84 dans une zone C.U. une clé d'utilisation prédéterminée, elle aussi enregistrée préalablement dans le logiciel. Avantageusement, comme on le verra par la suite, la clé d'utilisation permet de n'autoriser le fonctionnement du logiciel que pendant une durée limitée ou pendant un nombre d'utilisation déterminé. Après avoir créé la clé d'utilisation C.U. et l'identifiant clé I.C., le logiciel calcule en 86 un identifiant logiciel basé sur l'identifiant unique de la machine I.U.M. et sur l'identifiant clé I.C. qui comme on le 2 0 verra par la suite peut être fonction du logiciel. Après avoir généré automatiquement son identifiant logiciel, ce dernier vérifie que la durée autorisée n'est pas terminée. Le délai d'autorisation est calculé, en 110, d'une manière qui sera décrite plus en détail par la suite, en fonction des paramètres I.C. et C.U. La date/heure de dernière utilisation DHDU est alors remplacée, en 112, par la date/heure actuelle DHA. Les informations "date/heure de dernière utilisation" DHDU, "Date/heure actuelle" DHA, "Identifiant clé" I.C., "Clé d'utilisation" C.U. et "Délai autorisé" DA sont alors mises à jour dans Info 1 et les fichiers Info 2 et Info 3 sont créés. Dans le mode de réalisation utilisé les trois points d'ancrage sont identiques entre eux. Il est évident que l'on peut utiliser des points d'ancrage supplémentaires. De plus, chaque point d'ancrage peut ne contenir qu'une partie du contenu des autres points d'ancrage. La dissémination des informations utiles à la vérification de la concordance redondante de l'ensemble des informations nécessaires pour l'autorisation d'accès rend la protection plus efficace. Lorsque le niveau de protection est "moyen", les premières utilisations sont gratuites afin que l'utilisateur puisse tester les fonctionnalités offertes par le logiciel 1[ pendant une période déterminée avant d'acquérir, en contrepartie d'un prix, le droit légal d'utilisation de ce logiciel. Le programme peut être obtenu soit par copie à partir d'un réseau de type Internet soit à partir de disquettes. Aucune limitation n'est prévue mais il faut fournir une clé pour obtenir le fonctionnement du logiciel. La clé d'utilisation peut être obtenue automatiquement après fourniture de renseignements divers soit par téléphone soit par le réseau, ce qui permet de se constituer facilement un fichier client. Dans ce type de protection, le logiciel recopie en 92 dans une zone l.C. un identifiant clé prédéterminé qui a été enregistré préalablement dans le logiciel. Puis il calcule en 96 l'identifiant logiciel I.L. basé sur l'identifiant unique de la machine I.U.M et sur l'identifiant clé I.C. qui, comme on le verra par la suite, peut être fonction du logiciel. Ensuite il demande, en 114 l'introduction d'une clé d'utilisation. Cette demande lui est fournie au moyen d'un écran de présentation mentionnant l'identifiant logiciel I.L. Avantageusement, comme on le verra par la suite, la clé d'utilisation qui lui est fournie permet de n'autoriser le fonctionnement du logiciel que pendant une durée limitée ou pendant un nombre d'utilisation déterminé. Après avoir rentré la clé d'utilisation qui lui a été fournie, le logiciel vérifie la validité de cette dernière de la manière décrite plus loin en référence à la figure 6. Lorsque cette clé n'est pas valide l'utilisation du logiciel est refusée. Lorsque la clé est valide le fonctionnement du logiciel est envoyé à l'opération 112 décrite préalablement et se poursuit de la manière décrite ci-dessus. Lorsque le niveau de protection est "haut", dès les premières utilisations il est nécessaire de fournir une clé d'autorisation. Le logiciel génère automatiquement en 102 un "identifiant clé d'utilisation" aléatoire permettant de fournir une clé d'utilisation spécifique à chaque programme installé. Le fonctionnement du logiciel est ensuite envoyé à l'opération 94 et se poursuit comme décrit précédemment. On remarquera que c'est également cette partie du logiciel qui est utilisée lorsque le module de protection a considéré qu'il y avait eu fraude. En effet, le logiciel génère en 102 un identifiant clé I.C. aléatoire qui comme on le verra par la suite détruit la cohérence entre l'identifiant clé 1.C. et la clé d'utilisation C.U. enregistrés dans les points d'ancrage. Nous venons de décrire le processus de création des fichiers Info 2 et Info 3 pour les trois modes de protection prévu. Retournons maintenant à la figure 4 décrivant l'opération de validation de la protection 40. Après avoir vérifié l'existence et la concordance des fichiers Info 1, Info 2 et Info 3, le logiciel vérifie en 75 que la date/heure actuelle DHA est supérieure à la date/heure de dernière utilisation DHDU que l'on trouve dans les points d'ancrage. Si ce n'est pas le cas, le logiciel considère qu'il y a eu tentative de fraude. Lorsque la condition précédente est valide, le logiciel vérifie en 76 que le délai autorisé par la clé en cours est inférieur au délai écoulé depuis la première installation. Si ce n'est pas le cas, le fonctionnement du logiciel n'est pas autorisé. Si le délai autorisé n'est pas totalement écoulé, le logiciel met à jour en 77 et 78 les zones de date/heure de dernière utilisation et de date/heure actuelle des fichiers Info 1, Info 2 et Info 3 puis autorise la poursuite du processus commandé par le logiciel. Lors des opérations commandées par le module de validation de la protection, le logiciel contrôle la validité d'une clé d'utilisation fournie par l'utilisateur. La figure 6 représente schématiquement les diverses opérations réalisées par le logiciel. Le logiciel calcule, enl20, le délai autorisé D.A. par la clé d'utilisation. Ce délai obtenu au moyen d'une formule contenu dans le logiciel dépend non seulement de la clé d'utilisation fournie mais est aussi fonction de l'identifiant logiciel. Après avoir calculé ce délai, dans le mode de réalisation représenté qui contient des contraintes supplémentaires, le logiciel vérifie en122 que ce délai est compris dans un intervalle donné déterminé dont les bornes sont DAmin et DAmax Dans le cas o cette condition n'est pas remplie, le logiciel considère que la clé fournie est invalide. Dans ce cas le logiciel propose au moyen d'un écran de présentation d'effectuer une nouvelle tentative pour saisir la clé d'utilisation ou de quitter le programme. Il est évident que le logiciel peut être prévu pour limiter le nombre de tentatives de saisies de la clé d'utilisation. Lorsque la condition préalable est vérifiée, le logiciel teste en 126, si le délai calculé en 120 est égal au délai maximum autorisé. Dans ce cas et par hypothèse pour le mode de réalisation représenté la période d'utilisation sera considérée comme illimitée dans le temps; les droits d'utilisation ayant été achetés pour une durée illimitée. Lorsque le délai calculé est inférieur au délai maximum autorisé, ce délai représentera la période d'autorisation à partir de l'installation. Décrivons maintenant la structure possible pour une clé d'utilisation. Dans un mode de réalisation particulier du logiciel suivant l'invention, pour permettre à l'éditeur de fournir une clé d'utilisation, le logiciel affiche sur un écran de visualisation une information dont le contenu peut être décrypté pour en déduire l'identifiant clé enregistré dans l'ordinateur. Avantageusement, l'information affichée sur l'écran contient aussi des informations relatives à la machine utilisée. De cette manière, l'éditeur peut savoir si le logiciel est implanté sur une machine déjà connue ou si le logiciel est implanté sur une nouvelle machine. La clé d'utilisation est construite à partir de l'identifiant logiciel I. L. qui est affiché sur un écran de visualisation et qui est décrypté de manière à obtenir l'identifiant clé I.C. enregistré dans la machine. Dans un mode de réalisation particulier, la clé d'utilisation C.U. est formée à partir d'une clé de base et de la durée de la période d'autorisation du logiciel. La clé de base est le résultat d'une formule mathématique ayant comme variable un identifiant clé fourni par le logiciel cet identifiant étant un nombre. Pour obtenir la clé d'utilisation on ajoute à ce résultat un nombre qui est une fonction de la durée d'autorisation du logiciel. Dans le mode de réalisation utilisé, le choix de la formule mathématique utilisée pour engendrer la clé de base et le choix de la fonction utilisée pour transformer la durée d'autorisation permettent de fournir des clés d'utilisation comprises entre une valeur minimale et une valeur maximale. Comme indiqué préalablement, en mode de protection moyen et bas l'identifiant clé est pré-enregistré dans le logiciel tandis qu'en mode de protection haut l'identifiant clé est une donnée aléatoire. Il est évident que la formation de la clé d'utilisation, au lieu de dépendre de l'addition de deux formules mathématiques peut être une formule mathématique unique ayant deux variables ou une combinaison de formules mathématiques faisant intervenir deux variables. On peut aussi utiliser une table de consultation à double entrée. Décrivons maintenant en référence à la figure 9 une des possibilités pour modifier par concaténation les fichiers utilisés par le programme. En général, lorsque le système d'exploitation exécute un programme chargé à partir d'un fichier exécutable ou librairie, le fichier est bloqué en écriture. Dans ces conditions on ne peut pas modifier ou effacer ce fichier utilisé par le système. C'est le cas des systèmes d'exploitation Windows. Pour pouvoir contourner cet obstacle et comme schématisé sur la figure 9, le logiciel suivant l'invention copie tout d'abord, flèche 1, le fichier "PL.DLL" et utilise cette copie, flèche 2, pour accéder aux routines de protection. De cette façon le fichier original "PL.DLL" n'est pas en utilisation et peut être modifié, flèche 3, grâce aux informations fournies par la copie de "PL.DLL". Dans un autre mode de réalisation, schématisé à la figure 8, le module de protection permet de gérer plusieurs logiciels. Pour ce faire, la structure des fichiers Info 1, Info 2 et Info 3 sera modifiée, par exemple, de la manière schématisée sur la figure 7. Il est avantageux de prévoir dès la première installation un fichier de taille suffisamment importante pouvant gérer plusieurs logiciels en réservant la place des "informations logiciel" futures. Ceci permet de ne pas modifier la taille du fichier par l'introduction par concaténation de données supplémentaires contenant les "informations logiciel" ajoutées. Le champ "nombre de logiciels protégés" permet de savoir combien de sousstructures "informations logiciels" peuvent exister. Un logiciel protégé communique son identité lorsqu'il demande un service au module de protection. Grâce à 1' identité fournie, le mécanisme de protection trouve la sousstructure correspondant au logiciel. Si la sous-structure n'existe pas encore, celle-ci sera créée, initialisée et ajoutée à Info 1, Info 2 et Info 3. Par défaut, le module de protection traite la saisie de la clé d'utilisation et la validation de la durée de la licence de la manière décrite en référence aux figures 3 à 5. Pour augmenter la flexibilité, ces opérations peuvent être traitées par le logiciel à protéger. Cela permet aux logiciels de personnaliser le comportement de la protection en utilisant par exemple des formules de calculs différentes pour des logiciels différents ou même pour des versions différentes. Il est évident que l'un des points d'ancrage peut être plus facilement accessible à un utilisateur connaissant un peu l'informatique et qui désire contourner le fonctionnement normal. Dans ce cas, la modification de ce fichier entraînera la modification automatique de "l'identifiant clé" et la détection d'une tentative de fraude. Il est aussi évident que la sauvegarde de "l'identifiant clé" permet d'interrompre très facilement l'utilisation autorisée du logiciel lorsque le logiciel détecte une tentative de fraude soit par copie de l'ensemble des fichiers sur une autre machine soit par modification de la date/heure de la machine. Il suffit pour cela de modifier l'information "I.C." contenu dans chacun des fichiers points d'ancrage. Lors de l'utilisation suivante la clé enregistrée n'étant pas en concordance avec "l'identifiant clé d'utilisation", le logiciel rejette l'autorisation. L'utilisateur doit à nouveau contacter l'éditeur du logiciel. REVENDICATIONS Procédé de protection d'un logiciel, fourni par un éditeur, ne permettant l'installation et l'exécution de ce logiciel que sur un seul matériel déterminé, le logiciel étant fourni sous la forme d'un fichier compressé comprenant des informations et nécessitant la fourniture d'une clé d'utilisation cohérente avec un identifiant clé généré et enregistré par le logiciel, pour autoriser l'exécution de ce logiciel, procédé dans lequel: a) lors de l'installation sur le matériel déterminé, on copie les informations fournies par le fichier compressé en les décompressant afin de 1 0 restituer l'ensemble des fichiers constituant le logiciel; b) on enchaîne à cette opération d'installation l'exécution du logiciel de manière à déterminer un ensemble de paramètres caractérisant de manière univoque le matériel déterminé sur lequel le logiciel est copié; c) on vérifie que cette installation n'a pas déjà eu lieu, et: ci) si cette installation a déjà eu lieu, on génère une donnée aléatoire que l'on enregistre comme identifiant clé et qui annule la cohérence entre la clé d'utilisation et l'identifiant clé enregistrés préalablement de manière à entraîner la fourniture d'une nouvelle clé d'utilisation; c2) si cette installation n'a pas déjà eu lieu, soit on génère une clé 2 0 d'utilisation autorisant l'exécution du logiciel pendant une période déterminée, soit on rentre au moyen d'une interface appropriée une clé d'utilisation fournie par l'éditeur à partir d'une information basée sur l'identifiant clé généré et enregistré par le logiciel et basé sur l'ensemble des paramètres caractérisant de manière univoque le matériel déterminé; d) on enregistre, des informations contenant notamment l'ensemble des paramètres caractérisant le matériel déterminé et des dates gérées par le matériel, en une première localisation par concaténation avec un fichier exécutable du logiciel et en une seconde localisation par création d'un champ dans un fichier système; ces paramètres enregistrés et ce champ étant utilisés 3 0 lors de la vérification prévue à l'étape c). 2. Procédé selon la revendication 1 dans lequel on génère la clé d'utilisation par les opérations suivantes: formation d'une clé de base formée à partir d'un identifiant clé grâce à une formule mathématique; formation de la clé utilisable par le logiciel en combinant à la clé de base, une fonction de la période déterminée d'utilisation du logiciel. 3. Procédé selon la revendication 2 dans lequel l'identifiant clé enregistré est un nombre aléatoire. 4. Procédé selon l'une quelconque des revendications 1 à 3 dans lequel on vérifie la cohérence entre la clé d'utilisation et l'identifiant clé enregistré. 5. Procédé selon l'une quelconque des revendications 1 à 4 dans lequel à chaque exécution du logiciel on enregistre des données relatives à l'exécution du logiciel.