WO1990001736A1 - Procede et dispositif de protection et d'universalisation d'un logiciel - Google Patents
Procede et dispositif de protection et d'universalisation d'un logiciel Download PDFInfo
- Publication number
- WO1990001736A1 WO1990001736A1 PCT/FR1989/000392 FR8900392W WO9001736A1 WO 1990001736 A1 WO1990001736 A1 WO 1990001736A1 FR 8900392 W FR8900392 W FR 8900392W WO 9001736 A1 WO9001736 A1 WO 9001736A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- microprocessor
- software
- memory
- operating system
- assembly
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 16
- 230000015654 memory Effects 0.000 claims abstract description 45
- 230000006870 function Effects 0.000 claims abstract description 15
- 238000004891 communication Methods 0.000 claims abstract description 12
- 230000001419 dependent effect Effects 0.000 claims description 6
- 239000000463 material Substances 0.000 claims description 6
- 239000011347 resin Substances 0.000 claims description 4
- 229920005989 resin Polymers 0.000 claims description 4
- 229920001187 thermosetting polymer Polymers 0.000 claims description 4
- 230000003936 working memory Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000002844 melting Methods 0.000 description 1
- 230000008018 melting Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 229920002994 synthetic fiber Polymers 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
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/86—Secure or tamper-resistant housings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2143—Clearing memory, e.g. to prevent the data from being stolen
Definitions
- the invention relates to a method and a device for protecting software, in particular against unauthorized copying, and for universalizing this software, so as to make it independent of the operating system managing the computer or the microphone. - computer intended to use this software.
- the present invention relates to a mode of software protection, which is not subject to the aforementioned drawbacks and which also makes it possible to make this software "universal", that is to say independent of the operating system managing the system on which the software will be used.
- the subject of the invention is also means of the aforementioned type, which make it possible to adapt the type and performance of a microprocessor to the type of software that it has to execute.
- the invention also relates to means of this type, which make it very easy to perform multi-processing of information.
- a method of protection and universalization of software consisting in recording at least an essential part of the software in at least one memory connected to an information processing microprocessor in a set of inviolable type.
- the method according to the invention therefore differs from known methods in that it consists in recording, in the memory of an inviolable assembly, not a part, even a large one, of the software, but all of this software, apart from its functions system, which are they recorded on any independent support, such as for example a floppy disk which will be read by the operating system. It follows that, according to the invention, the microprocessor of the operating system confines itself to managing and executing the input / output requests which are sent to it by the microprocessor of the inviolable assembly, the latter executing the software in question.
- the software executed by the microprocessor of the inviolable assembly is made independent of the operating system which manages the operating system. It suffices for this that, on the annexed medium, the desired communication and input / output management programs have been recorded, as well as the functions which are dependent on this operating system.
- a single input / output port is provided on the inviolable assembly, for its connection to the microprocessor of the operating system.
- This link which is from microprocessor to microprocessor, can be a serial link of the RS 232 C type, or a link with shareable memory, or even a link channel to parallel input / output channel.
- the actual protection of the software can be provided in various ways: for example by using a material of the thermosetting type in which the memories and the microprocessor of the inviolable assembly are embedded.
- the invention also provides a device for protecting and universalizing software, comprising at least one memory in which an essential part of the software is recorded and a microprocessor for processing information, connected to the memory and forming with that -a tamper-evident assembly comprising means for connection to a system for using the software comprising a microprocessor, characterized in that the software proper is stored in the memory of the tamper-evident assembly, and in that any independent medium , readable by the operating system, contains programs for communication between the inviolable assembly and the operating system, for managing input / output operations, and functions which are dependent on the operating system managing the system of use.
- the device according to the invention is extremely inexpensive compared to the advantages which it presents. Indeed, the price of a microprocessor produced in large series is now very low, and its association with a working memory and with a memory in which the software is recorded, does not increase in a way sensitive the price of software.
- the means of connection between the microprocessors of the operating system and of the tamper-proof assembly comprise a serial link of the RS 232 C type, or a link with shareable memory, or even a link channel to parallel input / output channel.
- the channel-to-channel link includes, for each microprocessor, an ISR register directly installed on a data bus of the associated microprocessor, and an RS flip-flop whose inputs are connected to decoder circuits for reading and writing addresses .
- Another advantage of the device according to the invention is that it is possible to provide, in the same inviolable assembly, several microprocessors connected in parallel to the memories of this assembly, which makes it possible very simply to perform multi-processing.
- FIG. 1 schematically represents a device according to the invention and its connection to a software use system
- FIG. 2 schematically shows by way of example the essential characteristics of a channel-to-channel link used in the context of the invention.
- the device according to the invention is generally designated by the reference 10 and comprises a box 12 of the tamper-proof type, which contains at least one microprocessor 14 for processing information and at least one memory 16 in which most of the software to be protected has been recorded.
- a box 12 of the tamper-proof type which contains at least one microprocessor 14 for processing information and at least one memory 16 in which most of the software to be protected has been recorded.
- microprocessor 14 for processing information
- memory 16 in which most of the software to be protected has been recorded.
- the housing 12 contains another microprocessor 18 which is connected to the microprocessor 14, one being for example master and the other slave.
- the microprocessors 14 and 18 are connected to the aforementioned memory 16, which is for example of the ROM, PROM, EPROM, etc. type, as well as to a working memory 20 of the RAM type, in which the software will be executed.
- One of the microprocessors of the assembly 10 is also associated with means 22 for connecting to a system 24 for using the software.
- This system 24 can be a personal or professional microcomputer, or even a specialized computer system. It includes for example a microprocessor 26 associated with a random access memory 28, a read-only memory 30 and at least one input / output unit 32.
- the part of the software which is not recorded in the memory 16 of the set 10, and which corresponds to communication programs between the set 10 and the system 24, to programs for managing input / output operations and to functions dependent on the operating system managing the operating system 24, can be recorded on an independent medium 34, such as a floppy disk, the unit 32 for input / output of the system 24 then being a unit for floppy disk.
- the assembly 10 can be made inviolable by virtue of a block or a layer of a hard material such a thermosetting resin, forming the housing 12 which contains the microprocessor (s) 14, 18, the memories 16, 20 and their connections, as well as part of the connecting means 22.
- the material used can be a synthetic material of the type resin which can be polymerized cold or at high temperature and which, after polymerization, becomes very hard and very resistant and has a high melting point, so that any attempt to destroy or remove this material necessarily destroys the memory 16 and / or its connections to microprocessors 14 .. 18.
- connection means 22 it is sufficient, by the connecting means 22, to connect the assembly according to the invention to a system 24 for using the software.
- the floppy disk 34 or any other suitable medium is placed in the input / output unit 32 of the system 24.
- the system 24 is then able to execute the programs contained in the floppy disk 34 and thus trigger the execution of the software recorded in the memory 16 of the inviolable assembly 10.
- This software is executed by the microprocessor (s) 14, 18 which transmit their logical requests, for example of input / output, to the microprocessor 26 of the operating system 24.
- This microprocessor 26 then works as a slave microprocessor of the microprocessor (s) 14, 18, it executes the input / output operations which are requested and provides the results to the microprocessors 14, 18, of the set 10.
- connection means 22 we understand that it is impossible for a specialist to use the connecting means 22 to have a any direct access to the software recorded in the memory 16, given that it passes through these connection means 22 only input / output requests and the corresponding results.
- microprocessor 26 of the operating system can have very reduced performance, since it is limited to managing input / output operations.
- microprocessor (s) 14, 18 of the assembly 10 can be exactly adapted to the software that they must execute, both from the point of view of performance and that of their architecture.
- memories 16 and 20 are not limited, and several sets of memories 16-20 can be provided in the same tamper-evident assembly 10, when several microprocessors 14, 18 are provided in this assembly.
- the connecting means 22 between the microprocessor 14 and the assembly 10 and the microprocessor 26 of the use system 24 can be of different types, which are already known in themselves to those skilled in the art:
- the RS 232 C serial link is simple and very well known, and allows two microprocessors to be connected with a whole set of pre-conditioned components.
- this type of link is not very attractive from an economic point of view and is not very efficient either. It requires an additional supply and minus 12 volts. It is generally only used to connect microprocessors or central processing units more than two meters apart.
- the memory-to-memory link which uses a shareable memory component, makes it possible to connect two microprocessors or central units in a very efficient manner.
- this link is complex (creation of an acquisition line to manage access restrictions, forced sleep of the losing central unit, synchronization of memory access times, etc. ).
- the channel-to-channel link which is widely used in mainframe computers, uses a specific register directly installed on the data bus and allowing the link between two central units via a fictitious input / output channel , associated with a memory position or an input / output port address. depending on the type of machine used.
- connection means 22 between the two microprocessors 14 and 26 then comprise, for each microprocessor, a register 36 generally known as the ISR register (Interrupt Service Register) and which can be a circuit SN 74 ALS 373N or SN 74 ALS573 YEAR.
- ISR register Interrupt Service Register
- This register is requested via an address decoder (memory or input / output memory) allowing its access in read and write. Access to register 36 is only possible in reading for the microprocessor with which it is associated, and in writing for the other microprocessor. The two mi croprocessors use the same means of access and the same access address.
- Each microprocessor 14, 26 will therefore be associated with a register 36 whose inputs 0, ...., 7 are connected directly to the data bus 38 of the other microprocessor (for example 26) and whose outputs O, ...., 7 are connected directly to the data bus 40 of the associated microprocessor (for example 14).
- a flip-flop RS 42 makes it possible to manage the interruption of the associated microprocessor 14.
- the line is connected to the input of register 36 as well as to line general.
- a diode 44 is inserted on the line to isolate the RESET from the reading selection by the associated microprocessor 14.
- the line of the flip-flop 42 is connected to the input of an inverter 46 whose output is connected to the input G of the register 36.
- the output of scale 42 is connected to the input or of the associated microprocessor 14.
- the read address decoder 48 is composed of a circuit SN 74 ALS 138 N or of a logic circuit NO-AND-OR-NO. The output of this decoder 48 is directly connected to the input of flip-flop 42. The signal ⁇ general activates this line to inactivate register 36 when the corresponding microprocessor 14 is powered up or reset.
- the write address decoder 50 is composed of an identical circuit or a NON-AND-OR-NO logic circuit whose output is directly connected to the input of scale 42.
- the operating principle is as follows: as soon as a microprocessor writes to a register 36, an interruption is generated in the associated microprocessor, which will read the data contained in the register 36, process it and communicate the result in the register 36 of the other microprocessor, then resume operation where it was interrupted.
- the works ment of the other microprocessor is interrupted by the communication of the result in its own register 36.
- protocol or communication software is used between the two microcomputers so that the link is efficient and can operate without errors.
- microprocessors used in the device according to the invention are commercially available. One can in particular make use of microprocessors INTEL IAPX 86 or IAPX 88 or IAPX 186, etc, whose performances are chosen according to the software to be executed.
- the microprocessor 26 of the software use system 24 can optionally be a low-end microprocessor.
- Each microprocessor 14-memory 16-memory 20 assembly may possibly be constituted by a single integrated circuit.
- the set includes all the programs necessary for a given application, as well as the read-only memories and the microprocessor (s) dedicated to its execution;
- the assembly according to the invention is independent of any operating system and the software it contains is protected against unauthorized copies.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
Procédé et dispositif de protection et d'universalisation d'un logiciel, consistant à enregistrer le logiciel proprement dit dans une mémoire (16) reliée à un microprocesseur (14) dans un ensemble inviolable (10) relié par des moyens (22) à un système (24) d'utilisation du logiciel, et à enregister sur un support indépendant quelconque (34), tel qu'une disquette, des programmes de communication et de gestion des opérations d'entrée/sortie, ainsi que des fonctions dépendantes du système d'exploitation du système d'utilisation (24).
Description
PROCEDE ET DI SPOS ITIF DE PROTECTION ET D ' UNIVERSALISATION
D ' UN LOGICIEL
L'invention concerne un procédé et un dispositif de protection d'un logiciel, en particulier contre les copies non autorisées, et d'universalisation de ce logiciel, de façon à le rendre indépendant du système d'exploitation gérant l'ordinateur ou le micro-ordinateur destiné à utiliser ce logiciel.
On connaît l'importance que revêt la protection des programmes pour les sociétés de service en informatique. Quels que soient les moyens de protection utilisés, il est toujours possible à un spécialiste, s'il dispose du temps et des moyens suffisants. de parvenir à copier un logiciel enregistre sur un support quelconque (mémoire morte, disquette, etc . Les moyens les plus courants de protection des logiciels sont le codage ou cryptage, au moyen de clés statiques, de clés dynamiques et de fonctions ou d'algorithmes mathématiques plus ou moins sophistiqués. Le spécialiste qui parvient cependant à découvrir les clés de codage ou a inverser les fonctions de codage, peut alors utiliser le logiciel à son profit, le reproduire en une pluralité d'exemplaires, etc.
On a déjà proposé (EP-A-0175 557 et EP-A-0151 049) d ' associer dans un ensemble inviolable un microprocesseur et une mémoire dans laquelle on enregistre des parties plus ou moins importantes du logiciel à protéger. Cet ensemble peut être relié à un système informatique d'utilisation, comprenant un microprocesseur, des mémoires et des unités d'entrée/sortie, et dans lequel on a enregistré le restant du logiciel à protéger. C'est alors le microprocesseur du système d'utilisation qui commence à traiter le logiciel puis, quand il arrive à une instruction ou à un sous-programme qui n'est pas dans sa mémoire, qui transmet les données voulues au microprocesseur de l'ensemble inviolable qui exécute alors l'instruction ou le sous-programme requis, puis retrans
met les données au système d'utilisation, etc... .
On obtient alors une certaine protection du logiciel, au prix d'une augmentation considérable des communications entre la partie du logiciel stockée dans le système d'utilisation et celle qui est stockée dans l'ensemble inviolable, ce qui dégrade énormément les performances d'exécution.
La présente invention a pour objet un mode de protection d'un logiciel, qui ne soit pas soumis aux inconvénients précités et qui permette de plus de rendre ce logiciel "universel", c'est-à-dire indépendant du système d'exploitation gérant le système sur lequel le logiciel va être utilisé.
L'invention a également pour objet des moyens du type précité, qui permettent d'adapter le type et les performances d'un microprocesseur au type de logiciel qu'il doit exécuter.
L'invention a encore pour objet des moyens de ce type, qui permettent de réaliser très facilement un multi-traitement de l'information.
Elle propose, pour cela, un procédé de protection et d'universalisation d'un logiciel, consistant à enregistrer au moins une partie essentielle du logiciel dans au moins une mémoire reliée à un microprocesseur de traitement de l'information dans un ensemble de type inviolable comprenant des moyens de connexion à un système d'utilisation du logiciel, comprenant un microprocesseur, caractérisé en ce que l'on enregistre dans ladite mémoire de l'ensemble inviolable le logiciel proprement dit, on enregistre sur un support indépendant quelconque, lisible par le système d'utilisation, des programmes de communication entre l'ensemble inviolable et le système d'utilisation, de gestion des opérations d'entrée/sortie, et des fonctions dépendantes du système d'exploitation gérant le système d'utilisation, et l'on fait exécuter le logiciel par le microprocesseur de l'ensemble inviolable,
dont les demandes logiques d'entrée/sortie sont traitées par le microprocesseur du système d'utilisation.
Le procédé selon l'invention diffère donc des procédés connus en ce qu'il consiste à enregistrer, dans la mémoire d'un ensemble inviolable, non pas une partie, même importante, du logiciel, mais la totalité de ce logiciel, hormis ses fonctions système, qui sont elles enregistrées sur un support quelconque indépendant, tel par exemple qu'une disquette qui sera lue par le système d'utilisation. Il en résulte que, selon l'invention, le microprocesseur du système d'utilisation se borne à gérer et à exécuter les demandes d'entrée/sortie qui lui sont adressées par le microprocesseur de l'ensemble inviolable, ce dernier exécutant le logiciel en question.
On évite donc ainsi l'inconvénient essentiel des procédés antérieurs, qui consistait à transférer sans cesse des données entre l'ensemble inviolable et le système d'utilisation, étant donné que chacun d'eux exécutait une part du logiciel.
Corollairement, le logiciel exécuté par le microprocesseur de l'ensemble inviolable est rendu indépendant du système d'exploitation qui gère le système d'utilisation. Il suffit pour cela que, sur le support annexe, on ait enregistré les programmes voulus de communication et de gestion des entrées/sorties, ainsi que les fonctions qui sont dépendantes de ce système d'exploitation.
Selon une autre caractéristique de l'invention, on prévoit un seul port d'entrée/sortie sur l'ensemble inviolable, pour sa connexion au microprocesseur du système d'utilisation. Cette liaison, qui est de microprocesseur à microprocesseur, peut être une liaison série du type RS 232 C, ou une liaison à mémoire partageable, ou encore une liaison canal à canal d'entrée/sortie parallèle.
Il en résulte que tout accès à la mémoire de
l'ensemble inviolable dans laquelle est stocké le logiciel, est interdit et qu'il ne passe, par la liaison entre les microprocesseurs, que des demandes d'entrée/sortie et les résultats correspondants.
La protection proprement dite du logiciel peut être assurée de diverses façons : par exemple en utilisant une matière du type thermodurcissable dans laquelle sont noyées les mémoires et le microprocesseur de l'ensemble inviolable.
Ces moyens peuvent être combinés avec d'autres moyens connus de protection, tels que le codage ou criptage, et les techniques dites de "gate array" (système de tables de correspondance), de "standard cell" ou de "full custom".
L'invention propose également un dispositif de protection et d'universalisation d'un logiciel, comprenant au moins une mémoire dans laquelle est enregistrée une partie essentielle du logiciel et un microprocesseur de traitement de l'information, relié à la mémoire et formant avec celle-ci un ensemble inviolable comprenant des moyens de connexion à un système d'utilisation du logiciel comprenant un microprocesseur, caractérisé en ce que le logiciel proprement dit est enregistré dans la mémoire de l'ensemble inviolable, et en ce qu'un support indépendant quelconque, lisible par le système d'utilisation, contient des programmes de communication entre l'ensemble inviolable et le système d'utilisation, de gestion des opérations d'entrée/sortie, et des fonctions qui sont dépendantes du système d'exploitation gérant le système d'utilisation.
Le dispositif selon l'invention est extrêmement peu coûteux par rapport aux avantages qu'il présente. En effet, le prix d'un microprocesseur fabriqué en grande série est maintenant très faible, et son association à une mémoire de travail et à une mémoire dans lequel est enregistré le logiciel, n'augmente pas de façon
sensible le prix d'un logiciel.
Selon une autre caractéristique de l'invention, les moyens de connexion entre les microprocesseurs du système d'utilisation et de l'ensemble inviolable comprennent une liaison série du type RS 232 C, ou une liaison à mémoire partageable, ou encore une liaison canal à canal d'entrée/sortie parallèle.
Par exemple, la liaison canal a canal comprend, pour chaque microprocesseur, un registre ISR directement implanté sur un bus de données du microprocesseur associé, et une bascule RS dont les entrées sont reliées a des circuits décodeurs d'adresses de lecture et d' écriture.
Ce type de liaison est simple à réaliser, peu coûteux et très performant.
Un autre avantage du dispositif selon l'invention est que l'on peut prévoir, dans le même ensemble inviolable, plusieurs microprocesseurs reliés en parallèle aux mémoires de cet ensemble, ce qui permet de réaliser très simplement un multi-traitement.
En outre, plusieurs ensembles inviolables peuvent être connectés au même système d'utilisation, ce qui constitue une autre possibilité de multi-traitement; les deux possibilités précitées pouvant d'ailleurs être combinées.
Dans la description qui suit, faite à titre d'exemple, on se réfère aux dessins annexés, dans lesquels :
La figure 1 représente schématiquement un dispositif selon l'invention et sa connexion à un système d'utilisation de logiciel;
La figure 2 représente schématiquement à titre d'exemple les caractéristiques essentielles d'une liaison canal à canal utilisée dans le cadre de l'invention.
En figure 1, le dispositif selon l'invention
est désigné généralement par la référence 10 et comprend un boîtier 12 de type inviolable, qui contient au moins un microprocesseur 14 de traitement de l'information et au moins une mémoire 16 dans laquelle a été enregistré l'essentiel d'un logiciel à protéger. Par l'essentiel, on entend toutes les fonctions complexes et/ou originales du logiciel et tous ses programmes et sous-programmes, à l'exception des fonctions système (hormis peut-être celle d'horloge}.
Dans l'exemple représenté. le boîtier 12 contient un autre microprocesseur 18 qui est connecté au microprocesseur 14, l'un etant par exemple maître et l'autre esclave. Les microprocesseurs 14 et 18 sont raccordes a la memoire 16 précitée, qui est par exemple du type ROM, PROM, EPROM, etc..., ainsi qu'à une mémoire de travail 20 du type RAM, dans laquelle seront exécutés les logiciels.
L'un des microprocesseurs de l'ensemble 10 est associé également à des moyens 22 de liaison à un système 24 d'utilisation du logiciel.
Ce système 24 peut être un micro-ordinateur de type personnel ou professionnel, ou encore un système informatique spécialisé. Il comprend par exemple un microprocesseur 26 associé à une mémoire vive 28, une mémoire morte 30 et au moins une unité 32 d' entrée/sortie.
La partie du logiciel qui n'est pas enregistrée dans la mémoire 16 de l'ensemble 10, et qui correspond à des programmes de communication entre l'ensemble 10 et le système 24, à des programmes de gestion des opérations d'entrée/sortie et à des fonctions dépendantes du système d'exploitation gérant le système d'utilisation 24, peut être enregistrée sur un support indépendant 34, telle qu'une disquette, l'unité 32 d' entrée-sortie du système 24 étant alors une unité de disquette.
L'ensemble 10 peut être rendu inviolable grâce à un bloc ou une couche d'une matière dure telle
qu'une résine thermodurcissable, formant le boîtier 12 qui contient le ou les microprocesseurs 14, 18, les mémoires 16, 20 et leurs connexions, ainsi qu'une partie des moyens de liaison 22. La matière utilisée peut être une matière synthétique du type résine polymérisable à froid ou à température élevée et qui, après polymérisation, devient très dure et très résistante et possède un point de fusion élevé, de telle sorte que toute tentative de destruction ou d'enlèvement de cette matière entraîne nécessairement la destruction de la mémoire 16 et/ou de ses liaisons aux microprocesseurs 14.. 18.
On peut bien entendu utiliser tout autre moyen équivalent empêchant l'accès physique, électrique, ou électronique à la mémoire 16 et à ses connexions avec les microprocesseurs 14, 18.
L'utilisation du dispositif selon l'invention est le suivant:
Il suffit, par les moyens de liaison 22, de connecter l'ensemble selon l'invention à un système 24 d'utilisation du logiciel. La disquette 34 ou tout autre support approprié, est placé dans l'unité d' entrée /sortie 32 du système 24.
Le système 24 est alors en mesure d'exécuter les programmes contenus dans la disquette 34 et ainsi de déclencher l'exécution du logiciel enregistré dans la mémoire 16 de l'ensemble inviolable 10. Ce logiciel est exécuté par le ou les microprocesseurs 14, 18 qui transmettent leurs demandes logiques, par exemple d'entrée/sortie, au microprocesseur 26 du système d'utilisation 24. Ce microprocesseur 26 travaille alors comme un microprocesseur esclave du ou des microprocesseurs 14, 18, il exécute les opérations d' entrée/sortie qui lui sont demandées et fournit les résultats aux microprocesseurs 14, 18, de l'ensemble 10.
On comprend qu'il est impossible à un spécialiste d'utiliser les moyens de liaison 22 pour avoir un
accès direct quelconque au logiciel enregistré dans la mémoire 16, étant donné qu'il ne passe dans ces moyens de liaisons 22 que des demandes d'entrée/sortie et les résultats correspondants.
Par ailleurs, le microprocesseur 26 du système d'utilisation peut avoir des performances très réduites, puisqu'il se borne à gérer des opérations d'entrée/sortie.
En revanche, le ou les microprocesseurs 14, 18 de l'ensemble 10 peuvent être exactement adaptés aux logiciels qu'ils doivent exécuter, à la fois du point de vue des performances et de celui de leur architecture.
Il en résuite corollairement une double possibilité de multi-traitement: soit à l'intérieur de l'ensemble 10 grâce à plusieurs microprocesseurs 14, 18, ..., soit par rapport au microprocesssur 26 du système d'utilisation, auquel on peut connecter plusieurs ensembles 10 différents. Ces deux possibilités de multitraitement peuvent bien entendu être combinées et multipliées autant que nécessaire.
La capacité des mémoires 16 et 20 n ' est pas limitée, et plusieurs ensembles de mémoires 16-20 peuvent être prévus dans le même ensemble inviolable 10, lorsque plusieurs microprocesseurs 14, 18 sont prévus dans cet ensemble.
Les moyens de liaison 22 entre le microprocesseur 14 et l'ensemble 10 et le microprocesseur 26 du système d'utilisation 24 peuvent être de différents types, qui sont déjà connus en eux-mêmes de l'homme du métier :
- une liaison série du type RS 232 C,
- une liaison du type à mémoire partageable, ou une liaison canal à canal d'entrée/sortie parallèle.
La liaison série RS 232 C est simple et très bien connue, et permet de relier deux microprocesseurs
avec tout un ensemble de composants pré-conditionnés. Cependant, ce type de liaison n'est pas très mtéressant sur le plan économique et n'est pas non plus très performant. Il nécessite une alimentation en plus et moins 12 volts. Il n'est en général utilisé que pour relier des microprocesseurs ou des unités centrales distantes de plus de deux mètres environ.
La liaison du type mémoire à mémoire, qui utilise un composant à mémoire partageable, permet de relier deux microprocesseurs ou unités centrales de façon très performante. Cependant, la mise au point de cette liaison est complexe (création d'une ligne d'acquisition pour gérer les contentions d'accès, mise en sommeil forcé de l'unité centrale perdante, synchronisation des temps d'accès à la mémoire, etc...).
La liaison canal à canal, qui est très utilisée dans les grands ordinateurs, fait appel à un registre spécifique directement implanté sur le bus de données et permettant la liaison entre deux unités centrales par l'intermédiaire d'un canal fictif d'entrée/sortie, associé à une position de la mémoire ou à une adresse de port d'entrée/sortie. en fonction du type de machine utilisée.
Pour fixer les idées, une partie essentielle d'une liaison canal à canal a été représentée aux figures 2.
Les moyens de liaison 22 entre les deux microprocesseurs 14 et 26 comprennent alors, pour chaque microprocesseur, un registre 36 connu en général sous le nom de registre ISR (Interrupt Service Register) et qui peut être un circuit SN 74 ALS 373N ou SN 74 ALS573 AN.
Ce registre est sollicité par l'intermédiaire d'un décodeur d'adresse (mémoire ou mémoire d'entrée/sortie) permettant son accès en lecture et en écriture. L'accès au registre 36 n'est possible qu'en lecture pour le microprocesseur auquel il est associé, et qu'en écriture peur l'autre microprocesseur. Les deux mi
croprocesseurs utilisent le même moyen d'accès et la même adresse d'accès.
Chaque microprocesseur 14, 26 va donc être associé à un registre 36 dont les entrées 0, .... , 7 sont connectées directement au bus de données 38 de l'autre microprocesseur (par exemple 26) et dont les sor- ties O, ...., 7 sont reliées directement au bus de données 40 du microprocesseur associé (par exemple 14).
Une bascule RS 42 permet de gérer l'interruption du microprocesseur associé 14. La ligne est reliée à l'entrée du registre 36 ainsi qu'a
la ligne
générale. Une diode 44 est insérée sur la ligne
pour isoler le RESET de la sélection de lecture par le microprocesseur associé 14. La ligne
de la bascule 42 est reliée à l'entrée d'un inverseur 46 dont la sortie est reliée à l'entrée G du registre 36. La sortie
de la bascule 42 est reliée à l'entrée
ou
du microprocesseur associé 14.
Le décodeur 48 d'adresse de lecture est composé d'un circuit SN 74 ALS 138 N ou d'un circuit logique N0N-ET-OU-NON. La sortie de ce décodeur 48 est directement reliée à l'entrée
de la bascule 42. Le signal
¬
général active cette ligne pour inactiver le registre 36 au moment de la mise sous tension ou de la réinitialisation du microprocesseur 14 correspondant.
Le décodeur d'adresse d'écriture 50 est composé d'un circuit identique ou d'un circuit logique NON- ET-OU-NON dont la sortie est directement reliée à l'entrée
de la bascule 42.
Le principe de fonctionnement est le suivant: dès qu'un microprocesseur écrit dans un registre 36, une interruption est générée dans le microprocesseur associé, qui va lire la donnée contenue dans le registre 36, la traiter et communiquer le résultat dans le registre 36 de l'autre microprocesseur, puis reprendre ensuite son fonctionnement là où il avait été interrompu. Le fonctionne
ment de l'autre microprocesseur est interrompu par la communication du résultat dans son propre registre 36.
Sauf dans le cas où l'on a défini a priori les rôles des microprocesseurs (l'un maître et l'autre esclave), on utilise un logiciel de protocole d'échange ou de communication entre les deux micro-ordinateurs pour que la liaison soit efficace et puisse fonctionner sans erreurs.
On peut utiliser pour cela les codes du protocole de communication BSC (Binarγ Synchronous Communication) qui est bien connu des spécialistes:
WCC : code commande
STX : début de texte
ETX : fin de texte
EOT : fin de dialogue
ACK : bien reçu
NKK : pas d'accord
INQ : invitation.
L'homme du métier sait utiliser un tel protocole de communication.
Les microprocesseurs utilisés dans le dispositif selon l'invention sont disponibles dans le commerce. On peut notamment se servir de microprocesseurs INTEL IAPX 86 ou IAPX 88 ou IAPX 186, etc, dont les performances sont choisies en fonction du logiciel à exécuter. Le microprocesseur 26 du système 24 d'utilisation du logiciel peut éventuellement être un microprocesseur bas de gamme.
Chaque ensemble microprocesseur 14-mémoire 16-mémoire 20 peut éventuellement être constitué par un seul circuit intégré.
Les avantages essentiels de l'invention sont les suivants :
-on combine en un ensemble autonome et amovible les circuits et les logiciels nécessaires à une application donnée, cet ensemble ne possédant qu'une liai
son protocolaire avec l'extérieur;
-l'ensemble comprend la totalité des programmes nécessaires à une application donnée, ainsi que les mémoires mortes et vives et le ou les microprocesseurs dédiés à son exécution ;
-il ne possède qu'un système de contrôle logique pour les opérations d' entrée/sortie impliquant des unités périphériques
-il ne possède aucune fonction système, autre que la fonction horloge
-il ne possède qu'un seul port d'entrée/sortie qui lui permet d'être relié à un système d'utilisation par une liaison classique du type canal à canal,
-il ne possède aucun système de contrôle des opérations physiques d' entrée/sortie, autre que celui de sa liaison avec le système d'utilisation.
L'ensemble selon l'invention est indépendant d'un système quelconque d'exploitation et le eu les logiciels qu'il contient sont protégés contre les copies non autorisées.
Claims
1. Procédé de protection et d'universalisation d'un logiciel, consistant à enregistrer au moins une partie essentielle du logiciel dans au moins une mémoire (16) reliée à un microprocesseur (14) de traitement de l'information dans un ensemble (10) de type inviolable comprenant des moyens (22) de connexion à un systeme (24) d'utilisation du logiciel, comportant un microprocesseur (26), caractérisé en ce que l'on enregistre dans ladite mémoire (16) de l'ensemble inviolable (10) le logiciel proprement dit, on enregistre sur un support indépendant quelconque (34, lisible par le système d'utilisation (24), des programmes de communication entre l'ensemble inviolable (10) et le système d'utilisation (24), de gestion des opérations d'entrée/sortie, et des fonctions dépendantes du système d'exploitation gérant le système d'utilisation (24), et l'on fait exécuter le logiciel par le microprocesseur (14) de l'ensemble inviolable (10), dont les demandes logiques d'entrée/sortie sont traitées par le microprocesseur (26) du système d'utilisation (24).
2 . Procédé selon la revendication 1, caractérisé en ce qu'on prévoit un seul port d'entrée/sortie sur l'ensemble inviolable (10), pour connexion au microprocesseur (26) du système (24).
3. Procédé selon la revendication 1 ou 2 , caractérisé en ce qu'il consiste à relier le microprocesseur (14) de l'ensemble inviolable (10) au microprocesseur (26) du système d'utilisation (24) par une liaison série du type RS 232 C, ou par une liaison à mémoire partageable, ou par une liaison canal à canal d'entrée/sortie parallèle.
4. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il consiste à noyer les mémoires (16, 20) et le microprocesseur (14) précité dans un bloc ou une épaisseur (12) de matière résistante, telle par exemple qu'une résine thermodurcissable.
5. Procédé selon l'une des revendications 1 à 4, caractérisé en ce que l'on prévoit plusieurs microprocesseurs (14, 18) en parallèle dans ledit ensemble inviolable (12).
6. Dispositif de protection et d'umversalisation d'un logiciel, comprenant au moins une mémoire (16) dans laquelle est enregistrée une partie essentielle du logiciel et un microprocesseur (14) de traitement de l'information, relie à la mémoire (16) et formant avec celle-ci un ensemble inviolable (10) comprenant des moyens (22) de connexion à un système (24) d'utilisation du logiciel comprenant un microprocesseur (26), caractérisé en ce que le logiciel proprement dit est enregistré dans la mémoire (16) de l'ensemble inviolable (10) et en ce qu'un support indépendant quelconque (34), lisible par le système d'utilisation (24), contient des programmes de communication entre l'ensemble inviolable (10) et le système d'utilisation (24), de gestion des opérations d'entrée/sortie, et des fonctions dépendantes du système d'exploitation gérant le système d ' utilisation (24).
7. Dispositif selon la revendication 6, caractérisé en ce que l'ensemble inviolable (10) comprend un bloc ou une épaisseur (12) d'une matière telle qu'une résine thermodurcissable, dans laquelle sont noyés la mémoire (16) et le microprocesseur (14) précité ainsi que leurs connexions.
8. Dispositif selon la revendication 6 ou 7, caractérisé en ce que l'ensemble inviolable (10) précité comprend plusieurs microprocesseurs (14, 18) reliés en parallèle à au moins une mémoire (16) contenant le ou les logiciels à exécuter et au moins une mémoire vive (20) par laquelle sont exécutés les logiciels.
9. Dispositif selon l'une des revendications 6 à 8, caractérisé en ce que les moyens (22) de connexion entre les microprocesseurs (14, 26) de l'ensemble inviolable et du système d'utilisation comprennent une liaison série du type RS 232 C, ou une liaison à mémoire partageable, ou une liaison canal à canal d ' entrée/sortie parallèle.
10. Dispositif selon la revendication 9, caractérisé en ce que la liaison canal a canal comprend, pour chaque microprocesseur (14, 26), un registre ISR (36) directement implanté sur un bus de données (40) du microprocesseur associé, et une bascule RS (42) dont les entrées sont reliées a des circuits (48, 50) de codeurs d'adresses de lecture et d'écriture.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR88/10360 | 1988-08-01 | ||
FR8810360A FR2634917A1 (fr) | 1988-08-01 | 1988-08-01 | Procede et dispositif de protection d'un logiciel, en particulier contre les copies non autorisees |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1990001736A1 true WO1990001736A1 (fr) | 1990-02-22 |
Family
ID=9368990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR1989/000392 WO1990001736A1 (fr) | 1988-08-01 | 1989-07-26 | Procede et dispositif de protection et d'universalisation d'un logiciel |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0395749A1 (fr) |
JP (1) | JPH03500462A (fr) |
FR (1) | FR2634917A1 (fr) |
WO (1) | WO1990001736A1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1471405A1 (fr) * | 2001-11-12 | 2004-10-27 | Network Research Lab, Ltd. | Procede et systeme de protection des informations contre l'utilisation non autorisee |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2828304B1 (fr) * | 2001-07-31 | 2010-09-03 | Validy | Procede pour proteger un logiciel a l'aide d'un principe dit de "dissociation temporelle" contre son utilisation non autorisee |
FR2828301B1 (fr) * | 2001-07-31 | 2010-09-03 | Validy | Procede pour proteger un logiciel a l'aide d'un principe dit de "detection et coercition" contre son utilisation non autorisee |
FR2828303B1 (fr) * | 2001-07-31 | 2010-09-03 | Validy | Procede pour proteger un logiciel a l'aide d'un principe dit de "renommage" contre son utilisation non autorisee |
FR2828305B1 (fr) * | 2001-07-31 | 2010-09-03 | Validy | Procede pour proteger un logiciel a l'aide d'un principe dit de "variable" contre son utilisation non autorisee |
FR2828302B1 (fr) * | 2001-07-31 | 2010-09-03 | Validy | Procede pour proteger un logiciel a l'aide d'un principe dit de "branchement conditionnel" contre son utilisation non autorisee |
FR2828300B1 (fr) * | 2001-07-31 | 2010-09-03 | Validy | Procede pour proteger un logiciel a l'aide d'un principe dit de "fonctions elementaires" contre son utilisation non autorisee |
US7343494B2 (en) | 2001-08-01 | 2008-03-11 | Sas Validy | Method to protect software against unwanted use with a “renaming” principle |
US7174466B2 (en) | 2001-08-01 | 2007-02-06 | Sas Validy | Method to protect software against unwanted use with a “detection and coercion” principle |
US7434064B2 (en) | 2001-08-01 | 2008-10-07 | Sas Validy | Method to protect software against unwanted use with a “elementary functions” principle |
US7269740B2 (en) | 2001-08-01 | 2007-09-11 | Sas Validy | Method to protect software against unwanted use with a “variable principle” |
US7502940B2 (en) | 2001-08-01 | 2009-03-10 | Sas Validy | Method to protect software against unwanted use with a “conditional branch” principle |
US7272725B2 (en) | 2002-06-25 | 2007-09-18 | Sas Validy | Method to protect software against unwanted use with a “temporal dissociation” principle |
FR2870019B1 (fr) * | 2004-05-10 | 2006-09-01 | Gemplus Sa | Plate forme electronique a acces securise, et procede de securisation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0151049A2 (fr) * | 1984-02-02 | 1985-08-07 | National Research Development Corporation | Micro-ordinateur à protection de logiciel |
EP0175557A1 (fr) * | 1984-09-20 | 1986-03-26 | Kenneth John Fifield | Méthode et dispositif de traitement |
US4646234A (en) * | 1984-02-29 | 1987-02-24 | Brigham Young University | Anti-piracy system using separate storage and alternate execution of selected proprietary and public portions of computer programs |
FR2606185A1 (fr) * | 1986-11-04 | 1988-05-06 | Eurotechnique Sa | Procede et dispositif de stockage d'un logiciel livre par un fournisseur a un utilisateur |
EP0268142A2 (fr) * | 1986-11-05 | 1988-05-25 | International Business Machines Corporation | Boîtier résistant aux manipulations non autorisées pour la protection d'informations mémorisées dans un circuit électronique |
-
1988
- 1988-08-01 FR FR8810360A patent/FR2634917A1/fr not_active Withdrawn
-
1989
- 1989-07-26 WO PCT/FR1989/000392 patent/WO1990001736A1/fr not_active Application Discontinuation
- 1989-07-26 EP EP19890909200 patent/EP0395749A1/fr not_active Withdrawn
- 1989-07-26 JP JP50859589A patent/JPH03500462A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0151049A2 (fr) * | 1984-02-02 | 1985-08-07 | National Research Development Corporation | Micro-ordinateur à protection de logiciel |
US4646234A (en) * | 1984-02-29 | 1987-02-24 | Brigham Young University | Anti-piracy system using separate storage and alternate execution of selected proprietary and public portions of computer programs |
EP0175557A1 (fr) * | 1984-09-20 | 1986-03-26 | Kenneth John Fifield | Méthode et dispositif de traitement |
FR2606185A1 (fr) * | 1986-11-04 | 1988-05-06 | Eurotechnique Sa | Procede et dispositif de stockage d'un logiciel livre par un fournisseur a un utilisateur |
EP0268142A2 (fr) * | 1986-11-05 | 1988-05-25 | International Business Machines Corporation | Boîtier résistant aux manipulations non autorisées pour la protection d'informations mémorisées dans un circuit électronique |
Non-Patent Citations (2)
Title |
---|
A.S. Tanenbaum: "Operating Systems: Design and Implementation", 1987, Prentice-Hall International, Inc. (Englewood Cliffs, NJ, US), pages 118-119 * |
Mini-Micro Conference Record, 8-11 novembre 1983, San Francisco (CA, US), B. Huston: "New ICs help prevent software theft", pages 1-11 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1471405A1 (fr) * | 2001-11-12 | 2004-10-27 | Network Research Lab, Ltd. | Procede et systeme de protection des informations contre l'utilisation non autorisee |
EP1471405A4 (fr) * | 2001-11-12 | 2010-01-13 | Gerite Associates Ltd | Procede et systeme de protection des informations contre l'utilisation non autorisee |
Also Published As
Publication number | Publication date |
---|---|
JPH03500462A (ja) | 1991-01-31 |
FR2634917A1 (fr) | 1990-02-02 |
EP0395749A1 (fr) | 1990-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO1990001736A1 (fr) | Procede et dispositif de protection et d'universalisation d'un logiciel | |
EP0552079B1 (fr) | Carte à mémoire de masse pour microordinateur | |
EP0540095A1 (fr) | Microcircuit pour carte à puce à mémoire programmable protégée | |
FR2675602A1 (fr) | Procede et dispositif de protection d'un systeme informatique. | |
EP0552077B1 (fr) | Carte à mémoire de masse pour microordinateur avec facilités d'exécution de programmes internes | |
EP0089876A1 (fr) | Procédé et dispositif de protection d'un logiciel livré par un fournisseur à un utilisateur | |
FR2668274A1 (fr) | Circuit integre a securite d'acces amelioree. | |
FR2645663A1 (fr) | Procedes et circuits pour gerer une pile en memoire | |
FR2747962A1 (fr) | Titre de paiement sur tous les types de reseaux electroniques et en particulier le reseau internet | |
EP1086411B1 (fr) | Procede de controle de l'execution d'un produit logiciel | |
FR2591775A1 (fr) | Dispositif electronique formant memoire stable rapide perfectionnee | |
EP1025523B1 (fr) | Appareils electroniques permettant de gerer avec precision la consommation des primes d'assurances qui font l'objet d'un contrat quelle qu'en soit la nature | |
FR2882835A1 (fr) | Procede de transfert securise par carte multimedia securisee | |
EP0900429A1 (fr) | Systeme securise de controle d'acces permettant le transfert d'habilitation a produire des cles | |
EP3903210A1 (fr) | Reseau de communication securisee et tracee | |
EP0246119B1 (fr) | Système optionnel de protection de l'accès à un ordinateur | |
FR2541014A1 (fr) | Procede de protection d'un logiciel enregistre par un fournisseur sur un support magnetique portatif | |
EP0557197A1 (fr) | Système de partage de temps d'accès à une mémoire partagée entre un processeur et d'autres applications | |
CA2319773A1 (fr) | Protection simultanee de plusieurs logiciels de plusieurs concepteurs de logiciels | |
EP1573507A2 (fr) | Dispositif de memorisation d une liste d elements et pr ocede de memorisation d un element dans un tel dispositif | |
EP0569653A1 (fr) | Dispositif de mémorisation d'informations connectable à un ordinateur | |
FR2856167A1 (fr) | Dispositif de collection et de distribution de donnees | |
WO2007082900A1 (fr) | Dispositif electronique portable apte a fournir un contenu dynamique | |
FR2688078A1 (fr) | Dispositif de traitement et de transfert monetique adaptable a des ordinateurs standards. | |
FR2635599A1 (fr) | Systeme d'extension de memoire pour au moins un ensemble de traitement de donnees |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): JP US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE FR GB IT LU NL SE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1989909200 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 1989909200 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1989909200 Country of ref document: EP |