WO2010021269A1 - 記憶装置、情報処理装置およびプログラム - Google Patents

記憶装置、情報処理装置およびプログラム Download PDF

Info

Publication number
WO2010021269A1
WO2010021269A1 PCT/JP2009/064162 JP2009064162W WO2010021269A1 WO 2010021269 A1 WO2010021269 A1 WO 2010021269A1 JP 2009064162 W JP2009064162 W JP 2009064162W WO 2010021269 A1 WO2010021269 A1 WO 2010021269A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage unit
unit
writing
target data
write target
Prior art date
Application number
PCT/JP2009/064162
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 JP2010525668A priority Critical patent/JP5466645B2/ja
Priority to EP09808205A priority patent/EP2339499A4/en
Publication of WO2010021269A1 publication Critical patent/WO2010021269A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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

Definitions

  • the present invention relates to a storage device, an information processing device, and a program that store data to be verified as to whether or not tampering has occurred.
  • Trusted computing calculates a hash value of a program code when the computer is activated, and records the calculated hash value in a tamper-resistant security chip called TPM (Trusted Platform Module).
  • TPM Trusted Platform Module
  • TCG Trusted Computing Group
  • the calculation time of the hash value is an overhead at the time of booting.
  • an embedded device such as a mobile phone having a relatively low access speed to the storage area and a relatively low calculation capacity of the built-in CPU, there is a problem that the startup time becomes long due to this overhead. .
  • an object of the present invention is to provide a storage device, an information processing device, and a program that can solve the above-described problems. This object is achieved by a combination of features described in the independent claims.
  • the dependent claims define further advantageous specific examples of the present invention.
  • An externally readable / writable storage unit an integrity information storage unit that stores integrity information used for verification of whether or not the data stored in the storage unit has been tampered with,
  • a write unit that receives a write command and write target data from the outside, writes the write target data to the storage unit, and calculates integrity information of the write target data to the integrity information storage unit
  • a storage device including a calculation unit to be written and a protection unit that prohibits overwriting of the write target data written in the storage unit, an information processing device including the storage device, and an information processing device as the storage device Provide a functioning program.
  • 1 shows a configuration of an information processing apparatus 10 according to an embodiment of the present invention.
  • An example of the flow of a process at the time of starting of the information processing apparatus 10 which concerns on embodiment of this invention is shown.
  • 1 shows a configuration of a storage device 20 according to an embodiment of the present invention.
  • the transition of the state of the protection area of the storage unit 30 is shown.
  • storage device 20 at the time of writing of the program for writing is shown.
  • the processing flow of the storage device 20 at the time of verification is shown.
  • the structure of the security module 18 which concerns on the 1st modification concerning embodiment of this invention is shown.
  • the structure of the information processing apparatus 10 which concerns on the 2nd modification concerning embodiment of this invention is shown.
  • the structure of the information processing apparatus 10 which concerns on the 3rd modification of embodiment of this invention is shown.
  • 2 shows an exemplary hardware configuration of a computer 1900 according to an embodiment of the present invention.
  • FIG. 1 shows a configuration of an information processing apparatus 10 according to the present embodiment.
  • the information processing apparatus 10 includes a CPU 12, a RAM 14, a security module 18, a storage device 20, and an I / O unit 22.
  • the CPU 12 executes a program and performs arithmetic processing and the like.
  • the RAM 14 stores a program being executed by the CPU 12, data used for the execution of the CPU 12, and the like.
  • the security module 18 stores integrity information used for verifying whether the program executed by the CPU 12 has been tampered with.
  • the security module 18 stores a value obtained by accumulating the hash value of each program executed by the CPU 12 in a register called a PCR (Platform Configuration Register) in which access from the outside is physically restricted.
  • the security module 18 may have functions such as public key cryptographic computation, cryptographic key generation, hash value calculation, and random number generation.
  • the storage device 20 stores various data such as code data, sound data, and image data of one or more programs executed by the CPU 12.
  • the storage device 20 may be a non-volatile memory such as a flash memory.
  • the storage device 20 stores a boot program that is executed when the information processing apparatus 10 is started in an area where external writing is prohibited. Furthermore, the storage device 20 stores the integrity information of each of the one or more programs stored in the storage device 20 in association with each program. In the present embodiment, the storage device 20 stores a hash value of a corresponding program as integrity information of each of one or more programs.
  • the storage device 20 calculates a hash value of the program in parallel with the writing process of the program. Then, when the writing of the program is completed, the storage device 20 prohibits overwriting on the written program until a predetermined command is given. Further, the storage device 20 stores the hash value of the program in an area where external writing is prohibited. Details of the configuration of the storage device 20 will be described later.
  • the I / O unit 22 controls data input / output with an external device of the information processing apparatus 10.
  • the boot program may be stored in a ROM that is separate from the storage device 20 and is prohibited from external writing.
  • FIG. 2 shows an example of the flow of processing when the information processing apparatus 10 according to this embodiment is started.
  • the information processing apparatus 10 is processed as follows at startup.
  • the CPU 12 When the power is turned on, the CPU 12 first calls and executes a boot program from the storage device 20. Subsequently, the CPU 12 calls the first program specified by the boot program being executed from the storage device 20 and executes it. Subsequently, the CPU 12 calls the second program specified by the first program being executed from the storage device 20 and executes it. Thereafter, the CPU 12 repeatedly calls and executes a separate program designated by the program being executed. Then, the CPU 12 calls and executes an operation system (or an application program started on the operation system) from the storage device 20.
  • an operation system or an application program started on the operation system
  • the CPU 12 reads out the hash value of the program from the storage device 20 and gives it to the security module 18 prior to the execution of each program stored in the storage device 20.
  • the security module 18 updates the PCR value based on the given hash value. More specifically, the security module 18 adds a given hash value and a value read from the PCR, and executes a process of overwriting the PCR with a value obtained by performing a hash operation on the added value.
  • the initial value of PCR immediately after power-on is a predetermined value (for example, all bits are 0, all bits are 1, etc.).
  • the storage device 20 prohibits physical alteration from the outside to the area where the boot program is recorded, thereby preventing the boot program from being tampered with.
  • the accumulated hash value stored in the PCR is always a predetermined value when all the programs executed in stages at the time of startup are not falsified and are all complete. However, if any program has been tampered with, the corresponding hash value of the storage device 20 is changed in the process of tampering. As a result, the hash value stored in the PCR by the above activation method is different from the value expected in advance. Therefore, according to such an information processing apparatus 10, whether or not the program being executed has been tampered with by, for example, signing the accumulated hash value stored in the PCR and transmitting it to the verifier is determined. The verifier can be detected.
  • Such an information processing apparatus 10 calculates a hash value of the program at the time of writing the program to the storage device 20, and writes the hash value of the program in an area that cannot be written from the outside.
  • the information processing apparatus 10 reads the hash value of each program from the storage device 20 and gives it to the security module 18 prior to execution of each program at the time of activation.
  • it is not necessary to perform an operation for calculating the hash value of each program at the time of starting, so the overhead for calculating the hash value is eliminated and the starting time is shortened. Can do.
  • FIG. 3 shows a configuration of the storage device 20 according to the present embodiment.
  • the storage device 20 includes a storage unit 30, an integrity information storage unit 32, a table storage unit 34, a hash engine 36, and a controller 40.
  • the storage unit 30 is readable / writable from the outside of the storage device 20 and stores various data.
  • the storage unit 30 includes a protection area. In the protection area, one or a plurality of write target programs to be tampered with are stored, and can be set in an overwrite-inhibited state.
  • the integrity information storage unit 32 stores the hash values of one or more write target programs stored in the protection area of the storage unit 30 in association with the write target program. The integrity information storage unit 32 is prohibited from writing from the outside of the storage device 20.
  • the table storage unit 34 stores a management table.
  • the management table stores area information that designates a protection area in the storage unit 30. Furthermore, the management table stores write failure information indicating whether or not writing of the write target program to the storage unit 30 has failed, and state information indicating the state of the protection area in the storage unit 30.
  • the table storage unit 34 may have a configuration in which writing from the outside of the storage device 20 is prohibited.
  • each of the storage unit 30, the integrity information storage unit 32, and the table storage unit 34 may be provided in different areas in the same nonvolatile device. Instead, the storage unit 30, the integrity information storage unit 32, and the table storage unit 34 may be provided in different and different non-volatile devices.
  • the hash engine 36 is given the write target program from the controller 40 when the write target program is written to the storage unit 30. Then, the hash engine 36 calculates a hash value of the given program to be written and sends it back to the controller 40.
  • the hash engine 36 may be hardware separate from the controller 40 or may be a functional block realized by the controller 40.
  • the controller 40 controls the entire storage device 20.
  • the controller 40 includes a reading unit 42, a writing unit 44, a protection unit 46, a calculation unit 48, a comparison unit 50, and a state management unit 52 as functional blocks.
  • the reading unit 42 receives a read command from the outside of the storage device 20, reads various data (program, audio data, image data, etc.) stored in the storage unit 30, and outputs the data to the outside. Further, prior to the CPU 12 calling the program to be written from the protected area of the storage unit 30, the reading unit 42 reads the corresponding hash value of the program to be written from the integrity information storage unit 32 and sends it to the CPU 12. Send. Thus, the CPU 12 can give the hash value of the write target program to the security module 18 prior to execution of the write target program.
  • the writing unit 44 receives a write command and various data from the outside of the storage device 20 and writes various data to the storage unit 30.
  • the writing unit 44 writes the write target program in the protection area of the storage unit 30.
  • the protection unit 46 prohibits overwriting of the program to be written written in the storage unit 30 on condition that the writing of the program to be written to the protection area of the storage unit 30 by the writing unit 44 has been normally completed. In addition, the protection unit 46 receives a write from the outside to an area where the write target program in the storage unit 30 should have been written on condition that writing of the write target program to the storage unit 30 by the writing unit 44 has failed. Allow writing. Further, the protection unit 46 may permit overwriting of the program to be written written in the storage unit 30 on condition that a setup command for canceling the overwrite prohibition state is given from the outside of the storage device 20.
  • the calculation unit 48 uses the hash engine 36 to calculate the hash value of the write target program. Then, the calculation unit 48 writes the calculated hash value in the integrity information storage unit 32 in association with the write target program written in the storage unit 30. In addition, when the calculation unit 48 receives a verification command from the outside in a state where overwriting of the write target program written in the storage unit 30 is prohibited, the calculation unit 48 reads the write target program stored in the storage unit 30. Then, the hash value of the program to be written read using the hash engine 36 is newly calculated.
  • the comparison unit 50 compares whether or not the hash value stored in the integrity information storage unit 32 matches the hash value newly calculated in response to receiving the verification command. Furthermore, the comparison unit 50 receives the expected value of the hash value of the program to be written given from the outside together with the write command, and determines whether or not the hash value calculated by the calculation unit 48 matches the expected value. You may compare.
  • the state management unit 52 refers to the state information stored in the management table stored in the table storage unit 34 and manages the state of the protection area of the storage unit 30.
  • Such a storage device 20 can calculate the hash value of the write target program and store it in the integrity information storage unit 32 when the write target program is written in the storage unit 30 by the CPU 12. Then, when the writing target program is read by the CPU 12, the storage device 20 reads the hash value of the writing target program stored in the integrity information storage unit 32. Thereby, according to the information processing apparatus 10, since the hash value of each program can be output at the time of starting, the overhead for calculating the hash value recorded in the security module 18 is eliminated, and the starting time is shortened. can do.
  • the storage device 20 replaces the integrity information of the writing target data (for example, music data and image data) other than the program stored in the storage device 20 with each writing target data instead of the program. You may make it correspond and memorize
  • the storage device 20 calculates the integrity information and stores it in the integrity information storage unit 32 when writing the write target data.
  • the storage device 20 can also be used to protect the integrity of any data format, such as an image of the entire file system.
  • FIG. 4 shows the state transition of the protection area of the storage unit 30.
  • the state management unit 52 manages the protection area of the storage unit 30 in any one of a normal operation state, a write state, a protection state, and a verification state.
  • the normal operation state indicates a state in which writing from the outside of the storage device 20 to the protection area of the storage unit 30 is permitted.
  • the protection unit 46 can write the data given together with the write command to the protection area of the storage unit 30.
  • the protection state indicates a state in which writing from the outside of the storage device 20 to the protection area of the storage unit 30 is permitted.
  • the protection unit 46 prohibits writing of the given data to the protection area of the storage unit 30.
  • the writing state indicates a state in which a writing target program given from the outside of the storage device 20 is being written to the protection area of the storage unit 30.
  • the verification state indicates a state in which the write target program written in the protection area of the storage unit 30 is being verified.
  • the state management unit 52 changes the state of the protection area of the storage unit 30 as follows. First, at the time of factory shipment, the state management unit 52 sets the protection area of the storage unit 30 to the normal operation state.
  • the state management unit 52 When receiving the setup command in the normal operation state or the protection state, the state management unit 52 changes the protection area of the storage unit 30 to the write state. When a write command is given in the write state, state management unit 52 writes the program to be written given together with the write command in the protection area of storage unit 30. Further, when a separate setup command is received in the protection state, the state management unit 52 may transition the protection area of the storage unit 30 to the normal operation state.
  • the state management unit 52 changes the protection area of the storage unit 30 to the protection state.
  • the state management unit 52 changes the protection area of the storage unit 30 to the normal operation state.
  • the state management unit 52 when receiving the verification command in the protection state, changes the protection area of the storage unit 30 to the verification state.
  • the state management unit 52 changes the protection area of the storage unit 30 to the protection state. If the verification is an error, the state management unit 52 transitions the protection area of the storage unit 30 to the normal operation state.
  • FIG. 5 shows a processing flow of the storage device 20 when writing the program to be written.
  • the storage device 20 can receive a setup command from the outside of the storage device 20 in the normal operation state or the protection state (S101).
  • the setup command may include information specifying the position of the protection area.
  • the writing unit 44 Upon receiving the setup command, the writing unit 44 rewrites the state information stored in the management table from a value representing the normal operation state or the protection state to a value representing the writing state. Thereby, the state management part 52 can make the protection area of the memory
  • the writing unit 44 receives a write command and a write target program from the outside of the storage device 20 (S103). Subsequently, the writing unit 44 confirms the consistency of the command, such as whether or not the writing range indicated in the writing command designates the inside of the protection area, and sends an acknowledge (ACK) to the writing command. Is sent back to the sender (S104).
  • ACK acknowledge
  • the writing unit 44 writes the received write target program in the protection area of the storage unit 30 (S105). Further, the calculation unit 48 calculates the hash value of the writing target program in parallel with the writing of the writing target program by the writing unit 44 (S105).
  • the calculation unit 48 determines whether or not the writing unit 44 has successfully written the write target program (S106). For example, the calculation unit 48 may determine that the writing has been successful when the writing unit 44 has written the write target program from the beginning to the end of the program to be written into the protected area of the storage unit 30.
  • the calculation unit 48 writes the calculated hash value in the integrity information storage unit 32 in association with the write target program (S107). Then, the writing unit 44 rewrites the state information stored in the management table from a value representing the written state to a value representing the protected state. Thereby, the state management part 52 can make the protection area of the memory
  • the calculation unit 48 replaces the hash value to be written in association with the writing target program, for example, a specified value (for example, all bits are 0 or All bits are 1 etc.) are written into the integrity information storage unit 32 (S109). Then, the writing unit 44 may rewrite the writing failure information stored in the management table to a value indicating that the writing has failed. Further, writing unit 44 rewrites the state information stored in the management table from a value representing the writing state to a value representing the normal operation state. Thereby, the state management part 52 can make the protection area of the memory
  • the protection unit 46 applies the write target program written to the storage unit 30 on condition that the writing unit 44 has successfully written the write target program to the protection area of the storage unit 30. Overwriting can be prohibited.
  • the protection unit 46 receives a write from the outside to an area where the write target program in the storage unit 30 should have been written on condition that writing of the write target program to the storage unit 30 by the writing unit 44 has failed. Writing can be allowed.
  • the comparison unit 50 may receive the expected value of the hash value of the write target program together with the write command and the write target program.
  • the comparison unit 50 compares whether or not the hash value calculated by the calculation unit 48 in step S105 matches the received expected value. Then, for example, the calculation unit 48 determines that the writing has succeeded on the condition that the comparison result obtained when the comparison unit 50 matches, and obtains the comparison result that the comparison unit 50 does not match. As a condition, it may be determined that the writing has failed.
  • FIG. 6 shows a processing flow of the storage device 20 at the time of verification.
  • the storage device 20 can receive a verification command from the outside of the storage device 20 (S201).
  • the verification command may include information for specifying a write target program to be verified.
  • the writing unit 44 Upon receipt of the verification command, the writing unit 44 rewrites the state information stored in the management table from a value representing the protection state to a value representing the verification state. Thereby, the state management part 52 can make the protection area of the memory
  • the calculation unit 48 reads the write target program designated by the verification command from the protection area of the storage unit 30 and calculates the hash value of the write target program (S203).
  • the comparison unit 50 includes the hash value of the write target program stored in the integrity information storage unit 32, the hash value newly calculated in response to receiving the verification command, Are compared (S204). Subsequently, the comparison unit 50 notifies the comparison result to the source of the verification command (S205).
  • the protection unit 46 determines whether the program to be written stored in the protection area of the storage unit 30 is normal or not (error) (S206). More specifically, the protection unit 46 determines that it is normal on the condition that the comparison unit 50 has obtained a comparison result that matches, and it is an error on the condition that the comparison result that it does not match is obtained. Judge.
  • the protection unit 46 rewrites the state information stored in the management table from a value representing the verification state to a value representing the protection state. Thereby, the state management part 52 can make the protection area of the memory
  • the protection unit 46 replaces the hash value written in association with the program to be written with a specified value (for example, all bits are 0 or all bits). Is written into the integrity information storage unit 32 (S208). Subsequently, the protection unit 46 rewrites the state information stored in the management table from a value representing the verification state to a value representing the normal operation state. Thereby, the state management part 52 can make the protection area
  • a specified value for example, all bits are 0 or all bits.
  • the storage device 20 can detect whether or not the write target program stored in the storage unit 30 has been tampered with.
  • the storage device 20 may be configured such that, for example, a verification command is periodically received from the CPU 12 and the program to be written stored in the storage unit 30 is verified.
  • the protection unit 46 replaces the hash value written in association with the write target program with a hash value newly calculated in response to receiving the verification command.
  • the integrity information storage unit 32 may be written.
  • the protection unit 46 may rewrite the state information stored in the management table from a value representing the verification state to a value representing the protection state.
  • the storage device 20 sets a value different from the hash value of the normal write target program to the integrity information storage unit. 32, the verifier can detect tampering.
  • FIG. 7 shows a configuration of the security module 18 according to the first modification example of the present embodiment.
  • the security module 18 according to this modification includes a storage unit 30, a table storage unit 34, a hash engine 36, a controller 40, an integrity information storage unit 70, and a security processing unit 72. Since each of the storage unit 30, the table storage unit 34, the hash engine 36, and the controller 40 has substantially the same configuration and function as the members with the same reference numerals shown in FIG.
  • the integrity information storage unit 70 is a nonvolatile storage unit, and functions of the PCR in the security module 18 shown in FIG. 1 and the functions of the integrity information storage unit 32 in the storage device 20 shown in FIG. And integrated functions.
  • the security processing unit 72 has functions other than PCR in the security module 18 shown in FIG. As an example, the security processing unit 72 has functions such as RSA encryption calculation, encryption key generation, hash value calculation, and random number generation.
  • the hash value calculation function and the hash engine 36 in the security processing unit 72 may be realized by a common function block.
  • the information processing apparatus 10 including the security module 18 according to the first modified example is for calculating the hash value of each program at the time of activation, similarly to the information processing apparatus 10 described with reference to FIGS.
  • the overhead can be eliminated and the startup time can be shortened.
  • the security module 18 according to the first modification can hold the hash value of each program in a state in which the tamper resistance is higher.
  • FIG. 8 shows a configuration of the information processing apparatus 10 according to the second modification example of the present embodiment.
  • the information processing apparatus 10 according to the present modification employs substantially the same configuration and function as the information processing apparatus 10 illustrated in FIG. 1, and is therefore the same as the members having substantially the same configuration and function as those illustrated in FIG. A reference numeral is attached, and the description will be omitted except for differences.
  • the information processing apparatus 10 includes a storage unit 30 and a memory controller 80 instead of the storage device 20.
  • the storage unit 30 has substantially the same configuration and function as the storage unit 30 shown in FIG.
  • the memory controller 80 receives access to the storage unit 30 from the CPU 12, and executes data reading, writing, and various controls with respect to the storage unit 30 in response to the access. Furthermore, the memory controller 80 according to this modification includes an integrity information storage unit 32, a table storage unit 34, a hash engine 36, and a controller 40. Since each of the integrity information storage unit 32, the table storage unit 34, the hash engine 36, and the controller 40 has substantially the same configuration and function as those of the members having the same reference numerals shown in FIG.
  • the information processing apparatus 10 according to the second modified example like the information processing apparatus 10 described with reference to FIGS. 1 to 6, eliminates the overhead for calculating the hash value of each program at startup, Startup time can be shortened. Furthermore, since the information processing apparatus 10 according to the second modification includes a hash value calculation and holding function in the memory controller 80, a general-purpose nonvolatile memory can be used as the storage unit 30.
  • FIG. 9 shows the configuration of the information processing apparatus 10 according to the third modification of the present embodiment.
  • the information processing apparatus 10 according to this modification includes a virtual machine monitor 90, a guest OS 92, a data storage unit 94, a security module 18, and a storage device 20.
  • the virtual machine monitor 90 virtualizes computer hardware resources by software.
  • the virtual machine monitor 90 is a function realized by the information processing apparatus 10 when the information processing apparatus 10 executes a virtualization program.
  • the guest OS 92 is an operation system that is executed on hardware resources virtualized by the virtual machine monitor 90.
  • the data storage unit 94 is a hard disk drive, for example, and stores data.
  • the virtual machine monitor 90 provides the guest OS 92 with the same configuration and functions as those of the storage device 20 illustrated in FIG. Therefore, the information processing apparatus 10 according to this modification is executed by calling each program from the storage device 20 virtualized by the virtual machine monitor 90. Therefore, according to the information processing apparatus 10 according to this modified example, it is possible to eliminate the overhead for calculating the hash value of each program when the virtualized computer is started, and shorten the startup time. it can.
  • FIG. 10 shows an example of a hardware configuration of a computer 1900 according to this embodiment.
  • a computer 1900 according to this embodiment is connected to a CPU peripheral unit having a CPU 2000, a RAM 2020, a graphic controller 2075, and a display device 2080 that are connected to each other by a host controller 2082, and to the host controller 2082 by an input / output controller 2084.
  • Input / output unit having communication interface 2030, hard disk drive 2040, and CD-ROM drive 2060, and legacy input / output unit having ROM 2010, flexible disk drive 2050, and input / output chip 2070 connected to input / output controller 2084 With.
  • the host controller 2082 connects the RAM 2020 to the CPU 2000 and the graphic controller 2075 that access the RAM 2020 at a high transfer rate.
  • the CPU 2000 operates based on programs stored in the ROM 2010 and the RAM 2020 and controls each unit.
  • the graphic controller 2075 acquires image data generated by the CPU 2000 or the like on a frame buffer provided in the RAM 2020 and displays it on the display device 2080.
  • the graphic controller 2075 may include a frame buffer for storing image data generated by the CPU 2000 or the like.
  • the input / output controller 2084 connects the host controller 2082 to the communication interface 2030, the hard disk drive 2040, and the CD-ROM drive 2060, which are relatively high-speed input / output devices.
  • the communication interface 2030 communicates with other devices via a network.
  • the hard disk drive 2040 stores programs and data used by the CPU 2000 in the computer 1900.
  • the CD-ROM drive 2060 reads a program or data from the CD-ROM 2095 and provides it to the hard disk drive 2040 via the RAM 2020.
  • the ROM 2010, the flexible disk drive 2050, and the relatively low-speed input / output device of the input / output chip 2070 are connected to the input / output controller 2084.
  • the ROM 2010 stores a boot program that the computer 1900 executes at startup and / or a program that depends on the hardware of the computer 1900.
  • the flexible disk drive 2050 reads a program or data from the flexible disk 2090 and provides it to the hard disk drive 2040 via the RAM 2020.
  • the input / output chip 2070 connects the flexible disk drive 2050 to the input / output controller 2084 and inputs / outputs various input / output devices via, for example, a parallel port, a serial port, a keyboard port, a mouse port, and the like. Connect to controller 2084.
  • the program provided to the hard disk drive 2040 via the RAM 2020 is stored in a recording medium such as the flexible disk 2090, the CD-ROM 2095, or an IC card and provided by the user.
  • the program is read from the recording medium, installed in the hard disk drive 2040 in the computer 1900 via the RAM 2020, and executed by the CPU 2000.
  • the program installed in the computer 1900 and causing the computer 1900 to function as the storage device 20 includes a storage module, an integrity information storage module, a table storage module, a hash engine module, and a controller module. These programs or modules work on the CPU 2000 or the like to cause the computer 1900 to function as the storage unit 30, the integrity information storage unit 32, the table storage unit 34, the hash engine 36, and the controller 40, respectively.
  • the information processing described in these programs is read into the computer 1900, whereby the storage unit 30, the integrity information storage unit 32, which are specific means in which the software and the various hardware resources described above cooperate with each other, It functions as the table storage unit 34, the hash engine 36, and the controller 40. And by these specific means, by realizing calculation or processing of information according to the purpose of use of the computer 1900 in the present embodiment, a specific storage unit 30, integrity information storage unit 32 according to the purpose of use, A table storage unit 34, a hash engine 36, and a controller 40 are constructed.
  • the CPU 2000 executes a communication program loaded on the RAM 2020 and executes a communication interface based on the processing content described in the communication program.
  • a communication process is instructed to 2030.
  • the communication interface 2030 reads transmission data stored in a transmission buffer area or the like provided on a storage device such as the RAM 2020, the hard disk drive 2040, the flexible disk 2090, or the CD-ROM 2095, and sends it to the network.
  • the reception data transmitted or received from the network is written into a reception buffer area or the like provided on the storage device.
  • the communication interface 2030 may transfer transmission / reception data to / from the storage device by a DMA (direct memory access) method. Instead, the CPU 2000 transfers the storage device or the communication interface 2030 as a transfer source.
  • the transmission / reception data may be transferred by reading the data from the data and writing the data to the communication interface 2030 or the storage device of the transfer destination.
  • the CPU 2000 is all or necessary from among files or databases stored in an external storage device such as a hard disk drive 2040, a CD-ROM drive 2060 (CD-ROM 2095), and a flexible disk drive 2050 (flexible disk 2090).
  • This portion is read into the RAM 2020 by DMA transfer or the like, and various processes are performed on the data on the RAM 2020. Then, CPU 2000 writes the processed data back to the external storage device by DMA transfer or the like.
  • the RAM 2020 and the external storage device are collectively referred to as a memory, a storage unit, or a storage device.
  • the CPU 2000 can also store a part of the RAM 2020 in the cache memory and perform reading and writing on the cache memory. Even in such a form, the cache memory bears a part of the function of the RAM 2020. Therefore, in the present embodiment, the cache memory is also included in the RAM 2020, the memory, and / or the storage device unless otherwise indicated. To do.
  • the CPU 2000 performs various operations, such as various operations, information processing, condition determination, information search / replacement, etc., described in the present embodiment, specified for the data read from the RAM 2020 by the instruction sequence of the program. Is written back to the RAM 2020. For example, when performing the condition determination, the CPU 2000 determines whether the various variables shown in the present embodiment satisfy the conditions such as large, small, above, below, equal, etc., compared to other variables or constants. When the condition is satisfied (or not satisfied), the program branches to a different instruction sequence or calls a subroutine.
  • the CPU 2000 can search for information stored in a file or database in the storage device. For example, in the case where a plurality of entries in which the attribute value of the second attribute is associated with the attribute value of the first attribute are stored in the storage device, the CPU 2000 displays the plurality of entries stored in the storage device. The entry that matches the condition in which the attribute value of the first attribute is specified is retrieved, and the attribute value of the second attribute that is stored in the entry is read, thereby associating with the first attribute that satisfies the predetermined condition The attribute value of the specified second attribute can be obtained.
  • the program or module shown above may be stored in an external recording medium.
  • an optical recording medium such as DVD or CD
  • a magneto-optical recording medium such as MO
  • a tape medium such as an IC card, and the like
  • a storage device such as a hard disk or RAM provided in a server system connected to a dedicated communication network or the Internet may be used as a recording medium, and the program may be provided to the computer 1900 via the network.
  • Information processing device 12 CPU 14 RAM 18 Security module 20 Storage device 22 I / O unit 30 Storage unit 32 Integrity information storage unit 34 Table storage unit 36 Hash engine 40 Controller 42 Reading unit 44 Writing unit 46 Protection unit 48 Calculation unit 50 Comparison unit 52 Status management unit 70 Integrity information storage unit 72 Security processing unit 80 Memory controller 90 Virtual machine monitor 92 Guest OS 94 Data Storage Unit 1900 Computer 2000 CPU 2010 ROM 2020 RAM 2030 Communication interface 2040 Hard disk drive 2050 Flexible disk drive 2060 CD-ROM drive 2070 Input / output chip 2075 Graphic controller 2080 Display device 2082 Host controller 2084 Input / output controller 2090 Flexible disk 2095 CD-ROM

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】情報処理装置の起動時におけるオーバーヘッドを少なくする。 【解決手段】外部から読み書き可能な記憶部と、記憶部が記憶するデータが改ざんされているか否かの検証に用いられる完全性情報を記憶する、外部からの書き込みが禁止された完全性情報記憶部と、外部から書込コマンドおよび書込対象データを受けて、書込対象データを記憶部に書き込む書込部と、書込対象データの完全性情報を算出して完全性情報記憶部に書き込む算出部と、記憶部に書き込まれた書込対象データに対する上書きを禁止する保護部と、を備える記憶装置を提供する。

Description

記憶装置、情報処理装置およびプログラム
 本発明は、改ざんされているか否かの検証の対象となるデータを記憶する記憶装置、情報処理装置およびプログラムに関する。
 トラステッドコンピューティングと呼ばれる、コンピュータ等のセキュリティー対策に関する技術が知られている(非特許文献1参照。)。トラステッドコンピューティングは、コンピュータの起動時にプログラムコードのハッシュ値を算出し、算出したハッシュ値をTPM(Trusted Platform Module)と呼ばれる耐タンパ性を有するセキュリティーチップに記録する。これにより、プログラムが不正に書き換えられた場合、TPM内のハッシュ値が本来の値から変わるので、検証者は、TPM内のハッシュ値を参照することによりプログラムの改ざんを検出することができる。
Trusted Computing Group(TCG)ホームページ、[平成20年7月15日検索]、インターネット<https://www.trustedcomputinggroup.org/home/>
 ところで、トラステッドコンピューティングにおいては、システムのブート時において起動するプログラムのハッシュ値を算出する。従って、ハッシュ値の算出時間がブート時におけるオーバーヘッドとなっていた。特に、記憶領域へのアクセス速度が比較的に遅い、また、内蔵するCPUの演算能力が比較的に低い例えば携帯電話機等の組み込み機器においては、このオーバーヘッドにより起動時間が長くなるという問題があった。
 そこで本発明は、上記の課題を解決することのできる記憶装置、情報処理装置およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
 外部から読み書き可能な記憶部と、前記記憶部が記憶するデータが改ざんされているか否かの検証に用いられる完全性情報を記憶する、外部からの書き込みが禁止された完全性情報記憶部と、外部から書込コマンドおよび書込対象データを受けて、前記書込対象データを前記記憶部に書き込む書込部と、前記書込対象データの完全性情報を算出して前記完全性情報記憶部に書き込む算出部と、前記記憶部に書き込まれた前記書込対象データに対する上書きを禁止する保護部と、を備える記憶装置、この記憶装置を備える情報処理装置、及び、情報処理装置をこの記憶装置として機能させるプログラムを提供する。なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
本発明の実施形態に係る情報処理装置10の構成を示す。 本発明の実施形態に係る情報処理装置10の起動時に処理の流れの一例を示す。 本発明の実施形態に係る記憶装置20の構成を示す。 記憶部30の保護領域の状態の遷移を示す。 書込対象プログラムの書込時における、記憶装置20の処理フローを示す。 検証時における、記憶装置20の処理フローを示す。 本発明の実施形態に係る第1変形例に係るセキュリティーモジュール18の構成を示す。 本発明の実施形態に係る第2変形例に係る情報処理装置10の構成を示す。 本発明の実施形態の第3変形例に係る情報処理装置10の構成を示す。 本発明の実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。
 以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
 図1は、本実施形態に係る情報処理装置10の構成を示す。情報処理装置10は、CPU12と、RAM14と、セキュリティーモジュール18と、記憶装置20と、I/O部22とを備える。CPU12は、プログラムを実行して、演算処理等を行う。RAM14は、CPU12による実行中のプログラムおよびCPU12の実行に用いられるデータ等を記憶する。
 セキュリティーモジュール18は、CPU12により実行されるプログラムが改ざんされているか否かの検証に用いられる完全性情報を記憶する。本実施形態においては、セキュリティーモジュール18は、CPU12が実行する各プログラムのハッシュ値を累積した値を、PCR(Platform Configuration Register)と呼ばれる外部からのアクセスが
物理的に制限されたレジスタに記憶する。さらに、セキュリティーモジュール18は、公開鍵暗号演算、暗号鍵生成、ハッシュ値の算出および乱数生成等の機能を有してよい。
 記憶装置20は、CPU12により実行される1または複数のプログラムのコードデータ、音声データおよび画像データ等の各種のデータを記憶する。記憶装置20は、フラッシュメモリ等の不揮発性のメモリであってよい。
 また、記憶装置20は、当該情報処理装置10の起動時に実行されるブートプログラムを、外部からの書き込みが禁止された領域に記憶する。さらに、記憶装置20は、当該記憶装置20に記憶された1または複数のプログラムのそれぞれの完全性情報を、それぞれのプログラムに対応させて記憶する。本実施形態においては、記憶装置20は、1または複数のプログラムのそれぞれの完全性情報として、対応するプログラムのハッシュ値を記憶する。
 より詳しくは、記憶装置20は、CPU12により各プログラムが内部に書き込まれる場合において、当該プログラムの書込処理と並行して、当該プログラムのハッシュ値を算出する。そして、記憶装置20は、当該プログラムの書き込みが完了すると、書き込まれたプログラムへの上書きを予め定められたコマンドが与えられるまで禁止する。さらに、記憶装置20は、当該プログラムのハッシュ値を、外部からの書き込みが禁止された領域に記憶する。なお、記憶装置20の構成の詳細については、後述する。
 I/O部22は、当該情報処理装置10の外部の機器とのデータの入出力を制御する。なお、ブートプログラムは、記憶装置20とは別個の、外部からの書き込みが禁止されたROMに記憶されていてもよい。
 図2は、本実施形態に係る情報処理装置10の起動時に処理の流れの一例を示す。情報処理装置10は、起動時において、次のように処理がされる。
 電源が投入されると、CPU12は、まず、記憶装置20からブートプログラムを呼び出して、実行する。続いて、CPU12は、実行中のブートプログラムにより指定された第1のプログラムを記憶装置20から呼び出して、実行する。続いて、CPU12は、実行中の第1のプログラムにより指定された第2のプログラムを記憶装置20から呼び出して、実行する。以後、CPU12は、実行中のプログラムにより指定された別個のプログラムの呼び出しおよび実行を繰り返す。そして、CPU12は、オペレーションシステム(または当該オペレーションシステム上において起動されるアプリケーションプログラム)を記憶装置20から呼び出して、実行する。
 さらに、起動時において、CPU12は、記憶装置20に記憶された各プログラムのそれぞれの実行に先立って、当該プログラムのハッシュ値を記憶装置20から読み出して、セキュリティーモジュール18に与える。セキュリティーモジュール18は、CPU12からハッシュ値が与えられる毎に、与えられえたハッシュ値に基づきPCRの値を更新する。より詳しくは、セキュリティーモジュール18は、与えられたハッシュ値とPCRから読み出した値とを加算し、加算値に対してハッシュ演算をした値をPCRに上書きする処理を実行する。なお、電源投入直後のPCRの初期値は、予め定められた値(例えば、全ビットが0、または、全ビットが1等)である。この結果、オペレーションシステム(またはアプリケーションプログラム)まで実行されると、PCRには、ブートプログラムからオペレーションシステム(またはアプリケーションプログラム)までの各プログラムのハッシュ値を累積した値が書き込まれる。
 なお、起動時に最初に実行されるブートプログラムについては、事前に記憶装置20からのハッシュ値の読み出しとセキュリティーモジュール18への記録を行うことはできない。従って、記憶装置20は、ブートプログラムが記録された領域に対する外部からの物理的な書込み禁止して、ブートプログラムが改ざんされることを防止している。
 PCRに記憶された累積されたハッシュ値は、起動時において段階的に実行される各プログラムの全てが改ざんされておらず、全て完全の場合、常に予め定められた値となる。しかし、何れかのプログラムが改ざんされていれば、その改ざんの過程で記憶装置20の対応するハッシュ値が変更される。結果として上記の起動方法でPCRに記憶されたハッシュ値は、予め期待される値と異なる値となる。従って、このような情報処理装置10よれば、PCRに記憶された累積されたハッシュ値を例えば署名等をして検証者に送信することにより、実行しているプログラムが改ざんされているか否かを検証者に検出させることができる。
 さらに、このような情報処理装置10は、記憶装置20に対するプログラムの書き込み時において、当該プログラムのハッシュ値を算出して記憶装置20内の外部から書き込みできない領域に書き込む。そして、情報処理装置10は、起動時において、各プログラムのハッシュ値を、各プログラムの実行に先立って記憶装置20から読み出してセキュリティーモジュール18に与える。これにより、情報処理装置10によれば、起動時において、各プログラムのハッシュ値を算出する演算を実行しなくてよいので、ハッシュ値を算出するためのオーバーヘッドを無くして、起動時間を短くすることができる。
 図3は、本実施形態に係る記憶装置20の構成を示す。記憶装置20は、記憶部30と、完全性情報記憶部32と、テーブル記憶部34と、ハッシュエンジン36と、コントローラ40とを有する。
 記憶部30は、当該記憶装置20の外部から読み書き可能であって、各種のデータを記憶する。記憶部30は、保護領域を含む。保護領域は、改ざん検出の対象となる1または複数の書込対象プログラムが記憶され、上書き禁止状態に設定することができる。
 完全性情報記憶部32は、記憶部30の保護領域に記憶された1または複数の書込対象プログラムのそれぞれのハッシュ値を、当該書込対象プログラムに対応させて記憶する。完全性情報記憶部32は、当該記憶装置20の外部からの書き込みが禁止される。
 テーブル記憶部34は、管理テーブルを記憶する。管理テーブルは、記憶部30における保護領域を指定する領域情報を格納する。さらに、管理テーブルは、記憶部30に対する書込対象プログラムの書き込みが失敗したか否かを示す書込失敗情報、および、記憶部30内の保護領域の状態を表わす状態情報を格納する。テーブル記憶部34は、当該記憶装置20の外部からの書き込みが禁止された構成であってよい。
 なお、記憶部30、完全性情報記憶部32およびテーブル記憶部34のそれぞれは、同一の不揮発性デバイスにおける異なる領域に設けられてよい。これに代えて、記憶部30、完全性情報記憶部32およびテーブル記憶部34は、それぞれが別個の異なる不揮発性デバイスに設けられてもよい。
 ハッシュエンジン36は、書込対象プログラムの記憶部30に対する書込時において、コントローラ40から当該書込対象プログラムが与えられる。そして、ハッシュエンジン36は、与えられた書込対象プログラムのハッシュ値を算出してコントローラ40に返信する。なお、ハッシュエンジン36は、一例として、コントローラ40とは別個のハードウェアであってもよいし、コントローラ40により実現される機能ブロックであってもよい。
 コントローラ40は、当該記憶装置20の全体を制御する。コントローラ40は、機能ブロックとして、読出部42と、書込部44と、保護部46と、算出部48と、比較部50と、状態管理部52とを含む。
 読出部42は、当該記憶装置20の外部から読出コマンドを受けて、記憶部30に記憶されている各種のデータ(プログラム、音声データおよび画像データ等)を読み出して、外部に出力する。また、読出部42は、記憶部30の保護領域から書込対象プログラムがCPU12により呼び出されることに先立って、当該書込対象プログラムの対応するハッシュ値を完全性情報記憶部32から読み出してCPU12に送信する。これにより、CPU12は、書込対象プログラムの実行に先立って、当該書込対象プログラムのハッシュ値をセキュリティーモジュール18に与えることができる。
 書込部44は、当該記憶装置20の外部から書込コマンドおよび各種のデータを受けて、各種のデータを記憶部30に書き込む。ここで、書込部44は、書込コマンドおよび書込対象プログラムが与えられた場合には、記憶部30の保護領域に当該書込対象プログラムを書き込む。
 保護部46は、書込部44による記憶部30の保護領域に対する書込対象プログラムの書き込みが正常に終了したことを条件として、記憶部30に書き込まれた書込対象プログラムに対する上書きを禁止する。また、保護部46は、書込部44による記憶部30に対する書込対象プログラムの書き込みが失敗したことを条件として、記憶部30における書込対象プログラムが書き込まれるはずであった領域に対する外部からの書き込みを許可する。また、保護部46は、上書き禁止状態を解除するセットアップコマンドが当該記憶装置20の外部から与えられたことを条件として、記憶部30に書き込まれた書込対象プログラムに対する上書きを許可してよい。
 算出部48は、書込対象プログラムが与えられた場合、ハッシュエンジン36を利用して当該書込対象プログラムのハッシュ値を算出する。そして、算出部48は、算出したハッシュ値を、記憶部30に書き込まれた当該書込対象プログラムに対応付けて完全性情報記憶部32に書き込む。また、算出部48は、記憶部30に書き込まれた書込対象プログラムに対する上書きが禁止されている状態において、外部から検証コマンドを受けると、記憶部30に記憶された書込対象プログラムを読み出して、ハッシュエンジン36を利用して読み出した書込対象プログラムのハッシュ値を新たに算出する。
 比較部50は、完全性情報記憶部32に記憶されたハッシュ値と、検証コマンドを受けたことに応じて新たに算出されたハッシュ値とが一致するか否かを比較する。更に、比較部50は、書込コマンドとともに外部から与えられた書込対象プログラムのハッシュ値の期待値を受けて、算出部48が算出したハッシュ値と、期待値とが一致するか否かを比較してよい。
 状態管理部52は、テーブル記憶部34に記憶された管理テーブルに格納された状態情報を参照して、記憶部30の保護領域の状態を管理する。
 このような記憶装置20は、CPU12によって書込対象プログラムが記憶部30に書き込まれる場合において、当該書込対象プログラムのハッシュ値を算出して完全性情報記憶部32に記憶させることができる。そして、記憶装置20は、CPU12によって書込対象プログラムが読み出される場合において、完全性情報記憶部32に記憶された当該書込対象プログラムのハッシュ値を読み出す。これにより、情報処理装置10によれば、起動時において、各プログラムのハッシュ値を出力することができるので、セキュリティーモジュール18に記録するハッシュ値を算出するためのオーバーヘッドを無くして、起動時間を短くすることができる。
 なお、記憶装置20は、プログラムに代えて、当該記憶装置20に記憶されたプログラム以外の書込対象データ(例えば、音楽データおよび画像データ等)の完全性情報を、それぞれの書込対象データに対応させて保護領域に記憶してもよい。この場合、記憶装置20は、書込対象データの書込時において、完全性情報を算出して完全性情報記憶部32に記憶させる。また、記憶装置20は、ファイルシステム全体のイメージ等、任意のデータ形式の完全性保護に利用することもできる。
 図4は、記憶部30の保護領域の状態の遷移を示す。状態管理部52は、記憶部30の保護領域を、通常動作状態、書込状態、保護状態または検証状態の何れかの状態に管理する。
 通常動作状態は、記憶部30の保護領域に対する当該記憶装置20の外部からの書き込みを許可する状態を示す。通常動作状態において書込コマンドが与えられた場合、保護部46は、書込コマンドとともに与えられたデータを、記憶部30の保護領域に書き込むことができる。
 保護状態は、記憶部30の保護領域に対する当該記憶装置20の外部からの書き込みを許可する状態を示す。保護状態においては、保護部46は、書込コマンドが与えられた場合、与えられたデータの記憶部30の保護領域に対する書き込みを禁止する。
 書込状態は、当該記憶装置20の外部から与えられた書込対象プログラムを記憶部30の保護領域に書き込み中である状態を示す。検証状態は、記憶部30の保護領域に書き込まれた書込対象プログラムを検証している最中である状態を示す。
 状態管理部52は、記憶部30の保護領域の状態を次のように遷移させる。まず、工場出荷時において、状態管理部52は、記憶部30の保護領域を通常動作状態とする。
 通常動作状態また保護状態においてセットアップコマンドを受けると、状態管理部52は、記憶部30の保護領域を書込状態に遷移させる。書込状態において書込コマンドが与えられると、状態管理部52は、書込コマンドとともに与えられた書込対象プログラムを、記憶部30の保護領域に書き込む。また、保護状態において、別個のセットアップコマンドを受けた場合において、状態管理部52は、記憶部30の保護領域を通常動作状態に遷移させてもよい。
 書込状態において書込対象プログラムの書き込みが成功すると、状態管理部52は、記憶部30の保護領域を保護状態に遷移させる。書込状態において書込対象プログラムの書き込みが失敗すると、状態管理部52は、記憶部30の保護領域を通常動作状態に遷移させる。
 また、保護状態において検証コマンドを受けると、状態管理部52は、記憶部30の保護領域を、検証状態に遷移させる。検証が正常であった場合、状態管理部52は、記憶部30の保護領域を保護状態に遷移させる。検証がエラーであった場合、状態管理部52は、記憶部30の保護領域を通常動作状態に遷移させる。
 図5は、書込対象プログラムの書込時における、記憶装置20の処理フローを示す。記憶装置20は、通常動作状態または保護状態において、当該記憶装置20の外部からセットアップコマンドを受けることができる(S101)。セットアップコマンドには、保護領域の位置を指定する情報を含んでよい。
 セットアップコマンドを受けると、書込部44は、管理テーブルに格納された状態情報を、通常動作状態または保護状態を表わす値から、書込状態を表わす値に書き換える。これにより、状態管理部52は、記憶部30の保護領域を、書込状態とすることができる(S102)。
 続いて、書込部44は、当該記憶装置20の外部から書込コマンドおよび書込対象プログラムを受ける(S103)。続いて、書込部44は、書込コマンドに示された書込範囲が保護領域内を指定しているか否か等のコマンドの整合性を確認して、アクノーレッジ(ACK)を書込コマンドの送出元に返信する(S104)。
 続いて、書込部44は、受け取った書込対象プログラムを記憶部30の保護領域に書き込む(S105)。更に、算出部48は、書込部44による書込対象プログラムの書き込みと並行して、当該書込対象プログラムのハッシュ値を算出する(S105)。
 続いて、算出部48は、書込部44による書込対象プログラムの書き込みが成功したか否かを判断する(S106)。算出部48は、一例として、書込部44が書込対象プログラムの先頭から末尾までを記憶部30の保護領域内に書き込めた場合に、書き込みが成功したと判断してよい。
 書き込みが成功したことを条件として(S106のYes)、算出部48は、算出したハッシュ値を、当該書込対象プログラムと対応付けて完全性情報記憶部32に書き込む(S107)。そして、書込部44は、管理テーブルに格納された状態情報を、書込状態を表わす値から保護状態を表わす値に書き換える。これにより、状態管理部52は、記憶部30の保護領域を、保護状態とすることができる(S108)。
 また、書き込みが失敗したことを条件として(S106のNo)、算出部48は、当該書込対象プログラムと対応付けて書き込まれるべきハッシュ値に代えて、規定の値(例えば、全ビットが0または全ビットが1等)を完全性情報記憶部32に書き込む(S109)。そして、書込部44は、管理テーブルに格納された書込失敗情報を、書き込みが失敗したことを示す値に書き換えてよい。さらに、書込部44は、管理テーブルに格納された状態情報を、書込状態を表わす値から通常動作状態を表わす値に書き換える。これにより、状態管理部52は、記憶部30の保護領域を、通常動作状態とすることができる(S110)。
 以上の処理により、保護部46は、書込部44による記憶部30の保護領域に対する書込対象プログラムの書き込みが正常に終了したことを条件として、記憶部30に書き込まれた書込対象プログラムに対する上書きを禁止することができる。また、保護部46は、書込部44による記憶部30に対する書込対象プログラムの書き込みが失敗したことを条件として、記憶部30における書込対象プログラムが書き込まれるはずであった領域に対する外部からの書き込みを許可することができる。
 なお、ステップS103において、比較部50は、書込コマンドおよび書込対象プログラムとともに、書込対象プログラムのハッシュ値の期待値を受けてもよい。この場合、ステップS106において、比較部50は、算出部48がステップS105で算出したハッシュ値と、受け取った期待値とが一致するか否かを比較する。そして、算出部48は、一例として、比較部50が一致したとの比較結果を得たことを条件として書き込みが成功したと判断し、比較部50が不一致であるとの比較結果を得たことを条件として、書き込みが失敗したと判断してよい。
 図6は、検証時における、記憶装置20の処理フローを示す。記憶装置20は、保護状態において、当該記憶装置20の外部から検証コマンドを受けることができる(S201)。検証コマンドには、検証対象となる書込対象プログラムを指定する情報を含んでよい。
 検証コマンドを受けると、書込部44は、管理テーブルに格納された状態情報を、保護状態を表わす値から、検証状態を表わす値に書き換える。これにより、状態管理部52は、記憶部30の保護領域を、検証状態とすることができる(S202)。
 続いて、算出部48は、検証コマンドにより指定された書込対象プログラムを記憶部30の保護領域から読み出して、当該書込対象プログラムのハッシュ値を算出する(S203)。ハッシュ値の算出が完了すると、比較部50は、完全性情報記憶部32に記憶された当該書込対象プログラムのハッシュ値と、検証コマンドを受けたことに応じて新たに算出されたハッシュ値とが一致するか否かを比較する(S204)。続いて、比較部50は、比較結果を検証コマンドの送出元に、比較結果を通知する(S205)。
 続いて、保護部46は、記憶部30の保護領域に記憶された書込対象プログラムが正常であったか、否か(エラーか)を判断する(S206)。より詳しくは、保護部46は、比較部50が一致したとの比較結果を得たことを条件として正常であると判断し、不一致であるとの比較結果を得たことを条件としてエラーであると判断する。
 正常であることを条件として(S206のYes)、保護部46は、管理テーブルに格納された状態情報を、検証状態を表わす値から保護状態を表わす値に書き換える。これにより、状態管理部52は、記憶部30の保護領域を、保護状態とすることができる(S207)。
 エラーであることを条件として(S206のNo)、保護部46は、当該書込対象プログラムと対応付けて書き込まれていたハッシュ値に代えて、規定の値(例えば、全ビットが0または全ビットが1等)を完全性情報記憶部32に書き込む(S208)。続いて、保護部46は、管理テーブルに格納された状態情報を、検証状態を表わす値から通常動作状態を表わす値に書き換える。これにより、状態管理部52は、記憶部30の保護領域を、通常動作状態とすることができる(S209)。そして、保護部46は、記憶部30における当該書込対象プログラムに対する上書きを許可する。
 以上の処理により、記憶装置20は、記憶部30に記憶された書込対象プログラムが改ざんされていないか否かを検出することができる。記憶装置20は、例えばCPU12から定期的に検証コマンドを受けて、記憶部30に記憶された書込対象プログラムが検証される構成であってよい。
 なお、ステップS208の処理として、保護部46は、当該書込対象プログラムと対応付けて書き込まれていたハッシュ値に代えて、検証コマンドを受けたことに応じて新たに算出されたハッシュ値を、完全性情報記憶部32に書き込んでよい。この場合、ステップS209の処理として、保護部46は、管理テーブルに格納された状態情報を、検証状態を表わす値から保護状態を表わす値に書き換えてよい。これにより、記憶装置20は、記憶部30に記録済みの書込対象プログラムが何らかの原因で改ざんされた場合であっても、正常な書込対象プログラムのハッシュ値と異なる値を完全性情報記憶部32に記憶させることができるので、検証者に改ざんを検出させることができる。
 図7は、本実施形態に係る第1変形例に係るセキュリティーモジュール18の構成を示す。本変形例に係るセキュリティーモジュール18は、記憶部30と、テーブル記憶部34と、ハッシュエンジン36と、コントローラ40と、完全性情報記憶部70と、セキュリティー処理部72とを有する。記憶部30、テーブル記憶部34、ハッシュエンジン36およびコントローラ40のそれぞれは、図3に示された同一の符号の部材と略同一の構成および機能を採るので、説明を省略する。
 完全性情報記憶部70は、不揮発性の記憶部であって、図1に示されるセキュリティーモジュール18内のPCRの機能と、図3に示される記憶装置20内の完全性情報記憶部32の機能とを統合した機能を有する。セキュリティー処理部72は、図1に示されるセキュリティーモジュール18における、PCR以外の各機能を有する。セキュリティー処理部72は、一例として、RSA暗号演算、暗号鍵生成、ハッシュ値の算出および乱数生成等の機能を有する。なお、セキュリティー処理部72におけるハッシュ値の算出機能およびハッシュエンジン36は、共通の機能ブロックにより実現されてよい。
 このような第1変形例に係るセキュリティーモジュール18を備える情報処理装置10は、図1~図6において説明した情報処理装置10と同様に、起動時における、各プログラムのハッシュ値を算出するためのオーバーヘッドを無くして、起動時間を短くすることができる。さらに、第1変形例に係るセキュリティーモジュール18は、各プログラムのハッシュ値を、耐タンパ性がより高い状態で保持することができる。
 図8は、本実施形態に係る第2変形例に係る情報処理装置10の構成を示す。本変形例に係る情報処理装置10は、図1に示される情報処理装置10と略同一の構成および機能を採るので、図1に示される各部材と略同一の構成および機能の部材に同一の符号を付け、以下相違点を除き説明を省略する。
 本変形例に係る情報処理装置10は、記憶装置20に代えて、記憶部30とメモリコントローラ80とを備える。記憶部30は、図3に示された記憶部30と略同一の構成および機能を採るので、説明を省略する。
 メモリコントローラ80は、CPU12からの記憶部30へのアクセスを受けて、当該アクセスに応じて記憶部30に対してデータの読み出し、書き込みおよび各種制御を実行する。さらに、本変形例に係るメモリコントローラ80は、完全性情報記憶部32と、テーブル記憶部34と、ハッシュエンジン36と、コントローラ40とを含む。完全性情報記憶部32、テーブル記憶部34、ハッシュエンジン36およびコントローラ40のそれぞれは、図3に示された同一の符号の部材と略同一の構成および機能を採るので、説明を省略する。
 このような第2変形例に係る情報処理装置10は、図1~図6において説明した情報処理装置10と同様に、起動時における、各プログラムのハッシュ値を算出するためのオーバーヘッドを無くして、起動時間を短くすることができる。さらに、第2変形例に係る情報処理装置10は、ハッシュ値の算出および保持機能がメモリコントローラ80内に含まれるので、記憶部30として汎用の不揮発性メモリを用いることができる。
 図9は、本実施形態の第3変形例に係る情報処理装置10の構成を示す。本変形例に係る情報処理装置10は、仮想マシンモニタ90と、ゲストOS92と、データ記憶部94と、セキュリティーモジュール18と、記憶装置20とを備える。
 仮想マシンモニタ90は、コンピュータのハードウェアリソースを、ソフトウェアにより仮想化する。仮想マシンモニタ90は、情報処理装置10が仮想化プログラムを実行することにより当該情報処理装置10により実現される機能である。ゲストOS92は、仮想マシンモニタ90によって仮想化されたハードウェアリソース上において実行されるオペレーションシステムである。データ記憶部94は、例えばハードディスクドライブ等であって、データを記憶する。
 このような第3変形例に係る情報処理装置10において、仮想マシンモニタ90は、図1に示される記憶装置20と同様の構成および機能を、ゲストOS92に対して仮想化して提供する。従って、本変形例に係る情報処理装置10は、仮想マシンモニタ90により仮想化された記憶装置20から各プログラムが呼び出されて、実行される。従って、このような本変形例に係る情報処理装置10によれば、仮想化されたコンピュータの起動時における、各プログラムのハッシュ値を算出するためのオーバーヘッドを無くして、起動時間を短くすることができる。
 図10は、本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD-ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
 ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
 入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD-ROMドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD-ROMドライブ2060は、CD-ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
 また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブートプログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
 RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD-ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
 コンピュータ1900にインストールされ、コンピュータ1900を記憶装置20として機能させるプログラムは、記憶モジュールと、完全性情報記憶モジュールと、テーブル記憶モジュールと、ハッシュエンジンモジュールと、コントローラモジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、記憶部30、完全性情報記憶部32、テーブル記憶部34、ハッシュエンジン36およびコントローラ40としてそれぞれ機能させる。
 これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である記憶部30、完全性情報記憶部32、テーブル記憶部34、ハッシュエンジン36およびコントローラ40として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の記憶部30、完全性情報記憶部32、テーブル記憶部34、ハッシュエンジン36およびコントローラ40が構築される。
 一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD-ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
 また、CPU2000は、ハードディスクドライブ2040、CD-ROMドライブ2060(CD-ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
 また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
 また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
 また、本明細書中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。明細書中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
 以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD-ROM2095の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
 以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
10 情報処理装置
12 CPU
14 RAM
18 セキュリティーモジュール
20 記憶装置
22 I/O部
30 記憶部
32 完全性情報記憶部
34 テーブル記憶部
36 ハッシュエンジン
40 コントローラ
42 読出部
44 書込部
46 保護部
48 算出部
50 比較部
52 状態管理部
70 完全性情報記憶部
72 セキュリティー処理部
80 メモリコントローラ
90 仮想マシンモニタ
92 ゲストOS
94 データ記憶部
1900 コンピュータ
2000 CPU
2010 ROM
2020 RAM
2030 通信インターフェイス
2040 ハードディスクドライブ
2050 フレキシブルディスク・ドライブ
2060 CD-ROMドライブ
2070 入出力チップ
2075 グラフィック・コントローラ
2080 表示装置
2082 ホスト・コントローラ
2084 入出力コントローラ
2090 フレキシブルディスク
2095 CD-ROM

Claims (13)

  1.  外部から読み書き可能な記憶部と、
     前記記憶部が記憶するデータが改ざんされているか否かの検証に用いられる完全性情報を記憶する、外部からの書き込みが禁止された完全性情報記憶部と、
     外部から書込コマンドおよび書込対象データを受けて、前記書込対象データを前記記憶部に書き込む書込部と、
     前記書込対象データの完全性情報を算出して前記完全性情報記憶部に書き込む算出部と、
     前記記憶部に書き込まれた前記書込対象データに対する上書きを禁止する保護部と、
     を備える記憶装置。
  2.  前記算出部は、前記書込対象データのハッシュ値を前記完全性情報として算出する
     請求項1に記載の記憶装置。
  3.  前記保護部は、前記書込部による前記記憶部に対する前記書込対象データの書き込みが正常に終了したことを条件として、前記記憶部に書き込まれた前記書込対象データに対する上書きを禁止する
     請求項1から2の何れかに記載の記憶装置。
  4.  前記保護部は、前記書込部による前記記憶部に対する前記書込対象データの書き込みが失敗したことを条件として、前記記憶部における前記書込対象データが書き込まれるはずであった領域に対する外部からの書き込みを許可する
     請求項1から3の何れかに記載の記憶装置。
  5.  前記書込対象データの書き込みが失敗したか否かを示す書込失敗情報を格納する管理テーブルを記憶するテーブル記憶部を更に備え、
     前記書込部は、前記記憶部に対する前記書込対象データの書き込みが失敗したことを条件として、前記書込失敗情報を書き込みが失敗したことを示す値に書き換える
     請求項1から4の何れかに記載の記憶装置。
  6.  前記保護部は、前記記憶部における前記書込対象データを記憶させる保護領域を指定する情報を含むセットアップコマンドを外部から受けて、前記記憶部における前記保護領域に対する書き込みを許可し、
     前記書込部は、前記書込コマンドおよび前記書込対象データを受けて、前記書込対象データを前記記憶部における前記保護領域に書き込み、
     前記保護部は、前記書込部による前記記憶部に対する前記書込対象データの書き込みが正常に終了したことを条件として、前記保護領域に対する書き込みを禁止する
     請求項1から5の何れかに記載の記憶装置。
  7.  前記書込コマンドおよび前記書込対象データととともに、前記書込対象データの完全性情報の期待値を受けて、前記算出部が算出した前記完全性情報と、前記期待値とが一致するか否かを比較する比較部を更に備える
     請求項1から6の何れかに記載の記憶装置。
  8.  前記算出部は、前記記憶部に書き込まれた前記書込対象データに対する上書きが禁止されている状態において、外部から検証コマンドを受けると、前記記憶部に記憶された前記書込対象データの完全性情報を新たに算出し、
     当該記憶装置は、前記完全性情報記憶部に記憶された前記完全性情報と、前記検証コマンドを受けたことに応じて新たに算出された前記完全性情報とが一致するか否かを比較する比較部を更に備える
     請求項1から6の何れかに記載の記憶装置。
  9.  前記比較部が不一致であるとの比較結果を得たことを条件として、前記保護部は、前記記憶部における前記書込対象データに対する上書きを許可する
     請求項8に記載の記憶装置。
  10.  前記比較部は、不一致であるとの比較結果を得たことを条件として、前記検証コマンドを受けたことに応じて新たに算出された前記完全性情報を、前記完全性情報記憶部に書き込む
     請求項8に記載の記憶装置。
  11.  外部から読み書き可能な記憶部と、
     前記記憶部に記憶されたデータが改ざんされているか否かの検証に用いられる完全性情報を記憶する、外部からの書き込みが禁止された完全性情報記憶部と、
     外部から書込コマンドおよび書込対象データを受けて、前記書込対象データを前記記憶部に書き込む書込部と、
     前記書込対象データの完全性情報を算出して前記完全性情報記憶部に書き込む算出部と、
     前記記憶部に書き込まれた前記書込対象データに対する上書きを禁止する保護部と、
     前記記憶部における前記書込対象データが書き込まれる保護領域を指定する情報を格納する管理テーブルを記憶するテーブル記憶部と、
     前記保護領域を、外部からの書き込みを許可する通常動作状態、外部からの書き込みを禁止する保護状態、および、前記書込対象データの書き込み中である書込状態の何れかに管理する状態管理部と、
     を備え、
     前記状態管理部は、
     前記通常動作状態または前記保護状態において、前記書込コマンドを受けると、前記書込状態に遷移させ、
     前記書込状態において、前記書込部による前記記憶部に対する前記書込対象データの書き込みが正常に終了した場合、前記保護状態に遷移させる
     記憶装置。
  12.  情報処理装置であって、
     CPUと、
     当該情報処理装置において実行中のプログラムが改ざんされているか否かの検証に用いられる完全性情報を記憶するセキュリティーモジュールと、
     記憶装置とを備え、
     前記記憶装置は、
     当該記憶装置の外部から読み書き可能な記憶部と、
     前記記憶部に記憶されたデータの完全性情報を記憶する、当該記憶装置の外部からの書き込みが禁止された完全性情報記憶部と、
     当該記憶装置の外部から書込コマンドおよび書込対象プログラムを受けて、前記書込対象プログラムを前記記憶部に書き込む書込部と、
     前記書込対象プログラムの完全性情報を算出して前記完全性情報記憶部に書き込む算出部と、
     前記記憶部に書き込まれた前記書込対象プログラムに対する上書きを禁止する保護部と、
     を有し、
     前記CPUは、前記書込対象プログラムの実行に先立って、前記記憶装置内の前記完全性情報記憶部から前記書込対象プログラムの完全性情報を読み出して、前記セキュリティーモジュールに与える
     情報処理装置。
  13.  情報処理装置により実行され、当該情報処理装置を記憶装置として機能させるプログラムであって、
     前記情報処理装置を、
     外部から読み書き可能な記憶部と、
     前記記憶部に記憶されたデータが改ざんされているか否かの検証に用いられる完全性情報を記憶する、外部からの書き込みが禁止された完全性情報記憶部と、
     外部から書込コマンドおよび書込対象データを受けて、前記書込対象データを前記記憶部に書き込む書込部と、
     前記書込対象データの完全性情報を算出して前記完全性情報記憶部に書き込む算出部と、
     前記記憶部に書き込まれた前記書込対象データに対する上書きを禁止する保護部と、
     して機能させるプログラム。
PCT/JP2009/064162 2008-08-22 2009-08-11 記憶装置、情報処理装置およびプログラム WO2010021269A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010525668A JP5466645B2 (ja) 2008-08-22 2009-08-11 記憶装置、情報処理装置およびプログラム
EP09808205A EP2339499A4 (en) 2008-08-22 2009-08-11 MEMORY DEVICE, INFORMATION PROCESSING DEVICE AND PROGRAM

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-213597 2008-08-22
JP2008213597 2008-08-22

Publications (1)

Publication Number Publication Date
WO2010021269A1 true WO2010021269A1 (ja) 2010-02-25

Family

ID=41707147

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/064162 WO2010021269A1 (ja) 2008-08-22 2009-08-11 記憶装置、情報処理装置およびプログラム

Country Status (4)

Country Link
EP (1) EP2339499A4 (ja)
JP (1) JP5466645B2 (ja)
TW (1) TWI453622B (ja)
WO (1) WO2010021269A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012015064A1 (en) * 2010-07-29 2012-02-02 Canon Kabushiki Kaisha Platform integrity verification system and information processing device
JP2013084038A (ja) * 2011-10-06 2013-05-09 Sharp Corp 半導体デバイス
JP2018195329A (ja) * 2018-07-19 2018-12-06 株式会社東芝 情報処理装置
US10509568B2 (en) 2016-03-01 2019-12-17 Kabushiki Kaisha Toshiba Efficient secure boot carried out in information processing apparatus
US10637647B2 (en) * 2016-04-13 2020-04-28 Infineon Technologies Ag Control device including direct memory access controller for securing data and method thereof

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6601491B2 (ja) 2015-05-20 2019-11-06 富士通株式会社 プログラム検証方法、検証プログラム、及び情報処理装置
CN111159781B (zh) * 2019-12-31 2023-09-26 海光云芯集成电路设计(上海)有限公司 存储装置数据完整性保护方法及其控制器、片上系统
CN111125794B (zh) * 2019-12-31 2023-09-26 海光云芯集成电路设计(上海)有限公司 访存控制方法、系统及存储装置控制器

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06342399A (ja) * 1993-06-01 1994-12-13 Hitachi Ltd フラッシュメモリ書き込み方式
JPH0822517A (ja) * 1994-07-05 1996-01-23 N T T Data Tsushin Kk ハイブリッドカードの改ざん防止方式
JP2005149259A (ja) * 2003-11-18 2005-06-09 Japan Telecom Co Ltd 情報監視システム、情報処理装置および管理装置
JP2006053916A (ja) * 2004-08-11 2006-02-23 Samsung Electronics Co Ltd 外部メモリに貯蔵されたデータの変更の有無をチェックする装置及び方法
JP2007066021A (ja) * 2005-08-31 2007-03-15 Nec Electronics Corp 外部データ改ざん検出装置、および外部データ改ざん検出方法
JP2007072909A (ja) * 2005-09-08 2007-03-22 Internatl Business Mach Corp <Ibm> 秘密情報へのアクセスを制御するシステムおよびその方法
JP2007257197A (ja) * 2006-03-22 2007-10-04 Fujitsu Ltd 起動検証機能を有する情報処理装置
JP2009129061A (ja) * 2007-11-21 2009-06-11 Ricoh Co Ltd 情報処理装置、正当性検証方法および正当性検証プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6715116B2 (en) * 2000-01-26 2004-03-30 Hewlett-Packard Company, L.P. Memory data verify operation
US20020147918A1 (en) * 2001-04-05 2002-10-10 Osthoff Harro R. System and method for securing information in memory
US7178041B2 (en) * 2001-10-18 2007-02-13 Nokia Corporation Method, system and computer program product for a trusted counter in an external security element for securing a personal communication device
FI20020733A0 (fi) * 2002-04-16 2002-04-16 Nokia Corp Menetelmä ja järjestelmä tiedonsiirtolaitteen käyttäjän autentikointiin
US7076604B1 (en) * 2002-12-24 2006-07-11 Western Digital Technologies, Inc. Disk drive employing a disk command data structure for tracking a write verify status of a write command
JP2004355561A (ja) * 2003-05-30 2004-12-16 Sony Corp 起動装置
US20050289311A1 (en) * 2004-06-29 2005-12-29 David Durham System and method for secure inter-platform and intra-platform communications
US8997255B2 (en) * 2006-07-31 2015-03-31 Inside Secure Verifying data integrity in a data storage device
ATE491999T1 (de) * 2006-10-06 2011-01-15 Agere Systems Inc Schutz von geheiminformationen in einem programmierten elektronischen gerät
DE102007008293B4 (de) * 2007-02-16 2010-02-25 Continental Automotive Gmbh Verfahren und Vorrichtung zum gesicherten Speichern und zum gesicherten Lesen von Nutzdaten

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06342399A (ja) * 1993-06-01 1994-12-13 Hitachi Ltd フラッシュメモリ書き込み方式
JPH0822517A (ja) * 1994-07-05 1996-01-23 N T T Data Tsushin Kk ハイブリッドカードの改ざん防止方式
JP2005149259A (ja) * 2003-11-18 2005-06-09 Japan Telecom Co Ltd 情報監視システム、情報処理装置および管理装置
JP2006053916A (ja) * 2004-08-11 2006-02-23 Samsung Electronics Co Ltd 外部メモリに貯蔵されたデータの変更の有無をチェックする装置及び方法
JP2007066021A (ja) * 2005-08-31 2007-03-15 Nec Electronics Corp 外部データ改ざん検出装置、および外部データ改ざん検出方法
JP2007072909A (ja) * 2005-09-08 2007-03-22 Internatl Business Mach Corp <Ibm> 秘密情報へのアクセスを制御するシステムおよびその方法
JP2007257197A (ja) * 2006-03-22 2007-10-04 Fujitsu Ltd 起動検証機能を有する情報処理装置
JP2009129061A (ja) * 2007-11-21 2009-06-11 Ricoh Co Ltd 情報処理装置、正当性検証方法および正当性検証プログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012015064A1 (en) * 2010-07-29 2012-02-02 Canon Kabushiki Kaisha Platform integrity verification system and information processing device
JP2012032925A (ja) * 2010-07-29 2012-02-16 Canon Inc プラットフォーム完全性検証システム
US9361449B2 (en) 2010-07-29 2016-06-07 Canon Kabushiki Kaisha Platform integrity verification system and information processing device
JP2013084038A (ja) * 2011-10-06 2013-05-09 Sharp Corp 半導体デバイス
US10509568B2 (en) 2016-03-01 2019-12-17 Kabushiki Kaisha Toshiba Efficient secure boot carried out in information processing apparatus
US10637647B2 (en) * 2016-04-13 2020-04-28 Infineon Technologies Ag Control device including direct memory access controller for securing data and method thereof
JP2018195329A (ja) * 2018-07-19 2018-12-06 株式会社東芝 情報処理装置

Also Published As

Publication number Publication date
TW201020849A (en) 2010-06-01
JPWO2010021269A1 (ja) 2012-01-26
JP5466645B2 (ja) 2014-04-09
EP2339499A4 (en) 2012-05-09
TWI453622B (zh) 2014-09-21
EP2339499A1 (en) 2011-06-29

Similar Documents

Publication Publication Date Title
JP5466645B2 (ja) 記憶装置、情報処理装置およびプログラム
EP3356986B1 (en) Nand-based verified boot
JP5390703B2 (ja) 隠れ実行環境における整合性検証及び証明の提供
US7421588B2 (en) Apparatus, system, and method for sealing a data repository to a trusted computing platform
JP5175856B2 (ja) セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法
US8375437B2 (en) Hardware supported virtualized cryptographic service
CN103093150B (zh) 一种基于可信芯片的动态完整性保护方法
US20100088525A1 (en) External encryption and recovery management with hardware encrypted storage devices
US8122514B2 (en) Software enhanced trusted platform module
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
EP2748752B1 (en) Digital signing authority dependent platform secret
CN103914658A (zh) 终端设备的安全启动方法及终端设备
US20130067210A1 (en) System and method for recovering from an interrupted encryption and decryption operation performed on a volume
TW200304620A (en) Authenticated code method and apparatus
US8751817B2 (en) Data processing apparatus and validity verification method
US11397815B2 (en) Secure data protection
US8972745B2 (en) Secure data handling in a computer system
TWI682296B (zh) 映像檔打包方法及映像檔打包系統
US10242195B2 (en) Integrity values for beginning booting instructions
US11822663B2 (en) Supervisor-based firmware hardening
US20240054250A1 (en) Method and system for dynamically updating stack canary
TW202326483A (zh) 在一開蓋竄改事件中使一安全啟動失敗的電腦系統和方法
TW202326482A (zh) 在一開蓋竄改事件中使一安全啟動失敗的電腦系統
JP2009211245A (ja) フラッシュメモリ制御システムおよび制御方法

Legal Events

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

Ref document number: 09808205

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2010525668

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2009808205

Country of ref document: EP