PROCEDURES FOR SECURING THE USE OF SOFTWARE
Patent Information
- Application Number
- DE602022016915
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-05-10
- Filing Date
- 2022-05-09
- Publication Date
- 2025-07-02
- Estimated Expiration
- 2042-05-09
AI Technical Summary
Existing methods for securing electronic processor software are vulnerable to illegal modifications and data theft due to the circumvention of signature verification techniques, especially with the advent of quantum computers, affecting networked devices and fleets.
A method and device that utilize a first register with associated information and a second register containing software files, where any modification of the second register resets or modifies the first register, ensuring authorized software initiates subsequent changes, thus securing data access and communication encryption.
Ensures secure software execution by preventing unauthorized modifications and ensuring only authorized software can access data and encrypt communications, enhancing security against illegal software replacements and data corruption.
Description
Technical field
[0001] The present invention relates to methods and computer program products for securing the use of software intended to be executed by an electronic processor of an apparatus. Prior art
[0002] Electronic processors execute startup software when they are powered up, placed in read-only memory or persistent memory, but whose content can be modified. This offers the possibility for the processor vendor to be able to update the startup software over time, as explained in particular in US patent 5,944,821. This also allows a processor vendor or reseller to be able to modulate the possible uses of said processor by loading it with different startup software.
[0003] This flexibility, however, opens the way to illegal software replacements that can lead to processor malfunctions or even the theft or corruption of data to which the processor has access. This concerns all types of software, including boot software, but also software used in particular for verifying software signatures. It is therefore important to distinguish and / or prevent a so-called illegal installation or modification, as opposed to a legal installation corresponding to the first installation of software or to a modification already installed, approved by the version of the software already installed or by other software installed legally.
[0004] These risks of attack are sometimes limited by the addition of another processor linked to the startup process which verifies that the software publisher is legitimate. This verification can also be done by the protected processor itself, which will then execute at startup software to verify the publisher of a second startup software, which will then only be executed if the first software allows it, this permission being given after the verification of the identity of the publisher of the second software.
[0005] These checks are however generally made by verifying the signature of the verified software, the signature of said software generally including the secret word, or hash, of the software, this hash being encrypted in such a way that only the legitimate issuer can have the hash decrypted by the verification software.
[0006] Another method of verifying the boot software is to have, in addition to the boot software verification software, a registry in which the legitimate hash is stored, by which the boot software will be verified the next time the software is started; this legitimate hash can be updated, for example, by a function included in the initial boot software.
[0007] However, these techniques are all circumventable if it is possible to deliberately create software with the same hash as the legitimate software, as disclosed in US application 2010 / 0185845. This possibility is unfortunately possible, as the known encryption methods MD5 and Sha1 are counterfeit. WO2016 / 081404 A1 is part of the prior art.
[0008] The advent of quantum computers should also make it possible to counterfeit encrypted words and will therefore make these software checks even more circumventable.
[0009] Illegal modifications to software are particularly penalizing for electronic processors registered with other devices or processors, particularly within a network or fleet, because their registration becomes invalid if their software is replaced by illicit software. Statement of the invention
[0010] There is a need to improve the security and protection of electronic processors or their use, in particular to provide a method for overcoming the disadvantages of known methods. Summary of the invention Process
[0011] The invention aims to meet this need and achieves this, according to one of its aspects, by means of a method for securing the use of software intended to be executed by an electronic processor of a device, said electronic processor comprising or having access at least to a first register on which is located at least one associated information previously generated and necessary to access data used by said software and / or to encrypt or decrypt communication data with another device intended for or originating from the software, and a second register containing at least one file of the software and / or data necessary for the identification or encryption of a file of said software, in particular a hash, method in which, upon any modification of the second register or any request to modify said second register, the first register is reset or said at least one associated information of the first register is modified in a predefined manner, such that, in order to access data used by and / or originating from said software, a subsequent modification of the first register is authorized following this reset or this first modification by an instruction of the software having initiated the modification of the second register or by authorized software determined beforehand.
[0012] Thanks to the invention, the use of the software is thus secured: on the one hand, the communications managed by the software for the electronic processor coming from or going to another device can no longer be encrypted with keys exchanged with the other device if said software has not itself initiated its own change or has been approved by authorized software; on the other hand, the data encrypted by the associated information present on the first register, called security register , is no longer accessible to the software if it has not initiated its own change or by authorized software, said information having been deleted or modified.
[0013] By " authorized software determined in advance ", it is understood as authorized software recognized by the electronic processor and / or the device.
[0014] In a preferred embodiment of the invention, the method uses an electronic circuit, incorporated in or connected to said electronic processor, configured at least to detect any modification of the second register, called executable registry , or any request to modify said second register, and to, following this detection, reset the first register or modify in a predefined manner said at least one associated information of the first register.
[0015] In a variant, the method according to the invention is carried out automatically by code instructions executed by one or more processors.
[0016] Preferably, the first register is reset to zero upon any modification of the second register or any request to modify said second register. In a variant, said first register is reset to a predefined value other than zero.
[0017] Said at least one associated information of the first register can be erased and / or regenerated, in particular during the updating or installation of said software.
[0018] Said at least one associated information of the first register can be modified by a value known or generated by said electronic processor of the device, or by a value transmitted to the device, or by a value known beforehand and / or transmitted to a server or to another device of a network within which the device evolves. Software to be secured
[0019] In the following, the term " software » is used, but the invention can also be applied to an application intended to be executed by an electronic processor.
[0020] Said software is preferably electronic processor startup software.
[0021] Said processor startup software may be stored in a persistent memory of a register. By " persistent memory ", it must be understood that the said register is modifiable but retains the information even when it is no longer supplied by an electric current, as opposed to a live or read-only memory.
[0022] In a variant or in combination, said software is management software, ensuring the management of one or more other third-party software, configured in particular to list this or these third-party software in the device, replace them with new versions, secure their communications with other devices or to sign or encrypt documents. In this case, the secret data necessary for these operations are erased if the management software is modified elsewhere.
[0023] The electronic processor of the device then comprises or advantageously has access to a switch register, containing at least, for each of these other third-party software programs, the identifier of the first and second registers called security registers and executable registers of each of these software programs. Said authorized management software is advantageously configured to check the version of the software to be installed and / or updated, to modify the second register called executable register then the first register called security register associated with the software to be updated and to update the switch register, after verifying the accuracy of the security registers and the executable registers associated with the updated software.
[0024] If the updated software contains secure communication features with an external electronic device, the new keys used for the installed version are preferably communicated by the software that performs the update and therefore possibly the so-called management software before or during the update; this secret data being advantageously communicated during the installation of the new version.
[0025] Said software intended to be executed by the electronic processor of the device can initiate its own update and thus make another version of itself available to the device. In this case, said software preferably verifies the validity of said other version, for example by verifying the electronic signature of said software if it knows an authentic public key of the software publisher, for example recorded in the first so-called security register, or by the random hash method, the mixing number and the encryption key of the hash being for example single-use keys recorded in said first register before its update.A dedicated electronic circuit may be installed on the microprocessor to perform these checks without transmitting to the processor, or to other parts of the processor, the secret associated information contained in the security register, and in particular the single-use key(s) and the number(s) of mixes used by the random hash procedure. Related information
[0026] Said at least one associated information of the first register may comprise at least one or more encryption keys, in particular symmetric, asymmetric, public, private, single-use keys, or series of single-use keys. In a variant, said at least one associated information comprises at least one or more numbers having been randomly generated, in particular random numbers called “mixers” as described in the random hash patent.
[0027] This associated information is used, among other things, to secure communications with other devices, or to encrypt, decrypt or verify the authenticity of data used by said software.
[0028] The associated information may contain other information, including the date and time the software file was modified or uploaded to the device, and / or an identifier to identify the new and old versions of the file, their creation dates, names, publishers, hashes and signatures issued by their own publisher, and the publisher's public key used for the signature.
[0029] The associated information(s) is preferably protected so that it cannot be modified outside of the update and deposit procedure of the software files with which it is associated.
[0030] The associated information(s) is preferably protected so that it can only be used by the software to which the registry is associated or the management software.
[0031] The associated information(s) is preferably protected so that it can only be used by electronic circuits allowing encryption, decryption and signature verification without revealing the contents of said security register to the rest of the electronic circuit or to other electronic circuits.
[0032] In the case of private encryption keys, the associated information(s) may be generated by the software itself in its old version, before its own update.
[0033] In the case of public or single-use encryption keys, they may come from a remote electronic device with which the device communicates using said software before it is updated, or they may be created by the device itself to be communicated to them. Other information, however, may be accessible at the request of said device or the software with which it is associated. Finally, other information, such as for example the modification date of the file, left publicly accessible is preferably recorded as associated information on the executable registry.
[0034] Changing or writing to the second register may result in or require the resetting or modification of the associated information written to the first register.
[0035] The device preferably comprises a generator of symmetric, asymmetric and single-use encryption keys making it possible to record such keys on the security register, preferably not otherwise communicating the private key of the asymmetric key pair to the rest of the processor or to any other electronic circuit, if applicable, and only communicating the other keys, in particular the symmetric and single-use encryption keys, in an encrypted manner and using keys present on the security register associated with the same software in its existing version or with the management software. Registers
[0036] In one embodiment of the invention, the second register contains at least one software file.
[0037] In a variant, a software file being recorded in encrypted form on a third register, the second register comprises at least one or more encryption keys used for decryption and / or verification of the signature of said encrypted file, in particular a symmetric or asymmetric key.
[0038] Preferably, only management software or software whose file is contained in the second register or whose signature is written on the second register can be authorized to modify or is capable of modifying said second register.
[0039] In one variant, only the management software or the software performing its own update is allowed to modify the switch register, and, preferably, is able to prohibit writing to the executable register during its verification and until the switch register corresponding to said software has been updated.
[0040] In a variant, a software file being recorded on a third register, the first register comprises at least one encryption key and a random secret number having been mixed or concatenated with the software file recorded in the third register, and the second register further comprises at least one hashed word, called "the hash", encrypted using said encryption key contained in the first register, of the file resulting from the mixing or concatenation. This offers a very high level of security to verify that the software whose file is on the third register is indeed the one initially deposited and which gave rise to the data in the second register, in particular if the number of decryption attempts is restricted in time, the only solution being to try with all possible random numbers to be able to falsify the file.
[0041] Preferably, each of the software programs is executed on an independent processor or virtual processor. Identification within a network
[0042] Said at least one associated information of the first register may be necessary for the identification of said processor in a network within which the device operates.
[0043] Said at least one associated information of the first register may be necessary for communication with one or more servers of the network and / or one or more other devices of the network.
[0044] In the event that the software is modified and the second register is or must be modified, resulting in the modification of the first register, the device can then identify itself to other devices on the network in which it operates only if it was able to communicate to them, during a last use of the software before modification, information that will allow them to communicate when the device restarts with the software after modification. The device can then use the first register recently modified to identify itself; said first register being necessary for the use of said software and the identification of the device.
[0045] The first register may be altered as soon as the second register is first modified, this alteration rendering inoperative the important functionality of the identification software with the network, in particular with the server(s). The device, after the first register has ceased to be altered by writes to the second register, but before being restarted, must therefore repopulate this first register if necessary and inform the server or other devices or other functionalities of the device with which it can communicate. Device
[0046] The invention also relates to a device for securing the use of software intended to be executed by an electronic processor of an apparatus, in particular for implementing the method according to the invention, the device being incorporated in or having access to said electronic processor, and comprising or having access to at least a first register on which is located at least one associated information previously generated and necessary for accessing data used by said software and / or for encrypting or decrypting communication data with another apparatus intended for or originating from the software, and to a second register containing a file of the software and / or data necessary for the identification or encryption of a file of said software, in particular a hash, the device comprising at least one electronic circuit configured in such a way that, during any modification of the second register or any request for modification of said second register,the first register is reset or said at least one associated information of the first register is modified in a predefined manner, such that, in order to access data used by and / or originating from said software, a subsequent modification of the first register is authorized following this reset or this first modification by an instruction of the software having initiated the modification of the second register.,
[0047] The electronic circuit is advantageously configured to detect the application, at a predefined point of the electronic circuit, of a first predefined voltage indicating the modification of the second register or a modification request, and to apply, following this detection, a second predefined voltage at another predefined point of the electronic circuit, the application of said second voltage causing the reinitialization of the first register or the modification in a predefined manner of said at least one associated information of the first register.
[0048] The electronic circuit is preferably configured such that modification of the second register is permitted only if all the bits of the first register are equal to zero, this condition being verified by a prior reading of the first register and the recording of the largest value of the bits read, in particular recorded or calculated on a third register included or to which the device has access, modification of the second register being prevented if the recorded value, after reading the first register, is equal to one.
[0049] The device according to the invention comprises: a first memory register and a second memory register, called security and executable, as described above, and, preferably: memory registers for each of the software whose protection is ensured, and, preferably, an additional executable register and a security register allowing the writing on such registers and their verification before being designated as usable, as well as a register called a switch register, a module configured to generate random numbers, symmetric keys and single-use keys, and / or a module configured to generate asymmetric key pairs, and / or a module configured to calculate hashes, a module configured to calculate and / or verify electronic signatures, in particular using symmetric, asymmetric keys or random hashes, a module configured to encrypt and decrypt using symmetric, single-use or asymmetric keys,and a module configured to monitor the physical integrity of electrical circuits and electronic components.
[0050] A software or hardware failure or error that may lead to the corruption of one of the executable files, executable registers or security registers, at least one software secured by the device and its associated security register, in particular the one that allows the installation of other software as well as its associated information, is advantageously coded on a preferably indelible memory, in particular of the ROM type, and preferably inaccessible to processors but copyable on one of the executable and security registers. This thus makes it possible to establish a secure connection with a server which can then order the updating of said software and the possible installation of other software.
[0051] The device according to the invention also preferably comprises a means of physical protection so that the content of certain of the memory registers of the device, in particular the first so-called safety registers, cannot be observed even with sophisticated observation means, such as for example electronic microscopes or by short-circuiting certain electronic circuits, without the access required for such actions triggering the erasure of said registers.
[0052] To prevent the processor(s) and the memory it(they) uses from being replaced by others and accessing the functionalities of the safety register, the latter as well as the processor(s) linked to the device and the memory used by said processors are preferably arranged so that any physical modification of said processor or any physical modification of the memory, or any electrical disturbance is detected and results in the erasure of the first register, called the safety register.
[0053] The device according to the invention can circulate currents in microcircuits surrounding said processors and memory registers, preferably when these are powered up, and measure the intensity of said currents and / or the inductance of each of these circuits and / or the capacitance between each or some of these circuits, and / or the time taken by an electrical signal to travel through the circuit(s). Any variation in one of these measurements or any variation relative to a reference state may indicate a physical modification probably intended to access the circuits of the processors or the memory. The device can also comprise an electric accumulator or an electric battery configured to carry out these checks when the circuit is not powered up.
[0054] Advantageously, the device can record, when implementing the method according to the invention in the case of a communication of message(s), the identity, and in particular the name, the publisher and the version of the software in particular if this information is recorded in the second register; this recording can be done by adding headers to the messages communicated, this header then advantageously forming part of the message on which the encryption or the electronic signature relates.
[0055] The characteristics stated above for the method apply to the device, and vice versa. Computer program products
[0056] The invention also relates to a computer program product for securing the use of software intended to be executed by an electronic processor, said electronic processor comprising or preferably having access to functionalities for encryption and / or decryption and / or verification of electronic signatures requiring digital keys recorded in a first register called the security register which is erased during any modification of a second register called the executable register on which the code of the secure software is written or on which a hash or a random hash, possibly encrypted, present on the second register called the executable register is used to verify the authenticity of the software before or during its execution.
[0057] The invention also relates to a computer program product for implementing the method for securing the use of software intended to be executed by an electronic processor of an apparatus according to the invention, said electronic processor comprising or having access to at least a first register on which is located at least one associated information previously generated and necessary for accessing data used by said software and / or for encrypting or decrypting communication data with another apparatus intended for or originating from the software, and to a second register containing at least one file of the software and / or data necessary for the identification or encryption of a file of said software, in particular a hash, the computer program product comprising a medium and recorded on this medium instructions readable by a processor so that, when executed,upon any modification of the second register or any request to modify said second register, the first register is reset or said at least one associated information of the first register is modified in a predefined manner, such that, in order to access data used by and / or originating from said software, a subsequent modification of the first register is authorized following this reset or this first modification by an instruction of the software having initiated the modification of the second register or by authorized software determined beforehand.,
[0058] The characteristics set out above for the method and the device apply to computer program products.
[0059] The invention also relates to a computer-readable information medium, comprising instructions for a computer program product enabling the functionalities mentioned above. Apparatus and applications of the invention
[0060] The device may be any electronic device comprising at least one electronic processor.
[0061] Preferably, all software executed by the device is started using the method according to the invention. If software is allowed to be executed without having been started according to the method, those having access to the security device are preferably installed in a virtual part of the processor protected, both in reading and writing memory, from the possible actions of the software which have not been started by said security device.
[0062] Identifiers of other software executed by the device, and in particular those started by the device, are also advantageously transmitted with any communication, as well as possibly their hash or their random hash; a remote device can then possibly verify that all this software has been checked so as not to pose a security problem.
[0063] The device can be used in particular: to secure the exchange of information with a remote data server, to transport data and exchange it with other similar devices connected to the same server or to servers connected together, to make measurements and then communicate them to a remote server, these measurements being able to be for example: o physical measurements of pressure, temperature, heat, dimension, or others, o Metrological measurements such as atmospheric temperature, wind speed and direction, rainfall or wave height, o consumption measurements such as quantities of electricity passing through a cable, or quantity of heat in a heating pipe, or water in a water pipe, o measurements of use of parts located in machines or of machines themselves, o geolocation measurements, o kinematic measurements such as speed or acceleration and direction of a vehicle,to secure data transmissions to and from a server, to retransmit video images or sounds to a server, to retransmit to a server the identities of RFID chips passing within its field of 'vision', or to control a door or window lock from a server or another object connected to said server. Secure network router firmware. Secure smart card firmware Secure the firmware of smart card readers or multiple readers, with or without contact. Brief description of the drawings
[0064] The invention may be better understood by reading the detailed description which follows, non-limiting examples of its implementation, and by examining the attached drawing, in which: [ Fig 1 ] there Figure 1 represents an example of a device for securing the use of software according to the invention, [ Fig 2 ] there Figure 2represents a variant of a device for securing the use of software according to the invention, [ Fig 3 ] there Figure 3 represents an example of contents of the switch register according to the invention, [ Fig 4 ] there Figure 4 represents an example of steps of using a device according to the invention, and [ Fig 5 ] there Figure 5 represents another example of steps of using a device according to the invention. Detailed description
[0065] It has been illustrated at the Figure 1 an example of a device according to the invention, for securing the updating of software intended to be executed by an electronic processor P of a device.
[0066] In this example, the software is a startup software of the processor P, and a software file, its signature, an encryption key for decrypting a file of said software recorded in encrypted form are recorded in a second register R2 called executable, to which the electronic processor P has access. The latter also has access to a cryptographic module MC which can read a first register R1 called security, on which there is at least one associated information previously generated and necessary to access data used by said software and / or to encrypt or decrypt communication data with another device intended for or originating from the software. The Processor P also has direct write access to the security register but does not have direct read access.
[0067] A voltage applied to the write terminal B1 allowing writing to the executable register R2 causes the application of a voltage to the erase terminal B2 of the safety register R1.
[0068] The software being loaded into the processor and communicating with a server can, in order to carry out its own update: Download the new version and its signature verify the new version by copying the new version into the cryptographic module so that it: o decrypts the signature using the publisher's public key registered in the security registry o calculates the software hash o compares the hash and the decrypted signature Download new encryption keys to communicate with the server after the update,and a possible new public key of the software publisher verify the new version of the encryption keys by copying said new version into the cryptographic module so that it: o decrypts the signature using the server's public key recorded in the security register o calculates the hash of the keys o compares the hash and the decrypted signature Copy the downloaded software to the executable register R2 Possibly copy the new signature to the security register R1 Copy the new encryption keys to communicate with the server to the security register R1 Initialize the processor restart, Processor startup
[0069] The P processor starts by loading the software present in the executable register R2. Communication with the server
[0070] To send secure data to the server, the processor P sends the unsecured data to the cryptographic module which returns it secure, i.e. for example encrypted and signed, and which the processor then sends to the server via a data network such as the Internet.
[0071] To receive secure data from the server, the processor sends the data it has received secured via a data network such as the Internet, to the cryptographic module which returns it decrypted having verified their possible signature.
[0072] In a second example illustrated in the Figure 2, to prevent the device from being able to stop working if it is stopped between the erasure of the first security register R1 and the writing thereon of modified and valid data, the device according to the invention also has access to a third register R3, called "executable bis", on which a software file or a key can be recorded allowing it to be decrypted and / or its signature to be verified, and a fourth register R4, called "security bis", the associated information of which is modified during any update of the second register R2, as well as a flip-flop and a switch register R5 indicating choosing which executable register R2 or R3 and which security register R1 or R4 the information must come from to respectively start the software or inform the cryptography module with cryptographic keys and other values stored in the security register.
[0073] The processor can choose to toggle the flip-flop so that it reads either registers R1 and R4 or registers R2 and R3. The flip-flop's toggling is retentive, meaning that the choice of one or the other pair of registers does not change even if the processor is stopped or the circuits are powered down. Only a processor instruction can change this choice. Preferably, the flip-flop can also inform the processor of the choice to which it has been set. Processor startup
[0074] The processor starts by reading the code supplied by the flip-flop from one of the two executable registers. Processor Update:
[0075] The processor: Downloads the new version of the software along with its electronic signature and new keys to communicate with the server after the update. Transfers the new software and the electronic signature to the encryption module. The encryption module decrypts the software and the new encryption keys and their signatures using respectively a symmetric key and a public key issued by the issuer of said software for said software and by the server for the encryption data, present on the security register with which the flip-flop allows communication. The decryption module returns the decrypted software, verified to have been signed by the publisher whose public key is on the security register as well as the encryption data also decrypted and whose origin has been verified.The processor then writes the new software version and the new encryption and hash data of the new software version to the unused executable register and the unused security register. The processor checks that the entry made in the previous step does not contain any writing errors. The processor activates the flip-flop. The processor restarts. Communication between the processor and the server:
[0076] To send secure data to the server, the processor sends the unsecured data to the cryptographic module, which returns it secure, i.e., encrypted and signed, and which the processor then sends to the server via a data network such as the Internet.
[0077] To receive secure data from the server, the processor sends the data it has received secured via a data network such as the Internet, to the cryptographic module which returns it decrypted having verified their possible signature.
[0078] The cryptographic module queries the security register to which it is linked by the flip-flop to know the keys and other parameters to use for encryption, decryption and certification operations.
[0079] In the embodiment illustrated in the Figure 3 an independent processor P0 manages the inputs / outputs of the security device, the allocation of the cryptographic modules P1, P2, .., Pi to the various cryptographic tasks and ensures the management of the executable and security registers; the device having several cryptographic modules which can work simultaneously as described in Figure 5 .
[0080] The device comprises in particular three registers Ra, Rb, Rc organized in the form of tables, the registers Ra and Rb being permanent and the register Rc being permanent if cryptographic processing can be carried out on either side of a power cut.
[0081] The Ra Register associates with a software program on the one hand the number of the line of the Rb register in which its executable register and its security register are located on the other hand the list of cryptographic modules processing data for said software. The Rc Register lists the cryptographic processing tasks in progress and indicates for each task the number of the cryptographic module which makes the calculations. A cross-referencing of the Ra and Rc tables therefore makes it possible to find the identifier of the software which initiated each of the cryptographic tasks.
[0082] We illustrate the Figure 4, an example of executable register management and security, by the processor which is entrusted by an external main processor with the task of registering software in the device.
[0083] In a step 101, it is verified that the software requesting installation is indeed one of the software programs started from one of the executable registers of the tables Ra and Rb, by requesting to decrypt a random number with a key stored in the processor P0, generated and communicated to the software during its startup; then that the software has the right to write new software in the device or to modify a recorded version thereof. The software recorded on the first executable register may for example be the only software program authorized to modify or install other software programs. In a step 102, the device searches in Rb for a free line. In a step 103, the device writes the software code and the security data to the free line of the register Rb. In a step 104, the information is again sent to the register Rb for verification.In a step 105, the number of the line of the register used is entered in the Nob column of the Ra register for the record corresponding to the software, or, if the software is not yet listed there, on a free line of the Ra register, the identifier of the software also being entered there. The updated software is restarted if it was executed during this update. Alternatively, this last step consisting of updating the Ra register is only carried out if the updated software is not being executed, the updating of said Ra register then only occurring when said software is stopped.
[0084] If only the signature or hash of the software or the hash of the software mixed with a secret number is recorded in an executable register and not a software file, the adequacy of the signature, or of the hash recorded in said executable register is preferably systematically verified before starting said software. The public key of the publisher of the signature of said software may have been recorded in the security register, as well as, where applicable, the secret mixing number, at the time of the software update and the location of the software file entered in the executable register. To prevent the processor from trying multiple times to circumvent the verification by using random numbers at random, the number of verification attempts over time is preferably limited.
[0085] There Figure 5represents the various steps of the process by which the device responds to the request for software secured by said device by performing cryptographic operations.
Claims
1. Method for securing the use of software intended to be executed by an electronic processor of a unit, said electronic processor comprising or having access at least to - a first register (R1) on which there is at least one associated information item previously generated and needed to access data used by said software and / or to encrypt or decrypt communication data with another unit intended for or derived from the software, and to - a second register (R2) containing at least one file of the software and / or data needed to identify or encrypt a file of said software, notably a hash, in which method, upon any modification to the second register (R2) or any request to modify said second register, the first register (R1) is reinitialized or said at least one associated information item of the first register is modified in a predefined manner, such that, in order to access data used by and / or derived from said software, a subsequent modification of the first register (R1) is authorized following this reinitialization or this first modification by an instruction of the software having initiated the modification of the second register (R2) or by previously determined authorized software, the method being characterized in that it uses an electronic circuit, incorporated in or connected to said electronic processor, configured at least to detect any modification of the second register (R2) or any request to modify said second register, and to, following this detection, reinitialize the first register (R1) or modify in a predefined manner said at least one associated information item of the first register.
2. Method according to Claim 1, wherein the first register (R1) is reset to zero upon any modification of the second register (R2) or any request to modify said second register.
3. Method according to either one of the preceding claims, wherein said at least one associated information item of the first register (R1) is modified by a value that is known or generated by said electronic processor of the unit, or by a value transmitted to the unit, or by a value that is previously known and / or transmitted to a server or to another unit of a network within which the unit moves around.
4. Method according to any one of the preceding claims, wherein said at least one associated information item of the first register (R1) comprises at least one or more encryption keys, notably symmetrical, asymmetrical, public, private keys, or series of one-time keys, or comprises at least one or more numbers having been generated randomly.
5. Method according to any one of the preceding claims, wherein said software is start-up software of the electronic processor.
6. Method according to any one of the preceding claims, wherein, a file of the software being stored in encrypted form on a third register (R3), the second register (R2) comprises at least one or more encryption keys used in the decryption and / or in the checking of the signature of said encrypted file, notably a symmetrical or asymmetrical key.
7. Method according to any one of the preceding claims, wherein only management software or the software of which a file is contained in the second register (R2) or in a third register (R3) is authorized to modify or is capable of modifying said second register (R2).
8. Method according to any one of Claims 1 to 5, wherein only the software of which a file is contained in the second register (R2) or of which the signature is entered on the second register is authorized to modify or is capable of modifying said second register (R2).
9. Method according to any one of Claims 1 to 5, wherein, a file of the software being stored on a third register, the first register (R1) comprises at least one encryption key and a random secret number having been mixed or concatenated with the file of the software stored in the third register, and the second register further comprises at least one hashed word, encrypted by means of said encryption key contained in the first register, of the file resulting from the mixing or the concatenation.
10. Method according to any one of the preceding claims, wherein, the software being management software ensuring the management of one or more other third-party pieces of software, the electronic processor of the unit comprises or has access to a switch register (R5), containing at least, for each of these other third-party pieces of software, the identifier of the first and second registers of each of these pieces of software.
11. Method according to any one of the preceding claims, wherein said at least one associated information item of the first register is used for the identification of said processor in a network within which the unit moves around.
12. Device for securing the use of software intended to be executed by an electronic processor of a unit, notably for the implementation of the method according to any one of the preceding claims, the device being incorporated in or having access to said electronic processor, and comprising or having access at least to a first register (R1) on which there is at least one associated information item previously generated and needed to access data used by said software and / or to encrypt or decrypt communication data with another unit intended for or derived from the software, and to a second register (R2) containing a file of the software and / or data needed to identify or encrypt a file of said software, notably a hash, the device comprising at least one electronic circuit configured such that, upon any modification of the second register (R2) or any request to modify said second register, the first register (R1) is reinitialized or said at least one associated information item of the first register is modified in a predefined manner, such that, in order to access data used by and / or derived from said software, a subsequent modification of the first register (R1) is authorized following this reinitialization or this first modification by an instruction of the software having initiated the modification of the second register (R2) or by previously determined authorized software, said electronic circuit being incorporated in or connected to said electronic processor, and being configured at least to detect any modification of the second register (R2) or any request to modify said second register, and to, following this detection, reinitialize the first register (R1) or modify in a predefined manner said at least one associated information item of the first register.
13. Device according to the preceding claim, wherein the electronic circuit is configured to detect the application, at a predefined point of the electronic circuit, of a first predefined voltage indicating the modification of the second register (R2) or a modification request, and to apply, following this detection, a second predefined voltage at another predefined point of the electronic circuit, the application of said second voltage provoking the reinitialization of the first register or the modification in a predefined manner of said at least one associated information item of the first register.
14. Computer program product for the implementation of the method, as defined in any one of Claims 1 to 11, for securing the use of software intended to be executed by an electronic processor of a unit, said electronic processor comprising or having access at least to a first register (R1) on which there is at least one associated information item previously generated and needed to access data used by said software and / or to encrypt or decrypt communication data with another unit intended for or derived from the software, and to a second register (R2) containing at least one file of the software and / or data needed to identify or encrypt a file of said software, notably a hash, the computer program product comprising a medium and, stored on this medium, processor-readable instructions so that, when executed, upon any modification of the second register (R2) or any request to modify said second register, the first register (R1) is reinitialized or said at least one associated information item of the first register is modified in a predefined manner, such that, in order to access data used by and / or derived from said software, a subsequent modification of the first register (R1) is authorized following this reinitialization or this first modification by an instruction of the software having initiated the modification of the second register (R2) or by previously determined authorized software.