WO2023002635A1 - 情報処理装置、情報処理方法、及び、情報処理プログラム - Google Patents

情報処理装置、情報処理方法、及び、情報処理プログラム Download PDF

Info

Publication number
WO2023002635A1
WO2023002635A1 PCT/JP2021/027424 JP2021027424W WO2023002635A1 WO 2023002635 A1 WO2023002635 A1 WO 2023002635A1 JP 2021027424 W JP2021027424 W JP 2021027424W WO 2023002635 A1 WO2023002635 A1 WO 2023002635A1
Authority
WO
WIPO (PCT)
Prior art keywords
information processing
software
data
verification
activation
Prior art date
Application number
PCT/JP2021/027424
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 CN202180100491.5A priority Critical patent/CN117651947A/zh
Priority to JP2023533918A priority patent/JP7341376B2/ja
Priority to DE112021007690.6T priority patent/DE112021007690T5/de
Priority to PCT/JP2021/027424 priority patent/WO2023002635A1/ja
Publication of WO2023002635A1 publication Critical patent/WO2023002635A1/ja
Priority to US18/525,386 priority patent/US20240104219A1/en

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/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
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Definitions

  • the present disclosure relates to an information processing device, an information processing method, and an information processing program.
  • Patent Document 1 discloses a technique for verifying the validity of software when starting up an information processing device.
  • an area to be verified is determined in advance, a hash value or the like of the area to be verified is calculated, and the calculated hash value or the like is stored as a comparison target.
  • the hash value of the area to be verified is recalculated, and the recalculated hash value is compared with the hash value stored as a comparison target. It is determined that the description has not been changed in the region to be verified.
  • Patent Document 1 since the validity of all the software in the information processing device is verified when the information processing device is started, there is a problem that it takes time to verify the validity. It should be noted that since information processing apparatuses often have restrictions on startup time, it is possible that the restrictions on startup time cannot be satisfied if verification of validity takes time.
  • the purpose of this disclosure is to reduce the time required to verify the validity of software by only verifying the validity of software that is executed at startup.
  • the information processing device is An information processing device for verifying software, Verification data calculated based on data stored in a storage location indicated by activation record data indicating a storage location in which activation software to be executed when the information processing device is activated, wherein the information processing device comprises: Verification data, which is verification data calculated when the device is started, and verification data, which is calculated before the information processing device is started based on the startup software, and is used as a comparison target for the verification target data. and a validity verification section for verifying the validity of the activation software by comparing it with comparison data, which is data for verification to be performed.
  • FIG. 1 is a diagram showing a configuration example of an information processing apparatus 100 according to Embodiment 1;
  • FIG. 4 is a diagram showing a specific example of activation record data 102 according to the first embodiment;
  • FIG. 5 is a diagram showing a specific example of comparison data 104 according to the first embodiment;
  • FIG. 2 is a diagram showing a hardware configuration example of the information processing apparatus 100 according to the first embodiment;
  • FIG. 4 is a flowchart showing the operation of the information processing apparatus 100 according to Embodiment 1;
  • FIG. 2 is a diagram showing a hardware configuration example of an information processing apparatus 100 according to a modification of the first embodiment;
  • FIG. FIG. 2 is a diagram showing a configuration example of an information processing apparatus 100 according to a second embodiment;
  • FIG. 1 shows a configuration example of an information processing apparatus 100 according to the first embodiment.
  • the information processing apparatus 100 includes a validity verification section 101 and a software storage 103, and records boot record data 102 and comparison data 104.
  • FIG. 1 shows a configuration example of an information processing apparatus 100 according to the first embodiment.
  • the information processing apparatus 100 includes a validity verification section 101 and a software storage 103, and records boot record data 102 and comparison data 104.
  • the legitimacy verification unit 101 verifies the legitimacy of each startup software by comparing the verification target data and the comparison data 104 .
  • the boot software is software that is executed when the information processing apparatus 100 is booted.
  • the number of activation software may be plural.
  • the verification target data is verification data calculated based on the data stored in the storage location indicated by the activation record data 102, and is verification data calculated when the information processing apparatus 100 is activated. Processing executed by the validity verification unit 101 when the information processing apparatus 100 is started will be described. First, the validity verification unit 101 reads the boot record data 102 in order to determine the software to be verified.
  • the validity verification unit 101 determines the address range of the software storage 103 to be verified based on the start address and the software size recorded in the read boot record data 102, and determines each address of the software storage 103 determined. Compute validation data for the range.
  • the start address is the top address of the area where each boot software is stored.
  • the software size is the data size of software.
  • Verification data is data for verifying the validity of software, and as a specific example, it is a hash or MAC (Message Authentication Code) in an area where software is stored. That is, the verification data is data indicating the hash value or MAC of the software corresponding to the verification data.
  • the verification data calculated here is also called verification target data.
  • the validity verification unit 101 determines whether or not each of the calculated verification data matches the comparison data corresponding to each software stored in the comparison data 104, and determines which of the calculated verification data is the comparison data stored in the comparison data 104, and if it matches the comparison data corresponding to each verification data, it is assumed that the verification of the legitimacy of the activation software has been completed.
  • FIG. 2 shows a specific example of the activation record data 102.
  • the activation record data 102 is data indicating the storage location where the activation software should be stored, and is data recording the start address and software size of the software to be executed when the information processing apparatus 100 is activated. is.
  • the boot record data 102 is stored in advance in the information processing apparatus 100 when the information processing apparatus 100 is shipped from the factory or the like. Note that when software in a memory area with discontinuous addresses is divided and stored, the start address and software size of each fragment of the divided software are recorded in the start record data 102. .
  • the software storage 103 is a storage that stores each software executed by the information processing apparatus 100 .
  • Each piece of software stored in the software storage 103 is classified into two types: software that is executed when the information processing apparatus 100 is started, and software that is not executed when the information processing apparatus 100 is started.
  • the comparison data 104 is verification data calculated in advance before the information processing apparatus 100 is activated, and indicates verification data that should exist for each running software. This is verification data used as Each data included in the comparison data 104 is also comparison data.
  • the comparison data 104 is stored in advance in the information processing apparatus 100 when the information processing apparatus 100 is shipped from the factory. Note that each of the comparison data 104 and the verification target data may be data corresponding to software that is not executed when the information processing apparatus 100 is started.
  • FIG. 3 shows a specific example of the comparison data 104. As shown in FIG. As shown in FIG. 3, the comparison data 104 includes verification data and information indicating the start address and software size of boot software corresponding to each verification data. The start address and software size are information for specifying the area in which each boot software is stored.
  • FIG. 4 shows a hardware configuration example of the information processing device 100 .
  • the information processing apparatus 100 is composed of a computer including a HSM (Hardware Security Module) 10, a storage device 20, a main CPU (Central Processing Unit) 30, and a RAM 40.
  • the information processing device 100 may be composed of a plurality of computers.
  • the HSM 10 is a module in which circuits related to security processing are packaged.
  • the HSM 10 is a module having a function of executing cryptographic calculations using the cryptographic calculation engine 12 by the secure CPU 11 and a function of providing a tamper-resistant storage area by the secure storage 13 .
  • the secure CPU 11 is a CPU that executes the processing of the HSM 10 .
  • the secure CPU 11 performs processing corresponding to calculation instructions to the cryptographic calculation engine 12 , instructions to store data in the secure storage 13 , and instructions to the HSM 10 from the main CPU 30 outside the HSM 10 .
  • the validity verification unit 101 operates in the secure CPU 11 .
  • the cryptographic calculation engine 12 is a circuit that performs cryptographic processing within the HSM 10 at high speed.
  • the secure storage 13 is a tamper-resistant storage for storing data to be protected from tampering. Specific examples of data stored in the secure storage 13 are shown below.
  • the secret key is an encryption key used when calculating the MAC indicated by the comparison data 104 .
  • the storage device 20 serves as a software storage 103, and is a storage such as a flash memory as a specific example.
  • the main CPU 30 is an arithmetic circuit responsible for processing of the information processing apparatus 100 and is a CPU that executes processing of software stored in the software storage 103 .
  • RAM 40 The RAM 40 is a volatile memory that stores temporary data and the like when software is executed by the main CPU 30 .
  • Any program described in this specification may be recorded on a computer-readable non-volatile recording medium.
  • a nonvolatile recording medium is, for example, an optical disk or a flash memory. Any program described herein may be provided as a program product.
  • An operation procedure of the information processing apparatus 100 corresponds to an information processing method.
  • a program that implements the operation of the information processing apparatus 100 corresponds to an information processing program.
  • FIG. 5 is a flowchart showing an example of processing when the information processing apparatus 100 according to Embodiment 1 is activated. A process performed when the information processing apparatus 100 is activated will be described with reference to FIG.
  • Step S101 When the information processing apparatus 100 is powered on by the user of the information processing apparatus 100, the validity verification unit 101 starts executing processing.
  • the validity verification unit 101 determines the address range of the software storage 103 to be verified from the start address and the software size indicated by the activation record data 102, and uses the data stored in the determined address range of the software storage 103. Calculate validation data.
  • Step S102 The validity verification unit 101 compares the verification data calculated in step S101 with the comparison data 104 . If there is at least one piece of verification data that does not match the data indicated by the comparison data 104 in the calculated verification data, the validity verification unit 101 proceeds to step S104. Otherwise, the validity verification unit 101 proceeds to step S103.
  • Step S103 The validity verification unit 101 causes the main CPU 30 to start executing each boot software stored in the software storage 103 . After completing this step, the validity verification unit 101 proceeds to step S105.
  • the validity verification unit 101 takes action.
  • the countermeasure is to prevent the information processing apparatus 100 from executing software corresponding to the verification data that does not match the data indicated by the comparison data 104, and to handle the verification data that matches the data indicated by the comparison data 104.
  • the information processing apparatus 100 executes only software.
  • Step S105 The validity verification unit 101 verifies the validity of software that is not executed when the information processing apparatus 100 is started.
  • the information processing apparatus 100 according to the first embodiment verifies only the software that is executed when the information processing apparatus 100 is started, not all the software in the information processing apparatus 100, when the information processing apparatus 100 is started. do. Therefore, according to the information processing apparatus 100 according to Embodiment 1, the number of pieces of software for verifying validity can be reduced, and as a result, the size of the software for verifying validity can be reduced. In general, the time spent on verification of validity is proportional to the size of the software, so reducing the size of the software to verify validity can reduce the time spent on verification of validity.
  • the information processing apparatus 100 is suitable for use in a vehicle control apparatus.
  • a device used as a vehicle control device has a limitation regarding start-up time.
  • the software size of the vehicle control device is large, there is a risk that if the validity verification processing of all the software of the vehicle control device is performed when the vehicle control device is started, the limitation regarding the start-up time is not satisfied.
  • the information processing apparatus 100 according to Embodiment 1 is used as the vehicle control apparatus, the risk of not satisfying the restrictions regarding the activation time is reduced.
  • FIG. 6 shows a hardware configuration example of an information processing apparatus 100 according to this modification.
  • Information processing apparatus 100 includes processing circuit 50 in place of main CPU 30 , main CPU 30 and RAM 40 , main CPU 30 and storage device 20 , or main CPU 30 , RAM 40 and storage device 20 .
  • the processing circuit 50 is hardware that implements at least part of each unit included in the information processing apparatus 100 .
  • Processing circuitry 50 may implement the functionality of HSM 10 .
  • the processing circuit 50 may be dedicated hardware, or may be a processor that executes programs stored in the RAM 40 .
  • the processing circuit 50 may be, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array) or a combination thereof.
  • the information processing device 100 may include a plurality of processing circuits that substitute for the processing circuit 50 .
  • a plurality of processing circuits share the role of the processing circuit 50 .
  • the processing circuit 50 is implemented by hardware, software, firmware, or a combination thereof, as a specific example.
  • the main CPU 30, RAM 40, storage device 20 and processing circuit 50 are collectively referred to as "processing circuitry". That is, the function of each functional component of the information processing apparatus 100 is implemented by the processing circuitry.
  • An information processing apparatus 100 according to another embodiment may also have a configuration similar to that of this modified example.
  • boot record data 102 is stored in the information processing apparatus 100 when the information processing apparatus 100 is shipped from the factory. If there is a change in the configuration, the installed or updated boot software also starts executing when the information processing apparatus 100 is booted, but the prestored boot record data 102 may correspond to the installed or updated boot software. Can not.
  • the information processing apparatus 100 may calculate the verification data when installing or updating the modified activation software, and add the calculated verification data to the comparison data 104 .
  • Verification data may be added to the modified activation software in advance, and the information processing apparatus 100 may add the added verification data to the comparison data 104 when the modified activation software is installed or updated.
  • FIG. 7 shows a configuration example of the information processing device 100 according to the second embodiment. Functions added in the second embodiment will be mainly described below.
  • Activation completion notification unit 105 is executed after completion of validity verification processing for the activation software.
  • the activation completion notification unit 105 detects that the activation software whose execution is started last among the respective activation software has been executed, the activation completion notification unit 105 notifies the activation record acquisition unit 106 that the activation of the activation software has been completed. to send.
  • the activation record acquisition unit 106 is executed after completion of validity verification processing for the activation software.
  • Activation record acquisition unit 106 obtains the start address and the software whose execution has been started from immediately after validity verification unit 101 completes the validation of the validity of the activation software until receiving the notification regarding activation completion from activation completion notification unit 105 .
  • Record the size and That is, the activation record acquisition unit 106 indicates the storage location of each piece of software that was activated after the information processing apparatus 100 was activated until it was detected that the software to be last executed among the activated software was executed. Get storage location data.
  • the activation completion notification unit 105 notifies the activation record acquisition unit 106 of the activation completion, the activation record acquisition unit 106 ends recording the activation software. Update with data.
  • a program for functionally implementing each of the activation completion notification unit 105 and the activation record acquisition unit 106 is, as a specific example, stored in the storage device 20 in the hardware configuration shown in FIG. 4 and executed by the main CPU 30 .
  • FIG. 8 is a flow chart showing an example of processing of the activation completion notification unit 105 according to the second embodiment.
  • FIG. 9 is a flow chart showing an example of processing of the activation record acquisition unit 106 according to the second embodiment.
  • the processing of the activation completion notification unit 105 and the processing of the activation record acquisition unit 106 will be described with reference to FIGS. 8 and 9.
  • Step S201 starts in a state after step S103 in the first embodiment, that is, in a state in which the validity verification process is completed.
  • the main CPU 30 activates the activation completion notifier 105 .
  • Step S202 The activation completion notification unit 105 determines whether the activation software whose execution is started by the main CPU 30 is the activation software whose execution is started last among the respective activation software. When the boot software whose execution is started is the boot software whose execution is started last, the boot completion notification unit 105 proceeds to step S203. In other cases, the activation completion notification unit 105 repeats the process of step S202 until the activation software whose execution is started last is started.
  • Step S203 Boot completion notification unit 105 transmits a boot completion notification to boot record acquisition unit 106 .
  • Step S301 starts in the state after step S103 in the first embodiment, that is, in the state where the validity verification process is completed.
  • the main CPU 30 activates the activation record acquisition unit 106 .
  • Step S302 Activation record acquisition unit 106 records the start address and software size of each activation software whose execution is started by main CPU 30 when information processing apparatus 100 is activated.
  • Step S303 The activation record acquisition unit 106 checks whether or not the activation completion notification has been received from the activation completion notification unit 105 . If the activation completion notification is received, the activation record acquisition unit 106 proceeds to step S304. Otherwise, the activation record acquisition unit 106 returns to step S302 and continues recording the start address and software size of the activation software.
  • Step S304 The boot record acquisition unit 106 ends recording the start address and software size of each boot software.
  • Step S305 Activation record acquisition unit 106 updates activation record data 102 using the start address and software size of each activation software recorded up to step S304.
  • the information processing apparatus 100 starts booting when the information processing apparatus 100 is booted, for example, when new software is installed as boot software, or when software stored in the software storage 103 is updated. By recording the start address and software size of the software to be verified, it is possible to dynamically determine the software to be verified.
  • the information processing apparatus 100 is suitable for use in a vehicle control apparatus.
  • a device used as a vehicle control device application of a technique in which a user installs arbitrary software and updates the software of the vehicle control device via the Internet is being considered. If this technology is applied to a vehicle control device, it may become impossible for the developer of the vehicle control device to manage the software configuration of the vehicle control device. Therefore, in the conventional validity verification method that statically determines the verification target and the verification order, if the user installs software that the developer is not aware of, the software installed by the user is subject to verification of validity. may not be.
  • the activation record acquisition unit 106 records the activation software. Therefore, even arbitrary software installed by the user can be verified for validity if it is executed when the information processing apparatus 100 is started.
  • the software configuration change is to change the configuration of the software stored in the information processing apparatus 100, and as a specific example, install new software in the information processing apparatus 100 or change the software stored in the information processing apparatus 100. is to update Therefore, when the information processing apparatus 100 is started next time, the software whose configuration has been changed is not subject to verification of validity.
  • new software or updated software which is software on which a configuration change has been made, may correspond to the changed activation software.
  • the modified activation software which is software whose configuration has been changed, is tampered with, and the information processing device 100 is activated while the tampered modified activation software is not subject to verification of validity at the time of activation of the information processing device 100.
  • the information processing apparatus 100 operates without verifying the legitimacy of the modified boot software that has been tampered with.
  • the information processing apparatus 100 according to the third embodiment changes the configuration when the information processing apparatus 100 is started up when the configuration of the software is changed during the operation of the information processing apparatus 100. has a function to perform correctness verification for the software on which the
  • FIG. 10 shows a configuration example of an information processing apparatus 100 according to this embodiment.
  • FIG. 10 shows a configuration in which the software management unit 107 is added to the information processing apparatus 100 according to the second embodiment
  • the configuration of the information processing apparatus 100 is similar to that of the information processing apparatus 100 according to the first embodiment.
  • the software management unit 107 may be added.
  • the validity verification unit 101 according to Embodiment 3 has a function of saving the calculated verification data in the secure storage 13 in addition to the function of calculating the verification data. Functions added in the third embodiment will be mainly described below.
  • (Software management unit 107) When the configuration of the software stored in the information processing apparatus 100 is changed during operation of the information processing apparatus 100, the software management unit 107 detects the software whose configuration has been changed, and based on the detection result, It updates the activation record data 102 and issues an instruction to the validity verification unit 101 . In updating the boot record data 102, the software management unit 107 sets the start address of the software whose configuration has been changed so that the software whose configuration has been changed will be subject to validity verification when the information processing apparatus 100 is next started. and the software size are added to the activation record data 102 . In issuing an instruction to the validity verification unit 101, the verification data of the software whose configuration has been changed is not saved as the comparison data 104. Therefore, the software management unit 107 issues an instruction to calculate the verification data as the validity of the verification data. Issued to the verification unit 101 .
  • a program for functionally implementing the software management unit 107 is, as a specific example, stored in the storage device 20 in the hardware configuration shown in FIG. 4 and executed by the main CPU 30 .
  • FIG. 11 is a flow chart showing an example of processing of the information processing apparatus 100 according to the third embodiment. Processing when the configuration of software is changed during operation of the information processing apparatus 100 will be described with reference to FIG. 11 .
  • Step S401 The software management unit 107 detects the implemented configuration change when the software configuration change is implemented.
  • Step S402 The software management unit 107 adds, to the start record data 102, data indicating each of the start address and software size of the software whose configuration has been changed. By executing the process of this step, the software whose configuration has been changed is forcibly targeted for verification when the information processing apparatus 100 is started next time.
  • Step S403 The software management unit 107 issues to the validity verification unit 101 a command for calculating verification data corresponding to the software whose configuration has been changed.
  • the validity verification unit 101 calculates the verification data, and updates the comparison data 104 using the calculated verification data. That is, when the software management unit 107 detects software whose configuration has been changed, the validity verification unit 101 calculates the comparison data 104 corresponding to the software whose configuration has been changed.
  • the information processing apparatus 100 according to the third embodiment updates the activation record data 102 and the comparison data 104 according to the software whose configuration has been changed, the software whose configuration has been changed while the information processing apparatus 100 is operating. can be used as a verification target for validity when the information processing apparatus 100 is activated next time.
  • the operation of the boot completion notification unit 105 and the boot record acquisition unit 106 described in the second embodiment causes the information processing apparatus 100 to It is excluded from the boot record data 102 at boot time. Therefore, when the information processing apparatus 100 is activated one after another, the software is no longer subject to validity verification.
  • the information processing device 100 according to the third embodiment is suitable for a vehicle control device, like the information processing device 100 according to the second embodiment.

Abstract

情報処理装置(100)は、正当性検証部(101)を備える。正当性検証部(101)は、情報処理装置(100)の起動時に実行される起動ソフトウェアが格納されるべき格納場所を示す起動記録データが示す格納場所に格納されているデータに基づいて計算される検証用データであって、情報処理装置(100)の起動時に計算される検証用データである検証対象データと、起動ソフトウェアに基づいて情報処理装置(100)の起動前に計算された検証用データであって、検証対象データの比較対象として使用される検証用データである比較データとを比較することによって起動ソフトウェアの正当性を検証する。

Description

情報処理装置、情報処理方法、及び、情報処理プログラム
 本開示は、情報処理装置、情報処理方法、及び、情報処理プログラムに関する。
 特許文献1は、情報処理装置の起動時におけるソフトウェアの正当性の検証に関する技術を開示している。当該技術では、まず、検証する領域を予め定めておき、検証する領域のハッシュ値等を計算し、計算したハッシュ値等を比較対象として保存する。そして、情報処理装置の起動時に、検証する領域のハッシュ値等を再計算し、再計算したハッシュ値等と比較対象として保存しておいたハッシュ値等とを比較し、これらが一致していれば検証する領域において記述が変更されていないと判定する。
特開2013-084078号公報
 特許文献1が開示する技術によれば、情報処理装置の起動時に情報処理装置内のソフトウェア全ての正当性を検証するため、正当性の検証に時間がかかるという課題がある。なお、情報処理装置には起動時間に関する制約があることが多いため、正当性の検証に時間がかかると、起動時間に関する制約を満たすことができない可能性がある。
 本開示は、起動時に実行されるソフトウェアのみを正当性の検証対象とすることにより、ソフトウェアの正当性の検証に要する時間を短縮することを目的とする。
 本開示に係る情報処理装置は、
 ソフトウェアを検証する情報処理装置であって、
 前記情報処理装置の起動時に実行される起動ソフトウェアが格納されるべき格納場所を示す起動記録データが示す格納場所に格納されているデータに基づいて計算される検証用データであって、前記情報処理装置の起動時に計算される検証用データである検証対象データと、前記起動ソフトウェアに基づいて前記情報処理装置の起動前に計算された検証用データであって、前記検証対象データの比較対象として使用される検証用データである比較データとを比較することによって前記起動ソフトウェアの正当性を検証する正当性検証部
を備える。
 本開示によれば、起動記録データが示す格納場所に格納されているソフトウェアのみを正当性の検証対象とする。そのため、本開示によれば、起動時に実行されるソフトウェアのみを正当性の検証対象とすることにより、ソフトウェアの正当性の検証に要する時間を短縮することができる。
実施の形態1に係る情報処理装置100の構成例を示す図。 実施の形態1に係る起動記録データ102の具体例を示す図。 実施の形態1に係る比較データ104の具体例を示す図。 実施の形態1に係る情報処理装置100のハードウェア構成例を示す図。 実施の形態1に係る情報処理装置100の動作を示すフローチャート。 実施の形態1の変形例に係る情報処理装置100のハードウェア構成例を示す図。 実施の形態2に係る情報処理装置100の構成例を示す図。 実施の形態2に係る起動完了通知部105の動作を示すフローチャート。 実施の形態2に係る起動記録取得部106の動作を示すフローチャート。 実施の形態3に係る情報処理装置100の構成例を示す図。 実施の形態3に係る情報処理装置100の動作を示すフローチャート。
 実施の形態の説明及び図面において、同じ要素及び対応する要素には同じ符号を付している。同じ符号が付された要素の説明は、適宜に省略又は簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。また、「部」を、「回路」、「工程」、「手順」、「処理」又は「サーキットリー」に適宜読み替えてもよい。
 実施の形態1.
 以下、本実施の形態について、図面を参照しながら詳細に説明する。
***構成の説明***
 図1は、実施の形態1における情報処理装置100の構成例を示している。図1に示すように、情報処理装置100は、正当性検証部101とソフトウェアストレージ103とを備え、起動記録データ102と比較データ104とを記録する。
(正当性検証部101)
 正当性検証部101は、検証対象データと比較データ104とを比較することによって各起動ソフトウェアの正当性を検証する。起動ソフトウェアは、情報処理装置100の起動時に実行されるソフトウェアである。起動ソフトウェアの数は複数であることもある。検証対象データは、起動記録データ102が示す格納場所に格納されているデータに基づいて計算される検証用データであって、情報処理装置100の起動時に計算される検証用データである。
 正当性検証部101が情報処理装置100の起動時において実行する処理を説明する。まず、正当性検証部101は、検証対象であるソフトウェアを決定するために、起動記録データ102を読み出す。次に、正当性検証部101は、読み出した起動記録データ102に記録された開始アドレス及びソフトウェアサイズを基に検証対象であるソフトウェアストレージ103のアドレス範囲を決定し、決定したソフトウェアストレージ103の各アドレス範囲における検証用データを計算する。開始アドレスは、各起動ソフトウェアが格納されている領域の先頭アドレスである。ソフトウェアサイズは、ソフトウェアのデータサイズである。検証用データは、ソフトウェアの正当性を検証するためのデータであり、具体例として、ソフトウェアが格納されている領域におけるハッシュ又はMAC(Message Authentication Code)である。即ち、検証用データは、検証用データに対応するソフトウェアのハッシュ値又はMACを示すデータである。また、ここで計算した検証用データは検証対象データとも呼ばれる。次に、正当性検証部101は、計算した各検証用データが比較データ104に保存された各ソフトウェアに対応する比較用データと一致しているか否かを判別し、計算した検証用データのいずれも比較データ104に保存された比較用データであって、各検証用データに対応する比較用データと一致している場合に、起動ソフトウェアの正当性の検証が完了したものとする。
(起動記録データ102)
 図2は、起動記録データ102の具体例を示している。図2に示すように、起動記録データ102は、起動ソフトウェアが格納されるべき格納場所を示すデータであり、情報処理装置100の起動時に実行されるソフトウェアの開始アドレスとソフトウェアサイズとを記録したデータである。起動記録データ102は、情報処理装置100の工場出荷時等に情報処理装置100に事前に保存される。なお、アドレスが連続しないメモリ領域にあるソフトウェアが分割して保存されている場合において、起動記録データ102には、分割された当該あるソフトウェアの各断片の開始アドレスとソフトウェアサイズとが記録されている。
(ソフトウェアストレージ103)
 ソフトウェアストレージ103は、情報処理装置100が実行する各ソフトウェアを格納するストレージである。ソフトウェアストレージ103に格納される各ソフトウェアは、情報処理装置100の起動時に実行されるソフトウェアと、情報処理装置100の起動時に実行されないソフトウェアとの2種類に分類される。
(比較データ104)
 比較データ104は、情報処理装置100の起動前に予め計算された検証用データであって、各起動ソフトウェアのあるべき検証用データを示し、また、ソフトウェアの正当性検証において検証対象データの比較対象として使用される検証用データである。比較データ104に含まれる各データは比較用データでもある。比較データ104は、情報処理装置100の工場出荷時等に情報処理装置100に事前に保存される。なお、比較データ104と検証対象データとの各々は、情報処理装置100の起動時に実行されないソフトウェアに対応するデータであってもよい。
 図3は、比較データ104の具体例を示している。図3に示すように、比較データ104は、検証用データと、各検証用データに対応する起動ソフトウェアの開始アドレスとソフトウェアサイズとの各々を示す情報を含む。開始アドレスとソフトウェアサイズとは、各起動ソフトウェアが格納されている領域を特定するための情報である。
 図4は、情報処理装置100のハードウェア構成例を示している。図4に示すように、情報処理装置100は、HSM(Hardware Security Module)10と、記憶装置20と、メインCPU(Central Processing Unit)30と、RAM40とを備えるコンピュータから構成される。情報処理装置100は複数のコンピュータから構成されてもよい。
(HSM10の説明)
 HSM10は、セキュリティ処理に係る回路をパッケージ化したモジュールである。HSM10は、具体例として、セキュアCPU11による暗号計算エンジン12を用いた暗号計算を実行する機能と、セキュアストレージ13による耐改ざん性のある保存領域を提供する機能とを備えたモジュールである。
(セキュアCPU11)
 セキュアCPU11は、HSM10の処理を実施するCPUである。セキュアCPU11は、暗号計算エンジン12への計算命令と、セキュアストレージ13へデータを格納する命令と、HSM10の外部のメインCPU30からHSM10に対する命令に対応する処理等を行う。また、正当性検証部101はセキュアCPU11において動作する。
(暗号計算エンジン12)
 暗号計算エンジン12は、HSM10内の暗号処理を高速で行う回路である。
(セキュアストレージ13)
 セキュアストレージ13は、改ざんから保護したいデータを格納するための耐改ざん性を備えるストレージである。セキュアストレージ13に保存されるデータの具体例を以下に示す。ここで、秘密鍵は、比較データ104が示すMACを計算する際に用いる暗号鍵である。
・正当性検証部101を機能実装するプログラム
・起動記録データ102
・比較データ104
・秘密鍵
(記憶装置20)
 記憶装置20は、ソフトウェアストレージ103としての役割を担い、具体例としてFlashメモリ等のストレージである。
(メインCPU30)
 メインCPU30は、情報処理装置100の処理を担う演算回路であり、ソフトウェアストレージ103に格納されるソフトウェアの処理を実施するCPUである。
(RAM40)
 RAM40は、メインCPU30によるソフトウェア実行時の一時データ等を記憶する揮発メモリである。
 本明細書に記載されているいずれのプログラムも、コンピュータが読み取り可能な不揮発性の記録媒体に記録されていてもよい。不揮発性の記録媒体は、具体例として、光ディスク又はフラッシュメモリである。本明細書に記載されているいずれのプログラムも、プログラムプロダクトとして提供されてもよい。
***動作の説明***
 情報処理装置100の動作手順は、情報処理方法に相当する。また、情報処理装置100の動作を実現するプログラムは、情報処理プログラムに相当する。
 図5は、実施の形態1における情報処理装置100の起動時の処理の一例を示すフローチャートである。情報処理装置100の起動時の処理について、図5を参照しながら説明する。
(ステップS101)
 情報処理装置100のユーザーにより情報処理装置100の電源がONにされると、正当性検証部101は処理の実行を開始する。
 正当性検証部101は、起動記録データ102が示す開始アドレス及びソフトウェアサイズより検証対象であるソフトウェアストレージ103のアドレス範囲を決定し、決定したソフトウェアストレージ103のアドレス範囲に格納されているデータを用いて検証用データを計算する。
(ステップS102)
 正当性検証部101は、ステップS101で計算した検証用データを比較データ104と比較する。
 計算した検証用データの中に比較データ104が示すデータに一致しない検証用データが1つでもある場合、正当性検証部101はステップS104に進む。それ以外の場合、正当性検証部101はステップS103に進む。
(ステップS103)
 正当性検証部101は、メインCPU30によって、ソフトウェアストレージ103に保存された各起動ソフトウェアの実行を開始する。
 本ステップの終了後、正当性検証部101はステップS105に進む。
(ステップS104)
 正当性検証部101は対処を施す。対処は、具体例として、比較データ104が示すデータに一致しなかった検証用データに対応するソフトウェアを情報処理装置100に実行させず、比較データ104が示すデータに一致した検証用データに対応するソフトウェアだけを情報処理装置100に実行させることが挙げられる。
(ステップS105)
 正当性検証部101は、情報処理装置100の起動時に実行されないソフトウェアの正当性を検証する。
***実施の形態1の効果の説明***
 以上の動作により、実施の形態1に係る情報処理装置100は、情報処理装置100内の全てのソフトウェアではなく、情報処理装置100の起動時に実行されるソフトウェアのみを情報処理装置100の起動時に検証する。そのため、実施の形態1に係る情報処理装置100によれば、正当性を検証するソフトウェアの数を削減することができ、その結果、正当性を検証するソフトウェアのサイズを削減することができる。一般的に、正当性の検証に費やされる時間はソフトウェアのサイズに比例するため、正当性を検証するソフトウェアのサイズを削減することにより、正当性の検証に費やされる時間を削減することができる。
 また、検証対象であるソフトウェアが格納されている領域のハッシュ等を算出することによって検証対象であるソフトウェア全体を検証するため、改ざん範囲がソフトウェアの一部の場合であっても、検証対象であるソフトウェアの改ざんを検知することができる。
 また、本実施の形態に係る情報処理装置100は、具体例として、車両制御装置に用いられることに適している。車両制御装置として用いられる機器には、起動時間に関する制約がある。車両制御装置のソフトウェアサイズが大きい場合、車両制御装置の起動時に車両制御装置の全てのソフトウェアの正当性検証処理を実施すると、起動時間に関する制約を満たさないリスクがある。
 しかしながら、車両制御装置として実施の形態1に係る情報処理装置100を用いた場合、起動時間に関する制約を満たさないリスクが軽減される。
***他の構成***
<変形例1>
 図6は、本変形例に係る情報処理装置100のハードウェア構成例を示している。
 情報処理装置100は、メインCPU30、メインCPU30とRAM40、メインCPU30と記憶装置20、あるいはメインCPU30とRAM40と記憶装置20とに代えて、処理回路50を備える。
 処理回路50は、情報処理装置100が備える各部の少なくとも一部を実現するハードウェアである。処理回路50はHSM10の機能を実現してもよい。
 処理回路50は、専用のハードウェアであってもよく、また、RAM40に格納されるプログラムを実行するプロセッサであってもよい。
 処理回路50が専用のハードウェアである場合、処理回路50は、具体例として、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)又はこれらの組み合わせである。
 情報処理装置100は、処理回路50を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路50の役割を分担する。
 情報処理装置100において、一部の機能が専用のハードウェアによって実現されて、残りの機能がソフトウェア又はファームウェアによって実現されてもよい。
 処理回路50は、具体例として、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせにより実現される。
 メインCPU30とRAM40と記憶装置20と処理回路50とを、総称して「プロセッシングサーキットリー」という。つまり、情報処理装置100の各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
 他の実施の形態に係る情報処理装置100についても、本変形例と同様の構成であってもよい。
 実施の形態2.
 以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
***構成の説明***
 実施の形態1では起動記録データ102は情報処理装置100の工場出荷時等に情報処理装置100に保存されている想定であったが、工場出荷後等における起動ソフトウェアのインストール又は更新等、起動ソフトウェアに構成の変更がある場合、インストール又は更新された起動ソフトウェアも情報処理装置100の起動時に実行を開始するが、予め保存された起動記録データ102ではインストール又は更新された起動ソフトウェアに対応することができない。以下、工場出荷後等においてインストールされた起動ソフトウェア、又は、工場出荷後等において更新された起動ソフトウェア等、工場出荷後等における起動ソフトウェアの構成変更に関するソフトウェアを総称して変更起動ソフトウェアと呼ぶ。
 そこで、実施の形態2に係る情報処理装置100は、情報処理装置100の起動時に起動記録データ102を取得することにより、変更起動ソフトウェアに対応する。
 なお、起動ソフトウェアの構成が変更された場合において、変更起動ソフトウェアの検証用データを計算し、計算した検証用データを用いて比較データ104を更新しておく必要がある。比較データ104の更新について、情報処理装置100が、変更起動ソフトウェアのインストール又は更新時等に検証用データを計算し、計算した検証用データを比較データ104に追加してもよい。また、変更起動ソフトウェアに予め検証用データを付与しておき、情報処理装置100が、変更起動ソフトウェアのインストール又は更新時等に付与された検証用データを比較データ104に追加してもよい。
[実施の形態2における追加構成要素の説明]
 図7は、実施の形態2における情報処理装置100の構成例を示している。以下、実施の形態2において追加された機能について主に説明する。
(起動完了通知部105)
 起動完了通知部105は、起動ソフトウェアに対する正当性検証処理の完了後に実行される。起動完了通知部105は、各起動ソフトウェアのうち、最後に実行開始される起動ソフトウェアが実行されたことを検知した場合に、起動記録取得部106に起動ソフトウェアが起動完了したことを示す起動完了通知を送信する。
(起動記録取得部106)
 起動記録取得部106は、起動ソフトウェアに対する正当性検証処理の完了後に実行される。起動記録取得部106は、正当性検証部101が起動ソフトウェアに対する正当性の検証を完了した直後から、起動完了通知部105から起動完了に関する通知を受け取るまでに実行開始されたソフトウェアの開始アドレスとソフトウェアサイズとを記録する。即ち、起動記録取得部106は、情報処理装置100が起動してから、起動ソフトウェアのうち最後に実行されるソフトウェアが実行されたことが検知されるまでに起動された各ソフトウェアの格納場所を示す格納場所データを取得する。
 起動記録取得部106は、起動完了通知部105から起動完了を通知されると起動ソフトウェアを記録することを終了し、その後、現在の起動記録データ102を今回取得した起動ソフトウェアの記録である格納場所データを用いて更新する。
[ハードウェアの構成例]
 起動完了通知部105及び起動記録取得部106の各々を機能実装するプログラムは、具体例として、図4に示すハードウェア構成における、記憶装置20に格納され、メインCPU30で実行される。
***動作の説明***
 図8は、実施の形態2における起動完了通知部105の処理の一例を示すフローチャートである。図9は、実施の形態2における起動記録取得部106の処理の一例を示すフローチャートである。図8及び図9を参照しながら起動完了通知部105の処理と起動記録取得部106の処理とを説明する。
 なお、起動完了通知部105と起動記録取得部106とは基本的に並行して動作する。
[起動完了通知部105の動作]
(ステップS201)
 ステップS201は、実施の形態1におけるステップS103以降の状態である、正当性検証処理が完了した状態において開始する。メインCPU30は、起動完了通知部105を起動する。
(ステップS202)
 起動完了通知部105は、メインCPU30により実行開始された起動ソフトウェアが、各起動ソフトウェアのうち最後に実行開始される起動ソフトウェアであるか否かを判定する。
 実行開始された起動ソフトウェアが最後に実行開始される起動ソフトウェアである場合、起動完了通知部105はステップS203へと進む。それ以外の場合、最後に実行開始される起動ソフトウェアが実行開始されるまで、起動完了通知部105はステップS202の処理を繰り返す。
(ステップS203)
 起動完了通知部105は、起動完了通知を起動記録取得部106に送信する。
[起動記録取得部106の動作]
(ステップS301)
 ステップS301は、実施の形態1におけるステップS103以降の状態である、正当性検証処理が完了した状態において開始する。メインCPU30は、起動記録取得部106を起動する。
(ステップS302)
 起動記録取得部106は、情報処理装置100の起動時においてメインCPU30により実行開始される各起動ソフトウェアの開始アドレスとソフトウェアサイズとを記録する。
(ステップS303)
 起動記録取得部106は、起動完了通知部105から起動完了通知を受信したか否かを確認する。
 起動完了通知を受信した場合、起動記録取得部106はステップS304に進む。それ以外の場合、起動記録取得部106は、ステップS302に戻り、起動ソフトウェアの開始アドレスとソフトウェアサイズとを記録することを継続する。
(ステップS304)
 起動記録取得部106は、各起動ソフトウェアの開始アドレスとソフトウェアサイズとを記録することを終了する。
(ステップS305)
 起動記録取得部106は、ステップS304までに記録した各起動ソフトウェアの開始アドレスとソフトウェアサイズとを用いて起動記録データ102を更新する。
***実施の形態2の効果の説明***
 実施の形態2に係る情報処理装置100は、起動ソフトウェアとして新しいソフトウェアがインストールされた場合、又は、ソフトウェアストレージ103に格納されたソフトウェアが更新された場合等において、情報処理装置100の起動時に起動開始されるソフトウェアの開始アドレスとソフトウェアサイズとを記録することにより、動的に検証対象とするソフトウェアを決定することができる。
 本実施の形態に係る情報処理装置100は、具体例として、車両制御装置に用いられることに適している。車両制御装置として用いられる機器において、ユーザーによる任意のソフトウェアのインストールと、インターネットを介した車両制御装置のソフトウェアの更新等が実施される技術を適用することが検討されている。当該技術が車両制御装置に適用されると、車両制御装置の開発者が車両制御装置のソフトウェア構成を管理することができなくなる可能性がある。そのため、従来の静的に検証対象及び検証順序を決定する正当性検証方式では、開発者が認知していないソフトウェアがユーザーによりインストールされた場合に、ユーザーによりインストールされたソフトウェアが正当性の検証対象とならない可能性がある。
 実施の形態2に係る情報処理装置100では、起動ソフトウェアを起動記録取得部106が記録する。そのため、ユーザーがインストールした任意のソフトウェアであっても、情報処理装置100の起動時に実行されれば正当性の検証対象となる。
 実施の形態3.
 以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
***構成の説明***
 情報処理装置100の動作中にソフトウェアの構成変更が実施された場合において、実施の形態1及び2に係る情報処理装置100は、構成変更が実施されたソフトウェアを起動記録データ102に記録しない。ここで、ソフトウェアの構成変更は、情報処理装置100が格納するソフトウェアの構成を変更することであり、具体例として、情報処理装置100に新規ソフトウェアをインストールすること又は情報処理装置100が格納するソフトウェアを更新することである。そのため、情報処理装置100の次回の起動時において構成変更が実施されたソフトウェアは正当性の検証対象とならない。しかしながら、構成変更が実施されたソフトウェアである新規ソフトウェア又は更新されたソフトウェアが変更起動ソフトウェアに当たることもある。従って、構成変更が実施されたソフトウェアである変更起動ソフトウェアが改ざんされ、かつ、改ざんされた変更起動ソフトウェアが情報処理装置100の起動時における正当性の検証対象から漏れたまま情報処理装置100が起動した場合、改ざんされた変更起動ソフトウェアの正当性が検証されないまま情報処理装置100が動作することになる。
 実施の形態3に係る情報処理装置100は、上記のような事態を防止するため、情報処理装置100の動作中にソフトウェアの構成変更が実施された場合において、情報処理装置100の起動時に構成変更が実施されたソフトウェアに対する正当性の検証を実行する機能を有する。
[実施の形態3における追加構成要素の説明]
 図10は、本実施の形態における情報処理装置100の構成例を示している。なお、図10は実施の形態2に係る情報処理装置100に対してソフトウェア管理部107を追加した構成を示しているが、情報処理装置100の構成は、実施の形態1に係る情報処理装置100に対してソフトウェア管理部107を追加した構成であってもよい。また、実施の形態3における正当性検証部101は、検証用データを算出する機能に加えて、算出した検証用データをセキュアストレージ13に保存する機能を持つ。
 以下、実施の形態3において追加された機能について主に説明する。
(ソフトウェア管理部107)
 ソフトウェア管理部107は、情報処理装置100の動作中に情報処理装置100が格納するソフトウェアの構成変更が実施された場合において、構成変更が実施されたソフトウェアを検知し、検知した結果に基づいて、起動記録データ102の更新と、正当性検証部101への命令発行とを行う。
 起動記録データ102の更新では、ソフトウェア管理部107は、構成変更が実施されたソフトウェアが次回の情報処理装置100の起動時に正当性の検証対象となるよう、構成変更が実施されたソフトウェアの開始アドレスとソフトウェアサイズとを起動記録データ102に追加する。
 正当性検証部101への命令発行では、構成変更が実施されたソフトウェアの検証用データが比較データ104として保存されていないため、ソフトウェア管理部107は、当該検証用データを算出する命令を正当性検証部101に対して発行する。
[ハードウェアの構成例]
 ソフトウェア管理部107を機能実装するプログラムは、具体例として、図4に示すハードウェア構成における、記憶装置20に格納され、メインCPU30で実行される。
***動作の説明***
 情報処理装置100の動作について説明する。
 図11は、実施の形態3における情報処理装置100の処理の一例を示すフローチャートである。情報処理装置100の動作中におけるソフトウェアの構成変更が実施された場合における処理について、図11を参照しながら説明する。
(ステップS401)
 ソフトウェア管理部107は、ソフトウェアの構成変更が実施された場合に、実施された構成変更を検知する。
(ステップS402)
 ソフトウェア管理部107は、構成変更が実施されたソフトウェアの開始アドレスとソフトウェアサイズとの各々を示すデータを起動記録データ102に追加する。
 本ステップの処理が実行されることにより、情報処理装置100の次回の起動時に、構成変更が実施されたソフトウェアが強制的に検証対象となる。
(ステップS403)
 ソフトウェア管理部107は、構成変更が実施されたソフトウェアに対応する検証用データを算出する命令を正当性検証部101に対して発行する。
 正当性検証部101は、当該検証用データを算出し、算出した検証用データを用いて比較データ104を更新する。即ち、正当性検証部101は、ソフトウェア管理部107によって構成変更が実施されたソフトウェアが検知された場合において、構成変更が実施されたソフトウェアに対応する比較データ104を算出する。
***実施の形態3の効果の説明***
 実施の形態3に係る情報処理装置100は、構成変更が実施されたソフトウェアに応じて起動記録データ102及び比較データ104を更新するため、情報処理装置100の動作中に構成変更が実施されたソフトウェアを、情報処理装置100の次回の起動時において正当性の検証対象とすることができる。
 一方、構成変更が実施されたソフトウェアであって起動ソフトウェアではないソフトウェアについては、実施の形態2で示した起動完了通知部105と起動記録取得部106との動作によって、情報処理装置100の次回の起動時に起動記録データ102から除外される。そのため、情報処理装置100の次々回の情報処理装置100の起動時において、当該ソフトウェアは正当性の検証対象ではなくなる。
 また、実施の形態3に係る情報処理装置100は、実施の形態2に係る情報処理装置100と同様に車両制御装置に適している。
***他の実施の形態***
 前述した各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
 また、実施の形態は、実施の形態1から3で示したものに限定されるものではなく、必要に応じて種々の変更が可能である。フローチャート等を用いて説明した手順は、適宜変更されてもよい。
 10 HSM、11 セキュアCPU、12 暗号計算エンジン、13 セキュアストレージ、20 記憶装置、30 メインCPU、40 RAM、50 処理回路、100 情報処理装置、101 正当性検証部、102 起動記録データ、103 ソフトウェアストレージ、104 比較データ、105 起動完了通知部、106 起動記録取得部、107 ソフトウェア管理部。

Claims (7)

  1.  ソフトウェアを検証する情報処理装置であって、
     前記情報処理装置の起動時に実行される起動ソフトウェアが格納されるべき格納場所を示す起動記録データが示す格納場所に格納されているデータに基づいて計算される検証用データであって、前記情報処理装置の起動時に計算される検証用データである検証対象データと、前記起動ソフトウェアに基づいて前記情報処理装置の起動前に計算された検証用データであって、前記検証対象データの比較対象として使用される検証用データである比較データとを比較することによって前記起動ソフトウェアの正当性を検証する正当性検証部
    を備える情報処理装置。
  2.  前記起動記録データは、前記格納場所の先頭アドレスを示すデータと、前記起動ソフトウェアのデータサイズを示すデータとから成る請求項1に記載の情報処理装置。
  3.  前記検証用データは、前記検証用データに対応するソフトウェアのハッシュ値又はMAC(Message Authentication Code)を示すデータである請求項1又は2に記載の情報処理装置。
  4.  前記情報処理装置は、さらに、
     前記起動ソフトウェアのうち最後に実行開始されるソフトウェアが実行されたことを検知する起動完了通知部と、
     前記情報処理装置が起動してから、前記起動ソフトウェアのうち最後に実行されるソフトウェアが実行されたことが検知されるまでに起動された各ソフトウェアの格納場所を示す格納場所データを取得し、前記起動記録データを、取得した格納場所データを用いて更新する起動記録取得部と
    を備える請求項1から3のいずれか1項に記載の情報処理装置。
  5.  前記情報処理装置は、さらに、
     前記情報処理装置の動作中に前記情報処理装置が格納するソフトウェアの構成変更が実施された場合において、構成変更が実施されたソフトウェアを検知するソフトウェア管理部
    を備え、
     前記正当性検証部は、構成変更が実施されたソフトウェアが検知された場合において、構成変更が実施されたソフトウェアに対応する比較データを算出する請求項1から4のいずれか1項に記載の情報処理装置。
  6.  ソフトウェアを検証する情報処理装置が実行する情報処理方法であって、
     前記情報処理装置の起動時に実行される起動ソフトウェアが格納されるべき格納場所を示す起動記録データが示す格納場所に格納されているデータに基づいて計算される検証用データであって、前記情報処理装置の起動時に計算される検証用データである検証対象データと、前記起動ソフトウェアに基づいて前記情報処理装置の起動前に計算された検証用データであって、前記検証対象データの比較対象として使用される検証用データである比較データとを比較することによって前記起動ソフトウェアの正当性を検証する情報処理方法。
  7.  ソフトウェアを検証するコンピュータである情報処理装置に実行させる情報処理プログラムであって、
     前記情報処理装置の起動時に実行される起動ソフトウェアが格納されるべき格納場所を示す起動記録データが示す格納場所に格納されているデータに基づいて計算される検証用データであって、前記情報処理装置の起動時に計算される検証用データである検証対象データと、前記起動ソフトウェアに基づいて前記情報処理装置の起動前に計算された検証用データであって、前記検証対象データの比較対象として使用される検証用データである比較データとを比較することによって前記起動ソフトウェアの正当性を検証する正当性検証処理
    を前記情報処理装置に実行させる情報処理プログラム。
PCT/JP2021/027424 2021-07-21 2021-07-21 情報処理装置、情報処理方法、及び、情報処理プログラム WO2023002635A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202180100491.5A CN117651947A (zh) 2021-07-21 2021-07-21 信息处理装置、信息处理方法以及信息处理程序
JP2023533918A JP7341376B2 (ja) 2021-07-21 2021-07-21 情報処理装置、情報処理方法、及び、情報処理プログラム
DE112021007690.6T DE112021007690T5 (de) 2021-07-21 2021-07-21 Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm
PCT/JP2021/027424 WO2023002635A1 (ja) 2021-07-21 2021-07-21 情報処理装置、情報処理方法、及び、情報処理プログラム
US18/525,386 US20240104219A1 (en) 2021-07-21 2023-11-30 Information processing apparatus, information processing method, and non-transitory computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/027424 WO2023002635A1 (ja) 2021-07-21 2021-07-21 情報処理装置、情報処理方法、及び、情報処理プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/525,386 Continuation US20240104219A1 (en) 2021-07-21 2023-11-30 Information processing apparatus, information processing method, and non-transitory computer readable medium

Publications (1)

Publication Number Publication Date
WO2023002635A1 true WO2023002635A1 (ja) 2023-01-26

Family

ID=84979047

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/027424 WO2023002635A1 (ja) 2021-07-21 2021-07-21 情報処理装置、情報処理方法、及び、情報処理プログラム

Country Status (5)

Country Link
US (1) US20240104219A1 (ja)
JP (1) JP7341376B2 (ja)
CN (1) CN117651947A (ja)
DE (1) DE112021007690T5 (ja)
WO (1) WO2023002635A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014021953A (ja) * 2012-07-24 2014-02-03 Ricoh Co Ltd 情報処理装置、画像処理装置、起動制御方法及び起動制御プログラム
JP2017208859A (ja) * 2017-08-18 2017-11-24 Kddi株式会社 システム、車両及びソフトウェア配布処理方法
WO2020075303A1 (ja) * 2018-10-12 2020-04-16 三菱電機株式会社 ソフトウェア検証装置、ソフトウェア検証方法およびソフトウェア検証プログラム
JP2021117928A (ja) * 2020-01-29 2021-08-10 キヤノン株式会社 情報処理装置とその起動方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5796447B2 (ja) 2011-10-07 2015-10-21 株式会社リコー 情報処理装置、正当性検証方法、正当性検証プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014021953A (ja) * 2012-07-24 2014-02-03 Ricoh Co Ltd 情報処理装置、画像処理装置、起動制御方法及び起動制御プログラム
JP2017208859A (ja) * 2017-08-18 2017-11-24 Kddi株式会社 システム、車両及びソフトウェア配布処理方法
WO2020075303A1 (ja) * 2018-10-12 2020-04-16 三菱電機株式会社 ソフトウェア検証装置、ソフトウェア検証方法およびソフトウェア検証プログラム
JP2021117928A (ja) * 2020-01-29 2021-08-10 キヤノン株式会社 情報処理装置とその起動方法

Also Published As

Publication number Publication date
JP7341376B2 (ja) 2023-09-08
DE112021007690T5 (de) 2024-03-07
CN117651947A (zh) 2024-03-05
US20240104219A1 (en) 2024-03-28
JPWO2023002635A1 (ja) 2023-01-26

Similar Documents

Publication Publication Date Title
US11520894B2 (en) Verifying controller code
JP6595822B2 (ja) 情報処理装置及びその制御方法
EP2681689B1 (en) Protecting operating system configuration values
US9880908B2 (en) Recovering from compromised system boot code
JP6373888B2 (ja) 情報処理装置及び制御方法
US8438377B2 (en) Information processing apparatus, method and computer-readable storage medium that encrypts and decrypts data using a value calculated from operating-state data
JP5767751B2 (ja) Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム
JP5740573B2 (ja) 情報処理装置および情報処理方法
US9703635B2 (en) Method, computer program, and computer for restoring set of variables
US9990255B2 (en) Repairing compromised system data in a non-volatile memory
US8751817B2 (en) Data processing apparatus and validity verification method
JP6391439B2 (ja) 情報処理装置、サーバ装置、情報処理システム、制御方法及びコンピュータプログラム
JP6846457B2 (ja) 自動検証方法及びシステム
JP6930884B2 (ja) Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラム
CN113190880B (zh) 基于对安全协处理器的背书信息的分析确定是否对计算设备执行动作
JP7411902B1 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
WO2023002635A1 (ja) 情報処理装置、情報処理方法、及び、情報処理プログラム
JP6622360B2 (ja) 情報処理装置
JP5969845B2 (ja) 情報処理装置及びその制御方法
TW201319862A (zh) 嵌入式元件與控制方法
JP2019133220A (ja) 完全性検証装置、完全性検証システム、完全性検証方法、及び、完全性検証プログラム
WO2024057571A1 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
WO2021171906A1 (ja) 情報処理装置、及びプログラム起動方法
JP2023087987A (ja) 電子制御装置
KR20230081988A (ko) 차량 보안 시동 방법, 장치, 전자 제어 유닛 및 저장 매체

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: 21950985

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023533918

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 112021007690

Country of ref document: DE