WO1999039256A1 - Simultaneous protection for several types of software of several software designers - Google Patents

Simultaneous protection for several types of software of several software designers Download PDF

Info

Publication number
WO1999039256A1
WO1999039256A1 PCT/FR1999/000182 FR9900182W WO9939256A1 WO 1999039256 A1 WO1999039256 A1 WO 1999039256A1 FR 9900182 W FR9900182 W FR 9900182W WO 9939256 A1 WO9939256 A1 WO 9939256A1
Authority
WO
WIPO (PCT)
Prior art keywords
software
lcl
present
microcontroller
reader
Prior art date
Application number
PCT/FR1999/000182
Other languages
French (fr)
Inventor
Chiun-Qiang Lee
Original Assignee
Lee Chiun Qiang
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lee Chiun Qiang filed Critical Lee Chiun Qiang
Priority to EP99901657A priority Critical patent/EP1049969A1/en
Priority to CA002319773A priority patent/CA2319773A1/en
Priority to AU21685/99A priority patent/AU2168599A/en
Publication of WO1999039256A1 publication Critical patent/WO1999039256A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices

Definitions

  • the present invention relates to the protection of software against unauthorized use.
  • the illegal use of software is defined in relation to an authorization to use this software.
  • This authorization therefore results in the fact that the software designer agrees to give a user license which authorizes, vis-à-vis the law, the use of his products, at the end of a commercial agreement.
  • the selling price of software is calculated with the number of users likely to buy it. So the profits made by a software company depend quite enough on how their customers intend to use this software once purchased. Insofar as after the purchase the user is free to duplicate the content of the media containing these software programs, the survival of software developers depends quite on the honesty of their customers.
  • this license obtained generally authorizes the use of the given software only on one computer station.
  • Another disadvantage of such a system is that its use dedicated to protecting software from a single designer can make the presence of a coprocessor annoying, especially when other designers decide to provide similar software protection means. In some cases, adding a new device may not be possible. Furthermore, such a coprocessor represents a possible investment only with software whose price is very high.
  • the present invention overcomes all the drawbacks which have just been mentioned.
  • the present invention relates to the protection of software against non-compliance with the conditions of use of the software fixed by its designer. It concerns the use of a single device to protect several software independently of the computer systems and of the designer of these software. It is based on the use of two electronic devices which cannot be duplicated without authorization. This protection against duplication of the devices according to the present invention is achieved thanks to an authentication method integrated into these devices.
  • the first device is an electronic reader of the second. It is noted LCL for license card reader. This reader provides almost all of the software protection functionalities according to the present invention. - 4 -
  • the second device is an electronic card, marked CL (license card).
  • the present invention separates software protection on three levels.
  • the present invention relates to a method allowing the separation of the protected software (recording media) from the means which realizes the protection of this software (the LCL reader).
  • the LCL reader is distributed independently with respect to the distribution of the protected software according to the present invention.
  • the same LCL reader can be used to allow the protection of several software regardless of the designers and the number of software.
  • the use of protected software according to the present invention is only possible if the user has the CL card which is distributed independently of the LCL reader.
  • the CL card is a small portable device compared to a chip card. It has a removable large capacity recording device. It allows data to be stored securely against unauthorized readings and / or modifications. It is essentially used as an access device allowing the use of the protected software according to the present invention.
  • the conditions of use of a software are fixed by the software designers. A user can only run software if he has an authorization supplied to him on his CL card during a purchase transaction.
  • the CL card allows you to store a large number of protected software uses on a removable recording medium.
  • the CL card allows the user to transport the authorizations for the use of software and to be able to use the corresponding software on any computer when the use of this software for which he is entitled is possible in relation to the presence or not of this protected software on this computer.
  • the present invention relates, with respect to the use of this CL card, to a means of combating the loss or theft of this CL card.
  • the card In the event of loss or theft, the card can be rendered unusable by the organization which manages (administers) the devices according to the present invention.
  • a significant part of the licenses for the use of this software can be recovered in the event of loss.
  • the user does not run the risk of losing his rights to use software when the CL card is lost, which can be the case with software protection devices in the current state of the art.
  • the present invention relates to methods of protecting software independently of computer systems.
  • the present invention allows the protection of software used on the network and / or on a personal computer.
  • the LCL reader has a large capacity for modularity in relation to the various devices that can be added to its internal electronic system. Thus, it is very easy to connect the LCL reader to any IT environment.
  • software protection according to the present invention is achievable with the same LCL reader in - 5 - very heterogeneous IT systems where many different systems coexist.
  • the operation of LCL readers is independent of these computer systems. Consequently, LCL readers allow the protection of software independently of the computer systems intended to run this software.
  • the present invention allows the development of protected software regardless of the technical characteristics of the devices according to the present invention.
  • protected software according to the present invention is independent of the internal functioning of the LCL.
  • the production of protected software according to the present invention is made possible by executing part of the functions that make up this software by the internal resources of LCL.
  • the writing of these functions is completely transparent since the software designer is not required to respect the electronic architecture of LCL.
  • the proper functioning of these functions can even be tested outside the LCL reader, so that the work of software protection for the designer stops when these functions stop.
  • These functions are essentially functions of calculations of small size compared to the size of a standard software and whose execution is very fast.
  • several different protected software can be used within the framework of a network with the same LCL reader.
  • several software protected according to the present invention can therefore be used on a personal computer with a single LCL reader.
  • the operation of the LCL player used with a personal computer compared to use in a network environment differs only in the communication devices used in each case.
  • the LCL reader carries out software protection by performing measurements on the use of all the software running.
  • the LCL reader is according to the present invention, capable of knowing the number of licenses used on a computer and / or on the entire network to which it is connected. It is able to know the duration of use of a given software by a given user. According to the present invention, it is capable of knowing all the usage information concerning a given software with respect to time.
  • These measurement means specific to the LCL reader allow the LCL reader to arbitrate the use of the software protected according to the present invention. This arbitration is carried out in relation to the conditions of use of each software protected according to the present invention. These conditions are set by the designer of this software.
  • the CL card is used to store auto ⁇ sations of software uses and the profile of the user in relation to his use of the software protected according to the present invention.
  • the LCL reader is responsible for verifying whether the profile of the user in relation to his rights to use the software, corresponds to the conditions of use set by the designer of these software. These conditions can be, according to the embodiment of the present invention, conditions of use limited in time, conditions of simultaneous opening of a number of execution sessions limited by the number of user licenses owned by the owner. of the CL card. - 6 -
  • a single LCL reader can arbitrate on one or more computers the use of one or more different software programs protected according to the present invention.
  • the arbitration rules can be specific to each version of software, which allows the protection of several software by a single device according to specific criteria for the use of each protected software.
  • the present invention allows distribution of protected software independently of the means of protection so that the software developer may not build up inventories of devices enabling protection.
  • the protection of software according to the present invention is advantageous for small and large software distributions: the use of a single device for the protection of several software independently of the designers can only reduce the cost of using the system software protection according to the present invention.
  • the present invention allows great flexibility with respect to the administration of protected software.
  • the sale of authorizations to use a given software can be centralized or decentralized.
  • the creation of protected software can be carried out in several ways.
  • the authorizations to create protected software according to the present invention can be centralized or decentralized (situation described in the case of development of demonstration software or software whose use is limited).
  • the apparatuses according to the present invention can carry out communications with remote systems.
  • the administration of these devices is carried out by a remote system which is, according to the embodiment of the present invention, a server denoted aSVR.
  • This server fixes the conditions of use of the devices according to the present invention. It generally arbitrates the use of the devices according to the present invention.
  • the software usage authorizations contained in a CL card can either be moved in the LCL reader, or in another CL card. In the event that the movement is due to an LCL reader, access to protected software can be achieved without the presence of a CL card. In the case of travel to another CL card, this allows software licenses to be distributed by resellers.
  • the present invention may or may not centralize the sales of software authorizations.
  • the LCL card reader has one or more devices) which allows adding peripherals quickly and easily.
  • the LCL reader has a radio receiver for receiving information in a secu ⁇ sed manner or not thanks to a transmission device managed by said aSVR server. This receiver is mainly used for operations to buy authorizations to use software offline, update operations. It also makes it possible to manage the security of use of the devices according to the present invention.
  • the present invention allows, by its means and methods, purchases either by computer connections or by a human reception system. Purchases can therefore be made online or offline. These purchases consist in the acquisition of self-use uses Protected software according to the present invention.
  • the present relates to the use of a digital radio receiver allowing in particular the reception of these auto ⁇ sations of uses.
  • the present invention relates to the use within the LCL reader, of a microcontroller secu ⁇ sé against the readings and / or the non auto ⁇ sées modifications of its internal memory and against virus attacks data processing which can be encountered insofar as this microcontroller executes programs of which it ignores the reliability, the use of the reader like means of software protection is free outside possible commercial agreements.
  • this property allows the use of the LCL reader and the CL card to be completely free.
  • the CL card is small in size II is based on a microcontroller allowing secu ⁇ ser access to information which define the rights of use of a given software . It can store a very large number of authorization to use protected software according to the present invention.
  • Information is stored on high capacity recording media. They are protected against all modifications and unauthorized readings. In addition, the internal system of its microcontroller is also protected against any physical and logical control.
  • the present invention relates to a scalable software protection system insofar as it is possible to update all of the computer systems contained in the above-mentioned microcontrollers Given their capacity to secure the storage of data and the execution of programs, also taking into account the possibility of easily updating the computer systems of the apparatuses according to the present invention, the present invention allows software protection apparatuses to be used in other application sectors.
  • FIG. 1 illustrates all of the connection variants used in the present invention, and reflects the general operation of the invention. It makes it possible to understand the different contexts of use of the devices according to the present invention.
  • FIG. 2 illustrates the different layers of software necessary for a given LCL to connect to a remote system.
  • FIG. 3 illustrates the block diagram of the architecture of the microcontroller used in the LCL device.
  • Figure 4 reflects the possible associations between two competing LCLs on the same network, to allow the sharing of operations related to the protection of software by the present invention.
  • FIG. 5 illustrates the block diagram of the various elements making up the electronic card CL, in particular the architecture of the microcontroller associated with a card CL.
  • FIG. 6 represents a front view of the housing of the CL card.
  • FIG. 7 represents a perspective view of the CL housing with the CompactFlash card removed from its support.
  • - 8 - Figure 8 illustrates the sets of female male connectors between LCL and CL.
  • FIG. 9 illustrates the fact that the apparatuses according to the present invention have durations of use with respect to the calend ⁇ er.
  • Figure 10 illustrates the steps of an authentication procedure preventing pirated devices from working with certified devices (LCL readers and CL cards).
  • FIG. 11 illustrates the steps of an operation for purchasing licenses to use protected software according to the present invention.
  • FIG. 12 illustrates a simplified logic tree used by the operating system of the microcontroller 100 to perform software protection.
  • the entire system which exploits the electronic reader can have centralized management via an aSVR server which has a database 12 relating to the devices. according to the present invention. All of the comp ⁇ s elements in Box 10 are managed by a given organization. This body is the distributor of the devices relating to the present invention.
  • the aSVR server can communicate with remote computer systems using an LCL reader.
  • an LCL reader can have a means for connecting either directly to a network 40, or to an I / O port of a personal computer (context represented by box 30) or have a digital radio receiver 22 (context represented by box 20).
  • Figure 2 illustrates the different layers traversed by LCL to reach a remote system.
  • the communications between the remote system and LCL are managed by two programs running on a computer 50.
  • the connection 54 between the computer and an LCL reader can, depending on the type of use, be a network connection in the case of box 40 or a direct connection to an I / O port of the computer 50 in contexts 30 and 20.
  • the port chosen for the realization of the present invention, in contexts 30 and 20, is a USB port (Universal Se ⁇ al Bus) for reasons of speed, assuming that the computers used have such a communication port.
  • the description of the present invention has retained for the context of use 40, the case of an Ethernet network with the TCP / IP protocol.
  • the LCL reader will have an adequate network device.
  • the PGM 52 program enables interactive communication with a given LCL reader. These communications are made using the d ⁇ ver DRV 51 program. With reference to FIG. 2, this d ⁇ ver 51 performs all of the communication functions between an LCL reader and a computer 50 connected to this reader. The different functionalities of these two programs specific to the management of the devices according to the present invention will be defined below.
  • the PGM program allows the LCL reader to communicate with a remote system. To carry out this communication, PGM uses the communication resources 53 of the host computer 50.
  • the DRV program provides local communication between the LCL reader and the PGM program. In case 30, it can be modem 31 allowing a connection to the Internet network - 9 - to which the aSVR server is attached.
  • the communication resource 53 is that of the computer 50 with respect to the resources of the local network, allowing access to a remote system via the Internet network.
  • LCL readers are subject to an identification condition when it is switched on, and a condition for the effective connection of the CL card to a support on the LCL reader. These two conditions will be described later.
  • the context 20 corresponding to situations where the LCL reader is connected to a computer that does not have means of communication with a remote system. This operation will be dec ⁇ t later.
  • software protection is made possible by executing a small part of the functions of a given software, by said electronic reader, denoted LCL.
  • Said electronic card, denoted CL has the authorizations for using the software. Given its storage capacity, the CL card can store a large amount of user authorizations. In this way, the present invention allows by means of a single electronic device, the protection of several software simultaneously and independently of their designers.
  • the LCL reader and the CL card are respectively associated with two unique serial numbers. All of the information enabling the LCL reader and the CL card to operate to protect software is managed by the aSVR server using its database 12 which must be protected against unauthorized access in relation to the security of the system implemented for software protection.
  • the organization in question which manages aSVR assigns respectively to a given CL card and a given LCL reader, the serial numbers ID.c and ID.d, and the secret coding keys kT.c and kT.d.
  • the ID.c and ID.d numbers are unique. These two numbers and these two secret keys are stored in non-volatile memory which is in the electronic system of CL and LCL. Details will be given later.
  • the pairs (ID.c, kT.c) and (ID.d, kT.d) are also stored in the database 12 accessible only by aSVR for obvious security reasons.
  • the keys kT.c and kT.d are known only by aSVR, outside the LCL and CL devices.
  • the numbers ID.c and ID.d are public, but cannot be modified. This means that they are stored in the protected memory of the electronic system integrated in each device relating to the present invention, and that they are moreover communicated to their user in a clear form. According to the embodiment of the present invention, they are marked on the housing of CL and LCL. In addition, the present invention does not relate to the shape of the housing used for the LCL reader.
  • the encryption method adopted with the secret coding keys kT.d and kT.c relates to DES encryption (data encryption standard) developed by the company IBM. These two keys have a size of 128 bits sufficient against cracking of codes. According to particular embodiments, it will be possible to choose other type of encryption and - 10 - size of coding keys.
  • the LCL and CL devices can be configured to a certain extent by means of a computer program, denoted PGM, suitable for each type of computer and computer operating systems.
  • PGM allows a user to initiate procedures relating to operations requiring user intervention. These procedures are described below.
  • PGM is distributed by said organization which manages aSVR.
  • an operation to locate an LCL reader is performed. If an LCL reader is connected directly to a communication port on the host computer, a DRV software driver for communication through this port is installed in order to allow a program on this computer to send data to LCL and send it in. receive from LCL following the diagram in figure 2, without taking into account the technical characteristics of the communication between this computer and the connected LCL reader.
  • the DRV driver allows transparent use of the LCL reader.
  • a suitable DRV driver program will be installed on each computer on the network, to allow communication between these computers and the LCL connected to this local network.
  • the DRV driver allows transparent use of LCL for each computer on the network which may have different computer systems between them.
  • the LCL reader When installed on the Ethernet network, the LCL reader receives an IP address relative to the TCP / IP protocol, which allows the driver installed on the computers on the network to locate it.
  • each DRV driver allows each host computer where software protected by the present invention is used, to communicate with the LCL reader.
  • the embodiment of the present invention also allows several PGM programs to be able to establish communications with a given LCL reader connected to the network in question.
  • the LCL reader in its event of intensive use, can share with other LCL reader, its software protection function as seen in FIG. 4 where a distribution of the computers using two LCL readers is illustrated .
  • the distribution of the LCL readers present on the network with the computers is carried out by the network administrator. The latter distributes the computers on the network to the LCL readers on the network when DRV is installed on each computer on this network. It tells DRV the IP address of the LCL reader to use.
  • writing of these functions and testing their correct operation can be carried out independently of the presence of the LCL reader.
  • the means adopted for carrying out the present invention relates to the JAVA virtual machine.
  • these functions are written in JAVA.
  • These functions are therefore compiled in “byte code” of the universal JAVA language and stored in a file, noted LF.
  • the protection of the LD software then begins with the execution of the PGM program on a computer containing LF.
  • PGM then asks the LD designer for the operating system (WINDOWS NT, DOS, UNIX, ...) and the type of computer (MACINTOSH, SPARC, PC, ...) which will execute LD.
  • PGM launches a procedure to connect the available LCL reader to the aSVR server. Communication between LCL and aSVR takes place according to figure 2.
  • the serial number of the LCL reader is given first to the aSVR server.
  • LCL requests aSVR in secure communication a serial number S # to be associated with the software to be protected LD and a coding key kX.S #.
  • S # is defined on 128 bits, and the key kX.S # is defined with respect to DES encryption with a size of 128 bits.
  • LCL begins by sending aSVR its ID.d number in an unencrypted form.
  • aSVR finds in its database 12, the key kT.d to be associated with ID.d.
  • aSVR returns to LCL, S # and kX.S # in a form coded with the key kT.d.
  • LCL recovers the clear form of S # and kX.S # by decoding with the key kT.d which is in its internal memory 111, compared to the DES encryption algorithm.
  • the key kX.S # is known by aSVR alone, because after use, - 12 - kX.S # will be erased from the DRAM 109 secure memory of LCL. In addition, S # is communicated to
  • PGM which msc ⁇ t in a binary file containing the limiting conditions of use of the software.
  • this file can have the following format: S # of associated software (128 bits), permanent licenses (8 bits), duration of use (24 bits), use expires fine (16 bits ), number of executions (32 bits).
  • This file is therefore 26 bytes in size. ⁇ F 0 , F 1; ..., Fappel
  • F 0 is treated separately. It is a question, according to the embodiment of the present invention, of the so-called initialization procedure making it possible on the one hand to count the number of licenses used on the network in the network context 40, and on the other hand to measure characteristics d use of LD software over time. It is a function that is executed during the execution of the LD software by a user, and repeatedly. F 0 is in particular the first function which will be executed by LCL when opening an execution session of the LD software.
  • F 0 is coded with a key different from kX.S #.
  • the PGM software generates a key of the same type denoted kEL.S # with respect to DES encryption.
  • the kEL.S # key is known only to the LD designer. According to the embodiment of the present invention, kEL.S # is a 128b ⁇ ts key. It is the responsibility of the designer to keep this kEL.S # key safe. To this coded function, it attaches another piece of information also coded by the key kEL.S #. This is the file containing the limit conditions for using the LD software. This coded information then constitutes a file called eF 0 according to the embodiment of the present invention.
  • the other functions are then coded by the key kX.S #.
  • PGM then sends F b ..., F réelle... F n to LCL via DRV.
  • the LCL calculation resources then code these functions successively with the key kX.S #.
  • LCL returns ⁇ eF ⁇ , ...., eF n ⁇ corresponding respectively to the coded forms of ⁇ F ..., F n ⁇ .
  • PGM then proceeds to assemble the software.
  • PGM creates a library of functions that will be executed during the execution of the LD software on the computer of a given user.
  • the different functions of the library make it possible to load an element of ⁇ eF 0 , ...., eF n ⁇ with the parameters necessary for the execution of the corresponding function, towards the LCL reader when using LD.
  • eFO, ...., eFn will be loaded respectively by the functions FF 0 , ...., FF n created by PGM.
  • These functions are created with respect to the type of operating systems and the type of associated computers that will run LD.
  • PGM thus brings together ⁇ FF0, ..., FFn ⁇ and ⁇ eF0, ..., eFn ⁇ with the rest of the LD software thus protected, and numbered S #.
  • the whole is then put on recording media, for example a CDROM.
  • the software is thus protected and ready to be freely distributed, because it cannot be used in the current state. Thus, the distribution of the recording medium can be carried out completely freely.
  • the software protection according to the present invention is based on the use of the computing resources of the LCL reader.
  • the LCL reader is an electronic reader built around a microcontroller 100 physically and logically secure in order to prevent against hacker attempts for unauthorized electronic checks. Given the fact that this microcontroller
  • the present invention relates to a means of preventing computer attacks on the microcontroller 100 by means of computer viruses. This is done to prevent a virus from reading confidential information related to the operation of the LCL reader.
  • the present invention makes it possible to secure both the storage of information and at the same time the execution of any program external to the programs initially loaded into the microcontroller 100.
  • the architecture retained of the microcontroller is built around a system based on a set of two processors used as master slaves.
  • the microcontroller 100 integrates on the same silicon wafer two main parts 130 and 120.
  • the integration methods ASIC Application Specifies Integrated Circuit
  • the part 130 comprises a processor CPU1 which is the master processor. It is connected by an internal bus 101 to a FLASH memory module 111, a DRAM memory module 109, a random number generator 112, an RS232 I / O port 151, a USB port 152, a smart card controller ( SmartCard) 153, a PCMCIA controller 154, a keyboard and LCD screen controller 155, a controller 113 of the slave processor CPU2 which is located in part 120, an interface 106, an external Bus interface 105, an internal programmable real-time clock 104, an internal microfuse system 102 which makes it possible to take out the internal bus 101 outside the microcontroller 100.
  • the part 120 of the microcontroller 100 includes a watchdog 108.
  • the CPU2 is connected by the internal bus 114 to a DRAM memory module 110, a DMA controller 107, and an interface 106.
  • the slave CPU2 is controlled via the controller 113 and the interface 106.
  • These last two electronic systems (113 and 106) are controlled only by the master processor CPUl.
  • the microcontroller 100 may not integrate all or part of the following elements on the same silicon wafer: I / O port RS232 151, USB port 152, chip card controller 153, PCMCIA controller 154, controller keyboard and LCD screen 155.
  • the microcontroller 100 may include on the same silicon wafer an encryption coprocessor adapted with respect to the technique of DES encryption.
  • this encryption coprocessor will be integrated in the part 130 connected to the internal bus 101.
  • the internal real time clock 104 is powered by an electric battery 103 external to the microcontroller 100. Its operation is autonomous.
  • This clock is integrated on said silicon wafer in order to prevent attempts at electronic controls distorting the time and the date which it supplies to the CPUl. Given the low - 14 - power consumption of this clock, the electric battery makes it possible to continuously supply the current necessary for the operation of this clock throughout the duration of use of the microcontroller 100 as the central organ of the LCL reader.
  • a procedure for setting the time of the clock 104 may be carried out by the aSVR server. The clock 104 makes it possible to measure the time of use of the protected software and to carry out operations depending on the date and the time.
  • the internal bus 101 is out towards the outside of the microcontroller 100, via the microfuse system 102.
  • the microfuse system is avoided by using internal OTP EPROM memory. This variant allows the same levels of safety as the use of the microfuse system 102.
  • the microfuse system 102 allows a microcontroller system to be programmed only once.
  • the data necessary to activate the LCL readers (secret coding keys, serial numbers, identifiers, dates, times), and the operating system of the microcontroller 100 grouping programs allowing the LCL readers to carry out directly and / or indirectly all the functionalities relating to the present invention are programmed in the factory in the memory area of non-volatile memory (Flash memory 111).
  • the operating system is executed in the DRAM memory 109.
  • the embodiment of the present invention uses FLASH memory as a permanent storage medium for the microcontroller 100.
  • FLASH memory can allow very easy updating of the operating system initially programmed in the factory.
  • the times and the dates are given, unless otherwise stated, with respect to the medium range of the GMT (Greenwich Mean Time) time zones.
  • this reference is p ⁇ se for the internal clock 104 of the microcontroller 100 of the LCL readers.
  • the microfuse system is destroyed, which definitively prevents new programming of the microcontroller 100, there is no longer any direct access to the interior of the microcontroller 100, because all the controllers and interfaces are completely under control. of the master processor CPUl (according to the construction of the microcontroller 100).
  • the operating system of the microcontroller 100 thus programmed is automatically loaded by the master processor CPUl each time a LCL reader is dismantled.
  • the slave electronic system 120 is used to execute programs coming from outside the microcontroller, ie not belonging to the operating system which was loaded in the FLASH memory 111 during the programming of the microcontroller 100. It allows programs to be run against possible computer virus attacks. Security is complete with respect to these attacks thanks to a physical protection characterized by a logical separation of the same silicon wafer into two parts 120 and 130 of which one 120 is a slave of the other 130.
  • the DRAM memory area 109 is strictly reserved for the execution of the operating system of the microcontroller 100 which has been loaded at the factory, during the programming procedure of the microcontroller 100. It also serves as memory buffer for transferring the programs and / or data coming from outside the microcontroller to the DRAM memory 110 via the interface 106 controlled only by the master processor CPU1. The programs coming from the outside are executed from the DRAM memory 110, by the slave processor CPU2 controlled by the master processor CPU1 via the controller 113.
  • the CPU2 is a Java processor (PicoJava) from the company Sun Microsystems.
  • This characteristic makes the development of the functions ⁇ F 0 , F ⁇ , ..., F Tavern... F n ⁇ independent of the computing resources of the computer which is running software protected according to the present invention, and of the internal resources of the LCL .
  • the designer of software protected by the present invention can test the operation of the functions ⁇ F 0 , F ⁇ , ..., F Tavern... F n ⁇ independently of the LCL reader with a program simulating a JAVA virtual machine.
  • CPU1 is a processor of the type 80386SX. It can therefore use directly via its internal bus 101 a large amount of internal and / or external memories. Its computational capacity makes it possible to envisage a high capacity for information processing in multitasking.
  • the microcontroller may not use JAVA processors, but a processor of the 80386SX type, the operating system of which would be the JAVA virtual machine from the company Sun Microsystems, which the CPUl would load with each new execution of programs in DRAM 110 in order to avoid possible attacks of computer viruses.
  • CPU1 pauses CPU2 via the CPU2 controller 113, and erases, for example by temporarily deactivating the circuits that make up the DRAM memory module 110, the content of this DRAM memory 110 through the interface 106. Then , CPUl loads the execution parameters and the new program to be executed in the DRAM 110 directly thanks to the DMA 107 controller.
  • This direct loading makes it possible not to - 16 - use CPU2 and allow the CPUl to completely control the DRAM 110.
  • CPUl then gives control to CPU2 via the controller
  • CPU2 113 CPU2 then executes the new program.
  • this program is a computer virus voluntarily insent in one of the functions of type Fdorfit can however not bring any damage to the functioning of the microcontroller 100, m to copy towards the exténor of the data not erased concerning the old functions which have been executed by CPU2 in the DRAM memory 110.
  • CPUl retains control of access to the data contained in its part 130. This procedure for loading the program and / or data into the DRAM 110 is repeated for each program to be executed by the slave processor CPU2
  • the architecture presented in FIG. 3 makes it possible to prevent a program not belonging to the operating system of the microcontroller 100 from carrying out readings and / or modification in the internal memory of the system. 130 integrated in the microcontroller 100. It also makes it possible to prevent these programs from controlling the interfaces and / or controllers of the microcontroller 100, and therefore to prevent hackers from reading the content of the memories physically and logically secured from the system 130, integrated in the microcontroller 100.
  • the external bus interface 105 allows the microcontroller 100 to control external devices connected to the external bus 114.
  • This bus makes it possible to add to the LCL recording devices such as for example recording media. Flash Disk type (FLASH memory used a standard disk), a network communication device
  • the architecture of the microcontroller 100 allows great modularity of operation.
  • an Ethernet network access device is connected to this bus 114 for communication in TPC / IP protocol.
  • this bus Depending on the type of communication used between an LCL reader and a given computer, it will be possible to connect to this bus a device suitable for this communication.
  • a radio receiver device 22 to use an LCL reader in the context 20 of FIG. 1. The use of this receiver will be defined below.
  • the devices used can also be PCMCIA cards used by the microcontroller 100 for all operations relating to the present invention.
  • PCMCIA cards can be PCMCIA Ethernet cards, PCMCIA FLASH cards, a PCMCIA hard disk, a PCMCIA radio digital reception module card. These different cards are not illustrated.
  • the use of the PCMCIA controller makes it easier to add peripherals to a given LCL reader compared to the external bus 114.
  • the USB port 150 is used for a high-speed connection of transmission and reception between a computer and an LCL reader. given. These are contexts 30 and 20 - 17 -
  • the I / O port 151 allows, according to the embodiment of the present invention, to communicate with a CL card.
  • the electronic card CL 60 is constructed around a microcontroller 400 integrating on the same silicon wafer a processor CPU 405 connected by an internal bus 406 to a Flash memory module 401, an OTP memory module EPROM
  • the microcontroller integrates on a same silicon wafer surface a DES encryption coprocessor to allow the CPU to perform encryption operations more quickly.
  • OTPEPROM directly from outside the microcontroller 400 are supp ⁇ més, in order to leave all access to the internal circuits of the microcontroller 400 under the sole control of the CPU processor
  • the present invention does not require the use of a large computing power at the level of the processor CPU 405 integrated in the microcontroller 400.
  • This microcontroller 400 includes a means of secu ⁇ ser the illicit reading and / or modification of the information which is contained in its internal memory.
  • a method for securing access to memories is proposed in the U.S. Pat. 5,293,424 dated March 8, 1994.
  • the internal OTP EPROM memory 407 is used to store encryption keys, identification serial numbers, dates, the operating system of the microcontroller 400 performing directly and / or indirectly functions relating to its use. according to the present invention.
  • the internal FLASH memory 401 is used to permanently store additional data after the CL card leaves the factory. It also serves to store additional programs which allow the microcontroller 400 to directly and / or indirectly perform additional functions relating to its use according to the present invention after leaving the CL card from the factory.
  • the CL card is electrically powered by LCL when it is connected to LCL.
  • This electrical connection is not illustrated.
  • the microcontroller 400 is protected against any modification of the information that it contains. It is a microcontroller similar to that of smart cards. It is connected to a female connector 63 which makes it possible to communicate by contact with a given LCL reader.
  • the CL card is a small portable device having a removable storage unit of high capacity.
  • the microcontroller 400 is connected to the output of its CompactFlash controller to a connection support 64 for memory modules of the type
  • the CompactFlash controller may not be integrated on the same silicon wafer as the microcontroller 400. It can also use another recording medium such as DiskOnChip modules from the company M- Systems or any other proprietary and removable system of non-volatile memories.
  • microcontrollers having the characteristics of microcontroller 400 are very numerous.
  • a 32-bit RISC microcontroller having the characteristics of the microcontroller 400 has been integrated on the same silicon wafer with the CompactFlash card controller.
  • This integration uses ASIC (Application Specifies Integrated Circuit) integration technologies. Thus, all of the information which is stored in the internal memory of the microcontroller 400 is secured against any attempts at external electronic controls.
  • ASIC Application Specifies Integrated Circuit
  • the CL card is a small portable device. It is used to transport information concerning the use of protected software, independently of the LCL electronic reader. It is used as an access key for the use of protected software according to the present invention. Its portability allows a user to use the software for which he has purchased the rights to use (licenses) on any computer that has this software.
  • the geometric format of CL is comp ⁇ s between that of the CompactFlash card is that of a PCMCIA card.
  • a hole 62 has been placed in a cornice of the housing 60 representing CL.
  • the CL card can be attached to a mechanical keychain.
  • the non-illustrated ID.c number of a given CL card is printed on the CL housing 60.
  • CompactFlash 61 is detachable from the housing 60 via the connection support system 64 for CompactFlash card.
  • the CL card is connected by contact with an LCL reader via a set of two male female connectors.
  • CL has a female connector 63 which it connects to the corresponding male connector 210 of the LCL reader. These sets of connectors allow RS232 senna communication between LCL and CL by contact. In addition, it provides electrical energy to the electronic circuits of the CL card. According to the embodiment of the present invention, the LCL reader is supplied from the mains.
  • CL can have its own power supply to allow autonomous operation.
  • a radio or infrared communication module can be integrated into CL to allow contactless communications with LCL.
  • An example of such a device is provided by Hough in U.S. Pat. No. 5,412,253.
  • the LCL reader has the appropriate communication ports under these conditions.
  • all coding keys received in the factory during - 19 - the programming of LCL and CL type devices are 128-bit keys defined with respect to the DES algorithm.
  • an OTP EPROM memory module of 256 kilobytes, a Flash memory module of 64 kilobytes, a DRAM memory module of 512 kilobytes have been integrated with the CPU 405 (RISC processor) ), the RS232 403 I / O Port and the CompactFlash card controller on the same silicon wafer.
  • CPU 405 RISC processor
  • RS232 403 I / O Port the CompactFlash card controller
  • the size adopted for the Flash memory module 111 is 1 megabytes.
  • the size used for the DRAM 109 memory module is 2 megabytes.
  • the size used for the DRAM 110 memory module is 1 megabyte.
  • All the programs relating to the functionalities of the LCL reader constitute the internal operating system of the microcontroller 100. This operating system is saved in the Flash memory 111 of the microcontroller 100 when it is programmed in the factory.
  • All of the programs relating to the functionalities of the CL card constitute the internal operating system of the microcontroller 400. This operating system is saved in the OTP EPROM memory 407 of the microcontroller 400 when it is programmed in the factory.
  • the present invention relates to the use of an authentication method allowing any group of devices to recognize each other using this method.
  • This authentication allows that only the devices relating to the present invention, certified by the organization which manages the aSVR server, can operate together.
  • This method according to the present invention makes it possible to prevent devices which are not recognized by the body which manages the devices relating to the present invention from being able to operate with those recognized. This method thus prevents pirate devices from carrying out data readings in the secure electronic memories of the devices relating to the present invention.
  • the present invention relates to apparatuses which can only be used for a determined period of time.
  • the LCL and CL devices are all characterized by a date DB of commissioning and a date DE which indicates that the use of these devices relating to the present invention, expires at the end of DE.
  • DB and DE constitutes non-modifiable public information.
  • the date DB of the LCL reader is stopped during the factory programming of the microcontroller 100, in a free area of the Flash memory 111.
  • the date DE an LCL reader denoted DE.d, is switched off during the factory programming of the microcontroller 100, in a free area of the Flash memory 111.
  • the date DB of CL is stopped during the factory programming of the microcontroller 400, in a free area of the memory. - 20 - Flash 401.
  • the date DE of a card CL is counted during the factory programming of the microcontroller 400, in a free area of the memory OTPEPROM 407.
  • the organization which manages aSVR generates for each week an international calendar which begins on Monday and which ends at the end of Sunday a key kLi.
  • the key kLl is the first key which was generated for the first week in which the first devices relating to the present invention were put into service.
  • the key kLi indicates the key of the week î in relation to this first week. All these keys are entirely created and kept secretly by the organization which manages the aSVR server in order to guarantee the safety of use of the devices relating to the present invention.
  • the secret coding key kLj is entered in a free area of the OTPEPROM memory 407.
  • This secret key kLj corresponds to the week d compared to the first week in which the first devices relating to the present invention were put into service.
  • the key kLj has been chosen so that week d contains the date DB of the commissioning of this card CL.
  • This secret key will never be revealed to the user. Furthermore, it is known only by the organization which manages the aSVR server.
  • the list of secret coding keys ⁇ kL 1 + 1 , kL 1 + 2 , kL 1 + 3 , ..., kL, + m ⁇ corresponding to all the keys associated with the semmes between the date DB.d reduced by 1460 days and the date DE.d, are stored in the Flash memory 111 of the microcontroller 100.
  • their memory addresses follow a convention adopted to enable them to be found in memory 111.
  • These secret keys are moreover known only by the organization which manages the aSVR server. All these secret keys which have just been mentioned are generated in relation to the DES encryption algorithm. Each of these secret keys has a size of 128 bits.
  • the duration which separates a date of putting into service DB and a date of end of use DE of the devices relating to the present invention is 1461 days (4 years).
  • ⁇ kL 1+ ⁇ , kL 1 + 2 , kL 1 + 3 , ..., kL 1 + m ⁇ occupies no more than 7000 bytes (deliberately excessive approximation) in the Flash memory of the microcontroller 100 of a LCL given.
  • FIG. 4 makes it possible to understand the choice of the number of keys in the list ⁇ kL 1+ ⁇ , kL 1 + 2 , kL 1 + 3 , ..., kL 1 + m ⁇ .
  • an LCL reader can only operate if the current date indicated by the internal real time clock 104 of the LCL microcontroller 100 is between the dates DB.d and DE.d of the same LCL. Otherwise the continuation cannot succeed 551.
  • This condition is illustrated in FIG. 10 by the element 501
  • the user In a second step, with reference to step 502, to put an LCL reader into operation, the user must perform an operation d detailed identification thereafter.
  • the user must first connect his CL card (step 503) to the male connection type support 210 owned by the LCL reader, to allow communication by contact between LCL reader and CL card.
  • the male type support 210 of the LCL reader is connected to the RS232 I / O port 151 of the microcontroller 100.
  • the CL card therefore has a female connector 63 connected to the RS232 I / O port
  • a fourth step 504 the microcontroller 400 of the CL card sends in an uncoded form its date of commissioning DB.c to the LCL microcontroller via said RS232 link. If a hacker modifies the transmitted DB.c value, the rest of this description cannot be successful.
  • the processor CPUl of the microcontroller 100 of LCL carries out a correspondence between DB.c and a secret key noted kLj.d elements of the list ⁇ kL 1+ ⁇ , kL 1 + 2 , kL 1 + 3 , ..., kL, + m ⁇ so that the week j associated with kLj.d according to the present invention contains DB.c.
  • a sixth step 506 the processor CPUl generates a 128-bit key kCS with respect to the DES encryption, using its random number generator 112. kCS is secretly stored in the internal memory DRAM 109 of the microcontroller 100. According to the present invention, kCS is then coded by kLj.d then sent in its coded form, denoted ekCS, to the microcontroller of CL.
  • a seventh step 507 on reception of ekCS, the card CL attempts to decode ekCS with its secret key kLj. According to the present invention, if the decoding succeeds, said authentication procedure has succeeded. The microcontroller of CL will then use the key kCS to send coded information to LCL, and to decode information coming afterwards from LCL. The microcontroller 400 of the card CL stores in its secure internal memory DRAM 404 this secret key kCS.
  • the microcontroller of CL then sends the expiration date DE.c associated with CL in a form coded by the key kCS to the microcontroller of the LCL reader.
  • CPU1 checks if DE.c is not exceeded with respect to the current date given by the internal clock of the LCL microcontroller 100. If this date is exceeded, LCL will refuse to continue communication with the CL 552 card. Otherwise, a Secu ⁇ sée commumcation between LCL and CL can be er 559.
  • each communication session between LCL and CL which begins with their contact connection and which ends when one of the following conditions is met: CL is disconnected from LCL, the current date indicated by the clock 104 has exceeded the date DE.c, the current date indicated by the clock 104 has exceeded the date DE.d.
  • the disconnection of the CL card from the LCL reader is marked by the absence of load at the output of the power supply used to supply the electronic circuits of the CL card.
  • CL are secured by the use of a symmetrical encryption method using a secret key, noted kCS.
  • the user who wishes to operate an apparatus relating to the present invention must type on the keyboard of his LCL reader controlled by the microcontroller 100 via the keyboard and LCD monitor controller 155, a PIN code.
  • a PIN code At the time of its entry, the numbers typed will be mscnts on the LCD screen not illustrated and controlled by the controller 155.
  • This code was supplied to it during the first acquisition (purchase) of the device in question.
  • the PIN code is a 5-digit digital code associated with each device. It must be kept secretly by the owner of the corresponding device. The use of such a code is similar to that used with identification methods present in the world of smart cards in the current state of the art.
  • the present invention relates to the use of a CL card as a portable, secure recording medium containing authorization files for the use of all the software protected according to the present invention, and acquired legally by the user and separately from the acquisition of the software (the recording medium). These files were recorded in the CL card by following a software acquisition procedure subsequently determined.
  • a file of authorizations for using a given software having the number of senna S #, noted F ⁇ ch.S # is defined as a binary file whose data bits are ordered from the as follows: S # of software (128 bits), ID.c (128 bits), number of licenses (L # .S #: 16 bits), last use (DR.S #: Day 5 bits, month 4 bits, 12-bit year, 5-bit hour, 6-bit minutes, 6-bit seconds), first use (DP.S #: 38-bit date and time), current usage time (DU.S # in minutes: 24 bits), number software execution (28 bits), miscellaneous data (stake: 1024 bits), kEL.S key (128 bits), kX.S # key (128 bits).
  • the total is - 23 - 1680 bits, a 210 byte file.
  • a CompactFlash 61 type card distributed by the company SanDisk with a storage capacity of 4 megabytes is inserted as indicated in FIG. 7 on a suitable connection support 64 present on the CL card, to allow the connection of this CompactFlash card to the CompactFlash 402 card controller of the microcontroller 400.
  • the CompactFlash cards are compatible with the ATA standard of cards
  • the CL card makes it possible to store more than 10,000 authorization files for the use of protected software according to the present invention. This number is more than sufficient for all the software protected by the present invention, which a user can acquire legally.
  • the user can change CompactFlash cards for greater storage capacity. Taking into account the ATA standard, this change does not require either updating the system programs of the microcontroller 400, nor any change in the housing 60 and the support for the CompactFlash card 64.
  • the information stored on the card CL concerning the authorizations to use protected software according to the present invention, do not depend on the recording medium but on the electronic card entity CL.
  • a user of a CL card will be able to use several CompactFlash cards to store files of the Fich.S # type.
  • Data that is stored on a first CompactFlash card associated with a given CL card can be transferred to a second CompactFlash card. This is done using the aforementioned PGM program.
  • the Fich.S # authorization files are stored in an encoded form, denoted eFich.S #, with a 128-bit kS.c secret key compared to the DES encryption technique, in the CompactFlash card. used as a storage disk.
  • the secret key kS.c was written to the OTPEPROM memory 407 during the factory programming of the microcontroller 400.
  • eFich.S # can only be used by the CL card which created it, because the secret key kS.c is different for each CL card put into service.
  • the present invention relates to a method which makes it possible to separate the acquisition of the recording medium containing one or more software (s) protected by the present invention, from the right to use this or these software (s) ).
  • the recording media of software protected according to the present invention are freely distributed.
  • software protected according to the - 24 - present invention can only be executed after a legal acquisition of a Fich.S # file authorizing the use of this software numbered S #.
  • a user when a user wishes to obtain one or more user licenses, he must first connect his LCL reader with the aSVR server, using the PGM program. According to the embodiment of the present invention, this connection is established via the Internet.
  • aSVR is the remote system represented in FIG. 2.
  • the PGM program then sends to aSVR the serial number S # of said software, entered by the user (buyer), and the number NL. These two pieces of information are sent in a form encoded by the secret key kT.d of the user's LCL reader.
  • the embodiment of the present invention considers that the designer of said software with the serial number S # also has a server noted dSVR, not illustrated and connected by the Internet to aSVR.
  • the dSVR server is connected in turn with the LCL reader of the designer.
  • the operating system of an LCL reader is programmed so that it can respond to certain requests relating to this procedure for purchasing the dSVR server.
  • dSVR then communicates to aSVR the ID.d number of its LCL reader which was used to create the protected S # software according to the present invention.
  • the communication between dSVR and the LCL reader takes place as in FIG. 2 where the computer 50 is represented here by the dSVR server.
  • aSVR To allow communication on two levels, the user's LCL reader communicates to aSVR (step 603) in an encoded form a public key, denoted kP.
  • the key kP is coded with the secret key kT.d of the user's LCL.
  • kP is a public key, relating to the RSA encryption technique (Rivest, Shamir and Adleman).
  • the kP key is created with its private kV key for the occasion (dynamically) and erased at the end of this license acquisition procedure.
  • the form coded by said kT.d key of kP is denoted ekP.kT.
  • aSVR does not know the value of the private key kV associated with kP.
  • the systematic coding of information during communication avoids possible modifications of the data exchanged during their transfer.
  • aSVR decodes ekP.kT using the information it has regarding the - 25 - User LCL reader.
  • aSVR is the only one outside this LCL reader, to know the correspondence of the number ID.d with the key kT.d relative to a given LCL reader.
  • the key kP is then coded with the secret key kT.d relating to the LCL reader of the designer of the S # software protected according to the present invention.
  • the new coded form of kP is denoted ekP.kT2.
  • ASVR then communicates ekP.kT2 604 to the designer's LCL reader via the dSVR server.
  • the LCL reader of said designer decodes ekP.kT2 with its key kT.d.
  • LCL relating to the designer then codes kEL.S # generated during the procedure for creating the S # software protected according to the present invention with the key kP.
  • the coded form of kEL.S # by kP is denoted ekEL.
  • said module can communicate kP to the dSVR server in order to let it codify the key kEL.S # with the key kP. But these vanantes do not change in ⁇ en as to the fundamental p ⁇ ncipe of the present invention.
  • dSVR then receives the value of NL from aSVR.
  • NL allows the designer of protected software according to the present invention to carry out accounting with the organization which manages aSVR.
  • dSVR sends a public key kPUB relating to RSA encryption to the LCL of the user (buyer) via aSVR.
  • This option allows the PGM program connected with the user's LCL reader to return to dSVR via aSVR, the value coded with kPUB from NL.
  • This variant allows dSVR not to rely on the good smcénté of aSVR. Thus, this variant allows dSVR to control exactly the number of licenses sold.
  • dSVR then sends (step 605) ekEL to aSVR.
  • This aSVR server then sends (step 606) kX.S # in a form coded with the key kT.d (that of the user's LCL reader) to the user's LCL reader.
  • the key kX.S # is a key created and stored by aSVR during the previously determined protection procedure of the LD software numbered S #.
  • the aSVR server then sends the user's LCL reader, eKEL. On reception, the user's LCL reader decodes eKEL by kV. It therefore obtains kEL.S #.
  • This LCL reader also decodes the coded form of kX.S # by its key kT.d
  • said LCL reader then sends to said CL card, in a form coded with the key kCS obtained during the authentication procedure previously determined, the following data: S #, NL which corresponds to the number of licenses requested by the user from aSVR, kX.S #, kEL.S #, the current date and time indicated by the clock 104.
  • the microcontroller 400 of the CL card decodes the different data received with kCS
  • the microcontroller 400 then proceeds to the following updating procedure (step 607).
  • the microcontroller 400 checks if a coded file eF ⁇ ch.S # of authorization of use already exists for the software in question numbered S #. In this case, it proceeds to its modification by increasing the value of the L # .S # field in the file F ⁇ ch.S # co ⁇ espondant, by the value of NL. In the case where the user has acquired a time-dependent autonsation, of course updates on the corresponding fields are made in the file F ⁇ ch.S #. For the understanding of the present invention, certain obvious points are implied.
  • the microcontroller 400 of the CL card creates the file F ⁇ ch.S # by filling in the following fields of the new file: S #, L # .S #, ID.c serial number of the CL card in question, kEL.S #, kX.S #.
  • the values of DR.S # and DP.S # are initialized by the value of the current time and date.
  • the DU.S # and "number of software executions" fields obviously take the value zero.
  • the Stake field is used to store values related to possible needs to define additional information fields. Setting is initially at zero L # .S # takes the value of NL.
  • a user can directly connect to the dSVR server to purchase licenses when aSVR has communicated the value of kX.S # of software numbered S # protected according to the present invention.
  • This vanante allows decentralizing the sale of licenses.
  • LCL may be present on the network. However, these organizations do not change the characteristics of the present invention.
  • LD on obtaining one or more auto ⁇ sat ⁇ on (s) of use of the LD software (user licenses), LD can then be executed.
  • the FF 0 function is executed first.
  • all the FF functions all carry out a common procedure: the loading of eF, towards LCL. - 27 -
  • the software LD calls a given function FF , it transmits to it by passing parameters using for example the stack of the system of the host computer, parameter information, noted PARAM, used directly and / or indirectly during the possible execution of the function F, corresponding to FF ,.
  • FF loads the content of the eF file, previously dec ⁇ t, into memory.
  • FF calls (in the sense of a call to computer programs) the DRV driver in order to communicate the information to it
  • PARAM notably contains information relating to the current time in the computer which executes said FF function. It also contains a unique identifier representing this host computer (for example the IP address of this computer on the network which is provided by the operating system of this computer) and the Senna number S # of the software corresponding to said function FF ,.
  • this host computer for example the IP address of this computer on the network which is provided by the operating system of this computer
  • S # the Senna number S # of the software corresponding to said function FF
  • the microcontroller 100 of the LCL reader when the microcontroller 100 of the LCL reader has finished processing the information received and in particular the execution of the function F, co ⁇ espondante, the results obtained are then transported again to said host computer at through the network considered.
  • DRV Upon receipt, DRV returns the results to FF, which returns them to the LD software. If the CL card which is connected to the LCL reader does not have user licenses for the LD software, then LCL will not return results but a message telling FF to close the execution of the LD software. A closing of execution can be given to FF, in other situation dec ⁇ te thereafter.
  • the execution of the functions F, by the LCL reader creates a physical dependence on the software LD with LCL.
  • the function FF 0 associated with LD is executed.
  • no other FF type function associated with LD must be executed. Additional information will be given later.
  • FF 0 sends eF 0 the current time indicated by the computer executing FF 0 , the PARAM execution parameters of the F 0 function, the S # value associated with the LD software
  • FF 0 When the results calculated by the LCL microcontroller 100 arrive, FF 0 considers two types of results.
  • the first type concerns the results linked to the execution of F 0 (F 0 must be a complicated function such that the LD software depends on it enormously) in the microcontroller 100. Insofar as these results are not messages of In addition, these results are returned to the LD software to continue the execution of LD.
  • the second type concerns one hour Htop per - 28 - report to the clock of said computer running LD software. This time indication corresponds to the next moment when FF 0 must be launched by the LD software.
  • the order in which the other FF functions are called is not predictable, since it depends on the use of LD.
  • the execution of FF 0 is voluntarily long, of the order of 1 second.
  • LCL to decrease its counter of licenses used on the network compared to LD.
  • exceeding the number of licenses does not concern software which is used with an isolated computer and connected directly by an I / O port to an LCL suitable for this port.
  • FF first checks whether the function FF 0 associated with LD is not running. In the absence of an execution in progress of FF 0 , FF, for î different from 0, sends eF BarrierS #, the execution parameters of F, to LCL via DRV. When the LCL reader has finished processing eF, along with its parameters, the results are returned to FF ,. FF, then returns these results to the LD software. If an error message is received, execution of the LD software is ready. Unlike software protection systems which use code verifications, the software protected according to the present invention has essential protection in relation to the difficulty of being able to find a function equivalent to the functions of F used.
  • the operating system of the microcontroller 100 is a multitasking system in order to be able to process several uses of software protected according to the present invention at the same time.
  • the implementation of this operating system refers to existing multitasking system standards for 80386 processors from the company Intel.
  • the security of the software protection system according to the present invention is based in particular on the execution of a single main program at a time by the processor CPU2.
  • CPUl upon complete reception of an information packet, CPUl loads them into the DRAM memory 109.
  • î is equal to 0 701
  • eF corresponds to a software numbered S # which has already successfully executed FF 0 once 702
  • the time indicated by the clock 104 is equal to the time Htop (previously defined value corresponding to the software numbered S # which has in this condition already executed once FF 0 successfully) exp ⁇ m relative to the time of the clock 104 with an e ⁇ eur of more or less two seconds (test 703 or 705)
  • the current number (noted NL.S #) of licenses used (corresponding to the software numbered S #) increased by 1 is strictly greater than the value L # .S # of the file F ⁇ ch.S # (corresponding to the software numbered S #) provided by the coach te CL (test 704).
  • test test 701 corresponds to the start of the analysis tree which is therefore carried out by considering a given software numbered S #, and a unique identifier IDIP which is the IP address number of each computer on the network considered. This number thus allows each software execution session to be associated with a given computer on said network.
  • other unique identifier can be associated directly with a runtime session of a given software by the use of a process identifier combined with the network address of the computer where the computer is located. this process.
  • the present embodiment considers the unique identifier associated with an IP address as an example of a possible means for identifying a computer on said network.
  • the information S # and IP are assumed to be supplied by the function FFj with the driver DRV. These two pieces of information are sent to said LCL reader in the PARAM information packet described above.
  • test test4 704 compared to test test4 704, if the result is a false value in the Boolean sense, then the new value of NL.S # 709 is that of the old increased by 1, provided that the test test2 702 is false and that testl 701 is true.
  • CPUl performs a reader of the current time on the internal clock 104, to calculate the new value of Htop expressed relative to the time of the clock associated with the computer running the S # software under the conditions of these tests and the context of these conditions.
  • the new value of Htop is equal to the old value increased by 5 minutes (for example), according to the embodiment of the present invention. This value of 5 minutes is adjusted so that two or more software programs having the same S # number and running on different computers, cannot execute the FF 0 co ⁇ espondante function at the same time (it is necessary to take into account said e ⁇ eur more or less two seconds). This value of 5 minutes can therefore be replaced by any other value depending on the preceding sentence.
  • an execution 706 of the function F 0 takes place.
  • an e ⁇ eur message 707 is then returned to the execution session of the software co ⁇ espondant to the execution of the function FF 0 in the conditions of these tests and the context of these conditions.
  • CPUl decreases the NL.S # counter associated with software with the serial number S # by 1 point.
  • the operating system of the microcontroller 100 in the context of the protection of several software programs at the same time, manages a list of objects referenced by the different IDIP identifiers corresponding to all the computers on the network which run protected software according to the present invention. This list of objects is established from PARAM information.
  • each of these objects are used to record the S # serial numbers of the S # numbered software programs which are executed on the computer whose IDIP identifier corresponds to said IDIP reference of these objects.
  • This object list allows the management of the use of software - 30 - protected according to computers.
  • NL.S # is reduced by 1 point compared to a computer identified by IDIP and which runs the software numbered S # which caused this reduction, the field of the corresponding IDIP object which contains the value of S # is deleted.
  • This management allows that a new execution of a software numbered S # can have er.
  • the value of NL.S # is the total of said objects having a field identical to the value of S # in the notation of NL.S #. In return, therefore, when a 1 point increase in the value of NL.S # has, a new field in the IDIP object of said list of objects is created.
  • the IDIP object corresponds to the computer numbered IDIP which executes the FF function, from the S # software.
  • Said new field then takes the value of S #.
  • an e ⁇ eur message 708 is then returned to the execution session of the software co ⁇ espondant à the execution of the function FF 0 under the conditions of these tests and the context of these conditions.
  • testl 701 and test2 702 and test3 703 the result leads to a processing of eF, by CPUl.
  • a queue is created to execute the F functions one by one, by the processor CPU2.
  • a duration condition auto ⁇ sée for the execution of a given function F can be fixed, for example 1/100 of seconds value defined with respect to the calculation speed of the processor CPU2. This duration condition must be respected by the developer of software protected according to the present invention.
  • the information for using a given software numbered S # is provided by the card CL.
  • the microcontroller 100 makes a request to the card CL.
  • CPU1 performs in order to execute Fugga request about the software numbered S #, from the CL card connected in the context of this request.
  • the microcontroller 400 of the card CL returns to the LCL in a form coded by the key kCS, the file
  • DR.S # (last use) replaced by the current date
  • DU.S # recalculated Number of software runs.
  • DR.S # is updated relative to the date and time of the first execution of the FF 0 function compared to the last launch of an execution of the S # software associated with this function.
  • DU.S # is recalculated with the dynamic value of Htop and the current time indicated by the clock 104 at the time when the execution of a function FF, co ⁇ espondant a er.
  • the "Number of software execution" field is calculated relative to the last execution of the software associated with the context of this calculation. It is therefore increased by one point for each new execution. All of these tests are optimized as a function of the flow of requests from the various FF functions, executed by the co ⁇ esponding software on the various computers connected to the network with the LCL reader considered in the context of these updates of information.
  • the values of L # .S #, kEL.S # and kX.S # are stored in the DRAM 109. Modified file # is then returned to CL in a form coded by kCS.
  • the LCL reader ends all execution sessions of software protected according to the present invention, by returning an e ⁇ eur message.
  • the devices according to the present invention may not thus return an e ⁇ eurs message, insofar as F ⁇ ch.S # files can be permanently stored in the LCL reader in the same manner as that used with the CL card.
  • the value L # .S # prevents exceeding the number of licenses to use software protected according to the present invention.
  • the key kEL.S # provided by the file F ⁇ ch.S # is used to decode eF 0 .
  • CPUl thus obtains said file of conditions of use of the software associated with this eF 0 .
  • CPUl compares the value of this different information compared to the associated F ⁇ ch.S # file.
  • said file of conditions of use may not include all or part of the following fields: permanent licenses, duration of use, use expires end, number of executions.
  • CPUl gives control to CPU2 (PicoJava processor) for the execution of F, whose execution parameters have been loaded beforehand.
  • the watchdog 108 monitors the proper functioning of the
  • CPU2 At the end of the execution of F, by CPU2, the results are retrieved by CPUl and returned to the computer which sent the data eF ,.
  • an LCL reader can be used with a personal computer thanks to a direct connection between their respective USB I / O port.
  • the protection of software by the LCL reader is a simplified version of the network functionalities. Therefore, this description will not provide additional information.
  • the “duration of use” field of the conditions of use file can be used to characterize the use of demonstration software.
  • the file of conditions of use sets in particular limit conditions of use.
  • the usage authorization file indicates the “quantity” of usage in progress.
  • the format of the conditions of use file is especially interesting for developing demonstration applications whose use is limited.
  • a special protection procedure can be used so that the creation of protected software according to the present invention can be carried out without going through the aSVR server.
  • This functionality is interesting in particular for decentralizing the protection of software according to the present invention.
  • the choice will be made using the PGM program.
  • the present invention relates to a method making the use of the apparatuses according to the present invention, transparent from the computer point of view by means of a program denoted PGM which has already been discussed.
  • the PGM program is developed in such a way that it can allow a user of the devices according to the present to perform operations requiring interactivity with these devices. Its use is generally understood in this description. It also has the role of allowing a given LCL to connect to a remote computer system using the communication resources of the host computer and the computer system of this computer.
  • the PGM program is used in parallel with a dnver DRV program.
  • This DRV d ⁇ ver constitutes a communication layer between PGM and a given LCL reader. It ensures transparency in the use of the LCL reader.
  • FIG. 2 The addition of these two elements in a given computer is illustrated in FIG. 2. These two programs fulfill all the functionalities previously determined and thereafter A convention is adopted on the procedures for modifying a given LCL in order to allow this LCL reader to recognize and execute commands which are integrated into the operating system of its microcontroller 100. These commands are defined during the construction of the LCL readers.
  • PGM can also interpret the information coming from the commands sent by LCL. These commands are essentially, according to the embodiment of the present invention, instructions for allowing an LCL to access a remote system
  • commands are defined with respect to the possibility for LCL readers to connect to aSVR via the available network communication resources to allow for example an update. update of the internal computer system of the devices according to the present invention or the setting of the time of the internal clock 104 in the event of a malfunction (the battery 103 is exhausted).
  • a digital radio receiver 22 is connected to the external bus 114 of the microcontroller 100, to allow a given LCL reader to receive information directly from the organization which manages the aSVR server. . Of course, this receiver will be integrated in the box selected for the use of the LCL reader.
  • the aSVR server can send information such as for example the update of the operating system of the LCL reader and / or of the CL card via a transmitter 13.
  • a duration condition can be added in addition to information concerning the dates of commissioning and end of use.
  • kLi is chosen so that it coincides with the week when the information leaves from the transmitter 13.
  • eMR the coded form of MR by kLi.
  • This variant of the present invention has many advantages, since it initially allows the F ⁇ ch.S # files to be returned in a secure manner to the LCL reader corresponding to the buyer of the software associated with F ⁇ ch.S #.
  • the transmitter 13 can specifically send information to a given radio receiver 22.
  • This variant allows a purchase without computer connection, but by the user directly on the phone with a human welcome.
  • This version allows a complete separation of the distribution of the recording medium containing a given software, from the sale of the licenses to use this given software.
  • this card allows you to send information about the loss of a device.
  • a DiskOnChip circuit not illustrated by the company Msystems is connected with a possible controller on the external bus 114 of the microcontroller 100 to allow the microcontroller 100 to have a storage disk.
  • a 12 megabyte DiskOnChip is chosen according to the embodiment of the present variant of the invention.
  • a PCMCIA Flash Disk card can - 35 - be used in place of DiskOnChip.
  • a computerized method of authentication and signature by LCL is performed on the ANNUL file.
  • the electronic signature and the authentication information are stored in the internal memory 111 of the microcontroller 100.
  • the microcontroller 100 at each start-up checks whether the ANNUL file has not been replaced by another file in the same format or modified by an unauthorized transaction.
  • This ANNUL file is then used during the authentication procedure between a given CL card and a given LCL reader compared to the previously described procedure. If CL has an ID.c which is referenced in the ANNUL file, LCL then rejects the CL card in question. In addition, when LCL is dismantled and / or upon receipt of MR information, the LCL microcontroller 100 checks whether its own ID.d is not referenced in the content of MR and / or ANNUL. If the case arises, the microcontroller 100 is put out of service by destroying the content of its internal memory.
  • a CL or LCL device can be put out of service within a maximum of 1 week.
  • the devices have a use of at most 4 years. This duration can be reduced to 2 years. In the context of this duration, considering a possibility of losses of the devices according to the present invention, with a volume of 1 million losses of devices in 2 two years (voluntary losses would be prevented by the purchase price of a new device in case of loss). This volume may seem to be exaggerating. Given the capabilities of compression methods (a rate of 50%), and given the 128-bit size of an ID serial number, it would therefore require approximately and without compression 15 megabytes, 8 megabytes with space compression data storage. Over a period of use of the devices according to the present invention for two years, the capacity of the DiskOnChip according to the present variant is sufficient. For the case of a longer period of use, larger storage capacities can be taken into account given the capacity of the DiskOnChip modules in the current state of the art.
  • said digital radio receiver given its capacity to receive information which concerns it only, when purchasing a software license, the user can receive the Fich.S # file by radio (described above) corresponding to his purchase of licenses for the software numbered S #.
  • This functionality can have a great impact on the commercial level (the purchase of software can be carried out everywhere on the planet without connection).
  • Fich.S # is - 36 - sent in coded form with the kLi key for the current week. According to variations of realizations, one can use a key of type kT.d for the purchasing operations.
  • rF ⁇ ch.S # 66 bytes in a file named rF ⁇ ch.S #, keeping only the following fields: software S #, ID.c, L # .S #, kEL.S #, kX.S #.
  • rF ⁇ ch.S # is sufficient to define the use of these protected software according to the present invention.
  • a memory module of 64 kilobytes one can store at least 990 different software licenses whose use can be defined by rF ⁇ ch.S #.
  • the organization which manages aSVR supplies when purchasing a CL card a smart card (SmartCard) denoted SC, and which can secu ⁇ ser data for reading and modification. SC is not illustrated.
  • SC includes a microcontroller integrating on a single silicon wafer, a processor, a Flash memory module of 64 kilobytes, DRAM and OTPEPROM memory.
  • the memory accesses are controlled by the processor of the SC microcontroller.
  • This card is a secure chip card.
  • This smart card is used each time that the user legally acquires a new license for one or more permanent use (s) of a given software protected according to the present invention. During this acquisition, this card is inserted into the smart card reader which communicates with the microcontroller 100 of the LCL reader by means of the smart card controller 153. The file rF ⁇ ch.S # will then be copied into the memory module Flash of 64 kilobytes of the microcontroller of the smart card.
  • the chip card SC internally has a secret key kLi in the same way as the card CL.
  • This key is used during an identification procedure similar to that which takes place between the LCL reader and the CL card. Changes to the content of the SC card can only be made by an LCL reader connected to an associated CL card.
  • rF ⁇ ch.S # is stored in an encoded form, noted erF ⁇ ch.S #, by the key kS.c of the card CL.
  • erF ⁇ ch.S # and thus protected against modification or non-automatic reading. In any case this information is protected.
  • this card can only be used with the CL card from which the rF ⁇ ch.S # files come.
  • LCL copies erF ⁇ ch.S # and sends it to the corresponding CL card.
  • the fields of rF ⁇ ch.S # are updated relative to the number of newly acquired licenses.
  • the new erF ⁇ ch.S # file obtained then replaces the old one in the internal memory of the microcontroller of the SC card.
  • the backup made on the smart card SC can be recovered in two stages: purchase of a new CL card, connection to the aSVR server via the PGM program. - 37 -
  • the user communicates via their PGM program, the serial number ID.c of their old CL card (ID.c is public data that cannot be modified: it is displayed in clear on the box 60 of each CL).
  • the user communicates the serial number of his new CL card.
  • aSVR returns a datum which is the coded form of the secret key kS of the lost CL card. This key is coded by the key kT.d of the LCL reader on which the new CL card is connected. Acquisition of the card's kS key
  • the ID.c number of the lost CL card can be communicated orally by telephone.
  • LCL then receives via its digital radio receiver and in a form coded by the key kLi of the current week, the key kS of the lost CL card and corresponding to said ID number c of the lost card. Acquiring the kS key from the lost CL card thus makes it possible to recover the content of the rF ⁇ ch.S # files.
  • aSVR launches a procedure to deactivate the use of the lost card by sending, according to the variant of the invention previously described, the ID.c number of the lost card to all LCL readers.
  • the storage of the F ⁇ ch.S # files can be carried out by the LCL reader by following security conditions similar to the operation of a CL card in terms of the storage of these files.
  • the F ⁇ ch.S # files will then be stored on external recording media intended for this storage.
  • the files stored on this medium are protected by the kS.d key of the LCL co ⁇ espond reader.
  • the key kS.d is a secret key insent in the internal memory 111 during programming in the factory of the microcontroller 100.
  • the access to the software protected according to the present invention, and associated with this LCL reader can be carried out independently of the presence of a CL card. This allows use by anyone who can access the computer on which the LCL reader is connected.
  • the information will be updated in the chip card SC by forcing the connection of the chip card SC corresponding to this card CL on the appropriate reader of the LCL reader.
  • an eTPS file is present on each CompactFlash card which is used by a card CL given and numbered ID.c. This file must be present on all CompactFlash cards used by said CL card. Otherwise, the CL card does not work.
  • eTPS is the coded form of the TPS file which contains the ID.c number on the first line, then all the serial numbers of S # software acquired according to the present invention, by the user of this CL card. Thus, a user cannot bypass the limits of use of a software of limited use with respect for example to the time or the number of executions, by changing the CompactFlash card.
  • the CL card can be used to store non-modifiable public information such as the identity of a person. This information can be viewed through the user interface represented by the PGM program.
  • the CL card can, in fact, given its large storage capacity, make it possible to store programs and / or counters relating to a given value, in a secure manner against unauthorized modifications and / or readings according to a given criterion.
  • the program codes possibly added in the Setting field can make it possible to modify the behavior of said F functions, during their execution by the LCL reader, in order to make it almost impossible to pirate the co ⁇ espond software by trying to go back to the F function, by a monitoring of data inputs and outputs at the level of the FF, function calls. It should be remembered that only the coded form eF, of the functions F, are accessible by the user. According to the present invention, the use of an integrated circuit (the microcontroller 100) physically and logically protected against attacks by computer viruses and against the readings and / or modifications of data contained in the circuit, allows a very high level of security software protection.
  • the devices according to the present invention no longer appears as a prohibitive monitoring device, but a real tool actively participating in the use of software in particular by the fact that the present invention makes it possible to recover in security of lost licenses.
  • the present invention makes it possible to make a software protection tool, often decorative in appearance due to the time when it is actually used, into a tool that the user can use in his daily life by his ability to secure the data storage and program execution.
  • the present invention is a new software protection tool which allows on the one hand the distribution of software independently of the sale of their right of use, and on the other hand a free development of software protected according to the present invention.
  • this separation has a great consequence on the cost necessary to protect software.
  • the use of a single device according to the present invention for the protection of several software independently of the software designers, makes it possible to distribute the cost of a device according to the present invention to all the software designers, so that the price of a single device according to the present invention, become low and affordable for the user.
  • said separation allows according to the present invention, the sale of software protection means independently of the software which uses these means for protection.
  • the power of the present invention in terms of the security used allows, taking into account its separate sale of the software product, commercial exploitation linked to other operations. These operations can be operations which consist in presenting confidential information which the user cannot modify or falsify. It can therefore be used as a tool allowing access to a given system.
  • the present invention is a means of software protection which allows functionalities parallel to its use. These features will result in lower cost of devices according to the present invention and lower cost of protection of a given software.
  • the software protection according to the present invention therefore becomes an interesting system for small and large software productions.
  • the devices according to the present invention are susceptible to industrialization in relation to the world of the software industry and their protection.

Abstract

The invention concerns the protection of several types of software against unauthorised use, consisting in an apparatus (licence card reader LCR) for simultaneously protecting several types of software of several software designers and comprising at least one communication peripheral (network, I/S port), a microcontroller programmable only once which integrates on the same silicon chip two parts separated by an interface. The integrated circuit is logically and physically protected against all attempts of unauthorised intrusion. The invention also concerns a portable apparatus of relatively small size with respect to the chip card connected for its use with the LCR apparatus, comprising at least a detachable recording module with high storage capacity, a microcontroller made secure against all attempts at unauthorised intrusion into its internal circuits. Thus the invention provides protection for several types of software independently of their editors with a single apparatus.

Description

- 1 - Protection simultanée de plusieurs logiciels de plusieurs concepteurs de logiciels. - 1 - Simultaneous protection of several software from several software designers.
La présente invention concerne la protection de logiciels contre leurs utilisations non autorisées.The present invention relates to the protection of software against unauthorized use.
L'industrie du logiciel est sans doute le secteur où les produits sont le plus facilement copiés. Or les médias d'enregistrement d'information qui sont en générale des supports optiques, magnétiques sont de plus en plus puissants en capacités de stockages. De plus, le temps mis pour effectuer une copie de ces médias est rapide. De plus, le prix pour posséder un appareil puissant de stockage d'information (disques dures, graveurs de CDROM) a été complètement démocratisé de sorte que les nouvelles versions de logiciels mises en vente sont très rapidement confrontées à des problèmes de copies illicites. De plus, il existe des pays où la copie illicite est pratiquée de manière industrielle et impunément à l'aide de CDROM. Si une telle pratique devait se généraliser, c'est tout le monde informatique qui s'écroule. Les programmes sont développés par les concepteurs de logiciels, appelés aussi développeurs. Les licences d'utilisation de leurs logiciels sont ensuite vendues aux clients. Les sociétés concepteurs de logiciels gagnent des profits généralement à travers la vente directe de leurs produits logiciel et / ou la vente de licences.The software industry is undoubtedly the sector where products are most easily copied. However, the information recording media, which are generally optical and magnetic media, are more and more powerful in storage capacities. In addition, the time taken to make a copy of these media is rapid. In addition, the price for owning a powerful information storage device (hard disks, CDROM burners) has been completely democratized, so that new versions of software on sale are very quickly confronted with problems of illegal copying. In addition, there are countries where illegal copying is carried out industrially and with impunity using CDROMs. If such a practice were to become generalized, it was the entire IT world that collapsed. The programs are developed by software designers, also called developers. The licenses to use their software are then sold to customers. Software designer companies generally earn profits through the direct sale of their software products and / or the sale of licenses.
L'utilisation illicite de logiciels est définie par rapport à une autorisation d'utilisation de ces logiciels. Cette autorisation se traduit donc par le fait que le concepteur de logiciel accepte de donner une licence d'utilisation qui autorise vis à vis de la loi, l'utilisation de ses produits, au terme d'une entente commerciale. Le prix de vente des logiciels est calculé avec le nombre d'utilisateurs susceptibles de les acheter. Ainsi les profits dégagés par une société de conception de logiciels dépendent assez de la manière dont leurs clients comptent utiliser ces logiciels une fois achetée. Dans la mesure où après l'achat l'utilisateur est libre de dupliquer le contenu du média contenant ces logiciels, la survie des concepteurs de logiciels dépend assez de l'honnêteté de leurs clients. Ainsi, pour les logiciels utilisés en réseau, cette licence obtenu autorise en général, l'utilisation du logiciel donné que sur un seul poste d'ordinateur. Pour être utilisé sur plusieurs postes, un nombre de licences correspondant au nombre de postes d'ordinateurs prévus pour l'utilisation de ces logiciels sur son réseau, doit être acheté. Bien entendu pour un ordinateur personnel, ce nombre est égal à 1. Par rapport aux concepteurs, rien ne peut leur garantir qu'effectivement leurs clients respectent bien les conditions liées aux contrats de vente des licences, car en l'absence de méthode et/ou moyen, rien n'empêche l'utilisation du logiciel sur un nombre de poste supérieur au nombre de licences achetées.The illegal use of software is defined in relation to an authorization to use this software. This authorization therefore results in the fact that the software designer agrees to give a user license which authorizes, vis-à-vis the law, the use of his products, at the end of a commercial agreement. The selling price of software is calculated with the number of users likely to buy it. So the profits made by a software company depend quite enough on how their customers intend to use this software once purchased. Insofar as after the purchase the user is free to duplicate the content of the media containing these software programs, the survival of software developers depends quite on the honesty of their customers. Thus, for software used on a network, this license obtained generally authorizes the use of the given software only on one computer station. To be used on several workstations, a number of licenses corresponding to the number of computer workstations provided for the use of this software on its network must be purchased. Of course for a personal computer, this number is equal to 1. Compared to the designers, nothing can guarantee them that their customers actually respect the conditions linked to the license sales contracts, because in the absence of a method and / or medium, nothing prevents the use of the software on a number of stations greater than the number of licenses purchased.
De plus, pour les logiciels utilisés sur un ordinateur isolé (ordinateur personnel) ou en réseau, si aucun moyen n'a été prise par le concepteur de logiciels, rien n'empêche à ce qu'un utilisateur pirate face des copies de ces logiciels sur un média informatique pour les installer sur un nombre d'ordinateurs, de manière illimitée et de les utiliser impunément. Il se crée alors des marchés noirs de ventes de logiciels « piratés ». Ce marché non contrôlé peut causer de grand dommage dans l'industrie du logiciel.In addition, for software used on an isolated computer (personal computer) or on a network, if no means has been taken by the software designer, nothing prevents a user from pirating in the face of copies of this software on a computer medium to install them on a number of computers, in an unlimited way and to use them with impunity. Black markets for the sale of "pirated" software are created. This uncontrolled market can cause great damage in the software industry.
L; C -: rr5ytpL0£FWB>rr (REGLE 26) - 2 - Les concepteurs qui désirent contrôler ce phénomène de copies et/ou d'utilisations illicites de leurs logiciels, achètent un appareil électronique permettant de protéger d'une certaine manière ces logiciels. Mais cette solution n'est envisageable que pour certains logiciels. De plus, ces concepteurs sont dépendants du fournisseur de ces moyens de protections de logiciels. Les concepteurs de logiciels à petit budget n'ont pas les moyens de protéger leurs produits numériques compte tenu du prix trop élevé des méthodes de protections par rapport aux prix de vente de leurs logiciels.L; C -: rr 5 ytpL0 £ FWB> rr (RULE 26) - 2 - Designers who wish to control this phenomenon of illicit copying and / or use of their software, buy an electronic device making it possible to protect this software in a certain way. But this solution is only possible for certain software. In addition, these designers are dependent on the supplier of these software protection means. Low-cost software developers cannot afford to protect their digital products given the overpriced protection methods compared to the selling prices of their software.
De plus, l'utilisation de ces appareils électroniques nécessite de la part du concepteur de logiciels, un achat de ces appareils avant la vente réel de ses logiciels. Cette situation oblige la constitution d'un stock qui peut représenter un désavantage par rapport à ses concurrents qui auraient choisi de ne pas utiliser de moyens de protections de logiciels.In addition, the use of these electronic devices requires from the software designer, a purchase of these devices before the actual sale of its software. This situation obliges the constitution of a stock which can represent a disadvantage compared to its competitors who would have chosen not to use means of software protections.
Pour répondre à tous ces problèmes d'utilisation de logiciels, différentes solutions ont été apportées jusqu'ici. Une solution de protection de logiciels en réseaux ou en monopostes (ordinateurs personnels) est proposée dans le brevet U.S. Pat. No. 5,553,139. Cependant il ne permet pas de protéger des logiciels par un même système d'appareil provenant de plusieurs concepteurs différents de logiciels.To solve all these software usage problems, different solutions have been provided so far. A software protection solution for networks or single-user systems (personal computers) is proposed in the U.S. Pat. No. 5,553,139. However, it does not allow software to be protected by the same device system from several different software developers.
D'autres méthodes sont utilisées pour un ordinateur donné par l'intermédiaire de systèmes électroniques connectés directement sur un port E/S de l'ordinateur hôte. Un tel système est proposé dans le brevet U.S. Pat. No. 5,343,524. Cette invention repose sur l'utilisation d'un circuit électronique basé sur un microcontrôleur sécurisé, qui ne peut être reproduit. La protection de logiciels par rapport à cette invention concerne le fait que les logiciels protégés puissent vérifier par l'intermédiaire de clés, la présence de cet appareil et interagir avec cet appareil. Cependant les appareils selon cette invention présentent le désavantage de ne protéger que des logiciels de grandes productions en raison de son coût, et d'autre part de ne pouvoir protéger que les logiciels d'un même concepteur. Un exemple de produit similaire est distribué par la société Rainbow.Other methods are used for a given computer through electronic systems connected directly to an I / O port on the host computer. Such a system is proposed in U.S. Pat. No. 5,343,524. This invention is based on the use of an electronic circuit based on a secure microcontroller, which cannot be reproduced. The protection of software with respect to this invention relates to the fact that the protected software can verify by means of keys, the presence of this device and interact with this device. However, the apparatuses according to this invention have the disadvantage of only protecting major production software because of its cost, and on the other hand of being able to protect only the software of the same designer. An example of a similar product is distributed by the company Rainbow.
D'autre part, des méthodes de protection entièrement logiciel sont aussi employées. Ces protections consistent bien souvent à demander un code d'accès à l'utilisateur. Ce code est ensuite vérifié à l'aide d'un calcul très compliqué. Cependant, il n'empêche pas certains utilisateurs de trouver le type de calcul qui est utilisé de sorte que les logiciels protégés de cette manière n'offrent aucune fiabilité par rapport à la protection de logiciels.On the other hand, fully software protection methods are also used. These protections very often consist in requesting an access code from the user. This code is then verified using a very complicated calculation. However, it does not prevent some users from finding the type of calculation that is used so that software protected in this way does not offer any reliability compared to software protection.
Des systèmes plus puissants sont utilisés à travers l'utilisation de coprocesseur pouvant calculer une partie des codes d'un logiciel donné et protégé selon cette méthode. Généralement, ces logiciels ne peuvent être utilisés directement dans l'état actuel où ils ont été livrés à l'utilisateur, car une partie est codée à l'aide de clés de cryptage stockées de manière sécurisée en accès, dans une mémoire de type ROM du coprocesseur. Ce principe implique le fait qu'un utilisateur ayant obtenu une licence d'utilisation d'un logiciel protégé selon cette méthode soit attaché à l'ordinateur hôte sur lequel le logiciel a été installé. De plus, la possibilité de protéger plusieurs logiciels de plusieurs sociétés de concepteur est difficile à mettre en œuvre. Ainsi, un coprocesseur ayant des - 3 - caractéristiques similaires est proposé par le brevet U.S. Pat. No. 4,817,140. Le coprocesseur relative à ce brevet est lancé à condition que l'utilisateur dispose d'une clé pour justifier son achat de licences d'utilisation. Un tel système présente un autre désavantage : son utilisation dédiée à la protection de logiciels d'un seul concepteur, peut rendre la présence d'un coprocesseur gênant notamment quand d'autres concepteurs décide de fournir un moyen de protections de logiciels similaire. Dans certains cas, l'ajout de nouveau appareil peut être impossible. Par ailleurs, un tel coprocesseur représente un investissement possible qu'avec des logiciels dont le prix est très hautMore powerful systems are used through the use of coprocessor which can calculate part of the codes of a given software and protected according to this method. Generally, this software cannot be used directly in the current state where it was delivered to the user, because a part is coded using encryption keys stored securely in access, in a ROM type memory. of the coprocessor. This principle implies that a user who has obtained a license to use software protected by this method is attached to the host computer on which the software has been installed. In addition, the ability to protect multiple software from multiple designer companies is difficult to implement. Thus, a coprocessor having - 3 - similar characteristics is proposed by US Pat. No. 4,817,140. The coprocessor relating to this patent is launched on condition that the user has a key to justify his purchase of user licenses. Another disadvantage of such a system is that its use dedicated to protecting software from a single designer can make the presence of a coprocessor annoying, especially when other designers decide to provide similar software protection means. In some cases, adding a new device may not be possible. Furthermore, such a coprocessor represents a possible investment only with software whose price is very high.
(coûteux) par rapport au prix de ce coprocesseur déjà onéreux. De plus, l'utilisateur est lié à l'ordinateur sur lequel est installé le coprocesseur. La plupart des systèmes utilisés pour la protection de logiciels sont dédiés à une catégorie précise de logiciels. L'image de ces systèmes vis à vis de l'utilisateur peut être gênant dans la mesure où ils sont assimilés à une sorte de police électronique de surveillance et non de protections. De plus, ces systèmes sont contraignants dans la mesure où l'utilisation de logiciels protégés par ces systèmes est liée à l'ordinateur hôte sur lequel est installé le logiciel. De plus l'écriture d'un logiciel protégé est très dépendante de l'architecture du moyen de protections, ce qui peut rendre le développement du logiciel compliqué. De plus, comme dans le cas des « dongles », l'utilisateur est lié dans l'utilisation des logiciels aux moyens qui servent à la protections de logiciels. Ainsi, à titre d'exemple, si un dongle est perdu, cette perte entraîne très souvent la perte du droit d'utilisation du logiciel attaché au dongle perdu. D'autre part, les systèmes de protection de logiciels ne tiennent pas compte du fait qu'un logiciel attaché à son système électronique de protection peut être volé. Dans ce cas de vol, et d'utilisation illicite par rapport au voleur, il n'y a pas moyen d'empêcher l'utilisation du logiciel volé. De plus, l'utilisateur devra obtenir une nouvelle licence par un nouvel achat.(expensive) compared to the price of this already expensive coprocessor. In addition, the user is linked to the computer on which the coprocessor is installed. Most systems used for software protection are dedicated to a specific category of software. The image of these systems vis-à-vis the user can be embarrassing insofar as they are assimilated to a kind of electronic police surveillance and not protections. In addition, these systems are restrictive insofar as the use of software protected by these systems is linked to the host computer on which the software is installed. In addition, writing protected software is very dependent on the architecture of the protection means, which can make software development complicated. In addition, as in the case of "dongles", the user is bound in the use of software to the means which serve to protect software. Thus, for example, if a dongle is lost, this loss very often results in the loss of the right to use the software attached to the lost dongle. On the other hand, software protection systems do not take into account the fact that software attached to its electronic protection system can be stolen. In this case of theft, and unlawful use in relation to the thief, there is no way to prevent the use of the stolen software. In addition, the user must obtain a new license with a new purchase.
De plus, certains logiciels protégés sont caractérisés par leur utilisation limitée dans le temps. Un tel système est présenté par le brevet U.S. Pat. No. 4,868,736. Ce brevet à le désavantage de ne pouvoir réaliser que cette fonctionnalité.In addition, certain protected software is characterized by its limited use over time. One such system is presented by U.S. Pat. No. 4,868,736. This patent has the disadvantage of being able to achieve only this functionality.
Ainsi, la présente invention permet de remédier à tous les inconvénients qui viennent d'être cités.Thus, the present invention overcomes all the drawbacks which have just been mentioned.
La présente invention concerne la protection de logiciel contre le non respect des conditions d'utilisations des logiciels fixés par son concepteur. Elle concerne l'utilisation d'un seul appareil pour protéger plusieurs logiciels indépendamment des systèmes informatiques et du concepteur de ces logiciels. Il est basé sur l'utilisation de deux appareils électroniques qui ne peuvent pas être dupliqués sans autorisations. Cette protection contre la duplication des appareils selon la présente invention est réalisée grâce à une méthode d'authentification intégrée dans ces appareils. Le premier appareil est un lecteur électronique du second. Il est noté LCL pour lecteur de cartes de licences. Ce lecteur assure la quasi-totalité des fonctionnalités de protections de logiciels selon la présente invention. - 4 - Le second appareil est une carte électronique, notée CL (carte de licences). Chaque utilisateur qui désire exécuter des logiciels protégés selon la présente invention, doit posséder une carte CL sur lequel les autoπsations d'utilisations de logiciels protégés selon la présente invention, sont stockées. Ainsi, la présente invention sépare sur trois niveaux la protection de logiciels. Dans un premier temps, la présente invention concerne une méthode permettant la séparation du logiciel protégé (média d'enregistrement) du moyen qui réalise la protection de ce logiciel (le lecteur LCL).The present invention relates to the protection of software against non-compliance with the conditions of use of the software fixed by its designer. It concerns the use of a single device to protect several software independently of the computer systems and of the designer of these software. It is based on the use of two electronic devices which cannot be duplicated without authorization. This protection against duplication of the devices according to the present invention is achieved thanks to an authentication method integrated into these devices. The first device is an electronic reader of the second. It is noted LCL for license card reader. This reader provides almost all of the software protection functionalities according to the present invention. - 4 - The second device is an electronic card, marked CL (license card). Each user who wishes to run software protected according to the present invention, must have a CL card on which the autoπsations of uses of software protected according to the present invention, are stored. Thus, the present invention separates software protection on three levels. In a first step, the present invention relates to a method allowing the separation of the protected software (recording media) from the means which realizes the protection of this software (the LCL reader).
Dans un deuxième temps, le lecteur LCL est distribué de manière indépendante par rapport à la distribution des logiciels protégés selon la présente invention. Ainsi, le même lecteur LCL, peut être utilisé pour permettre la protection de plusieurs logiciels indépendamment des concepteurs et du nombre de logiciels. L'utilisation de logiciels protégés selon la présente invention, n'est possible que si l'utilisateur dispose de la carte CL qui est distribuée indépendamment du lecteur LCL.In a second step, the LCL reader is distributed independently with respect to the distribution of the protected software according to the present invention. Thus, the same LCL reader can be used to allow the protection of several software regardless of the designers and the number of software. The use of protected software according to the present invention is only possible if the user has the CL card which is distributed independently of the LCL reader.
Selon la présente invention, la carte CL est un appareil portatif de petite taille par rapport à une carte à puces. Elle possède un dispositif amovible d'enregistrement de grande capacité. Elle permet de stocker des données de manière sécuπsée contre des lectures et/ou modifications non autorisées. Elle est essentiellement utilisée comme un dispositif d'accès permettant l'utilisation des logiciels protégés selon la présente invention. Les conditions d'utilisation d'un logiciel sont fixées par les concepteurs de logiciels. Un utilisateur ne peut exécuter un logiciel qu'à condition de posséder une autoπsation qui lui a été fournie sur sa carte CL lors d'une opération d'achat. La carte CL permet de stocker sur un média d'enregistrement amovible un grand nombre d' autoπsations d'utilisations de logiciels protégés. Ainsi, la carte CL permet à l'utilisateur de transporter les autoπsations d'utilisation de logiciels et de pouvoir utiliser les logiciels correspondants sur tout ordinateur lorsque l'utilisation de ces logiciels dont il a le droit est possible par rapport à la présence ou non de ces logiciels protégés sur cet ordinateur.According to the present invention, the CL card is a small portable device compared to a chip card. It has a removable large capacity recording device. It allows data to be stored securely against unauthorized readings and / or modifications. It is essentially used as an access device allowing the use of the protected software according to the present invention. The conditions of use of a software are fixed by the software designers. A user can only run software if he has an authorization supplied to him on his CL card during a purchase transaction. The CL card allows you to store a large number of protected software uses on a removable recording medium. Thus, the CL card allows the user to transport the authorizations for the use of software and to be able to use the corresponding software on any computer when the use of this software for which he is entitled is possible in relation to the presence or not of this protected software on this computer.
La présente invention concerne par rapport à l'usage de cette carte CL un moyen de lutter contre les pertes ou le vol de cette carte CL. En cas de pertes ou de vols, la carte peut être rendue inutilisable par l'organisme qui gère (administre) les appareils selon la présente invention. Une partie importante des licences d'utilisations de ces logiciels peut être récupérer en cas de perte Ainsi, l'utilisateur ne coure pas le πsque de perdre ses droits d'utilisation d'un logiciel lors de pertes de carte CL, ce qui peut être le cas avec les appareils de protection de logiciels dans l'état actuel de l'art.The present invention relates, with respect to the use of this CL card, to a means of combating the loss or theft of this CL card. In the event of loss or theft, the card can be rendered unusable by the organization which manages (administers) the devices according to the present invention. A significant part of the licenses for the use of this software can be recovered in the event of loss. Thus, the user does not run the risk of losing his rights to use software when the CL card is lost, which can be the case with software protection devices in the current state of the art.
La présente invention concerne des méthodes de protection de logiciels indépendamment des systèmes informatiques. La présente invention permet la protection de logiciels utilisés en réseau et/ou sur un ordinateur personnel. Le lecteur LCL possède une grande capacité de modularité par rapport aux différents péπphéπques qui peuvent être ajouté sur son système électronique interne. Ainsi, il très facile de connecter le lecteur LCL sur tout environnement informatique. Ainsi, la protection de logiciels selon la présente invention, est réalisable avec le même lecteur LCL dans - 5 - des systèmes informatiques très hétérogènes où de nombreux systèmes différents cohabitent. Le fonctionnement des lecteurs LCL est indépendant de ces systèmes informatiques. Par conséquent, les lecteurs LCL permettent la protection des logiciels indépendamment des systèmes informatiques prévus pour exécuter ces logiciels. La présente invention permet le développement de logiciels protégés indépendamment des caractéπstiques techniques des appareils selon la présente invention. Le développement des logiciels protégés selon la présente invention, est indépendant du fonctionnement interne du LCL. La réalisation d'un logiciel protégé selon la présente invention est rendue possible en faisant exécuter une partie des fonctions qui composent ce logiciel par les ressources interne du LCL. L'écriture de ces fonctions est complètement transparente dans la mesure où le concepteur de logiciel n'est pas tenu de respecter l'architecture électronique du LCL. Le bon fonctionnement de ces fonctions peut même être testé à l'extéπeur du lecteur LCL, de sorte que le travail de protections de logiciels pour le concepteur s'arrête à l'écπture de ces fonctions. Ces fonctions sont essentiellement des fonctions de calculs de petite taille par rapport à la taille d'un logiciel standard et dont l'exécution est très rapide. Ainsi, plusieurs logiciels protégés différents peuvent être utilisés dans le cadre d'un réseau avec le même lecteur LCL. De plus, plusieurs logiciels protégés selon la présente invention peuvent donc être utilisés sur un ordinateur personnel avec un seul lecteur LCL. Le fonctionnement du lecteur LCL utilisé avec un ordinateur personnel par rapport à une utilisation dans un environnement réseau ne diffère qu'au niveau des périphériques de communication utilisés dans chaque cas.The present invention relates to methods of protecting software independently of computer systems. The present invention allows the protection of software used on the network and / or on a personal computer. The LCL reader has a large capacity for modularity in relation to the various devices that can be added to its internal electronic system. Thus, it is very easy to connect the LCL reader to any IT environment. Thus, software protection according to the present invention is achievable with the same LCL reader in - 5 - very heterogeneous IT systems where many different systems coexist. The operation of LCL readers is independent of these computer systems. Consequently, LCL readers allow the protection of software independently of the computer systems intended to run this software. The present invention allows the development of protected software regardless of the technical characteristics of the devices according to the present invention. The development of protected software according to the present invention is independent of the internal functioning of the LCL. The production of protected software according to the present invention is made possible by executing part of the functions that make up this software by the internal resources of LCL. The writing of these functions is completely transparent since the software designer is not required to respect the electronic architecture of LCL. The proper functioning of these functions can even be tested outside the LCL reader, so that the work of software protection for the designer stops when these functions stop. These functions are essentially functions of calculations of small size compared to the size of a standard software and whose execution is very fast. Thus, several different protected software can be used within the framework of a network with the same LCL reader. In addition, several software protected according to the present invention can therefore be used on a personal computer with a single LCL reader. The operation of the LCL player used with a personal computer compared to use in a network environment differs only in the communication devices used in each case.
Selon la présente invention, le lecteur LCL réalise la protection de logiciel en effectuant des mesures sur l'utilisation de tous les logiciels en cours d'exécution. Le lecteur LCL est selon la présente invention, capable de connaître le nombre de licences utilisées sur un ordinateur et/ou sur tout le réseau auquel il est connecté. Il est capable de connaître la durée d'utilisation d'un logiciel donné par un utilisateur donné. Selon la présente invention, il est capable de connaître toutes les informations d'utilisation concernant un logiciel donnée par rapport au temps. Ces moyens de mesure propre au lecteur LCL permettent au lecteur LCL d'arbitrer l'utilisation des logiciels protégés selon la présente invention. Cet arbitrage est effectué par rapport aux conditions d'utilisation de chaque logiciel protégé selon la présente invention. Ces conditions sont fixées par le concepteur de ces logiciels.According to the present invention, the LCL reader carries out software protection by performing measurements on the use of all the software running. The LCL reader is according to the present invention, capable of knowing the number of licenses used on a computer and / or on the entire network to which it is connected. It is able to know the duration of use of a given software by a given user. According to the present invention, it is capable of knowing all the usage information concerning a given software with respect to time. These measurement means specific to the LCL reader allow the LCL reader to arbitrate the use of the software protected according to the present invention. This arbitration is carried out in relation to the conditions of use of each software protected according to the present invention. These conditions are set by the designer of this software.
Ainsi, selon la présente invention, la carte CL sert à stocker des autoπsations d'utilisations de logiciels et le profil de l'utilisateur par rapport à son utilisation des logiciels protégés selon la présente invention. Le lecteur LCL est chargé de véπfier si le profil de l'utilisateur par rapports à ses droits d'utilisations des logiciels, correspond bien aux conditions d'utilisation fixées par le concepteur de ces logiciels. Ces conditions peuvent être selon la réalisation de la présente invention, des conditions d'utilisations limitées dans le temps, des conditions d'ouverture simultanée d'un nombre de sessions d'exécution limitées par le nombre de licences d'utilisation possédées par le propπétaire de la carte CL. - 6 -Thus, according to the present invention, the CL card is used to store autoπsations of software uses and the profile of the user in relation to his use of the software protected according to the present invention. The LCL reader is responsible for verifying whether the profile of the user in relation to his rights to use the software, corresponds to the conditions of use set by the designer of these software. These conditions can be, according to the embodiment of the present invention, conditions of use limited in time, conditions of simultaneous opening of a number of execution sessions limited by the number of user licenses owned by the owner. of the CL card. - 6 -
Ainsi, un seul lecteur LCL peut arbitrer sur un ou plusieurs ordinateurs l'utilisation de un ou plusieurs logiciels différents protégés selon la présente invention. Les règles d'arbitrages peuvent être spécifiques à chaque version de logiciels, ce qui permet la protection de plusieurs logiciels par un seul appareil selon des cπtères spécifiques à l'utilisation de chaque logiciel protégé. La présente invention permet une distribution des logiciels protégés indépendamment des moyens de protection de sorte que le développeur de logiciels peut ne pas constituer de stocks d'appareils permettant la protection. Ainsi, la protection de logiciels selon la présente invention est intéressante pour les petites et les grandes distributions de logiciels : l'usage d'un seul appareil pour la protection de plusieurs logiciels indépendamment des concepteurs ne peut que diminuer le coût d'utilisation du système de protection de logiciels selon la présente invention. De plus, la présente invention permet une grande souplesse par rapport à l'administration des logiciels protégés. La vente des autoπsations d'utilisation d'un logiciel données peut être centralisée ou décentralisée.Thus, a single LCL reader can arbitrate on one or more computers the use of one or more different software programs protected according to the present invention. The arbitration rules can be specific to each version of software, which allows the protection of several software by a single device according to specific criteria for the use of each protected software. The present invention allows distribution of protected software independently of the means of protection so that the software developer may not build up inventories of devices enabling protection. Thus, the protection of software according to the present invention is advantageous for small and large software distributions: the use of a single device for the protection of several software independently of the designers can only reduce the cost of using the system software protection according to the present invention. In addition, the present invention allows great flexibility with respect to the administration of protected software. The sale of authorizations to use a given software can be centralized or decentralized.
De plus, selon la présente invention, la création de logiciel protégé peut être effectuer de plusieurs manière. Les autoπsations pour créer un logiciel protégé selon la présente invention, peuvent être centralisées ou décentralisé (situation décrite dans le cas de développement de logiciels de démonstrations ou de logiciels dont l'utilisation est limitée).In addition, according to the present invention, the creation of protected software can be carried out in several ways. The authorizations to create protected software according to the present invention can be centralized or decentralized (situation described in the case of development of demonstration software or software whose use is limited).
De plus, les appareils selon la présente invention peuvent effectuer des communications avec des systèmes distants. L'administration de ces appareils est effectuée par un système distant qui est selon la réalisation de la présente invention, un serveur noté aSVR. Ce serveur fixe les conditions d'utilisations des appareils selon la présente invention. Il arbitre de manière générale l'utilisation des appareils selon la présente invention.In addition, the apparatuses according to the present invention can carry out communications with remote systems. The administration of these devices is carried out by a remote system which is, according to the embodiment of the present invention, a server denoted aSVR. This server fixes the conditions of use of the devices according to the present invention. It generally arbitrates the use of the devices according to the present invention.
De plus, les autoπsations d'utilisation de logiciels contenue dans une carte CL peuvent être soit déplacées dans le lecteur LCL, soit dans une autre carte CL. Dans le cas où le déplacement aurait heu vers un lecteur LCL, l'accès aux logiciels protégés peut être réalisé sans la présence d'une carte CL. Dans le cas de déplacements vers une autre carte CL, cela permet des distπbutions de licences d'utilisations de logiciels par des revendeurs. La présente invention permet ou non la centralisation des ventes des autorisations de logiciels.In addition, the software usage authorizations contained in a CL card can either be moved in the LCL reader, or in another CL card. In the event that the movement is due to an LCL reader, access to protected software can be achieved without the presence of a CL card. In the case of travel to another CL card, this allows software licenses to be distributed by resellers. The present invention may or may not centralize the sales of software authorizations.
De plus, selon la présente invention, le lecteur de cartes LCL possède un ou des dispositifs) qui permet un rajout de périphéπques rapidement et facilement. Selon des modes particuliers de réalisation, le lecteur LCL dispose d'un récepteur radio pour recevoir des informations de manière sécuπsée ou non grâce à un dispositif d'émission géré par ledit serveur aSVR. Ce récepteur est essentiellement utilisé pour des opérations d'achat d'autorisations d'utilisation de logiciels hors ligne, des opérations de mise à jour. Il permet aussi de gérer la sécurité d'utilisation des appareils selon la présente invention.In addition, according to the present invention, the LCL card reader has one or more devices) which allows adding peripherals quickly and easily. According to particular embodiments, the LCL reader has a radio receiver for receiving information in a secuπsed manner or not thanks to a transmission device managed by said aSVR server. This receiver is mainly used for operations to buy authorizations to use software offline, update operations. It also makes it possible to manage the security of use of the devices according to the present invention.
La présente invention permet par ses moyens et ses méthodes des achats soit par des connexions informatiques, soit par un système d'accueil humain. Les achats peuvent donc être effectués en ligne ou hors ligne. Ces achats consiste en l'acquisition des autoπsations d'utilisations - 7 - de logiciels protégés selon la présente invention. La présente concerne l'emploi d'un récepteur radio numénque permettant en particulier la réception de ces autoπsations d'utilisations.The present invention allows, by its means and methods, purchases either by computer connections or by a human reception system. Purchases can therefore be made online or offline. These purchases consist in the acquisition of self-use uses Protected software according to the present invention. The present relates to the use of a digital radio receiver allowing in particular the reception of these autoπsations of uses.
Pour réaliser la protection de plusieurs logiciels indépendamment de leurs concepteurs, la présente invention concerne l'utilisation au sein du lecteur LCL, d'un microcontrôleur sécuπsé contre les lectures et/ou les modifications non autoπsées de sa mémoire interne et contre des attaques de virus informatiques qui peuvent être rencontrés dans la mesure où ce microcontrôleur exécute des programmes dont il ignore la fiabilité, l'utilisation du lecteur comme moyen de protection de logiciels est libre en dehors des accords commerciaux éventuels. Ainsi, cette propπété permet à ce que l'usage du lecteur LCL et de la carte CL sont complètement libre. Pour permettre à l'utilisateur de transporter des autoπsations d'utilisations de logiciels protégés, la carte CL est de petite taille II est basé sur un microcontrôleur permettant de sécuπser l'accès aux informations qui définissent les droits d'utilisations d'un logiciel donné. Il peut stocker un très grand nombre d'autorisation d'utilisations de logiciels protégés selon la présente invention.To achieve the protection of several software independently of their designers, the present invention relates to the use within the LCL reader, of a microcontroller secuπsé against the readings and / or the non autoπsées modifications of its internal memory and against virus attacks data processing which can be encountered insofar as this microcontroller executes programs of which it ignores the reliability, the use of the reader like means of software protection is free outside possible commercial agreements. Thus, this property allows the use of the LCL reader and the CL card to be completely free. To allow the user to transport autoπsations of uses of protected software, the CL card is small in size II is based on a microcontroller allowing secuπser access to information which define the rights of use of a given software . It can store a very large number of authorization to use protected software according to the present invention.
Les informations sont stockées sur un média d'enregistrement de fortes capacités. Elles sont protégées contre toutes modifications et lectures non autoπsées. De plus, le système interne de son microcontrôleur est aussi protégé contre tout contrôle physique et logique.Information is stored on high capacity recording media. They are protected against all modifications and unauthorized readings. In addition, the internal system of its microcontroller is also protected against any physical and logical control.
De plus, la présente invention concerne un système de protection de logiciel évolutif dans la mesure où il est possible de mettre à jour l'ensemble des systèmes informatiques contenus dans les microcontrôleurs cités précédemment Compte tenu de leur capacité de sécuπser le stockage de données et l'exécution de programmes, compte tenu aussi de la possibilité de mettre facilement à jour les systèmes informatiques des appareils selon la présente invention, la présente invention permet à des appareils de protection de logiciels d'être utilisée dans d'autres secteurs d'applications.In addition, the present invention relates to a scalable software protection system insofar as it is possible to update all of the computer systems contained in the above-mentioned microcontrollers Given their capacity to secure the storage of data and the execution of programs, also taking into account the possibility of easily updating the computer systems of the apparatuses according to the present invention, the present invention allows software protection apparatuses to be used in other application sectors.
Les dessins annexés illustrent l'invention : La figure 1 illustre l'ensemble des vaπantes de connexion mise en jeux dans la présente invention, et reflète le fonctionnement général de l'invention. Elle permet de comprendre les différents contextes d'utilisations des appareils selon la présente invention.The accompanying drawings illustrate the invention: FIG. 1 illustrates all of the connection variants used in the present invention, and reflects the general operation of the invention. It makes it possible to understand the different contexts of use of the devices according to the present invention.
La figure 2 illustre les différentes couches de logiciels nécessaires pour que un LCL donné puissent se connecter vers un système distant. La figure 3 illustre le schéma synoptique de l'architecture du microcontrôleur utilisé dans l'appareil LCL.Figure 2 illustrates the different layers of software necessary for a given LCL to connect to a remote system. FIG. 3 illustrates the block diagram of the architecture of the microcontroller used in the LCL device.
La figure 4 reflète les associations possibles entre deux LCL concurrents sur le même réseau, pour permettre le partage des opérations liées à la protection de logiciels par la présente invention.Figure 4 reflects the possible associations between two competing LCLs on the same network, to allow the sharing of operations related to the protection of software by the present invention.
La figure 5 illustre le schéma synoptique des différents éléments composant la carte électronique CL, notamment l'architecture du microcontrôleur associé à une carte CL.FIG. 5 illustrates the block diagram of the various elements making up the electronic card CL, in particular the architecture of the microcontroller associated with a card CL.
La figure 6 représente une vue de face du boîtier de la carte CL.FIG. 6 represents a front view of the housing of the CL card.
La figure 7 représente une vue en perspective du boîtier CL avec la carte CompactFlash sortie de son support. - 8 - La figure 8 illustre les jeux de connecteurs mâles femelles entre LCL et CL.FIG. 7 represents a perspective view of the CL housing with the CompactFlash card removed from its support. - 8 - Figure 8 illustrates the sets of female male connectors between LCL and CL.
La figure 9 illustre le fait que les appareils selon la présente invention possèdent des durées d'utilisation par rapport au calendπer.FIG. 9 illustrates the fact that the apparatuses according to the present invention have durations of use with respect to the calendπer.
La figure 10 illustre les étapes d'une procédure d'authentifïcation empêchant des appareils pirates de fonctionner avec les appareils (lecteurs LCL et cartes CL) certifiés.Figure 10 illustrates the steps of an authentication procedure preventing pirated devices from working with certified devices (LCL readers and CL cards).
La figure 11 illustre les étapes d'une opération d'achat de licences d'utilisation de logiciels protégés selon la présente invention.FIG. 11 illustrates the steps of an operation for purchasing licenses to use protected software according to the present invention.
La figure 12 illustre un arbre logique, simplifié et utilisé par le système d'exploitation du microcontrôleur 100 pour effectuer la protection de logiciel. En référence à la figure 1, selon la réalisation de la présente invention, l'ensemble du système qui exploite le lecteur électronique, peut avoir une gestion centralisée par l'intermédiaire d'un serveur aSVR qui possède une base de données 12 relatives aux appareils selon la présente invention. L'ensemble des éléments compπs dans l'encadré 10 est géré par un organisme donné. Cet organisme est le distπbuteur des appareils relatifs à la présente invention. Le serveur aSVR peut communiquer avec des systèmes informatiques distants utilisant un lecteur LCL. Selon des vaπantes de la réalisation de la présente invention, un lecteur LCL peut posséder un moyen pour se connecter soit directement sur un réseau 40, soit sur un port E/S d'un ordinateur personnel (contexte représenté par l'encadré 30) ou posséder un radiorécepteur numéπque 22 (contexte représenté par l'encadré 20). Selon la réalisation de la présente invention, la figure 2 illustre les différentes couches traversées par LCL pour atteindre un système distant. Les communications entre le système distant et LCL sont gérées par deux programmes tournant sur un ordinateur 50. La connexion 54 entre l'ordinateur et un lecteur LCL peut en fonction du type d'utilisation être une connexion réseau dans le cas de l'encadré 40 ou une connexion directe sur un port E/S de l'ordinateur 50 dans les contextes 30 et 20. Le port retenu pour la réalisation de la présente invention, dans les contextes 30 et 20, est un port USB (Universal Seπal Bus) pour des raisons de rapidité, en supposant que les ordinateurs utilisés possèdent un tel port de communication. La descπption de la présente invention a retenu pour le contexte d'utilisation 40, le cas d'un réseau Ethernet avec le protocole TCP/IP. Ainsi, dans ce contexte le lecteur LCL possédera un péπphéπque réseau adéquat. Le programme PGM 52 permet de communiquer de manière interactive avec un lecteur LCL donné. Ces communications se font grâce au programme dπver DRV 51. En référence à la figure 2, ce dπver 51 réalise toutes les fonctions de communications entre un lecteur LCL et un ordinateur 50 connecté à ce lecteur. Les différentes fonctionnalités de ces deux programmes propres à la gestion des appareils selon la présente invention, seront définie par la suite. Le programme PGM permet d'assurer au lecteur LCL une communication avec un système distant. Pour réaliser cette communication, PGM utilise les ressources de communications 53 de l'ordinateur hôte 50. Le programme DRV assure quant à lui la communication locale entre le lecteur LCL et le programme PGM. Dans le cas 30, il peut s'agir du modem 31 permettant une connexion vers le réseau Internet - 9 - auquel est attaché le serveur aSVR. Selon la réalisation de la présente invention, pour le cas 40, la ressource de communication 53 est celle de l'ordinateur 50 par rapport aux ressources du réseau local, permettant un accès vers un système distant via le réseau Internet.FIG. 12 illustrates a simplified logic tree used by the operating system of the microcontroller 100 to perform software protection. With reference to FIG. 1, according to the embodiment of the present invention, the entire system which exploits the electronic reader, can have centralized management via an aSVR server which has a database 12 relating to the devices. according to the present invention. All of the compπs elements in Box 10 are managed by a given organization. This body is the distributor of the devices relating to the present invention. The aSVR server can communicate with remote computer systems using an LCL reader. According to variants of the embodiment of the present invention, an LCL reader can have a means for connecting either directly to a network 40, or to an I / O port of a personal computer (context represented by box 30) or have a digital radio receiver 22 (context represented by box 20). According to the embodiment of the present invention, Figure 2 illustrates the different layers traversed by LCL to reach a remote system. The communications between the remote system and LCL are managed by two programs running on a computer 50. The connection 54 between the computer and an LCL reader can, depending on the type of use, be a network connection in the case of box 40 or a direct connection to an I / O port of the computer 50 in contexts 30 and 20. The port chosen for the realization of the present invention, in contexts 30 and 20, is a USB port (Universal Seπal Bus) for reasons of speed, assuming that the computers used have such a communication port. The description of the present invention has retained for the context of use 40, the case of an Ethernet network with the TCP / IP protocol. Thus, in this context, the LCL reader will have an adequate network device. The PGM 52 program enables interactive communication with a given LCL reader. These communications are made using the dπver DRV 51 program. With reference to FIG. 2, this dπver 51 performs all of the communication functions between an LCL reader and a computer 50 connected to this reader. The different functionalities of these two programs specific to the management of the devices according to the present invention will be defined below. The PGM program allows the LCL reader to communicate with a remote system. To carry out this communication, PGM uses the communication resources 53 of the host computer 50. The DRV program provides local communication between the LCL reader and the PGM program. In case 30, it can be modem 31 allowing a connection to the Internet network - 9 - to which the aSVR server is attached. According to the embodiment of the present invention, for case 40, the communication resource 53 is that of the computer 50 with respect to the resources of the local network, allowing access to a remote system via the Internet network.
L'utilisation des lecteurs LCL est sous soumise par une condition d'identification lors de sa mise en marche, et par une condition de la connexion effective de la carte CL sur un support du lecteur LCL. Ces deux conditions seront décrites par la suite.The use of LCL readers is subject to an identification condition when it is switched on, and a condition for the effective connection of the CL card to a support on the LCL reader. These two conditions will be described later.
Le contexte 20 correspondant à des situations où le lecteur LCL est connecté sur un ordinateur ne possédant pas de moyens de communication avec un système distant. Ce fonctionnement sera décπt par la suite. Selon la présente invention, la protection de logiciel est rendue possible en faisant exécuter une petite partie des fonctions d'un logiciel donné, par ledit lecteur électronique, noté LCL. Ladite carte électronique, noté CL, possède les autoπsations d'utilisation du logiciel. Compte tenu de sa capacité de stockage, la carte CL peut stocker une grande quantité d'autorisations d'utilisation. De cette manière, la présente invention permet par le moyen d'un seul dispositif électronique, la protection de plusieurs logiciels simultanément et indépendamment de leurs concepteurs.The context 20 corresponding to situations where the LCL reader is connected to a computer that does not have means of communication with a remote system. This operation will be decπt later. According to the present invention, software protection is made possible by executing a small part of the functions of a given software, by said electronic reader, denoted LCL. Said electronic card, denoted CL, has the authorizations for using the software. Given its storage capacity, the CL card can store a large amount of user authorizations. In this way, the present invention allows by means of a single electronic device, the protection of several software simultaneously and independently of their designers.
Selon la réalisation de la présente invention, le lecteur LCL et la carte CL sont respectivement associés à deux numéros de séπe uniques. L'ensemble des informations permettant le fonctionnement du lecteur LCL et de la carte CL pour réaliser la protection de logiciels, est géré par le serveur aSVR à l'aide de sa base de données 12 qui doit être protégée contre des accès non autoπsés par rapport à la sécuπté du système mise en place pour la protection de logiciels. L'organisme en question qui gère aSVR attribue respectivement à une carte CL donné et un lecteur LCL donné, les numéros de séπes ID.c et ID.d, et les clés secrètes de codages kT.c et kT.d. Les numéros ID.c et ID.d sont uniques. Ces deux numéros et ces deux clés secrètes sont stockés dans de la mémoire non volatile qui se trouve dans le système électronique de CL et de LCL. Des précisions seront données ultéπeurement. Les couples (ID.c, kT.c) et (ID.d, kT.d) sont stockés par ailleurs dans la base de données 12 accessible uniquement par aSVR pour des raisons de sécuπtés évidentes. Les clés kT.c et kT.d sont connues uniquement par aSVR, en dehors des appareils LCL et CL.According to the embodiment of the present invention, the LCL reader and the CL card are respectively associated with two unique serial numbers. All of the information enabling the LCL reader and the CL card to operate to protect software is managed by the aSVR server using its database 12 which must be protected against unauthorized access in relation to the security of the system implemented for software protection. The organization in question which manages aSVR assigns respectively to a given CL card and a given LCL reader, the serial numbers ID.c and ID.d, and the secret coding keys kT.c and kT.d. The ID.c and ID.d numbers are unique. These two numbers and these two secret keys are stored in non-volatile memory which is in the electronic system of CL and LCL. Details will be given later. The pairs (ID.c, kT.c) and (ID.d, kT.d) are also stored in the database 12 accessible only by aSVR for obvious security reasons. The keys kT.c and kT.d are known only by aSVR, outside the LCL and CL devices.
De plus, selon la réalisation de la présente invention, les numéros ID.c et ID.d sont publics, mais non modifiables. Cela signifie qu'ils sont stockés dans la mémoire protégée du système électronique intégré dans chaque appareil relatif à la présente invention, et qu'ils sont communiqués par ailleurs à leur utilisateur sous une forme claire. Selon la réalisation de la présente invention, ils sont marqués sur le boîtier de CL et de LCL. De plus, la présente invention ne concerne la forme du boîtier utilisé pour le lecteur LCL. Selon la réalisation de la présente invention, la méthode de cryptage adoptée avec les clés secrètes de codage kT.d et kT.c, concerne le cryptage DES (data encryption standard) développé par la société IBM. Ces deux clés ont une taille de 128 bits suffisante contre des craquages de codes. Selon des modes particuliers de réalisation, on pourra choisir d'autre type de cryptage et de - 10 - taille de clés de codage.In addition, according to the embodiment of the present invention, the numbers ID.c and ID.d are public, but cannot be modified. This means that they are stored in the protected memory of the electronic system integrated in each device relating to the present invention, and that they are moreover communicated to their user in a clear form. According to the embodiment of the present invention, they are marked on the housing of CL and LCL. In addition, the present invention does not relate to the shape of the housing used for the LCL reader. According to the embodiment of the present invention, the encryption method adopted with the secret coding keys kT.d and kT.c, relates to DES encryption (data encryption standard) developed by the company IBM. These two keys have a size of 128 bits sufficient against cracking of codes. According to particular embodiments, it will be possible to choose other type of encryption and - 10 - size of coding keys.
Selon la présente invention, les appareils LCL et CL sont paramétrables dans une certaine mesure par l'intermédiaire d'un programme informatique, noté PGM, adapté pour chaque type d'ordinateur et de systèmes d'exploitation informatique. PGM permet à un utilisateur de démaπer des procédures relatives à des opérations nécessitant une intervention de l'utilisation. Ces procédures sont décrites par la suite. PGM est distribué par ledit organisme qui gère aSVR. A l'installation de PGM sur un ordinateur hôte, une opération de localisation d'un lecteur LCL est effectuée. Si un lecteur LCL est connecté directement sur un port de communication de l'ordinateur hôte, un driver logiciel DRV de communication à travers ce port est installé afin de permettre à un programme de cet ordinateur d'envoyer des données vers LCL et d'en recevoir de LCL en suivant le schéma de la figure 2, sans tenir compte des caractéristiques techniques de la communication entre cet ordinateur et le lecteur LCL connecté. Le driver DRV permet une utilisation transparente du lecteur LCL.According to the present invention, the LCL and CL devices can be configured to a certain extent by means of a computer program, denoted PGM, suitable for each type of computer and computer operating systems. PGM allows a user to initiate procedures relating to operations requiring user intervention. These procedures are described below. PGM is distributed by said organization which manages aSVR. When installing PGM on a host computer, an operation to locate an LCL reader is performed. If an LCL reader is connected directly to a communication port on the host computer, a DRV software driver for communication through this port is installed in order to allow a program on this computer to send data to LCL and send it in. receive from LCL following the diagram in figure 2, without taking into account the technical characteristics of the communication between this computer and the connected LCL reader. The DRV driver allows transparent use of the LCL reader.
Dans le cas où des logiciels protégés seraient utilisés en réseau (il s'agit du contexte 40), un programme driver DRV adéquat sera installé sur chaque ordinateur du réseau, pour permettre la communication entre ces ordinateurs et le LCL connecté sur ce réseau local. Le driver DRV permet une utilisation transparente de LCL pour chaque ordinateur du réseau qui peuvent avoir des systèmes informatiques différents entre eux.In the case where protected software is used on the network (this is context 40), a suitable DRV driver program will be installed on each computer on the network, to allow communication between these computers and the LCL connected to this local network. The DRV driver allows transparent use of LCL for each computer on the network which may have different computer systems between them.
A son installation sur le réseau Ethernet, le lecteur LCL reçoit une adresse IP par rapport au protocole TCP/IP, qui permet au driver installé sur les ordinateurs du réseau de le localiser.When installed on the Ethernet network, the LCL reader receives an IP address relative to the TCP / IP protocol, which allows the driver installed on the computers on the network to locate it.
De plus, chaque driver DRV permet à chaque ordinateur hôte où sont utilisés des logiciels protégés par la présente invention, de communiquer avec le lecteur LCL. La réalisation de la présente invention permet aussi à ce que plusieurs programme PGM puissent établir des communications avec un lecteur LCL donné connecté sur le réseau considéré. Dans son utilisation réseau 40, le lecteur LCL en cas d'utilisation intensive, peut partager avec d'autre lecteur LCL, sa fonction de protection de logiciels comme on le voit sur la figure 4 où une répartition des ordinateurs utilisant deux lecteurs LCL est illustrée. La répartition des lecteurs LCL présents sur le réseau avec les ordinateurs est, selon la réalisation de la présente invention, réalisée par l'administrateur réseau. Ce dernier effectue la répartition des ordinateurs du réseau par rapport aux lecteurs LCL présents sur le réseau, au moment de l'installation de DRV sur chaque ordinateur de ce réseau. Il indique à DRV l'adresse IP du lecteur LCL à utiliser.In addition, each DRV driver allows each host computer where software protected by the present invention is used, to communicate with the LCL reader. The embodiment of the present invention also allows several PGM programs to be able to establish communications with a given LCL reader connected to the network in question. In its network use 40, the LCL reader in the event of intensive use, can share with other LCL reader, its software protection function as seen in FIG. 4 where a distribution of the computers using two LCL readers is illustrated . According to the embodiment of the present invention, the distribution of the LCL readers present on the network with the computers is carried out by the network administrator. The latter distributes the computers on the network to the LCL readers on the network when DRV is installed on each computer on this network. It tells DRV the IP address of the LCL reader to use.
Après l'installation de PGM sur un ordinateur hôte, les utilisateurs de cet ordinateur peuvent alors effectuer sur un lecteur LCL donné, connecté avec une carte CL donnée les différentes opérations suivantes : achat en ligne de licences d'utilisation de logiciels protégés par ia présente invention, déplacement d'un certain nombre de licences d'utilisation de logiciels d'une carte CL vers une autre carte CL, des opérations de récupération de licences perdues avec la perte d'une carte CL, la mise à jour des programmes contenus dans les mémoires électroniques du lecteur LCL ou de la carte CL. - 11 - Ainsi, la réalisation de la présente invention considère un logiciel donné, noté LD. Les descriptions suivantes sont valables pour tout autre logiciel. Son concepteur (fabricant) le protège selon la présente invention, contre des utilisations illégales en séparant l'ensemble des fonctions composant son logiciel en deux parties. La première partie concerne les procédures dont il désire laisser l'exécution à un ordinateur hôte. La deuxième partie concerne les fonctions qui devront être exécutées par les ressources de calculs de LCL. Ces fonctions doivent être rapide à exécuter. Leur taille est de l'ordre du 100 kilooctets.After installing PGM on a host computer, users of this computer can then perform the following operations on a given LCL reader, connected with a given CL card: online purchase of licenses to use software protected by this invention, moving a certain number of software licenses from one CL card to another CL card, operations to recover lost licenses with the loss of a CL card, updating the programs contained in the electronic memories of the LCL reader or of the CL card. - 11 - Thus, the realization of the present invention considers a given software, denoted LD. The following descriptions are valid for any other software. Its designer (manufacturer) protects it according to the present invention, against illegal uses by separating all of the functions making up its software into two parts. The first part concerns the procedures which it wishes to leave the execution to a host computer. The second part concerns the functions which will have to be executed by the LCL computing resources. These functions must be quick to execute. Their size is of the order of 100 kilobytes.
De cette deuxième partie dudit logiciel LD, il en extrait une liste de fonctions {F0, F],...,Fj,From this second part of said LD software, it extracts from it a list of functions {F 0 , F], ..., Fj,
...Fn}. Ces fonctions sont nécessaires pour le fonctionnement du logiciel LD. Pour effectuer cette extraction, il doit respecter une règle primordiale : ces fonctions ne doivent pas faire appel à des ressources caractéristiques des ordinateurs prévus pour l'exécution de LD. Cette condition est assez facile à respecter. Par exemple, ladite liste de fonctions peut être uniquement des fonctions de calculs purs.... F n }. These functions are necessary for the operation of the LD software. To carry out this extraction, it must respect an essential rule: these functions must not call upon resources characteristic of the computers intended for the execution of LD. This condition is fairly easy to meet. For example, said list of functions can only be pure calculation functions.
Selon la réalisation de la présente invention, écriture de ces fonctions et le test de leur bon fonctionnement peuvent être réalisés indépendamment de la présence du lecteur LCL. Le moyen retenu pour la réalisation de la présente invention, concerne la machine virtuelle JAVA. Ainsi, ces fonctions sont écrites en JAVA. Ces fonctions sont donc compilées en « byte code » du langage universel JAVA et stockées dans un fichier, noté LF.According to the embodiment of the present invention, writing of these functions and testing their correct operation can be carried out independently of the presence of the LCL reader. The means adopted for carrying out the present invention relates to the JAVA virtual machine. Thus, these functions are written in JAVA. These functions are therefore compiled in “byte code” of the universal JAVA language and stored in a file, noted LF.
Par ailleurs, selon la réalisation de la présente invention, la protection du logiciel LD commence alors par l'exécution du programme PGM sur un ordinateur contenant LF. Selon la réalisation de la présente invention, PGM demande alors au concepteur de LD le système d'exploitation (WINDOWS NT, DOS, UNIX,...) et le type d'ordinateur (MACINTOSH, SPARC, PC,...) qui exécuteront LD. Après ces réponses, PGM lance une procédure de connexion du lecteur LCL disponible vers le serveur aSVR. La communication entre LCL et aSVR se fait selon la figure 2. Le numéro de série du lecteur LCL est donné en premier au serveur aSVR. Durant cette procédure de création d'un logiciel protégé par la présente invention, LCL demande à aSVR en communication sécurisée un numéro de série S# à associer au logiciel à protéger LD et une clé de codages kX.S#.Furthermore, according to the embodiment of the present invention, the protection of the LD software then begins with the execution of the PGM program on a computer containing LF. According to the embodiment of the present invention, PGM then asks the LD designer for the operating system (WINDOWS NT, DOS, UNIX, ...) and the type of computer (MACINTOSH, SPARC, PC, ...) which will execute LD. After these responses, PGM launches a procedure to connect the available LCL reader to the aSVR server. Communication between LCL and aSVR takes place according to figure 2. The serial number of the LCL reader is given first to the aSVR server. During this procedure for creating software protected by the present invention, LCL requests aSVR in secure communication a serial number S # to be associated with the software to be protected LD and a coding key kX.S #.
Selon la réalisation de la présente invention, S# est définit sur 128 bits, et la clé kX.S# est définie par rapport au cryptage DES avec une taille de 128 bits.According to the embodiment of the present invention, S # is defined on 128 bits, and the key kX.S # is defined with respect to DES encryption with a size of 128 bits.
Selon la réalisation de la présente invention, pour effectuer ladite communication sécurisée avec aSVR, LCL commence par envoyer à aSVR son numéro ID.d sous une forme non codée. Par association avec la clé coπespondante, aSVR trouve dans sa base de données 12, la clé kT.d à associer à ID.d. Ainsi, aSVR retourne à LCL, S# et kX.S# sous une forme codée avec la clé kT.d. Le lecteurAccording to the embodiment of the present invention, to carry out said secure communication with aSVR, LCL begins by sending aSVR its ID.d number in an unencrypted form. By association with the corresponding key, aSVR finds in its database 12, the key kT.d to be associated with ID.d. Thus, aSVR returns to LCL, S # and kX.S # in a form coded with the key kT.d. The reader
LCL récupère la forme claire de S# et kX.S# en décodant avec la clé kT.d qui se trouve dans sa mémoire interne 111, par rapport à l'algorithme de cryptage DES.LCL recovers the clear form of S # and kX.S # by decoding with the key kT.d which is in its internal memory 111, compared to the DES encryption algorithm.
Selon la présente invention, la clé kX.S# est connue par aSVR seul, car après utilisation, - 12 - kX.S# sera effacé de la mémoire sécuπsée DRAM 109 de LCL. De plus, S# est communiqué àAccording to the present invention, the key kX.S # is known by aSVR alone, because after use, - 12 - kX.S # will be erased from the DRAM 109 secure memory of LCL. In addition, S # is communicated to
PGM qui l'mscπt dans un fichier binaire contenant les conditions limites d'utilisation du logiciel.PGM which mscπt in a binary file containing the limiting conditions of use of the software.
Selon la réalisation de la présente invention, ce fichier peut avoir le format suivant : S# du logiciel associé (128 bits), licences permanentes (8 bits), durée d'utilisation (24 bits), l'utilisation expire fin (16 bits), nombre d'exécutions (32 bits). Ce fichier fait donc une taille de 26 octets. {F0, F1;...,F„According to the embodiment of the present invention, this file can have the following format: S # of associated software (128 bits), permanent licenses (8 bits), duration of use (24 bits), use expires fine (16 bits ), number of executions (32 bits). This file is therefore 26 bytes in size. {F 0 , F 1; ..., F „
...Fn} subissent ensuite des opérations de cryptage. La fonction F0 est traitée à part. Il s'agit selon la réalisation de la présente invention, de la procédure dite d'initialisation permettant d'une part de compter le nombre de licences utilisées sur le réseau dans le contexte réseau 40, et d'autre part de mesurer des caractéπstiques d'utilisation du logiciel LD par rapport au temps. C'est une fonction qui est exécutée durant l'exécution du logiciel LD par un utilisateur, et de façon répétitive. F0 est en particulier la première fonction qui sera exécutée par LCL lors de l'ouverture d'une session d'exécutions du logiciel LD.... F n } then undergo encryption operations. The function F 0 is treated separately. It is a question, according to the embodiment of the present invention, of the so-called initialization procedure making it possible on the one hand to count the number of licenses used on the network in the network context 40, and on the other hand to measure characteristics d use of LD software over time. It is a function that is executed during the execution of the LD software by a user, and repeatedly. F 0 is in particular the first function which will be executed by LCL when opening an execution session of the LD software.
F0 est codée avec une clé différente de kX.S#. Pour cela le logiciel PGM génère une clé du même type notée kEL.S# par rapport au cryptage DES. La clé kEL.S# est connue uniquement par le concepteur de LD. Selon la réalisation de la présente invention, kEL.S# est une clé de 128bιts. Il est de la responsabilité du concepteur de conserver en sécuπté cette clé kEL.S#. A cette fonction codée, il joint une autre information codée aussi par la clé kEL.S#. Il s'agit du fichier contenant les conditions limites d'utilisation du logiciel LD. Ces informations codées constituent alors un fichier nommé eF0 selon la réalisation de la présente invention. De plus, selon la réalisation de la présente invention, les autres fonctions sont ensuite codées par la clé kX.S#. Pour cette étape, PGM envoie ensuite Fb...,F„ ...Fn vers LCL par l'intermédiaire de DRV. Les ressources de calculs de LCL codent alors ces fonctions successivement avec la clé kX.S#. A la fin des opérations de codage, LCL retourne {eFι,....,eFn} correspondant respectivement aux formes codées de {F ..., Fn} . Selon la réalisation de la présente invention, PGM procède ensuite à l'assemblage du logiciel.F 0 is coded with a key different from kX.S #. For this, the PGM software generates a key of the same type denoted kEL.S # with respect to DES encryption. The kEL.S # key is known only to the LD designer. According to the embodiment of the present invention, kEL.S # is a 128bιts key. It is the responsibility of the designer to keep this kEL.S # key safe. To this coded function, it attaches another piece of information also coded by the key kEL.S #. This is the file containing the limit conditions for using the LD software. This coded information then constitutes a file called eF 0 according to the embodiment of the present invention. In addition, according to the embodiment of the present invention, the other functions are then coded by the key kX.S #. For this step, PGM then sends F b ..., F „... F n to LCL via DRV. The LCL calculation resources then code these functions successively with the key kX.S #. At the end of the coding operations, LCL returns {eFι, ...., eF n } corresponding respectively to the coded forms of {F ..., F n }. According to the embodiment of the present invention, PGM then proceeds to assemble the software.
Pour un système d'exploitation donnée, PGM crée un fichier bibliothèque de fonctions qui seront exécutée durant l'exécution du logiciel LD sur l'ordinateur d'un utilisateur donné. Les différentes fonctions de la bibliothèque permettent de charger un élément de {eF0, ....,eFn} avec les paramètres nécessaires à l'exécution de la fonction correspondante, vers le lecteur LCL lors de l'utilisation de LD. eFO, ....,eFn seront respectivement chargées par les fonctions FF0,....,FFn créées par PGM. Ces fonctions sont créées par rapport au type de systèmes d'exploitations et le type d'ordinateurs associés qui exécuteront LD. PGM rassemble ainsi {FF0,...,FFn} et {eF0,...,eFn} avec le reste du logiciel LD ainsi protégé, et numéroté S#. Le tout est ensuite mis sur média d'enregistrement, par exemple un CDROM. Le logiciel est ainsi protégé et prêt à être diffusé librement, car il ne pourra pas être utilisé dans l'état actuel. Ainsi, la distπbution du média d'enregistrement peut être effectuée de manière complètement libre.For a given operating system, PGM creates a library of functions that will be executed during the execution of the LD software on the computer of a given user. The different functions of the library make it possible to load an element of {eF 0 , ...., eF n } with the parameters necessary for the execution of the corresponding function, towards the LCL reader when using LD. eFO, ...., eFn will be loaded respectively by the functions FF 0 , ...., FF n created by PGM. These functions are created with respect to the type of operating systems and the type of associated computers that will run LD. PGM thus brings together {FF0, ..., FFn} and {eF0, ..., eFn} with the rest of the LD software thus protected, and numbered S #. The whole is then put on recording media, for example a CDROM. The software is thus protected and ready to be freely distributed, because it cannot be used in the current state. Thus, the distribution of the recording medium can be carried out completely freely.
Ainsi, la protection de logiciel selon la présente invention, est basée sur l'utilisation des ressources de calculs du lecteur LCL. - 13 - Selon la présente invention, le lecteur LCL est un lecteur électronique construit autour d'un microcontrôleur 100 sécurisé physiquement et logiquement afin de prévenir contre les tentatives de pirates pour des contrôles électroniques non autorisés. Compte tenu du fait que ce microcontrôleurThus, the software protection according to the present invention is based on the use of the computing resources of the LCL reader. According to the present invention, the LCL reader is an electronic reader built around a microcontroller 100 physically and logically secure in order to prevent against hacker attempts for unauthorized electronic checks. Given the fact that this microcontroller
100 est amené à exécuter des programmes d'origine inconnue, la présente invention concerne un moyen d'empêcher des attaques informatiques du microcontrôleur 100 par l'intermédiaire de virus informatiques. Cette mesure est prise pour empêcher un virus de lire des informations confidentielles liées aux fonctionnements du lecteur LCL. Ainsi la présente invention permet de sécuriser à la fois le stockage d'information et à la fois l'exécution de tout programme extérieur aux programmes initialement chargés dans le microcontrôleur 100. Selon la réalisation de la présente invention, l'architecture retenue du microcontrôleur est construite autour d'un système basé sur un jeu de deux processeurs utilisés en maître esclave. En référence à la figure 3, le microcontrôleur 100 intègre sur la même pastille de silicium deux parties principales 130 et 120. Les méthodes d'intégration ASIC (Application Spécifie Integrated Circuit) sont employées pour réaliser ces pastilles de silicium. La partie 130 comporte un processeur CPUl qui est le processeur maître. Il est relié par un bus interne 101 à un module de mémoires FLASH 111, un module de mémoires DRAM 109, un générateur de nombre aléatoire 112, un port E/S RS232 151, un port USB 152, un contrôleur de cartes à puces (SmartCard) 153, un contrôleur PCMCIA 154, un contrôleur clavier et écran LCD 155, un contrôleur 113 du processeur esclave CPU2 qui se trouve dans la partie 120, une interface 106, une interface Bus externe 105, une horloge temps réel programmable interne 104, un système de microfusible interne 102 qui permet de sortir le bus interne 101 à l'extérieur du microcontrôleur 100. La partie 120 du microcontrôleur 100 comporte un watchdog 108. Le CPU2 est relié par le bus interne 114 à un module de mémoires DRAM 110, un contrôleur DMA 107, et une interface 106. L'esclave CPU2 est commandé par l'intermédiaire du contrôleur 113 et de l'interface 106. Ces deux derniers systèmes électroniques (113 et 106) sont contrôlés uniquement par le processeur maître CPUl. Ainsi, une telle architecture permet l'exécution des programmes d'origine inconnue sans pour autant endommager l'intégrité des informations contenues dans le microcontrôleur 100.100 is required to execute programs of unknown origin, the present invention relates to a means of preventing computer attacks on the microcontroller 100 by means of computer viruses. This is done to prevent a virus from reading confidential information related to the operation of the LCL reader. Thus, the present invention makes it possible to secure both the storage of information and at the same time the execution of any program external to the programs initially loaded into the microcontroller 100. According to the embodiment of the present invention, the architecture retained of the microcontroller is built around a system based on a set of two processors used as master slaves. With reference to FIG. 3, the microcontroller 100 integrates on the same silicon wafer two main parts 130 and 120. The integration methods ASIC (Application Specifies Integrated Circuit) are used to produce these silicon wafers. The part 130 comprises a processor CPU1 which is the master processor. It is connected by an internal bus 101 to a FLASH memory module 111, a DRAM memory module 109, a random number generator 112, an RS232 I / O port 151, a USB port 152, a smart card controller ( SmartCard) 153, a PCMCIA controller 154, a keyboard and LCD screen controller 155, a controller 113 of the slave processor CPU2 which is located in part 120, an interface 106, an external Bus interface 105, an internal programmable real-time clock 104, an internal microfuse system 102 which makes it possible to take out the internal bus 101 outside the microcontroller 100. The part 120 of the microcontroller 100 includes a watchdog 108. The CPU2 is connected by the internal bus 114 to a DRAM memory module 110, a DMA controller 107, and an interface 106. The slave CPU2 is controlled via the controller 113 and the interface 106. These last two electronic systems (113 and 106) are controlled only by the master processor CPUl. Thus, such an architecture allows the execution of programs of unknown origin without damaging the integrity of the information contained in the microcontroller 100.
Selon des modes particuliers de réalisation, le microcontrôleur 100 peut ne pas intégrer sur la même pastille de silicium tout ou partie des éléments suivants : Port E/S RS232 151, port USB 152, contrôleur de cartes à puces 153, contrôleur PCMCIA 154, contrôleur clavier et écran LCD 155. Selon des modes particuliers de réalisation non illustrés, et afin d'accélérer la vitesse de traitement d'informations, le microcontrôleur 100 peut comporter sur la même pastille de silicium un coprocesseur de cryptage adapté par rapport à la technique de cryptage DES. Bien entendu ce coprocesseur de cryptage sera intégré dans la partie 130 relié sur le bus interne 101. Selon la présente invention, l'horloge temps réel interne 104 est alimentée par une pile électrique 103 externe par rapport au microcontrôleur 100. Son fonctionnement est autonome. Cette horloge est intégrée sur ladite pastille de silicium afin d'empêcher des tentatives de contrôles électroniques faussant l'heure et la date qu'il fournit au CPUl . Compte tenu de la faible - 14 - consommation électnque de cette horloge, la pile électrique permet de fournir en continue le courant nécessaire au fonctionnement de cette horloge pendant toute la durée d'utilisation du microcontrôleur 100 comme organe central du lecteur LCL. Eventuellement, une procédure de mise à l'heure de l'horloge 104 pourra être effectuée par le serveur aSVR. L'horloge 104 permet de mesurer le temps d'utilisation des logiciels protégés et d'effectuer des opérations dépendant de la date et de l'heure.According to particular embodiments, the microcontroller 100 may not integrate all or part of the following elements on the same silicon wafer: I / O port RS232 151, USB port 152, chip card controller 153, PCMCIA controller 154, controller keyboard and LCD screen 155. According to particular embodiments not illustrated, and in order to accelerate the speed of information processing, the microcontroller 100 may include on the same silicon wafer an encryption coprocessor adapted with respect to the technique of DES encryption. Of course, this encryption coprocessor will be integrated in the part 130 connected to the internal bus 101. According to the present invention, the internal real time clock 104 is powered by an electric battery 103 external to the microcontroller 100. Its operation is autonomous. This clock is integrated on said silicon wafer in order to prevent attempts at electronic controls distorting the time and the date which it supplies to the CPUl. Given the low - 14 - power consumption of this clock, the electric battery makes it possible to continuously supply the current necessary for the operation of this clock throughout the duration of use of the microcontroller 100 as the central organ of the LCL reader. Optionally, a procedure for setting the time of the clock 104 may be carried out by the aSVR server. The clock 104 makes it possible to measure the time of use of the protected software and to carry out operations depending on the date and the time.
Le bus interne 101 est sorti vers l'extérieur du microcontrôleur 100, par l'intermédiaire du système de microfusibles 102. Selon une vaπante non illustrée, le système de microfusibles est évité en employant de la mémoire OTP EPROM interne. Cette vaπante permet les mêmes niveaux de sécuπté que l'utilisation du système de microfusibles 102.The internal bus 101 is out towards the outside of the microcontroller 100, via the microfuse system 102. According to a variant which is not illustrated, the microfuse system is avoided by using internal OTP EPROM memory. This variant allows the same levels of safety as the use of the microfuse system 102.
Le système de microfusibles 102 permet de réaliser un système de microcontrôleur programmable une seule fois. Les données nécessaires pour mettre en service les lecteurs LCL (clés de codages secrètes, numéros de série, identifiants, dates, heures), et le système d'exploitation du microcontrôleur 100 regroupant des programmes permettam aux lecteurs LCL de réaliser directement et/ou indirectement toutes les fonctionnalités relatives à la présente invention, sont programmés en usine dans la zone mémoire de mémoire non volatile (mémoire Flash 111). Le système d'exploitation est exécuté dans la mémoire DRAM 109.The microfuse system 102 allows a microcontroller system to be programmed only once. The data necessary to activate the LCL readers (secret coding keys, serial numbers, identifiers, dates, times), and the operating system of the microcontroller 100 grouping programs allowing the LCL readers to carry out directly and / or indirectly all the functionalities relating to the present invention are programmed in the factory in the memory area of non-volatile memory (Flash memory 111). The operating system is executed in the DRAM memory 109.
La réalisation de la présente invention utilise de la mémoire FLASH comme support de stockage permanente pour le microcontrôleur 100. Le choix d'une telle mémoire FLASH peut permettre une mise à jour très facile du système d'exploitation initialement programmé en usine.The embodiment of the present invention uses FLASH memory as a permanent storage medium for the microcontroller 100. The choice of such FLASH memory can allow very easy updating of the operating system initially programmed in the factory.
Selon la réalisation de la présente invention, les heures et les dates sont données, sauf mention contraire, par rapport au méπdien ongme des fuseaux horaires GMT (Greenwich Mean Time). Ainsi lors de la mise à l'heure durant la programmation du microcontrôleur 100 en usine, cette référence est pπse pour l'horloge interne 104 du microcontrôleur 100 des lecteurs LCL. Après programmation, le système de microfusibles est détruit ce qui empêche définitivement une nouvelle programmation du microcontrôleur 100, il n'y a plus alors d'accès directs à l'intérieur du microcontrôleur 100, car tous les contrôleurs et interfaces sont totalement sous le contrôle du processeur maître CPUl (selon la construction du microcontrôleur 100). Le système d'exploitation du microcontrôleur 100 ainsi programmé est automatiquement chargé par le processeur maître CPUl à chaque démaπage d'un lecteur LCL.According to the embodiment of the present invention, the times and the dates are given, unless otherwise stated, with respect to the medium range of the GMT (Greenwich Mean Time) time zones. Thus when setting the time during the programming of the microcontroller 100 in the factory, this reference is pπse for the internal clock 104 of the microcontroller 100 of the LCL readers. After programming, the microfuse system is destroyed, which definitively prevents new programming of the microcontroller 100, there is no longer any direct access to the interior of the microcontroller 100, because all the controllers and interfaces are completely under control. of the master processor CPUl (according to the construction of the microcontroller 100). The operating system of the microcontroller 100 thus programmed is automatically loaded by the master processor CPUl each time a LCL reader is dismantled.
Ainsi l'intégralité des informations qui sont stockées dans la mémoire interne du microcontrôleur 100 sont sécurisées contre toutes tentatives de contrôle électronique externe au microcontrôleur 100. Compte tenu des propriétés physiques d'une pastille de silicium, de sa taille et de son boîtier, il offre dans l'état actuel de l'art une très bonne protection physique et logique contre toutes tentatives d'intrusions non autoπsées dans les circuits internes du microcontrôleur 100. Selon des modes particuliers de réalisation, des techniques de protection supplémentaires peuvent toutefois être ajoutées autour du microcontrôleur 100. Une des techniques possibles concerne l'utilisation d'un dispositif électnque externe de protection de circuits intégrés, présenté - 15 - dans le brevet de la société IBM en 1990 (U.S. Patent 5,117,457).Thus all of the information which is stored in the internal memory of the microcontroller 100 is secured against any attempts at electronic control external to the microcontroller 100. Given the physical properties of a silicon wafer, its size and its housing, it offers in the current state of the art very good physical and logical protection against all attempts of unauthorized intrusion into the internal circuits of the microcontroller 100. According to particular embodiments, additional protection techniques can however be added around of the microcontroller 100. One of the possible techniques relates to the use of an external electrical device for protecting integrated circuits, presented - 15 - in the patent of the company IBM in 1990 (US Patent 5,117,457).
Le système électronique esclave 120 sert à exécuter des programmes venant de l'extérieur du microcontrôleur, c'est à dire n'appartenant pas au système d'exploitation qui a été chargé dans la mémoire FLASH 111 lors de la programmation du microcontrôleur 100. Il permet d'exécuter des programmes à l'abπ des attaques de virus informatiques éventuels. La sécurité est complète par rapport à ces attaques grâce à une protection physique caractérisée par une séparation logique d'une même pastille de silicium en deux parties 120 et 130 dont l'un 120 est esclave de l'autre 130.The slave electronic system 120 is used to execute programs coming from outside the microcontroller, ie not belonging to the operating system which was loaded in the FLASH memory 111 during the programming of the microcontroller 100. It allows programs to be run against possible computer virus attacks. Security is complete with respect to these attacks thanks to a physical protection characterized by a logical separation of the same silicon wafer into two parts 120 and 130 of which one 120 is a slave of the other 130.
Selon la réalisation de la présente invention, la zone mémoire DRAM 109 est strictement réservée à l'exécution du système d'exploitation du microcontrôleur 100 qui à été chargé en usine, lors de la procédure de programmation du microcontrôleur 100. Il sert aussi de mémoire tampon pour transférer les programmes et/ou données venant de l'extérieur du microcontrôleur vers la mémoire DRAM 110 via l'interface 106 contrôlée uniquement par le processeur maître CPUl . Les programmes venant de l'extérieur sont exécuter à partir de la mémoire DRAM 110, par le processeur esclave CPU2 contrôlé par le processeur maître CPUl via le contrôleur 113. Selon la réalisation de la présente invention, par rapport Putihsations des lecteurs LCL avec différents types d'ordinateur et de systèmes d'exploitations, et compte tenu de l'écriture des fonctions F0 précédemment décπtes, le CPU2 est un processeur Java (PicoJava) de la société Sun Microsystems. Cette caractéπstique rend le développement des fonctions {F0, Fι,...,F„ ...Fn} indépendant des ressources de calculs de l'ordinateur qui exécute un logiciel protégé selon la présente invention, et des ressources internes du LCL. De plus, le concepteur de logiciels protégés par la présente invention, peut tester le fonctionnement des fonctions {F0, Fι,...,F„ ...Fn} indépendamment du lecteur LCL avec un programme simulant une machine virtuelle JAVA.According to the embodiment of the present invention, the DRAM memory area 109 is strictly reserved for the execution of the operating system of the microcontroller 100 which has been loaded at the factory, during the programming procedure of the microcontroller 100. It also serves as memory buffer for transferring the programs and / or data coming from outside the microcontroller to the DRAM memory 110 via the interface 106 controlled only by the master processor CPU1. The programs coming from the outside are executed from the DRAM memory 110, by the slave processor CPU2 controlled by the master processor CPU1 via the controller 113. According to the embodiment of the present invention, compared to Putihsations of LCL readers with different types computer and operating systems, and taking into account the writing of the functions F 0 previously determined, the CPU2 is a Java processor (PicoJava) from the company Sun Microsystems. This characteristic makes the development of the functions {F 0 , Fι, ..., F „... F n } independent of the computing resources of the computer which is running software protected according to the present invention, and of the internal resources of the LCL . In addition, the designer of software protected by the present invention can test the operation of the functions {F 0 , Fι, ..., F „... F n } independently of the LCL reader with a program simulating a JAVA virtual machine.
Selon la réalisation de la présente invention, CPUl est un processeur du type 80386SX. Il peut donc utiliser directement via son bus interne 101 une grande quantité de mémoires internes et/ou externes. Sa capacité de calculs permet d'envisager une forte capacité de traitements d'informations en multitâche.According to the embodiment of the present invention, CPU1 is a processor of the type 80386SX. It can therefore use directly via its internal bus 101 a large amount of internal and / or external memories. Its computational capacity makes it possible to envisage a high capacity for information processing in multitasking.
Selon des modes particuliers de réalisation, le microcontrôleur peut ne pas utiliser de processeurs JAVA, mais un processeur du type 80386SX dont le système d'exploitation serait la machine virtuelle JAVA de la société Sun Microsystems que le CPUl chargerait à chaque nouvelle exécution de programmes dans la DRAM 110 afin d'éviter d'éventuelles attaques de virus informatiques.According to particular embodiments, the microcontroller may not use JAVA processors, but a processor of the 80386SX type, the operating system of which would be the JAVA virtual machine from the company Sun Microsystems, which the CPUl would load with each new execution of programs in DRAM 110 in order to avoid possible attacks of computer viruses.
De plus, selon la réalisation de la présente invention, la totalité des informations éventuelles de la mémoire DRAM 110 est effacée par CPUl avant chaque nouveau chargement de programmes qui doivent être exécutés par CPU2. CPUl met en pause CPU2 par l'intermédiaire du contrôleur de CPU2 113, et efface, par exemple par une désactivation momentanée des circuits qui composent le module de mémoires DRAM 110, le contenu de cette mémoire DRAM 110 grâce à l'interface 106. Ensuite, CPUl charge les paramètres d'exécution et le nouveau programme à exécuter dans la DRAM 110 directement grâce au contrôleur DMA 107. Ce chargement direct permet de ne pas - 16 - utiliser CPU2 et de permettre au CPUl de contrôler complètement la DRAM 110. Ainsi, après chargement du programme, CPUl donne alors la main à CPU2 par l'intermédiaire du contrôleur deIn addition, according to the embodiment of the present invention, all of the possible information from the DRAM memory 110 is erased by CPU1 before each new loading of programs which must be executed by CPU2. CPU1 pauses CPU2 via the CPU2 controller 113, and erases, for example by temporarily deactivating the circuits that make up the DRAM memory module 110, the content of this DRAM memory 110 through the interface 106. Then , CPUl loads the execution parameters and the new program to be executed in the DRAM 110 directly thanks to the DMA 107 controller. This direct loading makes it possible not to - 16 - use CPU2 and allow the CPUl to completely control the DRAM 110. Thus, after loading the program, CPUl then gives control to CPU2 via the controller
CPU2 113. CPU2 exécute alors le nouveau programme. Ainsi compte tenu de toutes ces mesures, si ce programme est un virus informatique volontairement insent dans une des fonctions de type F„ il ne pouπa toutefois porter aucunes atteintes au fonctionnement du microcontrôleur 100, m recopier vers l'exténeur des données non effacées concernants les anciennes fonctions qui ont été exécutées par CPU2 dans la mémoire DRAM 110. De plus, CPUl conserve le contrôle des accès aux données contenues sa partie 130. Cette procédure de chargement de programme et/ou de données dans la DRAM 110, est répétée pour chaque programme qui doit être exécuté par le processeur esclave CPU2CPU2 113. CPU2 then executes the new program. Thus taking into account all these measures, if this program is a computer virus voluntarily insent in one of the functions of type F „it can however not bring any damage to the functioning of the microcontroller 100, m to copy towards the exténor of the data not erased concerning the old functions which have been executed by CPU2 in the DRAM memory 110. In addition, CPUl retains control of access to the data contained in its part 130. This procedure for loading the program and / or data into the DRAM 110 is repeated for each program to be executed by the slave processor CPU2
Selon la réalisation de la présente invention, l'architecture présentée par la figure 3, permet d'empêcher un programme n'appartenant pas au système d'exploitation du microcontrôleur 100 d'effectuer des lectures et/ou modification dans la mémoire interne du système 130 intégré dans le microcontrôleur 100. Il permet aussi d'empêcher ces programmes de contrôler les interfaces et/ou contrôleurs du microcontrôleur 100, et donc d'empêcher des pirates de lire le contenu des mémoires sécuπsées physiquement et logiquement du système 130, intégrées dans le microcontrôleur 100.According to the embodiment of the present invention, the architecture presented in FIG. 3 makes it possible to prevent a program not belonging to the operating system of the microcontroller 100 from carrying out readings and / or modification in the internal memory of the system. 130 integrated in the microcontroller 100. It also makes it possible to prevent these programs from controlling the interfaces and / or controllers of the microcontroller 100, and therefore to prevent hackers from reading the content of the memories physically and logically secured from the system 130, integrated in the microcontroller 100.
De plus, selon la présente invention, l'interface bus externe 105 permet au microcontrôleur 100 de contrôler des péπphéπques externes reliés au bus externe 114. Ce bus permet d'ajouter au LCL des péπphéπques d'enregistrement comme par exemple un média d'enregistrement du type Flash Disk (mémoire FLASH utilisé un disque standard), un péπphéπque de communication réseauIn addition, according to the present invention, the external bus interface 105 allows the microcontroller 100 to control external devices connected to the external bus 114. This bus makes it possible to add to the LCL recording devices such as for example recording media. Flash Disk type (FLASH memory used a standard disk), a network communication device
L'architecture du microcontrôleur 100 permet une grande modularité de fonctionnement. Selon la réalisation de la présente invention, on connecte sur ce bus 114 un péπphéπque d'accès réseau Ethernet pour une communication en protocole TPC/IP. Selon le type de communication utilisé entre un lecteur LCL et un ordinateur donné, on pourra connecter sur ce bus un péπphéπque adéquat à cette communication. Ainsi, on peut ajouter un péπphéπque radio récepteur 22, pour utiliser un lecteur LCL dans le contexte 20 de la figure 1. L'usage de ce récepteur sera défini par la suite. Selon la réalisation de la présente invention, compte tenu du contrôleur PCMCIA 154 intégré dans le microcontrôleur 100, les péπphéπques utilisés peuvent être aussi des cartes PCMCIA utilisée par le microcontrôleur 100 pour toutes opérations relatives à la présente invention. Ces cartes PCMCIA peuvent être des cartes Ethernet PCMCIA, des cartes FLASH PCMCIA, un disque dur PCMCIA, une carte module de réceptions numéπques hertziennes PCMCIA Ces différentes cartes ne sont pas illustrées. L'usage du contrôleur PCMCIA permet d'ajouter à un lecteur LCL donné des périphéπques plus facilement par rapport au bus externe 114. Le port USB 150 sert à une connexion à grande vitesse de transmission et de réceptions entre un ordinateur, et un lecteur LCL donné. Il s'agit des contextes 30 et 20 - 17 - Le port d'E/S 151 permet selon la réalisation de la présente invention, de communiquer avec une carte CL.The architecture of the microcontroller 100 allows great modularity of operation. According to the embodiment of the present invention, an Ethernet network access device is connected to this bus 114 for communication in TPC / IP protocol. Depending on the type of communication used between an LCL reader and a given computer, it will be possible to connect to this bus a device suitable for this communication. Thus, one can add a radio receiver device 22, to use an LCL reader in the context 20 of FIG. 1. The use of this receiver will be defined below. According to the embodiment of the present invention, taking into account the PCMCIA controller 154 integrated in the microcontroller 100, the devices used can also be PCMCIA cards used by the microcontroller 100 for all operations relating to the present invention. These PCMCIA cards can be PCMCIA Ethernet cards, PCMCIA FLASH cards, a PCMCIA hard disk, a PCMCIA radio digital reception module card. These different cards are not illustrated. The use of the PCMCIA controller makes it easier to add peripherals to a given LCL reader compared to the external bus 114. The USB port 150 is used for a high-speed connection of transmission and reception between a computer and an LCL reader. given. These are contexts 30 and 20 - 17 - The I / O port 151 allows, according to the embodiment of the present invention, to communicate with a CL card.
En référence à la figure 5, la carte électronique CL 60 est construite autour d'un microcontrôleur 400 intégrant sur une même pastille de silicium un processeur CPU 405 relié par un bus interne 406 à un module de mémoires Flash 401, un module de mémoires OTP EPROMWith reference to FIG. 5, the electronic card CL 60 is constructed around a microcontroller 400 integrating on the same silicon wafer a processor CPU 405 connected by an internal bus 406 to a Flash memory module 401, an OTP memory module EPROM
407, un module de mémoires DRAM 404, un Port Séπe E/S RS232 403, un contrôleur de407, a DRAM memory module 404, an RS232 I / O RS232 Port 403, a
CompactFlash 402 de la société SanDisk.CompactFlash 402 from SanDisk.
Selon une vaπante non illustrée, le microcontrôleur intègre sur une même surface de pastille de silicium un coprocesseur de cryptage DES pour permettre au CPU d'effectuer des opérations de cryptage plus rapidement.According to a variant that is not illustrated, the microcontroller integrates on a same silicon wafer surface a DES encryption coprocessor to allow the CPU to perform encryption operations more quickly.
Selon la réalisation de la présente invention, les accès en lecture dans le module de mémoiresAccording to the embodiment of the present invention, the read accesses in the memory module
OTPEPROM directement de l'extérieur du microcontrôleur 400 sont suppπmés, afin de laisser tous les accès aux circuits internes du microcontrôleur 400 sous le contrôle unique du processeur CPUOTPEPROM directly from outside the microcontroller 400 are suppπmés, in order to leave all access to the internal circuits of the microcontroller 400 under the sole control of the CPU processor
405. La présente invention ne requiert pas l'utilisation d'une grande puissance de calcul au niveau du processeur CPU 405 intégré dans le microcontrôleur 400.405. The present invention does not require the use of a large computing power at the level of the processor CPU 405 integrated in the microcontroller 400.
Ce microcontrôleur 400 comporte un moyen de sécuπser la lecture et/ou la modification illicite des informations qui sont contenues dans sa mémoire interne. Une méthode de sécurisation des accès en mémoires est proposée dans le brevet U.S. Pat. 5,293,424 daté du 8 mars 1994.This microcontroller 400 includes a means of secuπser the illicit reading and / or modification of the information which is contained in its internal memory. A method for securing access to memories is proposed in the U.S. Pat. 5,293,424 dated March 8, 1994.
Selon la présente invention, la mémoire OTP EPROM interne 407 sert à stocker des clés de cryptage, des numéros de séπe d'identification, des dates, le système d'exploitation du microcontrôleur 400 réalisant directement et/ou indirectement des fonctions relatives à son utilisation selon la présente invention.According to the present invention, the internal OTP EPROM memory 407 is used to store encryption keys, identification serial numbers, dates, the operating system of the microcontroller 400 performing directly and / or indirectly functions relating to its use. according to the present invention.
Selon la réalisation de la présente invention, la mémoire FLASH interne 401 sert à stocker de manière permanente des données supplémentaires après la sortie d'usine de la carte CL. Elle sert aussi à stocker des programmes supplémentaires qui permettent au microcontrôleur 400 de réaliser directement et/ou indirectement des fonctions supplémentaires relatives à son utilisation selon la présente invention après la sortie d'usine de la carte CL.According to the embodiment of the present invention, the internal FLASH memory 401 is used to permanently store additional data after the CL card leaves the factory. It also serves to store additional programs which allow the microcontroller 400 to directly and / or indirectly perform additional functions relating to its use according to the present invention after leaving the CL card from the factory.
Selon la réalisation de la présente invention, et de manière générale, la carte CL est alimentée électriquement par LCL lorsqu'elle est connectée à LCL. Cette liaison électnque n'est pas illustrée. Selon la présente invention, le microcontrôleur 400 est protégé contre toute modification des informations qu'il contient. Il s'agit d'un microcontrôleur similaire à ceux des cartes à puces. Il est relié à un connecteur femelle 63 qui permet de communiquer par contact avec un lecteur LCL donné.According to the embodiment of the present invention, and in general, the CL card is electrically powered by LCL when it is connected to LCL. This electrical connection is not illustrated. According to the present invention, the microcontroller 400 is protected against any modification of the information that it contains. It is a microcontroller similar to that of smart cards. It is connected to a female connector 63 which makes it possible to communicate by contact with a given LCL reader.
Selon la présente invention, la carte CL est un appareil portatif de petite taille possédant une unité de stockage amovible de forte capacité.According to the present invention, the CL card is a small portable device having a removable storage unit of high capacity.
Selon la réalisation de la présente invention, le microcontrôleur 400 est relié à la sortie de son contrôleur de CompactFlash à un support de connexion 64 pour modules de mémoires de typeAccording to the embodiment of the present invention, the microcontroller 400 is connected to the output of its CompactFlash controller to a connection support 64 for memory modules of the type
CompactFlash. - 18 - Selon des modes particuliers de réalisation, le contrôleur de CompactFlash peut ne pas être intégré sur la même pastille de silicium que le microcontrôleur 400. Il peut aussi utiliser un autre média d'enregistrement telle que des modules DiskOnChip de la société M-Systems ou tout autre système propπétaire et amovible de mémoires non volatiles. Dans l'état actuel de l'art, des microcontrôleurs possédant les caractéπstiques du microcontrôleur 400 sont très nombreux. Selon la réalisation de la présente invention, un microcontrôleur 32 bits RISC présentant les caractéπstiques du microcontrôleur 400 à été intégré sur une même pastille de silicium avec le contrôleur de carte CompactFlash. Cette intégration utilise les technologies d'intégrations ASIC (Application Spécifie Integrated Circuit). Ainsi, l'intégralité des informations qui sont stockées dans la mémoire interne du microcontrôleur 400 est sécurisée contre toutes tentatives de contrôles électroniques externesCompactFlash. - 18 - According to particular embodiments, the CompactFlash controller may not be integrated on the same silicon wafer as the microcontroller 400. It can also use another recording medium such as DiskOnChip modules from the company M- Systems or any other proprietary and removable system of non-volatile memories. In the current state of the art, microcontrollers having the characteristics of microcontroller 400 are very numerous. According to the embodiment of the present invention, a 32-bit RISC microcontroller having the characteristics of the microcontroller 400 has been integrated on the same silicon wafer with the CompactFlash card controller. This integration uses ASIC (Application Specifies Integrated Circuit) integration technologies. Thus, all of the information which is stored in the internal memory of the microcontroller 400 is secured against any attempts at external electronic controls.
Selon la présente invention, la carte CL est un appareil portatif de petite taille. Il permet de transporter les informations concernant l'utilisation de logiciels protégés, indépendamment du lecteur électronique LCL. Elle est utilisée comme une clé d'accès à l'utilisation de logiciels protégés selon la présente invention. Sa portabilité permet à un utilisateur d'utiliser les logiciels dont il a acheté les droits d'utilisation (licences) sur tout ordinateur qui posséderait ces logiciels.According to the present invention, the CL card is a small portable device. It is used to transport information concerning the use of protected software, independently of the LCL electronic reader. It is used as an access key for the use of protected software according to the present invention. Its portability allows a user to use the software for which he has purchased the rights to use (licenses) on any computer that has this software.
Selon la réalisation de la présente invention, le format géométrique de CL est compπs entre celui de la carte CompactFlash est celui d'une carte PCMCIA.According to the embodiment of the present invention, the geometric format of CL is compπs between that of the CompactFlash card is that of a PCMCIA card.
En référence à la figure 6, un trou 62 a été placé dans un corn du boîtier 60 représentant CL. Ainsi, la carte CL peut être attachée à un porte-clés mécanique. Selon la réalisation de la présente invention, le numéro de séπe ID.c non illustré d'une carte CL donnée est impπmé sur le boîtier 60 de CL.With reference to FIG. 6, a hole 62 has been placed in a cornice of the housing 60 representing CL. Thus, the CL card can be attached to a mechanical keychain. According to the embodiment of the present invention, the non-illustrated ID.c number of a given CL card is printed on the CL housing 60.
De plus, selon la présente invention, en référence à la figure 7, le module de mémoiresIn addition, according to the present invention, with reference to FIG. 7, the memory module
CompactFlash 61 est détachable du boîtier 60 via le système de support de connexion 64 pour carte CompactFlash.CompactFlash 61 is detachable from the housing 60 via the connection support system 64 for CompactFlash card.
En référence à la figure 8 et selon la réalisation de la présente invention, la carte CL se connecte par contact avec un lecteur LCL via un jeu de deux connecteurs mâle femelle. Une carteWith reference to FIG. 8 and according to the embodiment of the present invention, the CL card is connected by contact with an LCL reader via a set of two male female connectors. A map
CL possède un connecteur femelle 63 qu'il connecte sur le connecteur 210 mâle correspondant du lecteur LCL. Ces jeux de connecteurs permettent une communication séné RS232 entre LCL et CL par contact. De plus, il permet d'apporter de l'énergie électnque aux circuits électroniques de la carte CL. Selon la réalisation de la présente invention, le lecteur LCL est alimenté sur secteur.CL has a female connector 63 which it connects to the corresponding male connector 210 of the LCL reader. These sets of connectors allow RS232 senna communication between LCL and CL by contact. In addition, it provides electrical energy to the electronic circuits of the CL card. According to the embodiment of the present invention, the LCL reader is supplied from the mains.
Selon des modes particuliers de réalisation non illustrés, CL peut avoir sa propre alimentation électnque pour permettre un fonctionnement autonome. Selon ces modes particuliers de réalisation, on peut intégrer dans CL un module de communication hertzienne ou infrarouge pour permettre des communications sans contacts avec LCL. Un exemple d'un tel dispositif est apporté par Hough dans U.S. Pat. No. 5,412,253. Bien sûre, le lecteur LCL possède dans ces conditions les ports de communications adéquats.According to particular embodiments not shown, CL can have its own power supply to allow autonomous operation. According to these particular embodiments, a radio or infrared communication module can be integrated into CL to allow contactless communications with LCL. An example of such a device is provided by Hough in U.S. Pat. No. 5,412,253. Of course, the LCL reader has the appropriate communication ports under these conditions.
Selon la réalisation de la présente invention, toutes les clés de codages écπtes en usine lors de - 19 - la programmation des appareils de type LCL et CL sont des clés de 128 bits définies par rapport à l'algorithme DES. Ainsi, compte tenu de la présente descπption de l'invention, un module de mémoires OTP EPROM de 256 kilooctets, un module de mémoires Flash de 64 kilooctets, un module de mémoire DRAM de 512 kilooctets ont été intégré avec le CPU 405 (processeur RISC), le Port Séπe E/S RS232 403 et le contrôleur de carte CompactFlash sur une même pastille de silicium. Bien entendu, d'autres tailles plus grandes de mémoires peuvent être utilisées en fonction des disponibilités des macros d'intégration ASIC et de leur coût. Ces quantités sont données par rapport à la présente réalisation.According to the embodiment of the present invention, all coding keys received in the factory during - 19 - the programming of LCL and CL type devices are 128-bit keys defined with respect to the DES algorithm. Thus, taking into account the present description of the invention, an OTP EPROM memory module of 256 kilobytes, a Flash memory module of 64 kilobytes, a DRAM memory module of 512 kilobytes have been integrated with the CPU 405 (RISC processor) ), the RS232 403 I / O Port and the CompactFlash card controller on the same silicon wafer. Of course, other larger sizes of memories can be used depending on the availability of the ASIC integration macros and their cost. These quantities are given relative to the present embodiment.
Par ailleurs, selon la réalisation de la présente invention, la taille retenue pour le module de mémoire Flash 111, est de 1 mégaoctets. La taille retenue pour le module de mémoire DRAM 109, est de 2 mégaoctets. La taille retenue pour le module de mémoire DRAM 110 est de 1 mégaoctet. Ces quantités sont données par rapport à la présente réalisation.Furthermore, according to the embodiment of the present invention, the size adopted for the Flash memory module 111 is 1 megabytes. The size used for the DRAM 109 memory module is 2 megabytes. The size used for the DRAM 110 memory module is 1 megabyte. These quantities are given relative to the present embodiment.
L'ensemble des programmes relatifs aux fonctionnalités du lecteur LCL constitue le système d'exploitation interne du microcontrôleur 100. Ce système d'exploitation est enregistré dans la mémoire Flash 111 du microcontrôleur 100 lors de sa programmation en usine.All the programs relating to the functionalities of the LCL reader constitute the internal operating system of the microcontroller 100. This operating system is saved in the Flash memory 111 of the microcontroller 100 when it is programmed in the factory.
L'ensemble des programmes relatifs aux fonctionnalités de la carte CL constitue le système d'exploitation interne du microcontrôleur 400. Ce système d'exploitation est enregistré dans la mémoire OTP EPROM 407 du microcontrôleur 400 lors de sa programmation en usine.All of the programs relating to the functionalities of the CL card constitute the internal operating system of the microcontroller 400. This operating system is saved in the OTP EPROM memory 407 of the microcontroller 400 when it is programmed in the factory.
Selon la présente invention, les communications entre LCL et CL sont sécurisées. La présente invention concerne l'utilisation d'une méthode d'authentification permettant à un groupe d'appareils quelconques de se reconnaître à l'aide de cette méthode. Cette authentification permet que seuls les appareils relatifs à la présente invention, certifiés par l'organisme qui gère le serveur aSVR, puissent fonctionner ensemble. Cette méthode selon la présente invention, permet d'empêcher que des appareils non reconnus par l'organisme qui gère les appareils relatifs à la présente invention, ne puissent fonctionner avec ceux reconnus. Cette méthode empêche ainsi des appareils pirates d'effectuer des lectures de données dans les mémoires électroniques sécuπsées des appareils relatifs à la présente invention.According to the present invention, communications between LCL and CL are secure. The present invention relates to the use of an authentication method allowing any group of devices to recognize each other using this method. This authentication allows that only the devices relating to the present invention, certified by the organization which manages the aSVR server, can operate together. This method according to the present invention makes it possible to prevent devices which are not recognized by the body which manages the devices relating to the present invention from being able to operate with those recognized. This method thus prevents pirate devices from carrying out data readings in the secure electronic memories of the devices relating to the present invention.
La présente invention concerne des appareils qui ne peuvent être utilisés que pendant une durée déterminer dans le temps. Pour la réalisation, les appareils LCL et CL sont tous caractéπsés par une date DB de mise en service et une date DE qui indique que l'utilisation de ces appareils relatifs à la présente invention, expire fin DE. DB et DE constitue une information publique non modifiable.The present invention relates to apparatuses which can only be used for a determined period of time. For the realization, the LCL and CL devices are all characterized by a date DB of commissioning and a date DE which indicates that the use of these devices relating to the present invention, expires at the end of DE. DB and DE constitutes non-modifiable public information.
Ainsi, selon la réalisation de la présente invention, la date DB du lecteur LCL, notée DB.d, est écnte lors de la programmation en usine du microcontrôleur 100, dans une zone libre de la mémoire Flash 111. De plus, la date DE d'un lecteur LCL, notée DE.d, est écnte lors de la programmation en usine du microcontrôleur 100, dans une zone libre de la mémoire Flash 111.Thus, according to the embodiment of the present invention, the date DB of the LCL reader, denoted DB.d, is stopped during the factory programming of the microcontroller 100, in a free area of the Flash memory 111. In addition, the date DE an LCL reader, denoted DE.d, is switched off during the factory programming of the microcontroller 100, in a free area of the Flash memory 111.
De plus, selon la réalisation de la présente invention, la date DB de CL, notée DB.c, est écnte lors de la programmation en usine du microcontrôleur 400, dans une zone libre de la mémoire - 20 - Flash 401. De plus, la date DE d'une carte CL, notée DE.c, est écnte lors de la programmation en usine du microcontrôleur 400, dans une zone libre de la mémoire OTPEPROM 407.In addition, according to the embodiment of the present invention, the date DB of CL, denoted DB.c, is stopped during the factory programming of the microcontroller 400, in a free area of the memory. - 20 - Flash 401. In addition, the date DE of a card CL, denoted DE.c, is counted during the factory programming of the microcontroller 400, in a free area of the memory OTPEPROM 407.
Ainsi, selon la réalisation de la présente invention, l'organisme qui gère aSVR génère pour chaque semaine du calendner international qui commence le lundi et qui se termine fin dimanche une clé kLi. La clé kLl est la première clé qui a été générée pour la première semaine où les premiers appareils relatifs à la présente invention, ont été mise en service. La clé kLi indique la clé de la semaine î par rapport à cette première semaine. Toutes ces clés sont entièrement créées et gardées secrètement par l'organisme qui gère le serveur aSVR afin de garantir la sécuπté d'utilisation des appareils relatifs à la présente invention. Selon la réalisation de la présente invention, pour une carte CL considérée, lors de la procédure de programmation de son microcontrôleur 400, la clé secrète de codage kLj est écnte dans une zone libre de la mémoire OTPEPROM 407. Cette clé secrète kLj coπespond à la semaine j par rapport à la première semaine où les premiers appareils relatifs à la présente invention, ont été mise en service. La clé kLj a été choisie de telle sorte que la semaine j contient la date DB de la mise en service de cette carte CL. Cette clé secrète ne sera jamais révélée à l'utilisateur. Par ailleurs, elle est connue uniquement par l'organisme qui gère le serveur aSVR.Thus, according to the embodiment of the present invention, the organization which manages aSVR generates for each week an international calendar which begins on Monday and which ends at the end of Sunday a key kLi. The key kLl is the first key which was generated for the first week in which the first devices relating to the present invention were put into service. The key kLi indicates the key of the week î in relation to this first week. All these keys are entirely created and kept secretly by the organization which manages the aSVR server in order to guarantee the safety of use of the devices relating to the present invention. According to the embodiment of the present invention, for a CL card considered, during the programming procedure of its microcontroller 400, the secret coding key kLj is entered in a free area of the OTPEPROM memory 407. This secret key kLj corresponds to the week d compared to the first week in which the first devices relating to the present invention were put into service. The key kLj has been chosen so that week d contains the date DB of the commissioning of this card CL. This secret key will never be revealed to the user. Furthermore, it is known only by the organization which manages the aSVR server.
De plus, selon la réalisation de la présente invention, pour un lecteur LCL considéré, lors de la procédure de programmation de son microcontrôleur 100, la liste de clés secrètes de codage {kL1+1,kL1+2,kL1+3,...,kL,+m} correspondant à toutes les clés associées aux semâmes comprises entre la date DB.d diminuée de 1460 jours et la date DE.d, sont stockées dans la mémoire Flash 111 du microcontrôleur 100. Bien entendu, leurs adresses mémoires suivent une convention adoptée pour permettre de les retrouver dans la mémoire 111. Ces clés secrètes sont par ailleurs connues uniquement par l'organisme qui gère le serveur aSVR. Toutes ces clés secrètes qui viennent d'être citées, sont générées par rapport à l'algorithme de cryptage DES. Chacune de ces clés secrètes a une taille de 128 bits.In addition, according to the embodiment of the present invention, for an LCL reader considered, during the programming procedure of its microcontroller 100, the list of secret coding keys {kL 1 + 1 , kL 1 + 2 , kL 1 + 3 , ..., kL, + m } corresponding to all the keys associated with the semmes between the date DB.d reduced by 1460 days and the date DE.d, are stored in the Flash memory 111 of the microcontroller 100. Of course, their memory addresses follow a convention adopted to enable them to be found in memory 111. These secret keys are moreover known only by the organization which manages the aSVR server. All these secret keys which have just been mentioned are generated in relation to the DES encryption algorithm. Each of these secret keys has a size of 128 bits.
Selon la réalisation de la présente invention, la durée qui sépare une date de mise en service DB et une date de fin d'utilisation DE des appareils relatifs à la présente invention, est de 1461 jours (4 ans). Ainsi {kL1+ι,kL1+2,kL1+3,...,kL1+m} n'occupe pas plus de 7 000 octets (approximation volontairement excessive) dans la mémoire Flash du microcontrôleur 100 d'un LCL donnée. La figure 4 permet de comprendre le choix du nombre de clés dans la liste {kL1+ι,kL1+2,kL1+3,...,kL1+m} . Ce nombre est du à l'existence des appareils les plus anciens, encore en service à la date DB.d de mise en service du LCL considéré Compte tenu de la capacité des mémoires Flash intégrées au sein d'un microcontrôleur 100, la totalité des clés {kL1+1,kL1+2,kL!+3,...,kL1+m} peut donc être stockée avec le système d'exploitation microcontrôleur 100 Ainsi, la réalisation de ladite procédure d'authentification est basée sur l'utilisation judicieuse de toutes ces clés. Le nombre de clés employées permet à ce que si une clé venait à être cassée, le fonctionnement hé à Pauthentification par rapport à cette clé, ne mette pas en échec l'ensemble du système relatif à la présente invention. - 21 - En référence à la figure 10, pour l'utilisation de LCL, dans un premier temps, un lecteur LCL ne peut fonctionner que si la date courante indiquée par l'horloge temps réel interne 104 du microcontrôleur 100 de LCL est comprise entre les dates DB.d et DE.d du même LCL. Autrement la suite ne peut aboutir 551. Cette condition est illustrée sur la figure 10 par l'élément 501 Dans un deuxième temps, en référence à l'étape 502, pour mettre en fonctionnement un lecteur LCL, l'utilisateur doit effectuer une opération d'identification détaillée par la suite.According to the embodiment of the present invention, the duration which separates a date of putting into service DB and a date of end of use DE of the devices relating to the present invention is 1461 days (4 years). Thus {kL 1+ ι, kL 1 + 2 , kL 1 + 3 , ..., kL 1 + m } occupies no more than 7000 bytes (deliberately excessive approximation) in the Flash memory of the microcontroller 100 of a LCL given. FIG. 4 makes it possible to understand the choice of the number of keys in the list {kL 1+ ι, kL 1 + 2 , kL 1 + 3 , ..., kL 1 + m }. This number is due to the existence of the oldest devices, still in service on the date DB.d of commissioning of the LCL considered. Given the capacity of the Flash memories integrated within a microcontroller 100, all of the keys {kL 1 + 1 , kL 1 + 2 , kL ! +3 , ..., kL 1 + m } can therefore be stored with the microcontroller operating system 100 Thus, the implementation of said authentication procedure is based on the judicious use of all these keys. The number of keys used makes it possible that if a key were to be broken, the functioning of authentication against this key does not defeat the entire system relating to the present invention. - 21 - With reference to FIG. 10, for the use of LCL, initially, an LCL reader can only operate if the current date indicated by the internal real time clock 104 of the LCL microcontroller 100 is between the dates DB.d and DE.d of the same LCL. Otherwise the continuation cannot succeed 551. This condition is illustrated in FIG. 10 by the element 501 In a second step, with reference to step 502, to put an LCL reader into operation, the user must perform an operation d detailed identification thereafter.
Dans un troisième temps, pour mettre en fonctionnement une carte CL, l'utilisateur doit connecter d'abord sa carte CL (étape 503) sur le support de type mâle de connexion 210 possédé par le lecteur LCL, pour permettre une communication par contact entre le lecteur LCL et la carte CL. Le support de type mâle 210 du lecteur LCL est relié au port E/S RS232 151 du microcontrôleur 100. La carte CL possède donc un connecteur femelle 63 relié au port E/S RS232Thirdly, to put a CL card into operation, the user must first connect his CL card (step 503) to the male connection type support 210 owned by the LCL reader, to allow communication by contact between LCL reader and CL card. The male type support 210 of the LCL reader is connected to the RS232 I / O port 151 of the microcontroller 100. The CL card therefore has a female connector 63 connected to the RS232 I / O port
403 de son microcontrôleur 400. L'utilisateur doit effectuer ensuite une opération d'identification décπte par la suite.403 of its microcontroller 400. The user must then carry out an identification operation afterwards.
Selon la réalisation de la présente invention, dans un quatπème temps 504, le microcontrôleur 400 de la carte CL envoie sous une forme non codée sa date de mise en service DB.c au microcontrôleur du LCL via ladite liaison RS232. Si un pirate modifier la valeur DB.c transmise, la suite de la présente description ne pourra aboutir avec succès.According to the embodiment of the present invention, in a fourth step 504, the microcontroller 400 of the CL card sends in an uncoded form its date of commissioning DB.c to the LCL microcontroller via said RS232 link. If a hacker modifies the transmitted DB.c value, the rest of this description cannot be successful.
De l'autre côté et après réception de DB.c, dans un cinquième temps 505, le processeur CPUl du microcontrôleur 100 de LCL effectue une correspondance entre DB.c et une clé secrète notée kLj.d éléments de la liste {kL1+ι,kL1+2,kL1+3,...,kL,+m} de telle sorte que la semaine j associée à kLj.d selon la présente invention contienne DB.c.On the other side and after reception of DB.c, in a fifth step 505, the processor CPUl of the microcontroller 100 of LCL carries out a correspondence between DB.c and a secret key noted kLj.d elements of the list {kL 1+ ι, kL 1 + 2 , kL 1 + 3 , ..., kL, + m } so that the week j associated with kLj.d according to the present invention contains DB.c.
Dans un sixième temps 506, le processeur CPUl génère une clé kCS de 128 bits par rapport au cryptage DES, à l'aide de son générateur de nombres aléatoires 112. kCS est conservées secrètement dans la mémoire interne DRAM 109 du microcontrôleur 100. Selon la présente invention, kCS est codée ensuite par kLj.d puis envoyée sous sa forme codée, notée ekCS, vers le microcontrôleur de CL.In a sixth step 506, the processor CPUl generates a 128-bit key kCS with respect to the DES encryption, using its random number generator 112. kCS is secretly stored in the internal memory DRAM 109 of the microcontroller 100. According to the present invention, kCS is then coded by kLj.d then sent in its coded form, denoted ekCS, to the microcontroller of CL.
Dans un septième temps 507, à réception de ekCS, la carte CL tente de décoder ekCS avec sa clé secrète kLj. Selon la présente invention, si le décodage réussit, ladite procédure d'authentification a réussi. Le microcontrôleur de CL utilisera alors la clé kCS pour envoyée des informations codées vers LCL, et pour décodée des informations venant par la suite de LCL. Le microcontrôleur 400 de la carte CL stocke dans sa mémoire interne sécurisée DRAM 404 cette clé secrète kCS.In a seventh step 507, on reception of ekCS, the card CL attempts to decode ekCS with its secret key kLj. According to the present invention, if the decoding succeeds, said authentication procedure has succeeded. The microcontroller of CL will then use the key kCS to send coded information to LCL, and to decode information coming afterwards from LCL. The microcontroller 400 of the card CL stores in its secure internal memory DRAM 404 this secret key kCS.
Ainsi, selon la réalisation de la présente invention, dans un huitième temps 508, le microcontrôleur de CL envoie ensuite la date d'expiration DE.c associée à CL sous une forme codée par la clé kCS vers le microcontrôleur du lecteur LCL.Thus, according to the embodiment of the present invention, in an eighth step 508, the microcontroller of CL then sends the expiration date DE.c associated with CL in a form coded by the key kCS to the microcontroller of the LCL reader.
A réception, dans un neuvième temps 509, CPUl vénfie si DE.c n'est pas dépassé par rapport à la date courante donnée par l'horloge interne du microcontrôleur 100 de LCL. Si cette date est dépassée, LCL refusera de poursuivre la communication avec la carte CL 552. Sinon, une - 22 - commumcation sécuπsée entre LCL et CL peut avoir heu 559.On reception, in a ninth time 509, CPU1 checks if DE.c is not exceeded with respect to the current date given by the internal clock of the LCL microcontroller 100. If this date is exceeded, LCL will refuse to continue communication with the CL 552 card. Otherwise, a Secuπsée commumcation between LCL and CL can be er 559.
Ainsi, chaque session de communication entre LCL et CL qui commence par leur connexion par contact et qui se termine lorsque l'une des conditions suivantes est remplie : CL est déconnecté de LCL, la date courante indiquée par l'horloge 104 a dépassé la date DE.c, la date courante indiquée par l'horloge 104 a dépassé la date DE.d. La déconnexion de la carte CL du lecteur LCL est marquée par l'absence de charge à la sortie de l'alimentation électrique utilisée pour alimenter les circuits électroniques de la carte CL.Thus, each communication session between LCL and CL which begins with their contact connection and which ends when one of the following conditions is met: CL is disconnected from LCL, the current date indicated by the clock 104 has exceeded the date DE.c, the current date indicated by the clock 104 has exceeded the date DE.d. The disconnection of the CL card from the LCL reader is marked by the absence of load at the output of the power supply used to supply the electronic circuits of the CL card.
De plus, selon la présente invention, toutes les communications entre le lecteur LCL et la carteIn addition, according to the present invention, all communications between the LCL reader and the card
CL sont sécurisées par l'utilisation d'une méthode de cryptage symétnque utilisant une clé secrète, notée kCS.CL are secured by the use of a symmetrical encryption method using a secret key, noted kCS.
Selon la réalisation de la présente invention, l'utilisateur qui désire faire fonctionner un appareil relatif à la présente invention, doit saisir sur le clavier de son lecteur LCL contrôlé par le microcontrôleur 100 par l'intermédiaire du contrôleur de claviers et écrans LCD 155, un code PIN. Au moment de sa saisie, les chiffres tapés seront mscnts sur l'écran LCD non illustré et contrôlé par le contrôleur 155. Ce code lui a été fourni lors de la première acquisition (l'achat) de l'appareil en question. Le code PIN est un code numéπque de 5 chiffres associé à chaque appareil. Il doit être conservé secrètement par le propnétaire de l'appareil correspondant. L'utilisation d'un tel code est similaire à celui utilisé avec des méthodes d'identification présente dans le monde des cartes à puces (SmartCard) dans l'état actuel de l'art. Les étapes qui permettent de vérifier la saisie correcte du code PIN associé à chaque appareil selon la présente invention, sont évidente et ne sont pas détaillée dans la présente descnption de l'invention. Il faut toutefois ajouter que le code PIN d'une carte CL est saisi sur le clavier du LCL, puis transmis sous sa forme non codée, vers le microcontrôleur 400 de la carte CL, via la liaison séné RS232 présente entre une carte CL donnée et un lecteur LCL donnée. Il est donc sous-entendu, sauf mention contraire, dans un fonctionnent correct d'un appareil relatif à la présente invention, que la saisie du code PIN a été menée avec succès.According to the embodiment of the present invention, the user who wishes to operate an apparatus relating to the present invention, must type on the keyboard of his LCL reader controlled by the microcontroller 100 via the keyboard and LCD monitor controller 155, a PIN code. At the time of its entry, the numbers typed will be mscnts on the LCD screen not illustrated and controlled by the controller 155. This code was supplied to it during the first acquisition (purchase) of the device in question. The PIN code is a 5-digit digital code associated with each device. It must be kept secretly by the owner of the corresponding device. The use of such a code is similar to that used with identification methods present in the world of smart cards in the current state of the art. The steps which make it possible to verify the correct entry of the PIN code associated with each device according to the present invention are obvious and are not detailed in the present description of the invention. However, it should be added that the PIN code of a CL card is entered on the LCL keyboard, then transmitted in its uncoded form, to the microcontroller 400 of the CL card, via the RS232 senna link present between a given CL card and a given LCL reader. It is therefore understood, unless otherwise stated, in the correct functioning of an apparatus relating to the present invention, that the entry of the PIN code has been carried out successfully.
La présente invention concerne l'utilisation d'une carte CL comme média d'enregistrement portatif, sécurisé contenant des fichiers d'autonsation d'utilisation de tous les logiciels protégés selon la présente invention, et acquis légalement par l'utilisateur et séparément de l'acquisition du logiciel (le média d'enregistrement). Ces fichiers ont été enregistrés dans la carte CL en suivant une procédure d'acquisition de logiciels décπte par la suite.The present invention relates to the use of a CL card as a portable, secure recording medium containing authorization files for the use of all the software protected according to the present invention, and acquired legally by the user and separately from the acquisition of the software (the recording medium). These files were recorded in the CL card by following a software acquisition procedure subsequently determined.
Selon la réalisation de la présente invention, un fichier d'autoπsations d'utilisation d'un logiciel donné ayant le numéro de séné S#, noté Fιch.S#, est défini comme un fichier binaire dont les bits de données sont ordonnés de la façon suivante : S# du logiciel (128 bits), ID.c (128 bits), nombre de licences (L#.S# : 16 bits), dernière utilisation (DR.S# : Jour 5 bits, mois 4 bits, année 12 bits, heure 5 bits, minutes 6 bits, secondes 6 bits), première utilisation (DP.S# : date et heure 38 bits), durée d'utilisation courant (DU.S# en minutes : 24 bits), nombre d'exécutions du logiciel (28 bits), données diverses (Mise :1024 bits), clé kEL.S (128 bits), clé kX.S# (128 bits). Le total est de - 23 - 1680 bits, soit un fichier de 210 octets.According to the embodiment of the present invention, a file of authorizations for using a given software having the number of senna S #, noted Fιch.S #, is defined as a binary file whose data bits are ordered from the as follows: S # of software (128 bits), ID.c (128 bits), number of licenses (L # .S #: 16 bits), last use (DR.S #: Day 5 bits, month 4 bits, 12-bit year, 5-bit hour, 6-bit minutes, 6-bit seconds), first use (DP.S #: 38-bit date and time), current usage time (DU.S # in minutes: 24 bits), number software execution (28 bits), miscellaneous data (stake: 1024 bits), kEL.S key (128 bits), kX.S # key (128 bits). The total is - 23 - 1680 bits, a 210 byte file.
Selon la réalisation de la présente invention, une carte de type CompactFlash 61 distribuée par la société SanDisk d'une capacité de stockage de 4 mégaoctets est insérée comme indiqué sur la figure 7 sur un support de connexion 64 adapté et présent sur la carte CL, pour permettre la connexion de cette carte CompactFlash vers le contrôleur de cartes CompactFlash 402 du microcontrôleur 400. Les cartes CompactFlash sont compatibles avec le standard ATA des cartesAccording to the embodiment of the present invention, a CompactFlash 61 type card distributed by the company SanDisk with a storage capacity of 4 megabytes is inserted as indicated in FIG. 7 on a suitable connection support 64 present on the CL card, to allow the connection of this CompactFlash card to the CompactFlash 402 card controller of the microcontroller 400. The CompactFlash cards are compatible with the ATA standard of cards
PCMCIA dans l'état actuel de l'art. Ces modules de mémoires CompactFlash sont utilisés comme des disques de stockage d'informations. Les instructions nécessaires concernant l'écriture du driver qui permet au microcontrôleur 400 d'utiliser le module CompactFlash de 4 mégaoctets sont donnée par le standard ATA. Ce driver non illustré, permet selon la réalisation de la présente invention, au microcontrôleur d'effectuer les opérations suivantes sur la carte CompactFlash : lectures de fichiers, modifications de fichiers, créations de fichiers.PCMCIA in the current state of the art. These CompactFlash memory modules are used as information storage disks. The necessary instructions concerning the writing of the driver which allows the microcontroller 400 to use the CompactFlash module of 4 megabytes are given by the ATA standard. This driver, not illustrated, allows, according to the embodiment of the present invention, the microcontroller to perform the following operations on the CompactFlash card: file readings, file modifications, file creations.
Ainsi, selon la réalisation de la présente invention, la carte CL permet de stocker plus de 10000 fichiers d'autorisations d'utilisation de logiciels protégés selon la présente invention. Ce nombre est largement suffisant pour tous les logiciels protégés par la présente invention, qu'un utilisateur peut acquérir légalement. Toutefois, l'utilisateur pouπa changer de cartes CompactFlash pour une plus grande capacité de stockage. Compte tenu de la norme ATA, ce changement ne nécessite ni de mise à jour des programmes système du microcontrôleur 400, ni de changement du boîtier 60 et du support pour carte CompactFlash 64. Selon la présente invention, les informations stockées sur la carte CL, concernant les autorisations d'utilisation de logiciels protégés selon la présente invention, ne dépendent pas du média d'enregistrement mais de l'entité carte électronique CL. Ainsi, un utilisateur d'une carte CL pourra utiliser plusieurs cartes CompactFlash pour stocker des fichiers de type Fich.S#. Les données qui sont stockées sur une première carte CompactFlash associée à une carte CL donnée peuvent être transférées vers une deuxième carte CompactFlash. Cette opération est effectuée à l'aide du programme PGM précédemment cité.Thus, according to the embodiment of the present invention, the CL card makes it possible to store more than 10,000 authorization files for the use of protected software according to the present invention. This number is more than sufficient for all the software protected by the present invention, which a user can acquire legally. However, the user can change CompactFlash cards for greater storage capacity. Taking into account the ATA standard, this change does not require either updating the system programs of the microcontroller 400, nor any change in the housing 60 and the support for the CompactFlash card 64. According to the present invention, the information stored on the card CL, concerning the authorizations to use protected software according to the present invention, do not depend on the recording medium but on the electronic card entity CL. Thus, a user of a CL card will be able to use several CompactFlash cards to store files of the Fich.S # type. Data that is stored on a first CompactFlash card associated with a given CL card can be transferred to a second CompactFlash card. This is done using the aforementioned PGM program.
Selon la présente invention, les fichiers d'autorisations Fich.S# sont stockés sous une forme codée, notées eFich.S#, avec une clé secrète kS.c de 128 bits par rapport à la technique de cryptage DES, dans la carte CompactFlash utilisée comme un disque de stockage. La clé secrète kS.c a été inscrite dans la mémoire OTPEPROM 407 lors de la programmation en usine du microcontrôleur 400.According to the present invention, the Fich.S # authorization files are stored in an encoded form, denoted eFich.S #, with a 128-bit kS.c secret key compared to the DES encryption technique, in the CompactFlash card. used as a storage disk. The secret key kS.c was written to the OTPEPROM memory 407 during the factory programming of the microcontroller 400.
Ainsi, eFich.S# ne pouπa être utilisé que par la carte CL qui l'a créé, car la clé secrète kS.c est différente pour chaque carte CL mise en service.Thus, eFich.S # can only be used by the CL card which created it, because the secret key kS.c is different for each CL card put into service.
De plus, la présente invention concerne une méthode qui permet de séparer l'acquisition du média d'enregistrement contenant un ou des logiciel(s) protégé(s) par la présente invention, du droit d'utilisation de ce ou ces logiciel(s).In addition, the present invention relates to a method which makes it possible to separate the acquisition of the recording medium containing one or more software (s) protected by the present invention, from the right to use this or these software (s) ).
Selon la réalisation de la présente invention, les médias d'enregistrement de logiciels protégés selon la présente invention, sont librement distribués. Cependant, un logiciel protégé selon la - 24 - présente invention, ne peut être exécuté uniquement qu'après une opération d'acquisition légale d'un fichier Fich.S# d'autorisation d'utilisation de ce logiciel numéroté S#. Ainsi, en référence à la figure 2, lorsqu'un utilisateur désire obtenir une ou des licences d'utilisation, il doit connecter tout d'abord son lecteur LCL avec le serveur aSVR, à l'aide du programme PGM. Selon la réalisation de la présente invention, cette connexion est établie via le réseau Internet.According to the embodiment of the present invention, the recording media of software protected according to the present invention are freely distributed. However, software protected according to the - 24 - present invention, can only be executed after a legal acquisition of a Fich.S # file authorizing the use of this software numbered S #. Thus, with reference to FIG. 2, when a user wishes to obtain one or more user licenses, he must first connect his LCL reader with the aSVR server, using the PGM program. According to the embodiment of the present invention, this connection is established via the Internet.
Pour commencer à acquérir une autorisation (une ou des licence(s)) d'utilisations d'un logiciel numéroté S# et protégés selon la présente invention, l'utilisateur commence par connecter sa carteTo begin to acquire an authorization (one or more license (s)) to use software numbered S # and protected according to the present invention, the user begins by connecting his card
CL sur ledit lecteur LCL donné. L'utilisateur doit maintenir sa carte CL connectée au moins jusqu'à la fin de la présente procédure d'achat en ligne (avec connexion). On suppose que l'utilisateur veut acquérir NL nombre(s) de licences d'utilisation de ce logiciel numéroté S#. Il saisit ensuite le code PIN de sa carte CL sur le clavier dudit lecteur LCL. L'opération d'authentification précédemment citée doit aboutir avec succès pour continuer.CL on said given LCL reader. The user must keep his CL card connected at least until the end of this online purchasing procedure (with connection). It is assumed that the user wants to acquire NL number (s) of licenses to use this software numbered S #. He then enters the PIN code of his CL card on the keyboard of the LCL reader. The above-mentioned authentication operation must be successful to continue.
Ainsi, en référence à la figure 11 , selon la réalisation de la présente invention, au début de la connexion avec aSVR, ledit lecteur LCL communique à aSVR son numéro ID.d (étape 601). Dans ce contexte de communication, aSVR est le système distant représenté sur la figure 2. Bien sûre, les opérations commerciales qui sous-entend que aSVR accepte une communication avec ledit lecteur LCL sont sous-entendues. Le programme PGM envoie ensuite vers aSVR le numéro de série S# dudit logiciel, saisie par l'utilisateur (acheteur), et le nombre NL. Ces deux informations sont envoyées sous une forme codée par la clé secrète kT.d du lecteur LCL de l'utilisateur. De plus, la réalisation de la présente invention considère que le concepteur dudit logiciel au numéro de série S# dispose lui aussi d'un serveur noté dSVR, non illustré et relié par le réseau Internet à aSVR. Le serveur dSVR est connecté de son côté avec le lecteur LCL dudit concepteur. Bien entendu, cela suppose que le système d'exploitation d'un lecteur LCL soit programmé de telle sorte qu'il puisse répondre à certaine requête relative à la présente procédure d'achat du serveur dSVR. Ainsi (étape 602), dSVR communique ensuite à aSVR le numéro ID.d de son lecteur LCL qui a servi à créer le logiciel S# protégé selon la présente invention. La communication entre dSVR et le lecteur LCL se passe comme sur la figure 2 où l'ordinateur 50 est représenté ici par le serveur dSVR.Thus, with reference to FIG. 11, according to the embodiment of the present invention, at the start of the connection with aSVR, said LCL reader communicates to aSVR its ID.d number (step 601). In this communication context, aSVR is the remote system represented in FIG. 2. Of course, the commercial operations which implies that aSVR accepts a communication with said LCL reader are implied. The PGM program then sends to aSVR the serial number S # of said software, entered by the user (buyer), and the number NL. These two pieces of information are sent in a form encoded by the secret key kT.d of the user's LCL reader. In addition, the embodiment of the present invention considers that the designer of said software with the serial number S # also has a server noted dSVR, not illustrated and connected by the Internet to aSVR. The dSVR server is connected in turn with the LCL reader of the designer. Of course, this supposes that the operating system of an LCL reader is programmed so that it can respond to certain requests relating to this procedure for purchasing the dSVR server. Thus (step 602), dSVR then communicates to aSVR the ID.d number of its LCL reader which was used to create the protected S # software according to the present invention. The communication between dSVR and the LCL reader takes place as in FIG. 2 where the computer 50 is represented here by the dSVR server.
Pour permettre une communication sur deux niveaux, le lecteur LCL de l'utilisateur communique à aSVR (étape 603) sous une forme codée une clé publique, notée kP. La clé kP est codée avec la clé secrète kT.d du LCL de l'utilisateur. kP est une clé publique, relative à la technique de cryptage RSA (Rivest, Shamir et Adleman). La clé kP est créée avec sa clé privée kV pour l'occasion (dynamiquement) et effacée à la fin de cette procédure d'acquisition de licences. La forme codée par ladite clé kT.d de kP est notée ekP.kT. De plus, il faut noter que aSVR ne connaît pas la valeur de la clé privée kV associée à kP. Le codage systématique des informations lors de la communication évite d'éventuelles modifications des données échangées lors de leur transfert.To allow communication on two levels, the user's LCL reader communicates to aSVR (step 603) in an encoded form a public key, denoted kP. The key kP is coded with the secret key kT.d of the user's LCL. kP is a public key, relating to the RSA encryption technique (Rivest, Shamir and Adleman). The kP key is created with its private kV key for the occasion (dynamically) and erased at the end of this license acquisition procedure. The form coded by said kT.d key of kP is denoted ekP.kT. In addition, it should be noted that aSVR does not know the value of the private key kV associated with kP. The systematic coding of information during communication avoids possible modifications of the data exchanged during their transfer.
A réception, aSVR décode ekP.kT à l'aide des informations qu'il possède concernant le - 25 - lecteur LCL de l'utilisateur. Selon la réalisation de la présente invention, aSVR est seul en dehors de ce lecteur LCL, à connaître la correspondance du numéro ID.d avec la clé kT.d par rapport à un lecteur LCL donné. La clé kP est ensuite codée avec la clé secrète kT.d relative au lecteur LCL du concepteur du logiciel S# protégé selon la présente invention. La nouvelle forme codée de kP est notée ekP.kT2. Ensuite, aSVR communique ekP.kT2 604 au lecteur LCL du concepteur via le serveur dSVR. De cette manière, l'utilisation des techniques de protection de logiciels selon la présente invention, crée une dépendance entre le concepteur de logiciels protégés selon la présente invention, et l'organisme qui gère aSVR. Ainsi, Le concepteur de logiciel n'a pas à constituer des stocks autre qu'un stock de médias d'enregistrement contenant le logiciel protégé selon la présente invention.On receipt, aSVR decodes ekP.kT using the information it has regarding the - 25 - User LCL reader. According to the embodiment of the present invention, aSVR is the only one outside this LCL reader, to know the correspondence of the number ID.d with the key kT.d relative to a given LCL reader. The key kP is then coded with the secret key kT.d relating to the LCL reader of the designer of the S # software protected according to the present invention. The new coded form of kP is denoted ekP.kT2. ASVR then communicates ekP.kT2 604 to the designer's LCL reader via the dSVR server. In this way, the use of software protection techniques according to the present invention creates a dependency between the designer of software protected according to the present invention, and the organization which manages aSVR. Thus, the software designer does not have to constitute stocks other than a stock of recording media containing the software protected according to the present invention.
A réception, le lecteur LCL dudit concepteur décode ekP.kT2 avec sa clé kT.d. Avec la clé public kP, LCL relatif au concepteur code ensuite kEL.S# généré lors de la procédure de création du logiciel S# protégé selon la présente invention avec la clé kP. La forme codée de kEL.S# par kP est notée ekEL. Selon des variantes non illustrées, après avoir décodé ekP.kT2, ledit peut communiquer kP au serveur dSVR afin de lui laisser le codage de la clé kEL.S# par la clé kP. Mais ces vanantes ne changent en πen quant au pπncipe fondamentale de la présente invention.On receipt, the LCL reader of said designer decodes ekP.kT2 with its key kT.d. With the public key kP, LCL relating to the designer then codes kEL.S # generated during the procedure for creating the S # software protected according to the present invention with the key kP. The coded form of kEL.S # by kP is denoted ekEL. According to variants not illustrated, after decoding ekP.kT2, said module can communicate kP to the dSVR server in order to let it codify the key kEL.S # with the key kP. But these vanantes do not change in πen as to the fundamental pπncipe of the present invention.
Selon la réalisation de la présente invention, dSVR reçoit ensuite de aSVR la valeur de NL. NL permet au concepteur de logiciels protégés selon la présente invention, d'effectuer une comptabilité avec l'organisme qui gère aSVR. Selon une vaπante de la présente procédure d'acquisition d'autonsation d'utilisations, dSVR envoie après réception de la clé kP, une clé public kPUB relatif au cryptage RSA vers le LCL de l'utilisateur (acheteur) via aSVR. Cette vanante permet au programme PGM connecté avec le lecteur LCL de l'utilisateur, de retourner à dSVR par l'intermédiaire de aSVR, la valeur codée avec kPUB de NL. Cette variante permet à ce que dSVR ne se fie pas à la bonne smcénté de aSVR. Ainsi, cette variante permet à dSVR de contrôler exactement le nombre de licences vendues.According to the embodiment of the present invention, dSVR then receives the value of NL from aSVR. NL allows the designer of protected software according to the present invention to carry out accounting with the organization which manages aSVR. According to a variant of this procedure for the acquisition of authorizations for use, after receipt of the kP key, dSVR sends a public key kPUB relating to RSA encryption to the LCL of the user (buyer) via aSVR. This option allows the PGM program connected with the user's LCL reader to return to dSVR via aSVR, the value coded with kPUB from NL. This variant allows dSVR not to rely on the good smcénté of aSVR. Thus, this variant allows dSVR to control exactly the number of licenses sold.
Selon la réalisation de la présente invention, dSVR envoie ensuite (étape 605) ekEL à aSVR. Ce serveur aSVR envoie ensuite (étape 606) kX.S# sous une forme codée avec la clé kT.d (celui du lecteur LCL de l'utilisateur) vers le lecteur LCL de l'utilisateur. La clé kX.S# est une clé créée et stockée par aSVR lors de la procédure de protection précédemment décπte du logiciel LD numéroté S#. Le serveur aSVR envoie ensuite vers le lecteur LCL de l'utilisateur, eKEL. A réception, le lecteur LCL de l'utilisateur décode eKEL par kV. Il obtient donc kEL.S#. Ce lecteur LCL décode aussi la forme codée de kX.S# par sa clé kT.dAccording to the embodiment of the present invention, dSVR then sends (step 605) ekEL to aSVR. This aSVR server then sends (step 606) kX.S # in a form coded with the key kT.d (that of the user's LCL reader) to the user's LCL reader. The key kX.S # is a key created and stored by aSVR during the previously determined protection procedure of the LD software numbered S #. The aSVR server then sends the user's LCL reader, eKEL. On reception, the user's LCL reader decodes eKEL by kV. It therefore obtains kEL.S #. This LCL reader also decodes the coded form of kX.S # by its key kT.d
Selon la réalisation de la présente invention, ledit lecteur LCL envoie ensuite à ladite carte CL, sous une forme codée avec la clé kCS obtenue lors de la procédure d'authentification précédemment décπte, les données suivantes : S#, NL qui coπespond au nombre de licences demandées par l'utilisateur à aSVR, kX.S#, kEL.S#, la date et l'heure courantes indiquées par l'horloge 104.According to the embodiment of the present invention, said LCL reader then sends to said CL card, in a form coded with the key kCS obtained during the authentication procedure previously determined, the following data: S #, NL which corresponds to the number of licenses requested by the user from aSVR, kX.S #, kEL.S #, the current date and time indicated by the clock 104.
Ainsi, le microcontrôleur 400 de la carte CL décode les différentes données reçues avec kCS - 26 - Le microcontrôleur 400 procède alors à la procédure (étape 607) de mise à jour qui suit. Le microcontrôleur 400 vénfie si un fichier codé eFιch.S# d'autonsation d'utilisation existe déjà pour le logiciel en question numéroté S#. Dans ce cas, il procède à sa modification en augmentant la valeur du champ L#.S# dans le fichier Fιch.S# coπespondant, de la valeur de NL. Dans le cas où l'utilisateur aurait acquis une autonsation dépendante du temps, bien entendu des mises à jour sur les champs correspondants sont effectuées dans le fichier Fιch.S#. Pour la compréhension de la présente invention, certain point évident sont sous-entendu.Thus, the microcontroller 400 of the CL card decodes the different data received with kCS The microcontroller 400 then proceeds to the following updating procedure (step 607). The microcontroller 400 checks if a coded file eFιch.S # of authorization of use already exists for the software in question numbered S #. In this case, it proceeds to its modification by increasing the value of the L # .S # field in the file Fιch.S # coπespondant, by the value of NL. In the case where the user has acquired a time-dependent autonsation, of course updates on the corresponding fields are made in the file Fιch.S #. For the understanding of the present invention, certain obvious points are implied.
S'il n'existe pas de fichier Fιch.S# correspondant, un nouveau fichier Fιch.S# est créé. Ainsi, selon la réalisation de la présente invention, le microcontrôleur 400 de la carte CL crée le fichier Fιch.S# en remplissant les champs suivants du nouveau fichier : S#, L#.S#, ID.c numéro de séπe de la carte CL en question, kEL.S#, kX.S#. Les valeurs de DR.S# et de DP.S# sont mitialisées par la valeur de l'heure et de la date courante. Les champs DU.S# et « nombre d'exécutions du logiciel » prennent évidemment la valeur nulle. Le champ Mise sert à stocker des valeurs liées à des besoins éventuels de définir des champs d'informations supplémentaires. Mise est initialement à zéro L#.S# prend la valeur de NL.If there is no corresponding Fιch.S # file, a new Fιch.S # file is created. Thus, according to the embodiment of the present invention, the microcontroller 400 of the CL card creates the file Fιch.S # by filling in the following fields of the new file: S #, L # .S #, ID.c serial number of the CL card in question, kEL.S #, kX.S #. The values of DR.S # and DP.S # are initialized by the value of the current time and date. The DU.S # and "number of software executions" fields obviously take the value zero. The Stake field is used to store values related to possible needs to define additional information fields. Setting is initially at zero L # .S # takes the value of NL.
Selon des modes particuliers de réalisation non décπtes, un utilisateur peut directement se connecter sur le serveur dSVR pour acheter des licences lorsque aSVR a communiqué la valeur de kX.S# d'un logiciel numéroté S# protégé selon la présente invention. Cette vanante permet de décentraliser la vente des licences. Compte tenu du format des fichiers Fιch.S# et de sa forme codée eFιch.S#, seul une carte CL donnée et numérotée ID.c peut utiliser les fichiers Fιch.S# correspondant à ID.cAccording to particular embodiments that have not been determined, a user can directly connect to the dSVR server to purchase licenses when aSVR has communicated the value of kX.S # of software numbered S # protected according to the present invention. This vanante allows decentralizing the sale of licenses. Given the format of the Fιch.S # files and its coded form eFιch.S #, only a given CL card numbered ID.c can use the Fιch.S # files corresponding to ID.c
Selon la réalisation de la présente invention, on considère un logiciel, noté LD, ayant subi une procédure de protection selon la présente invention. Bien entendu, les explications qui suivent sont valables pour tout logiciel protégé selon la présente invention. Pour permettre une explication, on considère son utilisation dans le cas où l'ordinateur hôte est connecté à un lecteur LCL via un réseau de type Ethernet, en TCP/IP. C'est le cas du contexte 40. Le dπver DRV précédemment citée permet de communiquer avec LCL par rapport au protocole TCP/IP. Selon la réalisation de la présente invention, la couche TCP/IP est sous-entendu dans les propositions de communication entre le programme dπver DRV et le lecteur LCL considéré. Selon des modes particuliers de réalisation non décπte, mais illustrée par la figure 4, plusieursAccording to the embodiment of the present invention, software, denoted LD, is considered to have undergone a protection procedure according to the present invention. Of course, the explanations which follow are valid for any software protected according to the present invention. To allow an explanation, we consider its use in the case where the host computer is connected to an LCL reader via an Ethernet type network, in TCP / IP. This is the case of context 40. The previously mentioned DRV dπver allows communication with LCL with respect to the TCP / IP protocol. According to the embodiment of the present invention, the TCP / IP layer is understood in the communication proposals between the program dπver DRV and the LCL reader considered. According to particular embodiments not determined, but illustrated by FIG. 4, several
LCL peuvent être présents sur le réseau. Cependant, ces organisations ne change pas les caractéπstiques de la présente invention.LCL may be present on the network. However, these organizations do not change the characteristics of the present invention.
Selon la réalisation de la présente invention, à l'obtention d'une ou plusieurs autoπsatιon(s) d'utilisation du logiciel LD (licences d'utilisation), LD peut alors être exécuté. Ainsi, au lancement du logiciel LD sur un ordinateur hôte, la fonction FF0 est exécutée en premier. De manière générale, selon la réalisation de la présente invention, toutes les fonctions FF, effectuent toutes une procédure commune : le chargement de eF, vers LCL. - 27 - Selon la réalisation de la présente invention, lorsque le logiciel LD appelle une fonction donnée FF,, il lui transmet par passage de paramètres en utilisant par exemple la pile du système de l'ordinateur hôte, des informations paramètres, notées PARAM, utilisées directement et/ou indirectement lors de l'exécution éventuelle de la fonction F, correspondant à FF,. Ensuite, FF, charge en mémoire le contenu du fichier eF, décπt précédemment. Puis, FF, appelle (au sens d'un appel de programmes informatiques) le driver DRV afin de lui communiquer les informationsAccording to the embodiment of the present invention, on obtaining one or more autoπsatιon (s) of use of the LD software (user licenses), LD can then be executed. Thus, when launching the LD software on a host computer, the FF 0 function is executed first. In general, according to the embodiment of the present invention, all the FF functions, all carry out a common procedure: the loading of eF, towards LCL. - 27 - According to the embodiment of the present invention, when the software LD calls a given function FF ,, it transmits to it by passing parameters using for example the stack of the system of the host computer, parameter information, noted PARAM, used directly and / or indirectly during the possible execution of the function F, corresponding to FF ,. Then, FF, loads the content of the eF file, previously decπt, into memory. Then, FF, calls (in the sense of a call to computer programs) the DRV driver in order to communicate the information to it
PARAM et l'adresse mémoire où se trouve eF, Ces informations sont ensuite envoyées vers LCL à travers le réseau considéré. Des paramètres supplémentaires peuvent être rajoutés par une fonctionPARAM and the memory address where eF is located. This information is then sent to LCL through the network considered. Additional parameters can be added by a function
FF, dans les paramètres PARAM Ainsi, PARAM contient notamment des informations relatives à l'heure courante dans l'ordinateur qui exécute ladite fonction FF,. Il contient aussi un identifiant unique représentant cet ordinateur hôte (par exemple l'adresse IP de cet ordinateur sur le réseau qui est fournie par le système d'exploitation de cet ordinateur) et le numéro de séné S# du logiciel coπespondant à ladite fonction FF,. Bien entendu, dans le cas d'un lecteur directement connecté sur un ordinateur (c'est le contexte 30 et 20), il n'y a pas de problèmes d'identifiants uniques. Ainsi, on note l'identifiant unique de l'ordinateur IDIP. Cette variable est utilisé par le microcontrôleur 100 du lecteur LCL pour gérer l'utilisation des logiciels en fonctions des postes d'ordinateurs. Bien entendu, le choix d'une adresse IP pour les valeurs possibles de la variable IDIP ne concerne que la présente réalisation. Dans d'autres modes de réalisation, IDIP pouπa être définie autrement.FF, in the PARAM parameters Thus, PARAM notably contains information relating to the current time in the computer which executes said FF function. It also contains a unique identifier representing this host computer (for example the IP address of this computer on the network which is provided by the operating system of this computer) and the Senna number S # of the software corresponding to said function FF ,. Of course, in the case of a reader directly connected to a computer (this is context 30 and 20), there are no problems with unique identifiers. Thus, the unique identifier of the computer IDIP is noted. This variable is used by the microcontroller 100 of the LCL reader to manage the use of the software as a function of the computer stations. Of course, the choice of an IP address for the possible values of the IDIP variable only concerns the present embodiment. In other embodiments, IDIP can be defined differently.
Ainsi, selon la réalisation de la présente invention, lorsque le microcontrôleur 100 du lecteur LCL aura terminé le traitement des informations reçues et en particulier l'exécution de la fonction F, coπespondante, les résultats obtenus sont alors transportés à nouveau vers ledit ordinateur hôte à travers le réseau considéré. A réception, DRV retourne les résultats à FF, qui les retourne au logiciel LD. Si la carte CL qui est connecté sur le lecteur LCL ne possède pas de licences d'utilisation pour le logiciel LD, alors LCL ne retournera pas de résultats mais un message indiquant à FF, de fermer l'exécution du logiciel LD. Une fermeture d'exécution peut être donnée à FF, dans d'autre situation décπte par la suite. Ainsi, l'exécution des fonctions F, par le lecteur LCL crée une dépendance physique du logiciel LD avec LCL.Thus, according to the embodiment of the present invention, when the microcontroller 100 of the LCL reader has finished processing the information received and in particular the execution of the function F, coπespondante, the results obtained are then transported again to said host computer at through the network considered. Upon receipt, DRV returns the results to FF, which returns them to the LD software. If the CL card which is connected to the LCL reader does not have user licenses for the LD software, then LCL will not return results but a message telling FF to close the execution of the LD software. A closing of execution can be given to FF, in other situation decπte thereafter. Thus, the execution of the functions F, by the LCL reader creates a physical dependence on the software LD with LCL.
Ainsi, selon la réalisation de la présente invention, au début du lancement du logiciel LD, la fonction FF0 associé à LD est exécutée. Durant l'exécution de FF0 associé audit logiciel LD aucune autre fonction de type FF, associée à LD ne doit être exécutée. Des informations supplémentaires seront données par la suite. FF0 envoie eF0 l'heure courant indiquée par l'ordinateur qui exécute FF0, les paramètres d'exécution PARAM de la fonction F0, la valeur S# associée au logiciel LDThus, according to the embodiment of the present invention, at the start of the launch of the LD software, the function FF 0 associated with LD is executed. During the execution of FF 0 associated with said LD software, no other FF type function associated with LD must be executed. Additional information will be given later. FF 0 sends eF 0 the current time indicated by the computer executing FF 0 , the PARAM execution parameters of the F 0 function, the S # value associated with the LD software
A l' arrivée des résultats calculés par le microcontrôleur 100 de LCL, FF0 considère deux types de résultats. Le premier type concerne les résultats liés à l'exécution de F0 (F0 doit être une fonction compliquée de telle sorte que le logiciel LD en dépend énormément) dans le microcontrôleur 100. Dans la mesure où ces résultats ne sont des messages d'eπeurs, ces résultats sont retournés au logiciel LD pour continuer l'exécution de LD. Le deuxième type concerne une heure Htop par - 28 - rapport à l'horloge dudit ordinateur exécutant le logiciel LD. Cette indication de temps correspond au prochain moment où FF0 devra être impérativement lancé par le logiciel LD.When the results calculated by the LCL microcontroller 100 arrive, FF 0 considers two types of results. The first type concerns the results linked to the execution of F 0 (F 0 must be a complicated function such that the LD software depends on it enormously) in the microcontroller 100. Insofar as these results are not messages of In addition, these results are returned to the LD software to continue the execution of LD. The second type concerns one hour Htop per - 28 - report to the clock of said computer running LD software. This time indication corresponds to the next moment when FF 0 must be launched by the LD software.
De plus, l'ordre dans laquelle les autres fonctions FF, sont appelées, n'est pas prévisible, car il dépend de l'utilisation de LD. Selon la réalisation de la présente invention, l'exécution de FF0 est volontairement longue, de l'ordre de 1 seconde.In addition, the order in which the other FF functions are called is not predictable, since it depends on the use of LD. According to the embodiment of the present invention, the execution of FF 0 is voluntarily long, of the order of 1 second.
De plus, à l'heure Htop, si FF0 n'est pas exécutée, alors LCL considère que la session d'exécution associée audit logiciel LD qui doit lancer FF0 est fermée. Cette condition permet àIn addition, at time Htop, if FF 0 is not executed, then LCL considers that the execution session associated with said software LD which must launch FF 0 is closed. This condition allows
LCL de diminuer son compteur de licences utilisées sur le réseau par rapport à LD. Bien sûre, le dépassement du nombre de licences ne concerne pas les logiciels qui sont utilisé avec un ordinateur isolé et connecté directement par un port E/S à un LCL adapté à ce port.LCL to decrease its counter of licenses used on the network compared to LD. Of course, exceeding the number of licenses does not concern software which is used with an isolated computer and connected directly by an I / O port to an LCL suitable for this port.
De plus, lors de l'exécution des autres fonctions FF, pour î différent de 0 par le logiciel LD, FF, vérifie d'abord si la fonction FF0 associée à LD n'est pas en cours d'exécution. En l'absence d'une exécution en cours de FF0, FF, pour î différent de 0, envoie eF„ S#, les paramètres d'exécution de F, vers LCL via DRV. Lorsque le lecteur LCL a terminé le traitement de eF, accompagné de ses paramètres, les résultats sont retournés à FF,. FF, retourne alors ces résultats au logiciel LD. Si un message d'erreur est reçu, l'exécution du logiciel LD s'aπête. Contrairement à des systèmes de protection de logiciels qui utilisent des véπfications de codes, les logiciels protégés selon la présente invention, possèdent une protection incontournable par rapports à la difficulté de pouvoir trouver une fonction équivalente aux fonctions de F, utilisées.In addition, during the execution of the other FF functions, for î different from 0 by the software LD, FF, first checks whether the function FF 0 associated with LD is not running. In the absence of an execution in progress of FF 0 , FF, for î different from 0, sends eF „S #, the execution parameters of F, to LCL via DRV. When the LCL reader has finished processing eF, along with its parameters, the results are returned to FF ,. FF, then returns these results to the LD software. If an error message is received, execution of the LD software is ready. Unlike software protection systems which use code verifications, the software protected according to the present invention has essential protection in relation to the difficulty of being able to find a function equivalent to the functions of F used.
Selon la réalisation de la présente invention, compte tenu du processeur CPUl, le système d'exploitation du microcontrôleur 100 est un système multitâche afin de pouvoir traiter plusieurs utilisation de logiciels protégés selon la présente invention en même temps. La réalisation de ce système d'exploitation se réfère à des standards de systèmes multitâches existant concernant les processeurs 80386 de la société Intel. De plus, la sécurité du système de protection de logiciels selon la présente invention, repose en particulier sur l'exécution d'un seul programme pπncipal à la fois par le processeur CPU2.According to the embodiment of the present invention, taking into account the processor CPU1, the operating system of the microcontroller 100 is a multitasking system in order to be able to process several uses of software protected according to the present invention at the same time. The implementation of this operating system refers to existing multitasking system standards for 80386 processors from the company Intel. In addition, the security of the software protection system according to the present invention is based in particular on the execution of a single main program at a time by the processor CPU2.
Selon la réalisation de la présente invention, à la réception complète d'un paquet d'informations, CPUl les charge dans la mémoire DRAM 109. Dans le cas de données (correspondantes à un logiciel donné numéroté S#) du type eF, et des paramètres associés à eF„ la liste de test suivant est réalisée : î est égale à 0 701, eF, coπespond à un logiciel numéroté S# qui a déjà exécuté une fois FF0 avec succès 702, l'heure indiquée par l'horloge 104 est égale à l'heure Htop (valeur précédemment définie coπespondant au logiciel numéroté S# qui a dans cette condition déjà exécuté une fois FF0 avec succès) expπmée par rapport à l'heure de l'horloge 104 avec une eπeur de plus ou moins deux secondes (test 703 ou 705), le nombre (noté NL.S#) courant de licences utilisées (coπespondant au logiciel numéroté S#) augmenté de 1 est strictement supéπeur à la valeur L#.S# du fichier Fιch.S# (coπespondant au logiciel numéroté S#) fourni par la carte CL (test 704). Les éléments de cette liste de tests sont notés respectivement testl, test2, test3, - 29 - test4. Le chiffre associé à ces tests indique l'ordre de ces tests dans les conditions de leurs réalisations. En référence à la figure 12, le test testl 701 coπespond au début de l'arbre d'analyse qui est effectué donc en considérant un logiciel donné numéroté S#, et un identifiant unique IDIP qui est le numéro adresse IP de chaque ordinateur sur le réseau considéré. Ce numéro permet ainsi d'associer chaque session d'exécution de logiciels par rapport à un ordinateur donné dudit réseau.According to the embodiment of the present invention, upon complete reception of an information packet, CPUl loads them into the DRAM memory 109. In the case of data (corresponding to a given software numbered S #) of the eF type, and parameters associated with eF „the following test list is carried out: î is equal to 0 701, eF, corresponds to a software numbered S # which has already successfully executed FF 0 once 702, the time indicated by the clock 104 is equal to the time Htop (previously defined value corresponding to the software numbered S # which has in this condition already executed once FF 0 successfully) expπm relative to the time of the clock 104 with an eπeur of more or less two seconds (test 703 or 705), the current number (noted NL.S #) of licenses used (corresponding to the software numbered S #) increased by 1 is strictly greater than the value L # .S # of the file Fιch.S # (corresponding to the software numbered S #) provided by the coach te CL (test 704). The elements of this list of tests are noted respectively testl, test2, test3, - 29 - test4. The number associated with these tests indicates the order of these tests in the conditions of their performance. With reference to FIG. 12, the test test 701 corresponds to the start of the analysis tree which is therefore carried out by considering a given software numbered S #, and a unique identifier IDIP which is the IP address number of each computer on the network considered. This number thus allows each software execution session to be associated with a given computer on said network.
Selon des variantes de cette réalisation, d'autre identifiant unique peuvent être associé directement à une session d'exécution d'un logiciel donné par l'emploi d'un identifiant de processus combiné avec l'adresse réseau de l'ordinateur où se trouve ce processus. Ainsi, la présente réalisation considère l'identifiant unique associé à une adresse IP comme un exemple de moyen possible pour identifier un ordinateur sur ledit réseau. Ainsi, au début de l'arbre d'analyse de la figure 12, les informations S# et IP (IDIP) sont supposées fournies par la fonction FFj avec le driver DRV. Ces deux informations sont envoyées vers ledit lecteur LCL dans le paquet d'informations PARAM précédemment décrit.According to variants of this embodiment, other unique identifier can be associated directly with a runtime session of a given software by the use of a process identifier combined with the network address of the computer where the computer is located. this process. Thus, the present embodiment considers the unique identifier associated with an IP address as an example of a possible means for identifying a computer on said network. Thus, at the start of the analysis tree in FIG. 12, the information S # and IP (IDIP) are assumed to be supplied by the function FFj with the driver DRV. These two pieces of information are sent to said LCL reader in the PARAM information packet described above.
Selon la réalisation de la présente invention, par rapport au test test4 704, si le résultat est une valeur fausse au sens booléen, alors la nouvelle valeur de NL.S# 709 est celle de l'ancienne augmentée de 1, à condition que le test test2 702 soit faux et que le testl 701 soit vrai.According to the embodiment of the present invention, compared to test test4 704, if the result is a false value in the Boolean sense, then the new value of NL.S # 709 is that of the old increased by 1, provided that the test test2 702 is false and that testl 701 is true.
Par rapport à une valeur vraie du test test3 703, et à condition d'une valeur vraie des tests testl 701 et test2 702, CPUl effectue un lecteur de l'heure courante sur l'horloge interne 104, pour calculer la nouvelle valeur de Htop exprimée par rapport à l'heure de l'horloge associée à l'ordinateur exécutant le logiciel S# dans les conditions de ces tests et le contexte de ces conditions. La nouvelle valeur de Htop est à égale l'ancienne augmentée de 5 minutes (par exemple), selon la réalisation de la présente invention. Cette valeur de 5 minutes est ajustée de telle sorte que deux ou plusieurs logiciels ayant le même numéro S# et tournant sur des ordinateurs différents, ne puissent pas exécuter la fonction FF0 coπespondante en même temps (il faut tenir compte de ladite eπeur de plus ou moins deux secondes). Cette valeur de 5 minutes peut donc être remplacée, par tout autre valeur en fonction de la phrase précédente. A la fin du test test3, une exécution 706 de la fonction F0 a lieu.Compared to a true value of test test3 703, and on condition of a true value of tests testl 701 and test2 702, CPUl performs a reader of the current time on the internal clock 104, to calculate the new value of Htop expressed relative to the time of the clock associated with the computer running the S # software under the conditions of these tests and the context of these conditions. The new value of Htop is equal to the old value increased by 5 minutes (for example), according to the embodiment of the present invention. This value of 5 minutes is adjusted so that two or more software programs having the same S # number and running on different computers, cannot execute the FF 0 coπespondante function at the same time (it is necessary to take into account said eπeur more or less two seconds). This value of 5 minutes can therefore be replaced by any other value depending on the preceding sentence. At the end of the test test3, an execution 706 of the function F 0 takes place.
Par rapport à une valeur fausse du test test3 703, et à condition d'une valeur vraie des tests testl 701 et test2 702, un message d'eπeur 707 est alors retourné à la session d'exécution du logiciel coπespondant à l'exécution de la fonction FF0 dans les conditions de ces tests et le contexte de ces conditions. De plus, CPUl diminue de 1 point le compteur NL.S# associé aux logiciels au numéro de série S#. Le système d'exploitation du microcontrôleur 100 dans le cadre de la protection de plusieurs logiciels en même temps, gère une liste d'objets référencés par les différents identifiants IDIP coπespondant à tous les ordinateurs du réseau qui exécutent un logiciel protégé selon la présente invention. Cette liste d'objets est établie à partir des informations de PARAM. Les champs de chacun de ces objets servent à enregistrer les numéros de série S# des logiciels numérotés S# qui sont exécutés sur l'ordinateur dont l'identifiant IDIP coπespond à ladite référence IDIP de ces objets. Cette liste d'objet permet la gestion de l'utilisation des logiciels - 30 - protégés en fonction des ordinateurs. Lorsque NL.S# est diminué de 1 point par rapport un ordinateur identifié par IDIP et qui exécute le logiciel numéroté S# qui a provoqué cette diminution, le champ de l'objet IDIP coπespondant qui contient la valeur de S# est effacé. Cette gestion permet à ce que une nouvelle exécution d'un logiciel numéroté S# puisse avoir heu. Il faut aussi noter que la valeur de NL.S# est le total desdits objets possédant un champ identique à la valeur de S# dans la notation de NL.S#. Ainsi, en contrepartie lorsqu'une augmentation de 1 point de la valeur de NL.S# a heu, un nouveau champ dans l'objet IDIP de ladite liste d'objets est créé.Compared to a false value of test test3 703, and on condition of a true value of tests testl 701 and test2 702, an eπeur message 707 is then returned to the execution session of the software coπespondant to the execution of the function FF 0 in the conditions of these tests and the context of these conditions. In addition, CPUl decreases the NL.S # counter associated with software with the serial number S # by 1 point. The operating system of the microcontroller 100 in the context of the protection of several software programs at the same time, manages a list of objects referenced by the different IDIP identifiers corresponding to all the computers on the network which run protected software according to the present invention. This list of objects is established from PARAM information. The fields of each of these objects are used to record the S # serial numbers of the S # numbered software programs which are executed on the computer whose IDIP identifier corresponds to said IDIP reference of these objects. This object list allows the management of the use of software - 30 - protected according to computers. When NL.S # is reduced by 1 point compared to a computer identified by IDIP and which runs the software numbered S # which caused this reduction, the field of the corresponding IDIP object which contains the value of S # is deleted. This management allows that a new execution of a software numbered S # can have er. It should also be noted that the value of NL.S # is the total of said objects having a field identical to the value of S # in the notation of NL.S #. In return, therefore, when a 1 point increase in the value of NL.S # has, a new field in the IDIP object of said list of objects is created.
L'objet IDIP coπespond à l'ordinateur numéroté IDIP qui exécute la fonction FF, du logiciel S#.The IDIP object corresponds to the computer numbered IDIP which executes the FF function, from the S # software.
Ledit nouveau champ prend alors la valeur de S#. Par rapport à une valeur vraie du test test4 704 et d'une valeur fausse du test test2 702 et d'une valeur vraie du test testl 701, un message d'eπeur 708 est alors retourné à la session d'exécution du logiciel coπespondant à l'exécution de la fonction FF0 dans les conditions de ces tests et le contexte de ces conditions.Said new field then takes the value of S #. In relation to a true value of test test4 704 and a false value of test test2 702 and a true value of test testl 701, an eπeur message 708 is then returned to the execution session of the software coπespondant à the execution of the function FF 0 under the conditions of these tests and the context of these conditions.
Par rapport à une valeur vraie du test test3 705, et à condition d'une valeur fausse du test testl 701, CPUl diminue de 1 point le compteur NL.S# associé aux logiciels numérotés S#. Ladite liste d'objets IDIP est actualisée en conséquence. Un message d'eπeur 710 est alors retourné à la session d'exécution du logiciel coπespondant à l'exécution de la fonction FF0 dans les conditions de ces tests et le contexte de ces conditions.Compared with a true value of test test3 705, and on condition of a false value of test testl 701, CPUl decreases by 1 point the counter NL.S # associated with software numbered S #. Said list of IDIP objects is updated accordingly. An eπeur message 710 is then returned to the execution session of the software coπespondant to the execution of the function FF 0 under the conditions of these tests and the context of these conditions.
En référence à la figure 12, pour une valeur vraie du produit (testl 701 et test2 702 et test3 703) dans l'ordre de leur réalisation, pour une valeur fausse du produit (testl 701 et test2 702 et test4 704) dans l'ordre de leur réalisation, et pour une valeur fausse du produit (testl 701 et test3 705) dans l'ordre de leur réalisation, le résultat conduit à un traitement de eF, par CPUl .Referring to Figure 12, for a true value of the product (testl 701 and test2 702 and test3 703) in the order of their realization, for a false value of the product (testl 701 and test2 702 and test4 704) in the order of their realization, and for a false value of the product (testl 701 and test3 705) in the order of their realization, the result leads to a processing of eF, by CPUl.
Bien entendu, l'ensemble de ces tests est défini par rapport à la réalisation de la présente invention pour permettre les fonctionnalités de protection de plusieurs logiciels en même temps par un seul lecteur LCL. L'arbre d'analyse de la figure 12 est simplifié au maximum par soucis de clarté de compréhension. Selon des modes particuliers de réalisation, les conditions des tests et le contexte de ces tests peuvent vaner.Of course, all of these tests are defined with respect to the implementation of the present invention to allow the protection functionalities of several software programs at the same time by a single LCL reader. The analysis tree in FIG. 12 is simplified as much as possible for the sake of clarity of understanding. According to particular embodiments, the conditions of the tests and the context of these tests may vary.
En cas d'utilisation intensive, une file d'attente est créée pour faire exécuter une à une les fonctions F, par le processeur CPU2. Afin de diminuer le temps d'attente, une condition de durée autoπsée pour l'exécution d'une fonction F, donnée peut être fixée, par exemple 1/100 de secondes valeur définie par rapport à la vitesse de calcul du processeur CPU2. Cette condition de durée devra être respectée par le développeur de logiciels protégés selon la présente invention.In the event of intensive use, a queue is created to execute the F functions one by one, by the processor CPU2. In order to reduce the waiting time, a duration condition autoπsée for the execution of a given function F, can be fixed, for example 1/100 of seconds value defined with respect to the calculation speed of the processor CPU2. This duration condition must be respected by the developer of software protected according to the present invention.
Selon la réalisation de la présente invention, les informations d'utilisation d'un logiciel donné numéroté S# sont fourmes par la carte CL. Ainsi, lorsqu'il est nécessaire par rapport à l'arbre d'analyse, notamment à l'étape 704, le microcontrôleur 100 effectue une requête auprès de la carte CL. Ainsi, CPUl effectue dans l'objectif d'exécuter F„ une requête à propos du logiciel numéroté S#, auprès de la carte CL connecté dans le contexte de cette requête. Dans les conditions de succès de la procédure d'authentification précédemment définie entre LCL et CL, et dans les conditions de - 31 - la possessions du fichiers Fιch.S# associé au logiciel numéroté S# du contexte de cette requête, le microcontrôleur 400 de la carte CL retourne au LCL sous une forme codée par la clé kCS, le fichierAccording to the embodiment of the present invention, the information for using a given software numbered S # is provided by the card CL. Thus, when it is necessary with respect to the analysis tree, in particular in step 704, the microcontroller 100 makes a request to the card CL. Thus, CPU1 performs in order to execute F „a request about the software numbered S #, from the CL card connected in the context of this request. Under the conditions of success of the authentication procedure previously defined between LCL and CL, and under the conditions of - 31 - the possessions of the file Fιch.S # associated with the software numbered S # in the context of this request, the microcontroller 400 of the card CL returns to the LCL in a form coded by the key kCS, the file
Fιch.S#. Le microcontrôleur 100 met alors à jour les champs suivants : DR.S# (dernière utilisation) remplacée par la date courante, DU.S# recalculé, Nombre d'exécution du logiciel. DR.S# est mise à jour par rapport à la date et l'heure de la première exécution de la fonction FF0 par rapport au dernier lancement d'une exécution du logiciel S# associé à cette fonction. DU.S# est recalculée avec la valeur dynamique de Htop et l'heure courante indiquée par l'horloge 104 au moment où l'exécution d'une fonction FF, coπespondante a heu. Le champ « Nombre d'exécution du logiciel » est calculé par rapport à la dernière exécution du logiciel associé au contexte de ce calcul. Il est donc augmenté d'un point à chaque nouvelle exécution. L'ensemble de ces tests est optimisé en fonction du flux des requêtes des différentes fonctions FF, exécutées par les logiciels coπespondants sur les différents ordinateurs connectés sur le réseau avec le lecteur LCL considéré dans le contexte de ces mises à jour d'informations.Sheet #. The microcontroller 100 then updates the following fields: DR.S # (last use) replaced by the current date, DU.S # recalculated, Number of software runs. DR.S # is updated relative to the date and time of the first execution of the FF 0 function compared to the last launch of an execution of the S # software associated with this function. DU.S # is recalculated with the dynamic value of Htop and the current time indicated by the clock 104 at the time when the execution of a function FF, coπespondant a er. The "Number of software execution" field is calculated relative to the last execution of the software associated with the context of this calculation. It is therefore increased by one point for each new execution. All of these tests are optimized as a function of the flow of requests from the various FF functions, executed by the coπesponding software on the various computers connected to the network with the LCL reader considered in the context of these updates of information.
Selon la réalisation de la présente invention, les valeurs de L#.S#, kEL.S# et kX.S# (d'autres champs du fichier concernés peuvent être retenus par CPUl selon les besoins) sont mémoπsées dans la DRAM 109. Fιch.S# modifié est ensuite retourné à CL sous une forme codée par kCS. Afin d'empêcher des actes de pirateπe, si la carte CL est enlevée pendant que le lecteur LCL utilise la carte CL pour effectuer des opérations concernant la présente invention, le lecteur LCL met fin à toutes les sessions d'exécution de logiciels protégés selon la présente invention, en leur retournant un message d'eπeur. Selon des modes particuliers de réalisation, les appareils selon la présente invention, peuvent ne pas retourner ainsi un message d'eπeurs, dans la mesure où des fichiers Fιch.S# peuvent être stockés en permanence dans le lecteur LCL de la même manière que celle employée avec la carte CL.According to the embodiment of the present invention, the values of L # .S #, kEL.S # and kX.S # (other fields of the file concerned can be retained by CPUl as required) are stored in the DRAM 109. Modified file # is then returned to CL in a form coded by kCS. In order to prevent acts of piracy, if the CL card is removed while the LCL reader uses the CL card to carry out operations relating to the present invention, the LCL reader ends all execution sessions of software protected according to the present invention, by returning an eπeur message. According to particular embodiments, the devices according to the present invention may not thus return an eπeurs message, insofar as Fιch.S # files can be permanently stored in the LCL reader in the same manner as that used with the CL card.
Ainsi, selon la réalisation de la présente invention, la valeur L#.S# empêche de dépasser le nombre de licences d'utilisations d'un logiciel protégé selon la présente invention.Thus, according to the embodiment of the present invention, the value L # .S # prevents exceeding the number of licenses to use software protected according to the present invention.
Selon la réalisation de la présente invention, pour le cas ι=0, la clé kEL.S# fournie par le fichier Fιch.S# est utilisée pour décoder eF0. CPUl obtient ainsi ledit fichier de conditions d'utilisation du logiciel associé à ce eF0. CPUl compare la valeur de ces différentes informations par rapport au fichier Fιch.S# associé. A titre explicatif, si l'utilisation est fixée par rapport à une date d'expiration, ledit fichier de conditions d'utilisation renseigne cette valeur limite par son champ coπespondant. Selon des modes particuliers de réalisation, ledit fichier de conditions d'utilisation peut ne pas comporter tout ou partie des champs suivants : licences permanentes, durée d'utilisation, l'utilisation expire fin, nombres d'exécutions.According to the embodiment of the present invention, for the case ι = 0, the key kEL.S # provided by the file Fιch.S # is used to decode eF 0 . CPUl thus obtains said file of conditions of use of the software associated with this eF 0 . CPUl compares the value of this different information compared to the associated Fιch.S # file. By way of explanation, if the use is fixed with respect to an expiration date, said file of conditions of use indicates this limit value by its corresponding field. According to particular embodiments, said file of conditions of use may not include all or part of the following fields: permanent licenses, duration of use, use expires end, number of executions.
Selon la réalisation de la présente invention, après le succès de la comparaison des données fournies par le fichier Fιch.S# avec le fichier de conditions (limites) d'utilisation décodée par la clé kEL.S# et associée à eF0, et toujours pour ι=0, CPUl récupère aussi avec la clé kEL.S# les « byte code » JAVA (code d'instruction JAVA) de la fonction F0. - 32 - Selon la réalisation de la présente invention, pour 1 différent de 0, les données codées eF, sont décodées à l'aide de la clé kX.S# renseignée par le Fιch.S# coπespondant. CPUl récupère alors lesAccording to the embodiment of the present invention, after the success of the comparison of the data provided by the file Fιch.S # with the file of conditions (limits) of use decoded by the key kEL.S # and associated with eF 0 , and always for ι = 0, CPUl also recovers with the key kEL.S # the JAVA byte code (JAVA instruction code) of the function F 0 . - 32 - According to the embodiment of the present invention, for 1 other than 0, the coded data eF, are decoded using the key kX.S # indicated by the co-responding Fιch.S #. CPUl then retrieves the
« byte code » JAVA (code d'instruction coπespondant à la machine virtuelle JAVA) de la fonctionJAVA byte code (instruction code corresponding to the JAVA virtual machine) of the function
F, Ces codes d'instruction sont chargés alors par l'intermédiaire de l'interface 106 directement dans la DRAM 110 grâce au contrôleur DMA 107. Par l'intermédiaire du contrôleur du CPU2,F, These instruction codes are then loaded via the interface 106 directly into the DRAM 110 using the DMA controller 107. Via the controller of the CPU2,
CPUl donne la main au CPU2 (processeur PicoJava) pour l'exécution de F, dont les paramètres d'exécution ont été chargés au préalable. Le watchdog 108 surveille au bon fonctionnement duCPUl gives control to CPU2 (PicoJava processor) for the execution of F, whose execution parameters have been loaded beforehand. The watchdog 108 monitors the proper functioning of the
CPU2. A la fin de l'exécution de F, par CPU2, les résultats sont récupérés par CPUl et retournés vers l'ordinateur qui a envoyé les données eF,.CPU2. At the end of the execution of F, by CPU2, the results are retrieved by CPUl and returned to the computer which sent the data eF ,.
Dans les contextes d'utilisation 30 et 20, un lecteur LCL peut être utilisé avec un ordinateur personnel grâce à une connexion directe entre leur port E/S USB respectif. Pour ces deux contextes la protection de logiciels par le lecteur LCL est une version simplifiée des fonctionnalités en réseau. Par conséquent, la présente description n'apportera pas de renseignements supplémentaires. Selon des modes particuliers de réalisation, le champ « durée d'utilisation » du fichier de conditions d'utilisation peut être utilisé pour caractéπser l'utilisation de logiciels de démonstrations. Ainsi, le fichier de conditions d'utilisations fixe en particulier des conditions d'utilisation limite. Le fichier d'autorisation d'utilisations renseigne la « quantité » d'utilisation en cours. Les deux fichiers combinés permettent selon la réalisation de la présente invention, de protéger un logiciel contre le non respect de ses conditions d'utilisations.In contexts of use 30 and 20, an LCL reader can be used with a personal computer thanks to a direct connection between their respective USB I / O port. For these two contexts the protection of software by the LCL reader is a simplified version of the network functionalities. Therefore, this description will not provide additional information. According to particular embodiments, the “duration of use” field of the conditions of use file can be used to characterize the use of demonstration software. Thus, the file of conditions of use sets in particular limit conditions of use. The usage authorization file indicates the “quantity” of usage in progress. The two files combined make it possible, according to the embodiment of the present invention, to protect software against non-compliance with its conditions of use.
De plus, le format du fichier de conditions d'utilisation est surtout intéressant pour développer des applications de démonstrations dont l'utilisation est limitée. Dans ce contexte, une procédure de protection particulière peut être utilisée pour que la création de logiciels protégés selon la présente invention, puisse être effectué sans passer par l'intermédiaire du serveur aSVR. Cette fonctionnalité est intéressante pour permettre notamment de décentraliser la protection de logiciels selon la présente invention. De plus, pour lancer une telle procédure de protection, le choix sera effectué à l'aide du programme PGM.In addition, the format of the conditions of use file is especially interesting for developing demonstration applications whose use is limited. In this context, a special protection procedure can be used so that the creation of protected software according to the present invention can be carried out without going through the aSVR server. This functionality is interesting in particular for decentralizing the protection of software according to the present invention. In addition, to launch such a protection procedure, the choice will be made using the PGM program.
Par rapport à la procédure de protection de logiciels précédemment déente, les fonctions F, sont maintenant codées avec une clé secrète kLi de ladite liste {kL,+ι,kL,+2,kL1+3,...,kL,+m}, qui coπespond à la semaine courante pendant laquelle cette procédure spéciale de protection de logiciels est lancée. L'usage de ces clés est intéressant uniquement pour les logiciels dont l'utilisation est limitée dans le temps à cause de la définition de ces clés kLi. Bien sûre, le lecteur LCL qui effectuera cette procédure ne communiquera pas la valeur de kLi par rapport à sa définition. Pour être distπbué, le logiciel ainsi protégé devra être accompagné des indications sur la semaine pendant laquelle cette procédure particulière de protection a été effectuée. Ainsi, lorsqu'un utilisateur désire exécuter un logiciel protégé de cette manière (par la clé kLi), il n'aura pas besoins de contacter le serveur aSVR, car toutes les informations s'y trouvent sur le média d'enregistrement. Cependant l'utilisation du logiciel reste dépendante d'un lecteur LCL compte - 33 - tenu du cryptage. Ainsi, l'utilisateur pouπa disposer immédiatement du logiciel, ma.s ne pouπa pas dépasser les conditions d'utilisations fixées dans le fichier de conditions d'utilisation. La réalisation de la présente invention empêche une réutilisation d'un logiciel dont l'utilisation est limitée dans le temps. Des explications seront données par la suite. De plus, la présente invention concerne une méthode rendant l'utilisation des appareils selon la présente invention, transparente du point de vue informatique par l'intermédiaire d'un programme noté PGM qui a déjà été abordé. Le programme PGM est développé de telle sorte qu'il puisse permettre à un utilisateur des appareils selon la présente d'effectuer des opérations nécessitant une interactivité avec ces appareils. Son utilisation est généralement sous-entendue dans la présente descπption. Il a aussi pour rôle de permettre à un LCL donné de se connecter à un système informatique distant en utilisant les ressources de communication de l'ordinateur hôte et du système informatique de cet ordinateur.Compared to the previously described software protection procedure, the functions F, are now coded with a secret key kLi from said list {kL, + ι, kL, +2 , kL 1 + 3 , ..., kL, + m }, which corresponds to the current week during which this special software protection procedure is launched. The use of these keys is interesting only for software whose use is limited in time because of the definition of these kLi keys. Of course, the LCL reader which will carry out this procedure will not communicate the value of kLi compared to its definition. To be distributed, the software thus protected must be accompanied by information on the week during which this particular protection procedure was carried out. Thus, when a user wishes to run software protected in this way (by the kLi key), he will not need to contact the aSVR server, because all the information is there on the recording medium. However the use of the software remains dependent on an LCL account player - 33 - due to encryption. Thus, the user can immediately dispose of the software, but cannot exceed the conditions of use set in the file of conditions of use. The realization of the present invention prevents re-use of software whose use is limited in time. Explanations will be given later. In addition, the present invention relates to a method making the use of the apparatuses according to the present invention, transparent from the computer point of view by means of a program denoted PGM which has already been discussed. The PGM program is developed in such a way that it can allow a user of the devices according to the present to perform operations requiring interactivity with these devices. Its use is generally understood in this description. It also has the role of allowing a given LCL to connect to a remote computer system using the communication resources of the host computer and the computer system of this computer.
Le programme PGM est utilisé en parallèle avec un programme dnver DRV. Ce dπver DRV constitue une couche de communication entre PGM et un lecteur LCL donné. Il assure la transparence de l'utilisation du lecteur LCL. L'adjonction de ces deux éléments dans un ordinateur donné est illustré sur la figure 2. Ces deux programmes remplissent toutes les fonctionnalités décπtes précédemment et par la suite Une convention est adoptée sur les procédures d'mteπogation d'un LCL donné afin de permettre à ce lecteur LCL de reconnaître et d'exécuter des commandes qui sont intégrés au système d'exploitation de son microcontrôleur 100. Ces commandes sont définies lors de la construction des lecteurs LCL.The PGM program is used in parallel with a dnver DRV program. This DRV dπver constitutes a communication layer between PGM and a given LCL reader. It ensures transparency in the use of the LCL reader. The addition of these two elements in a given computer is illustrated in FIG. 2. These two programs fulfill all the functionalities previously determined and thereafter A convention is adopted on the procedures for modifying a given LCL in order to allow this LCL reader to recognize and execute commands which are integrated into the operating system of its microcontroller 100. These commands are defined during the construction of the LCL readers.
En retour, selon la présente invention, PGM peut aussi interpréter les informations provenant des commandes envoyées par LCL. Ces commandes sont essentiellement, selon la réalisation de la présente invention, des instructions pour permettre à un LCL d'accéder à un système distantIn return, according to the present invention, PGM can also interpret the information coming from the commands sent by LCL. These commands are essentially, according to the embodiment of the present invention, instructions for allowing an LCL to access a remote system
Ainsi, selon la convention adoptée pour communiquer avec un lecteur LCL donné, des commandes sont définies par rapport à la possibilité pour les lecteurs LCL, de se connecter à aSVR par l'intermédiaire des ressources disponibles de communication réseau pour permettre par exemple une mise à jour du système informatique interne des appareils selon la présente invention ou encore la mise à l'heure de l'horloge interne 104 en cas de dysfonctionnement (la pile 103 est épuisée). Selon le contexte d'utilisation 20 indiqué sur la figure 1, un récepteur hertzien numéπque 22 est connecté sur le bus externe 114 du microcontrôleur 100, pour permettre à un lecteur LCL donné de recevoir des informations directement de l'organisme qui gère le serveur aSVR. Bien entendu, ce récepteur sera intégré dans le boîtier retenu pour l'utilisation du lecteur LCL. Il est ainsi possible d'envoyer des informations à tous les lecteurs LCL en service de manière générale et/ou spécifique De plus, la faible consommation de ce type de récepteur par rapport à un fonctionnement avec des piles électπques, permet de les laisser en fonctionnement permanent, même si le lecteur LCL est éteint Selon une vaπante d'utilisation d'alimentation électnque, des piles rechargeables peuvent être employées avec le radiorécepteur 22 indépendamment de l'alimentation électrique du LCL - 34 - (fournit éventuellement par le réseau électrique local). Bien entendu, le récepteur dispose de sa propre mémoire pour permettre de conserver les données reçues de l'émetteur 13 lorsque le lecteurThus, according to the convention adopted for communicating with a given LCL reader, commands are defined with respect to the possibility for LCL readers to connect to aSVR via the available network communication resources to allow for example an update. update of the internal computer system of the devices according to the present invention or the setting of the time of the internal clock 104 in the event of a malfunction (the battery 103 is exhausted). According to the context of use 20 indicated in FIG. 1, a digital radio receiver 22 is connected to the external bus 114 of the microcontroller 100, to allow a given LCL reader to receive information directly from the organization which manages the aSVR server. . Of course, this receiver will be integrated in the box selected for the use of the LCL reader. It is thus possible to send information to all LCL readers in service in general and / or specifically In addition, the low consumption of this type of receiver compared to operation with electric batteries, allows them to be left in operation permanent, even if the LCL reader is switched off Depending on the use of electrical power, rechargeable batteries can be used with the radio receiver 22 independently of the LCL's power supply - 34 - (possibly supplied by the local electricity network). Of course, the receiver has its own memory to store the data received from the transmitter 13 when the reader
LCL est éteint. Ainsi, le serveur aSVR peut envoyer des informations comme par exemple la mise à jour du système d'exploitation du lecteur LCL et/ou de la carte CL par l'intermédiaire d'un émetteur 13.LCL is off. Thus, the aSVR server can send information such as for example the update of the operating system of the LCL reader and / or of the CL card via a transmitter 13.
Selon une variante du fonctionnement des lecteurs LCL, une condition de durée peut être ajouter en plus des informations concernant les dates de mise en service et de fin d'utilisationAccording to a variant of the operation of LCL readers, a duration condition can be added in addition to information concerning the dates of commissioning and end of use.
(DB.d et DE.D). Cette condition est relative à l'utilisation de LCL avec le radiorécepteur 22. Ainsi, un lecteur LCL qui n'aurait reçu aucunes informations provenant de l'émetteur 20, refusera de fonctionner au moment de sa mise en marche par un utilisateur. Une procédure de connexion sur aSVR par l'intermédiaire du programme PGM devra être effectuée afin de récupérer les informations que ce lecteur LCL aurait pu manquer pour cause de mauvaise réception radio. Cette récupération se fait bien sûre par l'intermédiaire de la clé kT.d pour sécunser la communication entre aSVR et le lecteur LCL en question De plus, afin d'envoyer de l'émetteur 13 des informations de manière sécunsée, les clés secrètes kLi précédemment déentes sont utilisées pour coder ces informations à envoyer par radio aux lecteurs LCL. On note ces informations MR. De plus, kLi est choisie de telle sorte qu'elle coπespond avec la semaine où les informations partent de l'émetteur 13. On note eMR la forme codée de MR par kLi. En choisissant d'émettre les informations MR à partir du lundi qui suit la semaine (commençant un lundi et se terminant fin dimanche) où ces informations MR ont été définies, les mêmes informations sont envoyées en répétition suivant un intervalle donné durant toute la semaine. Ceci permet de s'assurer qu'elles ont bien été reçues, et d'éviter trop de connexion de LCL vers aSVR.(DB.d and DE.D). This condition relates to the use of LCL with the radio receiver 22. Thus, an LCL reader which has not received any information from the transmitter 20, will refuse to operate when it is started up by a user. A connection procedure on aSVR via the PGM program must be carried out in order to recover the information that this LCL reader could have missed due to poor radio reception. This recovery is of course done by means of the key kT.d to secure the communication between aSVR and the LCL reader in question In addition, in order to send information from the transmitter 13 in a secure manner, the secret keys kLi previously described are used to encode this information to be sent by radio to LCL readers. This information is noted MR. In addition, kLi is chosen so that it coincides with the week when the information leaves from the transmitter 13. We denote eMR the coded form of MR by kLi. By choosing to send the MR information from the Monday following the week (starting on a Monday and ending at the end of Sunday) where this MR information has been defined, the same information is sent in repetition at a given interval throughout the week. This ensures that they have been received, and avoids too much connection from LCL to aSVR.
Cette variante de la présente invention présente beaucoup d'avantage, car elle permet dans un premier temps de retourner les fichiers Fιch.S# de manière sécunsée vers le lecteur LCL coπespondant à l'acheteur du logiciel associé à Fιch.S#. Bien entendu, l'émetteur 13 peut envoyer de manière spécifique des informations vers un récepteur radio 22 donné. Cette vaπante permet un achat sans connexion informatique, mais par l'utilisateur directement au téléphone avec un accueil humain. Cette vanante permet une complète séparation de la distnbution du média d'enregistrement contenant un logiciel donné, de la vente des licences d'utilisation de ce logiciel donnéThis variant of the present invention has many advantages, since it initially allows the Fιch.S # files to be returned in a secure manner to the LCL reader corresponding to the buyer of the software associated with Fιch.S #. Of course, the transmitter 13 can specifically send information to a given radio receiver 22. This variant allows a purchase without computer connection, but by the user directly on the phone with a human welcome. This version allows a complete separation of the distribution of the recording medium containing a given software, from the sale of the licenses to use this given software.
Dans un deuxième temps, cette vanante permet d'envoyer des informations concernant la perte d'un appareil. Compte tenu des capacités de stockage des modules de « Disque Flash », un circuit DiskOnChip non illustré de la société Msystems est connecté avec un contrôleur éventuel sur le bus externe 114 du microcontrôleur 100 pour permettre au microcontrôleur 100 de disposer d'un disque de stockage. Un DiskOnChip de 12 mégaoctets est choisit selon la réalisation de la présente vaπante de l'invention. Selon d'autres vaπantes, une carte Disque Flash PCMCIA peut - 35 - être employée à la place du DiskOnChip. Ainsi, à réception des informations eMR, le microcontrôleur 100 décode eMR à l'aide de la clé kLi de la semaine courante.In a second step, this card allows you to send information about the loss of a device. Taking into account the storage capacities of the "Flash Disk" modules, a DiskOnChip circuit not illustrated by the company Msystems is connected with a possible controller on the external bus 114 of the microcontroller 100 to allow the microcontroller 100 to have a storage disk. . A 12 megabyte DiskOnChip is chosen according to the embodiment of the present variant of the invention. According to other variants, a PCMCIA Flash Disk card can - 35 - be used in place of DiskOnChip. Thus, on receipt of the eMR information, the microcontroller 100 decodes eMR using the kLi key for the current week.
Ainsi, pour désactiver un appareil CL et/ou LCL donnés par rapport à leur utilisation, une information coπespondant à son numéro de série peut être jointe. Ce numéro de série est alors sauvegardé sur le circuit DiskOnChip dans un fichier noté ANNUL qui sert à stocker tous les numéros de séries des appareils selon la présente invention, qui ne doivent plus être utilisés. Selon des modes particuliers de réalisation, par rapport à la sécurité nécessaire contre des modifications, ledit numéro peut ne pas être codé lors de son émission de l'émetteur 13.Thus, to deactivate a CL and / or LCL device given in relation to their use, information coπespondant to its serial number can be attached. This serial number is then saved on the DiskOnChip circuit in a file denoted ANNUL which is used to store all the serial numbers of the devices according to the present invention, which must no longer be used. According to particular embodiments, with respect to the security necessary against modifications, said number may not be coded when it is transmitted from transmitter 13.
Selon la présente invention, un procédé informatique d'authentification et de signature par LCL est effectué sur le fichier ANNUL. La signature électronique et les informations de l'authentification sont stockées dans la mémoire interne 111 du microcontrôleur 100. Ainsi, le microcontrôleur 100 à chaque démaπage vérifie si le fichier ANNUL n'a pas été remplacé par un autre fichier au même format ou modifié par une opération non autorisée.According to the present invention, a computerized method of authentication and signature by LCL is performed on the ANNUL file. The electronic signature and the authentication information are stored in the internal memory 111 of the microcontroller 100. Thus, the microcontroller 100 at each start-up checks whether the ANNUL file has not been replaced by another file in the same format or modified by an unauthorized transaction.
Ce fichier ANNUL est alors utilisé lors de la procédure d'authentification entre une carte CL donnée et un lecteur LCL donnée par rapport à la procédure précédemment décrite. Si CL présente un ID.c qui est référencé dans le fichier ANNUL, LCL rejette alors la carte CL en question. De plus, au démaπage de LCL et/ou à réception d'une information MR, le microcontrôleur 100 du LCL, vérifie si son propre ID.d n'est pas référencé dans le contenu de MR et/ou ANNUL. Si le cas se présente, le microcontrôleur 100 se met hors service en détruisant le contenu de sa mémoire interne.This ANNUL file is then used during the authentication procedure between a given CL card and a given LCL reader compared to the previously described procedure. If CL has an ID.c which is referenced in the ANNUL file, LCL then rejects the CL card in question. In addition, when LCL is dismantled and / or upon receipt of MR information, the LCL microcontroller 100 checks whether its own ID.d is not referenced in the content of MR and / or ANNUL. If the case arises, the microcontroller 100 is put out of service by destroying the content of its internal memory.
Ainsi, compte tenu de la réalisation de la présente variante, un appareil CL ou LCL peut être mis hors service dans un maximum de 1 semaine.Thus, taking into account the implementation of this variant, a CL or LCL device can be put out of service within a maximum of 1 week.
De plus, selon la réalisation de la présente invention, les appareils ont une utilisation d'au maximum 4 ans. Cette durée peut tout à fait se ramener à 2 ans. Dans le contexte de cette durée, en considérant une possibilité de pertes des appareils selon la présente invention, avec un volume de 1 million de pertes d'appareils en 2 deux ans (les pertes volontaires seraient empêchées par le prix d'achat d'un nouvel appareil en cas de perte). Ce volume peut sembler exagérer. Compte tenu des capacités des méthodes de compressions (un taux de 50%), et compte tenu de la taille de 128 bits d'un numéro de série ID, il faudrait donc environ et sans compression 15 mégaoctets, 8 mégaoctets avec compression d'espace de stockage de données. Sur une durée d'utilisation de deux ans des appareils selon la présente invention, la capacité de la DiskOnChip selon la présente variante suffit. Pour le cas de durée d'utilisation plus longue, des capacités de stockage plus grandes peuvent être prises compte tenu de la capacité des modules DiskOnChip dans l'état actuel de l'art.In addition, according to the embodiment of the present invention, the devices have a use of at most 4 years. This duration can be reduced to 2 years. In the context of this duration, considering a possibility of losses of the devices according to the present invention, with a volume of 1 million losses of devices in 2 two years (voluntary losses would be prevented by the purchase price of a new device in case of loss). This volume may seem to be exaggerating. Given the capabilities of compression methods (a rate of 50%), and given the 128-bit size of an ID serial number, it would therefore require approximately and without compression 15 megabytes, 8 megabytes with space compression data storage. Over a period of use of the devices according to the present invention for two years, the capacity of the DiskOnChip according to the present variant is sufficient. For the case of a longer period of use, larger storage capacities can be taken into account given the capacity of the DiskOnChip modules in the current state of the art.
De plus, ledit radiorécepteur numérique, compte tenu de sa capacité de recevoir des informations qui le concerne uniquement, lors de l'achat d'une licence de logiciel, l'utilisateur peut recevoir par radio le fichier Fich.S# (décrite précédemment) coπespondant à son achat de licences du logiciel numéroté S#. Cette fonctionnalité peut avoir un grand impact au niveau commercial (l'achat de logiciel peut être effectué partout sur la planète sans connexion). Bien sûre, Fich.S# est - 36 - envoyé sous forme codée avec la clé kLi de la semaine courante. Selon des variations de réalisations, on peut utiliser une clé de type kT.d pour les opérations d'achat.In addition, said digital radio receiver, given its capacity to receive information which concerns it only, when purchasing a software license, the user can receive the Fich.S # file by radio (described above) corresponding to his purchase of licenses for the software numbered S #. This functionality can have a great impact on the commercial level (the purchase of software can be carried out everywhere on the planet without connection). Of course, Fich.S # is - 36 - sent in coded form with the kLi key for the current week. According to variations of realizations, one can use a key of type kT.d for the purchasing operations.
La possibilité de faire rejeter l'utilisation d'un appareil selon la présente invention par le reste des appareils selon la présente invention, permet de donner aux utilisateurs la possibilité de récupérer une partie du contenu de leur carte CL perdue.The possibility of having the rest of the apparatuses according to the present invention rejected by the rest of the apparatuses according to the present invention makes it possible to give users the possibility of recovering part of the content of their lost CL card.
Ainsi, en tenant compte du format de fichier Fιch.S#, la taille de ce fichier peut être ramenée àThus, taking into account the file format Fιch.S #, the size of this file can be reduced to
66 octets dans un fichier nommé rFιch.S#, en conservant uniquement les champs suivants : S# du logiciel, ID.c, L#.S#, kEL.S#, kX.S#. En considérant uniquement les logiciels dont l'utilisateur possède une licence d'utilisation permanente, rFιch.S# suffit pour définir l'utilisation de ces logiciels protégés selon la présente invention. Ainsi avec un module de mémoire de 64 kilooctets, on peut stocker au moins 990 licences de logiciels différents dont l'utilisation peut être définie par rFιch.S#. Selon cette nouvelle variante, l'organisme qui gère aSVR, fournit lors de l'achat d'une carte CL une carte à puces (SmartCard) notée SC, et pouvant sécuπser des données en lecture et en modification. SC n'est pas illustrée. SC comporte un microcontrôleur intégrant sur une seule pastille de silicium, un processeur, un module mémoire Flash de 64 kilooctets, de la mémoire DRAM et OTPEPROM. Les accès en mémoire sont contrôlés par le processeur du microcontrôleur de SC. Cette carte est une carte à puces sécunsée. Cette carte à puces est utilisée à chaque fois que l'utilisateur acquière légalement une nouvelle licence pour une ou des utilιsation(s) permanente(s) d'un logiciel donné protégé selon la présente invention. Lors de cette acquisition, cette carte est insérée dans le lecteur de cartes à puces qui communique avec le microcontrôleur 100 du lecteur LCL par le moyen du contrôleur de cartes à puces 153. Le fichier rFιch.S# sera alors copié dans le module de mémoires Flash de 64 kilooctets du microcontrôleur de la carte à puces. Bien entendu, la carte à puces SC possède en interne une clé secrète kLi de la même manière que la carte CL. Cette clé est utilisée lors d'une procédure d'identification similaire à celle qui a lieu entre le lecteur LCL et la carte CL. Des modifications du contenu de la carte SC ne peuvent être effectuées uniquement par un lecteur LCL connecté à une carte CL associée. Ainsi, pour cette vanante de la réalisation de l'invention, rFιch.S# est stocké sous une forme codée, notée erFιch.S#, par la clé kS.c de la carte CL. De plus, compte tenu des propπétés de sécurité des cartes à puces (SmartCard), erFιch.S# et ainsi protégé contre la modification ou la lecture non autoπsée. De toutes manière cette information est protégé. De plus, par l'emploi de la clé kS pour codée rFιch.S#, cette carte ne peut être utilisée qu'avec la carte CL d'où les fichiers rFιch.S# proviennent. Bien sûre, si l'utilisateur a acheté des licences d'un logiciel S# en plus par rapport à celles qu'il a déjà dans sa carte CL, LCL copie alors erFιch.S# et l'envoie vers la carte CL coπespondant. Les champs de rFιch.S# sont mis à jour par rapport au nombre de licences nouvellement acquises. Le nouveau fichier erFιch.S# obtenu remplace ensuite l'ancien dans la mémoire interne du microcontrôleur de la carte SC.66 bytes in a file named rFιch.S #, keeping only the following fields: software S #, ID.c, L # .S #, kEL.S #, kX.S #. By considering only software whose user has a permanent use license, rFιch.S # is sufficient to define the use of these protected software according to the present invention. Thus with a memory module of 64 kilobytes, one can store at least 990 different software licenses whose use can be defined by rFιch.S #. According to this new variant, the organization which manages aSVR, supplies when purchasing a CL card a smart card (SmartCard) denoted SC, and which can secuπser data for reading and modification. SC is not illustrated. SC includes a microcontroller integrating on a single silicon wafer, a processor, a Flash memory module of 64 kilobytes, DRAM and OTPEPROM memory. The memory accesses are controlled by the processor of the SC microcontroller. This card is a secure chip card. This smart card is used each time that the user legally acquires a new license for one or more permanent use (s) of a given software protected according to the present invention. During this acquisition, this card is inserted into the smart card reader which communicates with the microcontroller 100 of the LCL reader by means of the smart card controller 153. The file rFιch.S # will then be copied into the memory module Flash of 64 kilobytes of the microcontroller of the smart card. Of course, the chip card SC internally has a secret key kLi in the same way as the card CL. This key is used during an identification procedure similar to that which takes place between the LCL reader and the CL card. Changes to the content of the SC card can only be made by an LCL reader connected to an associated CL card. Thus, for this extension of the embodiment of the invention, rFιch.S # is stored in an encoded form, noted erFιch.S #, by the key kS.c of the card CL. In addition, taking into account the security properties of smart cards, erFιch.S # and thus protected against modification or non-automatic reading. In any case this information is protected. In addition, by using the kS key for coded rFιch.S #, this card can only be used with the CL card from which the rFιch.S # files come. Of course, if the user has purchased more S # software licenses than those already in his CL card, LCL then copies erFιch.S # and sends it to the corresponding CL card. The fields of rFιch.S # are updated relative to the number of newly acquired licenses. The new erFιch.S # file obtained then replaces the old one in the internal memory of the microcontroller of the SC card.
Ainsi en cas de perte, la sauvegarde effectuée sur la carte à puces SC peut être récupérer en deux étapes : achat d'une nouvelle carte CL, connexion vers le serveur aSVR par l'intermédiaire du programme PGM. - 37 - Lors de la connexion sur le serveur, l'utilisateur communique par l'intermédiaire de son programme PGM, le numéro de séπe ID.c de son ancienne carte CL (ID.c est une donnée publique non modifiable : il est affiché en clair sur le boîtier 60 de chaque CL). Ensuite, l'utilisateur communique le numéro de séπe de sa nouvelle carte CL. En échange, aSVR retourne une donnée qui est la forme codée de la clé secrète kS de la carte CL perdu. Cette clé est codée par la clé kT.d du lecteur LCL sur lequel la nouvelle carte CL est connectée. L'acquisition de la clé kS de la carteSo in case of loss, the backup made on the smart card SC can be recovered in two stages: purchase of a new CL card, connection to the aSVR server via the PGM program. - 37 - When connecting to the server, the user communicates via their PGM program, the serial number ID.c of their old CL card (ID.c is public data that cannot be modified: it is displayed in clear on the box 60 of each CL). Then, the user communicates the serial number of his new CL card. In exchange, aSVR returns a datum which is the coded form of the secret key kS of the lost CL card. This key is coded by the key kT.d of the LCL reader on which the new CL card is connected. Acquisition of the card's kS key
CL perdue permet de récupérer ainsi le contenu des fichiers rFιch.S#.CL lost allows you to recover the content of rFιch.S # files.
Selon la vanante de l' invention utilisant le radiorécepteur, le numéro ID.c de la carte CL perdue peut être communiqué oralement par téléphone. LCL reçoit alors par l'intermédiaire de son radiorécepteur numérique et sous une forme codée par la clé kLi de la semaine courante, la clé kS de la carte CL perdue et coπespondant audit numéro ID c de la carte perdue. L'acquisition de la clé kS de la carte CL perdue permet de récupérer ainsi le contenu des fichiers rFιch.S#.According to the description of the invention using the radio receiver, the ID.c number of the lost CL card can be communicated orally by telephone. LCL then receives via its digital radio receiver and in a form coded by the key kLi of the current week, the key kS of the lost CL card and corresponding to said ID number c of the lost card. Acquiring the kS key from the lost CL card thus makes it possible to recover the content of the rFιch.S # files.
De l'autre coté, aSVR lance une procédure pour désactiver l'utilisation de la carte perdue en envoyant selon la vaπante de l'invention précédemment décrite, le numéro ID.c de la carte perdue à tous les lecteurs LCL.On the other side, aSVR launches a procedure to deactivate the use of the lost card by sending, according to the variant of the invention previously described, the ID.c number of the lost card to all LCL readers.
Selon une autre variante de l'invention, le stockage des fichiers Fιch.S# peut être effectué par le lecteur LCL en suivant les conditions de sécurités similaires au fonctionnement d'une carte CL au niveau du stockage de ces fichiers. Les fichiers Fιch.S# seront alors stockés sur média d'enregistrement externe prévu pour ce stockage. On peut utiliser par exemple une DiskOnChip. Les fichiers stockés sur ce support sont protégés par la clé kS.d du lecteur LCL coπespond. Dans cette vaπante, la clé kS.d est une clé secrète insente dans la mémoire interne 111 lors de la programmation en usine du microcontrôleur 100. Ainsi lorsqu'une ou des hcence(s) de logiciels sont déplacés vers le lecteur LCL, l'accès aux logiciels protégés selon la présente invention, et associés à ce lecteur LCL peut être réalisée indépendamment de la présence d'une carte CL. Ceci permet une utilisation par toutes les personnes pouvant accéder à l'ordinateur sur lequel ledit lecteur LCL est connecté. Bien entendu, lors d'un déplacement de licences de logiciels d'une carte CL, les informations seront mises à jour dans la carte à puces SC en obligeant la connexion de la carte à puces SC coπespondant à cette carte CL sur le lecteur adapté du lecteur LCL. Par exemple lorsque deux licences d'un logiciel numéroté S# sont déplacée de la carte CL vers un lecteur LCL, le contenu du fichier eFιch.S# de la carte CL et le contenu du fichier erFιch.S# de la cartes à puces SC seront modifiés en conséquence afin d'écnre un fichier d'utilisations de logiciels au niveau du lecteur LCL. Dans cette nouvelle fonctionnalité du lecteur LCL, une carte à puces du même type que SC devra être associée à chaque lecteur LCL pour permettre une sauvegarde des fichiers Fιch.S# relatifs à des licences d'utilisations permanentes de logiciels. Ainsi, cette carte à puces devra être insérée immédiatement après les déplacements des licences d'utilisations de la carte CL vers le lecteur LCL pour valider le transfert. Compte tenu du fait que les autonsations d'utilisations de logiciels copiées dans le lecteur LCL peuvent être transférer par une opération inverse à celle qui vient d'être déente vers une nouvelle carte CL, il est donc possible de déplacer une autorisation - 38 - d'utihsation d'un logiciel protégé selon la présente invention d'une carte CL vers une autre carteAccording to another variant of the invention, the storage of the Fιch.S # files can be carried out by the LCL reader by following security conditions similar to the operation of a CL card in terms of the storage of these files. The Fιch.S # files will then be stored on external recording media intended for this storage. One can use for example a DiskOnChip. The files stored on this medium are protected by the kS.d key of the LCL coπespond reader. In this variant, the key kS.d is a secret key insent in the internal memory 111 during programming in the factory of the microcontroller 100. Thus when one or more hcence (s) of software are moved to the LCL reader, the access to the software protected according to the present invention, and associated with this LCL reader can be carried out independently of the presence of a CL card. This allows use by anyone who can access the computer on which the LCL reader is connected. Of course, when moving software licenses from a CL card, the information will be updated in the chip card SC by forcing the connection of the chip card SC corresponding to this card CL on the appropriate reader of the LCL reader. For example, when two licenses of software numbered S # are moved from the CL card to an LCL reader, the content of the file eFιch.S # of the CL card and the content of the file erFιch.S # of the SC smart cards will be modified accordingly to create a software usage file at the LCL player level. In this new functionality of the LCL reader, a chip card of the same type as SC must be associated with each LCL reader to allow a backup of the Fιch.S # files relating to licenses for permanent uses of software. Thus, this smart card must be inserted immediately after the user licenses have been moved from the CL card to the LCL reader to validate the transfer. Taking into account that the authorizations of uses of software copied in the LCL reader can be transferred by an opposite operation to that which has just been deent to a new CL card, it is therefore possible to move an authorization - 38 - using software protected according to the present invention from a CL card to another card
CL. Les cartes à puces SC respectives de ces deux cartes CL seront bien entendu mises à jour automatiquement.CL. The respective SC chip cards of these two CL cards will of course be updated automatically.
De plus, par rapport à ladite possibilité de changer de carte CompactFlash sur une carte CL, et par rapport à des autoπsations d'utilisation de logiciels relativement à une utilisation limitée, un fichier eTPS est présent sur chaque carte CompactFlash qui est utilisée par une carte CL donnée et numérotée ID.c. Ce fichier devra impérativement être présent sur toutes les cartes CompactFlash utilisées par ladite carte CL. Autrement, la carte CL ne fonctionne pas. De plus, eTPS est la forme codée du fichier TPS qui contient en première ligne le numéro ID.c, puis tous les numéros de série de logiciels S# acquis selon la présente invention, par l'utilisateur de cette carte CL. Ainsi, un utilisateur ne pouπa contourner les limites d'utilisations d'un logiciel d'utilisation limitée par rapport par exemple au temps ou au nombre d'exécutions, en changeant de carte CompactFlash Cette restriction s'applique selon la réalisation de la présente invention, par exemple sur les logiciels gratuits. Ainsi selon des variantes évidentes de réalisation qui ne seront pas décπts (cette descπption n'apporte nen à la compréhension et à la réalisation de la présente invention), par rapport à sa capacité de protection d'informations contre toutes modifications, la carte CL peut servir au stockage d'informations public non modifiable tel que l'identité d'une personne. Ces informations pouπont être consultées par l'intermédiaire de l'interface utilisateur représentée par le programme PGM. La carte CL peut, en effet compte tenu de sa grande capacité de stockage permettre de stocker des programmes et/ou des compteurs relatifs à une valeur donnée, de manière sécunsée contre des modifications et/ou lectures non autorisées selon un critère donné. De l'autre côté, LCL offre un moyen sécurisé pour permettre l'exécution de ces programmes supplémentaires et/ou le traitement de ces compteurs relatifs à une valeur donnée. Le microcontrôleur 100 est physiquement protégé contre des programmes dits virus informatiques. On peut ainsi envisager de définir le champ Mise des fichiers Fιch.S# par des codes de programmes exécutables par le processeur CPU2 du microcontrôleur 100 ou par des compteurs de fidélité représentant le nombre de licences de logiciels achetés par l'utilisateur à un concepteur de logiciels donnés, afin de permettre des opérations commerciales coπespondantes. Les codes de programmes éventuellement ajoutés dans le champ Mise peuvent permettre de modifier le comportement desdites fonctions F, lors de leur exécution par le lecteur LCL, afin de rendre quasiment impossible le piratage du logiciel coπespond en essayant de remonter à la fonction F, par une surveillance des entrées et sorties de données au niveau des appels des fonctions FF,. Il est à rappeler que seule la forme codée eF, des fonctions F, sont accessibles par l'utilisateur. Selon la présente invention, l'emploi d'un circuit intégré (le microcontrôleur 100) physiquement et logiquement protégé contre des attaques de virus informatiques et contre les lectures et/ou des modifications de données contenues dans le circuit, permet un très haut niveau de sécunté de protection de logiciels. Compte tenu des péπphéπques de communications que peut - 39 - utiliser un tel circuit, les appareils selon la présente invention, n'apparaisse plus comme un appareil prohibitif de surveillance, mais un véritable outil participant activement à l'utilisation des logiciels notamment par le fait que la présente invention permet de récupérer en sécurité des licences perdues. En effet, la présente invention permet de rendre un outil de protection de logiciels, d'aspect souvent décoratif en raison du temps où il est effectivement utilisé, en un outil que l'utilisateur peut utiliser dans sa vie quotidienne par sa capacité de sécuriser le stockage de données et l'exécution de programmes. Ainsi la présente invention est un nouvel outil de protection de logiciel qui permet d'une part la distribution des logiciels indépendamment de la vente de leur droit d'utilisation, et d'autre part un développement libre des logiciels protégés selon la présente invention. Selon la présente invention, cette séparation a une grande conséquence sur le coût nécessaire pour protéger un logiciel. En effet, l'utilisation d'un seul appareil selon la présente invention, pour la protection de plusieurs logiciels indépendamment des concepteurs de logiciels, permet de distribuer le coût d'un appareil selon la présente invention sur tous les concepteurs de logiciels, de sorte que le prix d'un seul appareil selon la présente invention, devienne faible et abordable pour l'utilisateur .In addition, compared to said possibility of changing CompactFlash card on a CL card, and compared to authorizations of use of software relatively limited use, an eTPS file is present on each CompactFlash card which is used by a card CL given and numbered ID.c. This file must be present on all CompactFlash cards used by said CL card. Otherwise, the CL card does not work. In addition, eTPS is the coded form of the TPS file which contains the ID.c number on the first line, then all the serial numbers of S # software acquired according to the present invention, by the user of this CL card. Thus, a user cannot bypass the limits of use of a software of limited use with respect for example to the time or the number of executions, by changing the CompactFlash card. This restriction applies according to the embodiment of the present invention. , for example on free software. Thus according to obvious embodiments which will not be decπts (this descπption does not bring nen to the understanding and the realization of the present invention), compared to its capacity to protect information against any modifications, the CL card can be used to store non-modifiable public information such as the identity of a person. This information can be viewed through the user interface represented by the PGM program. The CL card can, in fact, given its large storage capacity, make it possible to store programs and / or counters relating to a given value, in a secure manner against unauthorized modifications and / or readings according to a given criterion. On the other hand, LCL offers a secure means to allow the execution of these additional programs and / or the processing of these counters relating to a given value. The microcontroller 100 is physically protected against so-called computer virus programs. We can thus consider defining the field Setting of Fιch.S # files by program codes executable by the processor CPU2 of the microcontroller 100 or by loyalty counters representing the number of software licenses purchased by the user from a designer of given software, to allow coπespondant commercial operations. The program codes possibly added in the Setting field can make it possible to modify the behavior of said F functions, during their execution by the LCL reader, in order to make it almost impossible to pirate the coπespond software by trying to go back to the F function, by a monitoring of data inputs and outputs at the level of the FF, function calls. It should be remembered that only the coded form eF, of the functions F, are accessible by the user. According to the present invention, the use of an integrated circuit (the microcontroller 100) physically and logically protected against attacks by computer viruses and against the readings and / or modifications of data contained in the circuit, allows a very high level of security software protection. In view of the communications devices that may - 39 - using such a circuit, the devices according to the present invention, no longer appears as a prohibitive monitoring device, but a real tool actively participating in the use of software in particular by the fact that the present invention makes it possible to recover in security of lost licenses. Indeed, the present invention makes it possible to make a software protection tool, often decorative in appearance due to the time when it is actually used, into a tool that the user can use in his daily life by his ability to secure the data storage and program execution. Thus the present invention is a new software protection tool which allows on the one hand the distribution of software independently of the sale of their right of use, and on the other hand a free development of software protected according to the present invention. According to the present invention, this separation has a great consequence on the cost necessary to protect software. Indeed, the use of a single device according to the present invention, for the protection of several software independently of the software designers, makes it possible to distribute the cost of a device according to the present invention to all the software designers, so that the price of a single device according to the present invention, become low and affordable for the user.
De plus, ladite séparation permet selon la présente invention, la vente de moyens de protections de logiciels indépendamment des logiciels qui utilisent ces moyens pour la protection. La puissance de la présente invention au niveau des sécurités utilisées, permet compte tenu de sa vente séparée du produit logiciel, une exploitation commerciale liée à d'autres opérations. Ces opérations peuvent être des opérations qui consiste à présenter des informations confidentielles que l'utilisateur ne peut modifier ou falsifier. Elle peut servir donc à un outil permettant des accès à un système donné. Ainsi, la présente invention est un moyen de protection de logiciels qui permet des fonctionnalités parallèles à son utilisation. Ces fonctionnalités auront pour conséquence la baisse du coût des appareils selon la présente invention et la baisse du coût de protection d'un logiciel donné. La protection de logiciel selon la présente invention, devient par conséquent un système intéressant pour les petites et les grandes productions de logiciels. Les appareils selon la présente invention sont susceptibles d'une industrialisation par rapport au monde de l'industrie des logiciels et de leur protection.In addition, said separation allows according to the present invention, the sale of software protection means independently of the software which uses these means for protection. The power of the present invention in terms of the security used, allows, taking into account its separate sale of the software product, commercial exploitation linked to other operations. These operations can be operations which consist in presenting confidential information which the user cannot modify or falsify. It can therefore be used as a tool allowing access to a given system. Thus, the present invention is a means of software protection which allows functionalities parallel to its use. These features will result in lower cost of devices according to the present invention and lower cost of protection of a given software. The software protection according to the present invention therefore becomes an interesting system for small and large software productions. The devices according to the present invention are susceptible to industrialization in relation to the world of the software industry and their protection.
Bien entendu, l'invention n'est pas limitée aux modes de réalisation qui viennent d'être décrits et représentés. On pouπa y apporter de nombreuses modifications de détail sans sortir pour cela du cadre de l'invention. Of course, the invention is not limited to the embodiments which have just been described and shown. Many modifications of detail can be made there without departing from the scope of the invention.

Claims

Revendication 1. Système pour la protection simultanée de plusieurs logiciels provenant de différents concepteurs de logiciels contre le non respect des conditions d'utilisation fixées par ces concepteurs de logiciels, caractéπsés en ce qu'il comprend en combinaison : - un lecteur (LCL) comprenant au moins un pénphéπque de communication (réseau, port Claim 1. System for the simultaneous protection of several software originating from different software designers against non-compliance with the conditions of use fixed by these software designers, characterized in that it comprises in combination: - a reader (LCL) comprising at least one communication path (network, port
E/S) créant une couche de communication supérieure permettant l'échange de données avec les logiciels protégés, un microcontrôleur programmable une seule fois (100) qui intègre sur une seule entité électronique deux parties (130, 120) séparées par une interface (106) un appareil portatif (CL) de type carte destiné au stockage d'un grand nombre d' autoπsations d'utilisation de logiciel protégé comportant un module d'enregistrement amovible de forte capacité de stockage, et un microcontrôleur (400) sécuπsé contre toutes intrusions non autorisées dans ses circuits internesI / O) creating a higher communication layer allowing the exchange of data with the protected software, a microcontroller programmable only once (100) which integrates on a single electronic entity two parts (130, 120) separated by an interface (106 ) a portable device (CL) of card type intended for the storage of a large number of authorizations of use of protected software comprising a removable recording module of high storage capacity, and a microcontroller (400) secuπsé against any intrusions not allowed in its internal circuits
2 Système selon la revendication 1 caractéπsé en ce que la partie (130) du microcontrôleur (100) comprend au moins un module de mémoires non volatiles (111), un module de mémoires volatiles (109), un port séné E/S (151), une horloge interne en temps réel (104) et un processeur maître (CPUl).2 System according to claim 1 caractéπsé in that the part (130) of the microcontroller (100) comprises at least one non-volatile memory module (111), a volatile memory module (109), a senna I / O port (151 ), an internal real-time clock (104) and a master processor (CPUl).
3 Système selon l'une quelconque des revendications précédentes caractéπsée en ce que la partie (120) du microcontrôleur (100) comprend au moins un module de mémoires volatiles (110) et un processeur esclave (CPU2).3 System according to any one of the preceding claims caractéπsée in that the part (120) of the microcontroller (100) comprises at least one volatile memory module (110) and a slave processor (CPU2).
4. Système selon l'une quelconque des revendications précédentes caractéπsée en ce que le microcontrôleur (100) sécuπse physiquement et logiquement d'une part son espace mémoire interne contre la lecture et/ou la modification non autorisé, et d'autre part l'exécution de programmes au sem de la mémoire (110) vis à vis de la possibilité pour un programme donné, exécuté dans cet espace mémoire d'extraire des données du microcontrôleur (100) présentes avant l'exécution de ce programme.4. System according to any one of the preceding claims caractéπsée in that the microcontroller (100) physically and logically secuπse its internal memory space against unauthorized reading and / or modification, and on the other execution of programs at the end of the memory (110) with respect to the possibility for a given program, executed in this memory space of extracting data from the microcontroller (100) present before the execution of this program.
5. Système selon l'une quelconque des revendications précédentes caracténsé en ce que le microcontrôleur (400) comporte au moins un module de mémoires OTPEPROM (407) ou équivalent, un module de mémoires dynamiques DRAM (107) ou équivalent, et un processeur (CPU).5. System according to any one of the preceding claims, characterized in that the microcontroller (400) comprises at least one OTPEPROM memory module (407) or equivalent, a dynamic DRAM memory module (107) or equivalent, and a processor ( CPU).
6. Système selon l'une quelconque des revendications précédentes caracténsé en ce que le lecteur comprend un récepteur hertzien pour permettre des opérations d'achat hors ligne de droits d'utilisation de logiciel protégé, de mise à jour des microcontrôleurs (100, 400), ou d'administration du lecteur (LCL) et du dispositif portatif (CL). 6. System according to any one of the preceding claims, characterized in that the reader comprises a radio receiver to allow operations of offline purchase of rights to use protected software, updating microcontrollers (100, 400) , or administration of the reader (LCL) and the portable device (CL).
7 Systèmes selon l'une quelconque des revendications précédentes caractéπsé en ce que le lecteur comprend un péπphénque de communication pour la connexion et un système central distant pour permettre des opérations d'achat de droits d'utilisation de logiciel protégé, de mise à jour des microcontrôleur (100, 400), ou d'administration du lecteur (LCL) et du dispositif portatif7 Systems according to any one of the preceding claims characterized in that the reader comprises a communication signal for the connection and a remote central system to allow operations to purchase rights to use protected software, update the microcontroller (100, 400), or administration of the reader (LCL) and the portable device
1 411 41
(CL).(CL).
8. Système selon l'une quelconque des revendications précédentes caractérisé en ce que le microcontrôleur est sécurisé contre toute attaque physique et/ou logique et mémorise au moins une série de codes et de clés numériques, utilisés pour réaliser une transmission sécurisée d'information pour le transfert d'un droit d'utilisation de logiciel protégé du dispositif portatif (CL) vers un autre lecteur (LCL) ou à d'autres dispositifs portatifs (CL).8. System according to any one of the preceding claims, characterized in that the microcontroller is secure against any physical and / or logical attack and stores at least one series of codes and digital keys, used to carry out a secure transmission of information for the transfer of a right to use protected software from the portable device (CL) to another reader (LCL) or to other portable devices (CL).
9. Système selon l'une quelconque des revendications précédentes caractérisé en ce qu'il comprend en périphérique de sauvegarde externe sécurisé contre les lecture et/ou les modifications non autorisées. 9. System according to any one of the preceding claims, characterized in that it includes an external backup device secured against unauthorized reading and / or modifications.
PCT/FR1999/000182 1998-01-29 1999-01-29 Simultaneous protection for several types of software of several software designers WO1999039256A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP99901657A EP1049969A1 (en) 1998-01-29 1999-01-29 Simultaneous protection for several types of software of several software designers
CA002319773A CA2319773A1 (en) 1998-01-29 1999-01-29 Simultaneous protection for several types of software of several software designers
AU21685/99A AU2168599A (en) 1998-01-29 1999-01-29 Simultaneous protection for several types of software of several software designers

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9800961A FR2774187B1 (en) 1998-01-29 1998-01-29 APPARATUS FOR THE SIMULTANEOUS PROTECTION OF SEVERAL SOFTWARE INDEPENDENT OF THE SOFTWARE DESIGNER
FR98/00961 1998-01-29

Publications (1)

Publication Number Publication Date
WO1999039256A1 true WO1999039256A1 (en) 1999-08-05

Family

ID=9522308

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR1999/000182 WO1999039256A1 (en) 1998-01-29 1999-01-29 Simultaneous protection for several types of software of several software designers

Country Status (6)

Country Link
EP (1) EP1049969A1 (en)
CN (1) CN1295682A (en)
AU (1) AU2168599A (en)
CA (1) CA2319773A1 (en)
FR (1) FR2774187B1 (en)
WO (1) WO1999039256A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1164456A1 (en) * 2000-05-15 2001-12-19 Siemens Aktiengesellschaft Software protection mechanism

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7463738B2 (en) * 2000-12-20 2008-12-09 Nokia Corporation Method for providing multimedia files and terminal therefor

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0089876A1 (en) * 1982-03-18 1983-09-28 Bull S.A. Method and device for the protection of software delivered by a supplyer to a user
EP0457677A1 (en) * 1990-05-16 1991-11-21 Aeg Schneider Automation Method for managing the rights-of-use of software on a computer work station and system for carrying out the method
US5155680A (en) * 1986-10-24 1992-10-13 Signal Security Technologies Billing system for computing software
EP0613073A1 (en) * 1993-02-23 1994-08-31 International Computers Limited Licence management mechanism for a computer system
WO1997004412A2 (en) * 1995-07-19 1997-02-06 Cable Television Laboratories, Inc. Method for protecting publicly distributed software
WO1997040448A1 (en) * 1996-04-23 1997-10-30 Chou Wayne W Method of metering and protecting computer software

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0089876A1 (en) * 1982-03-18 1983-09-28 Bull S.A. Method and device for the protection of software delivered by a supplyer to a user
US5155680A (en) * 1986-10-24 1992-10-13 Signal Security Technologies Billing system for computing software
EP0457677A1 (en) * 1990-05-16 1991-11-21 Aeg Schneider Automation Method for managing the rights-of-use of software on a computer work station and system for carrying out the method
EP0613073A1 (en) * 1993-02-23 1994-08-31 International Computers Limited Licence management mechanism for a computer system
WO1997004412A2 (en) * 1995-07-19 1997-02-06 Cable Television Laboratories, Inc. Method for protecting publicly distributed software
WO1997040448A1 (en) * 1996-04-23 1997-10-30 Chou Wayne W Method of metering and protecting computer software

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1164456A1 (en) * 2000-05-15 2001-12-19 Siemens Aktiengesellschaft Software protection mechanism

Also Published As

Publication number Publication date
EP1049969A1 (en) 2000-11-08
AU2168599A (en) 1999-08-16
FR2774187A1 (en) 1999-07-30
CA2319773A1 (en) 1999-08-05
FR2774187B1 (en) 2000-03-31
CN1295682A (en) 2001-05-16

Similar Documents

Publication Publication Date Title
CA2971670C (en) Method for processing a transaction from a communication terminal
EP0089876B1 (en) Method and device for the protection of software delivered by a supplyer to a user
RU2388051C2 (en) Random password, automatically generated by basic input/output (bios) system for protecting data storage device
US20070061893A1 (en) Methods and devices for copy protection of software
FR2861875A1 (en) PORTABLE DATA STORAGE DEVICE WITH USB INTERFACE PROTECTED BY BIOMETRIC PARAMETERS, COMPRISING A BIOMETRIC DATA PROCESSOR ACCESSIBLE THROUGH THE USB INTERFACE
CN101523397A (en) Transferring licensed digital content between users
EP0870222A2 (en) Conditional access method and device
FR2767624A1 (en) Portable secure communications system
EP0552077B1 (en) Mass memory card for microcomputer with facilities for execution of internal programs
EP1240570A2 (en) Capability-based access control for applications in particular co-operating applications in a chip card
EP1086411B1 (en) Method for verifying the execution of a software product
EP0552079A1 (en) Mass memory card for microcomputer
FR2765985A1 (en) METHOD FOR MANAGING A SECURE TERMINAL
FR2762417A1 (en) Security system preventing unauthorised copying of computer software from distribution disks
EP0720098B1 (en) Apparatus for securing information systems organised around microprocessors
WO1999039256A1 (en) Simultaneous protection for several types of software of several software designers
CH716295A2 (en) A method of multiple signature of a transaction intended for a blockchain, by means of cryptographic keys distributed among the nodes of a peer-to-peer network.
EP2927857A1 (en) Method for verifying the authenticity of a terminal, corresponding device and program
FR2937442A1 (en) MONITORING THE USE OF VIRTUAL MACHINES
FR3058814A1 (en) METHOD FOR PROCESSING TRANSACTIONAL DATA, COMMUNICATION TERMINAL, CARD READER AND CORRESPONDING PROGRAM.
EP1299837A1 (en) Method for online commercial distribution of digital goods through a communication network and electronic device for purchasing electronic goods distributed by said method
WO2008084154A2 (en) Processing of data associated with a digital service
FR2812423A1 (en) Card payment for an Internet transaction, uses code table prepared when card is manufactured with server interrogation of user who must return correct entries from the code table
WO2014135526A1 (en) System and method for managing at least one online application, portable usb user object and remote device of the system
CH716300A2 (en) Process for signing a transaction intended for a blockchain, by means of a cryptographic key distributed among the nodes of a peer-to-peer network on which this blockchain is deployed.

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 99804576.4

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: IN/PCT/2000/00107/DE

Country of ref document: IN

ENP Entry into the national phase

Ref document number: 2319773

Country of ref document: CA

Ref document number: 2319773

Country of ref document: CA

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 21685/99

Country of ref document: AU

NENP Non-entry into the national phase

Ref country code: KR

WWE Wipo information: entry into national phase

Ref document number: 1999901657

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 09601287

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1999901657

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWW Wipo information: withdrawn in national office

Ref document number: 1999901657

Country of ref document: EP