IP Library Granted Patent US 8,886,997
Granted Patent B2
US 8,886,997 · App. 13/328,243 · Granted Nov 11, 2014

Hardware security module and processing method in such a module with augmented communication features

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 8,886,997
App. No.
13/328,243
Granted
Nov 11, 2014
Kind
B2
Abstract

The present invention relates to the field of processing within hardware security modules, such as for example debugging of compiled programs. A debugging module includes a microprocessor and a compiled program to be executed by the microprocessor in order to carry out an operation, and is configured to exchange with an external entity, in a master/slave mode, messages relating to the 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. The hardware security module is moreover configured to transmit, during the execution of the compiled program, data generated, for example by the debugging instruction, over a communication channel initiated by the hardware security module, to an entity external to the hardware security module.

Claims (32)

1. A hardware security module, comprising:

a microprocessor and a program encoded on a non-transitory medium readable by said microprocessor that, upon execution by said microprocessor, causes said microprocessor to carry out an operation,

wherein the hardware security module is configured, according to a master-slave mode of communication with an external master entity over a first communication channel, to receive a command to execute the program thereby to carry out the operation and to transmit a corresponding response,

wherein the program is a compiled program comprising code that is executable by the microprocessor, said code including at least one debugging instruction,

wherein, whether or not said at least one debugging instruction is executed, said at least one debugging instruction does not modify the carrying out of said operation when the program is executed, the debugging instruction provided for debugging the code that forms the program, and

wherein the hardware security module is configured to:

in response to receipt of the received command to execute the program, execute the program and thereby generate debugging data resulting from execution of the at least one debugging instruction incorporated within the program, and

transmit, during the execution of the compiled program, said generated debugging data to an external entity over a second communication channel, said second communication channel being initiated by the hardware security module.

2. The hardware security module according to claim 1 , wherein communications over the first communication channel and communications over the second communication channel respectively take place over two different physical links to an outside the hardware security module.

3. The hardware security module according to claim 1 , wherein communications over the first communication channel and communications over the second communication channel take place over a single physical link.

4. The hardware security module according to claim 1 , wherein the at least one debugging instruction implements a command to write the generated debugging data over a UDP socket created by the hardware security module.

5. The hardware security module according to claim 1 , further comprising:

a means of inhibition or activation of the debugging instruction during the execution of the compiled program.

6. The hardware security module according to claim 5 , wherein said inhibition or activation means comprises an item of information stored in a one-time programmable memory so that inhibition of the debugging instruction is definitive.

7. The hardware security module according to claim 1 ,

wherein the command received from the external master entity is an access command to an encrypted file stored in the memory of said hardware security module, and

wherein the generated data transmitted over the second communication channel are decrypted data of said file.

8. The hardware security module according to claim 1 , wherein the generated debugging data is transmitted via a UDP socket created at the hardware security module to communicate with the external entity.

9. A mobile phone comprising a contactless communication interface and a hardware security module according to claim 1 ,

wherein the hardware security module further comprises a first electrical contact linked to said contactless communication interface, and

wherein one of the first and second communication channels is compliant with a contactless communication standard via the first electrical contact, and the other of the first and second communication channels is compliant with a contact communication standard via a second electrical contact of the hardware security module.

10. A processing method in a hardware security module comprising a microprocessor and a program encoded on a non-transitory medium readable by said microprocessor that, upon execution by said microprocessor, causes said microprocessor to carry out an operation, the hardware security module being configured to communicate with an external master entity according to a master-slave mode of communication, and the program being a compiled program comprising code that is executable by the microprocessor, said code including at least one debugging instruction, comprising:

at the hardware security module, receiving, over a first communication channel, a command to execute the program thereby to carry out the operation;

at the hardware security module, transmitting, over the first communication channel, a response corresponding to the received command;

at the hardware security module, in response to the receipt of the received command to execute the program, executing the program and thereby generating debugging data resulting from execution of the at least one debugging instruction incorporated within the program; and

at the hardware security module, transmitting, during the execution of the compiled program, said generated debugging data to an external entity over a second communication channel, said second communication channel being initiated by the hardware security module,

wherein, whether or not said at least one debugging instruction is executed, said at least one debugging instruction does not modify the carrying out of said operation when the program is executed, the debugging instruction configured for debugging the code that forms the program.

11. The processing method according to claim 10 , wherein communications over the first communication channel and communications over the second communication channel respectively take place over two different physical links to outside the hardware security module.

12. The processing method according to claim 10 , wherein communications over the first communication channel and communications over the second communication channel take place over a single physical link.

13. The processing method according to claim 10 , further comprising:

at the hardware security module, creating, a UDP socket for communicating over a communication link with the external entity,

the generated debugging data being transmitted over said UDP socket.

Assignments (3)
CHANGE OF NAME Recorded Dec 16, 2022
From: OBERTHUR TECHNOLOGIES
To: IDEMIA FRANCE
Reel/Frame 062140/0907 →
CHANGE OF ADDRESS Recorded Oct 9, 2014
From: OBERTHUR TECHNOLOGIES
To: OBERTHUR TECHNOLOGIES
Reel/Frame 033934/0986 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2012
From: BOISDE, MATTHIEU; BOUSQUET, NICOLAS
To: OBERTHUR TECHNOLOGIES
Reel/Frame 027643/0911 →