Method and apparatus for remotely verifying memory integrity of a device

Information

  • Patent Application
  • 20070150857
  • Publication Number
    20070150857
  • Date Filed
    November 07, 2006
    19 years ago
  • Date Published
    June 28, 2007
    18 years ago
Abstract
A device and method for verifying the integrity of a memory in a remote device are provided. An exemplary memory integrity verification method compares, based on a verification parameter received from a verifier, the time for retrieving data block of a memory of a remote device with a maximum threshold time allowed to read the memory, and transmits to the verifier a remote verification code and a data status according to the result of comparison so that the verifier can verify the integrity of the memory. Instead of relying on the verifier, the remote device provides data status information for integrity verification by using the memory retrieval time. As a result, accurate integrity verification is provided, and no independent hardware is required to verify integrity.
Description

BRIEF DESCRIPTION OF THE DRAWING FIGURES

These and/or other aspects and advantages of the present general inventive concept will become apparent and more readily appreciated from the following description of exemplary embodiments, taken in conjunction with the accompanying drawings of which:



FIG. 1 illustrates a method of remote device integrity check known in the prior art;



FIG. 2 is a schematic block diagram of a remote device memory integrity verification system according to an exemplary embodiment of the present invention; and



FIG. 3 is a flowchart illustrating a method of remote device memory integrity verification according to an exemplary embodiment of the present invention.


Claims
  • 1. A remote device, comprising: a memory;a generator for generating a remote verification code, using a verification parameter which is received from a verifier, the verifier providing the verification parameter for integrity verification of the memory, and an integrity verifying function;a read proxy for retrieving data from the memory using the verification parameter, and for generating a status value according to a difference between a time of retrieving data from a first address from the memory and a time of retrieving data from a last address of the memory;an integrity verifier for providing the read proxy with the verification parameter; anda controller for controlling the device such that the remote verification code and the status value are transmitted to the verifier.
  • 2. The remote device of claim 1, wherein the verification parameter comprises a memory filling map and a random number sequence.
  • 3. The remote device of claim 2, wherein the read proxy retrieves data by filling in empty areas of the memory with at least a subset of the random number sequence according to the memory filling map, and reading in reverse order the contents of the fully filled memory.
  • 4. The remote device of claim 1, wherein the integrity verifier provides the generator with a message authentication code (MAC) generating function, and the generator generates the remote verification code using the MAC generating function.
  • 5. The remote device of claim 1, wherein the read proxy transmits the status value of “Failed” to the integrity verifier when the time difference is larger than a threshold time allowed to read the memory, and transmits the status value of “Success” to the integrity verifier when the time difference is not larger than the threshold time.
  • 6. An apparatus for verifying integrity of a memory of a remote device, comprising: a random number generator for generating a random number for use in verifying integrity of a remote memory of a remote device;a storage for storing a random number function for use by the random number generator, for storing a memory filling map which comprises information about the filling in of an empty area of the memory using the random number, and for storing a message authentication code (MAC) generating function for use in generating a local verification code;an analyzer for generating a local verification code using the MAC generating function, and for comparing the generated local verification code with a remote verification code received from the remote device; anda controller for transmitting the random number, the memory filling map, and an integrity verification function to the remote device, for receiving the remote verification code and a data status value from the remote device, and for determining the integrity of the memory of the remote device based on the data status value and a comparison result between the local verification code and the remote verification code.
  • 7. The apparatus of claim 6, wherein the data status value is a result of comparing a time difference with a threshold time, the time difference being obtained between a time of starting data retrieval of the memory and a time of finishing data retrieval of the memory.
  • 8. The apparatus of claim 7, wherein the data status value of “Failed” is received from the remote device when the time difference is larger than a threshold time, and the data status value of “Success” is received from the remote device when the time difference is not larger than the threshold time.
  • 9. The apparatus of claim 8, wherein when the data status value is “Success”, the local verification code is compared with the remote verification code, and if, as a result of the comparison, the local verification code is identical with the remote verification code, the integrity verification is determined to be successful, and if not, the integrity verification is determined to be failed, while, when the data status value is “Failed”, the integrity verification is determined to be failed.
  • 10. A method for verifying integrity of a remote device, the method comprising: receiving from a verifier a verification parameter, the verifier providing the verification parameter and an integrity verification function for integrity verification of a memory;retrieving data from the memory based on the verification parameter;obtaining a data status value by comparing a time difference with a threshold time, the time difference being obtained as a result of comparing a time of starting the data retrieval of the memory with a time of finishing the data retrieval; andgenerating a remote verification code and sending it together with the data status value to the verifier.
  • 11. The method of claim 10, wherein the verification parameter comprises a memory filling map and a random number.
  • 12. The method of claim 10, wherein the retrieving of the data from the memory based on the verification parameter comprises filling in an empty area of the memory with a random number according to a memory filling map and reading the contents of the full memory in a reverse order.
  • 13. The method of claim 10, wherein the obtaining of the data status value by comparing a time difference with a threshold time, comprises setting a data status value to “Failed” when the time difference is larger than the threshold time, and setting the data status value to “Success” when the time difference is not larger than the threshold time.
  • 14. The method of claim 10, wherein the generating of the remote verification code and sending it together with the data status value to the verifier comprises generating the remote verification code by using a message authentication code (MAC) generating function which is received from the verifier.
  • 15. A remote device, comprising: a memory;a generator for generating a remote verification code based on contents of the memory;a read proxy for retrieving data from the memory and for generating a status value; anda controller for controlling the device such that the remote verification code and the status value are transmitted to a verifier.
  • 16. The remote device of claim 15, wherein the generator generates the remote verification code by using a memory filling map and a random number sequence which are received from the verifier.
  • 17. The remote device of claim 16, wherein the read proxy generates the status value according to a difference between a time of retrieving data from a first address of the memory and a time of retrieving data from a last address of the memory.
  • 18. The remote device of claim 18, wherein the read proxy retrieves the data by filling in empty areas of the memory with at least a subset of the random number sequence according to the memory filling map and reading in reverse order the contents of the filled memory.
  • 19. A method for verifying integrity of a remote device, the method comprising: providing, by a verifier, an integrity verification function and a verification parameter to a remote device;retrieving data from a memory of the remote device based on the verification function;determining a data status value by comparing a time of starting the data retrieval from the memory with a time of finishing the data retrieval from the memory; andtransmitting the data status value to the verifier.
  • 20. The method of claim 19, wherein the verification parameter comprises a memory filling map and a random number sequence.
  • 21. The method of claim 20, further comprising: generating a remote verification code at the remote device by using a message authentication code (MAC) generating function which is received from the verifier; andtransmitting the remote verification code to the verifier.
  • 22. The method of claim 21, further comprising: generating a local verification code at the verifier by using the MAC generating function;comparing the local verification code to the remote verification code;determining, by the verifier, the integrity of the memory of the remote device based on the comparison of the local and remote verification codes and based on the data status value.
Priority Claims (1)
Number Date Country Kind
2005-131582 Dec 2005 KR national