WO2009157133A1 - 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路 - Google Patents

情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路 Download PDF

Info

Publication number
WO2009157133A1
WO2009157133A1 PCT/JP2009/002293 JP2009002293W WO2009157133A1 WO 2009157133 A1 WO2009157133 A1 WO 2009157133A1 JP 2009002293 W JP2009002293 W JP 2009002293W WO 2009157133 A1 WO2009157133 A1 WO 2009157133A1
Authority
WO
WIPO (PCT)
Prior art keywords
modules
module
value
certificate
verification
Prior art date
Application number
PCT/JP2009/002293
Other languages
English (en)
French (fr)
Inventor
高山久
松島秀樹
伊藤孝幸
芳賀智之
ケネス アレクサンダー ニコルソン
前田学
Original Assignee
パナソニック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Priority to JP2010517683A priority Critical patent/JP5357152B2/ja
Priority to US12/991,516 priority patent/US8510544B2/en
Priority to CN2009801187370A priority patent/CN102037473A/zh
Priority to EP09769843A priority patent/EP2293216A1/en
Publication of WO2009157133A1 publication Critical patent/WO2009157133A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Definitions

  • the present invention relates to information communication devices such as personal computers and mobile phones, information home appliances such as television receivers equipped with an Internet access function, information processing methods, computer programs and integrated circuits for realizing the same. It is.
  • the terminal software when the terminal software is composed of a plurality of module groups provided by a plurality of providers, it is possible to update the software module by downloading a new software module from each provider individually. It prevents unauthorized actions such as switching to an operating module or illegally returning software to an older version, enabling stable and reliable startup with the correct software configuration.
  • a module group related to a basic function of a mobile phone provided by a mobile phone terminal manufacturer a module group related to a mobile communication function provided by a mobile phone operator, and a mobile phone provided by an ISP (Internet Service Provider).
  • a module group constituting a service application operating on the telephone is installed.
  • terminals such as personal computers, mobile terminals, mobile phones, and digital home appliances have a mechanism for preventing unauthorized actions such as tampering with software modules for each module group. It is. For example, a mechanism in which a provider issues a certificate to each software module and the integrity of the software module is verified using the certificate when each software module is activated. This mechanism is also effective when the software modules constituting the module group are updated on a module basis. The provider of the module group provides a certificate for the new software module together with the new software module. It is possible to verify the integrity of a new software module received from the provider side.
  • Patent Document 1 A technique similar to the mechanism for preventing fraud using the above certificate is disclosed in Patent Document 1, for example.
  • TCG Trusted Computing Group
  • TPM Trusted Platform Module
  • a module group constituting the terminal software is provided from a plurality of providers (stakeholders), and TCG secure boot is performed on these module groups.
  • TCG secure boot is performed on these module groups.
  • module # 21 provided by the second provider is a module group provided by the first provider (first stakeholder).
  • the modules # 11, # 12, # 13 need to be activated in advance. It is verified by the following method that # 11, # 12, and # 13 are activated.
  • the hash value of each module of the first module group is cumulatively hash-calculated together with the hash value of the module # 21.
  • the accumulated hash value is included.
  • the hash value of the module # 21 included in the certificate # 21 is checked against the hash value calculated from the actual module # 21 to confirm that the module # 21 has not been tampered with.
  • PCR Platinum Configuration Register
  • the certificate # 21 provided by the second provider depends on the first module group provided by the first provider, it is assumed that the module # 13 is updated to a new module. Needs to update certificate # 21 together with certificate # 13 corresponding to module # 13. In order to realize this, every time the module of the first module group is updated, the first provider notifies the second provider in advance of the module update information, and the certificate # 21 There is a problem that a mechanism for updating at the same time is required and independence between providers is lost. Specifically, even if the first provider urgently needs to update the module # 13 to the new module # 13, the second provider prepares the certificate # 21 corresponding to the new module # 13. Until it is possible, module # 13 cannot be updated, and there is a problem that it is not possible to cope with urgent updates. Further, there is a problem that the second provider side needs to pay the cost of generating certificate # 21 and distributing it in order to update the module group provided by the first provider. .
  • the present invention solves such a conventional problem, and in the case where the terminal software is composed of a group of modules provided by a plurality of providers, the modules are maintained while maintaining independence between the providers.
  • An object of the present invention is to provide an information processing apparatus, an information processing method, a computer program for realizing these, and an integrated circuit capable of continuously performing a secure boot across groups.
  • an information processing apparatus includes: a first plurality of modules corresponding to a first stakeholder; and each module of the first plurality of modules.
  • a first control unit that verifies the validity of the plurality of modules and activates the verified first plurality of modules; and the validity of the first plurality of modules is verified, the second An actual hash value of each module of the plurality of modules is compared with the second collation value to verify the validity of the second plurality of modules and to activate the verified second plurality of modules Generated from the accumulated value when the second control unit, the third collation value for verifying the validity of the first module of the second
  • the software of the terminal when the software of the terminal is composed of a plurality of software modules, it is possible to prevent an illegal act such as replacing the software module with an old software module, and to update each software module individually. Become.
  • the configuration information accumulating unit and the alternative virtual configuration information accumulating unit during secure boot processing By verifying with reference to both, the secure boot process can be completed and the certificate update process can be resumed without executing the old software module.
  • FIG. 2 (a) is a block diagram showing a configuration of the first security module of the terminal according to Embodiment 1 of the present invention
  • FIG. 2 (b) is a second diagram of the terminal according to Embodiment 1 of the present invention
  • FIG. 3 (a) is a diagram showing an example of modules and certificates stored in the first storage unit of the terminal according to Embodiment 1 of the present invention
  • FIG. 3 (b) is an embodiment of the present invention.
  • FIG. 3C illustrates an example of modules and certificates stored in the second storage unit of the terminal according to FIG. 1, and FIG.
  • FIG. 3C is stored in the cooperative certificate storage unit of the terminal according to Embodiment 1 of the present invention.
  • FIG. 3D is a diagram showing an example of a cooperation certificate stored in the cooperation certificate storage unit of the terminal according to Embodiment 2 of the present invention.
  • the figure which shows the data structure of the certificate of the software module in Embodiment 1 of this invention The figure which shows the data structure of the cooperation certificate in Embodiment 1 of this invention.
  • Flow chart of secure boot processing in Embodiment 1 of the present invention Flow chart up to the middle of the update process of the linkage certificate in the first embodiment of the present invention It is a flowchart of the update process of the cooperation certificate in Embodiment 1 of this invention, and shows the process following FIG.
  • FIG. 17 is a flowchart of a linkage certificate update process according to the second embodiment of the present invention, and shows a continuation of FIG.
  • the information processing apparatus generates a first plurality of modules corresponding to a first stakeholder and a first generated from the hash value of each of the modules of the first plurality of modules.
  • a first storage unit for storing a verification value and a certificate including a first cumulative verification value generated from the cumulative value when the hash values of modules included in the first plurality of modules are accumulated; and a second stakeholder And a second collation value generated from a hash value of each module for each of the second plurality of modules that are dependent on the first plurality of modules and the second plurality of modules, and Proof including a second cumulative collation value generated from a cumulative value obtained by accumulating hash values of modules included in the second plurality of modules.
  • a first control unit that activates the verified first plurality of modules and an actual hash of each module of the second plurality of modules if the validity of the first plurality of modules is verified;
  • a second control unit that compares the second verification value with the second verification value to verify the validity of the second plurality of modules, and activates the verified second plurality of modules;
  • Cooperation including a third collation value for verifying the validity of the first module of a plurality of modules and a third cumulative collation value generated from the cumulative value when the hash values of the modules included in the first plurality of modules are accumulated Certificate preservation
  • the first control unit updates the first plurality of modules, the first control unit verifies the signature of the certificate with respect to the updated first plurality of module certificates.
  • the first control unit Updated the third cumulative collation value included in the cooperation certificate using the first collation value in the certificate, and the first control unit activates the first plurality of modules, Verifying that the valid first plurality of modules are activated using the third cumulative collation value included in the cooperation certificate, and verifying the validity of the first module of the second plurality of modules, When verification is performed using a third verification value included in the cooperation certificate, the second control unit is activated to verify the validity of the second plurality of modules.
  • the third verification value that verifies the validity of the first module of the second plurality of modules and the cumulative value when the hash values of the modules included in the first plurality of modules are accumulated are generated.
  • the linkage certificate including the third cumulative verification value is held.
  • the first control unit updates the first plurality of modules
  • the first control unit verifies the signature of the certificate with respect to the updated first plurality of module certificates.
  • Update the third cumulative collation value included in the cooperation certificate using the first collation value while the first control unit activates the first plurality of modules, and then And verifying that the valid first plurality of modules are activated using the third cumulative collation value included in the certificate, and verifying the validity of the first module of the second plurality of modules with the linkage certificate
  • the verification is performed using the third verification value included in the first verification module
  • the first module of the second plurality of modules is activated
  • the second control unit verifies the validity of the second plurality of modules. , Starting the second plurality of modules It is intended to.
  • the first control unit performs processing in the second control unit that needs to be changed due to the update of the first plurality of modules. Therefore, even when the first plurality of modules are updated, the second control unit only needs to perform the same process as before updating the first plurality of modules. It is possible to avoid the load of changing the process in conjunction with the update.
  • the verification of the second plurality of modules depends on the first plurality of modules, so that when the first plurality of modules are updated, the beginning of the second plurality of modules is determined. Cumulative value when accumulating the third collation value for verifying the validity of the first module of the second plurality of modules and the hash value of the module included in the first plurality of modules included in the module certificate
  • the second control unit needs to update the third cumulative collation value generated from the above.
  • the second control unit determines the second plurality of modules in a state in which the first plurality of modules depend.
  • the first plurality of modules are updated, in order for the second control unit to update the certificate corresponding to the top module of the second plurality of modules, since the verification of the second plurality of modules depends on the first plurality of modules, it is generated from the accumulated value when the hash values of the modules included in the updated first plurality of modules are accumulated. It is necessary to notify the second cumulative control value from the first control unit to the second control unit. Therefore, when the second control unit does not have the updated third cumulative collation value, the second control unit determines the second plurality of modules in a state in which the first plurality of modules depend. could not verify.
  • the first control unit uses this linkage certificate to verify that the valid first plurality of modules are activated. The validity of the top module of the second plurality of modules is verified.
  • the first plurality of modules is not verified without verifying that the valid first plurality of modules are activated.
  • the validity of the second plurality of modules is verified by performing the same process as before the update.
  • the second control unit since the second control unit does not verify that the valid first plurality of modules are activated even when the first plurality of modules are updated, the first plurality of modules is not verified. And the second plurality of modules can be ensured independence, and even if the first control unit uses the cooperation certificate to update the first plurality of modules, In order to verify the validity of the first module of the second plurality of modules after verifying that the plurality of modules are activated, the first plurality of modules and the first The two modules are linked.
  • the second control unit is linked with the update of the plurality of first modules while making the second plurality of modules dependent on the plurality of modules. It is possible to avoid the load of changing the processing in.
  • the information processing apparatus further stores a cumulative value when the hash values of modules included in the second plurality of modules managed and activated by the second control unit are accumulated.
  • the linkage certificate further includes a fourth cumulative value indicating that the second plurality of modules are not activated, and the first control unit further includes the second plurality of modules.
  • verification values of the second plurality of modules stored in the third storage unit are acquired from the second control unit, and the acquired verification values and the cooperation certificate If it is verified that there is no module activated by the second controller before the second plurality of modules are activated by comparing with the fourth cumulative value included in the first cumulative value, the top of the second plurality of modules Mod Start Le, the second control unit verifies the legitimacy of the second plurality of modules, characterized by activating the second plurality of modules.
  • the second control unit has a third storage unit that is managed by the second control unit and stores verification values of the second plurality of modules, and the linkage certificate is activated by the second plurality of modules.
  • the first control unit acquires verification values of the second plurality of modules stored in the third storage unit from the second control unit and includes the fourth cumulative value indicating that the second storage unit has not been acquired. And verifying that there is no module activated by the second control unit before the second control unit activates the second plurality of modules. In this case, the second control unit is allowed to verify the validity of the second plurality of modules.
  • the third storage unit stores the second plurality of modules. For example, zero is stored as the verification value. Therefore, a fourth cumulative value indicating that the second plurality of modules has not been activated, that is, for example, when compared with zero, they match, and the second control unit determines the second plurality of modules.
  • the first controller can verify that there is no module activated by the second controller before activation.
  • the first control unit not only verifies the validity of the top module of the second plurality of modules, but also before starting the second plurality of modules including the top module. After confirming that there is no module activated by the above, the second control unit is activated. Therefore, the first control unit confirms that the virus or the like is not activated in the second control unit before activating the second plurality of modules, and then the first control unit Can be activated. As a result, the first control unit can activate the second control unit after confirming the safety of the second control unit.
  • the information processing apparatus is further characterized in that the holding unit is included in the first storage unit.
  • a storage area for storing the cooperation certificate is secured in the storage area of the first storage unit, thereby securing a storage area for storing the cooperation certificate in the information processing apparatus. Therefore, it is possible to avoid a new increase in cost.
  • the information processing apparatus wherein the first control unit further includes a third verification value included in the linkage certificate when the second plurality of top modules are updated. It is characterized by updating.
  • the first control unit updates the second plurality of modules
  • the first control unit updates the third collation value included in the cooperation certificate so that the first control unit Since the validity of the second plurality of modules is verified using the linkage certificate storing the third verification value, the validity of the second plurality of modules depending on the first plurality of modules is verified.
  • the third verification value used for the second control unit.
  • the information processing device when the second control unit updates the first module of the second plurality of modules, the information processing device notifies the first control unit to that effect, When receiving the notification, the control unit updates the third verification value of the cooperation certificate to the second verification value of the first module of the updated second plurality of modules.
  • the second control unit when there is an update of the second plurality of modules, the second control unit notifies the first control unit, and the first control unit that receives the notification receives the update of the cooperation certificate. Since the third collation value is updated to the second collation value of the updated top module of the second plurality of modules, the first control unit is configured to update the second plurality of top modules even after the update of the second plurality of top modules. The correctness of the top module of the plurality of modules 2 can be properly verified.
  • the information processing method is further generated from a hash value of each module for the first plurality of modules corresponding to the first stakeholder and each module of the first plurality of modules.
  • An information processing method for verifying validity of the second plurality of modules and activating the verified second plurality of modules, wherein the validity of the first module of the second plurality of modules is verified A collation certificate including a third cumulative verification value and a third cumulative verification value generated from the cumulative value when the hash values of the modules included in the first plurality of modules are accumulated, and the first plurality No moji
  • the certificate is updated, when the signature of the certificate is verified with respect to the certificate of the first plurality of modules after the update, the first verification value in the verified certificate is used as the linkage certificate.
  • the valid first plurality of modules are activated using the third cumulative collation value included in the cooperation certificate.
  • verifying the validity of the top module of the second plurality of modules using the third verification value included in the linkage certificate the second plurality of modules Validity is verified, and the second plurality of modules are activated.
  • the computer program according to the aspect of claim 7 is generated from a hash value of each module for the first plurality of modules corresponding to the first stakeholder and each module of the first plurality of modules.
  • the first storage unit stores a first verification value and a certificate including a first cumulative verification value generated from the cumulative value when the hash values of the modules included in the first plurality of modules are accumulated.
  • One process a second plurality of modules corresponding to the second stakeholder and having a dependency relationship with the first plurality of modules, and each module of the second plurality of modules are generated from the hash value of each module Accumulated when the second collation value to be performed and the hash values of the modules included in the second plurality of modules are accumulated
  • a second process for storing a certificate including a second cumulative collation value generated from the second storage unit, an actual hash value of each module of the first plurality of modules, and the first collation value. In comparison, the validity of the first plurality of modules is verified, and the third process of starting the verified first plurality of modules and the validity of the first plurality of modules are verified.
  • the third cumulative verification value is updated, and the third process starts the first plurality of modules, and then uses the third cumulative verification value included in the linkage certificate to validate the first plurality of When verifying that the module is activated and verifying the validity of the top module of the second plurality of modules using the third verification value included in the cooperation certificate, the fourth Activating the process and the second plurality of modules The validity of the module is verified, and the second plurality of modules are activated.
  • the integrated circuit according to claim 8 is a first plurality of modules corresponding to a first stakeholder and a first verification generated from a hash value of each module for each module of the first plurality of modules.
  • a first storage unit that stores a value and a certificate including a first cumulative collation value generated from a cumulative value when the hash values of modules included in the first plurality of modules are accumulated; and a second stakeholder
  • a second plurality of modules corresponding to the first plurality of modules and a second collation value generated from a hash value of each module for each module of the second plurality of modules
  • the second storage unit to store, the actual hash value of each module of the first plurality of modules and the first collation value are compared to verify the validity of the first plurality of modules,
  • a first control unit that activates the verified first plurality of modules, and if the validity of the first pluralit
  • the first control unit updates the first plurality of modules
  • the first control unit verifies the signature of the certificate with respect to the certificates of the first plurality of modules after the update. , Updating the third cumulative verification value included in the cooperation certificate using the first verification value in the verified certificate, and the first control unit has activated the first plurality of modules Thereafter, it is verified that the first plurality of valid modules are activated using the third cumulative verification value included in the cooperation certificate, and the validity of the first module of the second plurality of modules is verified. Is verified using a third verification value included in the cooperation certificate, the first module of the second plurality of modules is activated, and the second control unit Verifying the correctness, the second plurality The module is activated.
  • the terminal 100 includes a CPU 101, a first information processing unit 110 that performs processing related to software modules provided from a first provider (first stakeholder), and a second provider ( Secure boot that connects the second information processing unit 120 that performs processing related to the software module provided by the first stakeholder, and the secure boot of the first information processing unit 110 and the secure boot of the second information processing unit 120 It is comprised from the cooperation process part 130 which hold
  • the secure boot processing that connects the secure boot of the first information processing unit 110 and the secure boot of the second information processing unit 120 is the second information processing from the secure boot processing of the first information processing unit 110. This process is performed when shifting to the secure boot process of the unit 120.
  • the first information processing unit 110 controls a first storage unit 111 that stores a first module group that is a module group of software provided by the first provider, and secure boot processing of the first module group
  • the first secure boot control unit 112, the first security module 113 having tamper resistance, and the first module group of modules are downloaded from the server (not shown) of the first provider through the network.
  • a first download update unit 114 that updates a module held in one storage unit 111.
  • the second information processing unit 110 controls a second storage unit 121 that stores a second module group that is a software module group provided by the second provider, and secure boot processing of the second module group.
  • the second secure boot control unit 122, the second security module 123 having tamper resistance, and the second module group of modules are downloaded from a second provider server (not shown) through the network, And a second download update unit 124 that updates the modules held in the second storage unit 121.
  • the cooperation processing unit 130 includes a cooperation certificate storage unit 131 that stores a cooperation certificate, and a cooperation certificate update unit 135 that updates the cooperation certificate.
  • the first secure boot control unit 112, the second secure boot control unit 122, the first download update unit 114, the second download update unit 124, and the linkage certificate update unit 135 are generally executed by the CPU 101. Although realized by software, a part or all of it may be realized by hardware.
  • first security module 113 and the second security module 123 are realized by tamper-resistant hardware or tamper-resistant software executed by the CPU 101.
  • the first storage unit 111, the second storage unit 121, and the linkage certificate storage unit 131 are specifically realized by a nonvolatile memory, a hard disk, or other storage device.
  • the first security module 113 includes a configuration information accumulating unit 211 that holds configuration information indicating the configuration of the software module that is actually executed by the CPU 101, and a certificate of the software module.
  • a certificate verification unit 212 that verifies validity, a collation unit 213 that collates configuration information held by the configuration information accumulation unit 211 with a configuration verification value in the certificate, and a counter that indicates a lower limit of a valid version of the software module
  • a counter unit 214 that holds a value; and an encryption / decryption unit 215 that performs encryption / decryption of data, signature generation, and signature verification.
  • the configuration information accumulating unit 211 includes an accumulating unit 216 that performs accumulative hash calculation of the hash value of the software module activated by the first information processing unit, and an accumulative value calculated by the accumulating unit 216 (hereinafter, results of accumulating operation). And a configuration information holding unit 217 that holds the information).
  • the configuration information holding unit 217 corresponds to the TPM's PCR (Platform Configuration Register), which is a security module in TCG, and the value held in the configuration information holding unit 217 is activated by the first information processing unit.
  • the configuration of the modules that are used is shown.
  • the configuration information holding unit 217 includes a plurality of registers, and to which register the accumulating unit 216 performs the accumulative hash operation is designated by a register number.
  • the encryption / decryption unit 215 holds a plurality of key data for performing data encryption / decryption processing, signature generation, and signature verification. Further, another key data encrypted with the key data held by the encryption / decryption unit 215 is stored in the first storage unit (not shown), and the encrypted key data is stored in the first storage unit. The encryption / decryption unit 215 performs encryption / decryption processing, signature generation, and signature verification using the decrypted key data by loading into the security module 1 and decrypting with the key data held by the encryption / decryption unit 215. .
  • the accumulating unit 216 concatenates the byte string of the value held by one register of the configuration information holding unit 217 and the byte string as the result of the hash operation of the software module, and further performs a hash operation on the concatenated byte string, The result is stored again in the register.
  • the second security module 123 has the same configuration as the first security module 113, and holds configuration information indicating the configuration of the software module that is actually executed by the CPU 101, as shown in FIG.
  • a counter unit 224 that holds a counter value indicating a lower limit of a valid version of the software module, and an encryption / decryption unit 225 that performs encryption / decryption of data, signature generation, and signature verification.
  • the configuration information accumulating unit 221 includes an accumulating unit 226 that performs accumulative hash calculation of the hash value of the software module activated by the second information processing unit, and a plurality of registers, and the accumulated value calculated by the accumulating unit 226
  • a configuration information holding unit 227 that holds (hereinafter, the result of the cumulative calculation is referred to in this way).
  • the configuration information holding unit 227 corresponds to a TPM PCR (Platform Configuration Register) that is a security module in the TCG, and the value held in the configuration information holding unit 227 is activated by the second information processing unit.
  • the configuration of the modules that are used is shown.
  • the configuration information holding unit 227 includes a plurality of registers, and to which register the accumulating unit 226 performs the accumulative hash operation is designated by a register number.
  • the encryption / decryption unit 225 holds a plurality of key data for performing data encryption / decryption processing, signature generation, and signature verification. Further, the second storage unit stores another key data encrypted with the key data held by the encryption / decryption unit 225 (not shown), and the encrypted key data is stored in the second storage unit. 2, the encryption / decryption unit 225 performs encryption / decryption processing, signature generation, and signature verification using the decrypted key data. .
  • the accumulating unit 226 concatenates the byte string of the value held in one register of the configuration information holding unit 227 and the byte string as the result of the hash operation of the software module, and further performs a hash operation on the concatenated byte string, The result is stored again in the register.
  • FIG. 3A shows an example of modules and certificates stored in the first storage unit.
  • the first module group includes three modules, module # 11, module # 12, and module # 13.
  • the certificate # 11, the certificate # 12, and the certificate # 13 corresponding to the module # 11, the module # 12, and the module # 13 are held.
  • the first secure boot control unit 112 uses the certificate # 11, the certificate # 12, and the certificate # 13, and relates to the module # 11, the module # 12, and the module # 13. Secure boot based on the method shown in FIG. 5 is performed, and modules are started in the order of module # 11, module # 12, and module # 13.
  • FIG. 3B shows an example of modules and certificates stored in the second storage unit.
  • the second module group includes three modules, module # 21, module # 22, and module # 23.
  • the certificate # 21, the certificate # 22, and the certificate # 23 corresponding to the module # 21, the module # 22, and the module # 23 are held.
  • the second secure boot control unit 122 uses the certificate # 21, the certificate # 22, and the certificate # 23, and relates to the module # 21, the module # 22, and the module # 23.
  • the secure boot based on the method shown in FIG. 6 is performed, and the modules are started in the order of module # 21, module # 22, and module # 23.
  • FIG. 4 shows the data structure of a certificate corresponding to these software modules.
  • the certificate 400 includes a label 401 that is information for identifying the software module associated with the certificate, and the version of the software module.
  • a reference counter value 402 indicating a configuration value
  • a configuration verification value 403 indicating a cumulative hash value to be held in the configuration information holding unit (217, 227) of the security module in the state of the terminal 100 before the software module is executed
  • software As a module digest, a module measurement value 405 indicating a value when the module code image is hash-calculated, and a register number of the configuration information holding unit (217, 227) that performs cumulative hash calculation on the value indicated by the module measurement value 405 are designated.
  • a verification key ID 406 indicating a key for verifying the signature of the certificate
  • an electronic signature 407 for data from a label 401 to a verification key ID 406 with a secret key corresponding to the key indicated by the verification key ID 406.
  • the module measurement value 405 is a hash value of the code image of the valid software module, and verifies that the software module has not been tampered with by checking with the result of the hash operation of the code image of the actual software module. Is possible.
  • the reference counter value 402 is revoked by verifying that it is greater than or equal to the counter value stored in the counter part of the security module. It is possible to verify that the certificate is not an old module certificate, that is, that the module is a valid software module.
  • the configuration verification value 403 is collated with the cumulative hash value stored in the configuration information holding unit of the security module, so that the correct state before executing the software module (the software module being executed before that) Used to verify that it is a valid software module (executed in the correct order).
  • the electronic signature 507 is an electronic signature using a public key cryptosystem signature key, and the signature key is preferably a key having a key length of 1024 bits or more.
  • FIG. 3C illustrates an example of a cooperation certificate stored in the cooperation certificate storage unit.
  • the cooperation certificate is used for secure boot that connects the secure boot of the first module group and the secure boot of the second module group.
  • One linkage certificate is held. Specifically, after starting module # 13 of the first module group, a linkage certificate used for secure boot when starting module # 21 of the second module group is held.
  • FIG. 5 shows the data structure of the linkage certificate.
  • the linkage certificate 500 includes a label 501 that is information for identifying a software module associated with the certificate, and a reference counter that indicates the version of the software module.
  • a value 502 a first configuration verification value 503 indicating a cumulative hash value to be held in the configuration information holding unit of the first security module 113 in the state of the terminal 100 before the software module is executed, and a second Module measurement indicating the second configuration verification value 504 indicating the cumulative hash value to be held in the configuration information holding unit of the security module 123 and the value when the code image of the first module of the second module group is hashed
  • the value 505 and the module in the first module group on which the second module group depends A dependency list 507 indicating a security key, a verification key ID 506 indicating a key for verifying the signature of the certificate, and an electronic signature 508 for data from the label 501 to the verification key ID 506 with a secret key corresponding to the key indicated by the verification key ID
  • the label 501 is a label for identifying the module # 21 of the second module group
  • the module measurement value 505 is a hash value of the code image of the valid module # 21, and the actual code of the module # 21
  • the first configuration verification value 503 is collated with the accumulated value stored in the configuration information holding unit of the first security module, so that the correct state before executing module # 21 (executed before that) Modules # 11, # 12, and # 13 are valid software modules and are used to verify that they are executed in the correct order.
  • the second configuration verification value 504 is compared with the accumulated value stored in the configuration information holding unit of the second security module, so that the correct state (second module) before executing module # 21. This is used to verify that the module of the group is not activated.
  • the dependency list 507 is a module on which the second module group depends on the order of the cumulative hash calculation performed when the cooperation certificate update unit 135 calculates the first configuration verification value 503. And the certificate label.
  • the module # 21 depends on the certificate # 11 (MODULE11), the certificate # 12 (MODULE12), and the certificate # 13 (MODULE13). It shows that the first configuration verification value 503 is calculated by performing a cumulative hash calculation using each module measurement value in the order of # 12 and certificate # 13.
  • the electronic signature 508 is an electronic signature using a public key cryptosystem signature key
  • the signature key is preferably a key having a key length of 1024 bits or more.
  • FIG. 10 shows a case where the module and certificate shown in FIG. 3A are stored in the first storage unit, and the module and certificate shown in FIG. 3B are stored in the second storage unit.
  • the secure boot and the update of the software module in the terminal 100 are schematically shown.
  • the first secure boot control unit 112 uses certificate # 11, certificate # 12, and certificate # 13 to perform secure boot in the order of module # 11, module # 12, and module # 13. Further, a secure boot from module # 13 to module # 21 is performed using the linkage certificate, and then the second secure boot control unit 122 performs certificate # 21, certificate # 22, certificate # 23, secure boot is performed in the order of module # 21, module # 22, and module # 23, in the order of module # 11, module # 12, module # 13, module # 21, module # 22, and module # 23. A series of secure boots are performed.
  • the software module and the corresponding certificate are individually downloaded from the first server or the second server by the first download update unit 114 or the second download update unit 124, and the first The software module and the certificate stored in the storage unit or the second storage unit are updated. Thereafter, the linkage certificate update unit 135 updates the linkage certificate with reference to the certificate stored in the first storage unit or the second storage unit.
  • the detailed operation of the terminal 100 is stored in the first storage unit with the module and certificate shown in FIG. 3 (a), and the second storage unit with the module and certificate shown in FIG. 3 (b). The case where it will be described.
  • a secure boot operation in which the two secure boots are connected as a series of secure boots by executing between the secure boot of the first module group and the secure boot of the second module group. Will be described. Specifically, the secure boot operation performed when starting module # 21 of the second module group after sequentially starting module # 11, module # 12, and module # 13 of the first module group will be described. .
  • the first secure boot control unit 112 executes secure boot based on the schemes shown in Non-Patent Document 4 and Non-Patent Document 5 of the first module group, and performs module # 11, module # 12, module # 12, and module # 12.
  • the cooperation certificate 500 is read from the cooperation certificate storage unit 131 (S601), and a verification request for requesting verification of the cooperation certificate 500 is transmitted to the first security module (S602). .
  • the first security module 113 verifies the cooperation certificate received by the certificate verification unit (S603).
  • the electronic signature 508 is verified using the key indicated by the verification key ID 506 of the cooperation certificate 500 held by the first security module.
  • the reference counter value 502 of the cooperation certificate 500 is equal to or greater than the counter value held by the counter unit 214, and it is verified that the cooperation certificate 500 is not an old cooperation certificate that has been revoked.
  • the collation unit 213 collates the cumulative hash value held by the configuration information holding unit 217 with the first configuration collation value 503 in the linkage certificate 500, and the state before executing module # 21 is the first state. 1 verifies that the information processing unit 1 is in the correct state (modules # 11, # 12, and # 13 executed before that are valid software modules and executed in the correct order).
  • the certificate verification unit that has received the verification result by the verification unit 213 transmits the verification result to the first secure boot control unit 112 (S604).
  • the first secure boot control unit 112 that has received the verification result stops the secure boot if an error is detected in any of the verification processes, and the first secure boot control unit 112 receives the verification if the results of all the verification processes are successful.
  • the module # 21 of the second module group is read from the second storage unit 121 (S605).
  • the first secure boot control unit 112 performs a hash operation on the code image of the read module # 21 and collates the result with the module measurement value 505 of the link certificate 500, so that the read module # 21 has a link certificate. It is verified that the module is a valid module # 21 corresponding to the document 500 (S606).
  • the first secure boot control unit 112 stops the secure boot when an error is detected as a result of the verification of the module # 21, and the second security module when the verification is successful.
  • a configuration information request for requesting configuration information indicating the configuration of the software module activated on the second information processing unit side is transmitted to 123 (S607).
  • the second security module 123 that has received the configuration information request generates a configuration information by applying a digital signature to the accumulated hash value held by the configuration information holding unit 227 using the signature key held by the encryption / decryption unit 225 (S608). ) To the first secure boot control unit 112 (S609).
  • the first secure boot control unit 112 that has received the configuration information first verifies the electronic signature applied to the received configuration information using the signature verification key corresponding to the signature key of the second security module 123, Further, the cumulative hash value indicated by the configuration information is compared with the second configuration verification value in the cooperation certificate 500, and the second information processing unit side is in a correct state (second state) as a state before executing module # 21. It is verified that the modules in the module group are not activated (S610).
  • the first secure boot control unit 112 stops the secure boot. If the verification result is successful, the first secure boot control unit 112 starts the module # 21, and the CPU 101 The code image of module # 21 is executed (S611). Thereafter, the second secure boot control unit 122 starts secure boot of the second module group.
  • two secure boots can be executed as a series of secure boots.
  • the update process of the link certificate 500 is shown in the dependency list 507 of the link certificate 500 when the certificate # 21 of the module # 21 to be activated first in the second module group is updated. This is started when any of the modules # 11, # 12, and # 13 is updated.
  • the download update unit 124 When the certificate # 21 is updated, the download update unit 124 notifies the linkage certificate update unit 135 that the certificate # 21 has been updated, and any of the modules # 11, # 12, and # 13 is notified. When updated, the download update unit 114 notifies the linkage certificate update unit 135 of the update.
  • the cooperation certificate updating unit 135 that has received the update notification reads the cooperation certificate 500 from the cooperation certificate storage unit 131 (S701), and requests the first security module to verify the cooperation certificate 500 that has been read. A verification request is transmitted (S702).
  • the first security module 113 that has received the verification request verifies the cooperation certificate received by the certificate verification unit (S703).
  • the electronic signature 508 of the linkage certificate 500 is verified, and further, it is determined that the reference counter value 502 of the linkage certificate 500 is greater than or equal to the counter value held by the counter unit 214. It is verified that the cooperation certificate 500 is not the revoked old cooperation certificate.
  • the certificate verification unit transmits the verification result to the first secure boot control unit 112 (S704).
  • the linkage certificate updating unit 135 that has received the verification result cannot update the linkage certificate based on the linkage certificate in which the error is detected when an error is detected in the validation process. If the update process is canceled and the result of the verification process is successful, the certificate # 21 corresponding to the module # 21 is read from the second storage unit 121 (S705), and the certificate read to the second security module is read A verification request for requesting verification of the document # 21 is transmitted (S706). Upon receiving the verification request, the second security module 123 verifies the certificate # 21 received by the certificate verification unit (S707).
  • the electronic signature 407 of the certificate # 21 is verified, and it is further determined that the reference counter value 402 of the certificate # 21 is greater than or equal to the counter value held by the counter unit 224. Then, it is verified that the certificate # 21 is not an old revoked certificate.
  • the certificate verification unit transmits the verification result to the linkage certificate update unit 135 (S708).
  • the cooperation certificate update unit 135 that has received the verification result stops the update process when an error is detected in the verification process, and cooperates from the first storage unit 111 when the result of the verification process is successful. All certificates shown in the dependency list 507 of the certificate 500 are read (S709), and a verification request for requesting verification of the read certificate is transmitted to the first security module (S710).
  • the first security module 113 that has received the verification request verifies the certificate received by the certificate verification unit (S711).
  • the electronic signature 407 of the certificate is verified, and further, it is determined that the reference counter value 402 of the certificate is equal to or larger than the counter value held by the counter unit 214, and the certificate is revoked. It is verified that it is not an old certificate.
  • the certificate verification unit transmits the verification result to the linkage certificate update unit 135 (S712).
  • the linkage certificate update unit 135 that has received the verification result stops the update processing when an error is detected in the verification processing, and when the verification processing result is successful, the dependency list 507 of the linkage certificate 500.
  • the first configuration verification value 503 of the new linkage certificate is calculated based on (S713). Specifically, the module measurement value of each certificate indicated by the dependency list 507 is virtually calculated by performing a cumulative hash operation on the register indicated by the register index of each certificate in the order indicated by the dependency list 507. Calculate the cumulative hash value.
  • the linkage certificate updating unit 135 sets the configuration verification value 403 of the certificate # 21 to the second configuration verification value 504 of the new linkage certificate (S714), and further, the module measurement value of the certificate # 21. 405 is set as the module measurement value 505 of the new linkage certificate (S715), and a signature request for requesting generation of an electronic signature is transmitted to the first security module 113 (S716).
  • the first security module 113 that has received the signature request generates an electronic signature (S717), and transmits the generated electronic signature to the cooperation certificate update unit 135 (S718).
  • the linkage certificate update unit 135 sets the received digital signature in the digital signature 508 of the new linkage certificate, updates the linkage certificate held in the linkage certificate storage unit 131 to the new linkage certificate, and updates it.
  • the process is completed (S719).
  • the terminal 100 can execute two secure boots of the first module group and the second module group as a series of secure boots using the new linkage certificate.
  • a new cooperation certificate can be generated inside the terminal 100.
  • the first provider that provides the software module of the first module group and the second provider that provides the software module of the second module group update the software module to be replaced with a new software module.
  • the first security module may perform part of the processing performed by the cooperation certificate update unit 135 in the update of the cooperation certificate described above. Specifically, the first configuration verification value is calculated (S713), the configuration verification value of certificate # 21 is set to the second configuration verification value (S714), and the module measurement value of certificate # 21 is set as the module measurement value. The first security module performs any or all of the processing (S715).
  • these processes are performed by the tamper-resistant first security module, so that tampering actions such as setting an illegal collation value in the cooperation certificate can be prevented, and safety is improved. .
  • cooperation certificate storage unit 131 that stores the cooperation certificate may be provided in the first storage unit 111, and the cooperation certificate update unit 135 may be provided in the first information processing unit 110. .
  • cooperation certificate storage unit 131 for storing the cooperation certificate may be provided in the second storage unit 121, and the cooperation certificate update unit 135 may be provided in the second information processing unit 120. .
  • the storage area necessary for storing the cooperation certificate is secured in the second storage unit, thereby avoiding a new cost increase for securing the storage area for storing the cooperation certificate. it can.
  • the electronic certificate 508 of the linkage certificate is generated by the second security module.
  • the cooperation processing unit 130 is provided with a third secure boot control unit and a third security module.
  • the secure boot described with reference to FIG. 6 is performed in place of the first secure boot control unit.
  • the secure boot control unit may be used.
  • the second embodiment of the present invention is configured such that the certificate structure of the software module and the data structure of the linkage certificate are shared, and the certificate verification process and the linkage certificate verification process can be shared in the security module. Is.
  • the configuration of the terminal 100 in the second embodiment of the present invention is the same as that in the first embodiment, and a description thereof will be omitted.
  • FIG. 11 shows the data structure of the certificate 1100 corresponding to the software module in the second embodiment of the present invention.
  • the certificate 400 is the same as the certificate 400 corresponding to the software module of the first embodiment of the present invention, except that the field of the extended data digest 1107 is added.
  • the certificate 1100 includes a label 1101 that is information for identifying a software module associated with the certificate, a reference counter value 1102 indicating the version of the software module, and a state of the terminal 100 before the software module is executed.
  • a configuration verification value 1103 indicating a cumulative hash value to be stored in the configuration information storage unit (217, 227) of the security module, and a module measurement value 1105 indicating a value when the module code image is hash-calculated as a software module digest
  • a register index 1104 for specifying the register number of the configuration information holding unit (217, 227) that performs cumulative hash calculation on the value indicated by the module measurement value 1105, and a verification key ID 1106 indicating a key for verifying the signature of the certificate ,
  • extended data digest 1107 composed of a digital signature 1108, to the data from the label 1101 by the private key corresponding to the key indicated by the verification key ID1106 to the expanded data digest 1107.
  • a hash value of the extended data of the certificate is set.
  • a hash value for data obtained by concatenating a plurality of extension data is set in the extension data digest 1107.
  • the data structure of the linkage certificate in the second embodiment of the present invention is the same as the data structure of the certificate corresponding to the software module shown in FIG. 11, and the extension data digest 1107 includes the extension certificate extension data. By setting a hash value, it becomes a linkage certificate.
  • FIG. 12 schematically shows the data structure of the cooperation certificate 1200 and the extended data of the cooperation certificate in the second embodiment of the present invention.
  • the extension data includes an extension data name indicating the type of extension data, and the data structure of the extension data is determined by the type of extension data.
  • an extended data name 1201 indicating that it is extended data of a linkage certificate
  • a certificate digest 1202 indicating a hash value of a certificate of a module that is activated in secure boot using the linkage certificate
  • a dependency list digest 1203 indicating a hash value of the dependency list.
  • the certificate digest 1202 shows the certificate.
  • the hash value (Hash (certificate # 21)) of certificate # 21 is set in the dependency list digest 1203, and the hash value (Hash (dependency list)) of the dependency list shown in FIG.
  • the extension data is held in the linkage certificate storage unit 131 together with the linkage certificate.
  • the label 1101 of the cooperation certificate is set with a label for identifying the module # 21 that is the first module of the second module group.
  • the reference counter value 1102 is set to a value greater than or equal to the counter value stored in the counter unit of the first security module.
  • a cumulative hash value to be held in the configuration information holding unit of the first security module 113 is set.
  • the register index indicated by the certificate # 21 is set.
  • the module measurement value 1105 the module measurement value indicated by the certificate # 21 is set.
  • the module and certificate shown in FIG. 3A are stored in the first storage unit, and the module shown in FIG. 3B is stored in the second storage unit. A case where the modules and certificates shown in FIG. 3A are stored in the first storage unit, and the module shown in FIG. 3B is stored in the second storage unit. A case where the modules and certificates shown in FIG. 3A are stored in the first storage unit, and the module shown in FIG. 3B is stored in the second storage unit. A case where the modules and certificates shown in FIG.
  • the first secure boot control unit 112 executes secure boot based on the schemes shown in Non-Patent Document 4 and Non-Patent Document 5 of the first module group, and performs module # 11, module # 12, module # 12, and module # 12.
  • the cooperation certificate 1200 and the cooperation certificate extension data are read from the cooperation certificate storage unit 131 (S1301), and the verification request for requesting the first security module to verify the cooperation certificate 1200 read out. Is transmitted (S1302).
  • the first security module 113 Upon receiving the verification request, the first security module 113 verifies the cooperation certificate received by the certificate verification unit (S1303).
  • the first security module 113 verifies the linkage certificate by using the same function as that for verifying the certificate.
  • the electronic signature 1108 is verified using the key indicated by the verification key ID 1106 of the cooperation certificate 1200 held by the first security module.
  • the reference counter value 1102 of the cooperation certificate 1200 is equal to or greater than the counter value held by the counter unit 214, and it is verified that the cooperation certificate 1200 is not an old revoked cooperation certificate.
  • the collation unit 213 collates the cumulative hash value held by the configuration information holding unit 217 with the configuration collation value 1103 in the cooperation certificate 1200, and the first information is the state before executing module # 21. It is verified that the processing unit side is in a correct state (modules # 11, # 12, and # 13 executed before that are valid software modules and executed in the correct order).
  • the certificate verification unit that has received the verification result by the verification unit 213 transmits the verification result to the first secure boot control unit 112 (S1304).
  • the first secure boot control unit 112 that has received the verification result stops the secure boot if an error is detected in any of the verification processes, and the first secure boot control unit 112 receives the verification if the results of all the verification processes are successful.
  • the module # 21 of the second module group is read from the second storage unit 121 (S1305).
  • the first secure boot control unit 112 performs a hash operation on the code image of the read module # 21 and collates the result with the module measurement value 1105 of the link certificate 1200, so that the read module # 21 has the link certificate. It is verified that the module is a valid module # 21 corresponding to the document 1200 (S1306).
  • the first secure boot control unit 112 stops the secure boot when an error is detected as a result of the verification of the module # 21, and the second storage unit when the verification result is successful.
  • the certificate # 21 corresponding to the module # 21 is read from 121 (S1307).
  • the first secure boot control unit 112 performs a hash operation on the read certificate # 21, collates the result with the certificate digest 1201 of the cooperation certificate extension data, and further performs a hash operation of the cooperation certificate extension data. And collating the result with the extended data digest 1107 of the linkage certificate 1200 to verify that the linkage certificate extension data has not been falsified (S1308).
  • the first secure boot control unit 112 stops the secure boot if an error is detected as a result of the verification of the cooperation certificate extension data, and the second secure boot control unit 112 A verification request for requesting verification of the read certificate # 21 is transmitted to the security module (S1309).
  • the second security module 123 that has received the verification request verifies the certificate received by the certificate verification unit (S1310).
  • the electronic signature 1108 is verified using the key indicated by the verification key ID 1106 of the certificate # 21 held by the second security module.
  • the reference counter value 1102 of the certificate # 21 is greater than or equal to the counter value held by the counter unit 224, and it is verified that the certificate # 21 is not an old revoked certificate.
  • the collation unit 223 collates the cumulative hash value held by the configuration information holding unit 227 with the configuration collation value 1103 in the certificate # 21, and the second information is the state before executing the module # 21. It is verified that the processing unit side is in a correct state (a state where the modules of the second module group are not activated).
  • the certificate verification unit that has received the verification result by the verification unit 223 transmits the verification result to the first secure boot control unit 112 (S1311).
  • the first secure boot control unit 112 that has received the verification result stops the secure boot if an error is detected in any of the verification processes, and if all the verification process results are successful, the module # 21 is activated, and the CPU 101 executes the code image of the module # 21 (S1312).
  • the second secure boot control unit 122 starts secure boot of the second module group.
  • two secure boots can be executed as a series of secure boots.
  • the update process of the link certificate 1200 is shown in the dependency list 507 of the link certificate 1200 when the certificate # 21 of the module # 21 to be activated first in the second module group is updated. This is started when any of the modules # 11, # 12, and # 13 is updated.
  • the download update unit 124 When the certificate # 21 is updated, the download update unit 124 notifies the linkage certificate update unit 135 that the certificate # 21 has been updated, and any of the modules # 11, # 12, and # 13 is notified. When updated, the download update unit 114 notifies the linkage certificate update unit 135 of the update.
  • the link certificate updating unit 135 that has received the update notification reads the link certificate 1200 and link certificate extension data from the link certificate storage unit 131 (S1401), and the link certificate read to the first security module.
  • a verification request for requesting 1200 verification is transmitted (S1402).
  • the first security module 113 that has received the verification request verifies the cooperation certificate received by the certificate verification unit (S1403).
  • the electronic signature 1108 of the cooperation certificate 1200 is verified, and further, it is determined that the reference counter value 1102 of the cooperation certificate 1200 is equal to or larger than the counter value held by the counter unit 214. It is verified that the linkage certificate 1200 is not the revoked old linkage certificate.
  • the certificate verification unit transmits the verification result to the first secure boot control unit 112 (S1404).
  • the linkage certificate updating unit 135 that has received the verification result cannot update the linkage certificate based on the linkage certificate in which the error is detected when an error is detected in the validation process.
  • the certificate # 21 corresponding to the module # 21 is read from the second storage unit 121 (S1405).
  • the linkage certificate update unit 135 performs a hash operation on the linkage certificate extension data, and verifies that the linkage certificate extension data has not been falsified by checking the result against the extension data digest 1107 of the linkage certificate 1200. (S1406).
  • the linkage certificate update unit 135 stops the secure boot when an error is detected as a result of the verification of the linkage certificate extension data, and the second security module when the verification result is successful.
  • a verification request for requesting verification of the read certificate # 21 is transmitted (S1407).
  • the second security module 123 that has received the verification request verifies the certificate # 21 received by the certificate verification unit (S1408).
  • the electronic signature 1108 of the certificate # 21 is verified, and further, it is determined that the reference counter value 1102 of the certificate # 21 is greater than or equal to the counter value held by the counter unit 224. Then, it is verified that the certificate # 21 is not an old revoked certificate.
  • the certificate verification unit transmits the verification result to the linkage certificate update unit 135 (S1409).
  • the cooperation certificate update unit 135 that has received the verification result stops the update process when an error is detected in the verification process, and cooperates from the first storage unit 111 when the result of the verification process is successful. All certificates indicated by the certificate extension data dependency list are read (S1410), and a verification request for requesting verification of the read certificate is transmitted to the first security module (S1411).
  • the first security module 113 that has received the verification request verifies the certificate received by the certificate verification unit (S1412).
  • the electronic signature 1108 of the certificate is verified, and further, it is determined that the reference counter value 1102 of the certificate is equal to or larger than the counter value held by the counter unit 214, and the certificate is revoked. It is verified that it is not an old certificate.
  • the certificate verification unit transmits the verification result to the linkage certificate update unit 135 (S1413).
  • the link certificate update unit 135 that has received the verification result stops the update process if an error is detected in the verification process, and if the result of the verification process is successful, the dependency list of the link certificate extension data Based on this, a new collation certificate configuration verification value 1103 is calculated (S1414). Specifically, the module measurement value of each certificate indicated by the dependency list of the linkage certificate extension data is virtually calculated for the register indicated by the register index of each certificate in the order indicated by the dependency list. Calculate the cumulative hash value when executed.
  • the linkage certificate update unit 135 performs a hash operation on the certificate # 21, updates the certificate digest of the linkage certificate extension data, and further performs a hash operation on the linkage certificate extension data to obtain the linkage certificate.
  • the extended data digest 1107 is calculated (S1415).
  • the linkage certificate update unit 135 sets the module measurement value 1105 of the certificate # 21 to the module measurement value 505 of the new linkage certificate (S1416), and requests the first security module 113 to generate an electronic signature.
  • a signature request is transmitted (S1417).
  • the first security module 113 that has received the signature request generates an electronic signature (S1418), and transmits the generated electronic signature to the linkage certificate update unit 135 (S1419).
  • the linkage certificate update unit 135 sets the received digital signature in the digital signature 1108 of the new linkage certificate, and sets the linkage certificate and the linkage certificate extension data held in the linkage certificate storage unit 131 to the new linkage certificate. Certificate and linkage certificate extended data are updated, and the update process is completed (S1420).
  • the terminal 100 can execute two secure boots of the first module group and the second module group as a series of secure boots using the new linkage certificate.
  • a new linked certificate can be generated inside the terminal 100 by calculating a configuration verification value by referring to the certificate based on the dependency list of the linked certificate.
  • the first provider that provides the software module of the first module group and the second provider that provides the software module of the second module group update the software module to be replaced with a new software module.
  • the certificate verification process and the linkage certificate verification process in the security module can be shared, the resources required in the security module such as a memory can be reduced. There is an advantage that it can be provided at low cost.
  • the first security module may perform part of the processing performed by the cooperation certificate update unit 135 in the update of the cooperation certificate described above. Specifically, the configuration verification value is calculated (S1413), the configuration verification value of certificate # 21 is set to the second configuration verification value (S1414), the extended data digest is calculated (S1415), and the certificate # 21 module. The first security module performs any or all of the processing of setting the measurement value to the module measurement value (S1416).
  • these processes are performed by the tamper-resistant first security module, so that tampering actions such as setting an illegal collation value in the cooperation certificate can be prevented, and safety is improved. .
  • cooperation certificate storage unit 131 that stores the cooperation certificate may be provided in the first storage unit 111, and the cooperation certificate update unit 135 may be provided in the first information processing unit 110. .
  • cooperation certificate storage unit 131 for storing the cooperation certificate may be provided in the second storage unit 121, and the cooperation certificate update unit 135 may be provided in the second information processing unit 120. .
  • the storage area necessary for storing the cooperation certificate is secured in the second storage unit, thereby avoiding a new cost increase for securing the storage area for storing the cooperation certificate. it can.
  • the electronic certificate 508 of the linkage certificate is generated by the second security module.
  • the cooperation processing unit 130 is provided with a third secure boot control unit and a third security module.
  • the secure boot described with reference to FIG. 6 is performed in place of the first secure boot control unit.
  • the secure boot control unit may be used.
  • the above-described first embodiment may be realized based on specifications defined by the Trusted Computing Group (TCG).
  • TCG Trusted Computing Group
  • the security module is a TPM module or MTM module specified by TCG (hereinafter, TPM means TPM or MTM), and the configuration information holding unit is a PCR provided in the TPM.
  • the counter unit is a monotonic counter included in the TPM, and the accumulating unit, the certificate verification unit, and the verification unit are units that implement a TCG function including TPM command processing, and certificates # 11, # 12, and # 13. Certificates # 21, # 22, and # 23 are External RIM_Cert or Internal RIM_Cert.
  • the software can be updated safely based on the TCG specification.
  • Each of the above devices is specifically a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is stored in the RAM or hard disk unit.
  • Each device achieves its functions by the microprocessor operating according to the computer program.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions for the computer in order to achieve a predetermined function.
  • Each device is not limited to a computer system including all of a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like, and may be a computer system including a part of them. .
  • a part or all of the components constituting each of the above devices may be configured by one system LSI (Large Scale Integration).
  • the system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on a single chip, and specifically, a computer system including a microprocessor, ROM, RAM, and the like. .
  • a computer program is stored in the RAM.
  • the system LSI achieves its functions by the microprocessor operating according to the computer program.
  • each part of the constituent elements constituting each of the above devices may be individually made into one chip, or may be made into one chip so as to include a part or all of them.
  • the system LSI is used here, it may be called IC, LSI, super LSI, or ultra LSI depending on the degree of integration. Further, the method of circuit integration is not limited to LSI's, and implementation using dedicated circuitry or general purpose processors is also possible.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
  • a part or all of the constituent elements constituting each of the above devices may be constituted by an IC card or a single module that can be attached to and detached from each device.
  • the IC card or the module is a computer system including a microprocessor, a ROM, a RAM, and the like.
  • the IC card or the module may include the super multifunctional LSI described above.
  • the IC card or the module achieves its function by the microprocessor operating according to the computer program. This IC card or this module may have tamper resistance.
  • the present invention may be the method described above. Further, the present invention may be a computer program that realizes these methods by a computer, or may be a digital signal composed of the computer program.
  • the present invention also provides a computer-readable recording medium such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray Disc). ), Recorded in a semiconductor memory or the like.
  • the digital signal may be recorded on these recording media.
  • the computer program or the digital signal may be transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, a data broadcast, or the like.
  • the present invention may be a computer system including a microprocessor and a memory, the memory storing the computer program, and the microprocessor operating according to the computer program.
  • the program or the digital signal is recorded on the recording medium and transferred, or the program or the digital signal is transferred via the network or the like, and executed by another independent computer system. It is good.
  • the security module may be implemented by tamper-resistant software or software and hardware.
  • the CPU may have a special operation mode (secure mode or the like), and the software executed by the CPU may be safely executed by operating in the special operation mode (secure mode or the like).
  • the present invention can be widely used in information communication devices and home appliances that update program data, such as personal computers, mobile phones, audio players, television receivers, and video recorders.
  • the software of the terminal is composed of a group of modules provided by a plurality of providers
  • the module and the certificate are in a form having no dependency between the providers. It is possible to provide each provider individually, and it is possible to continuously perform secure boot across module groups while maintaining independence between providers.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

 提供者間の独立性を維持した上で複数の提供者が提供するモジュール群間を跨るセキュアブートを継続的に行うことが可能な情報処理装置を提供する。  セキュアブートを行う第1のモジュール群の累積ハッシュ値を示す第1の構成照合値503と、セキュアブートを行う第2のモジュール群の先頭モジュールのハッシュ値を示すモジュール測定値505とを含む連携証明書を備え、第1のモジュール群のセキュアブートの後、第1の構成照合値503との照合により第1のモジュール群が起動されていることを検証し、さらにモジュール測定値505との照合により完全性が検証された第2のモジュール群の先頭モジュールを起動して第2のモジュール群のセキュアブートを行い、第1のモジュール群のモジュールが更新された場合に、連携証明書更新部135が連携証明書を更新する。

Description

情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路
 本発明は、パーソナルコンピュータや携帯電話などの情報通信機器、インターネットアクセス機能を備えたテレビ受信装置などの情報家電機器等の情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路に関するものである。
 特に、端末のソフトウェアが複数の提供者から提供される複数のモジュール群から構成される場合において、新しいソフトウェアモジュールを各提供者から個別にダウンロードすることでソフトウェアモジュールの更新を可能にしつつ、不正な動作をするモジュールにすり替えたり、不正にソフトウェアを古いバージョンに戻したりするといった不正行為を防止し、安定して確実に正しいソフトウェア構成で起動することを可能にするものである。
 近年、ネットワークを介して提供されるサービスは、音楽や映像といった著作物の提供や、企業が保有する機密情報の閲覧、オンラインバンキングなど多岐に渡り、かつ、その中で扱われる情報の価値も高価なものになってきている。多岐に渡るサービスに対応するため、パーソナルコンピュータ、携帯端末、携帯電話、デジタル家電などの端末には、複数の提供者から提供された複数のソフトウェアがインストールされている。
 例えば、携帯電話の場合、携帯電話の端末メーカーが提供する携帯電話の基本機能に関するモジュール群と、携帯電話のオペレータが提供する携帯通信機能に関するモジュール群と、ISP(Internet Service Provider)が提供する携帯電話上で動作するサービス・アプリケーションを構成するモジュール群がインストールされている場合がある。
 また、高価な価値を持つ情報を安全に扱うために、パーソナルコンピュータ、携帯端末、携帯電話、デジタル家電などの端末には、ソフトウェアモジュールの改ざん等の不正行為を防止する仕組みがモジュール群ごとに組み込まれている。例えば、各ソフトウェアモジュールに対して提供者が証明書を発行し、各ソフトウェアモジュールの起動時に、その証明書を用いてソフトウェアモジュールの完全性を検証するといった仕組もその一つである。この仕組は、モジュール群を構成するソフトウェアモジュールをモジュール単位で更新する場合にも有効であり、モジュール群の提供者が新しいソフトウェアモジュールと共に、その新しいソフトウェアモジュールの証明書を提供することにより、端末側で提供者側から受信した新しいソフトウェアモジュールの完全性を検証することが可能となる。
 上記の証明書を用いて不正行為を防止する仕組みと同様の技術は、例えば特許文献1において公開されている。
 また、セキュアなコンピュータプラットフォームを開発、普及させることを目的として、Trusted Computing Group(TCG)が設立されている。TCGでは、Trusted Platform Module(TPM)と呼ばれるセキュリティモジュールを利用し、ソフトウェアモジュールの完全性だけでなく、ソフトウェアモジュールを起動する順番が正しいことを検証しながらソフトウェアモジュールを起動するセキュアブートと呼ばれる起動処理を端末が行うことで、安全な端末環境を実現している(非特許文献1~5参照)。
US2005/0021968
TPM Main,Part1 Design Principles,Specification version 1.2 Level2 Rivision103(9 July 2007) TPM Main,Part2 TPM Structures,Specification verion1.2 Level2 Rivision103(9 July 2007) TPM Main Part3 Commands,Specification verion 1.2 Level2 Rivision103(9 July 2007) TCG Mobile Trusted Module Specification version 1.0 Revision 1(12 June 2007) TCG Mobile Reference Architecture Specification version1.0 Revision1(12 June 2007)
 しかし、従来提案されている技術では、図16に示すように、端末のソフトウェアを構成するモジュール群が複数の提供者(ステークホルダー)から提供され、それらのモジュール群に対してTCGのセキュアブートを行うように構成された端末において、1つのモジュールを新しいモジュールに更新する場合に課題がある。
 例えば、従来提案されている技術によれば、セキュアブートでは、第2の提供者(第2ステークホルダー)が提供するモジュール#21が、第1の提供者(第1ステークホルダー)が提供するモジュール群であるモジュール#11、#12、#13を利用する場合には、モジュール#11、#12、#13は事前に起動されている必要があるため、モジュール#21を起動する前に、正規のモジュール#11、#12、#13が起動されていることを次のような方法で検証する。
 この場合、第2の提供者がモジュール#21と共に提供する証明書#21の中には、モジュール#21のハッシュ値と共に、第1のモジュール群のそれぞれのモジュールのハッシュ値を累積的にハッシュ演算した場合の累積ハッシュ値が含まれる。
 モジュール#21を起動する前に、証明書#21に含まれるモジュール#21のハッシュ値と実際のモジュール#21から算出したハッシュ値とを照合することで、モジュール#21が改ざんされていないことを検証すると同時に、起動されているモジュールの累積ハッシュ値を格納するレジスタであるPCR(Platform Configuration Register)と証明書#21に含まれる累積ハッシュ値とを照合することで、モジュール#21を起動する前に正規のモジュール#11、#12、#13が起動されていることを検証する。
 しかし、第2の提供者が提供する証明書#21が、第1の提供者が提供する第1のモジュール群に依存することになるため、仮に、モジュール#13を新しいモジュールに更新する場合には、モジュール#13に対応する証明書#13と共に証明書#21も同時に更新する必要がある。これを実現するためには、第1のモジュール群のモジュールを更新する度に、第1の提供者がモジュールの更新情報を事前に第2の提供者側に通知して、証明書#21も同時に更新するメカニズムが必要となり、提供者間の独立性が損なわれるという問題がある。具体的には、第1の提供者側が緊急にモジュール#13を新しいモジュール#13に更新する必要があっても、第2の提供者側で新しいモジュール#13に対応する証明書#21の準備ができるまでは、モジュール#13を更新することができず、緊急を要する更新には対応できないといった問題がある。また、第2の提供者側は、第1の提供者が提供するモジュール群の更新のために、証明書#21を生成して、それを配信するというコストを払う必要があるといった問題がある。
 本発明は、こうした従来の問題点を解決するものであり、端末のソフトウェアが、複数の提供者が提供するモジュール群から構成される場合において、提供者間の独立性を維持した上で、モジュール群間を跨るセキュアブートを継続的に行うことが可能な情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路を提供することを目的としている。
 上記課題を解決するために、本発明の一実施態様である情報処理装置は、第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納する第1記憶部と、第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納する第2記憶部と、前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第1制御部と、前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第2制御部と、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持部と、を具備し、前記第1制御部は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、前記第1制御部は、前記第1の複数のモジュールを起動した後、前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの先頭モジュールを起動し、前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動させることを特徴とする。
 上記態様によると、端末のソフトウェアが、複数のソフトウェアモジュールから構成される場合において、ソフトウェアモジュールを古いソフトウェアモジュールにすりかえるといった不正行為を防止し、各ソフトウェアモジュールの更新処理を個別に行うことが可能となる。
 また、証明書の更新の際に電源断が起こり、ソフトウェアモジュールのコードイメージや証明書間に不整合が生じてしまった場合でも、セキュアブート処理時に構成情報累積部と代替仮想構成情報累積部の両方を参照して検証をすることで、古いソフトウェアモジュールを実行することなく、セキュアブート処理を完了させ、証明書の更新処理を再開することが出来る。
本発明の実施の形態1に係る端末の構成を示すブロック図 図2(a)は、本発明の実施の形態1に係る端末の第1のセキュリティモジュールの構成を示すブロック図、図2(b)は、本発明の実施の形態1に係る端末の第2のセキュリティモジュールの構成を示すブロック図 図3(a)は、本発明の実施の形態1に係る端末の第1の記憶部に格納されるモジュールと証明書の一例を示す図、図3(b)は、本発明の実施の形態1に係る端末の第2の記憶部に格納されるモジュールと証明書の一例を示す図、図3(c)は、本発明の実施の形態1に係る端末の連携証明書記憶部に格納される連携証明書の一例を示す図、図3(d)は、本発明の実施の形態2に係る端末の連携証明書記憶部に格納される連携証明書の一例を示す図 本発明の実施の形態1におけるソフトウェアモジュールの証明書のデータ構造を示す図 本発明の実施の形態1における連携証明書のデータ構造を示す図 本発明の実施の形態1におけるセキュアブート処理のフロー図 本発明の実施の形態1における連携証明書の更新処理の途中までのフロー図 本発明の実施の形態1における連携証明書の更新処理のフロー図であり、図7の続きの処理を示す 本発明の実施の形態1における連携証明書の依存リストの一例を示す図 本発明の実施の形態2におけるセキュアブート及びソフトウェアモジュールの更新を説明するための模式図 本発明の実施の形態2におけるソフトウェアモジュールの証明書のデータ構造を示す図 本発明の実施の形態2における連携証明書のデータ構造を示す図 本発明の実施の形態2におけるセキュアブート処理のフロー図 本発明の実施の形態2における連携証明書の更新処理の途中までのフロー図 本発明の実施の形態2における連携証明書の更新処理のフロー図であり、図14の続きの処理を示す 従来技術に基づくセキュアブート処理の一例を説明する図
 請求項1記載の態様の情報処理装置は、第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納する第1記憶部と、第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納する第2記憶部と、前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第1制御部と、前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第2制御部と、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持部と、を具備し、前記第1制御部は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、前記第1制御部は、前記第1の複数のモジュールを起動した後、前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2制御部を起動して前記第2の複数のモジュールの正当性を検証させることを特徴とする。
 本態様によると、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書を保持する。
 また、前記第1制御部は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、一方、前記第1制御部は、前記第1の複数のモジュールを起動した後、前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの先頭モジュールを起動し、前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動するものである。
 これにより、前記第1の複数のモジュールの正当性が検証されたことを前提に、前記第2の複数のモジュールの正当性を検証する場合において、前記第1の複数のモジュールの更新があった場合に、前記第1の複数のモジュールの更新があったために変更が必要となる第2制御部での処理を前記第1制御部で行う。そのため、前記第1の複数のモジュールの更新があった場合でも、前記第2制御部においては前記第1の複数のモジュールの更新前と同一の処理を行うだけよく、前記第1の複数のモジュールの更新に連動して処理を変更する負荷を回避できる。
 即ち、従来では、前記第2の複数のモジュールの検証は前記第1の複数のモジュールに依存するので、前記第1の複数のモジュールの更新があった場合、前記第2の複数のモジュールの先頭モジュールの証明書に含まれる、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を、前記第2制御部が更新する必要があった。換言すれば、従来では、前記第1の複数のモジュールの更新があった場合に、前記第2の複数のモジュールの先頭モジュールに対応する証明書を前記第2制御部が更新するためには、前記第2の複数のモジュールの検証は前記第1の複数のモジュールに依存するので、更新後の前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を、前記第1制御部から前記第2制御部に通知する必要があった。従って、更新後の前記第3累積照合値を前記第2制御部が有しない場合は、前記第2制御部は前記第1の複数のモジュールを依存した状態での前記第2の複数のモジュールの検証ができなかった。
 しかし、本態様によると、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書を別途設け、この連携証明書を用いて前記第1制御部が、正当な第1の複数のモジュールが起動していることを検証した上で、前記第2の複数のモジュールの先頭モジュールの正当性を検証する。
 一方、前記第2制御部では、前記第1の複数のモジュールの更新があった場合でも、正当な第1の複数のモジュールが起動していること検証せずに、前記第1の複数のモジュールの更新前と同一の処理を行って、前記第2の複数のモジュールの正当性を検証する。
 この場合、前記第2制御部では、前記第1の複数のモジュールの更新があった場合でも、正当な第1の複数のモジュールが起動していること検証しないため、前記第1の複数のモジュールと前記第2の複数のモジュールとは独立性を確保することができ、連携証明書を用いて前記第1制御部が、前記第1の複数のモジュールの更新があった場合でも、正当な第1の複数のモジュールが起動していること検証した上で、前記第2の複数のモジュールの先頭モジュールの正当性を検証するため、連携証明書を媒体として前記第1の複数のモジュールと前記第2の複数のモジュールとは連携されることになる。
 従って、前記1の複数のモジュールの更新後も、前記第2の複数のモジュールを前記1の複数のモジュールに依存させつつ、前記第1の複数のモジュールの更新に連動して前記第2制御部における処理を変更する負荷を回避できる。
 請求項2記載の態様の情報処理装置は、さらに、前記第2制御部によって管理され起動済みの前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値を格納する第3記憶部を有し、前記連携証明書は、さらに、前記第2の複数のモジュールが起動されていないことを示す第4累積値を含み、前記第1制御部は、さらに、第2の複数のモジュールの先頭モジュールの正当性を検証すると、前記第2制御部から前記第3記憶部に格納された第2の複数のモジュールの検証値を取得し、この取得した検証値と前記連携証明書に含まれる第4累積値とを比較して前記第2の複数のモジュールを起動する前に前記第2制御部が起動したモジュールがないことを検証した場合、前記第2の複数のモジュールの先頭モジュールを起動し、前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動することを特徴とする。
 本態様によると、前記第2制御部によって管理され前記第2の複数のモジュールの検証値を格納する第3記憶部を有し、前記連携証明書は、さらに前記第2の複数のモジュールが起動されていないことを示す第4累積値を含み、前記第1制御部は、前記第2制御部から前記第3記憶部に格納された第2の複数のモジュールの検証値を取得し、この取得した検証値と前記第2の所定の照合値を比較して、前記第2制御部が前記第2の複数のモジュールを起動する前に前記第2制御部が起動したモジュールがないことを検証した場合、前記第2制御部に対して前記第2の複数のモジュールの正当性を検証させる。
 即ち、前記第2制御部が前記第2の複数のモジュールを起動する前に前記第2制御部が起動したモジュールがない場合には、前記第3記憶部には、前記第2の複数のモジュールの検証値として例えばゼロが格納されている。そのため、前記第2の複数のモジュールが起動されていないことを示す第4累積値、即ち、例えばゼロと比較すると、両者は一致して、前記第2制御部が前記第2の複数のモジュールを起動する前に前記第2制御部が起動したモジュールがないことを前記第1制御部で検証できる。
 これにより、前記第1制御部が前記第2の複数のモジュールの先頭モジュールの正当性を検証するだけではなく、前記先頭モジュールを含む第2の複数のモジュールを起動する前に前記第2制御部によって起動されたモジュールがないことを確認して前記第2制御部を起動させる。そのため、前記第2の複数のモジュールを起動させる前に前記第2制御部においてウィルス等が起動していないことを前記第1制御部が確認した上で前記第1制御部は前記第2制御部を起動させることができる。その結果、前記第1制御部が前記第2制御部の安全性を確認した上で前記第2制御部を起動させることができる。
 請求項3記載の態様の情報処理装置は、さらに、前記保持部は、前記第1記憶部に含まれることを特徴とする。
 本態様によると、前記連携証明書を格納するために必要な記憶領域を前記第1記憶部の記憶領域に中に確保することにより、情報処理装置において連携証明書を格納する記憶領域を確保するための分の新たなコストアップを回避できる。
 請求項4記載の態様の情報処理装置は、さらに、前記第1制御部は、前記第2の複数の先頭モジュールがのモジュールを更新された場合、前記連携証明書に含まれる第3照合値を更新することを特徴とする。
 本態様によると、前記第1制御部は、前記第2の複数のモジュールを更新した場合、前記連携証明書に含まれる第3照合値を更新することにより、前記第1制御部が更新後の第3照合値を格納した連携証明書を用いて、前記第2の複数のモジュールの正当性を検証するので、前記第1の複数のモジュールに依存する第2の複数のモジュールの正当性を検証するために用いる第3照合値を、前記第2制御部が更新する負荷を回避できる。
 請求項5記載の態様の情報処理装置は、さらに、前記第2制御部は、前記第2の複数のモジュールの先頭モジュールを更新した場合、前記第1制御部にその旨を通知し、第1制御部は、前記通知を受信すると、前記連携証明書の前記第3照合値を前記更新された第2の複数のモジュールの先頭モジュールの第2照合値に更新することを特徴とする。
本態様によると、前記第2の複数のモジュールの更新があった場合、前記第2制御部は、第1制御部に通知し、前記通知を受信した第1制御部は、前記連携証明書の前記第3照合値を前記更新された第2の複数のモジュールの先頭モジュールの第2照合値に更新するので、前記第2の複数の先頭モジュールの更新後も、前記第1制御部は前記第2の複数のモジュールの先頭モジュールの正当性を適正に検証できる。
 請求項6記載の態様の情報処理方法は、さらに、第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納し、第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納し、前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動し、前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する情報処理方法であって、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持し、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、前記第1の複数のモジュールを起動した後、前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動させることを特徴とする。
 請求項7記載の態様のコンピュータプログラムは、コンピュータに対し、第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを第1記憶部に格納する第1処理と、第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを第2記憶部に格納する第2処理と、前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第3処理と、前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第4処理と、を実行させるコンピュータプログラムであって、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書を保持部に格納する第5処理を実行させ、前記第3処理は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、前記第3処理は、前記第1の複数のモジュールを起動した後、前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第4処理を起動して前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動させることを特徴とする。
 請求項8記載の態様の集積回路は、第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納する第1記憶部と、第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納する第2記憶部と、前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第1制御部と、前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第2制御部と、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持部と、を具備した集積回路であって、前記第1制御部は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、前記第1制御部は、前記第1の複数のモジュールを起動した後、前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの先頭モジュールを起動し、前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動することを特徴とする。
 (第1の実施形態)
 本発明の第1の実施形態における端末100の構成について説明する。
 端末100は、図1に示すように、CPU101と、第1の提供者(第1のステークホルダー)から提供されるソフトウェアモジュールに関する処理を行う第1の情報処理部110と、第2の提供者(第1のステークホルダー)から提供されるソフトウェアモジュールに関する処理を行う第2の情報処理部120と、第1の情報処理部110のセキュアブートと第2の情報処理部120のセキュアブートとを繋ぐセキュアブート処理に用いられる連携証明書の保持・更新を行う連携処理部130とから構成される。
 ここで、第1の情報処理部110のセキュアブートと第2の情報処理部120のセキュアブートとを繋ぐセキュアブート処理とは、第1の情報処理部110のセキュアブート処理から第2の情報処理部120のセキュアブート処理に移行する際に行う処理である。
 第1の情報処理部110は、第1の提供者が提供するソフトウェアのモジュール群である第1のモジュール群を格納する第1の記憶部111と、第1のモジュール群のセキュアブート処理を制御する第1のセキュアブート制御部112と、耐タンパ性を備える第1のセキュリティモジュール113と、第1のモジュール群のモジュールを第1の提供者のサーバ(不図示)からネットワークを通じてダウンロードし、第1の記憶部111に保持されているモジュールを更新する第1のダウンロード更新部114とから構成される。
 第2の情報処理部110は、第2の提供者が提供するソフトウェアのモジュール群である第2のモジュール群を格納する第2の記憶部121と、第2のモジュール群のセキュアブート処理を制御する第2のセキュアブート制御部122と、耐タンパ性を備える第2のセキュリティモジュール123と、第2のモジュール群のモジュールを第2の提供者のサーバ(不図示)からネットワークを通じてダウンロードし、第2の記憶部121に保持されているモジュールを更新する第2のダウンロード更新部124とから構成される。
 連携処理部130は、連携証明書を格納する連携証明書記憶部131と、連携証明書を更新する連携証明書更新部135とから構成される。
 第1のセキュアブート制御部112と第2のセキュアブート制御部122、第1のダウンロード更新部114と第2のダウンロード更新部124、連携証明書更新部135は、一般的にはCPU101が実行するソフトウェアによって実現されるが、一部もしくは全部をハードウェアによって実現されてもよい。
 また、第1のセキュリティモジュール113と第2のセキュリティモジュール123は、耐タンパ性を備えるハードウェアまたはCPU101が実行する耐タンパ化されたソフトウェアによって実現される。
 第1の記憶部111と第2の記憶部121と連携証明書記憶部131は、具体的には不揮発性メモリやハードディスクその他の記憶装置によって実現される。
 さらに、第1のセキュリティモジュール113は、図2(a)に示すように、CPU101が実際に実行するソフトウェアモジュールの構成を示す構成情報を保持する構成情報累積部211と、ソフトウェアモジュールの証明書の有効性を検証する証明書検証部212と、構成情報累積部211が保持する構成情報を証明書の中の構成照合値と照合する照合部213と、ソフトウェアモジュールの有効なバージョンの下限を示すカウンタ値を保持するカウンタ部214と、データの暗復号及び署名生成や署名検証を行う暗復号部215と、を備える。また、構成情報累積部211は、第1の情報処理部で起動されたソフトウェアモジュールのハッシュ値の累積ハッシュ演算を行なう累積部216と、累積部216が算出した累積値(以下、累積演算の結果をこのように呼ぶ)を保持する構成情報保持部217と、を備えている。ここで構成情報保持部217は、TCGにおけるセキュリティモジュールであるTPMのPCR(Platform Configuration Register)に相当するものであり、構成情報保持部217に保持される値は、第1の情報処理部で起動されているモジュールの構成を示す。
構成情報保持部217は、複数のレジスタから構成され、累積部216がどのレジスタに対して累積ハッシュ演算を行うかはレジスタ番号によって指定される。
 暗復号部215は、データの暗復号処理や署名生成や署名検証を行うための複数の鍵データを保持している。また、第1の記憶部には、暗復号部215が保持している鍵データで暗号化された別の鍵データが格納されており(不図示)、その暗号化された鍵データを、第1のセキュリティモジュールにロードして、暗復号部215が保持している鍵データで復号することで、暗復号部215はその復号した鍵データを用いて暗復号処理や署名生成や署名検証を行う。
 累積部216は、構成情報保持部217の1つのレジスタが保持する値のバイト列とソフトウェアモジュールのハッシュ演算の結果のバイト列とを連結し、さらに連結したバイト列に対してハッシュ演算を行い、その結果をそのレジスタに再格納する。
 第2のセキュリティモジュール123は、第1のセキュリティモジュール113と同様の構成を備えており、図2(b)に示すように、CPU101が実際に実行するソフトウェアモジュールの構成を示す構成情報を保持する構成情報累積部221と、ソフトウェアモジュールの証明書の有効性を検証する証明書検証部222と、構成情報累積部221が保持する構成情報を証明書の中の構成照合値と照合する照合部223と、ソフトウェアモジュールの有効なバージョンの下限を示すカウンタ値を保持するカウンタ部224と、データの暗復号及び署名生成や署名検証を行う暗復号部225と、を備える。また、構成情報累積部221は、第2の情報処理部で起動されたソフトウェアモジュールのハッシュ値の累積ハッシュ演算を行なう累積部226と、複数のレジスタから構成され、累積部226が算出した累積値(以下、累積演算の結果をこのように呼ぶ)を保持する構成情報保持部227と、を備えている。ここで構成情報保持部227は、TCGにおけるセキュリティモジュールであるTPMのPCR(Platform Configuration Register)に相当するものであり、構成情報保持部227に保持される値は、第2の情報処理部で起動されているモジュールの構成を示す。
構成情報保持部227は、複数のレジスタから構成され、累積部226がどのレジスタに対して累積ハッシュ演算を行うかはレジスタ番号によって指定される。
 暗復号部225は、データの暗復号処理や署名生成や署名検証を行うための複数の鍵データを保持している。また、第2の記憶部には、暗復号部225が保持している鍵データで暗号化された別の鍵データが格納されており(不図示)、その暗号化された鍵データを、第2のセキュリティモジュールにロードして、暗復号部225が保持している鍵データで復号することで、暗復号部225はその復号した鍵データを用いて暗復号処理や署名生成や署名検証を行う。
 累積部226は、構成情報保持部227の1つのレジスタが保持する値のバイト列とソフトウェアモジュールのハッシュ演算の結果のバイト列とを連結し、さらに連結したバイト列に対してハッシュ演算を行い、その結果をそのレジスタに再格納する。
 図3(a)は、第1の記憶部に格納されるモジュールと証明書の一例を示し、この場合、第1のモジュール群は、モジュール#11、モジュール#12、モジュール#13の3つのモジュールから構成され、モジュール#11、モジュール#12、モジュール#13にそれぞれ対応する証明書#11、証明書#12、証明書#13が保持されている。
 第1のセキュアブート制御部112は、証明書#11、証明書#12、証明書#13を用いて、モジュール#11、モジュール#12、モジュール#13に関して、非特許文献4及び非特許文献5に示されている方式に基づくセキュアブートを行い、モジュール#11、モジュール#12、モジュール#13の順番でモジュールを起動する。
 図3(b)は、第2の記憶部に格納されるモジュールと証明書の一例を示し、この場合、第2のモジュール群は、モジュール#21、モジュール#22、モジュール#23の3つのモジュールから構成され、モジュール#21、モジュール#22、モジュール#23にそれぞれ対応する証明書#21、証明書#22、証明書#23が保持されている。
 第2のセキュアブート制御部122は、証明書#21、証明書#22、証明書#23を用いて、モジュール#21、モジュール#22、モジュール#23に関して、非特許文献4及び非特許文献5に示されている方式に基づくセキュアブートを行い、モジュール#21、モジュール#22、モジュール#23の順番でモジュールを起動する。
 図4は、これらのソフトウェアモジュールに対応する証明書のデータ構造を示しており、証明書400は、その証明書が対応付けられたソフトウェアモジュールを識別する情報であるラベル401と、ソフトウェアモジュールのバージョンを示す参照カウンタ値402と、ソフトウェアモジュールが実行される前の端末100の状態においてセキュリティモジュールの構成情報保持部(217、227)に保持されるべき累積ハッシュ値を示す構成照合値403と、ソフトウェアモジュールのダイジェストとしてモジュールのコードイメージをハッシュ演算した場合の値を示すモジュール計測値405と、モジュール計測値405が示す値を累積ハッシュ演算する構成情報保持部(217、227)のレジスタ番号を指定するレジスタインデックス404と、証明書の署名を検証する鍵を示す検証鍵ID406と、検証鍵ID406が示す鍵に対応する秘密鍵によるラベル401から検証鍵ID406までのデータに対する電子署名407と、から構成される。
 モジュール計測値405は、正当なソフトウェアモジュールのコードイメージのハッシュ値であり、実際のソフトウェアモジュールのコードイメージのハッシュ演算の結果と照合することで、そのソフトウェアモジュールが改ざんされていないことを検証することが可能となる。
 また、セキュリティモジュールのカウンタ部は、ソフトウェアモジュールの有効なバージョンの下限を示すので、参照カウンタ値402は、セキュリティモジュールのカウンタ部に格納されるカウンタ値以上であることを検証することで、リボークされた古いモジュールの証明書ではないこと、つまり、そのモジュールが有効なソフトウェアモジュールであることを検証することが可能となる。
 また、構成照合値403は、セキュリティモジュールの構成情報保持部に格納される累積ハッシュ値と照合することで、ソフトウェアモジュールを実行する前の状態として正しい状態(その前に実行されているソフトウェアモジュールが有効なソフトウェアモジュールであり、正しい順番で実行されている)であることを検証するために用いられる。
また、電子署名507は、公開鍵暗号方式の署名鍵による電子署名であり、署名鍵は、1024ビット以上の鍵長の鍵であることが望ましい。
 図3(c)は、連携証明書記憶部に格納される連携証明書の一例を示し、この場合、第1のモジュール群のセキュアブートと第2のモジュール群のセキュアブートを繋ぐセキュアブートに用いられる1つの連携証明書が保持されている。具体的には、第1のモジュール群のモジュール#13を起動した後に、第2のモジュール群のモジュール#21を起動する際のセキュアブートに用いられる連携証明書が保持されている。
 図5は、この連携証明書のデータ構造を示しており、連携証明書500は、その証明書が対応付けられたソフトウェアモジュールを識別する情報であるラベル501と、ソフトウェアモジュールのバージョンを示す参照カウンタ値502と、ソフトウェアモジュールが実行される前の端末100の状態において、第1のセキュリティモジュール113の構成情報保持部に保持されるべき累積ハッシュ値を示す第1の構成照合値503と、第2のセキュリティモジュール123の構成情報保持部に保持されるべき累積ハッシュ値を示す第2の構成照合値504と、第2のモジュール群の先頭のモジュールのコードイメージをハッシュした場合の値を示すモジュール計測値505と、第2のモジュール群が依存する第1のモジュール群の中のモジュールを示す依存リスト507と、証明書の署名を検証する鍵を示す検証鍵ID506と、検証鍵ID506が示す鍵に対応する秘密鍵によるラベル501から検証鍵ID506までのデータに対する電子署名508と、から構成される。
 この場合、ラベル501は、第2のモジュール群のモジュール#21を識別するラベルであり、モジュール計測値505は、正当なモジュール#21のコードイメージのハッシュ値であり、実際のモジュール#21のコードイメージのハッシュ演算の結果と照合することで、モジュール#21が改ざんされていないことを検証することが可能となる。
 また、参照カウンタ値502は、セキュリティモジュールのカウンタ部に格納されるカウンタ値以上であることを検証することで、連携証明書がリボークされた古い連携証明書ではないことを検証することが可能となる。
 また、第1の構成照合値503は、第1のセキュリティモジュールの構成情報保持部に格納される累積値と照合することで、モジュール#21を実行する前の状態として正しい状態(その前に実行されているモジュール#11、#12、#13が有効なソフトウェアモジュールであり、正しい順番で実行されている)であることを検証するために用いられる。
 また、第2の構成照合値504は、第2のセキュリティモジュールの構成情報保持部に格納される累積値と照合することで、モジュール#21を実行する前の状態として正しい状態(第2のモジュール群のモジュールが起動されていない状態)であることを検証するために用いられる。
 また、依存リスト507は、図9に示すように、連携証明書更新部135が第1の構成照合値503を算出する際に行う累積ハッシュ演算の順番と、第2のモジュール群が依存するモジュールの証明書のラベルと、が示されている。図9の場合には、モジュール#21が、証明書#11(MODULE11)と、証明書#12(MODULE12)と、証明書#13(MODULE13)と、に依存し、証明書#11、証明書#12、証明書#13の順番で、それぞれのモジュール計測値を用いて累積ハッシュ演算を行うことで第1の構成照合値503が算出されることを示している。
 また、電子署名508は、公開鍵暗号方式の署名鍵による電子署名であり、署名鍵は、1024ビット以上の鍵長の鍵であることが望ましい。
 次に、図10は、第1の記憶部に図3(a)に示すモジュールと証明書が、第2の記憶部に図3(b)に示すモジュールと証明書がそれぞれ格納される場合の端末100におけるセキュアブート及びソフトウェアモジュールの更新を模式的に示している。
 端末100におけるセキュアブートでは、まず、第1のセキュアブート制御部112が証明書#11、証明書#12、証明書#13を用いてモジュール#11、モジュール#12、モジュール#13の順にセキュアブートを行い、さらに、連携証明書を用いてモジュール#13からモジュール#21へのセキュアブートを行い、次に、第2のセキュアブート制御部122が証明書#21、証明書#22、証明書#23を用いてモジュール#21、モジュール#22、モジュール#23の順にセキュアブートをおこなって、モジュール#11、モジュール#12、モジュール#13、モジュール#21、モジュール#22、モジュール#23の順での一連のセキュアブートが行われる。
 また、ソフトウェアモジュールの更新では、第1のサーバまたは第2のサーバから個別にソフトウェアモジュールと対応する証明書とが第1のダウンロード更新部114または第2のダウンロード更新部124によってダウンロードされ、第1の記憶部または第2の記憶部に格納されているソフトウェアモジュールと証明書とが更新される。その後、連携証明書更新部135が第1の記憶部または第2の記憶部に格納されている証明書を参照して連携証明書を更新する。
 次に、端末100の詳細な動作を、第1の記憶部に図3(a)に示すモジュールと証明書が、第2の記憶部に図3(b)に示すモジュールと証明書がそれぞれ格納される場合について説明する。
 まず、図6を用いて、第1のモジュール群のセキュアブートと第2のモジュール群のセキュアブートとの間に実行することで、この2つのセキュアブートを一連のセキュアブートとして繋ぐセキュアブートの動作について説明する。具体的には、第1のモジュール群のモジュール#11、モジュール#12、モジュール#13を順次起動した後に、第2のモジュール群のモジュール#21を起動する際に行うセキュアブートの動作について説明する。
 まず、第1のセキュアブート制御部112は、第1のモジュール群の非特許文献4及び非特許文献5に示されている方式に基づくセキュアブートを実行し、モジュール#11、モジュール#12、モジュール#13を順次起動した後、連携証明書記憶部131から連携証明書500を読み出し(S601)、第1のセキュリティモジュールに読み出した連携証明書500の検証を要求する検証要求を送信する(S602)。
検証要求を受信した第1のセキュリティモジュール113は、証明書検証部が受信した連携証明書を検証する(S603)。
 この連携証明書の検証では、まず、第1のセキュリティモジュールが保持する連携証明書500の検証鍵ID506が示す鍵を用いて電子署名508が検証される。
 さらに、連携証明書500の参照カウンタ値502が、カウンタ部214が保持するカウンタ値以上であることを判定し、連携証明書500がリボークされた古い連携証明書ではないことが検証される。
 次に、照合部213が、構成情報保持部217が保持する累積ハッシュ値と連携証明書500の中の第1の構成照合値503とを照合し、モジュール#21を実行する前の状態として第1の情報処理部側が正しい状態(その前に実行されているモジュール#11、#12、#13が有効なソフトウェアモジュールであり、正しい順番で実行されている)であることを検証する。
 照合部213による検証結果を受信した証明書検証部は、この検証結果を第1のセキュアブート制御部112に送信する(S604)。
 検証結果を受信した第1のセキュアブート制御部112は、何れかの検証処理でエラーが検出された場合にはセキュアブートを中止し、すべての検証処理の結果が成功であった場合に、第2の記憶部121から第2のモジュール群のモジュール#21を読み出す(S605)。
 第1のセキュアブート制御部112は、読み出したモジュール#21のコードイメージのハッシュ演算を行い、その結果と連携証明書500のモジュール計測値505とを照合することで読み出したモジュール#21が連携証明書500に対応する正当なモジュール#21であることを検証する(S606)。
 第1のセキュアブート制御部112は、このモジュール#21の検証の結果、エラーが検出された場合には、セキュアブートを中止し、検証の結果が成功であった場合に、第2のセキュリティモジュール123に第2の情報処理部側で起動されているソフトウェアモジュールの構成を示す構成情報を要求する構成情報要求を送信する(S607)。
 構成情報要求を受信した第2のセキュリティモジュール123は、暗復号部225が保持する署名鍵を用いて構成情報保持部227が保持する累積ハッシュ値に電子署名を施して構成情報を生成し(S608)、第1のセキュアブート制御部112に送信する(S609)。
 構成情報を受信した第1のセキュアブート制御部112は、まず、受信した構成情報に施されている電子署名を第2のセキュリティモジュール123の署名鍵に対応する署名検証鍵を用いて検証し、さらに、構成情報が示す累積ハッシュ値と連携証明書500の中の第2の構成照合値とを照合し、モジュール#21を実行する前の状態として第2の情報処理部側が正しい状態(第2のモジュール群のモジュールが起動されていない状態)であることを検証する(S610)。
 第1のセキュアブート制御部112は、この検証の結果、エラーが検出された場合には、セキュアブートを中止し、検証の結果が成功であった場合に、モジュール#21を起動し、CPU101がモジュール#21のコードイメージを実行する(S611)。
この後、第2のセキュアブート制御部122により第2のモジュール群のセキュアブートが開始される。
 以上のように、連携証明書を用いて、セキュアブートを行うことで、2つのセキュアブートを一連のセキュアブートとして実行することが出来る。
 次に、図7、8を用いて、連携証明書500の更新処理の動作について説明する。
 連携証明書500の更新処理は、第2のモジュール群において最初に起動されるべきモジュール#21の証明書#21が更新された場合、または、連携証明書500の依存リスト507に示されているモジュール#11、#12、#13の何れかが更新された場合に開始される。
 証明書#21が更新された場合には、ダウンロード更新部124から連携証明書更新部135に証明書#21が更新されたことが通知され、モジュール#11、#12、#13の何れかが更新された場合には、ダウンロード更新部114から連携証明書更新部135に更新されたことが通知される。
 まず、更新の通知を受信した連携証明書更新部135は、連携証明書記憶部131から連携証明書500を読み出し(S701)、第1のセキュリティモジュールに読み出した連携証明書500の検証を要求する検証要求を送信する(S702)。
 検証要求を受信した第1のセキュリティモジュール113は、証明書検証部が受信した連携証明書を検証する(S703)。
 この連携証明書の検証では、まず、連携証明書500の電子署名508が検証され、さらに、連携証明書500の参照カウンタ値502が、カウンタ部214が保持するカウンタ値以上であることを判定し、連携証明書500がリボークされた古い連携証明書ではないことが検証される。
 証明書検証部は、この検証結果を第1のセキュアブート制御部112に送信する(S704)。
 検証結果を受信した連携証明書更新部135は、検証処理でエラーが検出された場合には、エラーが検出された連携証明書をもとに連携証明書の更新処理を行うことは出来ないので更新処理を中止し、検証処理の結果が成功であった場合に、第2の記憶部121からモジュール#21に対応する証明書#21を読み出し(S705)、第2のセキュリティモジュールに読み出した証明書#21の検証を要求する検証要求を送信する(S706)。
検証要求を受信した第2のセキュリティモジュール123は、証明書検証部が受信した証明書#21を検証する(S707)。
 この証明書#21の検証では、まず、証明書#21の電子署名407が検証され、さらに、証明書#21の参照カウンタ値402が、カウンタ部224が保持するカウンタ値以上であることを判定し、証明書#21がリボークされた古い証明書ではないことが検証される。
 証明書検証部は、この検証結果を連携証明書更新部135に送信する(S708)。
 検証結果を受信した連携証明書更新部135は、検証処理でエラーが検出された場合には更新処理を中止し、検証処理の結果が成功であった場合に、第1の記憶部111から連携証明書500の依存リスト507が示す全ての証明書を読み出し(S709)、第1のセキュリティモジュールに読み出した証明書の検証を要求する検証要求を送信する(S710)。
 検証要求を受信した第1のセキュリティモジュール113は、証明書検証部が受信した証明書を検証する(S711)。
 この証明書の検証では、まず、証明書の電子署名407が検証され、さらに、証明書の参照カウンタ値402が、カウンタ部214が保持するカウンタ値以上であることを判定し、証明書がリボークされた古い証明書ではないことが検証される。
 証明書検証部は、この検証結果を連携証明書更新部135に送信する(S712)。
 検証結果を受信した連携証明書更新部135は、検証処理でエラーが検出された場合には更新処理を中止し、検証処理の結果が成功であった場合に、連携証明書500の依存リスト507をもとに新しい連携証明書の第1の構成照合値503を算出する(S713)。具体的には、依存リスト507が示す各証明書のモジュール計測値を、依存リスト507が示す順番で、各証明書のレジスタインデックスが示すレジスタに対して累積ハッシュ演算を仮想的に実行した場合の累積ハッシュ値を算出する。
 次に、連携証明書更新部135は、証明書#21の構成照合値403を新しい連携証明書の第2の構成照合値504に設定し(S714)、さらに、証明書#21のモジュール計測値405を新しい連携証明書のモジュール計測値505に設定し(S715)、第1のセキュリティモジュール113に電子署名の生成を要求する署名要求を送信する(S716)。
 署名要求を受信した第1のセキュリティモジュール113は、電子署名を生成し(S717)、生成した電子署名を連携証明書更新部135に送信する(S718)。
 連携証明書更新部135は、受信した電子署名を新しい連携証明書の電子署名508に設定し、連携証明書記憶部131に保持されている連携証明書を新しい連携証明書に更新して、更新処理を完了する(S719)。
 この後、端末100は、新しい連携証明書を用いて、第1のモジュール群と第2のモジュール群の2つのセキュアブートを一連のセキュアブートとして実行することが出来る。
以上のように、連携証明書の依存リストに基づき、証明書を参照して構成照合値を算出することで、新しい連携証明書を端末100の内部で生成することができる。
 これにより、第1のモジュール群のソフトウェアモジュールを提供する第1の提供者、及び、第2のモジュール群のソフトウェアモジュールを提供する第2の提供者は、提供するソフトウェアモジュールを新しいソフトウェアモジュールに更新する際に、更新情報を事前に通知する必要がなく、提供者間の独立性を維持した上で個別に新しいフトウェアモジュールを提供することが出来る。
 なお、上記で説明した連携証明書の更新において連携証明書更新部135が行っている処理の一部を、第1のセキュリティモジュールが行うようにしても良い。具体的には、第1の構成照合値の算出(S713)、証明書#21の構成照合値を第2の構成照合値に設定(S714)、証明書#21のモジュール計測値をモジュール計測値に設定(S715)の何れかまたはすべての処理を第1のセキュリティモジュールが行う。
 この場合、これらの処理を、耐タンパ化された第1のセキュリティモジュールが行うことで、連携証明書に不正な照合値が設定されるといった改竄行為を防止することができ、安全性が向上する。
 なお、連携証明書を格納する連携証明書記憶部131を、第1の記憶部111の中に設け、連携証明書更新部135を第1の情報処理部110の中に設けるようにしてもよい。
 この場合、連携証明書を格納するために必要な記憶領域を第1の記憶部の中に確保することで、連携証明書を格納する記憶領域を確保するための分の新たなコストアップを回避できる。
 また、連携証明書を格納する連携証明書記憶部131を、第2の記憶部121の中に設け、連携証明書更新部135を第2の情報処理部120の中に設けるようにしてもよい。
 この場合、連携証明書を格納するために必要な記憶領域を第2の記憶部の中に確保することで、連携証明書を格納する記憶領域を確保するための分の新たなコストアップを回避できる。また、この場合には、連携証明書の電子証明508は、第2のセキュリティモジュールが生成する。
 なおまた、連携処理部130に第3のセキュアブート制御部、第3のセキュリティモジュールを設けて、上記において、図6を用いて説明したセキュアブートを第1のセキュアブート制御部の代わりに第3のセキュアブート制御部を用いて行うようにしてよい。
(第2の実施形態)
 本発明の第2の実施形態は、ソフトウェアモジュールの証明書と連携証明書のデータ構造を共通化して、セキュリティモジュールにおいて証明書の検証処理と連携証明書の検証処理を共通化できるように構成したものである。
 本発明の第2の実施形態における端末100の構成は、第1の実施形態と同じであり、説明を省略する。
 図11は、本発明の第2の実施形態におけるソフトウェアモジュールに対応する証明書1100のデータ構造を示している。拡張データダイジェスト1107のフィールドが追加されている以外は、本発明の第1の実施形態のソフトウェアモジュールに対応する証明書400と同じである。
 証明書1100は、その証明書が対応付けられたソフトウェアモジュールを識別する情報であるラベル1101と、ソフトウェアモジュールのバージョンを示す参照カウンタ値1102と、ソフトウェアモジュールが実行される前の端末100の状態においてセキュリティモジュールの構成情報保持部(217、227)に保持されるべき累積ハッシュ値を示す構成照合値1103と、ソフトウェアモジュールのダイジェストとしてモジュールのコードイメージをハッシュ演算した場合の値を示すモジュール計測値1105と、モジュール計測値1105が示す値を累積ハッシュ演算する構成情報保持部(217、227)のレジスタ番号を指定するレジスタインデックス1104と、証明書の署名を検証する鍵を示す検証鍵ID1106と、拡張データダイジェスト1107と、検証鍵ID1106が示す鍵に対応する秘密鍵によるラベル1101から拡張データダイジェスト1107までのデータに対する電子署名1108と、から構成される。
 この拡張データダイジェスト1107には、証明書の拡張データのハッシュ値が設定される。この証明書に複数の拡張データを対応付ける場合には、複数の拡張データを連結したデータに対するハッシュ値が拡張データダイジェスト1107に設定される。
 本発明の第2の実施形態における連携証明書のデータ構造は、図11に示したソフトウェアモジュールに対応する証明書のデータ構造と同じであり、この拡張データダイジェスト1107に連携証明書の拡張データのハッシュ値が設定されることにより、連携証明書となる。
 図12は、本発明の第2の実施形態における連携証明書1200のデータ構造と連携証明書の拡張データを模式的に示している。
 拡張データには、拡張データの種類を示す拡張データ名が含まれ、拡張データのデータ構造は、拡張データの種類によって決まる。
 連携証明書の拡張データの場合は、連携証明書の拡張データであることを示す拡張データ名1201と、連携証明書によるセキュアブートにおいて起動されるモジュールの証明書のハッシュ値を示す証明書ダイジェスト1202と、依存リストのハッシュ値を示す依存リストダイジェスト1203から構成される。
 第1の記憶部に図3(a)に示すモジュールと証明書が、第2の記憶部に図3(b)に示すモジュールと証明書がそれぞれ格納される場合、証明書ダイジェスト1202には証明書#21のハッシュ値(Hash(証明書#21))が、依存リストダイジェスト1203には、図9に示した依存リストのハッシュ値(Hash(依存リスト))がそれぞれ設定される。
 図3(d)に示すように、本発明の第2の実施形態の場合、拡張データは連携証明書と共に連携証明書記憶部131に保持されている。
 また、連携証明書のラベル1101には、第2のモジュール群の先頭のモジュールであるモジュール#21を識別するラベルが設定される。
 参照カウンタ値1102は、第1のセキュリティモジュールのカウンタ部に格納されるカウンタ値以上の値が設定される。
 構成照合値1103には、第1のセキュリティモジュール113の構成情報保持部に保持されるべき累積ハッシュ値が設定される。
 レジスタインデックス1104には、証明書#21が示すレジスタインデックスが設定される。
 モジュール計測値1105には、証明書#21が示すモジュール計測値が設定される。
 次に、本発明の第2の実施形態の端末100の詳細な動作を、第1の記憶部に図3(a)に示すモジュールと証明書が、第2の記憶部に図3(b)に示すモジュールと証明書がそれぞれ格納される場合について説明する。
 まず、図13を用いて、本発明の第2の実施形態における連携証明書を用いたセキュアブートの動作について説明する。
 まず、第1のセキュアブート制御部112は、第1のモジュール群の非特許文献4及び非特許文献5に示されている方式に基づくセキュアブートを実行し、モジュール#11、モジュール#12、モジュール#13を順次起動した後、連携証明書記憶部131から連携証明書1200及び連携証明書拡張データを読み出し(S1301)、第1のセキュリティモジュールに読み出した連携証明書1200の検証を要求する検証要求を送信する(S1302)。
 検証要求を受信した第1のセキュリティモジュール113は、証明書検証部が受信した連携証明書を検証する(S1303)。
 この場合、証明書と連携証明書のデータ構造は同じなので、第1のセキュリティモジュール113は、証明書を検証する場合と同じ機能を用いて連携証明書を検証する。
この連携証明書の検証では、まず、第1のセキュリティモジュールが保持する連携証明書1200の検証鍵ID1106が示す鍵を用いて電子署名1108が検証される。
さらに、連携証明書1200の参照カウンタ値1102が、カウンタ部214が保持するカウンタ値以上であることを判定し、連携証明書1200がリボークされた古い連携証明書ではないことが検証される。
 次に、照合部213が、構成情報保持部217が保持する累積ハッシュ値と連携証明書1200の中の構成照合値1103とを照合し、モジュール#21を実行する前の状態として第1の情報処理部側が正しい状態(その前に実行されているモジュール#11、#12、#13が有効なソフトウェアモジュールであり、正しい順番で実行されている)であることを検証する。
 照合部213による検証結果を受信した証明書検証部は、この検証結果を第1のセキュアブート制御部112に送信する(S1304)。
検証結果を受信した第1のセキュアブート制御部112は、何れかの検証処理でエラーが検出された場合にはセキュアブートを中止し、すべての検証処理の結果が成功であった場合に、第2の記憶部121から第2のモジュール群のモジュール#21を読み出す(S1305)。
 第1のセキュアブート制御部112は、読み出したモジュール#21のコードイメージのハッシュ演算を行い、その結果と連携証明書1200のモジュール計測値1105とを照合することで読み出したモジュール#21が連携証明書1200に対応する正当なモジュール#21であることを検証する(S1306)。
 第1のセキュアブート制御部112は、このモジュール#21の検証の結果、エラーが検出された場合には、セキュアブートを中止し、検証の結果が成功であった場合に、第2の記憶部121からモジュール#21に対応する証明書#21を読み出す(S1307)。
 第1のセキュアブート制御部112は、読み出した証明書#21のハッシュ演算を行い、その結果と連携証明書拡張データの証明書ダイジェスト1201とを照合し、さらに、連携証明書拡張データのハッシュ演算を行い、その結果と連携証明書1200の拡張データダイジェスト1107と照合することで連携証明書拡張データが改竄されていないことを検証する(S1308)。
 第1のセキュアブート制御部112は、この連携証明書拡張データの検証の結果、エラーが検出された場合には、セキュアブートを中止し、検証の結果が成功であった場合に、第2のセキュリティモジュールに読み出した証明書#21の検証を要求する検証要求を送信する(S1309)。
 検証要求を受信した第2のセキュリティモジュール123は、証明書検証部が受信した証明書を検証する(S1310)。
 この証明書の検証では、まず、第2のセキュリティモジュールが保持する証明書#21の検証鍵ID1106が示す鍵を用いて電子署名1108が検証される。
 さらに、証明書#21の参照カウンタ値1102が、カウンタ部224が保持するカウンタ値以上であることを判定し、証明書#21がリボークされた古い証明書ではないことが検証される。
 次に、照合部223が、構成情報保持部227が保持する累積ハッシュ値と証明書#21の中の構成照合値1103とを照合し、モジュール#21を実行する前の状態として第2の情報処理部側が正しい状態(第2のモジュール群のモジュールが起動されていない状態)であることを検証する。
 照合部223による検証結果を受信した証明書検証部は、この検証結果を第1のセキュアブート制御部112に送信する(S1311)。
 検証結果を受信した第1のセキュアブート制御部112は、何れかの検証処理でエラーが検出された場合にはセキュアブートを中止し、すべての検証処理の結果が成功であった場合に、モジュール#21を起動し、CPU101がモジュール#21のコードイメージを実行する(S1312)。
 この後、第2のセキュアブート制御部122により第2のモジュール群のセキュアブートが開始される。
 以上のように、連携証明書を用いて、セキュアブートを行うことで、2つのセキュアブートを一連のセキュアブートとして実行することが出来る。
 次に、図14、15を用いて、連携証明書1200の更新処理の動作について説明する。
 連携証明書1200の更新処理は、第2のモジュール群において最初に起動されるべきモジュール#21の証明書#21が更新された場合、または、連携証明書1200の依存リスト507に示されているモジュール#11、#12、#13の何れかが更新された場合に開始される。
 証明書#21が更新された場合には、ダウンロード更新部124から連携証明書更新部135に証明書#21が更新されたことが通知され、モジュール#11、#12、#13の何れかが更新された場合には、ダウンロード更新部114から連携証明書更新部135に更新されたことが通知される。
 まず、更新の通知を受信した連携証明書更新部135は、連携証明書記憶部131から連携証明書1200と連携証明書拡張データを読み出し(S1401)、第1のセキュリティモジュールに読み出した連携証明書1200の検証を要求する検証要求を送信する(S1402)。
 検証要求を受信した第1のセキュリティモジュール113は、証明書検証部が受信した連携証明書を検証する(S1403)。
 この連携証明書の検証では、まず、連携証明書1200の電子署名1108が検証され、さらに、連携証明書1200の参照カウンタ値1102が、カウンタ部214が保持するカウンタ値以上であることを判定し、連携証明書1200がリボークされた古い連携証明書ではないことが検証される。
 証明書検証部は、この検証結果を第1のセキュアブート制御部112に送信する(S1404)。
 検証結果を受信した連携証明書更新部135は、検証処理でエラーが検出された場合には、エラーが検出された連携証明書をもとに連携証明書の更新処理を行うことは出来ないので更新処理を中止し、検証処理の結果が成功であった場合に、第2の記憶部121からモジュール#21に対応する証明書#21を読み出す(S1405)。
 連携証明書更新部135は、連携証明書拡張データのハッシュ演算を行い、その結果と連携証明書1200の拡張データダイジェスト1107と照合することで連携証明書拡張データが改竄されていないことを検証する(S1406)。
 連携証明書更新部135は、この連携証明書拡張データの検証の結果、エラーが検出された場合には、セキュアブートを中止し、検証の結果が成功であった場合に、第2のセキュリティモジュールに読み出した証明書#21の検証を要求する検証要求を送信する(S1407)。
 検証要求を受信した第2のセキュリティモジュール123は、証明書検証部が受信した証明書#21を検証する(S1408)。
 この証明書#21の検証では、まず、証明書#21の電子署名1108が検証され、さらに、証明書#21の参照カウンタ値1102が、カウンタ部224が保持するカウンタ値以上であることを判定し、証明書#21がリボークされた古い証明書ではないことが検証される。
 証明書検証部は、この検証結果を連携証明書更新部135に送信する(S1409)。
 検証結果を受信した連携証明書更新部135は、検証処理でエラーが検出された場合には更新処理を中止し、検証処理の結果が成功であった場合に、第1の記憶部111から連携証明書拡張データの依存リストが示す全ての証明書を読み出し(S1410)、第1のセキュリティモジュールに読み出した証明書の検証を要求する検証要求を送信する(S1411)。
 検証要求を受信した第1のセキュリティモジュール113は、証明書検証部が受信した証明書を検証する(S1412)。
 この証明書の検証では、まず、証明書の電子署名1108が検証され、さらに、証明書の参照カウンタ値1102が、カウンタ部214が保持するカウンタ値以上であることを判定し、証明書がリボークされた古い証明書ではないことが検証される。
 証明書検証部は、この検証結果を連携証明書更新部135に送信する(S1413)。
 検証結果を受信した連携証明書更新部135は、検証処理でエラーが検出された場合には更新処理を中止し、検証処理の結果が成功であった場合に、連携証明書拡張データの依存リストをもとに新しい連携証明書の構成照合値1103を算出する(S1414)。具体的には、連携証明書拡張データの依存リストが示す各証明書のモジュール計測値を、依存リストが示す順番で、各証明書のレジスタインデックスが示すレジスタに対して累積ハッシュ演算を仮想的に実行した場合の累積ハッシュ値を算出する。
 次に、連携証明書更新部135は、証明書#21のハッシュ演算を行い、連携証明書拡張データの証明書ダイジェストを更新し、さらに、連携証明書拡張データのハッシュ演算を行い連携証明書の拡張データダイジェスト1107を算出する(S1415)。
 さらに、連携証明書更新部135は、証明書#21のモジュール計測値1105を新しい連携証明書のモジュール計測値505に設定し(S1416)、第1のセキュリティモジュール113に電子署名の生成を要求する署名要求を送信する(S1417)。
 署名要求を受信した第1のセキュリティモジュール113は、電子署名を生成し(S1418)、生成した電子署名を連携証明書更新部135に送信する(S1419)。
 連携証明書更新部135は、受信した電子署名を新しい連携証明書の電子署名1108に設定し、連携証明書記憶部131に保持されている連携証明書と連携証明書拡張データをそれぞれ新しい連携証明書と連携証明書拡張データに更新して、更新処理を完了する(S1420)。
 この後、端末100は、新しい連携証明書を用いて、第1のモジュール群と第2のモジュール群の2つのセキュアブートを一連のセキュアブートとして実行することが出来る。
 以上のように、連携証明書の依存リストに基づき、証明書を参照して構成照合値を算出することで、新しい連携証明書を端末100の内部で生成することができる。
 これにより、第1のモジュール群のソフトウェアモジュールを提供する第1の提供者、及び、第2のモジュール群のソフトウェアモジュールを提供する第2の提供者は、提供するソフトウェアモジュールを新しいソフトウェアモジュールに更新する際に、更新情報を事前に通知する必要がなく、提供者間の独立性を維持した上で個別に新しいソフトウェアモジュールを提供することが出来る。
 本発明の第2の実施形態の場合、セキュリティモジュールにおける証明書の検証処理と連携証明書の検証処理を共通化できるため、メモリ等のセキュリティモジュールにおいて必要となるリソースを削減できるため、セキュリティモジュールを低コストで提供できるというメリットがある。
 なお、上記で説明した連携証明書の更新において連携証明書更新部135が行っている処理の一部を、第1のセキュリティモジュールが行うようにしても良い。具体的には、構成照合値の算出(S1413)、証明書#21の構成照合値を第2の構成照合値に設定(S1414)、拡張データダイジェストの算出(S1415)、証明書#21のモジュール計測値をモジュール計測値に設定(S1416)の何れかまたはすべての処理を第1のセキュリティモジュールが行う。
 この場合、これらの処理を、耐タンパ化された第1のセキュリティモジュールが行うことで、連携証明書に不正な照合値が設定されるといった改竄行為を防止することができ、安全性が向上する。
 なお、連携証明書を格納する連携証明書記憶部131を、第1の記憶部111の中に設け、連携証明書更新部135を第1の情報処理部110の中に設けるようにしてもよい。
 この場合、連携証明書を格納するために必要な記憶領域を第1の記憶部の中に確保することで、連携証明書を格納する記憶領域を確保するための分の新たなコストアップを回避できる。
 また、連携証明書を格納する連携証明書記憶部131を、第2の記憶部121の中に設け、連携証明書更新部135を第2の情報処理部120の中に設けるようにしてもよい。
 この場合、連携証明書を格納するために必要な記憶領域を第2の記憶部の中に確保することで、連携証明書を格納する記憶領域を確保するための分の新たなコストアップを回避できる。また、この場合には、連携証明書の電子証明508は、第2のセキュリティモジュールが生成する。
 なおまた、連携処理部130に第3のセキュアブート制御部、第3のセキュリティモジュールを設けて、上記において、図6を用いて説明したセキュアブートを第1のセキュアブート制御部の代わりに第3のセキュアブート制御部を用いて行うようにしてよい。
 (実施の形態3)
 本発明の実施の形態3では、上述してきた実施の形態1をTrusted Computing Group(TCG)で規定している仕様に基づいて実現してもよい。
 この場合、セキュリティモジュールは、TCGで規定しているTPMモジュールまたはMTMモジュールであり(以降のTPMとは、TPMあるいはMTMを意味するものとする)、構成情報保持部は、TPMが備えるPCRであり、カウンタ部は、TPMが備えるMonotonic Counterであり、累積部、証明書検証部、照合部は、TPMコマンド処理を含んだTCG機能を実現する部であり、証明書#11、#12、#13、証明書#21、#22、#23は、External RIM_Cert、もしくはInternal RIM_Certである。これによって、TCG仕様に基づいて安全にソフトウェアの更新が可能となる。
(その他変形例)
 なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
 (1)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。なお、各装置は、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどの全てを含むコンピュータシステムには限らず、これらの一部から構成されているコンピュータシステムであってもよい。
 (2)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
 また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全てを含むように1チップ化されてもよい。
 また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
 さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
 (3)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
 (4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
 また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
 また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
 また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
 また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
 (5)セキュリティモジュールは、耐タンパソフトウェアまたはソフトウェア及びハードウェアにより実施されるとしてもよい。
 (6)CPUは特別な動作モード(セキュアモードなど)を備え、CPUによって実行されるソフトウェアはその特別な動作モード(セキュアモードなど)で動作することで安全に実行されるとしてもよい。
 (7)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
 本発明は、パーソナルコンピュータや携帯電話、オーディオプレーヤ、テレビ受像機、ビデオレコーダなど、プログラムデータの更新を行う情報通信機器や家電機器に広く利用することができる。
 本発明の端末と同様の構成にすることによって、端末のソフトウェアが、複数の提供者が提供するモジュール群から構成される場合において、モジュール及び証明書を、提供者間の依存関係がない形態で各提供者から個別に提供することが可能となり、提供者間の独立性を維持した上で、モジュール群間を跨るセキュアブートを継続的に行うことが可能となる。
 100  端末
 101  CPU
 110  第1の情報処理部
 111  第1の記憶部
 112  第1のセキュアブート制御部
 113  第1のセキュリティモジュール
 114  第1のダウンロード更新部
 120  第2の情報処理部
 121  第2の記憶部
 122  第2のセキュアブート制御部
 123  第2のセキュリティモジュール
 124  第2のダウンロード更新部
 130  連携処理部
 131  連携証明書記憶部
 135  連携証明書更新部

Claims (8)

  1.  第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納する第1記憶部と、
     第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納する第2記憶部と、
     前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第1制御部と、
     前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第2制御部と、
     前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持部と、を具備し、
     前記第1制御部は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、
     前記第1制御部は、前記第1の複数のモジュールを起動した後、
     前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの先頭モジュールを起動し、
     前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動させることを特徴とする情報処理装置。
  2.  前記第2制御部によって管理され起動済みの前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値を格納する第3記憶部を有し、
     前記連携証明書は、さらに、前記第2の複数のモジュールが起動されていないことを示す第4累積照合値を含み、
     前記第1制御部は、さらに、
     第2の複数のモジュールの先頭モジュールの正当性を検証すると、
     前記第2制御部から前記第3記憶部に格納された第2の複数のモジュールの検証値を取得し、この取得した検証値と前記連携証明書に含まれる第4累積値とを比較して前記第2の複数のモジュールを起動する前に前記第2制御部が起動したモジュールがないことを検証した場合、前記第2の複数のモジュールの先頭モジュールを起動し、
     前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動することを特徴とする請求項1記載の情報処理装置。
  3.  前記保持部は、前記第1記憶部に含まれることを特徴とする請求項1記載の情報処理装置。
  4.  前記第1制御部は、前記第2の複数のモジュールの先頭モジュールが更新された場合、前記連携証明書に含まれる第3照合値を更新することを特徴とする請求項3記載の情報処理装置。
  5.  前記第2制御部は、前記第2の複数のモジュールの先頭モジュールを更新した場合、前記第1制御部にその旨を通知し、
     第1制御部は、前記通知を受信すると、前記連携証明書の前記第3照合値を前記更新された第2の複数のモジュールの先頭モジュールの第2照合値に更新することを特徴とする請求項1記載の情報処理装置。
  6.  第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納し、
     第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納し、
     前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動し、
     前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する情報処理方法であって、
     前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持し、
     前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、
     前記第1の複数のモジュールを起動した後、
     前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動することを特徴とする情報処理方法。
  7.  コンピュータに対し、
     第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを第1記憶部に格納する第1処理と、
     第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを第2記憶部に格納する第2処理と、
     前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第3処理と、
     前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第4処理と、を実行させるコンピュータプログラムであって、
     前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書を保持部に格納する第5処理を実行させ、
     前記第3処理は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、
     前記第3処理は、前記第1の複数のモジュールを起動した後、
     前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第4処理を起動して前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動することを特徴とするコンピュータプログラム。
  8.  第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納する第1記憶部と、
     第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納する第2記憶部と、
     前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第1制御部と、
     前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第2制御部と、
     前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持部と、を具備した集積回路であって、
     前記第1制御部は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、
     前記第1制御部は、前記第1の複数のモジュールを起動した後、
     前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの先頭モジュールを起動し、
     前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動させることを特徴とする集積回路。
PCT/JP2009/002293 2008-06-23 2009-05-25 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路 WO2009157133A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010517683A JP5357152B2 (ja) 2008-06-23 2009-05-25 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路
US12/991,516 US8510544B2 (en) 2008-06-23 2009-05-25 Starts up of modules of a second module group only when modules of a first group have been started up legitimately
CN2009801187370A CN102037473A (zh) 2008-06-23 2009-05-25 信息处理装置、信息处理方法、实现它们的计算机程序及集成电路
EP09769843A EP2293216A1 (en) 2008-06-23 2009-05-25 Information processing device, information processing method, and computer program and integrated circuit for the realization thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008163072 2008-06-23
JP2008-163072 2008-06-23

Publications (1)

Publication Number Publication Date
WO2009157133A1 true WO2009157133A1 (ja) 2009-12-30

Family

ID=41444206

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/002293 WO2009157133A1 (ja) 2008-06-23 2009-05-25 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路

Country Status (5)

Country Link
US (1) US8510544B2 (ja)
EP (1) EP2293216A1 (ja)
JP (1) JP5357152B2 (ja)
CN (1) CN102037473A (ja)
WO (1) WO2009157133A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011164810A (ja) * 2010-02-08 2011-08-25 Ricoh Co Ltd 複合システム、セキュリティ方法、セキュリティプログラム及び記録媒体

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2449499B1 (en) * 2009-07-01 2014-11-26 Panasonic Corporation Secure boot method and secure boot apparatus
WO2012023050A2 (en) 2010-08-20 2012-02-23 Overtis Group Limited Secure cloud computing system and method
US8812830B2 (en) 2011-08-31 2014-08-19 Microsoft Corporation Attestation protocol for securely booting a guest operating system
CN103995479B (zh) * 2014-05-13 2017-04-12 珠海博威智能电网有限公司 基于硬件可信控制的中压开关控制器系统及其使用方法
CN105245327A (zh) * 2015-08-21 2016-01-13 北京比特大陆科技有限公司 比特币工作量证明哈希计算芯片优化的方法、装置和电路
JP6719894B2 (ja) * 2015-12-04 2020-07-08 キヤノン株式会社 機能デバイス、制御装置
US10528739B2 (en) * 2016-04-20 2020-01-07 Sophos Limited Boot security
US11120137B2 (en) 2018-06-19 2021-09-14 Netgear, Inc. Secure transfer of registered network access devices
US11397815B2 (en) * 2018-09-21 2022-07-26 Hewlett Packard Enterprise Development Lp Secure data protection
KR20200119601A (ko) * 2019-04-10 2020-10-20 현대모비스 주식회사 차량의 바이너리 데이터 처리 장치 및 방법
US11366879B2 (en) * 2019-07-08 2022-06-21 Microsoft Technology Licensing, Llc Server-side audio rendering licensing
DE102019216527A1 (de) * 2019-10-28 2021-04-29 Robert Bosch Gmbh Gerät, system und verfahren zum nachweis eines integritätszustands eines geräts

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10333902A (ja) * 1997-05-27 1998-12-18 N Ii C Joho Syst:Kk 改ざん検知機能付きコンピュータシステム
US20050021968A1 (en) 2003-06-25 2005-01-27 Zimmer Vincent J. Method for performing a trusted firmware/bios update
JP2007072909A (ja) * 2005-09-08 2007-03-22 Internatl Business Mach Corp <Ibm> 秘密情報へのアクセスを制御するシステムおよびその方法
JP2007257197A (ja) * 2006-03-22 2007-10-04 Fujitsu Ltd 起動検証機能を有する情報処理装置
WO2009044533A1 (ja) * 2007-10-05 2009-04-09 Panasonic Corporation セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2755259B1 (fr) * 1996-10-25 1999-01-22 Somfy Procede de mise en correspondance d'un boitier de commande de groupe avec un boitier de commande et/ou un boitier d'action et/ou un boitier de mesure
US6223291B1 (en) * 1999-03-26 2001-04-24 Motorola, Inc. Secure wireless electronic-commerce system with digital product certificates and digital license certificates
JP2005520364A (ja) * 2001-07-09 2005-07-07 リナックスプローブ株式会社 デジタル署名された証明書を更新しかつ拡張するシステムおよび方法
JP2004013477A (ja) 2002-06-06 2004-01-15 Nec Viewtechnology Ltd ブートプログラム選択及び更新方法並びにこれを用いたフラッシュメモリ
US20050283601A1 (en) * 2004-06-22 2005-12-22 Sun Microsystems, Inc. Systems and methods for securing a computer boot
US8296561B2 (en) * 2006-07-03 2012-10-23 Panasonic Corporation Certifying device, verifying device, verifying system, computer program and integrated circuit
KR101209252B1 (ko) * 2007-02-02 2012-12-06 삼성전자주식회사 전자기기의 부팅 방법 및 부팅 인증 방법
US7958367B2 (en) * 2007-05-30 2011-06-07 Hitachi, Ltd. Authentication system and apparatus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10333902A (ja) * 1997-05-27 1998-12-18 N Ii C Joho Syst:Kk 改ざん検知機能付きコンピュータシステム
US20050021968A1 (en) 2003-06-25 2005-01-27 Zimmer Vincent J. Method for performing a trusted firmware/bios update
JP2007072909A (ja) * 2005-09-08 2007-03-22 Internatl Business Mach Corp <Ibm> 秘密情報へのアクセスを制御するシステムおよびその方法
JP2007257197A (ja) * 2006-03-22 2007-10-04 Fujitsu Ltd 起動検証機能を有する情報処理装置
WO2009044533A1 (ja) * 2007-10-05 2009-04-09 Panasonic Corporation セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011164810A (ja) * 2010-02-08 2011-08-25 Ricoh Co Ltd 複合システム、セキュリティ方法、セキュリティプログラム及び記録媒体

Also Published As

Publication number Publication date
EP2293216A1 (en) 2011-03-09
US20110066838A1 (en) 2011-03-17
JPWO2009157133A1 (ja) 2011-12-08
CN102037473A (zh) 2011-04-27
US8510544B2 (en) 2013-08-13
JP5357152B2 (ja) 2013-12-04

Similar Documents

Publication Publication Date Title
JP5357152B2 (ja) 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路
JP5385148B2 (ja) セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
US9626513B1 (en) Trusted modular firmware update using digital certificate
US8479000B2 (en) Information processing device, authentication system, authentication device, information processing method, information processing program, recording medium, and integrated circuit
KR101067615B1 (ko) 전자 장치에의 데이터 로딩
JP5178341B2 (ja) オプショナルなコンポーネントを伴うセキュアブートの方法
US9805173B2 (en) Information processing device, information storage device, server, information processing system, information processing method and medium for reproduction of encrypted content
US7496756B2 (en) Content usage-right management system and management method
CN110287654B (zh) 使用硬件信任根的媒体客户端装置鉴权
EP2449499B1 (en) Secure boot method and secure boot apparatus
US8392724B2 (en) Information terminal, security device, data protection method, and data protection program
US20100063996A1 (en) Information processing device, information recording device, information processing system, program update method, program, and integrated circuit
RU2601862C2 (ru) Способ, аппарат и устройство обработки шифрования и дешифрования
WO2009157142A1 (ja) 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路
US20100268936A1 (en) Information security device and information security system
CN104537293A (zh) 认证设备和系统
CN105706099A (zh) 软件更新装置及软件更新程序
US20100083006A1 (en) Memory controller, nonvolatile memory device, nonvolatile memory system, and access device
US20110081017A1 (en) Key migration device
JP2009003853A (ja) 複数のソフトウェアを正しい順番で起動する情報端末およびセキュリティモジュール
JP2012039390A (ja) フレキシブル認証ルールの修正

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980118737.0

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09769843

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 12991516

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2010517683

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2009769843

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE