1. Field
The present invention relates generally to deterring a timing-based glitch attack during a secure boot process.
2. Background
A glitch attack is a widely used attack against highly secure platforms. A glitch may be achieved by a very precise, malicious modification of power or timing inputs to a platform's processor or external memory. Typically, the modification is a tiny pulse sent to the processor or memory by a “mod chip.” The intent is to change the execution path of the code, typically skipping over or subverting a critical check or validation step.
Generally, an attacker's objectives are: 1) to create an attack that is easily repeatable on a given device; 2) to create an attack that propagates and can be commoditized and commercialized (enabling the creation of cheap, easy to install mod chips); and 3) to break the chain of trust as early as possible (rooting or owning the device).
Once a glitch attack has been perfected against one device, it may be used against every device having the same configuration. Glitch attacks are almost always against secure boot—the code or logic that establishes the root of trust on the device very early on in the boot process. The attraction of attacking secure boot is that once it is compromised, all of the security on the device typically collapses.
There is therefore a need for a technique for deterring a glitch attack during a secure boot process.
An aspect of the invention may reside in a method for deterring a timing-based glitch attack during a secure boot process of a device having a device-specific number. In the method, the device generates a pseudorandom number specific to a particular execution of a secure boot process. The device combines the device-specific number and the pseudorandom number to generate a diversity value. The device changes a timing of at least one process step of the secure boot process based on the diversity value.
In more detailed aspects of the invention, the device-specific number may be a serial number or a securely stored device-specific key. The device may cryptographically combine the device-specific key and the pseudorandom number to generate the diversity value. Also, the device may change an order of process steps of the secure boot process based on the diversity value.
Another aspect of the invention may reside in an apparatus with a device-specific number, comprising: means for generating a pseudorandom number specific to a particular execution of a secure boot process; means for combining the device-specific number and the pseudorandom number to generate a diversity value; and means for changing a timing of at least one process step of the secure boot process based on the diversity value.
Another aspect of the invention may reside in an apparatus with a device-specific number, comprising: a processor configured to: generate a pseudorandom number specific to a particular execution of a secure boot process; combine the device-specific number and the pseudorandom number to generate a diversity value; and change a timing of at least one process step of the secure boot process based on the diversity value.
Another aspect of the invention may reside in a computer program product, comprising: computer-readable medium, comprising: code for causing a computer to generate a pseudorandom number specific to a particular execution of a secure boot process; code for causing a computer to combine a device-specific number and the pseudorandom number to generate a diversity value; and code for causing a computer to change a timing of at least one process step of the secure boot process based on the diversity value.
Yet another aspect of the invention may reside in another method for deterring a timing-based glitch attack during a secure boot process of a device having a device-specific number. In the method, the device generates a pseudorandom number specific to a particular execution of a secure boot process; the device combines the device-specific number and the pseudorandom number to generate a diversity value; and the device changes an order of process steps of the secure boot process based on the diversity value.
In more detailed aspects of the invention, the device-specific number may be a serial number or a securely stored device-specific key. The device may cryptographically combine the device-specific key and the pseudorandom number to generate the diversity value.
Another aspect of the invention may reside in an apparatus with a device-specific number, comprising: means for generating a pseudorandom number specific to a particular execution of a secure boot process; means for combining the device-specific number and the pseudorandom number to generate a diversity value; and means for changing an order of process steps of the secure boot process based on the diversity value.
Another aspect of the invention may reside in an apparatus with a device-specific number, comprising: a processor configured to: generate a pseudorandom number specific to a particular execution of a secure boot process; combine the device-specific number and the pseudorandom number to generate a diversity value; and change an order of process steps of the secure boot process based on the diversity value.
Another aspect of the invention may reside in a computer program product, comprising: computer-readable medium, comprising: code for causing a computer to generate a pseudorandom number specific to a particular execution of a secure boot process; code for causing a computer to combine a device-specific number and the pseudorandom number to generate a diversity value; and code for causing a computer to change an order of process steps of the secure boot process based on the diversity value.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.
With reference to
In more detailed aspects of the invention, the device-specific number 200 may be a serial number or a securely stored device-specific key. The device 400 may cryptographically combine the device-specific key and the pseudorandom number 210 to generate the diversity value 220. Although a hash function 240 is shown in
Also, as shown in
The generated diversity value 220 or data may be used to drive relatively small but significant changes to both the control flow and timing of the secure boot process 300. For example, small delays may be added to one or more process steps PSN based on the diversity value, or the order of certain operations or routines may be switched around. Critical checks may be repeated any number of times based on this output. These changes may make it very difficult for the attacker to craft a reliable attack against a single device 400. It also may make it even more difficult to propagate a successful attack to other devices, since the attacker would not be able to reliably predict when to inject the glitch. Thus, differences in timing may make it difficult to create a repeatable attack. Also, differences in logic flow may make it difficult to make any predictions about the randomized timing based on, for example, side channel information such as power fluctuations.
In order to create the small differences in the timing and/or the logic flow of the secure boot implementation, a secure source of entropy is needed. One source may include a random number RAN 210 generated by a hardware-based random number generator 230 incorporated into the device 400. Alternatively, a pseudorandom number generator may be implemented by the processor 420 with entropy based on a hardware event or aspect, etc. The output of the random number generator may not need to be “crypto quality”. In order to enhance the diversity between devices/chips, unique secret keys, protected state, or serialization information may be mixed in with the output of the random number generator. As a result, diversity is leveraged in order to offer protection against physical glitch attacks during secure boots of a device.
The device 400 (or a station) may be a computer 410 that includes a processor 420, memory 430 (and/or disk drives), a display 440, and keypad or keyboard 450. The computer may also include a microphone, speaker(s), camera, and the like. Further, the device may also include USB, Ethernet and similar interfaces, for communicating over a network 460, such as the internet, with other devices and/or servers 470.
Another aspect of the invention may reside in an apparatus 400 with a device-specific number 200, comprising: means 420 for generating a pseudorandom number 210 specific to a particular execution of a secure boot process 300; means 420 for combining the device-specific number and the pseudorandom number to generate a diversity value 220; and means 420 for changing a timing TN of at least one process step PSN of the secure boot process based on the diversity value.
Another aspect of the invention may reside in an apparatus 400 with a device-specific number 200, comprising: a processor 400 configured to: generate a pseudorandom number 210 specific to a particular execution of a secure boot process 300; combine the device-specific number and the pseudorandom number to generate a diversity value 220; and change a timing TN of at least one process step PSN of the secure boot process based on the diversity value.
Another aspect of the invention may reside in a computer program product, comprising: non-transitory computer-readable medium 430, comprising: code for causing a computer 410 to generate a pseudorandom number 210 specific to a particular execution of a secure boot process 300; code for causing a computer 410 to combine a device-specific number 200 and the pseudorandom number to generate a diversity value 220; and code for causing a computer 410 to change a timing TN of at least one process step PSN of the secure boot process based on the diversity value.
With further reference to
In more detailed aspects of the invention, the device-specific number 200 may be a serial number or a securely stored device-specific key. The device 400 may cryptographically combine the device-specific key and the pseudorandom number 210 to generate the diversity value 220.
Another aspect of the invention may reside in an apparatus 400 with a device-specific number 200, comprising: means 420 for generating a pseudorandom number 210 specific to a particular execution of a secure boot process; means 420 for combining the device-specific number and the pseudorandom number to generate a diversity value 220; and means 420 for changing an order of process steps, e.g., PS1 and PS2, of the secure boot process based on the diversity value.
Another aspect of the invention may reside in an apparatus 400 with a device-specific number 200, comprising: a processor 420 configured to: generate a pseudorandom number 210 specific to a particular execution of a secure boot process 300; combine the device-specific number and the pseudorandom number to generate a diversity value 220; and change an order of process steps, e.g., PS1 and PS2, of the secure boot process based on the diversity value.
Another aspect of the invention may reside in a computer program product, comprising: non-transitory computer-readable medium 430, comprising: code for causing a computer 410 to generate a pseudorandom number 210 specific to a particular execution of a secure boot process 300; code for causing a computer 410 to combine a device-specific number 200 and the pseudorandom number 210 to generate a diversity value 220; and code for causing a computer 410 to change an order of process steps, e.g., PS1 and PS2, of the secure boot process based on the diversity value being odd or even, i.e., the diversity value mod 2.
With reference to
With reference to
Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.
In one or more exemplary embodiments, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software as a computer program product, the functions may be stored on as one or more instructions or code on a computer-readable medium. Computer-readable media includes computer storage media that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. The computer-readable medium may be non-transitory such that it does not include a transitory, propagating signal.
The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.