Processors have gained in sophistication with technological developments to create a more secure and useful environment. Security may be comprised when a party tampers with these processors. Additionally, these processors may be operating outside a range of acceptable tolerances, such as temperature and/or voltage which may cause issues with data corruption, unpredictable behavior, and even processor failure.
The embodiments are described in detail in the following description with reference to the following examples disclosed in the following figures.
For simplicity and illustrative purposes, the principles of the embodiments are described by referring mainly to examples thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the embodiments. It is apparent that the embodiments may be practiced without limitation to all the specific details. Also, the embodiments may be used together in various combinations.
Processor security and tolerances may be monitored through sensor measurements. Sensors may measure internal characteristics of the processor. For example, the sensors may measure voltage, temperature, vibration, shock, acceleration, package penetration, magnetic orientation, radiation, etc. A processor may determine when measurements from a sensor are outside a predetermined range and then perform a security function if such measurements are detected. A security function may include invoking a fault operation, such as generating an alarm, entering a fault state, etc. The microprocessor testing circuit artificially drives a measurement signal from a sensor out of a predetermined range to test a security function of the microprocessor. The microprocessor reads a signal to determine whether a sensor is out of a predetermined range in order to determine whether to invoke the fault operation.
Artificially driving a measurement signal from a sensor out of a predetermined range may include modifying the signal read by the microprocessor so the processor determines a measurement from the sensor is out of the predetermined range. In one example, an offset is provided to a measurement signal output from a sensor. For example, the measurement signal output from a sensor is a voltage representative of a measured internal characteristic of the microprocessor. For example, temperature measured by the sensor is converted to a voltage. An offset voltage may be added to the voltage output from the sensor to increase or decrease the voltage out of its predetermined range so the microprocessor determines the sensor measurement is outside its predetermined range. The predetermined range may be acceptable temperatures determined, for example, by the manufacturer or another entity. Temperatures outside the range are considered unacceptable and may invoke a fault operation.
The microprocessor testing circuit may be provided in a microprocessor. For example, the microprocessor testing circuit is provided on the integrated circuit of the microprocessor. The microprocessor may include a secure microprocessor that includes security measures to provide tamper resistance. Examples of the security measures may include external bus encryption, secure key storage, zeroization, environmental failure protection, comprehensive state management, status display and event logging, and extensive on-chip testing. The microprocessor may function in a plurality of states. For example, the states may include a clear state, a secure state, and a zeroized state. The clear state is before the microprocessor stores encrypted data. The secure state is the normal mode of operation, such as when the microprocessor stores encrypted data. The zeroized state is when a fault occurs and whatever secrets, e.g., cryptographic keys, PINs, critical data, are stored in the microprocessor are erased. This is a fault operation. The microprocessor testing circuit may include logic to prevent testing when the microprocessor is in the secure state to resist tampering. For example, the testing circuit may include a switch connected to an external port of the microprocessor. As long as the switch is kept open, information cannot be read from the external port and no external voltage can force the internal circuitry to malfunction. The microprocessor may be compliant with the FIPS 140 standard. Federal Information Processing Standards (FIPS) 140 are a series of U.S. government computer security standards published by National Institute of Standards and Technology (NIST) that specify standards for cryptographic modules which include both hardware and software components.
The combiner 105 generates an offset sensor measurement signal 122 which represents the selected sensor measurement offset by the offset amount represented by the offset signal 121. If the signals 120 and 121 are voltages representing the sensor measurement and offset amount respectively, such as described in the example in
A conversion module 104 may be used to convert measurement signals to a signal that can be read by the microprocessor. For example, the combiner 105 and the fault detection module 106 may include a security application comprising machine readable instructions executed by the microprocessor. The conversion module 105 may include an analog-to-digital converter (ADC) to convert voltages representative of sensor measurements, and analog offset signals, to digital values that represent the sensor measurements and offset amounts. For example, the signal 120 may be a voltage output from a sensor that is converted to a digital value. The signal 121 may also be a voltage that is converted to a digital value by the conversion module 104, as represented by the dashed line, or the signal 121 may be provided as a digital value to the combiner 105, in which case no analog-to-digital conversion may be needed. The conversion module 105 may also use calibration values for the sensors and/or the ADC and other circuit components to determine the digital values that represent the sensor measurements and offsets. The digital values may be stored in a register and the fault detection module 106 determines if the offset sensor measurements are out of the predetermined range and invokes fault operations in response to the out of range measurements. Accordingly, the microprocessor testing circuit 100 may be used to artificially drive sensor measurements out of a predetermined range to test the security functions and fault operations of the microprocessor.
The offset circuit 102 may control the access of the offset source 111 to the microprocessor to minimize tampering. For example, if the microprocessor is a secure processor operating in a secure state, such as when the microprocessor stores sensitive data or manages cryptographic keys, the offset circuit 102 may not allow an external system to read or write data to the microprocessor via an external port. State control logic 141 may determine the state of the microprocessor, and send an enable signal 124 to the offset circuit 102 if the microprocessor is not operating in the secure state. If the microprocessor is operating in the secure state, the state control logic 141 may send a signal to disable the connection of the offset source 111 to the microprocessor testing circuit 100.
In operation, the sensors 110a-n convert a measurement, for example, into a voltage representing a measurement. The voltage is output from the sensors to the multiplexer 204. The multiplexer 204 receives a selection signal, for example, from the microprocessor to select a sensor. The voltage output of the selected sensor is output from the multiplexer 204. Also, if the switch 207 is closed, the offset source 111 connected to the microprocessor external port 208 can read the voltage across the resistor 206 to determine the voltage output from the selected sensor. The offset source 111 can also generate the offset signal 121 to offset the voltage from the selected sensor to be outside of a predetermined range to invoke a fault operation. The offset measurement signal 122 shown in
If testing and calibration are enabled, at 410 calibration may be performed. If calibration is to be performed, the calibration may include ADC calibration 411 or sensor calibration 412.
ADC calibration 411 may include the microprocessor 300 selecting the multiplexer input shown in
At 412, sensor calibration may be performed. For example, the switch 207 shown in
At 420, the security functions of the microprocessor 300 are tested using the microprocessor testing circuit 100. The testing may use the calibration values determined at 411 and/or 412 to determine the linearized measurements 211 shown in
The offset source 111 generates the offset signal 121 which includes the offset amount to add to the voltage read at external port 208. For example, the offset source 111 stores the predetermined ranges of the sensors 110. Measurements outside the predetermined ranges are considered out of tolerance and should invoke security functions of the microprocessor 300. For example, the sensor 110a measures power supply voltage and the range is 4.8 to 5.2 volts. The offset source 111 reads the voltage at external port 208 to determine the sensor value of the selected sensor 110a. If the sensor value is representative of a 5 volt measurement, the offset source may generate a 1 volt offset signal and communicate the offset signal to the security application 311 reading the sensor measurements. The 1 volt offset may be communicated through another port or through another communication channel not shown to the security application 311. The security application receives the 5 volt measurement and the 1 volt offset and combines them to treat the measured power supply voltage to be 6 volts, even though it is actually at 5 volts. The 6 volts is out of the predetermined range for the sensor 110a, so the security application should invoke a fault operation that can be detected through testing. The same procedure may be performed for each sensor 110 to artificially drive each sensor out of its predetermined range to test if the proper fault operation is invoked.
Functions, steps and methods described herein may be embodied as machine readable instructions stored in non-transitory computer readable medium, such as data storage 302. The machine readable instructions may be executed by the microprocessor 300.
This application claims priority to U.S. provisional patent application No. 61/509,078, filed on Jul. 18, 2011, which is hereby incorporated by reference in its entirety. This application claims priority to U.S. patent application Ser. No. 13/355,315, filed on Jan. 20, 2012, which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61509078 | Jul 2011 | US |