FR2779543A1 - Procede de protection de logiciel - Google Patents
Procede de protection de logiciel Download PDFInfo
- Publication number
- FR2779543A1 FR2779543A1 FR9807195A FR9807195A FR2779543A1 FR 2779543 A1 FR2779543 A1 FR 2779543A1 FR 9807195 A FR9807195 A FR 9807195A FR 9807195 A FR9807195 A FR 9807195A FR 2779543 A1 FR2779543 A1 FR 2779543A1
- Authority
- FR
- France
- Prior art keywords
- software
- key
- installation
- recorded
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000009434 installation Methods 0.000 claims abstract description 33
- 238000012795 verification Methods 0.000 claims abstract description 5
- 230000008569 process Effects 0.000 claims description 5
- 230000015572 biosynthetic process Effects 0.000 claims description 3
- 238000002407 reforming Methods 0.000 abstract 1
- 238000013475 authorization Methods 0.000 description 17
- 238000010200 validation analysis Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 3
- FGRBYDKOBBBPOI-UHFFFAOYSA-N 10,10-dioxo-2-[4-(N-phenylanilino)phenyl]thioxanthen-9-one Chemical compound O=C1c2ccccc2S(=O)(=O)c2ccc(cc12)-c1ccc(cc1)N(c1ccccc1)c1ccccc1 FGRBYDKOBBBPOI-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
L'invention est relative à un procédé de protection de logiciel protégé par mot de passe et plus particulièrement à un procédé mis en oeuvre par un logiciel.Le logiciel de protection suivant l'invention comprend la création de plusieurs points d'ancrage cohérents entre eux et mis à jour à chaque utilisation. L'un des points d'ancrage est incorporé à l'un des fichiers du logiciel par concaténation lors l'installation du logiciel de manière à ne pas faire apparaître la localisation de ce point d'ancrage.
Description
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.
Claims (1)
- 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 unnombre aléatoire.4. Procédé selon l'une quelconque des revendications 1 à 3 dans lequel on vérifiela 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 à chaqueexécution du logiciel on enregistre des données relatives à l'exécution du logiciel.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9807195A FR2779543B1 (fr) | 1998-06-04 | 1998-06-04 | Procede de protection de logiciel |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9807195A FR2779543B1 (fr) | 1998-06-04 | 1998-06-04 | Procede de protection de logiciel |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2779543A1 true FR2779543A1 (fr) | 1999-12-10 |
FR2779543B1 FR2779543B1 (fr) | 2001-08-17 |
Family
ID=9527149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9807195A Expired - Fee Related FR2779543B1 (fr) | 1998-06-04 | 1998-06-04 | Procede de protection de logiciel |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2779543B1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103189876A (zh) * | 2010-11-12 | 2013-07-03 | 惠普发展公司,有限责任合伙企业 | 基于第一和第二授权项来确定软件产品的授权 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4757534A (en) * | 1984-12-18 | 1988-07-12 | International Business Machines Corporation | Code protection using cryptography |
US5291598A (en) * | 1992-04-07 | 1994-03-01 | Gregory Grundy | Method and system for decentralized manufacture of copy-controlled software |
EP0679980A1 (fr) * | 1994-04-25 | 1995-11-02 | International Business Machines Corporation | Méthode et appareil permettant de prendre des logiciels à l'essai avec identification, dépendant de l'ordinateur |
US5509070A (en) * | 1992-12-15 | 1996-04-16 | Softlock Services Inc. | Method for encouraging purchase of executable and non-executable software |
-
1998
- 1998-06-04 FR FR9807195A patent/FR2779543B1/fr not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4757534A (en) * | 1984-12-18 | 1988-07-12 | International Business Machines Corporation | Code protection using cryptography |
US5291598A (en) * | 1992-04-07 | 1994-03-01 | Gregory Grundy | Method and system for decentralized manufacture of copy-controlled software |
US5509070A (en) * | 1992-12-15 | 1996-04-16 | Softlock Services Inc. | Method for encouraging purchase of executable and non-executable software |
EP0679980A1 (fr) * | 1994-04-25 | 1995-11-02 | International Business Machines Corporation | Méthode et appareil permettant de prendre des logiciels à l'essai avec identification, dépendant de l'ordinateur |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103189876A (zh) * | 2010-11-12 | 2013-07-03 | 惠普发展公司,有限责任合伙企业 | 基于第一和第二授权项来确定软件产品的授权 |
EP2638502A1 (fr) * | 2010-11-12 | 2013-09-18 | Hewlett-Packard Development Company, L.P. | Déterminer l'autorisation d'un produit logiciel en fonction d'un premier et d'un deuxième élément d'autorisation |
EP2638502A4 (fr) * | 2010-11-12 | 2014-11-12 | Hewlett Packard Development Co | Déterminer l'autorisation d'un produit logiciel en fonction d'un premier et d'un deuxième élément d'autorisation |
CN103189876B (zh) * | 2010-11-12 | 2016-09-14 | 惠普发展公司,有限责任合伙企业 | 基于第一和第二授权项来确定软件产品的授权 |
US9684781B2 (en) | 2010-11-12 | 2017-06-20 | Hewlett Packard Enterprise Development Lp | Determine authorization of a software product based on a first and second authorization item |
Also Published As
Publication number | Publication date |
---|---|
FR2779543B1 (fr) | 2001-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0089876B1 (fr) | Procédé et dispositif de protection d'un logiciel livré par un fournisseur à un utilisateur | |
US6106396A (en) | Electronic casino gaming system with improved play capacity, authentication and security | |
US6149522A (en) | Method of authenticating game data sets in an electronic casino gaming system | |
US6044469A (en) | Software publisher or distributor configurable software security mechanism | |
KR20060002755A (ko) | 디지털 컨텐츠의 배포 및 권리 관리 방법 | |
US20070233601A1 (en) | Systems and methods for protecting digital content | |
FR2675602A1 (fr) | Procede et dispositif de protection d'un systeme informatique. | |
WO2004107283A1 (fr) | Methode de generation d’une cle de securite | |
FR2762417A1 (fr) | Procede de controle de l'execution d'un produit logiciel | |
WO1999066387A1 (fr) | Procede de controle de l'execution d'un produit logiciel | |
JPH1031587A (ja) | データ端末装置およびコンピュータプログラム | |
CA2271998A1 (fr) | Procede de securisation et de controle d'acces a des informations a partir d'une plate-forme informatique equipee d'un micro-ordinateur | |
EP2180423B1 (fr) | Controle de l'utilisation de machines virtuelles | |
WO2009059763A1 (fr) | Procede de deverrouillage d'un calculateur de controle moteur | |
FR2779543A1 (fr) | Procede de protection de logiciel | |
EP0957461B1 (fr) | Procédé de personnalisation d'une carte à puce | |
FR2841667A1 (fr) | Interface graphique utilisateur permettant d'installer des programmes informatiques d'un lot de demarrage | |
FR2541014A1 (fr) | Procede de protection d'un logiciel enregistre par un fournisseur sur un support magnetique portatif | |
EP1441464A1 (fr) | Système de casino électronique sécurisé et authentifié | |
JP4510368B2 (ja) | 著作権保護システム及び該プログラムを記録した記録媒体 | |
AU2013205523A1 (en) | Electronic casino gaming system with improved play capacity, authentication and security | |
CA2264896A1 (fr) | Module de securite comportant des moyens de creation de liens entre des fichiers principaux et des fichiers auxiliaires | |
WO2007006960A1 (fr) | Procede pour la prise en compte automatique et le stockage persistant de parametres de personnalisation a priori volatils | |
WO2003065181A1 (fr) | Procede de controle de l'exploitation de contenus numeriques par un module de securite ou une carte a puce comprenant ledit module | |
EP1551022A1 (fr) | Procédé pour la protection contre la copie d'un contenu numérique |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20100226 |