Information processing apparatus, software updating method, and image processing apparatus

An information processing apparatus which updates a basic software package is disclosed. The information processing apparatus includes an encryption and decryption unit which stores values calculated uniquely from software and encrypts information based on the calculated values and decrypts encrypted information based on the calculated values. The basic software package includes a firmware authenticating module for authenticating a firmware updating file which includes new software for updating the basic software package, a value uniquely calculated from the new software, and a public key signature. The information processing apparatus further includes a software updating module which updates the basic software package by using the authenticated firmware updating file, and an encryption key managing module for encrypting again the information encrypted by the values based on a value changed by updating the basic software package.

BACKGROUND

1. Technical Field

This disclosure generally relates to an information processing apparatus, a software updating method in the information processing apparatus, an image processing apparatus, and a software updating method in the image processing apparatus.

2. Description of the Related Art

In an information processing apparatus such as a PC (personal computer) and an image processing apparatus such as an MFP (multifunctional peripheral) in which security of information is maintained, secret information in the apparatus must be secured. Currently, in order to maintain the security of the information in the apparatus, secret information stored in the apparatus is encrypted so as to prevent the information from being falsified or compromised.

For example, in Patent Document 1, in a PC based on a TCPA (trusted computing platform alliance) standard, information is encrypted by using a TPM (trusted platform module). By using the TPM, secret information in the information processing apparatus and the image processing apparatus can be encrypted. The TPM can be realized by, for example, a chip directly mounted on a mother board. The security of the secret information is generally maintained by management information such as a password by which a specific user is identified.

In addition, in Patent Document 2, in order to handle a bug or a security hole in a program, or to respond to an addition and/or a change of a function in an apparatus, a program is updated.[Patent Document 1] Japanese Laid-Open Patent Application No. 2004-282391[Patent Document 2] Japanese Laid-Open Patent Application No. 2005-196745

However, when only a specific user such as a manger has a password, the other users cannot handle the secret information. That is, when a user desires to start up an information processing apparatus, since the user does not have a password, the user cannot operate the apparatus.

In addition, when the information processing apparatus is started up, in order to maintain the secret information, software (system) in the apparatus must be authenticated.

In order to solve the above problems, a hash value calculated by firmware in the apparatus is registered in a PCR (platform configuration register) in the TPM, and the hash value registered in the PCR is determined to be a condition for decrypting the secret information. With this, the secret information in the information processing apparatus and the image processing apparatus is prevented from being compromised or falsified due to a user violation.

However, when the firmware is updated, it is difficult to confirm the authentication of the hash value calculated by the firmware.

In addition, when the firmware is updated, it can be considered that the hash value registered in the PCR is recalculated. However, there is a risk of an interface for instructing the recalculation becoming a reason for weakness of the apparatus.

BRIEF SUMMARY

In an aspect of this disclosure, there is provided an information processing apparatus, a software updating method in the information processing apparatus, an image processing apparatus, and a software updating method in the image processing apparatus, in which software in the apparatus can be easily updated and security of information in the apparatus can be easily maintained.

In another aspect of this disclosure, there is provided an information processing apparatus which updates software in the apparatus, including an encryption and decryption unit which stores a value uniquely calculated from the software and encrypts information by using the value and decrypts the encrypted information by using the value, an authenticating unit which authenticates a software updating file, a software updating unit which updates the software by using the authenticated software updating file, and an encryption key managing unit which controls encrypting again the information encrypted by the value by using a value which is changed based on the update of the software.

According to another aspect, there is provided an image processing apparatus which includes a plotting section and a scanning section and updates software in the apparatus. The image processing apparatus includes an encryption and decryption unit which stores a value uniquely calculated from the software and encrypts information by using the value and decrypts the encrypted information by using the value, an authenticating unit which authenticates a software updating file, a software updating unit which updates the software by using the authenticated software updating file, and an encryption key managing unit which controls encrypting again the information encrypted by the value by using a value which is changed based on the update of the software.

Accordingly, in an information processing apparatus which updates software in the apparatus, software in the apparatus can be easily updated and security of information in the apparatus can be easily maintained.

DESCRIPTION OF THE PREFERRED EMBODIMENT

Best Mode of Carrying Out the Invention

The best mode of carrying out the present invention is described with reference to the accompanying drawings.

In an embodiment of the present invention, an information processing apparatus, for example, a PC is used. However, the embodiment of the present invention can be applied to an image processing apparatus, for example, an MFP. In case of the image processing apparatus, the image processing apparatus includes a plotter and a scanner.

FIG. 1is a diagram showing a hardware structure of an information processing apparatus according to the embodiment of the present invention. As shown inFIG. 1, the information processing apparatus includes a CPU (central processing unit)1, an ASIC (application specific integrated circuit)2, a volatile memory unit3, an engine controller4, a TPM5, a non-volatile memory unit6, a network device7, and an SD memory card I/F (interface)8.

The CPU1is connected to the ASIC2and the engine controller4via a main bus9. The ASIC2is connected to the volatile memory unit3and is also connected to the TPM5, the non-volatile memory unit6, the network device7, and the SD memory card I/F8via a local bus10.

The TPM5can provide functions for encrypting secret information and decrypting encrypted secret information and for authenticating a platform (software) in the information processing apparatus.

FIG. 2is a diagram showing a software structure of the information processing apparatus according to the embodiment of the present invention. As shown inFIG. 2, the information processing apparatus includes a BIOS (basic input/output system)20, a basic software package21, a first application software package22, and a second application software package23.

The basic software package21includes a network updating module31, a flash media updating module32, a basic application software for copying machine33, a system managing module34, a system starting up module35, a system updating module36, a firmware authenticating module37, an encryption key managing module38, a TPM managing module39, and an OS (operating system)40. The OS40includes a file system41, a non-volatile memory unit driver42, and a TPM driver43.

The first application software package22includes basic application software for printer44and basic application software for network45. The second application software package23includes basic application software for scanner46.

The BIOS20is a module which works when starting up the apparatus, and can access the TPM5. The OS40is basic software in the information processing apparatus and works when a module drives some hardware in the apparatus. The file system41manages data in the apparatus. The non-volatile memory unit driver42drives the non-volatile memory unit6. The TPM diver43drives the TPM5.

When the information processing apparatus is started up, the BIOS20starts up the OS40. After starting up the OS40, the system starting up module35is started up so as to start up modules (software) in the apparatus. The system starting up module35starts up the modules in the apparatus in predetermined order.

Modules (software) of the BIOS20and the OS40are read in the volatile memory unit3and are executed by the CPU1. Operations of the information processing apparatus are described below in detail.

In the following, in order to make the description simple, the description of the second application software package23is omitted.

Next, encryption and decryption of information by using the TPM5are briefly described.FIG. 3is a schematic diagram showing operations of the TPM5when the TPM5is started up. InFIG. 3, a platform50is used. The platform50includes the BIOS20, the basic software package21, and the first application software package22.

In the platform50, first, the BIOS20calculates its own hash value and registers the hash value in a PCR51(PCR0) of the TPM5. The BIOS20calculates the hash value by using a hash function in which fixed length random numbers are generated from an original text.

Next, the BIOS20calculates a hash value of the basic software package21, registers the hash value in a PCR52(PCR1) of the TPM5, and starts up the basic software package21. Further, the basic software package21calculates a hash value of the first application software package22, registers the hash value in a PCR53(PCR2) of the TPM5, and starts up the first application software package22.

As described above, when the information processing apparatus is started up, the calculated hash values of the BIOS20, the basic software package21, and the first application software package22are registered in the corresponding PCRs51,52, and53.

FIG. 4is a schematic diagram showing encryption and decryption of information by using the TPM5. InFIG. 4, the upper part shows encryption of information “Data P” by the TPM5. The TPM5forms a BLOB (binary large object)60based on the information “Data P”, and hash values X, Y, and Z registered in the corresponding PCR0, PCR1, and PCR2.

InFIG. 4, the lower part shows decryption of BLOBs61,62, and63by the TPM5. As described above, when the information processing apparatus is started up, the three calculated hash values X, Y, and Z of the BIOS20, the basic software package21, and the first application software package22are registered in the corresponding PCR51, PCR52, and PCR53of the TPM5.

The file system41manages the BLOBs61through63which include the information “Data P”. In the BLOB61, for example, the calculated hash values X, Y, and Z have been registered in the corresponding PCR0, PCR1, and PCR2. In the BLOB62, for example, the calculated hash values X, G, and Z have been registered in the corresponding PCR0, PCR1, and PCR2. In addition, in the BLOB63, for example, the calculated hash value X has been registered in the PCR0.

The hash values registered in the PCR0through PCR2of the BLOB61are the same as the hash values registered in the PCR51through PCR53of the TPM5. Therefore, the TPM5permits extracting the information “Data P” from the BLOB61. In addition, the hash values registered in the PCR0through PCR2of the BLOB62are not the same as the hash values registered in the PCR51through PCR53of the TPM5. Therefore, the TPM5does not permit extracting the information “Data P” from the BLOB62.

In addition, the hash value registered in the PCR0of the BLOB63is the same as the hash value registered in the PCR51of the TPM5. Therefore, the TPM5permits extracting the information “Data P” from the BLOB63. In the BLOB63, hash values have not been registered in the PCR1and PCR2. However, the TPM5does not use the PCR1and PCR2for determining the permission for extracting the information “Data P”.

In the information processing apparatus of the embodiment of the present invention, the platform50further includes the file system41, and the file system41includes an encrypted BLOB70which includes a device encryption key71. Hereinafter, the BLOB70is referred to as an encryption key BLOB70. That is, the platform50further includes the encryption key BLOB70.

FIG. 5is a schematic diagram showing operations for obtaining decrypted secret information73when the information processing apparatus is started up. InFIG. 5, whether the encryption key BLOB70is decrypted is determined by the hash values registered in the PCR51through53. The device encryption key71is used to encrypt secret information in the file system41or decrypt encrypted secret information.

InFIG. 5, as described above, when the information processing apparatus is started up, the calculated hash values X, Y, and Z of the BIOS20, the basic software package21, and the first application software package22are registered in the corresponding PCRs51,52, and53of the TPM5.

In the encryption key BLOB70, the hash values X, Y, and Z have been registered in the corresponding PCR0through PCR2. The hash values registered in the PCR0through PCR2of the encryption key BLOB70are the same as the hash values registered in the PCR51through PCR53of the TPM5. Therefore, the TPM5decrypts the device encryption key71from the encryption key BLOB70. The encryption key managing module38decrypts encrypted secret information72by using the device encryption key71and obtains the decrypted secret information73.

FIG. 6is a sequence chart showing processes for obtaining the decrypted secret information73when the information processing apparatus is started up.

Referring toFIG. 6, the processes for obtaining the decrypted secret information73are described. First, the BIOS20calculates its own hash value and registers the calculated hash value in the PCR51of the TPM5(S1). Next, the BIOS20calculates a hash value of the basic software package21(S2). Then the BIOS20starts up the basic software package21(S3). The BIOS20registers the calculated hash value of the basic software package21in the PCR52of the TPM5(S4). The BIOS20starts up the OS40(S5).

The OS40starts up the system starting up module35(S6). The system starting up module35starts up the system managing module34(S7). In addition, the system starting up module35starts up the basic application software for copying machine33(S8).

The system starting up module35calculates a hash value of the first application software package22(S9), and registers the calculated hash value in the PCR53of the TPM5(S10).

The system starting up module35starts up the encryption key managing module38(S11). The encryption key managing module38decrypts the encryption key BLOB70, obtains the device encryption key71, decrypts the encrypted secret information72, and obtains the decrypted secret information73by using the obtained device encryption key71(S12).

In this, after registering the calculated hash values of the BIOS20, the basic software package21, and the first application software package22in the corresponding PCRs51,52, and53of the TPM5, the TPM5receives a request to decrypt the encryption key BLOB70. The encryption key managing module38requests the TPM5to decrypt the encryption key BLOB70at a timing when the TPM5receives the request to decrypt the encryption key BLOB70. Then the encryption key managing module38obtains the device encryption key71from the decrypted encryption key BLOB70.

FIG. 7is a flowchart showing processes for obtaining the decrypted secret information73when the information processing apparatus is started up.

InFIG. 7, first, the core part of the BIOS20is started up (S21). The core part of the BIOS20calculates its own hash value and registers the calculated hash value in the PCR51of the TPM5(S22). Then all parts of the BIOS20are started up.

Next, the BIOS20calculates a hash value of the basic software package21, and registers the calculated hash value of the basic software package21in the PCR52of the TPM5(S23). The BIOS20starts up the OS40(S24).

The OS40starts up the system starting up module35(S25). Then the system starting up module35starts up the other modules in the basic software package21(S26). The system starting up module35calculates a hash value of the first application software package22, and registers the calculated hash value in the PCR53of the TPM5(S27).

The system starting up module35starts up the first application software package22(S28). The encryption key managing module38obtains the device encryption key71from the encryption key BLOB70by using the TPM5(S29). The encryption key managing module38decrypts the encrypted secret information72and obtains the decrypted secret information73by using the device encryption key71(S30).

Next, processes to update firmware while maintaining the authentication of the hash values calculated by the firmware are described.

The firmware is software in the image processing apparatus and includes the software in the basic software package21, the first application software package22, and the second application software package23.

FIG. 8is a diagram showing a structure of a firmware updating file which is used to update firmware. As shown inFIG. 8, a firmware updating file80has fields corresponding to a header for firmware81, a firmware ROM image82, a PCR value83, a public key signature84.

The field of the header for firmware81stores information concerning the firmware updating file80. The field of the firmware ROM image82stores new firmware for updating existing firmware. The field of the PCR value83stores, for example, a field shown inFIG. 9.FIG. 9is a diagram showing an example of a structure of the field of the PCR value83.

A hash value (PCR value) calculated from the firmware ROM image82is stored in the field of the PCR value83. The PCR value can be obtained from estimation by using a pseudo TPM.

A field91of the PCR value shown inFIG. 9includes an index of PCR, and an estimation value of the PCR value when the firmware is applied to the started up information processing apparatus. InFIG. 9, the field of the PCR value in the PCR0is shown. In order to prevent information from being falsified, the field of the public key signature84stores a digital signature for the firmware ROM image82and the PCR value83calculated from a secret key.

FIG. 10is a schematic diagram showing a delivering system of the firmware updating file80. InFIG. 10, a vender manager accesses a signature managing server101having a secret key by operating a management PC100, and forms the firmware updating file80by using the secret key. The vender manger registers the firmware updating file80in a firmware managing server102by operating the management PC100.

A system manager (user) obtains the firmware updating file80from the firmware managing server102and updates firmware in an information processing apparatus103by using the obtained firmware updating file80. The firmware managing server102confirms the user by using digital authentication. When the system manager obtains the firmware updating file80from the firmware managing server102, the system manager can use the Internet.

FIG. 11is a schematic diagram showing processes to update firmware by using a first firmware updating file110. InFIG. 11, as an example, the basic software package21is updated as the firmware, and the first firmware updating file110is used. In the first firmware updating file110, the header for firmware81is omitted.

The first firmware updating file110confirms whether the public key signature84is valid by using a public key113stored in a falsification unable region of the information processing apparatus. The public key113is a key for authenticating firmware.

When the public key signature84is valid, it is determined that the first firmware updating file110is not falsified. The falsification unable region can be a memory region where the falsification is prevented.

When it is determined that the first firmware updating file110is not falsified, the basic software package21is updated to be an updated basic software package21aby the firmware ROM image82of the first firmware updating file110. When the updated basic software package21ais formed, the hash value in the PCR52of the TPM5becomes a hash value of the updated basic software package21a.

The encryption key BLOB70whose decryption is determined by the hash values registered in the PCRs51through53, and a PCR value repository BLOB111which includes a PCR value repository112, must be encrypted again based on the hash value calculated from the updated basic software package21a.

Therefore, in the information processing apparatus, first, the encryption key BLOB70is decrypted, the device encryption key71is obtained by using the TPM5, the PCR value repository BLOB111is decrypted, and the PCR value repository112is obtained by using the TPM5.

The PCR value repository112is updated to be a PCR value repository112aby a PCR value “YYY” in the PCR value83of the first firmware updating file110. The values in the PCR value repository112abecome hash values in the corresponding PCRs51through53of the TPM5.

The information processing apparatus decrypts again the device encryption key71by using the PCR values in the PCR value repository112aand obtains an encryption key BLOB70a. In addition, the information processing apparatus decrypts again the PCR value repository112aby using the PCR values in the PCR value repository112aand obtains a PCR value repository BLOB111a.

FIG. 12is a flowchart showing processes for updating firmware via a network by using the first firmware updating file110. Referring toFIG. 12, the processes for updating the firmware via the network by using the first firmware updating file110are described.

First, the network updating module31receives the first firmware updating file110(S41), and requests the system managing module34to update firmware (S42).

The system managing module34requests the firmware authenticating module37to authenticate the first firmware updating file110. The firmware authenticating module37obtains the public key113in the falsification unable region (read-only region) of the information processing apparatus. The firmware authenticating module37authenticates the first firmware updating file110by using the obtained public key113(S43).

Specifically, the firmware authenticating module37calculates a digest of the firmware ROM image82and the PCR value83of the first firmware updating file110(S43a). The firmware authenticating module37decrypts the public key signature84in the first firmware updating file110by using the public key113and collates the decrypted public key signature with the calculated digest. That is, the signature is authenticated by using the digest (43b). With this, the firmware authenticating module37authenticates the first firmware updating file110.

When the first firmware updating file110is authenticated, the system managing module34requests the system updating module36to update firmware. The system updating module36updates the firmware by using the first firmware updating file110(S44).

The system managing module34requests the encryption key managing module38to update the encryption key BLOB70and the PCR value repository BLOB111. The encryption key managing module38updates the encryption key BLOB70and the PCR value repository BLOB111by using the PCR value83of the first firmware updating file110(S45).

Specifically, the encryption key managing module38reads the encryption key BLOB70, decrypts the encryption key BLOB70by using the TPM5, and obtains the device encryption key71(S45a). In addition, the encryption key managing module38reads the PCR value repository BLOB111, decrypts the PCR value repository BLOB111by using the TPM5, and obtains the PCR value repository112(S45b).

Further, the encryption key managing module38updates the PCR value repository112to be the PCR value repository112aby using the PCR value83in the first firmware updating file110(S45c).

The encryption key managing module38encrypts again the encryption key BLOB70by using the PCR value in the PCR value repository112a, and obtains the (new) encryption key BLOB70a(45d). In addition, the encryption key managing module38encrypts again the PCR value repository112aby using the PCR value in the PCR value repository112a, and obtains the PCR repository BLOB111a(45e).

The system managing module34sends a result of the request to the network updating module31(S46). The network updating module31sends the result to a source that requests to update the firmware. In addition, when the first firmware updating file110is not authenticated in S43, the system managing module34sends a result of the request to the network updating module31(S46). That is, the network updating module31sends information that the first firmware updating file110is authenticated/not authenticated, and the firmware is updated/not updated.

FIG. 13is a sequence chart showing processes for updating firmware via a network by using the first firmware updating file110. Referring toFIG. 13, the processes for updating the firmware via the network by using the first firmware updating file110are described.

First, the network updating module31receives the first firmware updating file110which signifies a request to update firmware via a network (S51).

The network updating module31requests the system managing module34to update the firmware (S52).

The system managing module34requests the firmware authenticating module37to authenticate the first firmware updating file110(S53). The firmware authenticating module37authenticates the first firmware updating file110by the process described inFIG. 12.

When the first firmware updating file110is authenticated, the system managing module34requests the system updating module36to update firmware (S54). The system updating module36updates the firmware by using the first firmware updating file110.

The system managing module34requests the encryption key managing module38to update the encryption key BLOB70and the PCR value repository BLOB111(S55). The encryption key managing module38reads the encryption key BLOB70and the PCR value repository BLOB111from the non-volatile memory unit6(S56).

The encryption key managing module38decrypts the encryption key BLOB70and the PCR value repository BLOB111by using the TPM5. The encryption key managing module38updates the PCR value repository112to be the PCR value repository112aby using the PCR value83in the first firmware updating file110(S57).

The encryption key managing module38encrypts again the device encryption key71by using the PCR value in the PCR value repository112a, and obtains the (new) encryption key BLOB70a; the encryption key managing module38encrypts again the PCR value repository112aby using the PCR value in the PCR value repository112a, and obtains the PCR repository BLOB111a(S58).

The encryption key managing module38writes the encryption key BLOB70aand the PCR repository BLOB111ain the non-volatile memory unit6(S59).

The encryption key managing module38sends a result of the request for updating firmware to the system managing module34(S60).

The system managing module34sends the result of the request for updating firmware to the network updating module31(S61). The network updating module31sends the result to a source that requests to update the firmware (S62).

FIG. 14is a sequence chart showing processes for updating firmware by using an SD memory card. Referring toFIG. 14, the processes for updating the firmware by using the SD memory card are described.

First, the system starting up module35starts up an SD memory card updating module32a(S71). The SD memory card updating module32ais one type of the flash media updating module32. The SD memory card updating module32aextracts the first firmware updating file110from an SD memory card (S72).

The system starting up module35requests the SD memory card updating module32ato update firmware (S73). The SD memory card updating module32arequests the system managing module34to update the firmware (S74).

The system managing module34displays an updating screen on, for example, a display (S75). On the updating screen, the progress of the update of the firmware is displayed.

The system managing module34requests the firmware authenticating module37to authenticate the first firmware updating file110(S76). The firmware authenticating module37authenticates the first firmware updating file110by the process described inFIG. 12.

When the first firmware updating file110is authenticated, the system managing module34requests the system updating module36to update firmware (S77). The system updating module36updates the firmware by using the first firmware updating file110.

The system managing module34requests the encryption key managing module38to update the encryption key BLOB70and the PCR value repository BLOB111(S78). The encryption key managing module38reads the encryption key BLOB70and the PCR value repository BLOB111from the non-volatile memory unit6(S79).

The encryption key managing module38decrypts the encryption key BLOB70and the PCR value repository BLOB111by using the TPM5. The encryption key managing module38updates the PCR value repository112to be the PCR value repository112aby using the PCR value in the first firmware updating file110(S80).

The encryption key managing module38encrypts again the device encryption key71by using the PCR value in the PCR value repository112a, and obtains the (new) encryption key BLOB70a; the encryption key managing module38encrypts again the PCR value repository112aby using the PCR value in the PCR value repository112a, and obtains the PCR repository BLOB111a(S81).

The encryption key managing module38writes the encryption key BLOB70aand the PCR repository BLOB111ain the non-volatile memory unit6(S82).

The encryption key managing module38sends a result of the request for updating firmware to the system managing module34(S83). The system managing module34displays an updated result screen on, for example, a display (S84).

The system managing module34sends the result of the request for updating firmware to the SD memory card updating module32a(S85). The SD memory card updating module32asends the result to the system starting up module35(S86).

FIG. 15is a diagram showing a first disposition example of data and programs in the information processing apparatus according to the embodiment of the present invention. As shown inFIG. 15, the BIOS20, the basic software package21, and the first application software package22are stored in a program storing device150. The program storing device150can be the volatile memory unit3. The encryption key BLOB70and the PCR value repository BLOB111are stored in a data storing device151. The data storing device151can be the non-volatile memory unit6. The PCRs51through53and a seal key155are stored in the TPM5.

The public key113for authenticating firmware is stored in a read-only region of the information processing apparatus. The read-only region can be a read-only non-volatile region of the TPM5.

A seal key155is used when a BLOB is formed. The seal key155can be a common key or an asymmetric key. In the seal keys, one key cannot be output from the TPM5, and another key can be output from the TPM5by being encrypted by another secret key.

FIG. 16is a schematic diagram showing processes to update firmware by using a second firmware updating file161. InFIG. 16, similar toFIG. 11, as an example, the basic software package21is updated. In the second firmware updating file161, the header for firmware81is omitted.

As shown inFIG. 16, the second firmware updating file161includes the field of the firmware ROM image82and the field of the public key signature84, but does not include the field of the PCR value83. That is, the second firmware updating file161is different from the first firmware updating file110shown inFIG. 11.

The field of the firmware ROM image82stores new firmware for updating existing firmware, and the field of the public key signature84stores a digital signature of the firmware ROM image82calculated by a secret key so as to prevent falsification of the second firmware updating file161.

The second firmware updating file161confirms whether the public key signature84is valid by using the public key113stored in the falsification unable region of the information processing apparatus. When the public key signature84is valid, it is determined that the second firmware updating file161has not been falsified.

When it is determined that the second firmware updating file161has not been falsified, the basic software package21is updated to be the updated basic software package21aby the firmware ROM image82of the second firmware updating file161. When the updated basic software package21ais formed, the hash value in the PCR52of the TPM5becomes a hash value of the updated basic software package21a.

Therefore, the encryption key BLOB70and the PCR value repository BLOB111, which are controlled whether to be decrypted by the hash values in the PCRs51and52, must be encrypted again based on a hash value calculated by the updated basic software package21a.

InFIG. 16, the PCR value repository BLOB111, the PCR value repository112, the PCR value repository112a, and the PCR value repository BLOB111aare omitted; however, those are actually provided.

Therefore, in the information processing apparatus, the device encryption key71in the encryption key BLOB70and the PCR value repository112in the PCR value repository BLOB111are decrypted by using the TPM5.

The information processing apparatus encrypts again the device encryption key71by using the PCR values calculated from the basic software package21aand obtains the encryption key BLOB70a. In addition, the information processing apparatus encrypts again the PCR value repository112aby using the PCR values in the PCR value repository112aand obtains a PCR value repository BLOB111a.

In the processes shown inFIG. 16, when the firmware (the basic software package21) is updated, since an estimation value of the PCR value can be directly calculated from the firmware, the second firmware updating file161does not include the PCR value. In addition, since the estimation value of the PCR value can be calculated in the information processing apparatus, the PCR value can be easily controlled.

FIG. 17is a flowchart showing processes for updating firmware via a network by using the second firmware updating file161. Referring toFIG. 17the processes for updating the firmware via the network by using the second firmware updating file161are described.

First, the network updating module31receives the second firmware updating file161(S91), and requests the system managing module34to update firmware (S92).

The system managing module34requests the firmware authenticating module37to authenticate the second firmware updating file161. The firmware authenticating module37obtains the public key113in the falsification unable region (read-only region) of the information processing apparatus. The firmware authenticating module37authenticates the second firmware updating file161by using the obtained public key113(S93).

Specifically, the firmware authenticating module37calculates a digest of the firmware ROM image82in the second firmware updating file161(S93a).

The firmware authenticating module37decrypts the public key signature84in the second firmware updating file161by using the public key113and collates the decrypted public key signature with the calculated digest. With this, the firmware authenticating module37authenticates the second firmware updating file161(S93b).

When the second firmware updating file161is authenticated, the system managing module34requests the system updating module36to update firmware. The system updating module36updates the firmware by using the second firmware updating file161(S94).

The system managing module34requests the encryption key managing module38to update the encryption key BLOB70and the PCR value repository BLOB111. The encryption key managing module38updates the encryption key BLOB70and the PCR value repository BLOB111by using the PCR value calculated from the firmware ROM image82in the second firmware updating file161(S95).

Specifically, the encryption key managing module38makes the firmware authenticating module37calculate the digest of the firmware ROM image82in the second firmware updating file161(95a). In addition, the encryption key managing module38makes the firmware authenticating module37calculate an estimation value of the PCR value base on the digest of the firmware ROM image82in the second firmware updating file161(95b).

The encryption key managing module38reads the encryption key BLOB70and decrypts the device encryption key71by using the TPM5(S95c). In addition, the encryption key managing module38reads the PCR value repository BLOB111and decrypts the PCR value repository112by using the TPM5(S95d).

The encryption key managing module38encrypts again the device encryption key71by using the PCR value in the PCR value repository112a, and obtains the (new) encryption key BLOB70a(95f). In addition, the encryption key managing module38encrypts again the PCR value repository112aby using the PCR value in the PCR value repository112a, and obtains the PCR repository BLOB111a(95g).

The system managing module34sends a result of the request to the network updating module31(S96). The network updating module31sends the result to a source that requests to update the firmware. In addition, when the second firmware updating file161is not authenticated in S93, the system managing module34sends a result of the request to the network updating module31(S96). The network updating module31sends a result of the request to the request source. That is, the network updating module31sends, for example, information that the second firmware updating file161is authenticated/not authenticated, and the firmware is updated/not updated.

FIG. 18is a sequence chart showing processes for updating firmware via a network by using the second firmware updating file161. Referring toFIG. 18, the processes for updating the firmware via the network by using the second firmware updating file161are described.

First, the network updating module31receives the second firmware updating file161which signifies a request to update firmware via a network.

The network updating module31requests the system managing module34to update the firmware (S101). The system managing module34requests the firmware authenticating module37to authenticate the second firmware updating file161(S102). The firmware authenticating module37authenticates the second firmware updating file161by the process described inFIG. 12.

When the second firmware updating file161is authenticated, the system managing module34requests the system updating module36to update firmware (S103). The system updating module36updates the firmware by using the second firmware updating file161.

The system managing module34makes the firmware authenticating module37calculate an estimation value of the PCR value based on the digest of the firmware ROM image (S104).

The system managing module34requests the encryption key managing module38to update the encryption key BLOB70and the PCR value repository BLOB111(S105). The encryption key managing module38reads the encryption key BLOB70and the PCR value repository BLOB111from the non-volatile memory unit6(S106).

The encryption key managing module38decrypts the device encryption key71and the PCR value repository112by using the TPM5. The encryption key managing module38updates the PCR value repository112to the PCR value repository112aby using the estimation value of the PCR value based on the calculated digest of the firmware ROM image (S107).

The encryption key managing module38encrypts again the device encryption key71by using the PCR value in the PCR value repository112a, and obtains the (new) encryption key BLOB70a; the encryption key managing module38encrypts again the PCR value repository112aby using the PCR value in the PCR value repository112a, and obtains the PCR repository BLOB111a(S108).

The encryption key managing module38writes the encryption key BLOB70aand the PCR repository BLOB111ain the non-volatile memory unit6(S109).

The encryption key managing module38sends a result of the request for updating firmware to the system managing module34(S110).

The system managing module34sends the result of the request for updating firmware to the network updating module31(S111). The network updating module31sends the result to a source that requests to update the firmware (S112).

FIG. 19is a schematic diagram showing a static authentication chain.FIG. 20is a diagram showing a second disposition example of data and programs in the information processing apparatus according to the embodiment of the present invention.

In the static authentication chain, the first firmware updating file110is authenticated by using the public key signature84in the first firmware updating file110.

In the static authentication chain, the first application software package22can be executed while maintaining the authentication of the hash value calculated from the firmware even if hash values of firmware other than the basic software package21are not registered. Since it is not necessary to wait for registration of hash values of the first application software package22, the information processing apparatus can be operated at high speed.

In this case, the first application software package22and the first firmware updating file110including the public key signature84are stored in the file system41(refer toFIG. 1). When the information processing apparatus is started up, the system starting up module35reads the public key113for authenticating firmware stored in the falsification unable region, first application software22is authenticated by using the public key113, and the faultlessness of the first application software22is confirmed.

FIG. 21is a schematic diagram showing a dynamic authentication chain.FIG. 22is a diagram showing a third disposition example of data and programs in the information processing apparatus according to the embodiment of the present invention.

In the dynamic authentication chain, the public key113stored in the falsification unable region is assumed to be a part of the firmware, and the public key113is updated by using the firmware updating structure described above.

InFIG. 21, the public key113is assumed to be single firmware; when the information processing apparatus is started up, a hash value of the public key113is registered in the PCR53of the TPM5. When the dynamic authentication chain is used, the first application software package22can be authenticated by using the public key113in the file system41.

The TPM5is a module which controls data access based on faultlessness. Specifically, the TPM5is a hardware module or a software module which controls the data access by using metrics concerning the faultlessness of firmware.

For example, the TPM5realizes the faultlessness metrics by a PCR value calculated from a hash value. In addition, the TPM5realizes data access control by determining whether the encryption key BLOB70controlled by the PCR value is decrypted.

In the description, the TPM5is an encryption and decryption unit, the firmware authenticating module37is an authenticating unit, the system updating module36is a software updating unit, and the encryption key managing module38is an encryption key managing unit.

Further, the present invention is not limited to the specifically disclosed embodiment, and variations and modifications may be made without departing from the scope of the present invention.

The present invention is based on Japanese Priority Patent Application No. 2007-067251, filed on Mar. 15, 2007, with the Japanese Patent Office, the entire contents of which are hereby incorporated herein by reference.