NZ622041B2 - Secure key self-generation - Google Patents
Secure key self-generation Download PDFInfo
- Publication number
- NZ622041B2 NZ622041B2 NZ622041A NZ62204112A NZ622041B2 NZ 622041 B2 NZ622041 B2 NZ 622041B2 NZ 622041 A NZ622041 A NZ 622041A NZ 62204112 A NZ62204112 A NZ 62204112A NZ 622041 B2 NZ622041 B2 NZ 622041B2
- Authority
- NZ
- New Zealand
- Prior art keywords
- csp
- integrated circuit
- interface
- memory
- computer
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 81
- 238000000034 method Methods 0.000 claims description 37
- 150000002500 ions Chemical class 0.000 claims description 2
- 230000004044 response Effects 0.000 claims 6
- 238000010586 diagram Methods 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000004075 alteration Effects 0.000 description 3
- 230000001010 compromised Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000006011 modification reaction Methods 0.000 description 3
- UIIMBOGNXHQVGW-UHFFFAOYSA-M buffer Substances [Na+].OC([O-])=O UIIMBOGNXHQVGW-UHFFFAOYSA-M 0.000 description 2
- 230000003287 optical Effects 0.000 description 2
- 240000000800 Allium ursinum Species 0.000 description 1
- 235000007575 Calluna vulgaris Nutrition 0.000 description 1
- 241000229754 Iva xanthiifolia Species 0.000 description 1
- 229940035295 Ting Drugs 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000875 corresponding Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 230000003362 replicative Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- 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
Abstract
Disclosed is a computer-implemented method for providing secure critical security parameter (CSP) generation for an integrated circuit (100). The method includes determining that the computer-implemented method is being executed by the integrated circuit (100) for a first time and determining that an ability to access a secure memory (125) of the integrated circuit (100) via an interface (130) of the integrated circuit (100) has been disabled. At least one CSP is generated and stored in the secure memory (125) of the integrated circuit (100). n ability to access a secure memory (125) of the integrated circuit (100) via an interface (130) of the integrated circuit (100) has been disabled. At least one CSP is generated and stored in the secure memory (125) of the integrated circuit (100).
Description
SECURE KEY SELF-GENERATION
CROSS-REFERENCE TO RELATED ATION
The present ation claims benefit under 35 USC 119(e) of 61/535,047, filed
September 15, 2011, entitled “METHOD OF SECURE KEYS SELF GENERATION
ELIMINATING THE RISK OF THE INITIAL KEYS BEING COMPROMISED IN
MANUFACTURING”, the entire contents of which are incorporated by reference herein for all
BACKGROUND
Microcontrollers, microprocessors, and other integrated circuits (ICs) often can employ
critical security parameters (CSPs), such as cryptographic keys, authentication data, or other
sensitive data which can be utilized to e additional security or other filnctionality. The
disclosure or modification of these CSPs can compromise this functionality.
CSPs are often delivered to the IC in a secure manufacturing or provisioning
environment. This can raise issues regarding the security of the CSPs. For example a
manufacturer could potentially circumvent these secure procedures, failing to install a CSP or
installing an incorrect, repeating, changed, prohibited, etc. CSP by e, or as a result of a
malicious action. CSP self-generation by the IC, and manual or automatic delivery of the CSP to
secure storage outside the device in a secure manner, can help avoid some of these issues, but a
CSP may still be compromised through a debug interface that can allow a party to intercept the
key or meddle with it through the device debug interface. All of these methods apply to both
symmetric and asymmetric keys.
BRIEF SUMMARY
Techniques are disclosed for providing secure al security parameter (CSP)
tion in an integrated circuit (IC). Embodiments generally include determining that an
ability to read the CSP externally (e.g., h a debug interface) has been disabled before the
CSP is generated. Depending on the functionality of the device, embodiments can include other
steps, such as determining r software for executing a method for providing a secure CSP
is being run for a first time. Among other things, the techniques provided herein for providing
secure CSP generation can increase the security of the CSP and reduce manufacturing costs of
the IC.
An example computer-implemented method for providing secure critical ty
ter CSP generation for an integrated circuit, according to the disclosure, can include
determining that the computer-implemented method is being executed by the integrated circuit
for a first time, determining that an ability to access a secure memory of the integrated t via
an interface of the integrated circuit has been ed, generating at least one CSP, and storing
the at least one CSP in the secure memory of the integrated circuit.
The example er-implemented method for providing secure critical security
parameter CSP generation for an integrated circuit can include one or more of the following
functions and/or features. The method can include protecting the at least one CSP from being
erased from the secure memory of the integrated circuit. The method can include determining
that the computer-implemented method is being executed by the integrated circuit for a second
time, determining, while the computer-implemented method is being ed by the integrated
t for the second time, that the ability to access the secure memory of the integrated circuit
via the interface of the integrated circuit to has not been disabled, preventing normal operation of
the integrated circuit. The normal operation of the integrated circuit can be prevented by putting
the integrated circuit into an error or halt state. The interface of the integrated circuit can be a
ing interface. The at least one CSP can comprise a public/private pair of encryption keys.
The CSP can be generated by the ated t. The method can include rebooting the
integrated circuit after storing the at least one CSP in the secure memory of the integrated circuit.
An example non-transitory computer-readable medium having instructions embedded
thereon for providing CSP generation for an integrated circuit, according to the description, can
have instructions with er-executable code for determining that the computer-executable
code is being executed by the integrated circuit for a first time, determining that an ability to
access a secure memory of the ated circuit via an ace of the integrated circuit has been
disabled, generating at least one CSP, and storing the at least one CSP in the secure memory of
the integrated circuit.
The example non-transitory computer-readable medium can also include one or more of
the following features. The medium can include computer-executable code for protecting the at
least one CSP from being erased from the secure memory of the integrated circuit. The medium
2012/055601
can include computer-executable code for determining that the er-executable code is
being executed by the integrated t for a second time, determining, while the computer-
executable code is being executed by the integrated circuit for the second time, that the ability to
access the secure memory of the integrated circuit via the interface of the integrated circuit to has
not been disabled, and preventing normal operation of the integrated circuit. The computer-
executable code for ting the normal operation of the integrated t can include
computer-executable code for g the integrated circuit into an error or halt state. The
interface of the integrated t can be a debugging interface. The at least one CSP can
comprise a public/private pair of encryption keys.
[0009] An example integrated circuit capable of providing CSP generation, according to the
disclosure, can e a secure memory, an interface, and processing circuitry, coupled to the
secure memory and the interface, and configured to execute a process. The process can include
determining that the process is being executed by the processing circuitry for a first time,
ining that an ability to access the secure memory via the interface has been disabled,
generating at least one CSP, and storing the at least one CSP in the secure memory.
The example integrated circuit e of providing CSP generation can e one or
more of the following features. The processing circuitry can be configured to protect the at least
one CSP from being erased from the secure . The process that the processing circuitry is
configured to execute can also include determining that the process is being executed by the
processing circuitry for a second time, determining, while the process is being ed by the
processing circuitry for the second time, that the ability to access the secure memory via the
interface has not been disabled, and preventing normal operation of the integrated circuit. The
normal operation of the integrated circuit can be prevented by putting the integrated circuit into
an error or halt state. The interface can be a debugging interface. The at least one CSP can
include a public/private pair of encryption keys.
BRIEF PTION OF THE DRAWINGS
A further understanding of the nature and advantages of various embodiments may be
realized by reference to the following figures. In the appended figures, similar components or
features may have the same reference label. Further, various ents of the same type may
be distinguished by following the reference label by a dash and a second label that distinguishes
among the similar components. If only the first reference label is used in the specification, the
ption is applicable to any one of the similar components having the same first reference
label irrespective of the second reference label.
is a simplified block diagram of an integrated circuit (IC) capable of utilizing the
techniques provided herein, according to one embodiment.
is a flowchart representing a method for secure CSP self-generation, according
to one embodiment.
is a flowchart representing a method for secure CSP self-generation, ing
to another embodiment.
is a simplified flow sequence outlining a method for executing a secure CSP
generation utilizing the techniques provided herein, according to one embodiment.
is a simplified flow sequence outlining a method for executing a secure CSP
generation utilizing the techniques provided herein, according to another embodiment.
DETAILED DESCRIPTION
For the purposes of explanation, the ensuing numerous provides specific s are set
forth in order to provide a gh tanding of various embodiments. It will be apparent,
however, to one d in the art that various embodiments may be ced without some of
these c details. For example, circuits, systems, networks, processes, and other components
may be shown as components in block diagram form in order not to obscure the embodiments in
unnecessary detail. In other instances, known circuits, processes, algorithms, structures, and
techniques may be shown without unnecessary detail in order to avoid obscuring the
embodiments. In other instances, well-known ures and devices are shown in block diagram
form.
Embodiments provided herein are examples only, and is not intended to limit the scope,
applicability, or configuration of the disclosure. , the ensuing description of the
embodiments will provide those d in the art with an enabling description for implementing
one or more ments. It should be understood that various changes may be made in the
function and arrangement of elements without departing from the spirit and scope of the
disclosed systems and methods as set forth in the appended claims.
Also, individual embodiments may be described as a process which is depicted as a
flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram.
Although a flowchart may describe the operations as a sequential process, many of the
operations can be performed in el or concurrently. In addition, the order of the operations
may be re-arranged. A s is terminated when its operations are completed, but could have
additional steps not included in a figure. A process may correspond to a method, a function, a
procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its
termination can correspond to a return of the on to the calling function or the main
function.
[0020] Furthermore, embodiments may be ented by hardware, software, firmware,
middleware, microcode, hardware description languages, or any combination thereof. When
implemented in software, firmware, ware or microcode, the program code or code
ts to perform the necessary tasks may be stored in a machine-readable medium. A
processor(s) may perform the necessary tasks.
[0021] Embodiments provided herein include techniques for generating and securing al
security parameters (CSPs), such as cryptographic keys, authentication data, or other ive
data, on an integrated circuit (IC), such as a microcontroller or microprocessor. The self-
policing techniques disclosed can help prevent developers and/or cturers from
ionally or unintentionally compromising (e.g., resetting, erasing, replacing, retrieving,
replicating, etc.) a CSP on an IC.
is a simplified block diagram of an IC 100, according to one embodiment.
Components of the IC 100 can vary, depending on the type of 1C 100, but can generally include
processing circuitry 110, memory 120 (including secure memory 125), one or more 1/0
interface(s) 130, and additional component(s) 140. Other embodiments of an IC 100 may
include more, less, and/or different components, depending on desired functionality.
The 1/0 interface(s) 130 can enable the IC 100 to icate with external systems
and/or devices through, for example, an external bus. The 1/0 ace(s) 130 also can e a
debug interface, such as a Joint Test Action Group (JTAG) (or IEEE 1149.1) debug port.
According to some embodiments, the debug and/or other interfaces can be disabled by a user.
For example, a user may be able to disable the debug interface after ling software onto the
1C 100. These embodiments may also allow code internal to the 1C to verify that the debug
and/or other interfaces have been ed. According to some embodiments, the I/O interface(s)
130 can enable the IC 100 to r—manually and/or automatically—a CSP generated by the
IC 100 to an external entity.
The capacity and/or functionality of the memory 120 can vary, depending on the type
of IC 100, desired filnctionality, and/or other factors. The memory 120 can e, for example,
volatile and/or non-volatile data storage (RAM, ROM, EPROM, EEPROM, Flash memory, and
the like) that can be utilized as a working memory (e.g., cache, buffer, etc.) and/or storage for
software, firmware, and other machine code.
ments also can include secure memory 125. The secure memory can comprise
one or more portions of the memory 120 with cted access. That is, access to the secure
memory 125 can be restricted such that the contents of the secure memory 125 cannot be read or
otherwise conveyed to an entity external to the 1C 100. In some embodiments, the secure
memory 125 can, for example, store a CSP (e.g., a private encryption key) and prevent it from
being read and/or modified during normal operation of the IC 100. Thus, the secure memory 125
can be protected from internal code executed by the 1C 100 itself Moreover, some ments
utilize ICs 100 that can verify whether n areas of memory 120 are secure (i.e., whether
certain areas of memory 120 comprise part of the secure memory 125).
The processing circuitry 110 of the integrated circuit 120 includes circuitry e of
executing various commands and/or processes. The form and fianction of the processing
circuitry 110 can vary depending on the type of IC 100, desired functionality, and/or other
factors. For example, the processing circuitry 110 of a microcontroller can include a processing
core, core logic, and/or the like configured to execute software, firmware, and/or other machine-
executable code. On the other hand, sing circuitry 110 for a microprocessor may include,
for example, an execution unit, arithmetic logic unit (ALU), shifters, l logic, and/or the
like. Application-specific ICs (ASICs) and other types of ICs may have other processing
circuitry 120 capable of executing specific commands and/or logic. According to some
embodiments, the processing circuitry 110 of the IC 100 is capable of generating a CSP.
Additionally or alternatively, the CSP may be generated by r component, such as a
c CSP-generating module within the 1C 100.
[0027] is provided only as a fied example embodiment. Other embodiments may
include additional and/or alternative components. As such, the additional component(s) 140 may
include any of a variety of components, ing on desired functionality. Such components
can include, for e, ers, llers, control units, counters, clocks, debug circuitry,
glue logic, field-programmable logic, caches, buffers, memory ment units (MMUs),
and/or the like. As suggested previously, depending on desired functionality, the additional
component(s) may e a module (e. g., dedicated circuitry and/or machine-readable code) for
CSP generation and/or management. A person of ordinary skill in the art will recognize many
additions, omissions, substitutions, and alterations.
is a flowchart representing a method 200 for secure CSP self-generation,
according to one embodiment that utilizes software to execute the method. The , which
can be executed by one or more of the components of the 1C 100 shown on can begin at
block 210, where software initialization is started. Such initialization can occur, for e,
when an IC is initially powered up.
At block 215, a determination is made whether the software is running for the first time.
As ted previously, modern microprocessors and microcontrollers can include the ability to
detect whether the software is running for the first time. Moreover, a simple software flag and/or
other indicator can be set the first time the software is run to help make this determination. In
embodiments utilizing means other than software, other tors and/or devices may be utilized
to determine whether the process is being executed for a first time.
If it is determined that the software is being run for the first time, the process then
moves to block 245, where it is determined whether an interface is disabled and/or an external
read y is otherwise disabled. Here, an IC can, for e, determine whether a debug
interface has been disabled and/or whether there are any other means by which a CSP—or a data
location in which a CSP may be stored—is readable by an entity external to an IC. Because
different ICs may have different interfaces, software, functionality, etc., the process of
determining whether an external read ability has been disabled may vary between ent ICs.
At block 220, if it has been determined that the external read ability is not disabled,
then the IC can check to see if the CSP is stored in memory. If there is no CSP in memory, the
method can simply wait until the external read ability is disabled. Otherwise, if there is a CSP in
memory, the IC can enter an error or halt state, at block 225.
At block 250, if it is determined that the external read ability is disabled, a CSP can be
generated and stored in secure memory (or otherwise prevented from being read and/or
manipulated by an external ). As indicated previously, the CSP may include any of a
variety of sensitive values (e.g., a public/private cryptographic key pair, ric keys, a
password, etc.).
Optionally, at block 255, the CSP can be write/erase protected in the secure memory (or
similar data location). Such a step can help ensure that the CSP is protected from manipulation.
Depending on desired functionality, IC type, and/or other factors, the write/erase protection may
include measures that permanently prevent the CSP from being altered.
[0034] The method 200 can then proceed to block 260, where the IC is t to a reboot.
This time, the software is not being run for the first time.
In such a case, and in all cases in which the software is not being run for the first time,
the method moves from block 215 to block 230, where it is determined whether an interface
(e.g., a debug interface) is ed and/or an external read ability has otherwise been disabled.
Optionally, depending on the embodiment, the type of CSP, and/or the desired fianctionality,
block 230 also can determine whether the CSP has been protected (e.g., write/erase protected).
If so, the method 200 can proceed to block 280, where the IC is t to normal device
operation (i.e., normal IC onality). Some embodiments may additionally include a step
(not shown) in which the CSP may be ly transmitted—manually and/or automatically—to
an entity external to the IC..
If, at block 230, it is determined that an interface is not disabled, or another external
read ability has not been disabled, then the method can proceed to block 235, where the IC is put
in an error or halt state. Other embodiments may put the IC in other states that would prevent the
IC from normal operation. tely, the method 200 identifies a vulnerability that could
potentially compromise the security of a CSP of an IC and prevents the IC from oning
under conditions that would allow this vulnerability to persist.
is a flowchart representing a method 300 for secure CSP self-generation, as an
alternative embodiment to the method 200 shown in The method 300 of could be
performed, for example, in ments in which an IC is able to regenerate a CSP. The
method can begin at block 310, where software initialization is d. Again, such initialization
can occur, for e, when an IC is initially powered up.
At block 3 15, similar to block 230 of a determination is made whether an
interface is disabled and/or an external read ability is otherwise disabled. Again, this
determination can include determining whether a debug interface has been disabled and/or
whether there are any other means by which a CSP—or a data location in which a CSP may be
stored—is readable by an entity external to an IC.
At block 320, if it has been determined that the external read ability is not disabled,
then the IC can check to see if the CSP is stored in memory. If there is no CSP in memory, the
method can simply wait until the external read ability is disabled. ise, if there is a CSP in
memory, the IC can enter an error or halt state, at block 325.
Optionally, at block 330, it is determined whether a CSP is stored in memory (e. g.,
secure memory). This can e reading the CSP itself, if possible, and/or utilizing a software
flag and/or other indicator that a CSP has been stored in memory. If so, the method 300 can
include, at block 355, determining whether the software is running for the first time. If not, the
method 300 can simply proceed to normal device ion, at block 360. Otherwise, the CSP
can be erased from the memory, at block 350, in urations in which the CSP is erasable.
Other embodiments, however, can ignore and/or rewrite over any CSP that may be stored in
memory. In either case, the CSP is generated and stored in secure memory at block 335.
[0041] As with the method 200 of the method 300 of can optionally include
block 340, in which the CSP can be write/erase protected in the secure memory (or similar data
location). This may include ary write/erase protection while the IC is powered such that
the CSP may be erased and/or itten if the IC is subsequently restarted.
With the CSP generated and stored in memory, the method 300 can then proceed to
block 345, where the IC is rebooted. If the external read ability of the IC is disabled, the IC will
proceed to normal device operation, at block 360 after being rebooted.
It should be appreciated that the ic steps illustrated in FIGS. 2-3 provide example
flowcharts illustrating methods for secure CSP generation. Alternative embodiments may
include alterations to the ments shown. For example, alternative ments may
include differing techniques for determining whether an external read ability has been disabled.
Other embodiments may include ent forms of generating and/or storing a CSP.
rmore, additional features may be added or removed depending on the particular
applications. One of ordinary skill in the art would recognize many variations, modifications,
and alternatives.
FIGS. 4 and 5 provide simplified fiow sequences corresponding to s of the
fiowcharts depicted in FIGS. 2 and 3, respectively. for example, illustrates a sequence
outlining a method 400 for executing a secure CSP tion ing the techniques provided
herein, according to one embodiment.
The method 400 can begin at block 410, where it is determined that the method is being
executed for the first time. As detailed herein, this determination can utilize software flags,
hardware indicators, and/or other techniques, depending on the desired filnctionality of the
embodiment.
At block 420, it is determined that an ability to access secure memory via an interface
of an IC has been disabled. As described herein above, this can include an internal self-check by
an IC to determine if a debug interface has been disabled. Additionally or alternatively,
embodiments may include checking other aspects of an IC to determine whether a CSP is
ted from being read from and/or transmitted to an entity external to the IC.
At block 430, a CSP is generated. The CSP can be generated by, for e,
processing circuitry of the IC and/or a module configured for CSP generation. Once the CSP is
generated, it can be stored in secure memory of the IC, at block 440.
rates a ce outlining a method 500 for executing a secure CSP
generation utilizing the techniques provided , ing to another embodiment. At block
510, similar to block 420 of it is determined that an ability to access secure memory via
an interface of an IC has been disabled. Again, embodiments may include checking other
aspects of an IC to determine whether a CSP is protected from being read from and/or
transmitted to an entity external to the IC.
Optionally, at block 520, a CSP can be erased from memory. As ted in
this can include a determination of whether there is a CSP stored in memory. Alternatively, this
can be done as part of an automatic process to ensure a CSP stored in memory is not
compromised.
At block 530, a CSP is generated. And, at block 540, the CSP is stored in secure
memory. In some embodiments, storing the CSP in secure memory may involve overwriting a
CSP previously stored in the secure .
It should be appreciated that the specific steps illustrated in FIGS. 4-5 provide example
ces illustrating methods for secure CSP generation. Alternative ments may
e alterations to the ments shown. For example, alternative embodiments may
include additional steps for ensuring the CSP is write/erase protected. Furthermore, additional
features may be added or removed depending on the particular applications. One of ordinary
skill in the art would recognize many variations, modifications, and alternatives.
[0052] The techniques ed herein can provide one or more advantages over conventional
techniques, such as secure manufacturing, cheaper manufacturing, and/or protection from
malicious actions by developers or a manufacturer. Additional advantages can include
elimination or reduction of the need for key change (i.e., less maintenance), protection from
unknown errors in the software, and/or the ability to avoid the use of secure third-party devices
such as SIM cards that could require extra cost and power consumption. er,
embodiments can be utilized in a wide variety of applications in which security is critical, but
where the IC does not need to maintain several identities, such as in SIM/mobile device case.
Embodiments can be utilized in a y of applications and/or support a y of
features. For example embodiments can support internal symmetric key generation which
provides microprocessor communication with the periphery. ments further can support
private/public key pair generation where the private key is protected (e.g., written to secure
memory) and the public key is exposed. Embodiments also can t external symmetric key
generation. In this latter scenario, a ric key subsequently can be shared with a Key
Management System (KMS) using a hard-coded KMS public key stored in the software.
[0054] In the foregoing description, for the purposes of illustration, methods were described in
a particular order. It should be appreciated that in alternate embodiments, the methods may be
performed in a different order than that described. It should also be appreciated that the methods
described above may be performed by hardware ents or may be embodied in sequences
of machine-readable ctions, such as mming code, which may be used to cause a
machine, such as a general-purpose or special-purpose processor or logic circuits programmed
with the instructions to perform the methods. These machine-readable and/or computer-readable
instructions may be stored on one or more non-transitory storage mediums, such as CD-ROMs or
other type of optical disks, floppy diskettes, ROMs, RAMs, EPROMs, s, magnetic or
optical cards, flash memory, or other types of e-readable mediums suitable for storing
electronic instructions. Alternatively, the methods may be performed by a combination of
hardware and software.
While rative and presently preferred embodiments of the disclosed systems,
methods, and devices have been described in detail herein, it is to be understood that the
inventive concepts may be ise variously embodied and employed, and that the appended
claims are intended to be construed to include such variations, except as limited by the prior art.
Claims (20)
- l. A er—implemented method for providing secure critical security parameter (CSP) generation for an integrated circuit, the method sing: determining that an interface operable to e access to a secure memory of the integrated circuit is disabled; detecting that a first CSP is stored in a memory ofthe integrated circuit, wherein detecting that the first CSP is stored in the memory is done in response to determining that the interface is disabled; determining that the computer—implemented method is being executed by the integrated circuit for a first time; performing the following operations in response to determining that the method is being executed by the ated circuit for a first time: erasing the first CSP from the memory; generating a second CSP; and storing the second CSP in the secure memory of the integrated circuit.
- 2. The computer—implemented method for providing CSP generation for an integrated circuit as recited in claim 1, further sing protecting the second CSP from being erased from the secure memory ofthe integrated circuit.
- 3. The er—implemented method for providing CSP generation for an integrated circuit as recited in claim 1, further comprising: ining that the interface is not disabled subsequent to a reboot of the integrated t; and preventing normal operation ofthe integrated circuit.
- 4. The computer—implemented method for providing CSP generation for an integrated circuit as recited in claim 3, wherein the normal operation ofthe integrated circuit is prevented by putting the integrated circuit into an error or halt state.
- 5. The computer—implemented method for providing CSP generation for an integrated circuit as recited in claim 1, wherein the interface of the integrated t is a debugging interface.
- 6. The er—implemented method for providing CSP generation for an integrated circuit as recited in claim 1, wherein the second CSP ses a public/private pair of encryption keys.
- 7. The computer—implemented method for providing CSP generation for an integrated circuit as recited in claim 1, wherein the second CSP is generated by the integrated circuit.
- 8. The computer—implemented method for providing CSP generation for an integrated circuit as recited in claim 1, r comprising rebooting the integrated circuit after storing the second CSP in the secure memory ofthe integrated circuit.
- 9. A non—transitory computer—readable medium having instructions embedded thereon for providing secure al security parameter (CSP) tion for an integrated circuit, the instructions ing computer—executable code for: determining that an interface operable to provide access to a secure memory of the integrated circuit is disabled; detecting that a first CSP is stored in a memory of the integrated circuit, wherein detecting that the first CSP is stored in the memory is done in response to determining that the interface is disabled; determining that the computer—executable code is being executed by the integrated t for a first time; performing the following operations in response to determining that the computer—executable code is being executed by the integrated circuit for a first time: erasing the first CSP from the memory; generating a second CSP; and storing the second CSP in the secure memory of the integrated circuit.
- 10. The non—transitory er—readable medium recited in claim 9, r comprising computer—executable code for protecting the second CSP from being erased from the secure memory of the integrated circuit.
- 11. The non—transitory er—readable medium recited in claim 9, further comprising computer—executable code for: determining that the interface is not disabled subsequent to a reboot ofthe integrated t; and preventing normal operation of the integrated circuit.
- 12. The non—transitory computer—readable medium recited in claim 11, wherein the computer—executable code for preventing the normal operation of the integrated circuit includes computer—executable code for putting the integrated circuit into an error or halt state.
- 13. The non—transitory computer—readable medium recited in claim 9, wherein the interface ofthe integrated circuit is a debugging interface.
- 14. The ansitory computer—readable medium d in claim 9, wherein the second CSP comprises a public/private pair of encryption keys.
- 15. An integrated circuit capable of securely generating a critical security parameter (CSP), the integrated circuit comprising: a secure memory; an interface; and processing circuitry, coupled to the secure memory and the interface, and ured to execute a process, wherein the process ses: determining that an interface operable to provide access to a secure memory of the integrated circuit is disabled; ing that a first CSP is stored in a memory ofthe ated circuit, wherein detecting that the first CSP is stored in the memory is done is response to determining that the interface is disabled; determining that the initial process is being executed by the processing circuitry for a first time; performing the following operations in response to determining that the process is being executed by the processing circuitry for a first time: erasing the first CSP from the memory; generating a second CSP; and storing the second CSP in the secure memory of the integrated circuit.
- 16. The integrated circuit capable of ing CSP generation as d in claim 15, wherein the processing try is configured to protect the second CSP from being erased from the secure memory.
- 17. The integrated circuit capable of providing CSP generation as recited in claim 15, wherein the process further comprises: determining that the interface is not disabled subsequent to a reboot ofthe integrated circuit; and preventing normal ion ofthe integrated circuit.
- 18. The integrated circuit capable of providing CSP generation as recited in claim 17, wherein the normal operation of the integrated circuit is prevented by putting the integrated circuit into an error or halt state.
- 19. The integrated circuit e of providing CSP generation as recited in claim 17, n the interface is a debugging interface.
- 20. The integrated circuit capable of providing CSP tion as recited in claim 15, wherein the second CSP comprises a /private pair ofencryption keys.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161535047P | 2011-09-15 | 2011-09-15 | |
US61/535,047 | 2011-09-15 | ||
PCT/US2012/055601 WO2013040475A1 (en) | 2011-09-15 | 2012-09-14 | Secure key self-generation |
Publications (2)
Publication Number | Publication Date |
---|---|
NZ622041A NZ622041A (en) | 2015-03-27 |
NZ622041B2 true NZ622041B2 (en) | 2015-06-30 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11120130B2 (en) | Method and apparatus for protecting kernel control-flow integrity using static binary instrumentation | |
CN108399339B (en) | Trusted starting method based on security chip | |
CN105205401B (en) | Trusted computer system and its trusted bootstrap method based on security password chip | |
US9569622B2 (en) | Self-measuring nonvolatile memory device systems and methods | |
US8621298B2 (en) | Apparatus for protecting against external attack for processor based on arm core and method using the same | |
US20140250290A1 (en) | Method for Software Anti-Rollback Recovery | |
CN107301082B (en) | Method and device for realizing integrity protection of operating system | |
US20080270782A1 (en) | Boot process | |
CN104217139B (en) | Processing system | |
US8225189B2 (en) | Data error detection | |
JP2011210037A (en) | Semiconductor device and data processing method | |
CN104200165A (en) | Initiative trusted measurement method based on CPU made in China | |
CN103049694A (en) | Core safety architecture implementation method of intelligent financial transaction terminal | |
ES2963328T3 (en) | Procedure for verifying the integrity of a corresponding application code, device and computer program product | |
US8832781B2 (en) | Secure key self-generation | |
CN110020561B (en) | Semiconductor device and method of operating semiconductor device | |
EP3454216B1 (en) | Method for protecting unauthorized data access from a memory | |
JP6029437B2 (en) | Semiconductor device and access restriction method | |
EP3440586B1 (en) | Method for write-protecting boot code if boot sequence integrity check fails | |
US20180226136A1 (en) | System management mode test operations | |
NZ622041B2 (en) | Secure key self-generation | |
CN113448682B (en) | Virtual machine monitor loading method and device and electronic equipment | |
US10691586B2 (en) | Apparatus and method for software self-test | |
JP5761880B2 (en) | Automobile | |
CN109196510B (en) | Memory management for security modules |