FR2762417A1 - Procede de controle de l'execution d'un produit logiciel - Google Patents
Procede de controle de l'execution d'un produit logiciel Download PDFInfo
- Publication number
- FR2762417A1 FR2762417A1 FR9705328A FR9705328A FR2762417A1 FR 2762417 A1 FR2762417 A1 FR 2762417A1 FR 9705328 A FR9705328 A FR 9705328A FR 9705328 A FR9705328 A FR 9705328A FR 2762417 A1 FR2762417 A1 FR 2762417A1
- Authority
- FR
- France
- Prior art keywords
- processing means
- program
- execution
- secret
- public
- 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
- 238000009826 distribution Methods 0.000 title description 3
- 238000012545 processing Methods 0.000 claims abstract description 61
- 238000000034 method Methods 0.000 claims abstract description 31
- 230000006870 function Effects 0.000 claims abstract description 20
- 230000015654 memory Effects 0.000 claims abstract description 17
- 230000005540 biological transmission Effects 0.000 claims abstract description 13
- 238000004590 computer program Methods 0.000 claims abstract description 8
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000003287 optical effect Effects 0.000 description 7
- 238000012795 verification Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000003936 working memory 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
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Remote Sensing (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Storage Device Security (AREA)
Abstract
La présente invention concerne un procédé de contrôle de l'exécution d'un programme d'ordinateur. Il comporte les étapes suivantes consistant à : 1) Scinder un programme en au moins deux parties, respectivement publique et secrète, la partie publique étant apte à être exécutée sur un premier moyen de traitement, la partie secrète étant apte à être exécutée sur un deuxième moyen de traitement sécurisé. 2) disposer ladite partie publique dans une mémoire du premier moyen de traitement, 3) disposer la partie secrète sur un support sécurisé du deuxième moyen de traitement destiné à être lu par ledit premier moyen de traitement, 4) effectuer les opérations suivantes lors de l'exécution du programme par le premier moyen de traitement : a) transmission du premier moyen de traitement au deuxième de paramètres/ variables fonctions de signaux externes déclenchés par un utilisateur, b) exécution d'au moins une partie du programme par le deuxième moyen de traitement en mettant en oeuvre un certain nombre desdits paramètreslvariables reçus, c) transmission du deuxième moyen de traitement au premier, des résultats de l'exécution de l'alinéa précédent b) , d) exploitation d'un certain nombre desdits résultats dans l'exécution réalisée par le premier moyen.
Description
Procédé de contrôle de l'exécution d'un produit logiciel.
La présente invention concerne le domaine de la protection de produits logiciels contre le piratage. Elle a pour objet un procédé de contrôle de l'exécution d'un produit logiciel.
On entend par produit logiciel tout programme etlou données destinés à être traités ou exécutés par une unité centrale notamment d'un microordinateur PC, ainsi que tout fichier contenant des données à caractère audio etlou vidéo destiné à être traité par un module spécifique notamment multimédia d'un PC. Ils peuvent être enregistrés sur tout support tel que disquette, disque dur, disque optique compact CD-ROM , ou mémorisés sur tout support tel que mémoire de type ROM , EEPROM .
Les programmes d'ordinateur ou produits logiciels notamment pour PC sont de plus en plus dupliqués et utilisés sans autorisation. Ceci est accentué par la possibilité de diffuser la copie à grande échelle par des réseaux de serveurs ou de la dupliquer par une production de masse de CD-ROM gravés avec le logiciel. On connaît également la simple copie illicite sur le disque dur ou disquettes de micro-ordinateur qui peut se produire au sein d'une même entreprise.
Parmi les solutions pour éviter l'usage illicite de produits logiciels, on connaît un procédé de contrôle de la distribution du programme d'ordinateur.
Le programme est enregistré sur son support sous forme chiffrée, et il est ensuite déchiffré avant chargement sur l'ordinateur par l'utilisateur autorisé.
L'utilisateur autorisé dispose à cet effet de moyens permettant le déchiffrement. Ce procédé a l'avantage d'éviter la duplication du support contenant le programme chiffré mais à l'inconvénient de ne pas éviter la copie du programme à partir du PC.
On connaît également un procédé de contrôle de l'exécution du programme. II consiste à mettre en oeuvre une procédure permettant de vérifier la présence d'un dispositif sécurisé branché notamment sur une imprimante, ce dispositif attestant de par sa présence que l'utilisateur est autorisé à utiliser le programme. Lors de l'exécution du programme, on vérifie la présence et l'authenticité du dispositif sécurisé, la vérification conditionnant la poursuite de l'exécution du programme. Ce procédé a l'inconvénient de pouvoir être contourné en sautant les instructions correspondant à cette vérification.
On connaît également un procédé de contrôle de l'usage d'un microordinateur et donc indirectement de tout programme contenu à l'intérieur, par une personne autorisée. II met en oeuvre une carte à puce telle qu'unie carte à micro-circuit, appélée communément smart-card . Dans ce procédé, un micro-ordinateur PC est relié a l'aide d'une interface adaptée à la smartcard qui contient un code secret d'authentification. L'usager autorisé doit introduire au clavier le code d'accés qui est comparé à celui stocké dans la smart-card . En cas d'adéquation, I'accès à l'ordinateur ou à des informations ou à un programme de l'ordinateur est autorisé.
Ce procédé a l'inconvénient de ne pas protéger directement le support avant le chargement du programme dans l'ordinateur. On peut donc dupliquer le support.
Dans la description qui va suivre on entend par smart-card tout support comprenant au moins un module de sécurité contenant un microprocesseur et un espace mémoire apte à contenir une donnée secrète telle qu'une clé secrète ainsi que des programmes secrets. En particulier, il s'agit d'une carte au format normalisé d'une carte à puce ou d'une mini-carte à puce ou une carte d'extension de PC, ou un module enfichable à un port d'entréelsortie d'ordinateur.
L'objectif de la présente invention est de proposer une solution au problème de piratage sous ses différentes formes qui soit plus efficace que les solutions actuelles.
La solution apportée par l'invention se situe également au niveau du contrôle de l'exécution d'un programme d'ordinateur. L'exécution est contrôlée du fait qu'elle est uniquement permise aux personnes qui ont acquis un droit d'utilisation. Ce droit est matérialisé par un moyen ou accesoire sécurisé notamment une smart-card selon un exemple de l'invention. Par ce biais, on dissuade d'effectuer toute duplication ou toute diffusion du programme.
A cet effet, I'invention a d'abord pour objet un procédé de contrôle de l'exécution d'un programme d'ordinateur. Selon un premier mode, il est caractérisé en ce qu'il comporte les étapes suivantes consistant à:
1) Scinder un programme en au moins deux parties, respectivement publique et secrète, la partie publique étant apte à être exécutée sur un premier moyen de traitement, la partie secrète étant apte à être exécutée sur un deuxième moyen de traitement sécurisé.
1) Scinder un programme en au moins deux parties, respectivement publique et secrète, la partie publique étant apte à être exécutée sur un premier moyen de traitement, la partie secrète étant apte à être exécutée sur un deuxième moyen de traitement sécurisé.
2) disposer ladite partie publique dans une mémoire du premier moyen de traitement,
3) disposer la partie secrète sur un support sécurisé du deuxième moyen de traitement destiné à être lu par ledit premier moyen de traitement,
4) effectuer les opérations suivantes lors de l'exécution du programme par le premier moyen de traitement:
a) transmission du premier moyen de traitement au deuxième de paramètresivariables fonctions de signaux externes déclenchés par un utilisateur,
b) exécution d'au moins une partie du programme par le deuxième moyen de traitement en mettant en oeuvre un certain nombre desdits paramètresivariables reçus,
c) transmission du deuxième moyen de traitement au premier, des résultats de l'exécution de l'alinéa précédent b),
d) exploitation d'un certain nombre desdits résultats dans l'exécution réalisée par le premier moyen.
3) disposer la partie secrète sur un support sécurisé du deuxième moyen de traitement destiné à être lu par ledit premier moyen de traitement,
4) effectuer les opérations suivantes lors de l'exécution du programme par le premier moyen de traitement:
a) transmission du premier moyen de traitement au deuxième de paramètresivariables fonctions de signaux externes déclenchés par un utilisateur,
b) exécution d'au moins une partie du programme par le deuxième moyen de traitement en mettant en oeuvre un certain nombre desdits paramètresivariables reçus,
c) transmission du deuxième moyen de traitement au premier, des résultats de l'exécution de l'alinéa précédent b),
d) exploitation d'un certain nombre desdits résultats dans l'exécution réalisée par le premier moyen.
Selon un autre mode de réalisation, le procédé comporte les étapes suivantes consistant à:
1') Scinder un programme en au moins deux parties, respectivement publique et secrète, la partie publique étant apte à être exécutée sur un premier moyen de traitement, la partie secrète étant apte à être exécutée sur un deuxième moyen de traitement sécurisé.
1') Scinder un programme en au moins deux parties, respectivement publique et secrète, la partie publique étant apte à être exécutée sur un premier moyen de traitement, la partie secrète étant apte à être exécutée sur un deuxième moyen de traitement sécurisé.
2') chiffrer au moins une partie secrète et la disposer avec la partie publique sur un même support, celui-ci étant destiné à être lu par ledit premier moyen de traitement,
3') disposer dans le deuxième moyen de traitement une fonction de déchiffrement correspondante,
4') effectuer les opérations suivantes lors de l'exécution du programme:
a') transmission du premier moyen de traitement vers le deuxième de tout ou partie de la partie secrète chiffrée,
b') déchiffrement de ladite partie secrète chiffrée reçue par le deuxième moyen de traitement sécurisé en mettant en oeuvre ladite fonction de déchiffrement et conservation en mémoire sécurisée de la partie secrète en clair,
c') transmission du premier moyen de traitement au deuxième de paramètresivariables fonctions de signaux extemes,
d') exécution d'au moins une partie secrète par le deuxième moyen de traitement sécurisé en exploitant un certain nombre desdits paramètresivariables recues,
e') transmission du deuxième moyen de traitement au premier des résultats de l'exécution de l'alinéa précédent d');
f') exploitation d'un certain nombre desdits résultats dans l'exécution réalisée par le premier moyen.
3') disposer dans le deuxième moyen de traitement une fonction de déchiffrement correspondante,
4') effectuer les opérations suivantes lors de l'exécution du programme:
a') transmission du premier moyen de traitement vers le deuxième de tout ou partie de la partie secrète chiffrée,
b') déchiffrement de ladite partie secrète chiffrée reçue par le deuxième moyen de traitement sécurisé en mettant en oeuvre ladite fonction de déchiffrement et conservation en mémoire sécurisée de la partie secrète en clair,
c') transmission du premier moyen de traitement au deuxième de paramètresivariables fonctions de signaux extemes,
d') exécution d'au moins une partie secrète par le deuxième moyen de traitement sécurisé en exploitant un certain nombre desdits paramètresivariables recues,
e') transmission du deuxième moyen de traitement au premier des résultats de l'exécution de l'alinéa précédent d');
f') exploitation d'un certain nombre desdits résultats dans l'exécution réalisée par le premier moyen.
Selon une caractéristique de mise en oeuvre de la seconde variante, à l'opération a'), on transmet une partie du programme chiffré au fur et à mesure des besoins etlou en fonction de la capacité du deuxième moyen de traitement sécurisé.
Grâce à cette caractéristique, on peut exécuter un programme chiffré de dimension supérieure à la capacité mémoire du deuxième moyen de traitement.
L'invention sera mieux comprise à la lecture de la description des deux modes de mise en oeuvre du procédé sur un exemple de programme d'ordinateur.
Le programme retenu pour l'exemple est un programme de traitement de texte.
Pour la mise en oeuvre du procédé, il est nécessaire de scinder le programme de traitement de texte en au moins deux parties, respectivement publique et secrète. La partie publique est apte à être exécutée sur un premier moyen de traitement tandis que la partie secrète est apte à être exécutée sur un deuxième moyen de traitement sécurisé. Elles peuvent donc être amenées à subir une compilation appropriée distincte pour l'une et l'autre.
La première partie est dite publique et exécutable sur un système d'exploitation de micro-ordinateur (PC) pris dans l'exemple comme premier moyen de traitement.
La deuxième partie dite secrète est quant à elle exécutable sur un circuit sécurisé de carte à puce pris dans l'exemple comme un deuxième moyen de traitement. Le circuit sécurisé comporte un processeur 8 bits, une mémoire permanente ROM contenant le système d'exploitation de la carte, et une mémoire non volatile de type EEPROM et une mémoire volatile de travail de type RAM. Le circuit peut par exemple être le circuit d'une smart-card .
Lors du stockage du programme de traitement de texte sur un support destiné à être distribué commercialement, celui-ci est réparti sur des supports de mémorisation ou d'enregistrement distincts. Pour cela, dans l'exemple, on dispose la partie publique sur un disque optique (CD-ROM) tandis que la partie secrète est disposée dans la mémoire EEPROM de la carte à puce. Le programme nécessite donc dans ce cas comme support physique pour le matérialiser deux éléments: le disque optique et une carte à puce associée.
Dans l'exemple, on a choisi la fonction de calcul de la position du curseur sur l'écran d'un PC pour constituer la partie secrète. Cette fonction manquante dans le disque optique se trouve donc uniquement dans la carte à puce.
Pour l'exécution du programme, le PC est connecté à la carte à puce par une interface de manière à permettre une communication biairectionnelle entre eux. Le programme public du disque optique est chargé dans le PC par lecture du disque optique. La carte à puce peut être par exemple connectée au
PC par l'intermédiaire d'un lecteur de carte à puce lui même relié à un port d'entréelsortie du PC.
PC par l'intermédiaire d'un lecteur de carte à puce lui même relié à un port d'entréelsortie du PC.
Au cours de l'exécution selon l'invention, on effectue les opérations ou étapes ci-après.
On transmet du premier moyen de traitement au deuxième des paramètresivariables fonction de signaux externes.
D'une manière générale, on entend par signaux externes des informations ou des événements qui sont susceptibles d'être différents à chaque utilisation du programme. La sécurité du système est d'autant mieux assurée que l'ensemble des informations communiquées à la carte diffère à chaque utilisation. Elle est également d'autant mieux assurée que le programme dans la carte à puce est complexe parce qu'il comporte, par exemple, énormément de sorties possibles et que la relation entre les entrées et les sorties est sophistiquée.
Au sens de la présente invention, peuvent par exemple constituer des signaux externes, les actions déclenchées par l'utilisateur via une souris ou un clavier ou autre périphérique d'entrée.
Dans l'exemple, c'est l'unité centrale du PC qui transmet, via l'interface, à la carte les données qui correspondent aux touches du clavier actionnées par l'utilisateur. L'unité centrale effectue cette transmission en exécutant le programme public et les fonctions du système d'exploitation. A cet effet, le programme public comporte les instructions nécessaires à cette transmission.
Selon une étape suivante du procédé, on exécute au moins une partie du programme par le deuxième moyen de traitement sécurisé en exploitant un certain nombre desdits paramètresivariables recues. Cela implique que la sortie de l'exécution de cette partie du programme va dépendre fortement de la valeur ou nature des paramètres/variables exploitées ou pris en compte par le deuxième moyen de traitement pour l'exécution du programme secret.
Dans l'exemple, lorsque l'utilisateur frappe les touches du clavier, la carte exécute donc le calcul de la position du curseur dans une ligne de texte sur l'écran et renvoie le résultat au PC, en l'occurrence la valeur de cette position, conformément à une autre étape du procédé.
Ensuite, selon le procédé on peut utiliser les résultats ci-dessus tel quels ou de préférence prendre en compte ou exploiter un certain nombre desdits résultats ci-dessus dans l'exécution réalisée par le premier moyen. Dans l'exemple, L'unité centrale du PC exécute la partie publique du programme pour afficher sur l'écran la position du curseur.
On constate que l'utilisateur ne peut utiliser la fonction curseur du traitement de texte en l'absence de la carte. Par ce biais, on dissuade toute copie illicite du logiciel du traitement de texte puisqu'il est inutilisable sans la carte. On comprend que grâce à l'invention, la dissuasion ci-dessus soit d'autant plus efficace que la partie secrète correspond à une partie essentielle du programme.
On va décrire maintenant un autre mode de mise en oeuvre du procédé de l'invention.
Le système nécessaire à la mise en oeuvre du procédé est identique à celui décrit précédemment avec les différences ci-après.
La partie secrète est disposée sous forme chiffrée sur le disque optique avec la partie publique au lieu d'être disposée dans la carte à puce.
La mémoire ROM de la carte contient en plus du système d'exploitation, une fonction de déchiffrement et de chargement du programme déchiffré dans sa mémoire RAM.
Au cours de l'exécution du programme selon l'invention, on effectue les opérations ou étapes ci-après.
On transmet du premier moyen de traitement au deuxième tout ou partie du programme chiffré.
Dans l'exemple, c'est la fonction de calcul de la position du curseur qui est chiffrée. Celle-ci est transmise chiffrée par le programme de traitement de texte à la carte à puce par exemple au démarrage du programme. Elle peut également être transmise seulement à l'instant où elle devient nécessaire. A cet effet, le programme de traitement de texte inclut également des informations permettant de la localiser notamment son adresse ou son nom de fichier.
Selon le procédé, on déchiffre ladite partie secrète chiffrée reçue par le deuxième moyen de traitement sécurisé en mettant en oeuvre ladite fonction de déchiffrement et on conserve en mémoire sécurisée la partie secrète en clair.
Dans l'exemple, la carte à puce déchiffre la fonction de calcul de la position du curseur en mettant en oeuvre sa fonction de déchiffrement et mémorise sous forme exécutable la fonction en question.
On constate dans cet exemple que le procédé met en oeuvre un système comportant une smart-card, celle ci étant apte à charger tout ou partie du programme chiffré, à déchiffrer avec une clé secrète de l'éditeur du logiciel, à recevoir des appels des premier moyens et à les transmettre pour le programme exécutable qui a été préalablement chargé, à retourner les résultats au premier moyen de traitement.
Le programme exécutable public comporte des instructions supplémentaires pour transmettre des parties de programme secret à la carte, via des fonctions entréelsortie du système d'exploitation de la carte ou éventuellement via celles du système d'exploitation du PC, et des instructions pour des appels à des fonctions chargées dans la carte.
Par extension des applications possibles du procédé de l'invention, le deuxième moyen traitement peut être sous forme câblée dans une carte à mémoire ceci afin de diminuer le coût de l'accessoire.
Quant au premier moyen de traitement, il est généralement une unité centrale d'un ordinateur personnel.
Avantageusement, préalablement au chargement de la partie publique sur le premier moyen de traitement tel un PC, celle-ci peut être disponible sur un centre serveur ou une base de données auquel l'unité centrale du premier moyen peut être relié. La partie publique d'un programme ou logiciel peut être également disponible sur un réseau notamment de type intemet auquel le premier moyen de traitement peut être relié au souhait de l'utilisateur.
Ainsi, pour un acquéreur potentiel d'un logiciel, il suffit de rechercher le logiciel disponible sur le réseau tel internet et de le charger dans la mémoire de son PC. Parallèlement, I'acquéreur peut recevoir la carte contenant la partie secrète notamment par courrier.
Bien que le logiciel soit disponible par tout le monde sur le réseau internet, il n'est utilisable que si l'utilisateur dispose de l'accessoire matérialisé notamment par une carte à microprocesseur.
Ainsi, par ce biais, I'invention permet à l'éditeur de logiciel de s'affranchir de la duplication de ces derniers sur un support physique tel qu'une disquette.
L'invention le dispense également de la distribution physique du logiciel.
En accompagnement des logiciels exécutables mis sur internet, il est possible de joindre des données telles que le contenu d'un manuel d'utilisation d'un logiciel.
Claims (6)
1. Procédé de contrôle de l'exécution d'un programme d'ordinateur caractérisé en ce qu'il comporte les étapes suivantes consistant à:
1) Scinder un programme en au moins deux parties, respectivement publique et secrète, la partie publique étant apte à être exécutée sur un premier moyen de traitement, la partie secrète étant apte à être exécutée sur un deuxième moyen de traitement sécurisé.
d) exploitation d'un certain nombre desdits résultats dans l'exécution réalisée par le premier moyen.
c) transmission du deuxième moyen de traitement au premier des résultats de l'exécution de l'alinéa précédent b),
b) exécution d'au moins une partie du programme par le deuxième moyen de traitement en mettant en oeuvre un certain nombre desdits paramétres/variables reçus,
a) transmission du premier moyen de traitement au deuxième de paramétresivariables fonctions de signaux externes déclenchés par un utilisateur,
4) effectuer les opérations suivantes lors de l'exécution du programme par le premier moyen de traitement:
3) disposer la partie secrète sur un support sécurisé du deuxième moyen de traitement destiné à être lu par ledit premier moyen de traitement,
2) disposer ladite partie publique dans une mémoire du premier moyen de traitement,
2. Procédé de contrôle de l'exécution d'un programme d'ordinateur caractérisé en ce qu'il comporte les étapes suivantes consistant à:
1') Scinder un programme en au moins deux parties, respectivement publique et secrète, la partie publique étant apte à être exécutée sur un premier moyen de traitement, la partie secrète étant apte à être exécutée sur un deuxième moyen de traitement sécurisé.
f') exploitation d'un certain nombre desdits résultats dans l'exécution réalisée par le premier moyen.
e') transmission du deuxième moyen de traitement au premier des résultats de l'exécution de l'alinéa précédent d');
d') exécution d'au moins une partie secrète par le deuxième moyen de traitement sécurisé en exploitant un certain nombre desdits paramètresivariables recues,
c') transmission du premier moyen de traitement au deuxième de paramètres/variables fonctions de signaux externes,
b') déchiffrement de ladite partie secrète chiffrée reçue par le deuxième moyen de traitement sécurisé en mettant en oeuvre ladite fonction de déchiffrement et conservation en mémoire sécurisée de la partie secrète en clair,
a') transmission du premier moyen de traitement vers le deuxième de tout ou partie de la partie secrète chiffrée,
4') effectuer les opérations suivantes lors de l'exécution du programme:
3') disposer dans le deuxième moyen de traitement une fonction de déchiffrement correspondante,
2') chiffrer au moins une partie secrète et la disposer avec la partie publique sur un même support, celui-ci étant destiné à être lu par ledit premier moyen de traitement,
3. Procédé selon l'une des revendications 1 ou 2, caractérisé en ce que le deuxième moyen de traitement est une carte à micro-processeur.
4. Procédé selon l'une des revendications 1 ou 2, caractérisé en ce que le deuxième moyen de traitement est sous forme cablée dans une carte à mémoire.
5. Procédé selon l'une quelconque des revendications précédentes caractérisé en ce que le premier moyen de traitement est une unité centrale d'un ordinateur.
6. procédé selon l'une quelconque des revendications précédentes caractérisé en ce que l'unité centrale est reliée à un réseau notamment de type internet, sur lequel la partie publique du programme est disponible.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9705328A FR2762417B1 (fr) | 1997-04-16 | 1997-04-16 | Procede de controle de l'execution d'un produit logiciel |
US09/719,432 US6931542B1 (en) | 1997-04-16 | 1999-06-12 | Method for verifying the execution of a software product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9705328A FR2762417B1 (fr) | 1997-04-16 | 1997-04-16 | Procede de controle de l'execution d'un produit logiciel |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2762417A1 true FR2762417A1 (fr) | 1998-10-23 |
FR2762417B1 FR2762417B1 (fr) | 1999-07-02 |
Family
ID=9506448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9705328A Expired - Fee Related FR2762417B1 (fr) | 1997-04-16 | 1997-04-16 | Procede de controle de l'execution d'un produit logiciel |
Country Status (2)
Country | Link |
---|---|
US (1) | US6931542B1 (fr) |
FR (1) | FR2762417B1 (fr) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999066387A1 (fr) * | 1998-06-12 | 1999-12-23 | Gemplus | Procede de controle de l'execution d'un produit logiciel |
FR2835331A1 (fr) * | 2002-01-28 | 2003-08-01 | Gemplus Card Int | Procede de controle de l'exploitation de contenus numeriques par un module de securite ou une carte a puce comprenant ledit module |
FR2854261A1 (fr) * | 2003-04-28 | 2004-10-29 | Ucopia Comm | Procede d'execution d'une application logicielle par l'intermediaire d'un programme d'amorce logicielle et architecture informatique pour la mise en oeuvre du procede |
US6931542B1 (en) | 1997-04-16 | 2005-08-16 | Gemplus | Method for verifying the execution of a software product |
WO2010060961A1 (fr) * | 2008-11-27 | 2010-06-03 | Forware Spain, S.L. | Protection, distribution, exécution de contenu avec accès securisé grâce à des procédés, des dispositifs et des systèmes securisés et souples basés sur une logique reconfigurable |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7502940B2 (en) * | 2001-08-01 | 2009-03-10 | Sas Validy | Method to protect software against unwanted use with a “conditional branch” principle |
US7434064B2 (en) * | 2001-08-01 | 2008-10-07 | Sas Validy | Method to protect software against unwanted use with a “elementary functions” principle |
US7174466B2 (en) * | 2001-08-01 | 2007-02-06 | Sas Validy | Method to protect software against unwanted use with a “detection and coercion” principle |
US7343494B2 (en) * | 2001-08-01 | 2008-03-11 | Sas Validy | Method to protect software against unwanted use with a “renaming” principle |
US7269740B2 (en) * | 2001-08-01 | 2007-09-11 | Sas Validy | Method to protect software against unwanted use with a “variable principle” |
US7272725B2 (en) * | 2002-06-25 | 2007-09-18 | Sas Validy | Method to protect software against unwanted use with a “temporal dissociation” principle |
US7979911B2 (en) * | 2003-10-08 | 2011-07-12 | Microsoft Corporation | First computer process and second computer process proxy-executing code from third computer process on behalf of first process |
US8103592B2 (en) * | 2003-10-08 | 2012-01-24 | Microsoft Corporation | First computer process and second computer process proxy-executing code on behalf of first process |
US7788496B2 (en) | 2003-10-08 | 2010-08-31 | Microsoft Corporation | First computer process and second computer process proxy-executing code on behalf thereof |
US20050204405A1 (en) * | 2004-03-04 | 2005-09-15 | Brian Wormington | Method and system for digital rights management |
US8996586B2 (en) * | 2006-02-16 | 2015-03-31 | Callplex, Inc. | Virtual storage of portable media files |
US10303783B2 (en) * | 2006-02-16 | 2019-05-28 | Callplex, Inc. | Distributed virtual storage of portable media files |
US8667604B2 (en) * | 2007-09-13 | 2014-03-04 | Microsoft Corporation | Protection of software on portable medium |
US9767324B2 (en) * | 2014-11-22 | 2017-09-19 | Intel Corporation | Transparent execution of secret content |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0191162A2 (fr) * | 1984-12-18 | 1986-08-20 | International Business Machines Corporation | Procédé de protection de logiciel |
EP0268138A2 (fr) * | 1986-11-05 | 1988-05-25 | International Business Machines Corporation | Mise en oeuvre de privilèges dans des systèmes microprocesseurs à utiliser pour la protection de biens logiciels |
BE1009122A3 (fr) * | 1994-12-05 | 1996-12-03 | Awax Progettazione | Cle electronique de securite destinee a activer et/ou desactiver les fonctions ou programmes speciaux dans un ordinateur electronique dans le but d'empecher la copie du programme de travail de l'ordinateur. |
WO1997004412A2 (fr) * | 1995-07-19 | 1997-02-06 | Cable Television Laboratories, Inc. | Procede de protection de logiciels a diffusion publique |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2686170B1 (fr) * | 1992-01-14 | 1996-09-06 | Gemplus Card Int | Carte a memoire de masse pour microordinateur. |
JPH0844553A (ja) * | 1994-08-03 | 1996-02-16 | Nri & Ncc Co Ltd | 公開部分と非公開部分を有するソフトウェアを複数ユーザに使用させるシステム |
FR2762417B1 (fr) | 1997-04-16 | 1999-07-02 | Gemplus Card Int | Procede de controle de l'execution d'un produit logiciel |
-
1997
- 1997-04-16 FR FR9705328A patent/FR2762417B1/fr not_active Expired - Fee Related
-
1999
- 1999-06-12 US US09/719,432 patent/US6931542B1/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0191162A2 (fr) * | 1984-12-18 | 1986-08-20 | International Business Machines Corporation | Procédé de protection de logiciel |
EP0268138A2 (fr) * | 1986-11-05 | 1988-05-25 | International Business Machines Corporation | Mise en oeuvre de privilèges dans des systèmes microprocesseurs à utiliser pour la protection de biens logiciels |
BE1009122A3 (fr) * | 1994-12-05 | 1996-12-03 | Awax Progettazione | Cle electronique de securite destinee a activer et/ou desactiver les fonctions ou programmes speciaux dans un ordinateur electronique dans le but d'empecher la copie du programme de travail de l'ordinateur. |
WO1997004412A2 (fr) * | 1995-07-19 | 1997-02-06 | Cable Television Laboratories, Inc. | Procede de protection de logiciels a diffusion publique |
Non-Patent Citations (2)
Title |
---|
FERREIRA R C: "THE SMART CARD: A HIGH SECURITY TOOL IN EDP", PHILIPS TELECOMMUNICATION REVIEW, vol. 47, no. 3, 1 September 1989 (1989-09-01), pages 1 - 19, XP000072642 * |
KEUL M: ""DONGLES": HARDWARE SCHUTZT SOFTWARE", ELEKTRONIK, vol. 39, no. 10, 11 May 1990 (1990-05-11), pages 82 - 84, 86, XP000117036 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6931542B1 (en) | 1997-04-16 | 2005-08-16 | Gemplus | Method for verifying the execution of a software product |
WO1999066387A1 (fr) * | 1998-06-12 | 1999-12-23 | Gemplus | Procede de controle de l'execution d'un produit logiciel |
FR2835331A1 (fr) * | 2002-01-28 | 2003-08-01 | Gemplus Card Int | Procede de controle de l'exploitation de contenus numeriques par un module de securite ou une carte a puce comprenant ledit module |
FR2854261A1 (fr) * | 2003-04-28 | 2004-10-29 | Ucopia Comm | Procede d'execution d'une application logicielle par l'intermediaire d'un programme d'amorce logicielle et architecture informatique pour la mise en oeuvre du procede |
WO2010060961A1 (fr) * | 2008-11-27 | 2010-06-03 | Forware Spain, S.L. | Protection, distribution, exécution de contenu avec accès securisé grâce à des procédés, des dispositifs et des systèmes securisés et souples basés sur une logique reconfigurable |
EP2194478A1 (fr) * | 2008-11-27 | 2010-06-09 | Forware Spain, S.L. | Protection de contenu, distribution, accès sécurisé et exécution au moyen de procédés sécurisés et flexibles, dispositifs et systèmes basés sur une logique reconfigurable |
Also Published As
Publication number | Publication date |
---|---|
FR2762417B1 (fr) | 1999-07-02 |
US6931542B1 (en) | 2005-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2762417A1 (fr) | Procede de controle de l'execution d'un produit logiciel | |
EP1086411B1 (fr) | Procede de controle de l'execution d'un produit logiciel | |
EP0089876B1 (fr) | Procédé et dispositif de protection d'un logiciel livré par un fournisseur à un utilisateur | |
EP1425648A2 (fr) | Procede et systeme de distribution securisee de documents numeriques | |
CN101036099A (zh) | 数字权限许可的集中管理 | |
JP2006518901A (ja) | デジタルコンテンツの配布及び権利管理 | |
US20080256368A1 (en) | Method and Device For Protecting Digital Content in Mobile Applications | |
FR2542471A1 (fr) | Procede et appareil pour assurer la securite de l'acces a des fichiers | |
US20180357393A1 (en) | Encryption method for digital data memory card and assembly for performing the same | |
EP0552079A1 (fr) | Carte à mémoire de masse pour microordinateur | |
EP0720098B1 (fr) | Dispositif de sécurisation de systèmes d'information organisés autour de microprocesseurs | |
EP2488984B1 (fr) | Système informatique d'accès à des données confidentielles par au moins un boîtier distant et boîtier distant | |
US20020146121A1 (en) | Method and system for protecting data | |
FR2937442A1 (fr) | Controle de l'utilisation de machines virtuelles | |
EP1969597A2 (fr) | Methode de mise a disposition, de distribution et de gravure de donnees numeriques et serveur de distribution associe | |
CN1759363A (zh) | 数字内容的分发和权利管理 | |
WO2012162739A1 (fr) | Système et procédé de distribution multimédia cryptée | |
EP1533676A1 (fr) | Système et procédé de traitement des données protegées par des applications approuvées | |
US20040123126A1 (en) | Method and apparatus for deterring piracy | |
WO2007131905A1 (fr) | Procede d'activation d'un terminal | |
WO2002065411A2 (fr) | Methode et systeme de securisation d'une transaction commerciale au moyen d'une carte a memoire | |
FR2903507A1 (fr) | Traitement de donnees d'un fichier numerique representant un contenu multimedia. | |
FR2917526A1 (fr) | Stockage numerique par ondes magnetiques. stockage, lecture, gravure de fichiers numeriques multimedias ou non avec un transfert par onde magnetique entre les peripheriques et le support de stockage | |
WO2003065181A1 (fr) | Procede de controle de l'exploitation de contenus numeriques par un module de securite ou une carte a puce comprenant ledit module | |
CA2319773A1 (fr) | Protection simultanee de plusieurs logiciels de plusieurs concepteurs de logiciels |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
CD | Change of name or company name | ||
TP | Transmission of property | ||
ST | Notification of lapse |
Effective date: 20111230 |