Process to protect, using at least one blank unit (60) including at least memorization means (15) and processing means (16), a vulnerable software (2v) against its unauthorized usage, said vulnerable software (2v) being produced from a source (2vs) and working on a data processing system (3), said protection process comprising:
- during a protection phase (P):
- defining:
- at least one software execution characteristic, liable to be monitored at least in part in a unit (6),
- at least one criterion to abide by for at least one software execution characteristic,
- detection means (17) to implement in a unit (6) and enabling to detect that at least one software execution characteristic does not abide by at least one associated criterion,
- and coercion means (18) to implement in a unit (6) and enabling to inform the data processing system (3) and/or modify the execution of a software when at least one criterion is not abided by,
- constructing exploitation means enabling to transform the blank unit (60) into a unit (6) able to implement the detection means (17) and the coercion means (18), creating a protected software (2p):
- by choosing at least one software execution characteristic to monitor, among the software execution characteristics liable to be monitored,
- by choosing at least one criterion to abide by for at least one chosen software execution characteristic,
- by choosing, at least one algorithmic processing which, during the execution of the vulnerable software (2v), uses at least one operand and enables to obtain at least one result, and for which at least one chosen software execution characteristic, is to be monitored,
- by choosing at least one portion of the source of the vulnerable software (2vs) containing, at least one chosen algorithmic processing,
- by producing the source of the protected software (2ps) from the source of the vulnerable software (2vs), by modifying at least one chosen portion of the source of the vulnerable software (2vs) to obtain at least one modified portion of the source of the protected software (2ps), this modification being such that:
- during the execution of the protected software (2p) a first execution part (2pes) is executed in the data processing system (3) and a second execution part (2peu) is executed in a unit (6), obtained from the blank unit (60) after upload of information,
- the second execution part (2peu) executes at least the functionality of at least one chosen algorithmic processing,
- and during the execution of the protected software (2p), at least one chosen execution characteristic is monitored by means of the second execution part (2peu) and the fact that a criterion is not abided by leads to a modification of the execution of the protected software (2p),
- and by producing:
- a first object part (2pos) of the protected software (2p), from the source of the protected software (2ps), said first object part (2pos) being such that during the execution of the protected software (2p), appears a first execution part (2pes) which is executed in the data processing system (3) and whose at least a portion takes into account that at least one chosen software execution characteristic is monitored,
- and a second object part (2pou) of the protected software (2p), containing the exploitation means implementing the detection means (17) and the coercion means (18), said second object part (2pou) being such that, after upload to the blank unit (60) and during the execution of the protected software (2p), appears the second execution part (2peu) by means of which at least one chosen software execution characteristic is monitored and by means of which the fact that a criterion is not abided by leads to a modification of the execution of the protected software (2p),
- and uploading the second object part (2pou) to the blank unit (60), with the intention of obtaining the unit (6),
- and during a usage phase (U) during which the protected software (2p) is executed:
- in the presence of the unit (6):
- and as long as all the criteria corresponding to all the monitored execution characteristics of all the modified portions of the protected software (2p) are abided by, enabling said portions of the protected software (2p) to work nominally and consequently enabling the protected software (2p) to work nominally,
- and if at least one of the criteria corresponding to a monitored execution characteristic of a portion of the protected software (2p) is not abided by, informing the data processing system (3) of it and/or modifying the functioning of the portion of the protected software (2p), so that the functioning of the protected software (2p) is modified,
- and in the absence of the unit (6), in spite of the request by a portion of the first execution part (2pes) to trigger the execution in the unit (6), of the functionality of a chosen algorithmic processing, in not being able to fulfill said request correctly, so that at least said portion is not executed correctly and that, consequently, the protected software (2p) is not completely functional.