EP2449497A1 - Procede de detection d'une tentative d'attaque, support d'enregistrement et processeur de securite pour ce procede - Google Patents
Procede de detection d'une tentative d'attaque, support d'enregistrement et processeur de securite pour ce procedeInfo
- Publication number
- EP2449497A1 EP2449497A1 EP10731487A EP10731487A EP2449497A1 EP 2449497 A1 EP2449497 A1 EP 2449497A1 EP 10731487 A EP10731487 A EP 10731487A EP 10731487 A EP10731487 A EP 10731487A EP 2449497 A1 EP2449497 A1 EP 2449497A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- attack
- processor
- concomitance
- events
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
Definitions
- the invention relates to a method for detecting an attempt to attack a security processor by the security processor itself.
- the invention also relates to an information recording medium and a security processor for the implementation of this method.
- Security processors are, generally, hardware components containing confidential information such as cryptographic keys or access rights that only legitimate users can use. To preserve the confidentiality of this information, they are designed to be as robust as possible against attack attempts by hackers.
- a security processor is a smart card equipped with an electronic processor.
- Security processors are subject to different types of attack. Some of these attacks are aimed at extracting or determining the confidential information contained in the security processor. For this purpose, a multitude of attacks have been developed. For example, some of these attacks seek abnormal operation of the security processor by processing messages built by hackers. Other more invasive methods seek to disrupt the operation of the security processor at key moments in its operation by changing its supply voltage or using a laser beam directed to the security processor.
- Card sharing is to decipher by the same security processor several encrypted control words from different receivers. As before, all these receivers can then descramble the scrambled multimedia content while only one of these receivers is entitled to access the content.
- the countermeasure is an action that aims to prevent the attack against the security processor from lasting or can not be fruitful.
- the difficulty is that events representative of an attempted attack may also occur in the absence of an attempted attack.
- it is necessary to avoid producing false detections of attempted attack because they can result in the untimely execution of countermeasures which then impede the legitimate user of the security processor.
- the predetermined threshold a value much higher than all the measurements that can be obtained in the absence of attack.
- the choice of a high predetermined threshold makes some attacks undetectable or slows the detection of an attack attempt.
- the invention aims to remedy this problem by proposing a method of detecting an attack attempt also comprising:
- the above method takes into account the temporal proximity between different events occurring in the security processor. This makes it possible to detect an attack attempt more quickly or to detect an attack attempt that could not be detected by observing the measurement of a single event. Indeed, taken individually, the measurement of each of these events may not be quickly representative of an attack attempt since these events occur during normal operation of the security processor. On the other hand, when these events occur almost concomitantly when normally they must occur independently of each other, this indicates, with a high degree of confidence, that an attempted attack takes place. The above method therefore allows the security processor to detect quickly and with a high degree of confidence that it is the victim of an attempted attack. The execution of the appropriate countermeasures can then be triggered more quickly.
- the value of the attack indicator is constructed from several indices of concomitance between different measured events and weighting the importance of these concomitance indices with respect to one another by means of a predetermined game weighting coefficients;
- the method comprises constructing a plurality of attack indicator values by using a plurality of different sets of weighting coefficients between the same concomitance indices, each set of weighting coefficients being predetermined to be more sensitive to a different attack attempt. those to which the other indicators are more sensitive;
- the weighting coefficient of the same concomitance index is the same in all the sets of weighting coefficients used to construct the different values of attack indicators
- the measurement of an event is limited to a sliding time window so as not to take into account events that occurred outside this time window, to establish that the events are concomitant in the measurement of this time window ;
- At least one of the events measured is the detection of a security processor operating error, each occurrence of which causes the security processor to stop the current processes and automatically reset itself to resume these processes from the beginning;
- weighting coefficients between the concomitance indices makes it possible to simply modify the sensitivity of the attack indicator constructed to a particular type of attack by modifying the value of these weighting coefficients.
- the use of several different sets of weighting coefficients makes it possible, from the same set of concomitance indices, to construct several attack indicators each dedicated to detecting a different attack attempt,
- the invention also relates to an information recording medium comprising instructions for executing the above method, when these instructions are executed by an electronic computer.
- the invention also relates to a security processor comprising:
- FIG. 1 is a schematic illustration of a scrambled multimedia content transmission system comprising a security processor
- FIG. 2 is a schematic illustration of a matrix of weighting coefficients used by the security processor of the system of FIG. 1,
- FIG. 3 is a schematic illustration of an alarm threshold table used by the security processor of FIG. 1
- FIG. 4 is a flowchart of a method for detecting an attempt to attack the security processor of the system of FIG. 1.
- Figure 1 shows a pay system broadcast content multimedia.
- system 2 is a system for broadcasting multiple scrambled TV channels. The descrambling of each of these television channels or group of television channels is conditioned to the payment of a subscription by subscribers.
- the terms "scramble” / "encrypt” and “unscramble” / “decipher” are considered synonymous.
- the system 2 comprises at least one transmitter 4 scrambled multimedia content and a multitude of receivers able to descramble the multimedia content broadcast by the transmitter 4. To simplify Figure 1, only a receiver 6 has been shown. For example, the other receptors are identical to the receiver 6.
- the receiver 6 is connected to the transmitter 4 via a network 8 long distance information transmission.
- the network 8 may be a wireless telecommunications network or a wired network such as the Internet.
- the transmitter 4 broadcasts multiplexed multimedia content with ECM (Entitlement Control Message) and EMM (Entitlement Management Message).
- ECM Entitlement Control Message
- EMM Entitlement Management Message
- Each ECM message comprises at least one CW * cryptogram of a CW control word for descrambling the scrambled multimedia content.
- the receiver 6 comprises a decoder 10 and a security processor 12 removably connected to the decoder 10.
- the decoder 10 comprises a receiver 14 of the data transmitted by the transmitter 4 connected to a demultiplexer 16.
- the demultiplexer 16 demultiplexes the received data and transmits the scrambled multimedia content to a descrambler 18 and ECM or EMM messages to the processor. security 12.
- the processor 12 receives the cryptogram CW * and decrypts the cryptogram to return the CW control word in clear to the descrambler 18. This decryption is only authorized if the access titles contained in the ECM message correspond to access rights stored in the security processor 12.
- the processor 12 is the processor of a smart card.
- the descrambler 18 descrambles the scrambled multimedia content using the CW control word decrypted by the security processor 12.
- the multimedia content descrambled is then, for example, displayed in clear on a screen 20 so that the displayed multimedia content is directly perceptible and comprehensible to the user.
- the processor 12 comprises an electronic computer 24 connected to sensors 26, 27 and a set 30 of registers.
- the sensor 26 comprises a voltage transducer capable of converting the supply voltage of the processor 12 into a digital data item that can be used by the computer 24.
- the sensor 27 comprises a light transducer capable of converting photons of a laser beam directed on the processor 12 into digital data that can be used by the computer 24.
- the assembly 30 comprises eleven registers referenced Co to C10.
- Each of the registers Ci to C10 is intended to contain a measurement of an event that can be triggered by an attempt to attack the processor 12.
- the measured events can also occur in the absence of an attempted attack. However, in the absence of attempted attacks these measured events occur independently of one another. Thus, it is likely that in the absence of an attempted attack, the measured events occur concomitantly. Concomitantly, it is meant that they occur during the same time window.
- a time window is associated with each measured event. This time window can have a finite duration or, on the contrary, infinite. In the case of a finite duration, this means that the events that occur outside this time window are not taken into account in the measurement of this event.
- a time window of finite duration is a sliding time window.
- This sliding time window has a finite duration that is shifted as time passes to take into account only the most recent events for the measurement of this event.
- An infinite duration means that all events are taken into account for the measurement since the measurement of this event was triggered.
- the measurement of an event consists in counting the number of times this event has occurred during the time window associated with this event.
- each of the registers contains a representative number of the number occurrences of the same event. Therefore, in the rest of this description, the registers Ci are called counters Cj.
- measured events There is a large number of measurable events. Typically, measured events fall into one of the following categories:
- the operating errors may be errors in the execution of the code of the operating system of the processor 12, the measurement by the sensors 26 or 27 of an abnormal situation, the discovery of an integrity error on processed data, ... etc.
- the processes in progress are interrupted and the processor 12 resets automatically.
- the counter Ci contains the number of times a command to consult the data of the processor 12 has been received. Indeed, a certain number of data contained in the processor 12 are freely available. For example, there are commands to consult the identification number of the processor 12 or the access rights stored in the processor 12. The receipt of a consultation command is therefore a normal event as long as it is occasional. On the other hand, enumeration of a large number of data look-up commands of the processor 12 over a short time interval can be caused by an attack attempt.
- the counter C2 indicates the presence of unusual rights registered in the processor 12.
- An unusual right is a right that the operator of the system 2 normally does not use. For example, most operators never enter a security entitlement for security processors longer than one year. Therefore, a right entered in the processor 12 whose validity is greater than one year, for example a right of infinite validity, is an unusual right even if this possibility is technically provided. Similarly, normally, the operator never enters a right allowing access and decryption of all multimedia contents in the security processors. Under these conditions, the registration of a right authorizing access to all these multimedia contents in the processor 12 is considered as an unusual right. Registration of a right Unusual in the processor 12 may come from an operator error but may also be representative of an attack attempt.
- the counter C3 counts the number of messages received by the processor 12 which have no functional utility for the processor.
- a message without any functional utility can be:
- a message deleting non-existent data for example: access code, (7) in the processor, or
- the counter C 4 counts the number of syntax errors in the messages transmitted to the processor 12, that is to say typically in the ECM and EMM messages transmitted to this processor. Indeed, the syntax or structure of ECM and EMM messages respects a predetermined grammar.
- the processor 12 can therefore detect these syntax errors and count them in the counter C 4 . Syntax errors can be caused by an operator error but also during an attack attempt.
- the counter C5 is a counter of replayed commands whereas they should not normally be replayed several times.
- the replay of an order consists of sending the same command several times to the security processor.
- the command may be a message for updating certain data stored in the processor 12.
- a replay of a message may be detected by the processor 12 by recording the date of the last update message.
- the counter Ce counts the number of integrity errors detected in the messages received by the processor 12.
- the messages received by the processor 12 contain data and a cryptographic redundancy of these data, which which allows the processor 12 to verify that there is no error in the received data.
- the redundancy on the data can be obtained by integrating in the message received a signature or a CRC ("Cyclic Redundancy Check") data contained in this message. Errors in the data contained in the message can be caused by disturbances during their transport in the network 8 or in the decoder 10. However, erroneous data are also used during an attack attempt.
- the counter C 7 counts the number of integrity errors on data contained in the processor 12.
- a certain number of data recorded in the processor 12 are associated with a cryptographic redundancy for verifying the integrity of the respective recorded data. Again, it may happen accidentally, for example following electromagnetic disturbances, that a data stored in the processor 12 is erroneous. However, the presence of erroneous data recorded in the processor 12 may also be representative of an attack attempt.
- the counter Cs counts the number of traps during the execution of the operating system code of the processor 12.
- a trap is an unwanted or erroneous jump of an instruction of the code executed by the processor 12 to another instruction. These traps in code execution can be detected by executing the same instructions twice on the same data. If the two executions of the code do not give the same result, it signals a diversion. Unintentional jumps of instructions in the code executed by the processor 12 can be caused by playing on the supply voltage of the processor 12 or by directing a laser beam towards this processor 12.
- the counter Cg count the number of times the data recovery procedure following a tear of the processor 12 is executed.
- the breakout of the processor 12 consists in removing, during operation, the processor 12 of the decoder 10 so that the power of the processor 12 is interrupted during data processing.
- the data recovery procedure makes it possible to restore, after such a power failure, the processor 12 in the state in which it was before this power failure.
- the processor 12 may be accidentally torn from the decoder 10. However, untimely power cuts to the processor 12 are also frequently used during an attack attempt to prevent the processor 12 from executing countermeasures.
- the counter C10 counts the number of times an abnormal supply voltage is measured by the cumulative sensor 26 to the number of times a laser beam is detected by the sensor 27.
- abnormal voltages and the presence of a laser beam are typical of an attempt to attack the processor 12.
- these sensors 26 and 27 can also detect an abnormal voltage or the presence of a laser beam accidentally following, for example, electromagnetic disturbances caused by a device near the processor 12 and this even in the absence of attempted attack.
- the powering on of the decoder 12 may result in the detection of an abnormal voltage by the sensor 26.
- the counter Co is distinguished from the previous counters since it counts an event that occurs only during normal operation of the processor 12 and can not be caused by an attack attempt.
- the event counted by the counter Co is the number of ECM and EMM messages correctly processed by the processor 12.
- the value of this counter Co is used to limit the time memory of some of the previous counters to a sliding time window of finite duration.
- the value of the counter Co is subtracted from the value of the counter Ci, where i> 0, and only the difference between these two counters, brought to zero if it is negative, is used in the calculation of a concomitance index as described below.
- the computer 24 is connected to a memory 32 containing the various data and instructions necessary for the operation of the processor 12.
- the memory 32 comprises:
- a matrix 36 of weighting coefficients and a table 38 of alert thresholds is shown.
- matrix 36 An example of matrix 36 is shown in more detail in FIG. 2.
- This matrix 36 contains as many columns as event counters that can be triggered by an attack attempt.
- the matrix 36 is thus a matrix with ten columns each associated with a counter Ci.
- the matrix 36 also contains nine lines associated, respectively, with the counters C2 to C10.
- each concomitance index is constructed in such a way that its value is all the higher when a large number of events measured by the counters Ci and Cj + 1, respectively, occurred near the same instant.
- each concurrency index QC j + i corresponds to the product of the values of the counters Ci and Cj + 1 at the same instant.
- the alert threshold table 38 illustrated in FIG. 3 comprises a first column containing four warning thresholds Si at S 4 . Each alert threshold is a numeric value and these alert thresholds are ranked in ascending order from top to bottom in table 38.
- the table 38 also contains a second column associating with each threshold If one or more countermeasures noted CMi. Countermeasures are actions performed by the security processor 12 which aim to make it more difficult to extract or determine the data contained in the processor 12 or the misuse of this processor 12.
- the countermeasures CMi associated with the threshold Si are less severe and less disabling for the processor user than those associated with the upper alert threshold Si + i.
- the higher the alert threshold If crossed, the higher the countermeasures CMi executed in response are severe.
- the countermeasures CMi consist in adding redundancy to the conditional branches of the code to be executed by the processor 12. For example, this redundancy is obtained by executing the conditional connection several times and checking that at each execution the result obtained is the same.
- the countermeasure CMi consists in adding in addition to the redundancy on the verification operations of the integrity of the processed data. For example, the integrity of the data is checked several times whereas if the threshold Si is not crossed, it is checked only once. It also consists of verifying the integrity of data whose integrity is not verified if the threshold Si is not crossed.
- the countermeasures CM 2 consist, for example, in adding restrictions on the possibilities of chaining instructions of the code executed by the processor 12. This can be obtained by forcing the processor 12 to execute a complete block of instructions without allowing interruption between the execution of the instructions of this block.
- the countermeasure CM 2 also consists in deleting certain previously authorized functions of the processor 12 when the threshold S 2 has not been crossed. For example, adding new services such as adding a new operator or subscription is prohibited. Access to the administrative functions of the processor 12 can also be prohibited if the threshold S 2 is crossed.
- the countermeasures CM3 consist in modifying the weighting coefficients present in the matrix 36 so that the upper threshold, that is to say S 4 , is easily and rapidly reached when events are measures.
- the sensitivity of the processor 12 to the detection of an attack attempt is increased.
- CM 3 countermeasures also include the systematic and duplicate verification of the integrity of each message received.
- Countermeasures CM 3 can also consist of strengthening the controls of the flow of execution. This may include running twice each portion of the executable code by the processor 12 and compare at the end of these two executions that the results obtained are the same. In case of discrepancy between the results obtained, the counter Ce is incremented.
- the countermeasures CM 4 consist in permanently invalidating the processor 12 so that it is permanently unusable. For example, for this purpose, the confidential information contained in the processor 12 is erased.
- the processor 12 In parallel with the normal operation of the processor 12, it also performs a method of detecting an attack attempt. For this purpose, during a step 50, it measures the events likely to be caused by an attempted attack. Here, this measure consists of counting in the counters C 1 the corresponding event.
- the processor 12 builds three attack indicators, respectively, h, I 2 and I 3 .
- the indicator h is designed to be more sensitive to laser disturbance attack attempts than the indicators I 2 and I 3 .
- a laser disruption attack is to direct a laser beam on the security processor to cause instruction jumps in the code executed by that processor at key moments in its execution. Key moments typically correspond to conditional branching.
- rrij j is the weighting coefficient whose value is contained in matrix 36.
- the indicator I 2 is designed to be more sensitive than the other two to the logical attacks.
- a logical attack is to look for a software flaw or an implementation error in the code executed by the processor 12 so as to obtain abnormal behavior of this processor. For example, the logical attack is to send a very large number of erroneous messages to the processor 12 all different from each other until one of these messages causes abnormal behavior of the processor 12.
- the value of the indicator I 2 is constructed using the following relation:
- I 2 mi, 2 CiC 3 + mi, 3 CiC 4 + m 3 , 3 C 3 C 4
- the indicator I 3 is designed to be more sensitive to differential power analysis (DPA) attempts.
- DPA differential power analysis
- a DPA is to send a large number of messages to the processor 12 to cause a large number of executions of the cryptographic algorithms on a large number of data different and to measure, in parallel, the current consumption of the processor 12. Then, by a statistical analysis on the data collected, it is possible to discover what are the values of the keys or confidential data stored in the processor 12.
- the indicator I 3 is constructed using the following relation:
- I3 ( 114.4C 4 Cs + m4.5C4C6 + ( 115.5CsCe.
- the value of these indicators is compared to the different alert thresholds recorded in the table 38 to detect an attempt to attack.
- the transmitter 4 transmits, for example by means of an EMM or ECM message, new values for the weighting coefficients. Then, during a step 62, the processor 12 receives this message and updates the values of the weighting coefficients contained in the matrix 36.
- the updating of the weighting coefficients makes it possible to easily modify the sensitivity of an indicator to a particular attack attempt.
- the processor 12 may comprise several different matrices of weighting coefficients. Each of these matrices can be used to calculate a respective attack indicator. This then makes it possible to assign to each concomitance index a different weighting coefficient as a function of the attack indicator constructed.
- the use of multiple weighting matrixes can also be useful for modifying the weighting matrix used when a new alert threshold is crossed.
- a single attack indicator can be constructed instead of several.
- alert thresholds associated with a particular attack indicator are therefore not necessarily the same as the alert thresholds associated with another attack indicator.
- the table 38 can also be replaced by a single alert threshold associated with countermeasures.
- One of the counters O can simply count the existence of an event without counting the number of occurrences of this event.
- the value of this counter is codable using a single information bit.
- the value of this existence counter can be associated with a time window of infinite or finite duration.
- the processor 12 may also include a temperature sensor.
- the concomitance index is not limited to the product of two measurements. For example, it may also be a product of more than two measurements. However, increasing the number of measurements multiplied between them also increases the size of the matrix of weighting coefficients.
- countermeasures may be executed in response to crossing an alert threshold by one of the attack indicators.
- other countermeasures may consist of modifying the cryptographic algorithm executed by the processor 12.
- a countermeasure may also consist of using or measuring new events to construct an attack indicator that was previously not not measured. For example, in response to crossing an alert threshold, the events measured by one of the sensors 26 or 27 can be counted whereas previously they were not.
- the computer 24 may be formed of one or more processors. For example, it may be formed of a processor with which a coprocessor is associated. The detection method can then be executed by both the processor and the co-processor.
- the measurement has been described here in the particular case where it is a question of counting the number of occurrences of an event.
- the measurement can also consist in recording in one of the registers the value of an event such as for example a value measured by one of the sensors 26 or 27.
- the value of the counters can also be decremented instead of being incremented as previously described.
- the architecture of the receiver 6 is here only illustrative of a particular situation.
- the descrambler 18 can also be removable.
- the descrambler and the security processor can be implemented without any degree of freedom in the decoder.
- the descrambler and the security processor may be in the form of a software component.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
- Debugging And Monitoring (AREA)
Abstract
Ce procédé de détection d'une tentative d'attaque d'un processeur de sécurité par le processeur de sécurité lui-même, comprend : des mesures (50) de plusieurs événements différents se produisant indépendamment les uns des autres en absence de tentative d'attaque, la construction (52) de la valeur d'au moins un indicateur d'attaque en fonction d'au moins un indice de concomitance entre au moins deux événements différents mesurés, l'indice de concomitance étant représentatif de la proximité temporelle entre les deux événements différents mesurés, et la détection (54) d'une tentative d'attaque si la valeur de l'indicateur d'attaque franchit un seuil prédéterminé.
Description
PROCEDE DE DETECTION D'UNE TENTATIVE D'ATTAQUE, SUPPORT D'ENREGISTREMENT ET PROCESSEUR DE SECURITE POUR CE PROCEDE
[0001] L'invention concerne un procédé de détection d'une tentative d'attaque d'un processeur de sécurité par le processeur de sécurité lui-même. L'invention a également pour objet un support d'enregistrement d'informations ainsi qu'un processeur de sécurité pour la mise en œuvre de ce procédé.
[0002] Les processeurs de sécurité sont, généralement, des composants matériels renfermant des informations confidentielles telles que des clés cryptographiques ou des droits d'accès que seuls des utilisateurs légitimes peuvent utiliser. Pour préserver la confidentialité de ces informations, ils sont conçus pour être le plus robuste possible vis-à-vis de tentatives d'attaque menées par des pirates informatiques. Par exemple, un processeur de sécurité est une carte à puce équipée d'un processeur électronique.
[0003] Les processeurs de sécurité sont soumis à différents types d'attaque. Certaines de ces attaques visent à extraire ou à déterminer les informations confidentielles contenues dans le processeur de sécurité. A cet effet, une multitude d'attaques ont été développées. Par exemple certaines de ces attaques cherchent à obtenir un fonctionnement anormal du processeur de sécurité en lui faisant traiter des messages construits par les pirates informatiques. D'autres procédés plus invasifs cherchent à perturber le fonctionnement du processeur de sécurité à des moments clé de son fonctionnement en jouant sur sa tension d'alimentation ou encore à l'aide d'un faisceau laser dirigé vers le processeur de sécurité.
[0004] D'autres types d'attaque ne cherchent pas à extraire ou à déterminer des informations confidentielles contenues dans le processeur de sécurité mais consistent simplement à utiliser de façon abusive ce processeur de sécurité. Par exemple, dans le domaine de la télévision payante, la redistribution de mots de contrôle (ou « control word sharing » en anglais) et le partage de carte (« card sharing » en anglais) rentrent dans ce type d'attaque. Sommairement, la redistribution de mots de contrôle consiste à distribuer le mot de contrôle déchiffré par le processeur de sécurité vers plusieurs récepteurs. Ces récepteurs peuvent alors déchiffrer les contenus multimédias embrouillés avec ce mot de contrôle alors que l'abonnement n'a été souscrit et payé que pour un seul récepteur.
[0005] Le partage de carte consiste à faire déchiffrer par un même processeur de sécurité plusieurs mots de contrôle chiffrés provenant de différents récepteurs. Comme précédemment, tous ces récepteurs peuvent alors désembrouiller les contenus multimédias embrouillés alors qu'un seul de ces récepteurs est habilité à accéder au contenu.
[0006] Pour lutter contre ces attaques, il est connu de détecter les tentatives d'attaque et, en réponse à cette détection, d'exécuter une contre-mesure.
[0007] Un exemple de procédé de détection de tentative d'attaque et d'exécution, en réponse, de contre-mesure est par exemple décrit dans la demande de brevet EP 1 575 293.
[0008] La contre-mesure est une action qui vise à empêcher que l'attaque contre le processeur de sécurité ne puisse perdurer ou ne puisse être fructueuse. Il existe un grand nombre de contre-mesures exécutables par un processeur de sécurité. Celles- ci vont d'un simple accroissement des mesures de sécurité dans le processeur de sécurité jusqu'à un blocage définitif et irrémédiable du processeur de sécurité qui devient alors inutilisable.
[0009] Pour détecter une tentative d'attaque, il a déjà été proposé des procédés comprenant :
• des mesures de plusieurs événements différents se produisant indépendamment les uns des autres en absence de tentative d'attaque, puis
• de comparer chaque mesure à un seuil prédéterminé respectif pour détecter la présence ou l'absence d'une tentative d'attaque.
[ooio] Toutefois, la difficulté vient du fait que les événements représentatifs d'une tentative d'attaque peuvent aussi se produire en absence de tentative d'attaque. Or, il faut éviter de produire de fausses détections de tentative d'attaque car celles-ci peuvent se traduire par l'exécution intempestive de contre-mesures qui gênent alors l'utilisateur légitime du processeur de sécurité. Pour cette raison, il est connu de choisir pour le seuil prédéterminé une valeur beaucoup plus élevée que toutes les mesures qui peuvent être obtenues en absence d'attaque. Toutefois, le choix d'un seuil prédéterminé élevé rend certaines attaques indétectables ou ralentit la détection d'une tentative d'attaque.
[0011] L'invention vise à remédier à ce problème en proposant un procédé de détection d'une tentative d'attaque comportant également :
- la construction de la valeur d'au moins un indicateur d'attaque en fonction d'au moins un indice de concomitance entre au moins deux événements différents mesurés, l'indice de concomitance étant représentatif de la proximité temporelle entre les deux événements différents mesurés, et
- la détection d'une tentative d'attaque si la valeur de l'indicateur d'attaque franchit un seuil prédéterminé.
[0012] Le procédé ci-dessus prend en compte la proximité temporelle entre différents événements survenant dans le processeur de sécurité. Cela permet de détecter plus rapidement une tentative d'attaque ou de détecter une tentative d'attaque qui ne pourrait pas être détectée par l'observation de la mesure d'un seul événement. En effet, pris individuellement, la mesure de chacun de ces événements peut ne pas être rapidement représentative d'une tentative d'attaque puisque ces événements se produisent lors d'un fonctionnement normal du processeur de sécurité. Par contre, lorsque ces événements se produisent quasiment
concomitamment alors que normalement ils doivent se produire indépendamment les uns des autres, cela indique, avec un fort degré de confiance, qu'une tentative d'attaque a lieu. Le procédé ci-dessus permet donc au processeur de sécurité de détecter rapidement et avec un grand degré de confiance qu'il est victime d'une tentative d'attaque. L'exécution des contre-mesures appropriées peut alors être déclenchée plus rapidement.
[0013] Les modes de réalisation de ce procédé peuvent comporter une ou plusieurs des caractéristiques suivantes :
• la valeur de l'indicateur d'attaque est construite à partir de plusieurs indices de concomitance entre des événements différents mesurés et en pondérant l'importance de ces indices de concomitance les uns par rapport aux autres à l'aide d'un jeu prédéterminé de coefficients de pondération ;
• le procédé comprend la construction de plusieurs valeurs d'indicateurs d'attaque en utilisant plusieurs jeux différents de coefficients de pondération entre les mêmes indices de concomitance, chaque jeu de coefficients de pondération étant prédéterminé pour être plus sensible à une tentative d'attaque différente de celles auxquelles sont plus sensibles les autres indicateurs ;
• le coefficient de pondération d'un même indice de concomitance est le même dans tous les jeux de coefficients de pondération utilisés pour construire les différentes valeurs d'indicateurs d'attaque
• la mesure d'un événement est limitée à une fenêtre temporelle glissante de manière à ne pas prendre en compte des événements qui se sont produits en dehors de cette fenêtre temporelle, ceci pour établir que les événements sont concomitants dans la mesure de cette fenêtre temporelle;
• au moins l'un des événements mesurés est la détection d'une erreur de fonctionnement du processeur de sécurité dont chaque occurrence conduit le processeur de sécurité à arrêter les traitements en cours et à se réinitialiser automatiquement pour reprendre ces traitements depuis le début ;
• la mesure d'un événement consiste à comptabiliser dans un compteur le nombre de fois où cet événement s'est produit, la valeur du compteur constituant la mesure
• l'indice de concomitance entre au moins deux mesures est obtenu en multipliant entre elles ces mesures.
[0014] Ces modes de réalisation du procédé présentent en outre les avantages suivants :
• l'utilisation de coefficients de pondération entre les indices de concomitance permet de modifier simplement la sensibilité de l'indicateur d'attaque construit à un type particulier d'attaque en modifiant la valeur de ces coefficients de pondération,
• l'utilisation de plusieurs jeux différents de coefficients de pondération permet, à partir du même jeu d'indices de concomitance, de construire plusieurs indicateurs d'attaque chacun dédiés à la détection d'une tentative d'attaque différente,
• l'utilisation systématique du même coefficient de pondération pour le même indice de concomitance permet de limiter la quantité de mémoire requise pour stocker ces différents coefficients de pondération,
• limiter la mesure d'un événement à une fenêtre temporelle glissante permet de limiter le nombre de fausses détections de tentative d'attaque causées par l'accumulation dans le temps d'événements mesurés en absence de tentative d'attaque,
• lorsque l'un des événements mesurés est la détection d'une erreur du processeur de sécurité provoquant la réinitialisation de ce processeur de sécurité, la sécurité est accrue en empêchant le blocage intempestif du processeur de sécurité.
[0015] L'invention a également pour objet un support d'enregistrement d'informations comportant des instructions pour l'exécution du procédé ci-dessus, lorsque ces instructions sont exécutées par un calculateur électronique.
[0016] Enfin, l'invention a également pour objet un processeur de sécurité comportant :
- des registres dans lesquels sont stockées des mesures de plusieurs événements se produisant indépendamment les uns des autres en absence de tentative d'attaque, et
- un calculateur, apte :
• à construire la valeur d'au moins un indicateur d'attaque en fonction d'au moins un indice de concomitance entre au moins deux événements différents mesurés dont les mesures sont stockées dans les registres, cet indice de concomitance étant représentatif de la proximité temporelle entre les deux événements différents mesurés, et
• à détecter une tentative d'attaque si la valeur de l'indicateur d'attaque franchit un seuil prédéterminé.
[0017] L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple non limitatif et faite en se référant aux dessins sur lesquels :
• la figure 1 est une illustration schématique d'un système de transmission de contenus multimédias embrouillés comportant un processeur de sécurité,
• la figure 2 est une illustration schématique d'une matrice de coefficients de pondération utilisée par le processeur de sécurité du système de la figure 1 ,
• la figure 3 est une illustration schématique d'une table de seuils d'alerte utilisée par le processeur de sécurité de la figure 1 , et
• la figure 4 est un organigramme d'un procédé de détection d'une tentative d'attaque du processeur de sécurité du système de la figure 1.
[0018] Sur ces figures, les mêmes références sont utilisées pour désigner les mêmes éléments.
[0019] Dans la suite de cette description, les caractéristiques et fonctions bien connues de l'homme du métier ne sont pas décrites en détail. De plus, la terminologie utilisée est celle des systèmes d'accès conditionnel à des contenus multimédias. Pour plus d'informations sur cette terminologie, le lecteur peut se reporter au document suivant :
« Functional model of a conditional access System » EBU Review - Technical european broadcasting union, Brussels, BE, n° 266, 21 décembre 1995.
[0020] La figure 1 représente un système de diffusion payante de contenus multimédias. Par exemple, le système 2 est un système permettant de diffuser plusieurs chaînes de télévision embrouillées. Le désembrouillage de chacune de ces chaînes de télévision ou groupe de chaînes de télévision est conditionné au paiement d'un abonnement par des abonnés. Dans cette description, les termes « embrouiller »/« chiffrer » et « désembrouiller »/ « déchiffrer » sont considérés comme synonymes.
[0021] Le système 2 comprend au moins un émetteur 4 de contenus multimédias embrouillés et une multitude de récepteurs aptes à désembrouiller le contenu multimédia diffusé par l'émetteur 4. Pour simplifier la figure 1 , seul un récepteur 6 a été représenté. Par exemple, les autres récepteurs sont identiques au récepteur 6.
[0022] Le récepteur 6 est raccordé à l'émetteur 4 par l'intermédiaire d'un réseau 8 grande distance de transmission d'informations. Le réseau 8 peut être un réseau de télécommunication sans fil ou un réseau filaire tel qu'Internet.
[0023] Typiquement, l'émetteur 4 diffuse les contenus multimédias embrouillés multiplexes avec des messages de contrôle ECM (Entitlement Control Message) et EMM (Entitlement Management Message). Chaque message ECM comprend au moins un cryptogramme CW* d'un mot de contrôle CW permettant de désembrouiller le contenu multimédia embrouillé.
[0024] Le récepteur 6 comprend un décodeur 10 et un processeur de sécurité 12 raccordé de façon amovible au décodeur 10.
[0025] Le décodeur 10 comprend un récepteur 14 des données transmises par l'émetteur 4 raccordé à un démultiplexeur 16. Le démultiplexeur 16 démultiplexe les données reçues et transmet le contenu multimédia embrouillé à un désembrouilleur 18 et les messages ECM ou EMM au processeur de sécurité 12.
[0026] Le processeur 12 reçoit le cryptogramme CW* et déchiffre ce cryptogramme afin de renvoyer le mot de contrôle CW en clair au désembrouilleur 18. Ce déchiffrement n'est autorisé que si les titres d'accès contenus dans le message ECM
correspondent à des droits d'accès mémorisés dans le processeur de sécurité 12. Par exemple, le processeur 12 est le processeur d'une carte à puce.
[0027] Le désembrouilleur 18 désembrouille le contenu multimédia embrouillé à l'aide du mot de contrôle CW déchiffré par le processeur de sécurité 12. Le contenu multimédia désembrouille est alors, par exemple, affiché en clair sur un écran 20 de manière à ce que le contenu multimédia affiché soit directement perceptible et compréhensible par l'utilisateur.
[0028] Les fonctions et les caractéristiques du processeur 12 pour réaliser les différentes opérations liées au déchiffrement des mots de contrôle CW sont connues et ne sont pas décrites ici plus en détail.
[0029] Le processeur 12 comporte un calculateur électronique 24 raccordé à des capteurs 26, 27 et à un ensemble 30 de registres.
[0030] Le capteur 26 comprend un transducteur de tension apte à convertir la tension d'alimentation du processeur 12 en une donnée numérique exploitable par le calculateur 24.
[0031] Le capteur 27 comprend un transducteur de lumière apte à convertir des photons d'un faisceau laser dirigé sur le processeur 12 en données numériques exploitables par le calculateur 24.
[0032] A titre d'illustration, l'ensemble 30 comprend onze registres référencés Co à C10. Chacun des registres Ci à C10 est destiné à contenir une mesure d'un événement qui peut être déclenché par une tentative d'attaque du processeur 12. Les événements mesurés peuvent également se produire en absence de tentative d'attaque. Toutefois, en absence de tentative d'attaque ces événements mesurés se produisent indépendamment les uns des autres. Ainsi, il est peut probable qu'en absence de tentative d'attaque, les événements mesurés se produisent concomitamment. Par concomitamment, on désigne le fait qu'ils se produisent pendant une même fenêtre temporelle. Ici, une fenêtre temporelle est associée à chaque événement mesuré. Cette fenêtre temporelle peut avoir une durée finie ou, au contraire, infinie. Dans le cas d'une durée finie, cela signifie que les événements qui se produisent en dehors de cette fenêtre temporelle ne sont pas pris en compte dans la mesure de cet événement. Ici, une fenêtre temporelle de durée finie est une fenêtre temporelle glissante. Cette fenêtre temporelle glissante a une durée finie que l'on décale au fur et à mesure que le temps s'écoule pour ne prendre en compte que les événements les plus récents pour la mesure de cet événement. Une durée infinie signifie que tous les événements sont pris en compte pour la mesure depuis que la mesure de cet événement a été déclenchée.
[0033] Ici, la mesure d'un événement consiste à compter le nombre de fois où cet événement s'est produit pendant la fenêtre temporelle associée à cet événement. Ainsi, chacun des registres contient un nombre représentatif du nombre
d'occurrences d'un même événement. Par conséquent, dans la suite de cette description, les registres Ci sont appelés compteurs Cj.
[0034] II existe un grand nombre d'événements mesurables. Typiquement, les événements mesurés rentrent dans l'une des catégories suivantes :
- des événements normaux qu'un utilisateur légitime peut déclencher mais qui, s'ils se produisent en grand nombre, sont représentatifs d'une utilisation anormale du processeur 12,
- la réception par le processeur 12 de messages erronés ou inutiles, c'est-à-dire de messages qui ne devraient pas exister lors d'une utilisation normale et dépourvue d'erreur,
la détection d'erreurs de fonctionnement du processeur 12.
[0035] II existe de nombreuses erreurs de fonctionnement. Par exemple, les erreurs de fonctionnement peuvent être des erreurs dans l'exécution du code du système d'exploitation du processeur 12, la mesure par les capteurs 26 ou 27 d'une situation anormale, la découverte d'erreur d'intégrité sur des données traitées, ...etc. Généralement, en cas de détection d'erreur de fonctionnement, les traitements en cours sont interrompus et le processeur 12 se réinitialise automatiquement.
[0036] Nous détaillons maintenant, pour chaque compteur, un exemple d'événement mesuré.
[0037] Le compteur Ci contient le nombre de fois où une commande de consultation des données du processeur 12 a été reçue. En effet, un certain nombre de données contenues dans le processeur 12 sont librement consultables. Par exemple, il existe des commandes pour consulter le numéro d'identification du processeur 12 ou des droits d'accès enregistrés dans le processeur 12. La réception d'une commande de consultation est donc un événement normal tant que cela reste occasionnel. Par contre, le dénombrement d'un grand nombre de commandes de consultation de données du processeur 12 sur un bref intervalle de temps peut être provoqué par une tentative d'attaque.
[0038] Le compteur C2 indique la présence de droits inhabituels inscrits dans le processeur 12. Un droit inhabituel est un droit que l'opérateur du système 2 n'utilise normalement pas. Par exemple, la plupart des opérateurs n'inscrivent jamais dans les processeurs de sécurité un droit dont la durée de validité est supérieure à un an. Dès lors, un droit inscrit dans le processeur 12 dont la durée de validité est supérieure à un an, par exemple un droit de durée de validité infinie, est un droit inhabituel même si cette possibilité est techniquement prévue. De façon similaire, normalement, l'opérateur n'inscrit jamais un droit autorisant l'accès et le déchiffrement de tous les contenus multimédias dans les processeurs de sécurité. Dans ces conditions, l'inscription d'un droit autorisant l'accès à tous ces contenus multimédias dans le processeur 12 est considérée comme un droit inhabituel. L'inscription d'un droit
inhabituel dans le processeur 12 peut provenir d'une erreur de l'opérateur mais peut également être représentative d'une tentative d'attaque.
[0039] Le compteur C3 dénombre le nombre de messages reçus par le processeur 12 qui n'ont aucune utilité fonctionnelle pour le processeur. Par exemple, un tel message sans aucune utilité fonctionnelle peut être :
• un message de consultation de données inexistantes dans le processeur,
• un message d'effacement d'une donnée inexistante (par exemple : code d'accès, ...) dans le processeur, ou
• deux messages successifs de lecture de la même donnée du processeur 12.
[0040] Ces messages sont syntaxiquement correctes et ne provoquent aucune erreur d'exécution dans le processeur 12. Par contre ils sont inutiles. De tels messages inutiles peuvent être envoyés, par erreur, par l'opérateur. Ils peuvent également être utilisés lors d'une tentative d'attaque.
[0041] Le compteur C4 dénombre le nombre d'erreurs de syntaxe dans les messages transmis au processeur 12 c'est-à-dire typiquement dans les messages ECM et EMM transmis à ce processeur. En effet, la syntaxe ou structure des messages ECM et EMM respecte une grammaire prédéterminée. Le processeur 12 peut donc détecter ces erreurs de syntaxe et les comptabiliser dans le compteur C4. Les erreurs de syntaxes peuvent être provoquées par une erreur de l'opérateur mais également lors d'une tentative d'attaque.
[0042] Le compteur C5 est un compteur de commandes rejouées alors qu'elles ne devraient normalement pas être rejouées plusieurs fois. Le rejeu d'une commande consiste à envoyer au processeur de sécurité plusieurs fois la même commande. Par exemple, la commande peut être un message de mise à jour de certaines données enregistrées dans le processeur 12. Un rejeu d'un message peut être détecté par le processeur 12 en enregistrant la date du dernier message de mise à jour.
[0043] Le compteur Ce dénombre le nombre d'erreurs d'intégrité détectées dans les messages reçus par le processeur 12. En effet, les messages reçus par le processeur 12, contiennent des données ainsi qu'une redondance cryptographique de ces données, ce qui permet au processeur 12 de vérifier qu'il n'y a pas d'erreur dans les données reçues. Par exemple, la redondance sur les données peut être obtenue en intégrant dans le message reçu une signature ou un CRC (« Cyclic Redondancy Check ») des données contenues dans ce message. Des erreurs dans les données contenues dans le message peuvent être provoquées par des perturbations lors de leur transport dans le réseau 8 ou dans le décodeur 10. Toutefois, des données erronées sont aussi utilisées lors d'une tentative d'attaque.
[0044] Le compteur C7 dénombre le nombre d'erreurs d'intégrité sur des données contenues dans le processeur 12. En effet, un certain nombre de données enregistrées dans le processeur 12 sont associées à une redondance cryptographique permettant de vérifier l'intégrité de la donnée enregistrée respective.
Encore une fois, il peut arriver accidentellement, suite par exemple à des perturbations électromagnétiques, qu'une donnée enregistrée dans le processeur 12 soit erronée. Toutefois, la présence de données erronées enregistrées dans le processeur 12 peut également être représentative d'une tentative d'attaque.
[0045] Le compteur Cs dénombre le nombre de déroutements lors l'exécution du code du système d'exploitation du processeur 12. Un déroutement est un saut intempestif ou erroné d'une instruction du code exécuté par le processeur 12 vers une autre instruction. Ces déroutements dans l'exécution du code peuvent être détectés en exécutant deux fois de suite les mêmes instructions sur les mêmes données. Si les deux exécutions du code ne donnent pas le même résultat, cela signale un déroutement. Des sauts intempestifs d'instructions dans le code exécuté par le processeur 12 peuvent être provoqués en jouant sur la tension d'alimentation du processeur 12 ou en dirigeant un faisceau laser vers ce processeur 12.
[0046] Le compteur Cg dénombre le nombre de fois où la procédure de récupération de données suite à un arrachement du processeur 12 est exécutée. L'arrachement du processeur 12 consiste à retirer, en cours de fonctionnement, le processeur 12 du décodeur 10 de sorte que l'alimentation du processeur 12 est interrompue en cours de traitement de données. La procédure de récupération de données permet de remettre, après une telle coupure d'alimentation, le processeur 12 dans l'état dans lequel il était avant cette coupure d'alimentation. Le processeur 12 peut être arraché accidentellement du décodeur 10. Toutefois, des coupures intempestives de l'alimentation du processeur 12 sont également fréquemment utilisées lors d'une tentative d'attaque pour empêcher l'exécution par le processeur 12 de contre- mesures.
[0047] Le compteur C10 dénombre le nombre de fois où une tension d'alimentation anormale est mesurée par le capteur 26 cumulé au nombre de fois où un faisceau laser est détecté par le capteur 27. En effet, des tensions anormales ainsi que la présence d'un faisceau laser sont typiques d'une tentative d'attaque du processeur 12. Toutefois, ces capteurs 26 et 27 peuvent également détecter une tension anormale ou la présence d'un faisceau laser accidentellement suite, par exemple, à des perturbations électromagnétiques causées par un appareil à proximité du processeur 12 et cela même en absence de tentative d'attaque. Par exemple, la mise sous tension du décodeur 12 peut se traduire par la détection d'une tension anormale par le capteur 26.
[0048] Le compteur Co est à distinguer des compteurs précédents puisque celui-ci dénombre un événement qui se produit uniquement lors du fonctionnement normal du processeur 12 et qui ne peut pas être provoqué par une tentative d'attaque. Par exemple, l'événement dénombré par le compteur Co est ici le nombre de messages ECM et EMM correctement traités par le processeur 12.
[0049] La valeur de ce compteur Co est utilisée pour limiter la mémoire temporelle de certains des compteurs précédents à une fenêtre temporelle glissante de durée finie. Par exemple, à cet effet, la valeur du compteur Co est soustraite à la valeur du compteur Ci, où i > 0, et seule la différence entre ces deux compteurs, ramenée à zéro si elle est négative, est utilisée dans le calcul d'un indice de concomitance comme décrit plus loin. Par exemple, ici, à l'exception de la valeur des compteurs Ce et C10, seule la différence entre les valeurs des compteurs Ci et Co est utilisée pour le calcul des indices de concomitance. Grâce à l'utilisation de la valeur du compteur Co, les événements qui se sont produits en dehors de la fenêtre temporelle glissante ainsi définie ne sont pas pris en compte pour la détection d'une tentative d'attaque. On notera que la durée de la fenêtre temporelle glissante définie à l'aide du compteur Co n'est pas constante et dépend de l'utilisation qui est faite du processeur 12.
[0050] Le calculateur 24 est raccordé à une mémoire 32 contenant les différentes données et instructions nécessaires au fonctionnement du processeur 12. En particulier, la mémoire 32 comprend :
• les instructions nécessaires à l'exécution du procédé de la figure 4 lorsqu'elles sont exécutées par le calculateur 24,
• une matrice 36 de coefficients de pondération et une table 38 de seuils d'alerte.
[0051] Un exemple de matrice 36 est représenté plus en détail dans figure 2. Cette matrice 36 contient autant de colonnes que de compteurs d'événement susceptible d'être déclenché par une tentative d'attaque. Ici, la matrice 36 est donc une matrice à dix colonnes associées chacune à un compteur Ci. La matrice 36 contient également neuf lignes associées, respectivement, aux compteurs C2 à C10.
[0052] La cellule située au croisement de la i-ème colonne en partant de la gauche et de la j-ième ligne en partant du haut contient un coefficient rriij de pondération associé à un indice de concomitance QCj+I. Un indice de concomitance QCj+I est un indice calculé à partir de la valeur des compteurs Ci et Cj+1 qui fournit une indication sur la concomitance entre les événements dénombrés par le compteur Q et ceux dénombrés par le compteur Cj+1. Ici, chaque indice de concomitance est construit de manière à ce que sa valeur soit d'autant plus élevée qu'un grand nombre d'événements mesurés, respectivement, par les compteurs Ci et Cj+1 s'est produit à proximité du même instant. A cet effet, dans ce mode de réalisation, chaque indice de concomitance QCj+i correspond au produit des valeurs des compteurs Ci et Cj+1 au même instant.
[0053] La table 38 de seuils d'alerte illustrée sur la figure 3 comprend une première colonne contenant quatre seuils d'alerte Si à S4. Chaque seuil d'alerte est une valeur numérique et ces seuils d'alerte sont classés par ordre croissant en allant du haut vers le bas dans la table 38.
[0054] La table 38 contient également une deuxième colonne associant à chaque seuil Si une ou plusieurs contre-mesures notées CMi. Les contre-mesures sont des actions exécutées par le processeur de sécurité 12 qui visent à rendre plus difficile l'extraction ou la détermination de données contenues dans le processeur 12 ou l'utilisation abusive de ce processeur 12.
[0055] Ici, les contre-mesures CMi associées au seuil Si sont moins sévères et moins invalidantes pour l'utilisateur du processeur que celles associées au seuil d'alerte supérieur Si+i. Ainsi, plus le seuil d'alerte Si franchi est élevé plus les contre- mesures CMi exécutées en réponse sont sévères.
[0056] A titre d'illustration, les contre-mesures CMi consistent à ajouter de la redondance sur les branchements conditionnels du code à exécuter par le processeur 12. Par exemple, cette redondance est obtenue en exécutant plusieurs fois le branchement conditionnel et en vérifiant qu'à chaque exécution le résultat obtenu est le même.
[0057] La contre-mesure CMi consiste à ajouter en plus de la redondance sur les opérations de vérification de l'intégrité des données traitées. Par exemple, l'intégrité des données est vérifiée plusieurs fois alors que si le seuil Si n'est pas franchi, elle n'est vérifiée qu'une fois. Cela consiste également à vérifier l'intégrité de données dont l'intégrité n'est pas vérifiée si le seuil Si n'est pas franchi.
[0058] Les contre-mesures CM2 consistent, par exemple, à ajouter des restrictions sur les possibilités de chaîner des instructions du code exécuté par le processeur 12. Ceci peut être obtenu en obligeant le processeur 12 à exécuter un bloc complet d'instructions sans permettre d'interruption entre l'exécution des instructions de ce bloc.
[0059] La contre-mesure CM2 consiste également à supprimer certaines fonctionnalités du processeur 12 auparavant autorisées lorsque le seuil S2 n'était pas franchi. Par exemple, l'ajout de nouveaux services tel que l'ajout d'un nouvel opérateur ou d'un nouvel abonnement est interdit. L'accès aux fonctionnalités d'administration du processeur 12 peut également être interdit si le seuil S2 est franchi.
[0060] Par exemple, les contre-mesures CM3 consistent à modifier les coefficients de pondération présents dans la matrice 36 de manière à ce que le seuil supérieur c'est-à-dire S4, soit facilement et rapidement atteint lorsque des événements sont mesurés. Ainsi, comme cela est décrit en regard de la figure 4, on augmente la sensibilité du processeur 12 à la détection d'une tentative d'attaque. Les contre- mesures CM3 comprennent également la vérification systématique et en double de l'intégrité de chaque message reçu. Les contre-mesures CM3 peuvent également consister à renforcer les contrôles du flux d'exécution. Cela peut notamment consister à exécuter deux fois chaque portion du code exécutable par le processeur 12 et à
comparer à l'issue de ces deux exécutions que les résultats obtenus sont les mêmes. En cas de discordance entre les résultats obtenus, le compteur Ce est incrémenté.
[0061] Enfin, les contre-mesures CM4 consistent à invalider de façon définitive le processeur 12 de manière à ce que celui-ci soit définitivement inutilisable. Par exemple, à cet effet, les informations confidentielles contenues dans le processeur 12 sont effacées.
[0062] Le fonctionnement du processeur 12 va maintenant être décrit plus en détail en regard du procédé de la figure 4.
[0063] En parallèle du fonctionnement normal du processeur 12, celui-ci exécute également un procédé de détection d'une tentative d'attaque. A cet effet, lors d'une étape 50, il mesure les événements susceptibles d'être causés par une tentative d'attaque. Ici, cette mesure consiste à comptabiliser dans les compteurs C1 l'événement correspondant.
[0064] Ensuite, lors d'une étape 52, le processeur 12 construit trois indicateurs d'attaque, respectivement, h, I2 et I3.
[0065] L'indicateur h est conçu pour être plus sensible aux tentatives d'attaque par perturbation laser que les indicateurs I2 et I3. Une attaque par perturbation laser consiste à diriger un faisceau laser sur le processeur de sécurité pour provoquer des sauts d'instructions dans le code exécuté par ce processeur à des moments clé de son exécution. Les moments clés correspondent typiquement à des branchements conditionnels.
[0066] Ici, la valeur de l'indicateur h est donnée par la relation suivante :
h = m2,6C2C7 + m2,7C2Cδ + m2,gC2Cio +
+ 1117,9C7CiO + ms.gCβCio où :
• rrijj est le coefficient de pondération dont la valeur est contenue dans la matrice 36.
[0067] L'indicateur I2 est conçu pour être plus sensible que les deux autres aux attaques logiques. Une attaque logique consiste à rechercher une faille logicielle ou une erreur d'implémentation dans le code exécuté par le processeur 12 de manière à obtenir un comportement anormal de ce processeur. Par exemple, l'attaque logique consiste à envoyer un très grand nombre de messages erronés au processeur 12 tous différents les uns des autres jusqu'à ce que l'un de ces messages provoque un comportement anormal du processeur 12.
[0068] Par exemple, la valeur de l'indicateur I2 est construite à l'aide de la relation suivante :
I2 = mi,2CiC3 + mi,3CiC4 + m3,3C3C4
[0069] Enfin, l'indicateur I3 est conçu pour être plus sensible aux tentatives d'attaque DPA (Differential Power Analysis). Une attaque DPA consiste à envoyer un grand nombre de messages au processeur 12 pour provoquer un grand nombre d'exécutions des algorithmes cryptographiques sur un grand nombre de données
différentes et à mesurer, en parallèle, la consommation de courant du processeur 12. Ensuite, par une analyse statistique sur les données recueillies, il est possible de découvrir quelles sont les valeurs des clefs ou des données confidentielles enregistrées dans le processeur 12.
[0070] Par exemple, l'indicateur I3 est construit à l'aide de la relation suivante :
I3 = (114,4C4Cs + m4,5C4C6 + (115,5CsCe.
[0071] Ensuite, une fois que la valeur des indicateurs h à I3 a été construite, lors d'une étape 54, la valeur de ces indicateurs est comparée aux différents seuils d'alerte enregistrés dans la table 38 pour détecter une tentative d'attaque.
[0072] Si la valeur d'aucun de ces indicateurs ne franchit le seuil Si, alors, lors d'une étape 56, aucune contre-mesure n'est exécutée.
[0073] A l'inverse, si la valeur d'un de ces indicateurs franchit l'un des seuils Si, alors les contre-mesures associées au seuil Si le plus élevé franchi sont exécutées lors d'une étape 58.
[0074] A l'issue des étapes 56 et 58, le procédé retourne à l'étape 50.
[0075] En parallèle des étapes 50 à 58, lors d'une étape 60, l'émetteur 4 transmet, par exemple par l'intermédiaire d'un message EMM ou ECM, de nouvelles valeurs pour les coefficients de pondération. Ensuite, lors d'une étape 62, le processeur 12 reçoit ce message et met à jour les valeurs des coefficients de pondération contenus dans la matrice 36.
[0076] La mise à jour des coefficients de pondération permet de modifier facilement la sensibilité d'un indicateur à une tentative d'attaque particulière. En particulier, on remarquera que pour modifier cette sensibilité de l'indicateur à une tentative d'attaque particulière, il est uniquement nécessaire de modifier les coefficients de pondération enregistrés dans la matrice 36 sans qu'il soit nécessaire de modifier d'autres instructions exécutables par le processeur 12.
[0077] De nombreux autres modes de réalisation sont possibles. Par exemple, le processeur 12 peut comporter plusieurs matrices différentes de coefficients de pondération. Chacune de ces matrices peut être utilisée pour calculer un indicateur d'attaque respectif. Cela permet alors d'affecter à chaque indice de concomitance un coefficient de pondération différent en fonction de l'indicateur d'attaque construit. L'utilisation de plusieurs matrices de coefficients de pondération peut être aussi utile pour modifier la matrice de pondération utilisée lorsqu'un nouveau seuil d'alerte est franchi.
[0078] A l'inverse, un seul indicateur d'attaque peut être construit au lieu de plusieurs.
[0079] En variante, il existe autant de tables de seuils d'alerte que d'indicateurs d'attaque construits. Dans cette variante, les seuils d'alerte associés à un indicateur d'attaque particulier ne sont donc pas nécessairement les mêmes que les seuils d'alerte associés à un autre indicateur d'attaque.
[0080] La table 38 peut également être remplacée par un seul seuil d'alerte associé à des contre-mesures.
[0081] L'un des compteurs O, peut simplement comptabiliser l'existence d'un événement sans comptabiliser le nombre d'occurrences de cet événement. Dans ce cas, la valeur de ce compteur est codable à l'aide d'un seul bit d'information. Même dans ce cas, la valeur de ce compteur d'existence peut être associé à une fenêtre temporelle de durée infinie ou finie.
[0082] D'autres capteurs que ceux décrits peuvent être implémentés dans le processeur 12. Par exemple, le processeur 12 peut également comporter un capteur de température.
[0083] L'indice de concomitance n'est pas limité au produit de deux mesures. Par exemple, il peut aussi correspondre à un produit de plus de deux mesures. Toutefois, l'augmentation du nombre de mesures multipliées entre elles augmente également la taille de la matrice de coefficients de pondération.
[0084] II est également possible de calculer un indice de concomitance représentant la proximité temporelle entre au moins deux événements par d'autres opérations mathématiques qu'un produit.
[0085] De nombreuses autres contre-mesures que celles précédemment indiquées peuvent être exécutées en réponse au franchissement d'un seuil d'alerte par l'un des indicateurs d'attaque. Par exemple, d'autres contre-mesures peuvent consister à modifier l'algorithme cryptographique exécuté par le processeur 12. Une contre- mesure peut également consister à utiliser ou à mesurer de nouveaux événements pour construire un indicateur d'attaque qui auparavant n'était pas mesuré. Par exemple, en réponse au franchissement d'un seuil d'alerte, les événements mesurés par l'un des capteurs 26 ou 27 peuvent être comptabilisés alors qu'auparavant ils ne l'étaient pas.
[0086] Le calculateur 24 peut être formé d'un seul ou de plusieurs processeurs. Par exemple, il peut être formé d'un processeur auquel est associé un coprocesseur. Le procédé de détection peut alors être exécuté aussi bien par le processeur que par le co-processeur.
[0087] La mesure a été ici décrite dans le cas particulier où il s'agit de comptabiliser le nombre d'occurrences d'un événement. Toutefois, la mesure peut également consister à enregistrer dans l'un des registres la valeur d'un événement tel que par exemple une valeur mesurée par l'un des capteurs 26 ou 27. Pour compter le nombre d'occurrences d'un événement, la valeur des compteurs peut également être décrémentée au lieu d'être incrémentée comme décrit précédemment.
[0088] L'architecture du récepteur 6 est ici uniquement illustrative d'une situation particulière. En particulier, le désembrouilleur 18 peut également être amovible. A l'inverse, le désembrouilleur et le processeur de sécurité peuvent être implémentés
sans aucun degré de liberté dans le décodeur. Dans ce cas, le désembrouilleur et le processeur de sécurité peuvent se présenter sous la forme de composant logiciel.
Claims
1. Procédé de détection d'une tentative d'attaque d'un processeur de sécurité par le processeur de sécurité lui-même, ce procédé comprenant des mesures (50) de plusieurs événements différents se produisant indépendamment les uns des autres en absence de tentative d'attaque,
caractérisé en ce que le procédé comprend également :
- la construction (52) de la valeur d'au moins un indicateur d'attaque en fonction d'au moins un indice de concomitance entre au moins deux événements différents mesurés, l'indice de concomitance étant représentatif de la proximité temporelle entre les deux événements différents mesurés, et
- la détection (54) d'une tentative d'attaque si la valeur de l'indicateur d'attaque franchit un seuil prédéterminé.
2. Procédé selon la revendication 1 , dans lequel la valeur de l'indicateur d'attaque est construite (52) à partir de plusieurs indices de concomitance entre des événements différents mesurés et en pondérant l'importance de ces indices de concomitance les uns par rapport aux autres à l'aide d'un jeu prédéterminé de coefficients de pondération.
3. Procédé selon la revendication 2, dans lequel le procédé comprend la construction (52) de plusieurs valeurs d'indicateurs d'attaque en utilisant plusieurs jeux différents de coefficients de pondération entre les mêmes indices de concomitance, chaque jeu de coefficients de pondération étant prédéterminé pour être plus sensible à une tentative d'attaque différente de celles auxquelles sont plus sensibles les autres indicateurs.
4. Procédé selon la revendication 3, dans lequel le coefficient de pondération d'un même indice de concomitance est le même dans tous les jeux de coefficients de pondération utilisés pour construire les différentes valeurs d'indicateurs d'attaque.
5. Procédé selon l'une quelconque des revendications précédentes, dans lequel la mesure (50) d'un événement est limitée à une fenêtre temporelle glissante de manière à ne pas prendre en compte des événements qui se sont produits en dehors de cette fenêtre temporelle.
6. Procédé selon l'une quelconque des revendications précédentes, dans lequel au moins l'un des événements mesurés est la détection d'une erreur de fonctionnement du processeur de sécurité dont chaque occurrence conduit le processeur de sécurité à arrêter les traitements en cours et à se réinitialiser automatiquement pour reprendre ces traitements depuis le début.
7. Procédé selon l'une quelconque des revendications précédentes, dans lequel la mesure (50) d'un événement consiste à comptabiliser dans un compteur le nombre de fois où cet événement s'est produit, la valeur du compteur constituant la mesure.
8. Procédé selon l'une quelconque des revendications précédentes, dans lequel l'indice de concomitance entre au moins deux mesures est obtenu en multipliant entre elles ces mesures.
9. Support d'enregistrement d'informations, caractérisé en ce qu'il comporte des instructions pour l'exécution d'un procédé de détection conforme à l'une quelconque des revendications précédentes, lorsque ces instructions sont exécutées par un calculateur électronique.
10. Processeur de sécurité comportant :
- des registres (Ci à C10) dans lesquels sont stockées des mesures de plusieurs événements se produisant indépendamment les uns des autres en absence de tentative d'attaque, et
- un calculateur (24),
caractérisé en ce que le calculateur (24) est apte :
- à construire la valeur d'au moins un indicateur d'attaque en fonction d'au moins un indice de concomitance entre au moins deux événements différents mesurés dont les mesures sont stockées dans les registres, cet indice de concomitance étant représentatif de la proximité temporelle entre les deux événements différents mesurés, et
- à détecter une tentative d'attaque si la valeur de l'indicateur d'attaque franchit un seuil prédéterminé.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0954431A FR2947361B1 (fr) | 2009-06-29 | 2009-06-29 | Procede de detection d'une tentative d'attaque, support d'enregistrement et processeur de securite pour ce procede |
PCT/EP2010/058949 WO2011000756A1 (fr) | 2009-06-29 | 2010-06-23 | Procede de detection d'une tentative d'attaque, support d'enregistrement et processeur de securite pour ce procede |
Publications (1)
Publication Number | Publication Date |
---|---|
EP2449497A1 true EP2449497A1 (fr) | 2012-05-09 |
Family
ID=41508781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP10731487A Withdrawn EP2449497A1 (fr) | 2009-06-29 | 2010-06-23 | Procede de detection d'une tentative d'attaque, support d'enregistrement et processeur de securite pour ce procede |
Country Status (9)
Country | Link |
---|---|
US (1) | US9600667B2 (fr) |
EP (1) | EP2449497A1 (fr) |
CN (1) | CN102473209B (fr) |
BR (1) | BRPI1013816A2 (fr) |
FR (1) | FR2947361B1 (fr) |
MX (1) | MX2011013513A (fr) |
RU (1) | RU2568298C2 (fr) |
TW (1) | TWI512519B (fr) |
WO (1) | WO2011000756A1 (fr) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9503785B2 (en) | 2011-06-22 | 2016-11-22 | Nagrastar, Llc | Anti-splitter violation conditional key change |
US9392319B2 (en) * | 2013-03-15 | 2016-07-12 | Nagrastar Llc | Secure device profiling countermeasures |
CN103678709B (zh) * | 2013-12-30 | 2017-02-22 | 中国科学院自动化研究所 | 一种基于时序数据的推荐***攻击检测方法 |
EP3270620A1 (fr) * | 2016-07-13 | 2018-01-17 | Gemalto Sa | Procédé et dispositifs de gestion d'un élément sécurisé |
RU179302U1 (ru) * | 2017-11-21 | 2018-05-07 | Александра Владимировна Харжевская | Устройство динамического контроля выполнения специальных вычислений |
EP3663959B1 (fr) * | 2018-12-06 | 2021-08-11 | Mastercard International Incorporated | Circuit intégré, procédé et programme informatique |
US11848941B2 (en) * | 2020-09-02 | 2023-12-19 | Nxp B.V. | Collection of diagnostic information in a device |
CN115775419A (zh) * | 2021-09-06 | 2023-03-10 | 华为技术有限公司 | 防护方法、智能锁及计算机可读存储介质 |
US20240031391A1 (en) * | 2022-07-22 | 2024-01-25 | Semperis Technologies Inc. (US) | Attack path monitoring and risk mitigation in identity systems |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080209550A1 (en) * | 2004-06-30 | 2008-08-28 | St Incard S.R.L. | Method For Detecting and Reacting Against Possible Attack to Security Enforcing Operation Performed by a Cryptographic Token or Card |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1126078C (zh) * | 1994-04-18 | 2003-10-29 | 松下电器产业株式会社 | 防止非法复制或非法安装光记录媒体的信息的方法和装置 |
US5533123A (en) * | 1994-06-28 | 1996-07-02 | National Semiconductor Corporation | Programmable distributed personal security |
US6075884A (en) * | 1996-03-29 | 2000-06-13 | Sarnoff Corporation | Method and apparatus for training a neural network to learn and use fidelity metric as a control mechanism |
GB2365153A (en) * | 2000-01-28 | 2002-02-13 | Simon William Moore | Microprocessor resistant to power analysis with an alarm state |
EP1447976B1 (fr) | 2003-02-12 | 2019-06-19 | Irdeto B.V. | Méthode de contrôle de désembrouillage d'une pluralité de flux de programmes, système récepteur et dispositif portable sécurisé |
US7681235B2 (en) * | 2003-05-19 | 2010-03-16 | Radware Ltd. | Dynamic network protection |
EP1575293A1 (fr) | 2004-03-11 | 2005-09-14 | Canal+ Technologies | Gestion dynamique d'une carte à puce |
US8190731B2 (en) * | 2004-06-15 | 2012-05-29 | Alcatel Lucent | Network statistics processing device |
JP4899442B2 (ja) * | 2005-11-21 | 2012-03-21 | ソニー株式会社 | 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム |
FR2907930B1 (fr) | 2006-10-27 | 2009-02-13 | Viaccess Sa | Procede de detection d'une utilisation anormale d'un processeur de securite. |
-
2009
- 2009-06-29 FR FR0954431A patent/FR2947361B1/fr active Active
-
2010
- 2010-06-23 WO PCT/EP2010/058949 patent/WO2011000756A1/fr active Application Filing
- 2010-06-23 BR BRPI1013816A patent/BRPI1013816A2/pt not_active Application Discontinuation
- 2010-06-23 RU RU2012102988/08A patent/RU2568298C2/ru active
- 2010-06-23 CN CN201080029645.8A patent/CN102473209B/zh not_active Expired - Fee Related
- 2010-06-23 US US13/378,709 patent/US9600667B2/en active Active
- 2010-06-23 TW TW099120485A patent/TWI512519B/zh not_active IP Right Cessation
- 2010-06-23 EP EP10731487A patent/EP2449497A1/fr not_active Withdrawn
- 2010-06-23 MX MX2011013513A patent/MX2011013513A/es active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080209550A1 (en) * | 2004-06-30 | 2008-08-28 | St Incard S.R.L. | Method For Detecting and Reacting Against Possible Attack to Security Enforcing Operation Performed by a Cryptographic Token or Card |
Non-Patent Citations (1)
Title |
---|
See also references of WO2011000756A1 * |
Also Published As
Publication number | Publication date |
---|---|
US20120096547A1 (en) | 2012-04-19 |
MX2011013513A (es) | 2012-04-20 |
RU2012102988A (ru) | 2013-08-20 |
BRPI1013816A2 (pt) | 2016-04-12 |
TWI512519B (zh) | 2015-12-11 |
FR2947361A1 (fr) | 2010-12-31 |
RU2568298C2 (ru) | 2015-11-20 |
WO2011000756A1 (fr) | 2011-01-06 |
CN102473209B (zh) | 2016-04-13 |
TW201101090A (en) | 2011-01-01 |
US9600667B2 (en) | 2017-03-21 |
FR2947361B1 (fr) | 2011-08-26 |
CN102473209A (zh) | 2012-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2011000756A1 (fr) | Procede de detection d'une tentative d'attaque, support d'enregistrement et processeur de securite pour ce procede | |
US9646140B2 (en) | Method and apparatus for protecting online content by detecting noncompliant access patterns | |
EP1900211A1 (fr) | Methode et dispositif de controle d'acces a des donnees chiffrees | |
EP2357783A1 (fr) | Procédé de détection d'un fonctionnement potentiellement suspect d'un dispositif électronique et dispositif électronique correspondant. | |
FR2983597A1 (fr) | Procede de detection d'une erreur de lecture d'une donnee | |
CN102209266A (zh) | 跟踪安全模块的未授权使用 | |
EP1353511B1 (fr) | Procédé de gestion de droits d'accès à des services de télévision | |
CN102890756A (zh) | 媒体内容备生成方法和装置,媒体内容播放方法和装置 | |
EP1773055B1 (fr) | Méthode de vérification de droits contenus dans un module de sécurité | |
EP3031000B1 (fr) | Procede de fourniture d'une licence dans un systeme de fourniture de contenus multimedias | |
EP3008905B1 (fr) | Procede d'identification de terminal dans un systeme de fourniture de contenus multimedia | |
EP3380983B1 (fr) | Procédé d'identification de processeurs de sécurité | |
WO2007006758A1 (fr) | Procede de detection d'erreurs lors de l'initialisation d'un appareil electronique et appareil implementant le procede | |
EP2098073B1 (fr) | Procédé de gestion du nombre de visualisations, processeur de securité et terminal pour ce procédé | |
WO2012055829A1 (fr) | Procede de reception d'un contenu multimedia embrouille a l'aide de mots de controle et captcha | |
US8452009B2 (en) | Control message processing method | |
EP2304944A1 (fr) | Procédé de protection de données de sécurité transmises par un dispositif émetteur à un dispositif récepteur. | |
EP2356608B1 (fr) | Procede et dispositif de diagnostic de la premiere reception d'un identifiant, procede de detection, support d'enregistrement et programme d'ordinateur pour ce procede | |
EP1584190B1 (fr) | Procede et systeme pour garantir l'integrite d'au moins un logiciel transmis a un module de chiffrement/dechiffrement et supports d'enregistrement pour mettre en oeuvre le procede | |
WO2017103526A1 (fr) | Procede d'elaboration d'un mot challenge, dispositif electronique, peripherique de consigne et systeme mettant en oeuvre ledit procede | |
EP2172896A1 (fr) | Méthode de gestion d'une valeur dans un dispositif à prépaiement | |
WO2009083371A1 (fr) | Procede de securisation d'un branchement conditionnel, support d'informations, programme, systeme securise et processeur de securite pour ce procede | |
WO2010004162A1 (fr) | Procede et systeme tracables de diffusion de donnees numeriques | |
FR3000353A1 (fr) | Systeme, appareils et methodes pour l'indexation et la detection de programmes audiovisuels | |
EP2517452A1 (fr) | Procédé de mise à jour d'un processeur de sécurité, système, programme d'ordinateur et processeur de sécurité correspondants |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20111213 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK SM TR |
|
DAX | Request for extension of the european patent (deleted) | ||
17Q | First examination report despatched |
Effective date: 20170616 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN |
|
18W | Application withdrawn |
Effective date: 20190410 |