IP Library Granted Patent US 9,323,646
Granted Patent B2
US 9,323,646 · App. 13/328,229 · Granted Apr 26, 2016

Hardware security module with means to selectively activate or inhibit debugging and corresponding debugging method

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,323,646
App. No.
13/328,229
Granted
Apr 26, 2016
Kind
B2
Abstract

The present invention relates to the field of debugging of compiled programs in a hardware security module such as a microprocessor card. A module according to the invention includes a microprocessor and a compiled program to be executed by the microprocessor in order to carry out an operation. The compiled program includes at least one debugging instruction which whether or not it is executed does not modify the execution of the operation. And, the hardware security module includes an element of inhibiting or activating the debugging instruction during the execution of the compiled program.

Claims (36)

1. A hardware security module, comprising:

a microprocessor, and a compiled program stored in a memory device and executable by said microprocessor in order to carry out an operation,

the compiled program comprising at least one debugging instruction which does not change a result or functionality of said operation regardless of whether said at least one debugging instruction is executed, and

the hardware security module being configured to read a state flag from a memory having the state flag stored therein to inhibit or activate the debugging instruction during the execution of the compiled program,

wherein the state flag inhibiting or activating the debugging instruction can take three values as follows:

a first value corresponding to an inhibition state inhibiting the debugging instruction,

a second value corresponding to a first activation state in which the at least one debugging instruction causes items of debugging information resulting from the execution of the debugging instruction to be stored locally in the memory device without directly transmitting the debugging information to an external entity, said items of debugging information to be transmitted later to the external entity at the request of the external entity, and

a third value corresponding to a second activation state in which the at least one debugging instruction causes said items of debugging information to be directly transmitted over a communication channel initiated by the hardware security module to the external entity.

2. The hardware security module according to claim 1 , wherein the inhibition or activation state of said inhibition or activation means is changeable in response to a command received from the external entity.

3. The hardware security module according to claim 1 , wherein the debugging instruction comprises a conditional instruction that is conditional as a function of said state flag.

4. The hardware security module according to claim 3 , wherein the memory storing the state flag is a one-time programmable memory, such that inhibition of the debugging instruction is definitive.

5. The hardware security module according to claim 1 , wherein the hardware security module is protected from modification by a cryptographic security mechanism.

6. The hardware security module according to claim 1 ,

wherein the at least one debugging instruction is configured to copy items of debugging information to a file stored in the memory device of the hardware security module, and

wherein the hardware security module is configured to transmit said file to the external entity at the request of said external entity.

7. The hardware security module according to claim 6 , wherein said file is a fixed-length circular list.

8. A mobile phone comprising a contactless communication interface and a hardware security module according to claim 1 , the hardware security module comprising a first electrical contact linked to said contactless communication interface,

wherein a communication channel dedicated to driving the execution of the compiled program by an external master entity and the communication channel initiated by the hardware security module with said external entity are, for one of them, compliant with a contactless communication standard via the first electrical contact and, for the other one, compliant with a contact communication standard via a second electrical contact of the hardware security module.

9. A debugging method carried out by a hardware security module having a microprocessor and a compiled program stored in a memory device of the hardware security module and executable by said microprocessor to carry out an operation, the compiled program including at least one debugging instruction which does not change a result or functionality of said operation regardless of whether said at least one debugging instruction is executed, the method comprising:

at least one step of reading a state flag in the memory device and comparing a value of said state flag against each of first, second, and third values;

where the state flag is equal to the first value, operating in an inhibiting state wherein the debugging instruction is inhibited, such that the debugging instruction is not executed when the compiled program is executed,

where the state flag is equal to the second value, operating in a first activation state in which the debugging instruction is executed when the compiled program is executed, and items of debugging information resulting from the execution of said debugging instruction are caused to be stored locally without directly transmitting the items of debugging information to an external entity, and

where the state flag is equal to the third value, operating in a second activation state in which the debugging instruction is executed when the compiled program is executed, and the items of debugging information resulting from the execution of said at least one debugging instruction are caused to be directly transmitted over a communication channel, initiated by the hardware security module, to the external entity.

10. The debugging method according to claim 9 , further comprising:

a step of receipt, by the hardware security module, of a command changing the inhibition or activation state, transmitted by the external entity.

11. The debugging method according to claim 9 , further comprising:

a step of definitively switching to the inhibition state, by writing an item of inhibition information to a one-time programmable memory.

12. The debugging method according to claim 9 , further comprising:

a prior authentication step for authorizing the switching from one state to the other.

13. The debugging method according to claim 9 , wherein the debugging instruction comprises a conditional instruction that is conditional as a function of said state flag.

14. The debugging method according to claim 13 , wherein the memory storing the state flag is a one-time programmable memory, such that inhibition of the debugging instruction is definitive.

15. The debugging method according to claim 9 , wherein the inhibition or activation means is protected from modification by a cryptographic security mechanism.

16. The debugging method according to claim 9 ,

wherein the at least one debugging instruction is configured to copy items of debugging information to a file stored in a memory device of the hardware security module, and

wherein the hardware security module is configured to transmit said file to the external entity at the request of said external entity.

17. The debugging method according to claim 16 , wherein said file is a fixed-length circular list.

Assignments (3)
CHANGE OF NAME Recorded Dec 16, 2022
From: OBERTHUR TECHNOLOGIES
To: IDEMIA FRANCE
Reel/Frame 062140/0907 →
CHANGE OF ADDRESS Recorded Mar 9, 2016
From: OBERTHUR TECHNOLOGIES
To: OBERTHUR TECHNOLOGIES
Reel/Frame 038043/0177 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2012
From: BOISDE, MATTHIEU; BOUSQUET, NICOLAS
To: OBERTHUR TECHNOLOGIES
Reel/Frame 027787/0329 →