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

US9323646B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9323646-B2
Application numberUS-201113328229-A
CountryUS
Kind codeB2
Filing dateDec 16, 2011
Priority dateDec 17, 2010
Publication dateApr 26, 2016
Grant dateApr 26, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

The invention claimed is: 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.

Assignees

Inventors

Classifications

  • using additional hardware · CPC title

  • Information transfer, e.g. on bus (G06F13/14 takes precedence) · CPC title

  • Execution arrangements for user interfaces · CPC title

  • using a specific debug interface · CPC title

  • for adaptation of a particular data processing system to different peripheral devices · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9323646B2 cover?
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 …
Who is the assignee on this patent?
Boisde Matthieu, Bousquet Nicolas, Oberthur Technologies
What technology area does this patent fall under?
Primary CPC classification G06F11/3648. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 26 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).