Detailed Description
The technical scheme of the application will be clearly and thoroughly described below with reference to the accompanying drawings. In the description of the embodiment of the present application, unless otherwise indicated, "/" means or, for example, a/B may mean a or B, "and/or" in the text is only one association relationship describing the association object, and it means that there may be three relationships, for example, a and/or B, three cases where a exists alone, a and B exist together, and B exists alone, and further, "a plurality" means two or more in the description of the embodiment of the present application.
In the following, the terms "first", "second" are used for descriptive purposes only and are not to be construed as implying or implying relative importance or implicitly indicating the number of technical features indicated. Thus, a feature defining "a first" or "a second" may explicitly or implicitly include one or more such feature.
Referring to fig. 1, fig. 1 is a schematic diagram of a scenario for obtaining a firmware upgrade package according to an embodiment of the present application. The terminal 002 may be a vehicle or other electronic device. In the scenario of firmware upgrade of the terminal 002, the related art generally follows a mode in which the terminal 002 actively initiates a request to the corresponding cloud platform 001 to obtain a required firmware upgrade package. Once the terminal 002 receives the firmware upgrade package, it will update the target firmware according to the content in the firmware upgrade package, so as to achieve enhancement of functions, improvement of performance, or repair of security holes. However, there is a possible security risk in the process of this firmware upgrade package being transmitted from the cloud platform 001 to the terminal 002. If the firmware upgrade package is intercepted by a malicious attacker or a virus file is added in the firmware upgrade package in the process, when the terminal 002 is updated by using the tampered firmware upgrade package, serious threat may be caused to the security of the terminal 002, and even crash or malicious control of the system of the terminal 002 may be caused.
Therefore, how to ensure the security of the firmware upgrade package in the transmission process and prevent the firmware upgrade package from being tampered maliciously or viruses from being added becomes a technical problem to be solved urgently.
In order to solve the problems, the scheme provided by the embodiment of the application mainly comprises the steps of firstly, providing a data basis for firmware upgrading and verification by acquiring a firmware upgrading verification packet containing a firmware upgrading packet and a first encrypted data block encrypted based on a derived certificate. And secondly, by comparing the volume of the firmware upgrading verification package with the available storage space of the trusted execution environment, verification failure caused by insufficient storage space is avoided. In addition, based on the comparison result, necessary information of the firmware upgrade package is selectively extracted into the trusted execution environment, and finally, the root certificate, the second check value, the derived certificate and the first encrypted data block are utilized to carry out comprehensive check in the trusted execution environment, so that a check result of the firmware upgrade package is obtained. Therefore, the verification of the firmware upgrade package is realized in the trusted execution environment, and the security of the firmware upgrade package is effectively enhanced.
Based on the scene illustration shown in fig. 1, a method for verifying a firmware upgrade package according to an embodiment of the present application will be described in detail below with reference to fig. 2 to 9.
Referring to fig. 2, fig. 2 is a flowchart of a firmware upgrade package verification method according to an embodiment of the present application. As shown in fig. 2, the method of the embodiment of the present application is applied to a terminal, where the terminal includes a trusted execution environment, and the trusted execution environment stores root certificates, and the method may include the following steps S101 to S104.
S101, acquiring a firmware upgrading check packet, wherein the firmware upgrading check packet consists of a firmware upgrading packet and a first encryption data block, the firmware upgrading packet is provided with a derived certificate, and the first encryption data block is obtained by encrypting a first check value based on the derived certificate.
Specifically, the Firmware upgrade related to this embodiment may be implemented based on Over-The-Air (FOTA) technology, and some of The more common application scenarios are upgrading The target Firmware of The vehicle.
The firmware upgrading verification package is from a cloud platform, and a key management service (KEY MANAGEMENT SERVICE, KMS) server and a firmware upgrading server are arranged in the cloud platform. The KMS pre-stores a leaf certificate for encrypting the firmware upgrade package. Before the firmware upgrade server prepares to send the firmware upgrade package to the terminal, it calculates a first check value of the firmware upgrade package and sends the first check value to the KMS server. Accordingly, the KMS server encrypts the first check value using the private key of the leaf certificate, generates a first encrypted data block, and returns the first encrypted data block to the firmware upgrade server.
It should be noted that, the firmware upgrade server calculates a first check value of the firmware upgrade packet, where the first check value may be a hash value. The hash value is used to verify the integrity of the firmware upgrade package because it converts the contents of the firmware upgrade package into a fixed-length unique value through a hash algorithm. Any minor modification to the firmware upgrade package will cause the hash value to change significantly, so by comparing the hash values, it can be detected whether the firmware upgrade package is tampered with or damaged during transmission or storage. In addition to hash values, algorithms such as cyclic redundancy check (Cyclic Redundancy Check, CRC), digital signature, and checksum, message Digest Algorithm, fifth edition (MD5), etc., may be used to verify the integrity of the upscaled packets. These methods ensure that the data is not tampered with during transmission or storage by generating a specific check value and comparing it to the original value.
In some possible implementations, for the triggering process of firmware upgrade, the terminal displays a user interface corresponding to the firmware upgrade program installed by the terminal, and the user operates in the user interface to query whether the target firmware of the terminal can be upgraded. If the target firmware of the terminal can be upgraded and the upgrading task of the target firmware is confirmed through the operation of the user in the user interface, the firmware upgrading program of the terminal can be automatically connected to the cloud platform and a downloading request is sent to the cloud platform.
Correspondingly, the cloud platform responds to a downloading request of the terminal, and sends a firmware upgrading verification packet to the terminal through a firmware upgrading server, wherein the firmware upgrading verification packet consists of a firmware upgrading packet corresponding to the target firmware and a first encryption data block, and the firmware upgrading packet is provided with a derived certificate.
It should be noted that a complete certificate chain is composed of at least a root certificate, a leaf certificate, and in some cases, a root certificate, an intermediate certificate, and a leaf certificate. Where the intermediate certificates and the leaf certificates are collectively referred to as derived certificates. The relationship between them is tight and well-defined, the root certificate is at the very top of the certificate chain, the origin of the certificate chain, and is self-signed by the trusted certificate authority (which may be a firmware upgrade server here). The intermediate certificate is located between the root certificate and the leaf certificate, plays a role of a bridge, is issued by a root certificate issuing authority, and is used for expanding a certificate chain. She Zhengshu (also called terminal certificates or user certificates) are located at the end of the certificate chain, issued by an intermediate certificate authority, for verifying the authenticity of a specific domain name or entity. The whole certificate chain is verified through gradual signature, so that the credibility of each certificate is ensured, and a complete trust path from the root certificate to the leaf certificate is constructed. It will be appreciated that the root and leaf certificates are necessarily present in the chain of certificates and that both are one in number, and that the intermediate certificates are possibly present in the chain of certificates and are at least one in number.
S102, comparing the volume of the firmware upgrading verification package with the available storage space of the trusted execution environment to obtain a comparison result.
In particular, the trusted execution environment (Trusted Execution Environment, TEE) of the terminal is an isolated secure area that is embedded in the hardware of the terminal, providing an environment for performing sensitive operations and for performing secure functions. The trusted execution environment ensures the security of the code and data executed therein through the security mechanisms of hardware and software, prevents unauthorized access and tampering, and is used for performing key operations such as identity authentication, data encryption, secure storage, secure payment and the like. In a trusted execution environment, a special application is running, called trusted application (Trusted Applications, TA). Trusted applications are specifically designed for execution in a trusted execution environment, which utilize security features provided by the trusted execution environment to perform various security tasks. The trusted applications are isolated from the common operating system applications, ensuring their execution independence and security. The trusted execution environment and the trusted application together form a security framework, and high-level security is provided for the terminal.
And the multiple operations required by the verification of the firmware upgrading verification package are executed in the trusted execution environment, so that the verification process can be better ensured to be controlled, and the verification accuracy is improved. However, the storage space of the trusted execution environment is limited, if the volume of the firmware upgrade verification package exceeds the available storage space of the trusted execution environment, the whole firmware upgrade verification package cannot be transmitted to the trusted execution environment for verification, and forced transmission of the firmware upgrade verification package to the trusted execution environment may cause verification failure.
Therefore, before checking the firmware upgrade package, the volume of the firmware upgrade check package needs to be compared with the available storage space of the trusted execution environment to obtain a comparison result.
S103, extracting a second check value of the firmware upgrade package, a derived certificate and the first encrypted data block from the firmware upgrade package to the trusted execution environment based on the comparison result.
Specifically, in some cases, the comparison result indicates that the volume of the firmware upgrade check package is less than or equal to the available storage space of the trusted execution environment, and in some cases, the comparison result indicates that the volume of the firmware upgrade check package is greater than the available storage space of the trusted execution environment.
It will be appreciated that if the volume of the firmware upgrade check packet is less than or equal to the available memory space of the trusted execution environment, then the entire firmware upgrade check packet may be transmitted to the trusted execution environment where the second check value, derived certificate, and first encrypted data block of the firmware upgrade packet are extracted from the firmware upgrade check packet.
If the volume of the firmware upgrade verification package is greater than the available storage space of the trusted execution environment, the second verification value, the derived certificate and the first encrypted data block of the firmware upgrade package may be extracted from the firmware upgrade verification package outside the trusted execution environment, and the second verification value, the derived certificate and the first encrypted data block of the firmware upgrade package may be transmitted to the trusted execution environment.
Wherein the second check value of the firmware upgrade package is determined based on the same algorithm as the first check value of the firmware upgrade package. For example, when the first check value of the firmware upgrade package is a hash value, the second check value of the firmware upgrade package is also a hash value, and the second check value of the firmware upgrade package is obtained by performing hash calculation on the firmware upgrade package at the terminal side. Besides hash calculation, algorithms such as CRC, digital signature, and checksum, MD5, etc. may also be used to implement calculation of the above-mentioned check value, which will not be described in detail.
S104, in the trusted execution environment, checking is performed based on the root certificate, the second check value of the firmware upgrade package, the derived certificate and the first encrypted data block, so that a check result of the firmware upgrade package is obtained.
In particular, the terminal may perform a series of verification operations in the trusted execution environment, where the verification operations mainly involve certificate chain verification and check value verification, and it is noted that the certificate chain verification process and the check value verification process are not necessarily performed according to specific time sequences, and may be performed separately, or their sequence may be changed, depending on specific implementation and security requirements.
On the one hand, regarding verification of the certificate chain, the terminal uses a root certificate stored in advance in the trusted execution environment to verify the validity of the derived certificate. The root certificate is the origin of the certificate chain, self-signed by a trusted certificate authority, and thus has the ability to verify the legitimacy of other derived certificates. It will be appreciated that the determination of whether the derived certificate is valid or not will ultimately be verified.
On the other hand, regarding verification of the verification value, the terminal decrypts the first encrypted data block by using the public key in the derived certificate to obtain the first verification value of the firmware upgrade package. Then, the terminal compares the first check value of the firmware upgrade package obtained through decryption with the second check value of the firmware upgrade package obtained before. If the two verification values match, then it may be confirmed that the firmware upgrade package is complete and not tampered with. Otherwise, if the check values do not match, then it may be confirmed that the firmware upgrade package is incomplete and possibly tampered with.
During the verification process, the trusted execution environment also provides additional security protection, ensuring confidentiality and integrity of the verification operation. This includes, but is not limited to, encrypted storage of sensitive data, isolated execution of the authentication process, and secure processing of the authentication result.
Based on the certificate chain verification process and the verification value verification process, a verification result of the firmware upgrade package can be finally determined. In some cases, if the verification determines that the derived certificate is legal, the verification result of the firmware upgrade package may indicate that the firmware upgrade package passes the verification, and in some cases, if the verification determines that the derived certificate is illegal, the verification result of the firmware upgrade package may indicate that the firmware upgrade package does not pass the verification.
It can be understood that if the verification result of the firmware upgrade package can indicate that the firmware upgrade package passes the verification, the target firmware of the terminal can be upgraded by using the firmware upgrade package later, and if the verification result of the firmware upgrade package can indicate that the firmware upgrade package does not pass the verification, the firmware upgrade package is indicated to have insufficient safety later, the terminal will not upgrade the target firmware of the terminal by using the firmware upgrade package, and may push some safety prompt information to the user of the terminal, or provide abnormal information feedback about the firmware upgrade package to the cloud platform.
In this embodiment, first, a data base is provided for firmware upgrade and verification by obtaining a firmware upgrade check packet including a firmware upgrade packet and a first encrypted data block encrypted based on a derived certificate. And secondly, by comparing the volume of the firmware upgrading verification package with the available storage space of the trusted execution environment, verification failure caused by insufficient storage space is avoided. In addition, based on the comparison result, necessary information of the firmware upgrade package is selectively extracted into the trusted execution environment, and finally, the root certificate, the second check value, the derived certificate and the first encrypted data block are utilized to carry out comprehensive check in the trusted execution environment, so that a check result of the firmware upgrade package is obtained. Therefore, the verification of the firmware upgrade package is realized in the trusted execution environment, and the security of the firmware upgrade package is effectively enhanced.
Referring to fig. 3, a flow chart of extracting data required for verification is provided for an embodiment of the present application, and as shown in fig. 3, the method of the embodiment of the present application may include the following steps S201 to S202, where steps S201 to S202 may be used as refinements to step S103 in the embodiment shown in fig. 2.
S201, if the comparison result indicates that the volume of the firmware upgrading check packet is smaller than or equal to the available storage space of the trusted execution environment, transmitting the firmware upgrading check packet to the trusted execution environment;
S202, in a trusted execution environment, extracting the firmware upgrading verification packet to obtain a firmware upgrading packet, a derivative certificate and a first encrypted data block, and carrying out hash calculation on the firmware upgrading packet to obtain a second verification value of the firmware upgrading packet.
Specifically, when the comparison result indicates that the volume of the firmware upgrade check packet is less than or equal to the available storage space of the trusted execution environment, the entire firmware upgrade check packet may be completely transmitted into the trusted execution environment. The firmware upgrade verification package is completely transmitted to the trusted execution environment, so that safer and more isolated verification operation is performed in the trusted execution environment, and confidentiality and integrity of a verification process are ensured.
Next, once the firmware upgrade verification package is successfully transferred to the trusted execution environment, a series of extraction and calculation operations are performed in the trusted execution environment. First, a firmware upgrade package, a derived certificate and a first encrypted data block are extracted from a firmware upgrade verification package, which are key data necessary for the subsequent verification of the firmware upgrade package. Wherein the firmware upgrade package contains firmware information to be upgraded, the derived certificate is used for verifying the source validity and authenticity of the firmware upgrade package, the first encrypted data block is obtained by encrypting a first check value of the firmware upgrade package and is used for subsequent check value comparison.
In addition to extracting these critical data, in a trusted execution environment, a hash calculation is also required for the firmware upgrade package to obtain a second check value of the firmware upgrade package. The computing process is performed in a trusted execution environment, and confidentiality of the computing process and accuracy of results are ensured by utilizing the security features provided by the trusted execution environment. It should be noted that the operation of the hash computation may be performed by a trusted reference in a trusted execution environment.
For example, assume that one firmware upgrade check packet has a volume of 800MB, and the available memory space of the trusted execution environment is 1GB. In this case, the comparison result will indicate that the volume of the firmware upgrade check package is less than the available memory space of the trusted execution environment. Thus, according to step S201, the entire firmware upgrade check packet will be transmitted into the trusted execution environment. Then, according to step S202, in the trusted execution environment, the firmware upgrade check packet is extracted to obtain a firmware upgrade packet, a derived certificate, and a first encrypted data block, and hash calculation is performed on the firmware upgrade packet to obtain a second check value of the firmware upgrade packet, so as to perform subsequent check operations.
In this embodiment, it is first ensured that when the volume of the firmware upgrade check packet is appropriate, it can be completely and safely transferred to the trusted execution environment. And then, extracting and hash calculation of key data are carried out in a trusted execution environment, so that the safety and accuracy of the verification process are further enhanced. And extracting the firmware upgrade package, the derived certificate and the first encrypted data block, so that the integrity and the authenticity of data required by the subsequent verification operation are ensured. The hash calculation is performed on the firmware upgrade package to obtain a second check value, which is performed in a trusted environment by utilizing the security characteristic, so that the embodiment not only ensures the confidentiality of the hash calculation process, but also ensures the accuracy and reliability of the obtained check value, thereby providing effective data support for the check of the firmware upgrade package.
Referring to fig. 4, a flow chart of extracting data required for verification is provided for an embodiment of the present application, as shown in fig. 4, the method of the embodiment of the present application may include the following steps S301 to S304, where steps S301 to S304 may be used as a refinement of step S103 in the embodiment shown in fig. 2.
S301, if the comparison result indicates that the volume of the firmware upgrading verification package is larger than the available storage space of the trusted execution environment, extracting the firmware upgrading verification package outside the trusted execution environment to obtain a firmware upgrading package, wherein the firmware upgrading package comprises a target component of a derived certificate, a first encryption data block and a second verification value of the firmware upgrading package by carrying out hash calculation on the firmware upgrading package;
S302, transmitting a second check value of the firmware upgrade package to a trusted execution environment;
s303, transmitting the target component and the first encrypted data block to a trusted execution environment;
S304, extracting the target component in the trusted execution environment to obtain a derivative certificate.
Specifically, when the comparison result shows that the volume of the firmware upgrade check packet is larger than the available storage space of the trusted execution environment, the whole firmware upgrade check packet cannot be completely transmitted to the trusted execution environment. Therefore, the firmware upgrade verification package needs to be preprocessed outside the trusted execution environment, the firmware upgrade package is extracted, the target component containing the derived certificate and the first encrypted data block are contained in the firmware upgrade package, hash calculation is performed on the firmware upgrade package, and the second verification value of the firmware upgrade package is obtained. In this way, critical data required for performing subsequent checks can be obtained without transmitting the complete firmware upgrade check packet to the trusted execution environment.
Next, the second check value of the firmware upgrade package and the target component, the first encrypted data block, need to be transmitted to the trusted execution environment, the process implementation being based on a secure communication mechanism between the trusted execution environment and the external environment. Through a secure communication mechanism, confidentiality and integrity of data in the transmission process can be ensured, and the data is prevented from being tampered or leaked in the transmission process. The second check value of the firmware upgrade package, the target component and the first encrypted data block are transmitted to the trusted execution environment, so that the data can be subjected to safer and more isolated check operation in the trusted execution environment.
It should be noted that the above-mentioned secure communication mechanism refers to a series of technologies and algorithms adopted when data is transmitted between a trusted execution environment and an external environment (such as a firmware upgrade program), so as to ensure confidentiality, integrity and authenticity of the data. The secure communication mechanism may include encrypted communication, i.e., data is encrypted using an encryption algorithm to prevent theft or tampering of the data by unauthorized third parties during transmission.
After the target component is successfully transferred to the trusted execution environment, the trusted application in the trusted execution environment will perform an extraction operation on the target component to obtain the derived certificate.
For example, assume that one firmware upgrade check packet has a volume of 2GB, while the available memory space of the trusted execution environment is only 1GB. In this case, the comparison result will indicate that the volume of the firmware upgrade check packet is greater than the available memory space of the trusted execution environment. Therefore, according to step S301, the firmware upgrade check packet needs to be preprocessed outside the trusted execution environment, the firmware upgrade packet, the target component including the derived certificate in the firmware upgrade packet, and the first encrypted data block are extracted, and the firmware upgrade packet is hashed to obtain the second check value of the firmware upgrade packet. Subsequently, according to steps S302 and S303, we transmit the second check value of the firmware upgrade package and the target component, the first encrypted data block, to the trusted execution environment. Finally, in step S304, the target component is extracted in the trusted execution environment to obtain a derived certificate for performing a subsequent verification operation. Through the process, the verification process of the firmware upgrading package can be safely and accurately completed even if the volume of the firmware upgrading package is larger than the available storage space of the trusted execution environment.
In this embodiment, when the comparison result shows that the firmware upgrade checking packet cannot be completely transferred into the trusted execution environment, the firmware upgrade packet, the target component including the derived certificate, and the first encrypted data block are extracted by preprocessing outside the trusted execution environment, and the hash calculation is performed on the firmware upgrade packet to obtain the second checking value. The second check value, the target component, and the first encrypted data block are then securely transferred to the trusted execution environment using a secure communication mechanism between the trusted execution environment and the external environment. Finally, extracting the target component in the trusted execution environment to obtain the derivative certificate. Therefore, even if the volume of the firmware upgrading verification packet is too large, key data required by verification can be effectively obtained.
Referring to fig. 5, a flow chart of encrypted transmission is provided for an embodiment of the present application, and as shown in fig. 5, the method of the embodiment of the present application may include the following steps S401 to S403, where steps S401 to S403 may be used as refinements of step S302 in the embodiment shown in fig. 4.
S401, encrypting a second check value of the firmware upgrade package based on a preset encryption key to obtain a second encrypted data block;
s402, transmitting the second encrypted data block to a trusted execution environment;
S403, in the trusted execution environment, decrypting the second encrypted data block based on a preset decryption key to obtain a second check value of the firmware upgrade package.
Specifically, the second check value of the firmware upgrade package needs to be transmitted from outside the trusted execution environment to the trusted execution environment after the calculation is completed, and if this transmission process is not protected, it may be used by a third party. For this purpose, the terminal encrypts the second check value of the firmware upgrade package by using a preset encryption key, so as to obtain an encrypted data block, i.e. a second encrypted data block. The second encrypted data block can ensure confidentiality of the second check value of the firmware upgrade package in the transmission process, and even if the data is intercepted by an unauthorized third party, the second check value of the firmware upgrade package cannot be easily obtained through decryption.
And then, transmitting the encrypted second encrypted data block to the trusted execution environment, and decrypting the second encrypted data block in the trusted execution environment by using a preset decryption key. It will be appreciated that the decryption key corresponds to the encryption key used previously, so that the second verification value of the firmware upgrade package can be successfully decrypted in the trusted execution environment.
By way of example, assuming that the terminal is a vehicle,
The second check value of the firmware upgrade package obtained after hash calculation outside the trusted execution environment is "1234567880 ABCDEF". In order to ensure the confidentiality and integrity of the second check value of the firmware upgrade package during transmission to the trusted execution environment, a key generation algorithm, which is dominated by the firmware upgrade program, is used to encrypt it. The key generation algorithm combines the vehicle identification number (Vehicle Identification Number, VIN) of the vehicle, the current system TIME, and the volume of the firmware upgrade package to generate a unique, non-traceable encryption key "vin123+time456+ FWPKG789".
Using this encryption key outside the trusted execution environment, the second check value of the firmware upgrade package is encrypted, resulting in a second encrypted data block "XYZ9876543210FEDCBA". This encrypted second encrypted data block is then securely transferred to the trusted execution environment. In the trusted execution environment, the second encrypted data block is decrypted by using the same decryption key 'VIN123+TIME 456+ FWPKG 789' as that used in encryption, and the second check value '1234567890 ABCDEF' of the firmware upgrade package is successfully obtained.
In this embodiment, through such an encryption transmission flow, confidentiality and integrity of the second check value of the firmware upgrade package in the process of transmission to the trusted execution environment are ensured, tampering or leakage of data in the transmission process is prevented, and reliable data support is provided for subsequent check operations. Meanwhile, the security and non-traceability of the encryption process are guaranteed through the generation algorithm of the secret key, and the security of the firmware upgrading verification process is further enhanced.
Referring to fig. 6, a flow chart of double verification is provided for an embodiment of the present application, as shown in fig. 6, the method of the embodiment of the present application may include the following steps S501-S504, where steps S501-S504 may be used as refinements to step S104 in the embodiment shown in fig. 2.
S501, in a trusted execution environment, performing certificate chain verification based on a root certificate and a derived certificate to obtain a certificate chain verification result of a firmware upgrade package;
S502, decrypting the first encrypted data block according to the derived certificate to obtain a first check value;
S503, checking the check value based on the first check value and the second check value to obtain a check value check result of the firmware upgrade package;
S504, determining the verification result of the firmware upgrade package based on the certificate chain verification result of the firmware upgrade package and the verification value verification result of the firmware upgrade package.
In particular, in an isolated secure area of a trusted execution environment, a root certificate is stored, which is the starting point of a chain of certificates, self-signed by a trusted certificate authority, with the ability to verify the legitimacy of other derived certificates. A derived certificate, as part of a certificate chain, is issued by a root certificate or an intermediate certificate for verifying the authenticity of a particular entity or domain name. In the verification process, the terminal uses a root certificate stored in advance in a trusted execution environment to verify the validity of the derived certificate step by step, so as to obtain a certificate chain verification result of the firmware upgrade package.
It will be appreciated that in some cases, the certificate chain check result of the firmware upgrade package indicates that the firmware upgrade package passes the certificate chain check, and in some cases, the certificate chain check result of the firmware upgrade package indicates that the firmware upgrade package does not pass the certificate chain check.
Next, the first encrypted data block is obtained by encrypting a first check value of the firmware upgrade package based on a private key of the derived certificate, which is transmitted from the cloud platform to the terminal along with the firmware upgrade check Bao Yitong. In a trusted execution environment, the terminal can decrypt the first encrypted data block by using the public key in the derived certificate, thereby obtaining a first check value of the firmware upgrade package. The realization of the process depends on an asymmetric encryption mechanism of a public key and a private key, ensures confidentiality and integrity of encrypted data blocks in the transmission process, and prevents data from being accessed or tampered by unauthorized.
The second check value of the firmware upgrade package is obtained by performing the same hash calculation or other algorithm calculation on the firmware upgrade package by the terminal side, and is determined based on the same algorithm as the first check value of the firmware upgrade package. In a trusted execution environment, the terminal compares a first check value of the firmware upgrade package with a second check value of the firmware upgrade package. If the two verification values match perfectly, then it can be confirmed that the firmware upgrade package is complete and not tampered with, as any minor modification to the firmware upgrade package will result in a significant change in the verification values. Otherwise, if the check values do not match, then it may be confirmed that the firmware upgrade package is incomplete and possibly tampered with. And comparing the check values to obtain a check value check result of the firmware upgrade package.
It may be appreciated that in some cases, the verification value verification result of the firmware upgrade package indicates that the firmware upgrade package passes the verification value verification, and in some cases, the verification value verification result of the firmware upgrade package indicates that the firmware upgrade package fails the verification value verification.
Finally, based on the certificate chain verification result of the firmware upgrade package and the verification value verification result of the firmware upgrade package, the verification result of the firmware upgrade package can be determined. Specifically, if the certificate chain check result of the firmware upgrade package indicates that the firmware upgrade package passes the certificate chain check, and the check value check result of the firmware upgrade package indicates that the firmware upgrade package passes the check value check, then a check result of the firmware upgrade package may be determined, which indicates that the firmware upgrade package passes the check, or if the certificate chain check result of the firmware upgrade package indicates that the firmware upgrade package does not pass the certificate chain check, or the check value check result of the firmware upgrade package indicates that the firmware upgrade package does not pass the check value check, then a check result of the firmware upgrade package may be determined, which indicates that the firmware upgrade package does not pass the check.
In this embodiment, the root certificate stored in the trusted execution environment is used to perform certificate chain verification on the derived certificate, so as to ensure the source validity and authenticity of the firmware upgrade package. And then, decrypting the first encrypted data block by using the public key in the derived certificate to obtain a first check value of the firmware upgrade package, wherein the step ensures confidentiality and integrity of the first check value in the transmission process by using an asymmetric encryption mechanism of the public key and the private key. And then, comparing the first check value of the firmware upgrade package with the second check value calculated at the terminal side, so that the integrity of the firmware upgrade package is ensured and the firmware upgrade package is not tampered. Finally, the verification result of the firmware upgrading package is comprehensively determined based on the certificate chain verification result and the verification value verification result, the double verification mechanism provides comprehensive safety guarantee for the firmware upgrading package, safety risks such as unauthorized access and data tampering are effectively prevented, and reliability and safety of the firmware upgrading process are ensured.
Based on the embodiment shown in fig. 6, please refer to fig. 7, a flowchart for pushing verification failure information is provided for an embodiment of the present application, and as shown in fig. 7, the method of the embodiment of the present application may further include the following steps S601-S602.
S601, if a certificate chain check result indicates that the firmware upgrade package fails the certificate chain check, pushing first check failure information to a display interface of a terminal, wherein the first check failure information is used for indicating that the firmware upgrade package fails the certificate chain check;
s602, if the check value check result indicates that the firmware upgrade package fails the check value check, pushing second check failure information to a display interface of the terminal, wherein the second check failure information is used for indicating that the firmware upgrade package fails the check value check.
Specifically, the embodiment shown in fig. 6 provides a dual verification process of the firmware upgrade package, including verification of certificate chain and verification value, so as to ensure the integrity and non-tamperability of the firmware upgrade package in the transmission and storage processes, and provide security for the firmware upgrade of the terminal. However, in practical applications, the firmware upgrade package may not pass verification due to various reasons, such as incomplete certificate chain, expired certificate, tampered firmware upgrade package during transmission, and the like. In order to timely inform a terminal user of the failure of verification of a firmware upgrade package and take corresponding safety measures, the embodiment of the application provides a scheme for pushing verification failure information.
Regarding the procedure of certificate chain verification, certificate chain verification is one of the important links of firmware upgrade package verification, and it involves a stepwise verification procedure from a root certificate to a derived certificate. If any problem is found in this process, such as that the derived certificate cannot be verified by the root certificate or the intermediate certificate, the certificate chain is incomplete, the certificate expires, etc., the certificate chain verification fails. At this time, in order to ensure that the terminal user can timely know the security problem of the firmware upgrade package and provide an explicit security prompt for the terminal user, the terminal pushes the first verification failure information to the display interface. The first verification failure information explicitly indicates that the firmware upgrade package fails to pass the certificate chain verification, and prompts a user that the firmware upgrade package possibly has safety risks and does not suggest to carry out upgrade operation. Through the information feedback mechanism, the terminal user can timely know the safety state of the firmware upgrade package, and accordingly makes a reasonable decision, and avoids using an unsafe firmware upgrade package for upgrading, so that the safety and stability of the terminal are protected.
With respect to the verification process of the verification value, the verification of the verification value is another important link of the verification of the firmware upgrade package, and the verification value is obtained by performing hash calculation or other algorithm calculation on the firmware upgrade package and is compared with the first verification value which is calculated in advance and encrypted. If the two check values are not matched, the fact that the firmware upgrade package is possibly tampered in the transmission or storage process is indicated, and the check value fails to check. At this time, in order to timely notify the terminal user of the inconsistency of the firmware upgrade package and provide an explicit security alert thereto, the terminal may push the second verification failure information to the display interface. The second verification failure information indicates that the firmware upgrade package fails verification of the verification value, prompts a user that the firmware upgrade package may be tampered or damaged, has safety risks, and does not suggest upgrading operation. Through the information feedback mechanism, the terminal user can timely know the integrity state of the firmware upgrade package, and accordingly makes a reasonable decision, and the incomplete or tampered firmware upgrade package is prevented from being used for upgrading, so that the safety and stability of the terminal are protected.
The following are some examples of the contents of the first and second parity failure information:
The first verification failure information (certificate chain verification failure) warns that the firmware upgrade package fails the certificate chain verification. To protect your equipment, it is recommended that no upgrade operations be performed. Please contact the device manufacturer or service provider to get more assistance. "
And the second verification failure information (verification value verification failure) is used for warning that the firmware upgrade package fails verification of the verification value. To protect your equipment, it is recommended that no upgrade operations be performed. Please contact the device manufacturer or service provider to get more assistance. "
The information clearly indicates the specific reason of the verification failure of the firmware upgrade package and gives corresponding safety suggestions to help the end user make reasonable decisions.
In this embodiment, on the one hand, in the process of checking the certificate chain, once the firmware upgrade package is found to have the problems of incomplete certificate chain, expired certificate, failure in verification, and the like, the terminal pushes the first verification failure information to the display interface. On the other hand, in the verification process of the verification value, if the verification value of the firmware upgrade package is not matched with the expected value, the fact that the firmware upgrade package is possibly tampered in the transmission or storage process causes verification failure of the verification value is indicated, and at the moment, the terminal can push second verification failure information to the display interface. By timely pushing the two verification failure information, the terminal user can quickly know the safety state of the firmware upgrade package, and accordingly makes a reasonable decision, so that the unsafe or tampered firmware upgrade package is effectively prevented from being used for upgrading, and the safety and stability of the terminal are protected.
Referring to fig. 8, a flowchart of firmware upgrade is provided in an embodiment of the present application, and as shown in fig. 8, the method in the embodiment of the present application may include the following steps S701-S702, and the steps S701-S702 may be performed after step S104 in the embodiment shown in fig. 2.
S701, if the verification result of the firmware upgrade package indicates that the firmware upgrade package passes the verification, determining a target firmware corresponding to the firmware upgrade package in the firmware installed by the terminal;
s702, upgrading the target firmware according to the firmware upgrading packet.
Specifically, when the verification result of the firmware upgrade package shows that the firmware upgrade package passes the verification, it means that the firmware upgrade package is legal, complete and not tampered with. At this time, the terminal further analyzes information in the firmware upgrade package, such as firmware version, firmware type, firmware identifier, etc., and uses the information to identify the target firmware corresponding to the firmware upgrade package in the installed firmware.
Once the target firmware is determined, the terminal will begin performing the actual firmware upgrade operations. Specifically, the terminal writes new firmware data in the firmware upgrade package into the storage area where the target firmware is located, and replaces the original firmware data. In the upgrading process, the terminal can ensure the integrity and consistency of the firmware upgrading packet, and avoid the condition of data loss or damage in the upgrading process. Meanwhile, in order to ensure that the firmware upgrade is performed smoothly, the terminal may also perform some additional operations, such as suspending services or processes related to the target firmware, so as to ensure that normal operation of the device is not affected during the upgrade process. After the upgrade is completed, the terminal may restart or reload the target firmware to enable it to run the new version of firmware code.
In some possible implementations, the process of firmware upgrades may also add some additional security protection measures. For example, during an upgrade, the terminal may check the firmware upgrade package again to ensure that the firmware upgrade package is not tampered with or damaged during the upgrade. In addition, in order to prevent the device from not working properly due to unexpected situations in the process of upgrading the firmware, the terminal may also create a backup of the target firmware before upgrading, so as to restore to the original firmware version when the upgrading fails or a problem occurs.
In this embodiment, after the verification result of the firmware upgrade package indicates that the verification is passed, the terminal accurately identifies the target firmware corresponding to the firmware upgrade package in the installed firmware, which ensures pertinence and accuracy of the firmware upgrade operation. And then, the terminal executes the actual firmware upgrading operation, and writes the new firmware data in the firmware upgrading packet into the storage area where the target firmware is located safely and completely, so that the original firmware data is replaced, and the smooth upgrading of the firmware is realized.
In order to facilitate understanding of the scheme of the embodiment of the present application, please refer to fig. 9, which provides a schematic diagram of a firmware upgrade package verification process for the embodiment of the present application.
Firstly, a user displays a user interface corresponding to the installed firmware upgrading program on the terminal, and the user operates in the user interface to inquire whether the target firmware of the terminal can be upgraded. If the target firmware of the terminal can be upgraded and the upgrading task of the target firmware is confirmed through the operation of the user in the user interface, the firmware upgrading program of the terminal can be automatically connected to the cloud platform and a downloading request is sent to the cloud platform.
Correspondingly, the cloud platform responds to a downloading request of the terminal, and sends a firmware upgrading check packet to the terminal through a firmware upgrading server, wherein the firmware upgrading check packet consists of a first encrypted data block formed by the firmware upgrading packet and a first check value encrypted based on a derived certificate. And then comparing the volume of the firmware upgrading check packet with the available storage space of the trusted execution environment to obtain a comparison result.
And executing different operations according to the comparison result. If the volume of the firmware upgrading check packet is smaller than or equal to the available storage space of the trusted execution environment, the whole firmware upgrading check packet is transmitted to the trusted execution environment, the firmware upgrading packet, the derivative certificate and the first encrypted data block are extracted from the firmware upgrading check packet, and hash calculation is carried out on the firmware upgrading packet to obtain a second check value of the firmware upgrading check packet.
If the volume of the firmware upgrade check packet is larger than the available storage space of the trusted execution environment, extracting the firmware upgrade packet, a target component containing a derived certificate and a first encrypted data block outside the trusted execution environment, and carrying out hash calculation on the firmware upgrade packet to obtain a second check value of the firmware upgrade packet. The second check-up value is then encrypted and transferred to the trusted execution environment where it is decrypted to obtain the original second check-up value. At the same time, the target component and the first encrypted data block are also transferred to the trusted execution environment, and derivative certificates are extracted from the target component therein.
And in the trusted execution environment, performing certificate chain verification by using the root certificate and the derivative certificate to obtain a certificate chain verification result of the firmware upgrade package. Then, the first encrypted data block is decrypted by using the derived certificate, and a first check value is obtained. And then, checking the check value by comparing the first check value and the second check value to obtain a check value check result of the firmware upgrade package. And finally, combining the certificate chain verification result and the verification value verification result to determine the verification result of the final firmware upgrade package.
In the verification process of the certificate chain verification sum verification value, if the certificate chain verification result shows that the firmware upgrade package does not pass, pushing first verification failure information to a display interface of the terminal, and prompting a user that the firmware upgrade package has safety risks. If the verification result of the verification value shows that the firmware upgrade package does not pass, pushing second verification failure information to a display interface of the terminal, and prompting a user that the firmware upgrade package may be tampered or damaged.
If the verification result of the firmware upgrade package indicates that the firmware upgrade package fails verification, the firmware upgrade package may have a safety hazard and will not be used for firmware upgrade of the terminal.
If the verification result of the firmware upgrading packet indicates that the firmware upgrading packet passes the verification, determining a target firmware corresponding to the firmware upgrading packet in the firmware installed in the terminal, and upgrading the target firmware by using the firmware upgrading packet.
The advantages achieved by this embodiment are detailed in the previous embodiments, and will not be described here again.
Based on the above scenario illustration of fig. 1, a firmware upgrade package verification apparatus provided in the embodiment of the present application will be described in detail below with reference to fig. 10. It should be noted that, the firmware upgrade package verification apparatus in fig. 10 is used to execute the method of the embodiment shown in fig. 2 to 9 of the present application, and for convenience of explanation, only the relevant parts of the embodiment of the present application are shown, and specific technical details are not disclosed, please refer to the embodiment shown in fig. 2 to 9 of the present application. Specifically, the firmware upgrade package verification apparatus 800 may include an acquisition unit 801, a comparison unit 802, an extraction unit 803, and a verification unit 804, which are specifically as follows:
An obtaining unit 801, configured to obtain a firmware upgrade check packet, where the firmware upgrade check packet is composed of a firmware upgrade packet and a first encrypted data block, the firmware upgrade packet is provided with a derived certificate, and the first encrypted data block is obtained by encrypting a first check value based on the derived certificate;
a comparing unit 802, configured to compare the volume of the firmware upgrade check packet with an available storage space of the trusted execution environment, to obtain a comparison result;
An extracting unit 803 for extracting the second check value of the firmware upgrade package, the derived certificate, and the first encrypted data block from the firmware upgrade package to the trusted execution environment based on the comparison result;
The verification unit 804 is configured to verify, in a trusted execution environment, based on the root certificate, the second verification value of the firmware upgrade package, the derived certificate, and the first encrypted data block, to obtain a verification result of the firmware upgrade package.
Optionally, in some embodiments, the extracting unit 803 may be configured to transmit the firmware upgrade package to the trusted execution environment if the comparison result indicates that the volume of the firmware upgrade package is less than or equal to the available storage space of the trusted execution environment, extract the firmware upgrade package in the trusted execution environment to obtain the firmware upgrade package, derive the certificate, the first encrypted data block, and hash the firmware upgrade package to obtain the second verification value of the firmware upgrade package.
Optionally, in some embodiments, the extracting unit 803 may be configured to, if the comparison result indicates that the volume of the firmware upgrade checking packet is greater than the available storage space of the trusted execution environment, extract the firmware upgrade checking packet outside the trusted execution environment to obtain a firmware upgrade packet, obtain a target component of the firmware upgrade packet that includes a derived certificate, and obtain a first encrypted data block, and hash the firmware upgrade packet to obtain a second verification value of the firmware upgrade packet, transmit the second verification value of the firmware upgrade packet to the trusted execution environment, transmit the target component and the first encrypted data block to the trusted execution environment, and extract the target component in the trusted execution environment to obtain the derived certificate.
Alternatively, in some embodiments, the extracting unit 803 may be configured to encrypt the second check value of the firmware upgrade package based on a preset encryption key to obtain a second encrypted data block, transmit the second encrypted data block to a trusted execution environment, and decrypt the second encrypted data block based on a preset decryption key in the trusted execution environment to obtain the second check value of the firmware upgrade package.
Optionally, in some embodiments, the verification unit 804 may be configured to perform, in a trusted execution environment, a certificate chain verification based on the root certificate and the derived certificate to obtain a certificate chain verification result of the firmware upgrade package, decrypt the first encrypted data block according to the derived certificate to obtain a first verification value, perform a verification value verification based on the first verification value and the second verification value to obtain a verification value verification result of the firmware upgrade package, and determine the verification result of the firmware upgrade package based on the certificate chain verification result of the firmware upgrade package and the verification value verification result of the firmware upgrade package.
Optionally, in some embodiments, the firmware upgrade package verification apparatus 800 may be configured to push first verification failure information to a display interface of the terminal if the certificate chain verification result indicates that the firmware upgrade package fails the certificate chain verification, where the first verification failure information is used to indicate that the firmware upgrade package fails the certificate chain verification, and push second verification failure information to the display interface of the terminal if the verification value verification result indicates that the firmware upgrade package fails the verification value verification, where the second verification failure information is used to indicate that the firmware upgrade package fails the verification value verification.
Optionally, in some embodiments, the firmware upgrade package verification apparatus 800 may be configured to determine, if the verification result of the firmware upgrade package indicates that the firmware upgrade package passes verification, a target firmware corresponding to the firmware upgrade package in the firmware installed in the terminal, and upgrade the target firmware according to the firmware upgrade package.
The advantages achieved by this embodiment are detailed in the previous embodiments, and will not be described here again.
Referring to fig. 11, a schematic structural diagram of a terminal is provided in an embodiment of the present application. As shown in fig. 11, the terminal 900 includes a processor 901 and a memory 902. The processor 901 is electrically connected to the memory 902.
Processor 901 is a control center for terminal 900 and may include one or more processing cores. The processor 901 connects various parts of the entire terminal 900 using various interfaces and lines, and performs various functions of the terminal 900 and processes data by running or calling computer programs stored in the memory 902 and calling data stored in the memory 902, thereby overall controlling the terminal 900. Alternatively, the processor 901 may be implemented in at least one hardware form of digital signal Processing (DIGITAL SIGNAL Processing, DSP), field programmable gate array (Field Programmable GATE ARRAY, FPGA), programmable logic array (Programmable Logic Array, PLA). The processor 901 may integrate one or a combination of several of a CPU, an image processor (Graphics Processing Unit, GPU), a modem, and the like. The CPU mainly processes an operating system, a user page, an application program and the like, the GPU is used for rendering and drawing display contents, and the modem is used for processing wireless communication. It will be appreciated that the modem may not be integrated into the processor 901 and may be implemented solely by a single communication chip.
The memory 902 may be used to store software programs and modules, and the processor 901 performs various functional applications and data processing by executing the computer programs and modules stored in the memory 902. The memory 902 may mainly include a storage program area which may store an operating system, a computer program required for at least one function, and the like, and a storage data area which may store data created according to the use of the terminal 900, and the like.
In addition, the memory 902 may include high-speed random access memory, and may also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other volatile solid-state storage device. Accordingly, the memory 902 may also include a memory controller to provide access to the memory 902 by the processor 901.
In this embodiment, the terminal 900 includes a trusted execution environment in which a root certificate is stored. A memory 902 for storing executable program code, and a processor 901 for calling and running the executable program code from the memory 902 so that the terminal 900 realizes various functions as follows:
Obtaining a firmware upgrading check packet, wherein the firmware upgrading check packet consists of a firmware upgrading packet and a first encryption data block, the firmware upgrading packet is provided with a derived certificate, and the first encryption data block is obtained by encrypting a first check value based on the derived certificate;
Comparing the volume of the firmware upgrading verification package with the available storage space of the trusted execution environment to obtain a comparison result;
Based on the comparison result, extracting a second check value, a derived certificate and a first encrypted data block of the firmware upgrade package from the firmware upgrade package to a trusted execution environment;
And in the trusted execution environment, checking based on the root certificate, the second check value of the firmware upgrade package, the derived certificate and the first encrypted data block to obtain a check result of the firmware upgrade package.
Optionally, when the processor 901 extracts the second verification value, the derived certificate and the first encrypted data block of the firmware upgrade package from the firmware upgrade package to the trusted execution environment according to the comparison result, the processor specifically performs the steps of transmitting the firmware upgrade package to the trusted execution environment if the comparison result indicates that the volume of the firmware upgrade package is smaller than or equal to the available storage space of the trusted execution environment, extracting the firmware upgrade package to obtain the firmware upgrade package, the derived certificate and the first encrypted data block in the trusted execution environment, and performing hash calculation on the firmware upgrade package to obtain the second verification value of the firmware upgrade package.
Optionally, the processor 901 specifically performs, when executing the process of extracting the second check value, the derived certificate and the first encrypted data block of the firmware upgrade package from the firmware upgrade package based on the comparison result, that is, if the comparison result indicates that the volume of the firmware upgrade package is greater than the available storage space of the trusted execution environment, extracting the firmware upgrade package outside the trusted execution environment to obtain the firmware upgrade package, the target component containing the derived certificate in the firmware upgrade package, the first encrypted data block, and performing hash calculation on the firmware upgrade package to obtain the second check value of the firmware upgrade package, transmitting the second check value of the firmware upgrade package to the trusted execution environment, transmitting the target component and the first encrypted data block to the trusted execution environment, and extracting the target component in the trusted execution environment to obtain the derived certificate.
Optionally, when the processor 901 performs the transmission of the second check value of the firmware upgrade package to the trusted execution environment, the method specifically performs the steps of encrypting the second check value of the firmware upgrade package based on a preset encryption key to obtain a second encrypted data block, transmitting the second encrypted data block to the trusted execution environment, and decrypting the second encrypted data block based on a preset decryption key in the trusted execution environment to obtain the second check value of the firmware upgrade package.
Optionally, when the processor 901 performs verification based on the root certificate, the second verification value of the firmware upgrade package, the derived certificate and the first encrypted data block in the trusted execution environment to obtain a verification result of the firmware upgrade package, the processor specifically performs, in the trusted execution environment, performing certificate chain verification based on the root certificate and the derived certificate to obtain a certificate chain verification result of the firmware upgrade package, decrypting the first encrypted data block according to the derived certificate to obtain the first verification value, performing verification based on the first verification value and the second verification value to obtain a verification result of the verification value of the firmware upgrade package, and determining the verification result of the firmware upgrade package based on the certificate chain verification result of the firmware upgrade package and the verification result of the verification value of the firmware upgrade package.
Optionally, the processor 901 may further execute pushing first verification failure information to a display interface of the terminal if the certificate chain verification result indicates that the firmware upgrade package fails the certificate chain verification, where the first verification failure information is used to indicate that the firmware upgrade package fails the certificate chain verification, and pushing second verification failure information to the display interface of the terminal if the verification value verification result indicates that the firmware upgrade package fails the verification value verification, where the second verification failure information is used to indicate that the firmware upgrade package fails the verification value verification.
Optionally, after the processor 901 performs verification based on the root certificate, the second verification value of the firmware upgrade package, the derived certificate and the first encrypted data block in the trusted execution environment to obtain a verification result of the firmware upgrade package, the processor specifically performs the steps of determining a target firmware corresponding to the firmware upgrade package in the firmware installed by the terminal if the verification result of the firmware upgrade package indicates that the firmware upgrade package passes the verification, and upgrading the target firmware according to the firmware upgrade package.
The advantages achieved by this embodiment are detailed in the previous embodiments, and will not be described here again.
It should be understood that, the device provided in the embodiment of the present application is used to execute the above-mentioned firmware upgrade package verification method, so that the same effect as the above-mentioned implementation method can be achieved.
In case of an integrated unit, the apparatus may comprise a processing module, a memory module. When the device is applied to a terminal, the processing module can be used for controlling and managing the actions of the terminal. The memory module may be used to support the terminal in executing relevant program code, etc.
Wherein the processing module may be a processor or controller that may implement or perform the various exemplary logic blocks, modules and circuits described in connection with this disclosure. A processor may also be a combination of computing functions, including for example one or more microprocessors, digital Signal Processing (DSP) and microprocessor combinations, etc., and a memory module may be a memory.
In addition, the device provided by the embodiment of the application can be a chip, a component or a module, and the chip can comprise a processor and a memory which are connected, wherein the memory is used for storing instructions, and when the processor calls and executes the instructions, the chip can be made to execute the firmware upgrade package verification method provided by the embodiment.
The embodiment of the application also provides a computer readable storage medium, in which computer program code is stored, which when running on a computer, causes the computer to execute the related method steps to implement a firmware upgrade package verification method provided in the above embodiment.
The present embodiment also provides a computer program product, which when run on a computer, causes the computer to perform the above related steps to implement a firmware upgrade package verification method provided in the above embodiments.
The apparatus, the computer readable storage medium, the computer program product, or the chip provided in this embodiment are used to execute the corresponding method provided above, and therefore, the advantages achieved by the apparatus, the computer readable storage medium, the computer program product, or the chip can refer to the advantages of the corresponding method provided above, which are not described herein.
It will be appreciated by those skilled in the art that, for convenience and brevity of description, only the above-described division of the functional modules is illustrated, and in practical application, the above-described functional allocation may be performed by different functional modules according to needs, i.e. the internal structure of the apparatus is divided into different functional modules to perform all or part of the functions described above.
In the embodiments provided in the present application, it should be understood that the disclosed apparatus and method may be implemented in other manners. For example, the apparatus embodiments described above are merely illustrative, e.g., the division of modules or units is merely a logical function division, and there may be additional divisions when actually implemented, e.g., multiple units or components may be combined or integrated into another apparatus, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other forms.
The foregoing is merely illustrative of the present application, and the present application is not limited thereto, and any person skilled in the art will readily recognize that variations or substitutions are within the scope of the present application. Therefore, the protection scope of the application is subject to the protection scope of the claims.