This application is based on and claims priority under 35 U.S.C. ยง 119 to Korean Patent Application Nos. 10-2021-0156059 and 10-2022-0043064, filed on Nov. 12, 2021, and Apr. 6, 2022, in the Korean Intellectual Property Office, the disclosures of which are incorporated by reference herein in their entireties.
The disclosure relates to an integrity verification method and, more particularly, to a method, a device, and a platform for generating a hash to verify integrity.
With the development of technologies such as the Internet of things (IoT) and cloud technology, technologies for platform security are being developed. Attackers are often modulating data by attacking a device connected to a platform. Therefore, the platform needs to verify whether the data of the device is modulated, that is, the integrity is compromised. However, a conventional integrity verification method is vulnerable to a replay attack in which an attacker uses a pre-stolen hash during integrity verification.
The disclosure relates to an increase in security of a platform, which is achieved by stably verifying integrity of a device against a replay attack.
According to an aspect of the disclosure, there is provided a device connected to a platform, including a security system including device real time clock (RTC) data and main firmware communicating with the platform. The security system generates a device hash from the device RTC data and the main firmware hash and the main firmware provides a response including the device hash to the platform.
According to an aspect of the disclosure, there is provided a platform connected to at least one device, including a platform root of trust (RoT) verifying integrity of a device hash and a hash table storing a main firmware hash of the at least one device. The platform RoT verifies the integrity of the device hash based on platform real time clock (RTC) data and the main firmware hash.
According to an aspect of the disclosure, there is provided a method of verifying integrity of a device connected to a platform, including synchronizing platform real time clock (RTC) data with device RTC data, the device generating a device hash from the device RTC data and a main firmware hash of the device, and the platform verifying integrity of the device hash based on the platform RTC data and a firmware hash stored in the platform.
Embodiments of the disclosure will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings in which:
The platform 100 may include a device communicating with the device 200 through the interface 300, for example, a server or an encrypted system. In order to maintain platform security, the device 200 (for example, a solid-state drive (SSD)) connected to the platform 100 may verify whether data is modulated by attackers, that is, integrity of the device 200. In order to verify the integrity of the device 200, the platform 100 may include a platform active (PA) root of trust (RoT) 120 verifying the integrity of the device 200. In addition, the platform 100 may store firmware hashes of the device 200 in a table and may request firmware hashes of the device 200 when the device 200, which is connected to the platform 100, is booted and operates.
When firmware of the device 200 is modulated by an attacker, the firmware hashes of the device 200 may also be changed. Therefore, the platform 100 may test the integrity of the device 200 by receiving the firmware hashes of the device 200 from the device 200 and comparing the received firmware hashes with the stored firmware hashes.
When the firmware hashes of the device 200 match the stored firmware hashes, the platform 100 may determine that the device 200 has integrity and the platform 100 and the device 200 may perform a normal sequence operation. The normal sequence operation may be transmitting and receiving a signal between the platform 100 and the device 200 to drive the device 200 under the premise that the device 200 has integrity. In some embodiments, the platform 100 may transmit an integrity verification result determining that the device 200 has integrity to the device 200. The device 200 may operate normally based on the integrity verification result.
When the firmware hashes of the device 200 do not match the stored firmware hashes, the platform 100 may determine that the device 200 does not have integrity and may perform an error sequence operation. The error sequence operation may be for responding to lack of integrity of the device 200. For example, the platform 100 may perform a firmware recovery operation of initializing main firmware 210 of the device 200. In some embodiments, the platform 100 may transmit an integrity verification result determining that the device 200 does not have integrity to the device 200. The device 200 may zeroize sensitive security parameters (SSP) so that the attacker may not use the SSPs, such as a device private key, based on the integrity verification result.
The device 200 may include the main firmware 210 and a security system 220. The main firmware 210 may drive the device 200.
The security system 220 may correspond to the PA RoT of the platform 100 and may be referred to as an active component (AC) RoT. The security system 220 may include security firmware 221 and SSPs. The SSPs used for integrity verification may include device real time clock (RTC) data 422-1A, nonce data, and a device private key 422-3 as described later with reference to
The interface 300 may change the signal transmitted and received between the platform 100 and the device 200 to fit specifications of the platform 100 and the device 200 and may transmit the changed signal.
As described later with reference to the drawings, the platform 100 may determine whether the device 200 is modulated by the integrity verification using the RTC data and may perform the error sequence operation when the device 200 is modulated to increase security of the platform 100.
Referring to
Referring to
In operation S120, the platform 100 may transmit a firmware hash measurement request including the nonce data to the main firmware 210 of the device 200. The nonce data may be generated by the platform 100 and may be any number used to verify the integrity of the device 200. For example, the platform 100 may include a random number generator and the nonce data may include a random number generated by a random number generator and/or a value generated from the random number.
In operation S130, the security firmware 221 of the device 200 may generate a device hash from the main firmware hash and the nonce data. That is, the device hash may be expressed as HASH(NONCEIHASH(MAIN FW)). The attacker may perform a so-called replay attack by using stolen information without reading the main firmware hash from the main firmware 210 of the device 200 to hide the fact that the code of the main firmware 210 is modulated. In other words, the attacker may generate the device hash from the nonce data and the main firmware hash stolen in operation S110.
In operation S140, the device 200 may transmit the device hash generated in operation S130 to the platform 100 through the main firmware 210 of the device 200.
In operation S150, the platform 100 may verify integrity of the device hash received from the device 200. The integrity of the device hash may be verified by determining whether the main firmware hash of the device 200, which is stored in the platform 100, and a hash generated from the nonce data match the device hash received in operation S140. Because the device hash is generated by using the hash stolen by the attacker, the main firmware hash of the device 200, which is stored in the platform 100, and the hash generated from the nonce data may match the device hash. Therefore, the platform 100 may generate an integrity verification result having information representing that the device 200 passes the integrity verification.
In operation S160, the platform 100 may transmit the integrity verification result to the security firmware 221.
In operation S170, the security firmware 221 may perform a response based on the received integrity verification result. The security firmware 221 may perform the normal sequence operation as the response based on the integrity verification result and may not take any action against the modulation of the main firmware 210. As such, the integrity verification method of
In addition, in the integrity verification method of
Referring to
In operation S210, an attacker may steal a main firmware hash from the main firmware 210 of the device 200 and may modulate the code of the main firmware 210 of the device 200 for hacking. Information stolen by the attacker may include an integrity verification result having information representing that the device 200 passes the integrity verification.
In operation S220, the security firmware 221 of the device 200 may require the integrity verification to prevent the modulated main firmware 210 from accessing the important data before using the security function. Unlike in
In operation S230, the device 200 may transmit the device hash generated in operation S220 to the platform 100 through the main firmware 210 of the device 200.
In operation S240, the platform 100 may verify integrity of the device hash received from the device 200. The integrity of the device hash may be verified by determining whether the main firmware hash of the device 200, which is stored in the platform 100, matches the device hash received in operation S230. Because the device hash is generated by using the hash stolen by the attacker, the main firmware hash of the device 200, which is stored in the platform 100, may match the device hash. Therefore, the platform 100 may generate an integrity verification result having information representing that the device 200 passes the integrity verification.
In operation S250, the platform 100 may transmit the integrity verification result to the device 200.
In operation S260, the security firmware 221 may perform the normal sequence operation as the response based on the received integrity verification result and may not take any action against the modulation of the main firmware 210.
Therefore, it may be noted that, although the integrity is tested before using the security function, the integrity verification method is vulnerable to the replay attack.
The security system 420 may include an encryption module 421 and security memory 422. The encryption module 421 may include hardware components physically performing cryptographic operations. The security memory 422 may include security firmware 422-1, a platform public key 422-2, and a device private key 422-3 and the security firmware 422-1 may include device RTC data 422-1A.
Access to data items (the device RTC data 422-1A, the platform public key 422-2, and the device private key 422-3) in the security system 420 corresponding to the SSP of
The security processor 421-1 may be a dedicated processor for executing functions of the security system 420.
The hash generator 421-2 may be hardware for generating a main firmware hash and a device hash. The hash generator may generate the main firmware hash from main firmware information 422-1C received from the security firmware 422-1. In addition, the hash generator 421-2 may generate the device hash by calculating the hash from the device RTC data 422-1A, the nonce data 422-1B, and the main firmware hash. For example, the hash generator 421-2 may generate the device hash by calculating the hash after serially concatenating the device RTC data 422-1A, the nonce data 422-1B, and the main firmware hash. That is, the device hash may be expressed as HASH(DEVICE RTC DATAINONCEIHASH(MAIN FW)). The order in which the hash generator 421-2 serially concatenates the data items may be set to be the same as the order in which data items are concatenated when the hash is generated by the platform 500.
The asymmetric cipher 421-3 may encrypt or decrypt data by using a public key or a private key. For example, the asymmetric cipher 421-3 may encrypt the device hash by using the platform public key 422-2.
The security memory 422 may include the security firmware 422-1, the platform public key 422-2, and the device private key 422-3. The security firmware 422-1 may include the device RTC data 422-1A, the nonce data 422-1B, and the main firmware information 422-1C.
The device RTC data 422-1A may be synchronized with platform RTC data when the device 400 is booted. The device RTC data 422-1A, changing in real time, may include data such as time, minute, or seconds. For example, the device RTC data 422-1A may change by time that has passed in units of one second from a time when the device 400 is booted. In an embodiment, the device RTC data 422-1A may be initialized to an initial value (for example, 0 hour 0 minutes 0 seconds) when the device 400 is booted and may increase by time that has passed after the device 400 is booted. In another embodiment, the device RTC data 422-1A may receive additional power, although power of the device 400 is turned off, to increase by time that has passed in units of one second. The device RTC data 422-1A may be synchronized with the platform RTC data when the device 400 is booted to have the same value as the platform RTC data. Because the main firmware 410 is prevented from accessing the device RTC data 422-1A and the platform 500 and the device 400 have the synchronized RTC data, the platform 500 may prevent the replay attack by using the device RTC data 422-1A when integrity of the device 400 is verified.
The nonce data 422-1B may be generated by the platform 500 and may be any number used to verify the integrity of the device 400. The platform 500 may transmit a firmware hash measurement request including the nonce data 422-1B to the device 400. The security firmware 422-1 may receive the nonce data 422-1B from the platform 500 to store the nonce data 422-1B.
The main firmware information 422-1C may be an address and a size of the main firmware 410. The security firmware 422-1 may read the address and size of the main firmware 410 from the main firmware 410 to store the address and size of the main firmware 410 as the main firmware information 422-1C. In an embodiment, the security system 420 may further include a direct memory access (DMA). The security firmware 422-1 may read a code of the main firmware, by the size of the main firmware (e.g., identifying the size of the main firmware), from the address of the main firmware 410 in which the main firmware 410 is stored by using the DMA. The main firmware information 422-1C may be used to generate the main firmware hash by the hash generator 421-2.
The platform public key 422-2 may be used for the device 400 to encrypt the device hash by the asymmetric cipher 421-3. As described with reference to
The platform private key 422-3 may be used for the device 400 to encrypt the device hash by the asymmetric cipher 421-3. As described with reference to
The PA RoT 520 may correspond to the security system 420 of the device 400. The PA RoT 520 may include platform RTC data 521, a hash generator 522, an asymmetric cipher 523, a platform private key 524, and a device public key 525.
The platform RTC data 521 may correspond to the device RTC data 422-1A of
The hash generator 522 may correspond to the hash generator 421-2 of
The asymmetric cipher 523 may encrypt or decrypt data by using a public key or a private key. For example, the asymmetric cipher 523 may encrypt the verification result hash by using the device public key 525.
The platform private key 524 may be used for the platform 500 to encrypt the verification result hash by the asymmetric cipher 523. As described with reference to
The device public key 525 may be used for the platform 500 to encrypt the verification result hash by the asymmetric cipher 523. As described with reference to
The random number generator 530 may generate the nonce data required to verify integrity. In some embodiments, the random number generator 530 may generate the nonce data when it is required to measure the firmware hash and may transmit the nonce data to the PA RoT 520.
In operation S410, the platform 500 may generate the firmware hash measurement request including the nonce data and may transmit the generated firmware hash measurement request to the main firmware 410 of device 400.
In operation S310, the security firmware 422-1 of device 400 may receive the firmware hash measurement request including the nonce data from the platform 500 via the main firmware 410 of device 400.
In operation S320, the security firmware 422-1 of device 400 may generate the device hash with the hash generator 421-2. The hash generator 421-2 may generate the main firmware hash based on the address and size of the main firmware 410. Then, the hash generator 421-2 may generate the device hash by calculating the hash after serially concatenating the device RTC data 422-1A, the nonce data, and the main firmware hash. That is, the device hash may be expressed as HASH(DEVICE RTC DATAINONCEIHASH(MAIN FW)).
In operation S330, the security firmware 422-1 of device 400 may transmit the device hash generated in operation S320 through the main firmware 410.
In operation S420, the platform 500 may receive the device hash generated by the device 400 as a response to operation S410.
In operation S430, the platform 500 may generate the verification result hash by verifying the integrity of the device hash. As described with reference to
In operation S440, the platform 500 may transmit the verification result hash to the main firmware 410 of device 400.
In operation S340, the security firmware 422-1 of device 400 may receive the verification result hash from the platform 500 through the main firmware 410.
In operation S310, the device 400 may receive the firmware hash measurement request including the nonce data from the platform 500.
In operation S320, the device 400 may generate the device hash by the hash generator 421-2. The hash generator 421-2 may generate the main firmware hash by accessing memory in which the main firmware information is stored. Then, the hash generator 421-2 may generate the device hash by calculating the hash after serially concatenating the device RTC data 422-1A, the nonce data 422-1B, and the main firmware hash. That is, the device hash may be expressed as HASH(DEVICE RTC DATAINONCEIHASH(MAIN FW)). In an embodiment, the device 400 may generate an electronically signed device hash by encrypting the device hash by using the device private key 422-3. In another embodiment, the device 400 may generate the encrypted device hash by encrypting the device hash by using the platform public key 422-2. In addition, the device 400 may generate the electronically signed device hash by using the device private key 422-3 to encrypt the electronically signed device hash by using the platform public key 422-2.
In operation S330, the device 400 may transmit the device hash generated in operation S320 through the main firmware 410.
In operation S340, the device 400 may receive the verification result hash from the platform 500 through the main firmware 410.
In operation S350, as described with reference to
In operation S360, the device 400 may determine whether the verification result hash received from the platform 500 is PASS or FAIL. The device 400 may perform operation S370 when the verification result hash is PASS and may perform operation S371 when the verification result hash is FAIL. The device 400 may perform operation S371 when an RTC of the verification result hash is not valid or the device 400 does not receive the verification result hash although a certain amount of time has passed.
In operation S370, the device 400 may perform a normal sequence operation of transmitting and receiving a signal between the platform 500 and the device 400 to drive the device 400 under the premise that the device 400 has integrity.
In operation S371, the device 400 may perform an error sequence operation to respond to lack of integrity. The device 400 may zeroize SSPs so that the attacker may not use the SSPs, such as the device private key 422-3.
In operation S351, the device 400 may obtain reference RTC data for generating the reference hash of operation S352. The reference RTC data may be the device RTC data 422-1A when the verification result hash is received as an initial value in operation S340 of
In operation S352, the device 400 may generate the reference hash with the hash generator 421-2. The reference hash may be calculated after serially concatenating the reference RTC data and the integrity verification result. That is, the reference hash may be expressed as HASH(REF RTC DATAIRESULT). Here, the reference RTC data may be obtained in operation S351 and the integrity verification result may be read from the verification result hash.
In operation S353, the device 400 may determine whether the verification result hash matches the reference hash. When the verification result hash matches the reference hash, the process proceeds to operation S355-1 so that the device 400 may determine that the RTC of the verification result hash is valid. On the other hand, when the verification result hash does not match the reference hash, the process may proceed to operation S354.
In operation S354, it may be determined whether the RTC of the verification result hash will be continuously checked by comparing the reference RTC data with N. N may be data for determining whether the reference RTC data is within the effective range. N may be calculated by subtracting effective range from an initial reference RTC data. For example, when the effective range is 30 seconds and the reference RTC data initially obtained in operation S351 represents 14:5:32, N may be data representing 14:5:2 obtained by subtracting the effective range from the reference RTC data.
When the reference RTC data is greater than or equal to N, the reference RTC data may be reduced by one second in operation S356. If the reference RTC data is later than N, it may correspond to a greater value than N. After operation S356, operations S351 to S353 may be repeated. In other words, the device 400 may generate the reference hash while reducing the reference RTC data by one second within the effective range of 30 seconds from 14:5:32 when the test result hash is received and may determine whether the reference hash matches the verification result hash, through which it may be determined whether the verification result hash is generated based on the platform RTC data 521 within the effective range. When the reference RTC data is less than N, the process proceeds to operation S355-2 so that the device 400 may determine that the RTC of the verification result hash is not valid.
In the operation of determining the RTC data of the verification result hash as illustrated in
In operation S410, the platform 500 may generate the firmware hash measurement request including the nonce data and may transmit the generated firmware hash measurement request to the device 400. The platform 500 may prevent the replay attack by verifying whether the hash transmitted by the device 400 in response to the firmware hash measurement request has information matching the nonce data transmitted by the platform 500. According to an embodiment, when the device RTC data 422-1A is initialized to the same value when the device 400 is booted, because the attacker may predict the device RTC data 422-1A, the nonce data may be used to prevent the replay attack together with the device RTC data 422-1A.
In operation S420, the platform 500 may receive the device hash generated by the device 400 as a response to operation S410.
In operation S430, the platform 500 may generate the integrity verification result by verifying the integrity of the device hash. As described with reference to
In an embodiment, the platform 500 may generate an electronically signed verification result hash by encrypting the verification result hash by using the platform private key 524. In another embodiment, the platform 500 may generate an encrypted verification result hash by encrypting the verification result hash by using the device public key 525. In addition, the platform 500 may encrypt the electronically signed verification result hash by using the device public key 525 after generating the electronically signed verification result hash by using the platform private key 524.
In operation S440, the platform 500 may transmit the verification result hash to the device 400.
In operation S450, the platform 500 may determine which operation is to be performed between the normal sequence operation and the error sequence operation in accordance with the integrity verification result. The platform 500 may perform the normal sequence operation in the next operation when the integrity verification result is PASS and may perform the error sequence operation in the next operation when the integrity verification result is FAIL.
In operation S460, the platform 500 may perform the normal sequence operation of transmitting and receiving the signal to and from the device 400 under the premise that the device 400 has integrity.
In operation S461, the platform 500 may perform the error sequence operation to respond to lack of integrity of the device 400. For example, the platform 500 may perform a firmware recovery operation of initializing the main firmware 410 of the device 400.
In operation S431, the platform 500 may obtain reference RTC data for generating the reference hash of operation S432. The reference RTC data may be the platform RTC data when the device hash is received as an initial value in operation S420 of
In operation S432, the platform 500 may generate the reference hash by the hash generator 522. The reference hash may be calculated after serially concatenating the reference RTC data, the nonce data, and the main firmware hash. That is, the reference hash may be expressed as HASH(REF RTC DATAINONCEIHASH(MAIN FW)). Here, the reference RTC data may be obtained in operation S431 and the nonce data may be included in the firmware hash measurement request in operation S410 of
In operation S433, the platform 500 may determine whether the device hash matches the reference hash. When the device hash matches the reference hash, the process proceeds to operation S435-1 so that the platform 500 may generate a result that the device 400 passes the integrity verification. On the other hand, when the device hash does not match the reference hash, the process may proceed to operation S434.
In operation S434, it may be determined whether the integrity verification will be continuously performed by comparing the reference RTC data with N. N may be data for determining whether the reference RTC data is within the effective range. For example, when the effective range is 30 seconds and the reference RTC data initially obtained in operation S431 represents 14:5:32, N may be data representing 14:5:2 obtained by subtracting the effective range from the reference RTC data.
When the reference RTC data is greater than or equal to N, the reference RTC data may be reduced by one second in operation S436. After operation S436, operations S431 to S433 may be repeated. In other words, the platform 500 may generate the reference hash while reducing the reference RTC data by one second within the effective range of 30 seconds from 14:5:32 when the device hash is received and may determine whether the reference hash matches the device hash, through which it may be determined whether the device hash is generated based on the device RTC data 422-1A within the effective range. When the reference RTC data is less than N, the process proceeds to operation S435-2 so that the platform 500 may generate a result that the device 400 fails the integrity verification.
In the integrity verification operation illustrated in
Unlike
In operation S510, the security firmware 422-1 of device 400 may generate the device hash using the hash generator 421-2 before using the security function. The hash generator 421-2 may generate the main firmware hash based on the address and size of the main firmware 410. Then, the hash generator 421-2 may generate the device hash by calculating the hash after serially concatenating the device RTC data 422-1A and the main firmware hash. That is, the device hash may be expressed as HASH(DEVICE RTC DATAIHASH(MAIN FW)).
In operation S520, the device 400 may transmit the device hash generated in operation S510 through the main firmware 410.
In operation S610, the platform 500 may receive the device hash generated by the device 400.
In operation S620, the platform 500 may generate the integrity verification result by verifying the integrity of the device hash. As described with reference to
In operation S630, the platform 500 may transmit the verification result hash to the main firmware 410 of device 400.
In operation S530, the security firmware 422-1 of device 400 may receive the verification result hash from the platform 500 through the main firmware 410.
In operation S510, the device 400 may generate the device hash with the hash generator 421-2 before using the security function. The hash generator 421-2 may generate the main firmware hash based on the address and size of the main firmware 410. Then, the hash generator may generate the device hash by calculating the hash after serially concatenating the device RTC data 422-1A and the main firmware hash. That is, the device hash may be expressed as HASH(DEVICE RTC DATAIHASH(MAIN FW)). In an embodiment, the device 400 may generate an electronically signed device hash by encrypting the device hash by using the device private key 422-3. In another embodiment, the device 400 may generate the encrypted device hash by encrypting the device hash by using the platform public key 422-2. In addition, the device 400 may generate the electronically signed device hash by using the device private key 422-3 to encrypt the electronically signed device hash by using the platform public key 422-2.
In operation S520, the device 400 may transmit the device hash generated in operation S510 through the main firmware 410.
In operation S530, the security firmware 422-1 of device 400 may receive the verification result hash from the platform 500 through the main firmware 410.
In operation S540, the device 400 may determine whether the verification result hash is generated by the platform RTC data 521 in the effective range.
In operation S550, the device 400 may determine whether the verification result hash received from the platform 500 is PASS or FAIL. The device 400 may perform operation S560 when the verification result hash is PASS and may perform operation S561 when the verification result hash is FAIL. The device 400 may perform operation S561 when an RTC of the verification result hash is not valid or the device 400 does not receive the verification result hash although a certain amount of time has passed.
In operation S560, the device 400 may perform a normal sequence operation of transmitting and receiving a signal between the platform 500 and the device 400 to drive the device 400 under the premise that the device 400 has integrity.
In operation S561, the device 400 may perform an error sequence operation to respond to a lack of integrity. The device 400 may zeroize SSPs so that the attacker may not use the SSPs, such as the device private key 422-3.
The operation S540 of determining the RTC of the verification result hash may include a plurality of operations S541 to S546, which will be described in detail as follows.
In operation S541, the device 400 may obtain reference RTC data for generating the reference hash of operation S542. The reference RTC data may be the device RTC data 422-1A when the verification result hash is received as an initial value in operation S530 of
In operation S542, the device 400 may generate the reference hash with the hash generator 421-2. The reference hash may be calculated after serially concatenating the reference RTC data and the integrity verification result. That is, the reference hash may be expressed as HASH(REF RTC DATAIRESULT). Here, the reference RTC data may be obtained in operation S541 and the integrity verification result may be read from the verification result hash.
In operation S543, the device 400 may determine whether the verification result hash matches the reference hash. When the verification result hash matches the reference hash, the process proceeds to operation S545-1 so that the device 400 may determine that the RTC of the verification result hash is valid. On the other hand, when the verification result hash does not match the reference hash, the process may proceed to operation S544.
In operation S544, it may be determined whether the RTC of the verification result hash will be continuously checked by comparing the reference RTC data with N. N may be data for determining whether the reference RTC data is within the effective range. For example, when the effective range is 30 seconds and the reference RTC data initially obtained in operation S541 represents 14:5:32, N may be data representing 14:5:2 obtained by subtracting the effective range from the reference RTC data.
When the reference RTC data is greater than or equal to N, the reference RTC data may be reduced by one second in operation S546. After operation S546, operations S541 to S543 may be repeated. In other words, the device 400 may generate the reference hash while reducing the reference RTC data by one second within the effective range of 30 seconds from 14:5:32 when the test result hash is received and may determine whether the reference hash matches the verification result hash, through which it may be determined whether the verification result hash is generated based on the platform RTC data 521 within the effective range. When the reference RTC data is less than N, the process proceeds to operation S545-2 so that the device 400 may determine that the RTC of the verification result hash is not valid.
In operation S610, the platform 500 may receive the device hash generated by the device 400.
In operation S620, the platform 500 may generate the integrity verification result by verifying the integrity of the device hash. As described with reference to
In operation S630, the platform 500 may transmit the verification result hash to the device 400.
In operation S640, the platform 500 may determine which operation is to be performed between the normal sequence operation and the error sequence operation in accordance with the integrity verification result. The platform 500 may perform the normal sequence operation in the next operation when the integrity verification result is PASS and may perform the error sequence operation in the next operation when the integrity verification result is FAIL.
In operation S650, the platform 500 may perform the normal sequence operation of transmitting and receiving the signal to and from the device 400 under the premise that the device 400 has integrity.
In operation S651, the platform 500 may perform the error sequence operation to respond to a lack of integrity of the device 400. For example, the platform 500 may perform a firmware recovery operation of initializing the main firmware 410 of the device 400.
The integrity verification operation S620 may include a plurality of operations S621 to S626, which will be described in detail as follows.
In operation S621, the platform 500 may obtain reference RTC data for generating the reference hash of operation S622. The reference RTC data may be the platform RTC data when the device hash is received as an initial value in operation S610 of
In operation S622, the platform 500 may generate the reference hash with the hash generator 522. The reference hash may be calculated after serially concatenating the reference RTC data and the main firmware hash. That is, the reference hash may be expressed as HASH(REF RTC DATAIHASH(MAIN FW)). Here, the reference RTC data may be obtained in operation S621. The main firmware hash may be obtained from the hash table 510 of
In operation S623, the platform 500 may determine whether the device hash matches the reference hash. When the device hash matches the reference hash, the process proceeds to operation S625-1 so that the platform 500 may generate a result that the device 400 passes the integrity verification. On the other hand, when the device hash does not match the reference hash, the process may proceed to operation S624.
In operation S624, it may be determined whether the integrity verification will be continuously performed by comparing the reference RTC data with N. N may be data for determining whether the reference RTC data is within the effective range. For example, when the effective range is 30 seconds and the reference RTC data initially obtained in operation S621 represents 14:5:32, N may be data representing 14:5:2 obtained by subtracting the effective range from the reference RTC data.
When the reference RTC data is greater than or equal to N, the reference RTC data may be reduced by one second in operation S626. After operation S626, operations S621 to S623 may be repeated. In other words, the platform 500 may generate the reference hash while reducing the reference RTC data by one second within the effective range of 30 seconds from 14:5:32 when the device hash is received and may determine whether the reference hash matches the device hash, through which it may be determined whether the device hash is generated based on the device RTC data 422-1A within the effective range. When the reference RTC data is less than N, the process proceeds to operation S625-2 so that the platform 500 may generate a result that the device 400 fails the integrity verification.
The integrity verification method S700 of
In operation S710, the platform 600 may request a certificate from the device 700. The certificate may belong to the Alias certificate chain in accordance with the OCP standard. The Alias key may be used for the Alias certificate chain. Although the Alias key is exposed to the outside, it is safer than when the Device ID key is exposed.
In operation S720, the device 700 may respond by communicating the certificate to the platform 600 as a response to operation S710. The device 700 may communicate the certificate belonging to the Alias certificate chain to the platform 600.
In operation S730, the platform 600 may verify the certificate that the device 700 sends. When the certificate that the device 700 sends is verified to be valid in accordance with the Alias certificate chain, operations S740 to S790 may be performed. However, when the certificate that the device 700 sends is not valid, the device 700 may fail to authenticate and operations S740 to S790 may not be performed.
In operation S740, the platform 600 may generate the firmware hash measurement request including the nonce data and may transmit the generated firmware hash measurement request to the device 700. As described with reference to
In operation S750, the device 700 may generate the device hash with the hash generator 421-2 as illustrated in
In operation S760, the device 700 may communicate the device hash generated in operation S750 to the platform 600 through the main firmware 410.
In operation S770, the platform 600 may generate the verification result hash by verifying the integrity of the device hash. As described with reference to
In operation S780, the platform 600 may transmit the verification result hash to the device 700.
In operation S790, the device 700 may check the RTC of the verification result hash received from the platform 600. As described with reference to
The device hash may include first to Mth bytes 1 to M.
The first byte of the device hash may have information on a length of the device hash.
As described with reference to
(N+1)th to Mth bytes of the device hash may have information obtained by electronically signing the second to Nth bytes of the device hash. In some embodiments, the electronic signature may be performed by using the device private key 422-3 as described with reference to
As is traditional in the field, embodiments may be described and illustrated in terms of blocks which carry out a described function or functions. These blocks, which may be referred to herein as units or modules or the like, are physically implemented by analog and/or digital circuits such as logic gates, integrated circuits, microprocessors, microcontrollers, memory circuits, passive electronic components, active electronic components, optical components, hardwired circuits and the like, and may optionally be driven by firmware and/or software. The circuits may, for example, be embodied in one or more semiconductor chips, or on substrate supports such as printed circuit boards and the like. The circuits constituting a block may be implemented by dedicated hardware, or by a processor (e.g., one or more programmed microprocessors and associated circuitry), or by a combination of dedicated hardware to perform some functions of the block and a processor to perform other functions of the block. Each block of the embodiments may be physically separated into two or more interacting and discrete blocks without departing from the scope of the disclosure. Likewise, the blocks of the embodiments may be physically combined into more complex blocks without departing from the scope of the disclosure. An aspect of an embodiment may be achieved through instructions stored within a non-transitory storage medium and executed by a processor.
While the disclosure has been particularly shown and described with reference to embodiments thereof, it will be understood that various changes in form and details may be made therein without departing from the spirit and scope of the following claims.
Number | Date | Country | Kind |
---|---|---|---|
10-2021-0156059 | Nov 2021 | KR | national |
10-2022-0043064 | Apr 2022 | KR | national |