The above and other objects, features and other advantages of the present invention will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings, in which:
Preferred embodiments of the present invention will now be described in detail with reference to the accompanying drawings.
Referring to
That is, the integrity attestation request and verification thereof are performed through the verification service 220, and then, the verification result is distributed to other systems that confirm the target system 210.
The integrity attestation target system 210 includes an integrity measuring module 211, a PCR 212, a measurement record storing unit 213 and an integrity attestation service module 213, as like that defined in TCG. However, the functions of these constitutional elements are newly defined to protect the configuration information of a platform.
In more detail, the integrity measuring module 211 creates measurement values by measuring component related to events that influences the integrity when the events are occur. The measurement value is hidden not to open information about components that form the measurement value. The hidden measurement value reflects to the PCR 212 and the measurement record storing unit 213. Also, the integrity measuring module 211 provides a hidden key to the integrity attestation service module 214. The hidden key is a parameter used to hide the measurement value.
The PCR 212 receives and stores a new hidden measurement value from the integrity measurement module 211. The PCT 212 performs a hash calculation on the recorded PCR value and the newly input hidden measurement value, and updates the recorded PCR value with the result of the hash calculation.
The measurement record storing unit 213 stores the hidden measurement value with information for identifying the hidden measurement value in an order of inputting the hidden measurement value.
The integrity attestation service module 214 provides data to attest the integrity to the verification server 220 in response to the integrity attestation request from the verification server 220. When the data is provided, the integrity attestation service module 214 also provides a measurement list stored in the measurement record storing unit 213, a PCR value recorded in the PCR 212, a sign for the PCR value, a certification including a key verifying the sign, and a hidden key which is an encoded parameter to confirm the integrity of the component from the hidden measurement value.
According to the present embodiment, since the component information related to the measurement value is hidden in the data transferred to the verification server 220, the other systems cannot obtain the platform configuration of the target system 210 except the target system 210.
The verification server 220 must have information about the integrity verified components previously in order to confirm whether the integrity of the target system 210 is sustained or not from the data from the integrity attestation service module 214. The verification server 220 determines whether the integrity is sustained or not by verifying the sign for the transmitted data and the PCR value, and verifying the hidden measurement value is made of integrity sustained components using the information about integrity verified components. If the integrity is sustained, the certification data is distributed to other systems. The verification server 220 uses the hash value of each component to identify the component of the hidden measurement value because the probability that the hash values of two components are identical is very low. In order to increase a process speed, the hash value of the component is processed. The hash value processing will be described in more detail later.
Referring to
In order to prevent the configuration information of the computing platform from being opened in the integration attestation step, it hides components that the created measurement value is made of at step S320. At the step S320, the measurement value is transformed to hide the components information of the created measurement value. Herein, a variable generated using a random value is used. The hiding method will be described in detail in later.
Afterward, the hidden measurement value is stored in the measurement list that stores information about all measurement values measured after the platform starts, and a PCR value is recorded in TPM at step S330.
The steps S310 to S330 are performed when events influencing the integrity occur after the computing platform starts and until the computing platform is terminated, and collects information to attest the integrity of the integrity attestation target system 210.
When the integrity attestation target system 210 receives the integrity attestation request including a random number from the verification server 220 at step S340, the integrity attestation target system 210 creates a sign for PCR value stored until now using the PCR value at step S350. That is, the integrity attestation service module 214 provides the integrity attestation request including the random number, which is provided from the verification server 220, to the TPM, and the TPM creates the sign for the PCR value.
Furthermore, the integrity attestation target system 210 creates a parameter for the verification server 220 to confirm whether the hidden measurement value is created from the verified components or not, and encodes the created parameter in order to be recognized by the verification server only at step S360. Since the integrity attestation target system is protected by hiding information about components forming the measurement value in the present embodiment, the verification server 220 does not confirm which components form the hidden measurement value. That is, the verification server 220 confirms whether the hidden measurement value is generated from the integrity verified components or not, and the verification server 220 provides the related information for confirming through the step S360.
When the data for verifying the integrity are prepared from the verification server 220, the integrity attestation target system 210 transmits the prepared data to the verification server 220 for the verification server 220 to verify the integrity of itself at step S370. The data transferred to the verification server for attesting the integrity includes a measurement list, a PCR value, a sign for the PCR value, a certification including a key for confirming the sign, and an encryption value of a hidden parameter for confirming whether the hidden measurement value is created from the integrity verified components or not. As described above, the measurement list includes hidden measurement values and information for identifying each of the hidden measurement values. Whenever the hidden measurement value is created, the PCR value is updates with a value generated by performing a hash operation on the previous PCR value with the created hidden measurement value.
The verification server 220 attests the integrity of the target system 210 from information formed of hidden measurement value transferred from the integrity attestation target system 210 as shown in
Referring to
After storing the previous information as described above, the verification server transmits an integrity attestation request to corresponding integrity target system 210 when the integrity attestation is required for a predetermined target system at step S420. The integrity attestation request includes a random number set by the verification server 220 for generating a sign for the PCR value. The random number is used to verify the sign for the PCR value transmitted from an integrity attestation target system 210.
When the verification server 220 receives the response from the integrity attestation target system 210, the verification server 220 extracts data for verifying the integrity from the received response message at step S440. That is, the verification server 220 extracts the measurement list, the PCR value, the sign for the PCR value, the certification including a key for confirming the sign, and the encrypted parameters from the received response, which were transferred from the integrity attestation target system 210 previously.
Then, the verification server 220 verifies the extracted data. At first, the verification server 220 verifies the sign for the PCR value at step S450. Then, the verification server 220 recomposes the PCR value using the values of the measurement list and verifies whether the recomposed PCR value is identical to the extracted PCR value at steps S460 and S470. After decoding the encoded parameter, the hidden measurement value in the measurement list is transformed using the encoded parameter, and the hidden measurement value is created from the integrity verified components or not by comparing the transformed value with the integrity verified component at step S480.
If three verifications are all success, the verification server 220 determines that the integrity of the target system 210 is sustained at step S490. If at least one of the three verifications is failed, the verification server 220 determines that the integrity of the integrity attestation target system 210 is not sustained at step S510.
When the verification server 220 determines that the integrity of the target system 210 is sustained, the verification server 220 creates certification data for certifying that the integrity of the target system 210 is sustained so as to open this information to the other external system at step S500. The certification data may include information for identifying an integrity attestation target system and the certification thereof. Also, the certification data may include a certification for a PCR value embodied as the hidden measurement value. The certification data may be formed in various formats.
In this embodiment, it assumes that the verification server 220 and the integrity attestation target system 210 share a large decimal number P and a generator g of a group ZP*. The integrity attestation method according to the present embodiment will be described under that assumption that TPM include only one PCR.
Furthermore, the verification server 220 must have information about integrity verified components previously in order to confirm whether the integrity of the target systems is sustained or not. Among the information, the identification information of each component is embodied by the hash value of the component, and the identification information is modified through additional process for increasing the speed of the verification process as follows.
At the first step, hash values of all of integrity verified components are obtained for known components. That is, if n denotes the number of the integrity verified components, Equation 1 below is calculated.
m
j=Hash(componentj) (Equation 1)
where 1≦j≧n, and n is an natural number greater than 1.
At the second step, Bj is calculated for the calculated hash value mj using the shared large decimal number P and the generator g of zP*, as like Equation 2 below.
βj=gm
where a bit text sequence mj is treated as an integer. P is a factor of P−1 according to the definition of discrete logarithm problem and a decimal number q must be larger than the maximum value of when value are treated as large integers.
At the third step, a set (β1, β2, β3, . . . , βn) is obtained by repeating the second step for all components. Then, a feature value for known combinations among combinations made from the elements of the set is calculated through the P. The calculated feature value is stored as the previous information for the integrity verified components. For example, if the elements of a combination is (β1, β3, β7, βn), the feature value of the combination is (β1×β3×β7×βn)mod P. Accordingly, the previous information is prepared for verifying integrity without verifying components from the hidden measurement value.
When the integrity attestation target system 210 is driven by supplying the power thereto, the values for integrity attestation are initialized. For example, the value of PCR 212 is set to 0 and the measurement list variable ML is initialized.
When an event influencing the integrity occurs in the integrity attestation target system 210, the integrity measuring module 211 creates a measurement value of a component related to the corresponding event. When the measurement value is crated, the hash value of the component i is calculated as like equation mi=H(componenti). Then, using the mi and the shared decimal number P, βi=gm
Although the hash value of the component i is processed to βi using the information shared with the verification server 220 without using the hash value of the component i as it is easy to detect which components are related to the βi, because the P is already opened and the hash value of the component can be calculated by anyone.
In the present embodiment, it hides that the created measurement value is measured from a component i as like the step S320 in
After calculating the hidden measurement value, the hidden measurement value λi and the hash value thereof H(λi) are added in the measurement list ML as like ML=ML+{λi,H(λi)}.
Herein, the hash value H(λi) is used as the identification value of the hidden measurement value.
Furthermore, the hash value H(λi) of the hidden measurement value is transmitted to TPM and updates the PCR value. Herein, the updated PCR value is PCR=H(PCR,H(λi)).
Then, when the integrity attestation request (ChReq(nonce)) is received from the verification server 220, the integrity attestation service module 214 prepares data for the verification server 200 to verify the integrity of the target system. That is, a random number (nonce) include in the request is transferred to the TPM of the integrity attestation target system 210, and the TPM creates a sign for a PCR value and a random number as like quote=sigAIK(PCR,nonce)). The integrity measurement module 211 calculates
for all parameters generated for hiding the measurement values measured until now. Then, the reverse element α−1 of the calculated α, and transferred to the integrity service module 214. Then, the integrity attestation service module 214 encodes the parameter α−1 for the verification server 220. For example, the public key of the verification server 220 is used to encode the parameter α−1.
The integrity attestation service module 214 transmits a response message (ChRes) to the verification server 220 with the PCR value, the sign (quoto) thereof, the measurement list ML, the certification including a key for verifying the sign, and the parameter {α−1}serverpubkey for verifying the integrity.
The verification server 220 verifies the sign for the PCR value using the certification, and recomposes the PCR value using the hash value of the hidden measurement values in the ML, and determines whether the signed PCR value is identical to the recomposed PCR value. Then, the verification server decodes the encoded parameter {α−1}serverpubkey for confirming whether the hidden measurement values in the ML are calculated from the integrity verified components or not. Then, the verification server 220 calculates
for all hidden measurement values in the ML. Then, using the decode α−1, the feature values (λ×α−1)mod p are calculated for all hidden measurement values in the ML. Then, the calculated feature value is compared with the previously stored information. If one of the previously stored information is matched with the calculated feature value, it determines that the hidden measurement values are calculated from the integrity verified components.
If the verification server 220 confirms that the integrity of the target system 210 is sustained, the verification server 220 creates data that certifies that the integrity of the platform having the PCR value is sustained. Accordingly, the other systems can verify the integrity of the integrity attestation target system 210.
As set forth above, according to preferred (certain) embodiments of the invention, the method for attesting integrity of computing platform hides internal information of a target platform from attackers that taps the communication line as well as an integrity attestation request system. Therefore, the information of the integrity attestation target system is protected from being harmfully used.
Furthermore, the method for attestation integrity of a computing platform according to the present invention minimizes the calculation amount in a verification server while verifying the integrity of a target system through the verification server. Therefore, it prevents the overall processing speed for integrity attestation from being delayed by eliminating the cause of the bottle neck problem in the verification server.
While the present invention has been shown and described in connection with the preferred embodiments, it will be apparent to those skilled in the art that modifications and variations can be made without departing from the spirit and scope of the invention as defined by the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
10-2006-0096571 | Sep 2006 | KR | national |