WO2017022149A1 - 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム - Google Patents

処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム Download PDF

Info

Publication number
WO2017022149A1
WO2017022149A1 PCT/JP2016/001776 JP2016001776W WO2017022149A1 WO 2017022149 A1 WO2017022149 A1 WO 2017022149A1 JP 2016001776 W JP2016001776 W JP 2016001776W WO 2017022149 A1 WO2017022149 A1 WO 2017022149A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
data
execution environment
secure
normal
Prior art date
Application number
PCT/JP2016/001776
Other languages
English (en)
French (fr)
Inventor
倉内 伸和
和成 山本
青木 哲朗
安齋 潤
嘉彦 北村
Original Assignee
パナソニックIpマネジメント株式会社
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 パナソニックIpマネジメント株式会社 filed Critical パナソニックIpマネジメント株式会社
Publication of WO2017022149A1 publication Critical patent/WO2017022149A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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

Definitions

  • the present invention relates to a processing device, an in-vehicle terminal device, a processing device activation method, and a processing device activation program that require safe and fast activation.
  • a processing apparatus having a normal execution environment and a secure execution environment in which at least a memory space to be used is isolated, and the integrity of a program or data
  • a secure storage area used in a secure execution environment for storing a verification list including identification information of a program or data that needs to be verified in order to verify the program, and an expected value required for verifying each program or data, and verification Extract the program or data identification information from the list and pass it to the normal execution environment.
  • Te comprising target program or data
  • the normal processing unit requests the secure processing unit to verify the target program or data.
  • FIG. 1 is a block diagram showing a hardware configuration of a processing apparatus according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing a software configuration of the processing apparatus according to the embodiment of the present invention.
  • FIG. 3 is a flowchart for explaining processing for detecting falsification of an application program when starting the processing device according to the embodiment of the present invention.
  • FIG. 4 is a flowchart for explaining processing for detecting falsification of an application program when starting a processing device according to a comparative example.
  • FIG. 5 is a block diagram illustrating a configuration of an in-vehicle terminal device including the processing device of FIG.
  • the present disclosure has been made in view of such a situation, and an object thereof is to provide a technology for shortening the startup time while ensuring the security strength.
  • the embodiment of the present invention relates to a secure boot in an in-vehicle system.
  • the secure boot function creates a root of reliability based on information in a physically unchangeable area called Root of Trust, and from there, integrity (tampered with software) such as boot loader and OS This is a technology that starts up sequentially while verifying that there is no such thing.
  • the range for verifying tampering and the startup time are in a trade-off relationship.
  • the wider the range for verifying tampering the stronger the security strength but the slower the startup time.
  • the narrower the range for verifying tampering the faster the startup time, but the lower the security strength.
  • the security strength of secure boot there have been reports of cases where secure boot is canceled on some smartphones, and the necessary and sufficient range has been altered while ensuring the security strength while protecting the startup time restrictions in the product specifications. It is important to detect.
  • Home appliances having a copyright protection function are generally equipped with a secure boot function in order to prevent unauthorized acquisition of information assets related to copyright recorded in the device.
  • the range for verifying tampering and the startup time have a trade-off relationship.
  • the timing at which the secure boot function actually operates is when the OS starts up, and in the case of home appliances, the OS starts up during normal use, such as when the power plug is inserted into an outlet or when the smartphone is turned on.
  • the start-up conditions were relatively mild compared to the in-vehicle system.
  • the start time of the head unit and electronic cockpit from the start of the engine needs to be completed within approximately 2 seconds from the viewpoint of operability and the so-called KT method (Kids and Transportation Safety Act). This is the general view.
  • the DRAM (Dynamic Random Access Memory) backup which is called DRAM (Dynamic Random Access Memory) backup, supplies only the refresh current for holding the memory to the DRAM. It is common to stop without supplying. As a result, at the time of starting the in-vehicle system accompanying the next engine start, loading the software from the flash ROM to the DRAM can be omitted, and the startup time is shortened accordingly.
  • the DRAM data may be illegally rewritten during the DRAM backup mode, it is necessary to perform a secure boot on the DRAM data every time the in-vehicle system is started when the engine is started.
  • the secure boot function in the in-vehicle system generally needs to be completed within a few hundred ms, which is a stricter condition compared to conventional home appliances. Therefore, thorough processing efficiency is required while maintaining the security strength.
  • FIG. 1 is a block diagram showing a hardware configuration of a processing apparatus 1 according to an embodiment of the present invention.
  • the processing device 1 has a normal execution environment and a secure execution environment.
  • the secure execution environment is an execution environment isolated from the normal execution environment in terms of hardware, and at least a memory space to be used is physically or logically isolated from the normal execution environment.
  • the secure execution environment is also called an isolated execution environment or a trusted execution environment.
  • the processing apparatus 1 having a normal execution environment and a secure execution environment can be constructed by ARM's TrustZone (registered trademark) hardware architecture.
  • the processing apparatus 1 includes a processing unit 10, a volatile storage unit 20, and a nonvolatile storage unit 30.
  • the processing unit 10 can be configured by a single LSI.
  • the processing unit 10 is connected to a volatile storage unit 20 and a non-volatile storage unit 30 provided outside the LSI via a bus 40.
  • a part of the volatile storage unit 20 may be incorporated in the processing unit 10 in order to increase the security strength.
  • the processing unit 10 includes a normal processing unit 11 that operates under a normal execution environment and a secure processing unit 12 that operates under a secure execution environment. Two virtual processors constructed by physically using one processor in a time division manner are allocated to the normal processing unit 11 and the secure processing unit 12, respectively. Note that a processor for secure processing that executes the operation of the secure processing unit 12 exclusively may be provided separately from the general-purpose processor.
  • the volatile storage unit 20 can be composed of an SDRAM (Synchronous Dynamic Random Access Memory) and includes a normal storage area 21 and a secure storage area 22.
  • the normal storage area 21 is used under a normal execution environment
  • the secure storage area 22 is used under a secure execution environment.
  • the normal storage area 21 and the secure storage area 22 are set to physically or logically different areas.
  • the secure storage area 22 may be constituted by another dedicated RAM chip.
  • a dedicated processor that operates in a secure execution environment and another security chip including a RAM may be used.
  • the secure storage area 22 cannot be accessed from the normal processing unit 11 but can be accessed only from the secure processing unit 12.
  • FIG. 2 is a block diagram showing a software configuration of the processing apparatus 1 according to the embodiment of the present invention.
  • FIG. 2 shows only software and data related to the present embodiment.
  • the OS of the processing apparatus 1 is Linux (registered trademark), which is expected to be used in the future as the in-vehicle system is opened or networked. It should be noted that other OS such as Windows (registered trademark) and ITRON (registered trademark) can be used.
  • the kernel 130 and the handler 110 are executed.
  • the kernel 130 is a program that forms the core of the OS, manages hardware resources, and provides an execution environment for each application program.
  • a secure OS to which a mandatory access control function such as SE Linux (registered trademark) or TOMOYO Linux (registered trademark) is added, the kernel 130 executes the mandatory access control.
  • SE Linux registered trademark
  • TOMOYO Linux registered trademark
  • the forced access control is control for determining whether to permit or deny access to a resource (process, file, system device, etc.) from a user according to a security policy set by a system administrator. Even the owner of a file cannot change the file if the change is not permitted by the security policy.
  • the handler 110 is a handler in which an authority determination program 112 for determining the authority of the access source is described in response to an access request when executing the application program.
  • the authority determination program 112 determines whether to permit or deny access to a resource by referring to at least one of a security policy and history information for a security event (file access, etc.) requested by each application program. To do.
  • a falsification detection program 111 for executing a process of detecting falsification of the application program based on the falsification detection target list 120 is also described.
  • the falsification detection program 111 in the handler 110 instead of the kernel 130, it is not necessary to modify the kernel 130 when the falsification detection program 111 is changed.
  • the process of verifying the signature in the process of detecting falsification of the application program is executed on the secure execution environment side.
  • the falsification detection program 211 verifies the signature of the application program based on the falsification detection target list 220.
  • FIG. 3 is a flowchart for explaining processing for detecting falsification of an application program when the processing device 1 is activated according to the embodiment of the present invention.
  • the normal processing unit 11 reads the encrypted alteration detection target list from the nonvolatile storage unit 30 and passes it to the secure execution environment (S10).
  • the flowchart of FIG. 3 is a flowchart in the case where the alteration detection target list is encrypted.
  • confidentiality is unnecessary and it is necessary to guarantee only the integrity, only the signature or MAC is encrypted without encrypting the alteration detection target list.
  • the structure to include may be sufficient.
  • the secure execution environment side is called from the normal execution environment side, the execution environment of the processing unit 10 is switched from the normal execution environment to the secure execution environment.
  • the secure processing unit 12 decrypts the encrypted alteration detection target list delivered from the normal execution environment side (S20).
  • the secure processing unit 12 decrypts the falsification detection target list using the public key that is paired with the secret key used when the falsification detection target list is encrypted.
  • the secure processing unit 12 calculates a hash value of the alteration detection target list by applying a hash function to the decrypted alteration detection target list.
  • the secure processing unit 12 acquires a signature (encrypted state hash value) of the alteration detection target list, and uses the public key that is paired with the private key used when generating the signature to hash the secure processing unit 12 Restore the value.
  • the secure processing unit 12 compares the hash value calculated from the falsification detection target list with the hash value obtained by decrypting the signature. If the two match, the secure processing unit 12 determines that the signature verification is successful. It is determined that signature verification has failed.
  • the hash value may be generated from the detection target list in an encrypted state.
  • the falsification detection target list includes a list of application programs that require falsification detection (hereinafter referred to as a program list) and a signature necessary for falsification verification of each application program.
  • the signature is generated using a secret key for a hash value obtained by applying a hash function to an application program. If the alteration detection target list is encrypted, a hash value can be used instead of the signature.
  • Application programs that require tampering detection are application programs that may reduce security if they do not operate normally due to tampering, for example, and are selected in advance by a system administrator.
  • the program list is described in a tree-type directory structure. In the directory structure, each program is designated as a path, and a signature (encrypted hash value) is associated with each program.
  • the secure processing unit 12 stores the decrypted alteration detection target list in the secure storage area 22, extracts a program list from the alteration detection target list, and passes the extracted program list to the normal execution environment (S21).
  • the normal execution environment side is called from the secure execution environment side, the execution environment of the processing unit 10 is switched from the secure execution environment to the normal execution environment.
  • the normal processing unit 11 stores the program list passed from the secure execution environment side in the normal storage area 21.
  • the normal processing unit 11 determines whether or not the application program is included in the program list (S12).
  • the normal processing unit 11 reads the application program from the nonvolatile storage unit 30, and starts the read application program (S15).
  • the normal processing unit 11 reads the application program from the nonvolatile storage unit 30, and sets the read application program in the secure execution environment.
  • the secure execution environment is requested to verify the signature of the application program (S13).
  • the secure execution environment side is called from the normal execution environment side, the execution environment of the processing unit 10 is switched from the normal execution environment to the secure execution environment.
  • the secure processing unit 12 calculates a hash value by applying a hash function to the application program passed from the normal execution environment side. Further, the secure processing unit 12 acquires the signature of the application program from the alteration detection target list, and restores the hash value by using the public key that is paired with the secret key used when the signature is generated. . The secure processing unit 12 compares the hash value calculated from the application program with the hash value obtained by decrypting the signature. When the two match, the secure processing unit 12 determines that the signature verification is successful. It is determined that the signature verification has failed (S25). The secure processing unit 12 passes the result of verifying the signature of the application program to the normal execution environment.
  • the execution environment of the processing unit 10 is switched from the secure execution environment to the normal execution environment.
  • the calculation of the hash value is performed by the secure processing unit 12, but the increase in the processing amount of the secure processing unit 12 is that the processing of the secure processing unit 12 is time-divided into a normal execution environment at regular intervals.
  • an increase in the number of times of switching between a normal execution environment and a secure execution environment, which will be described later, may occur, and the performance of the entire system may be degraded.
  • the hash value may be calculated on the normal execution environment side, and the hash value may be passed to the secure processing unit 12.
  • the normal processing unit 11 activates the application program that has accepted the execution request (S15). If the result of verifying the signature passed from the secure execution environment side is a failure (N in S14), the normal processing unit 11 stops the activation of the application program that has accepted the execution request (S16).
  • the secure processing unit 12 periodically passes the program list to the normal execution environment side.
  • the normal execution environment In the normal execution environment, the risk of receiving an unauthorized attack from the outside is higher than that in the secure execution environment, and the risk that the program list is falsified is relatively high. Therefore, the normal execution environment program list is periodically refreshed.
  • the secure processing unit 12 passes the program list to the normal execution environment when a predetermined time has elapsed since the last time the program list was transferred to the normal execution environment (Y in S23) (S24).
  • the normal processing unit 11 overwrites the current program list with the program list newly delivered from the secure execution environment side.
  • the secure processing unit 12 may directly overwrite the program list.
  • the security strength is stronger when the normal processing unit 11 is not used.
  • the program list may be refreshed when an event occurs, instead of periodically refreshing the program list.
  • the event may occur at a timing when execution of an important application program is finished.
  • An example of an important application program is a device driver installation program (such as an insmod command in the case of Linux (registered trademark)).
  • an unauthorized device driver is installed, the kernel is hijacked, which is more dangerous than the case where another application program operating on the userland is hijacked.
  • the execution target program is a device driver installation program in step S13, tampering detection may be executed for the installation target device driver in addition to the execution target program.
  • FIG. 4 is a flowchart for explaining processing for detecting falsification of an application program when the processing device 1 is activated according to a comparative example.
  • the processes in steps S10 and S20 are the same as those in the flowchart of FIG.
  • the secure processing unit 12 stores the decrypted alteration detection target list in the secure storage area 22, but does not pass the program list to the normal execution environment side.
  • the normal processing unit 11 receives the application program execution request (Y of S11), reads the application program from the nonvolatile storage unit 30, passes the read application program to the secure execution environment, The secure execution environment is requested to verify the signature of the application program (S13).
  • the secure execution environment side is called from the normal execution environment side, the execution environment of the processing unit 10 is switched from the normal execution environment to the secure execution environment.
  • the secure processing unit 12 determines whether or not the application program requested to verify the signature is included in the falsification detection target list (S22). When not included in the alteration detection target list (N in S22), the secure processing unit 12 returns a determination result that the application program is not the alteration detection target to the normal execution environment.
  • the secure processing unit 12 verifies the signature of the application program passed from the normal execution environment side and verifies the signature. The result is passed to the normal execution environment (S25).
  • the normal processing unit 11 starts the application program (S15).
  • the normal processing unit 11 stops the activation of the application program (S16).
  • the process for determining whether or not the application program to be executed is the target of falsification detection is executed on the normal execution environment side or the secure execution environment side. It is different in some ways.
  • the normal execution environment changes from the secure execution environment to the secure execution environment. A switch has occurred.
  • the switching process generally involves register saving, memory management unit (MMU) setting change, cache processing, and the like, and causes overhead.
  • MMU memory management unit
  • the normal processing unit 11 validates the forced access control function. While the processing for detecting tampering when the processing device 1 is activated is being executed, the forced access control is disabled. As a result, a process for determining whether or not the access source has the authority to access the resource is generated along with the forced access control while the process for detecting tampering at the time of starting the processing device 1 is executed. No longer.
  • the overhead time due to the processing is generally several ms at a time. Similar to the switching between the normal execution environment and the secure execution environment, several hundred application programs are started when the processing device 1 is started. Since it is necessary, the startup time is delayed in seconds.
  • the overhead concerning the said process can be reduced. Note that the earlier the timing for enabling the mandatory access control function, the less the overhead is reduced, but the security strength is increased. Therefore, the timing for enabling the mandatory access control function is activated according to the system requirements. It is good also as implementing before the process which detects the alteration at the time of doing is complete
  • FIG. 5 is a block diagram illustrating a configuration of the in-vehicle terminal device 7 including the processing device 1 of FIG.
  • a car navigation system is assumed as the in-vehicle terminal device 7.
  • the in-vehicle terminal device 7 includes a processing device 1, a display unit 2, an audio output unit 3, an operation unit 4, a GPS reception unit 5, and a wireless communication unit 6.
  • the display unit 2 includes a liquid crystal display or an organic EL display, and displays video data supplied from the processing device 1. For example, a navigation screen is displayed.
  • the audio output unit 3 includes a speaker and outputs audio data supplied from the processing device 1 as audio. For example, voice guidance is output by voice.
  • the operation unit 4 includes input means such as a physical key and a touch panel, converts a user operation into an electric signal, and outputs the signal to the processing device 1.
  • the GPS receiver 5 includes a GPS receiver, receives radio waves from a plurality of GPS satellites, and measures the position of the processing device 1. The GPS receiver 5 outputs position information defined by longitude and latitude to the processing device 1.
  • the wireless communication unit 6 includes a communication module for connecting to the Internet via a mobile phone network or a wireless LAN. For example, it connects to a map server (not shown) on the network, receives map data and voice data for voice guidance, and supplies them to the processing device 1.
  • the in-vehicle terminal device 7 is configured to be connected to the Internet, there is a risk that malware or virus enters the processing device 1 via the Internet. Also, when operating in conjunction with a smartphone, there are cases where malware and viruses enter via the smartphone. In some cases, the intrusion may occur via a medium such as a DVD.
  • the processing device 1 according to the embodiment of the present invention is used, the in-vehicle terminal device 7 can be protected from unauthorized tampering because the processing for detecting tampering is executed before the application program is started. it can. Therefore, the in-vehicle terminal device 7 that realizes a safe and high-speed secure boot can be constructed.
  • the present embodiment by holding the program list on the normal execution environment side, the number of times of calling the secure execution environment can be reduced, and the overhead due to the process of switching the execution environment can be reduced. it can. At that time, since the signature of each application program included in the alteration detection target list is not passed from the secure execution environment side to the normal execution environment side, it is possible to suppress a decrease in security strength. In addition, by refreshing the program list held in the normal execution environment regularly or at every event occurrence, processing to detect alteration of the application program is executed using the program list that has been tampered with from the outside. The possibility that it is possible can be suppressed as much as possible.
  • the enforcement of the mandatory access control function is executed after the process for detecting the alteration of all application programs included in the alteration detection target list is completed, thereby reducing the overhead caused by the process related to the mandatory access function. be able to.
  • the alteration detection program 111 in the handler 110 instead of the kernel 130, it is not necessary to modify the kernel 130 when the alteration detection program 111 is modified.
  • tampering may be detected by verifying a message authentication code (MAC) generated using a common key cryptography instead of a signature.
  • MAC message authentication code
  • a verification method using another encryption method may be used.
  • the process for detecting falsification is performed for the application program.
  • the file system image may be the target instead of the application program.
  • the file system image is generally arranged in a continuous memory area.
  • mapping the memory area it is possible to reduce the number of system calls related to file access and reduce the overhead of the system call as compared with the case where the application program is targeted.
  • the access by the memory mapping makes it possible to perform the falsification detection process without affecting the cache used for file read / write possessed by the file system. This makes it possible to process tampering detection without reducing the processing speed of other applications that use the cache.
  • FIG. 5 the example in which the processing apparatus 1 according to the present embodiment is applied to a car navigation system has been described, but the present invention can also be applied to display audio, cockpit systems, and various ECUs (engine ECUs, etc.). Further, the use of the processing apparatus 1 according to the present embodiment for purposes other than in-vehicle use is not limited, and any device that requires a safe and high-speed secure boot function may be mounted on the device.
  • a secure storage area (22) to be used storing a secure execution environment that extracts identification information of the program or data from the verification list (220) and passes it to a normal execution environment;
  • a processing unit (11), The normal processing unit (11) requests the secure processing unit (12) to verify the target program or data when the target program or data is a
  • the normal processing unit (11) acquires the encrypted verification list when the processing device (1) is activated, and passes it to a secure execution environment.
  • the secure processing unit (12) decrypts the encrypted verification list, extracts identification information of the program or data that requires the verification from the decrypted verification list, and passes it to a normal execution environment.
  • the secure processing unit (12) passes the identification information of the program or data that needs to be verified periodically or every time an event occurs to the normal execution environment, or reads and checks from the normal execution environment. Or the processing apparatus (1) of 2.
  • the normal processing unit (11) executes a handler (110) for executing authority determination for an access request during program execution, 5.
  • the processing apparatus according to any one of items 1 to 4, wherein the handler (110) describes a process on a normal execution environment side in a verification process for confirming the integrity of a program or data. 1).
  • the function to store in the area A function of extracting identification information of the program or data from the verification list and passing it to a normal execution environment; A function of storing identification information of the program or data passed from the secure execution environment in a normal storage area used in the normal execution environment; In a normal execution environment, refer to the list of programs to determine whether the target program or data is a program or data that needs to be verified.
  • the present invention can be used for a head unit such as a car navigation system or a display audio.

Landscapes

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

Abstract

通常実行環境とセキュア実行環境を有する処理装置において、セキュア記憶領域は、プログラムまたはデータの完全性を確認するための検証が必要なプログラムまたはデータの識別情報、及び各プログラムまたはデータの検証に必要な期待値を含む検証リストを格納する。セキュア処理部は、検証リスト内からプログラムまたはデータの識別情報を抽出して、通常実行環境に渡す。通常記憶領域は、セキュア処理部から渡されたプログラムまたはデータの識別情報を格納する。通常処理部は、検証が必要なプログラムまたはデータの識別情報を参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定し、検証が必要なプログラムまたはデータである場合、対象のプログラムまたはデータの検証をセキュア処理部に依頼する。

Description

処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム
 本発明は、安全かつ高速な起動が求められる処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラムに関する。
 自動車の利便性向上に伴う車載システムのネットワーク接続や追加アプリダウンロードにより、車載システムのセキュリティ確保が急務となっている。車載システムのセキュリティ確保においては、車載システムの完全性を保証するセキュアブート機能が必須と考えられる。特にカーナビゲーションシステムやディスプレイオーディオ等のヘッドユニット、電子化されたコックピットシステムでは、エンジン始動からシステムの起動完了までの時間制約が非常に厳しく、安全かつ高速なセキュアブート機能が求められる。
国際公開第2011-114621号
 上記課題を解決するために、本開示のある態様の処理装置は、少なくとも使用するメモリ空間が隔離されている、通常実行環境とセキュア実行環境を有する処理装置であって、プログラムまたはデータの完全性を確認するための検証が必要なプログラムまたはデータの識別情報、及び各プログラムまたはデータの検証に必要な期待値を含む検証リストを格納する、セキュア実行環境下で使用されるセキュア記憶領域と、検証リスト内からプログラムまたはデータの識別情報を抽出して、通常実行環境に渡す、セキュア実行環境下で動作するセキュア処理部と、セキュア処理部から渡されたプログラムまたはデータの識別情報を格納する、通常実行環境下で使用される通常記憶領域と、検証が必要なプログラムまたはデータの識別情報を参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定する、通常実行環境下で動作する通常処理部と、を備える。通常処理部は、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータである場合、対象のプログラムまたはデータの検証をセキュア処理部に依頼する。
 なお、以上の構成要素の任意の組み合わせ、本開示の表現を方法、装置、システム、コンピュータプログラム、又はコンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本開示の態様として有効である。
 本開示によれば、セキュリティ強度を確保しつつ、起動時間を短縮することができる。
図1は、本発明の実施の形態に係る処理装置のハードウェア構成を示すブロック図である。 図2は、本発明の実施の形態に係る処理装置のソフトウェア構成を示すブロック図である。 図3は、本発明の実施の形態に係る、処理装置を起動する時におけるアプリケーションプログラムの改ざんを検出する処理を説明するためのフローチャートである。 図4は、比較例に係る、処理装置を起動する時におけるアプリケーションプログラムの改ざんを検出する処理を説明するためのフローチャートである。 図5は、図1の処理装置を備える車載端末装置の構成を示すブロック図である。
 本発明の実施の形態の説明に先立ち、従来の装置における問題点を簡単に説明する。セキュアブートでは、フラッシュメモリ等の不揮発性メモリからプログラムを読み込み、読み込んだプログラムの改ざんチェックが実行される。改ざんチェックの対象となるプログラムの数は数百にも上るため、改ざんチェックに時間がかかる。しかしながら、車載システムではプログラムの改ざんにより外部から不正操作された場合の影響が大きいため、基本的にセキュリティ強度を下げることはできない。
 本開示はこうした状況に鑑みなされたものであり、その目的は、セキュリティ強度を確保しつつ、起動時間を短縮する技術を提供することにある。
 本発明の実施の形態は、車載システムにおけるセキュアブートに関する。セキュアブート機能とは、Root of Trustと呼ばれる物理的に改変不可能な領域の情報に基づいた信頼性の基点を作りこみ、そこからブートローダ、OS等のソフトウェアに対して、完全性(改ざんされていないこと)を検証しながら順次起動していく技術である。
 一般的にセキュアブートでは改ざんを検証する範囲と、起動時間はトレードオフの関係にある。すなわち、改ざんを検証する範囲を広くすればするほど、セキュリ強度は強くなるが、起動時間は遅くなる。逆に、改ざんを検証する範囲を狭くするほど、起動時間は早くなるが、セキュリティ強度は弱くなる。セキュアブートのセキュリティ強度については、一部スマートフォンにてセキュアブートが解除される事例が報告されており、商品仕様における起動時間の制約を守りつつ、セキュリティ強度を担保した上で必要十分な範囲を改ざん検出することが重要である。
 著作権保護機能を有する家電機器では、機器内に記録された著作権に関する情報資産を不正入手から防ぐため、セキュアブート機能が搭載されることが一般的であった。また、家電機器のセキュアブート機能においても、改ざんを検証する範囲と起動時間はトレードオフの関係にあった。
 しかし、セキュアブート機能が実際に動作するタイミングがOSの起動時であり、かつ家電機器の場合、OSの起動は電源プラグをコンセントに差し込むときや、スマートフォンの電源を入れる等、通常使用の中においては限定的であったため、車載システムと比較して起動時間の条件が比較的緩やかであった。
 一方、車載システムにおいては、エンジン始動からヘッドユニットや電子コックピットの起動時間は、操作性の観点、及びいわゆるKT法(Kids and Transportation Safety Act)の観点から、概ね2秒以内に完了する必要があるという見方が一般的である。
 また、車載システムにおいては、バッテリーの寿命の問題から、エンジン停止時はDRAM(Dynamic Random Access Memory)バックアップと呼ばれる、DRAMにメモリ保持のためのリフレッシュ電流のみを供給し、それ以外のシステムは電流を供給せずに停止することが一般的である。これにより、次回のエンジン始動に伴う車載システムの起動時は、フラッシュROMからDRAMにソフトウェアをロードすることは省略可能であり、その分起動時間は短縮される。但し、DRAMバックアップモード中にDRAMのデータが不正に書き換えられる可能性があるため、エンジン始動に伴う車載システムの起動において、DRAMのデータに対するセキュアブートは毎回実施する必要がある。
 以上の結果、車載システムにおけるセキュアブート機能は、一般的に数百ms以内に終了する必要があり、従来の家電機器と比較して厳しい条件となっている。そこでセキュリティ強度を維持しつつ、徹底した処理の効率化が求められる。
 図1は、本発明の実施の形態に係る処理装置1のハードウェア構成を示すブロック図である。処理装置1は通常実行環境とセキュア実行環境を有する。セキュア実行環境は、ハードウェア的に通常実行環境と隔離された実行環境であり、少なくとも使用するメモリ空間が通常実行環境と物理的または論理的に隔離されている。セキュア実行環境は、隔離実行環境、トラステッド実行環境とも呼ばれる。例えば、ARM社のTrustZone(登録商標)ハードウェアアーキテクチャにより通常実行環境とセキュア実行環境を有する処理装置1を構築できる。
 処理装置1は、処理部10、揮発性記憶部20、不揮発性記憶部30を備える。処理部10は単一のLSIで構成することができる。処理部10はバス40を介して、LSIの外部に設けられる揮発性記憶部20及び不揮発性記憶部30と接続される。なお、揮発性記憶部20の一部は、セキュリティ強度を強くするため、処理部10に内蔵されていてもよい。処理部10は、通常実行環境下で動作する通常処理部11と、セキュア実行環境下で動作するセキュア処理部12を含む。通常処理部11とセキュア処理部12には、物理的に1つのプロセッサを時分割で使用することにより構築される2つの仮想プロセッサがそれぞれ割り当てられる。なお、セキュア処理部12の動作を専用に実行するセキュア処理用のプロセッサを、汎用のプロセッサと別に設けてもよい。
 揮発性記憶部20はSDRAM(Synchronous Dynamic Random Access Memory)で構成でき、通常記憶領域21及びセキュア記憶領域22を含む。通常記憶領域21は通常実行環境下で使用され、セキュア記憶領域22はセキュア実行環境下で使用される。通常記憶領域21とセキュア記憶領域22は、物理的または論理的に異なる領域に設定される。なお、セキュア記憶領域22は専用の別のRAMチップで構成されてもよい。また、セキュア実行環境下で動作する専用のプロセッサとRAMを含む別のセキュリティチップで構成してもよい。セキュア記憶領域22には、通常処理部11からはアクセスできず、セキュア処理部12からのみアクセスできる。
 図2は、本発明の実施の形態に係る処理装置1のソフトウェア構成を示すブロック図である。図2には、本実施の形態に関連するソフトウェア及びデータのみを描いている。以下、処理装置1のOSとして、車載システムのオープン化やネットワーク化に伴い、今後の利用が多くなっていくと予想されるLinux(登録商標)を想定する。なお、Windows(登録商標)、ITRON(登録商標)等の他のOSを使用することも可能である。
 通常実行環境下では、カーネル130、ハンドラ110が実行される。カーネル130は、OSの中核をなすプログラムであり、ハードウェア資源を管理して各アプリケーションプログラムに実行環境を提供する。SE Linux(登録商標)、TOMOYO Linux(登録商標)等の強制アクセス制御機能が追加されたセキュアOSでは、カーネル130は強制アクセス制御を実行する。強制アクセス制御とは、システム管理者により設定されたセキュリティポリシーに従い、ユーザからリソース(プロセス、ファイル、システムデバイス等)へのアクセスに対する許可または拒否を決定する制御である。たとえファイルの所有者であっても、セキュリティポリシーにより変更が許可されていない場合は当該ファイルを変更できない。
 ハンドラ110は、アプリケーションプログラム実行時のアクセス要求に対して、アクセス元の権限を判定するための権限判定プログラム112が記述されたハンドラである。権限判定プログラム112は、各アプリケーションプログラムから要求されるセキュリティイベント(ファイルアクセス等)に対して、セキュリティポリシー及び履歴情報の少なくとも一方を参照して、リソースへのアクセスを許可するか拒否するかを判定する。
 ハンドラ110には、改ざん検出対象リスト120に基づきアプリケーションプログラムの改ざんを検出する処理を実行するための改ざん検出プログラム111も記述される。このように、改ざん検出プログラム111をカーネル130ではなく、ハンドラ110に記述することにより、改ざん検出プログラム111を変更した際にカーネル130を修正する必要がなくなる。
 アプリケーションプログラムの改ざんを検出する処理において署名を検証する処理は、セキュア実行環境側で実行される。改ざん検出プログラム211は、改ざん検出対象リスト220に基づき、アプリケーションプログラムの署名を検証する。
 図3は、本発明の実施の形態に係る、処理装置1を起動する時におけるアプリケーションプログラムの改ざんを検出する処理を説明するためのフローチャートである。通常実行環境下において、通常処理部11は不揮発性記憶部30から、暗号化された改ざん検出対象リストを読み出し、セキュア実行環境に渡す(S10)。図3のフローチャートは改ざん検出対象リストが暗号化される場合のフローチャートであるが、秘匿性が不要で完全性のみ保証する必要がある場合、改ざん検出対象リストを暗号化せず署名またはMACのみを含める構成でもよい。通常実行環境側からセキュア実行環境側が呼び出されると処理部10の実行環境が、通常実行環境からセキュア実行環境に切り替わる。
 セキュア実行環境下において、セキュア処理部12は、通常実行環境側から渡された暗号化された改ざん検出対象リストを復号する(S20)。公開鍵暗号方式が用いられる場合、セキュア処理部12は、改ざん検出対象リストを暗号化する際に使用された秘密鍵と対をなす公開鍵を用いて改ざん検出対象リストを復号する。
 セキュア処理部12は、復号された改ざん検出対象リストにハッシュ関数を適用して改ざん検出対象リストのハッシュ値を算出する。また、セキュア処理部12は、改ざん検出対象リストの署名(暗号化状態のハッシュ値)を取得して、当該署名を生成した際に使用された秘密鍵と対をなす公開鍵を使用してハッシュ値を復元する。セキュア処理部12は改ざん検出対象リストから算出したハッシュ値と、署名を復号して得たハッシュ値を比較して、両者が一致する場合は署名の検証が成功したと判定し、一致しない場合は署名の検証が失敗したと判定する。なお、ハッシュ値を、暗号化された状態の検出対象リストから生成する方式でもよい。
 改ざん検出対象リストには、改ざん検出が必要なアプリケーションプログラムのリスト(以下、プログラムリストという)と、各アプリケーションプログラムの改ざん検証に必要な署名が含まれる。署名は、アプリケーションプログラムにハッシュ関数を適用して得られたハッシュ値に対して秘密鍵を使用して生成されたものである。なお、改ざん検出対象リストが暗号化されている場合は、署名の代わりにハッシュ値を使用することも可能である。改ざん検出が必要なアプリケーションプログラムは、全てのアプリケーションプログラムの内、例えば改ざん等により正常動作しないとセキュリティを低下させる可能性があるアプリケーションプログラムであり、システム管理者により予め選別されたものである。プログラムリストは、ツリー形式のディレクトリ構造で記述される。ディレクトリ構造において各プログラムはパスとして指定され、各プログラムには署名(暗号化状態のハッシュ値)が関連付けられている。
 セキュア処理部12は、復号した改ざん検出対象リストをセキュア記憶領域22に格納するとともに、改ざん検出対象リストからプログラムリストを抽出し、抽出したプログラムリストを通常実行環境に渡す(S21)。セキュア実行環境側から通常実行環境側が呼び出されると処理部10の実行環境が、セキュア実行環境から通常実行環境に切り替わる。
 通常実行環境下において、通常処理部11は、セキュア実行環境側から渡されたプログラムリストを通常記憶領域21に格納する。通常処理部11は、アプリケーションプログラムの実行要求を受け付けると(S11のY)、当該アプリケーションプログラムがプログラムリスト内に含まれているか否か判定する(S12)。プログラムリスト内に含まれていない場合(S12のN)、通常処理部11は、当該アプリケーションプログラムを不揮発性記憶部30から読み出し、読み出したアプリケーションプログラムを起動する(S15)。
 実行要求を受け付けたアプリケーションプログラムがプログラムリスト内に含まれている場合(S12のY)、通常処理部11は、当該アプリケーションプログラムを不揮発性記憶部30から読み出し、読み出したアプリケーションプログラムをセキュア実行環境に渡すとともに、当該アプリケーションプログラムの署名の検証をセキュア実行環境に依頼する(S13)。通常実行環境側からセキュア実行環境側が呼び出されると処理部10の実行環境が、通常実行環境からセキュア実行環境に切り替わる。
 セキュア実行環境下において、セキュア処理部12は、通常実行環境側から渡されたアプリケーションプログラムにハッシュ関数を適用してハッシュ値を算出する。また、セキュア処理部12は、改ざん検出対象リストから当該アプリケーションプログラムの署名を取得して、当該署名を生成した際に使用された秘密鍵と対をなす公開鍵を使用してハッシュ値を復元する。セキュア処理部12は当該アプリケーションプログラムから算出したハッシュ値と、当該署名を復号して得たハッシュ値を比較して、両者が一致する場合は署名の検証が成功したと判定し、一致しない場合は署名の検証が失敗したと判定する(S25)。セキュア処理部12は、当該アプリケーションプログラムの署名を検証した結果を通常実行環境に渡す。セキュア実行環境側から通常実行環境側が呼び出されると処理部10の実行環境が、セキュア実行環境から通常実行環境に切り替わる。なお、ここではハッシュ値の算出をセキュア処理部12で実施することとしたが、セキュア処理部12の処理量の増加は、セキュア処理部12の処理が一定時間毎に時分割で通常実行環境に切り替えるようスケジューリングされるシステムの場合、後述の通常実行環境-セキュア実行環境間の切り替え回数の増加を引き起こし、システム全体のパフォーマンス低下を引き起こす可能性がある。これを避けるため、ハッシュ値の算出を通常実行環境側で実施し、セキュア処理部12にハッシュ値を渡すこととしてもよい。
 通常実行環境下において、セキュア実行環境側から渡された署名を検証した結果が成功であった場合(S14のY)、通常処理部11は、実行要求を受け付けたアプリケーションプログラムを起動する(S15)。セキュア実行環境側から渡された署名を検証した結果が失敗であった場合(S14のN)、通常処理部11は、実行要求を受け付けたアプリケーションプログラムの起動を中止する(S16)。
 以上の処理フローにおいて、セキュア処理部12は定期的にプログラムリストを通常実行環境側に渡す。通常実行環境は、外部から不正な攻撃を受けるリスクがセキュア実行環境よりも高く、プログラムリストが改ざんされるリスクが相対的に高い。そこで通常実行環境側のプログラムリストを定期的にリフレッシュする。具体的にはセキュア処理部12は、前回、プログラムリストを通常実行環境に渡してから一定時間が経過すると(S23のY)、プログラムリストを通常実行環境に渡す(S24)。通常実行環境側では、通常処理部11は現在のプログラムリストを、セキュア実行環境側から新たに渡されたプログラムリストで上書きする。なお、セキュア処理部12が通常記憶領域21に直接アクセスできる場合、セキュア処理部12が直接、プログラムリストを上書きしてもよい。通常処理部11を介さない方がセキュリティ強度は強くなる。
 なお、プログラムリストのリフレッシュを定期的に実行するのではなく、イベントが発生した時に実行してもよい。例えば、イベントは、重要なアプリケーションプログラムの実行が終了したタイミングで発生してもよい。重要なアプリケーションプログラムの例として、デバイスドライバのインストールプログラム(Linux(登録商標)の場合insmodコマンド等)があげられる。特に、不正なデバイスドライバがインストールされると、カーネルが乗っ取られてしまい、ユーザランド上で動作する他のアプリケーションプログラムが乗っ取られた場合よりも危険である。この場合、ステップS13において、実行対象プログラムがデバイスドライバのインストールプログラムであった場合、実行対象プログラムに加えてインストール対象のデバイスドライバについても改ざん検出を実行することとしてもよい。
 図4は、比較例に係る、処理装置1を起動する時におけるアプリケーションプログラムの改ざんを検出する処理を説明するためのフローチャートである。ステップS10、S20の処理は、図3のフローチャートと同じ処理である。比較例では、セキュア処理部12は、復号した改ざん検出対象リストをセキュア記憶領域22に格納するが、プログラムリストを通常実行環境側に渡さない。
 通常実行環境下において、通常処理部11は、アプリケーションプログラムの実行要求を受け付けると(S11のY)、当該アプリケーションプログラムを不揮発性記憶部30から読み出し、読み出したアプリケーションプログラムをセキュア実行環境に渡すとともに、当該アプリケーションプログラムの署名の検証をセキュア実行環境に依頼する(S13)。通常実行環境側からセキュア実行環境側が呼び出されると処理部10の実行環境が、通常実行環境からセキュア実行環境に切り替わる。
 セキュア実行環境下において、セキュア処理部12は、署名の検証を依頼されたアプリケーションプログラムが改ざん検出対象リスト内に含まれているか否か判定する(S22)。改ざん検出対象リスト内に含まれていない場合(S22のN)、セキュア処理部12は、当該アプリケーションプログラムが改ざん検出の対象でないとの判定結果を通常実行環境に返す。
 署名の検証を依頼されたアプリケーションプログラムが改ざん検出対象リスト内に含まれる場合(S22のY)、セキュア処理部12は、通常実行環境側から渡されたアプリケーションプログラムの署名を検証し、署名の検証結果を通常実行環境に渡す(S25)。
 通常実行環境下において、実行対象のアプリケーションプログラムが改ざん検出の対象でない場合、または当該アプリケーションプログラムの署名の検証結果が成功であった場合(S14のY)、通常処理部11は当該アプリケーションプログラムを起動する(S15)。当該アプリケーションプログラムの署名の検証結果が失敗であった場合(S14のN)、通常処理部11は当該アプリケーションプログラムの起動を中止する(S16)。
 図3のフローチャートと図4のフローチャートを比較すると、実行対象のアプリケーションプログラムが改ざん検出の対象であるか否かを判定する処理を、通常実行環境側で実行するか、セキュア実行環境側で実行するかの点で異なっている。図4のフローチャートに示される比較例では、セキュア実行環境側で実行しているため、アプリケーションプログラムの実行要求が発生する度に通常実行環境からセキュア実行環境、及びセキュア実行環境から通常実行環境への切り替えが発生している。当該切り替え処理には、一般的にレジスタの退避、メモリ管理ユニット(MMU)の設定変更、キャッシュ処理等が伴い、オーバーヘッドが発生する。1回の切り替えに伴うオーバーヘッド時間は数msであるが、処理装置1を起動する時は数百個のアプリケーションプログラムを起動する必要があるため、起動時間が秒単位で遅くなる。図3のフローチャートに示される本実施の形態では、改ざん検出対象リストからプログラムリストを切り出して通常実行環境側に渡し、通常実行環境側で改ざん検出の対象であるか否かを判定することにより、実行環境の切り替えに係るオーバーヘッドを低減することができる。改ざん検出の対象とするアプリケーションプログラムを、システムの根幹に関わるアプリケーションプログラムに絞り込めば、実行環境の切り替え回数を大きく削減することができる。
 改ざん検出対象リストに含まれる全てのアプリケーションプログラムの改ざんを検出する処理が終了した後、通常処理部11は、強制アクセス制御機能を有効化する。処理装置1を起動する時における改ざんを検出する処理が実行されている間は強制アクセス制御は無効にしている。これにより、処理装置1を起動する時における改ざんを検出する処理が実行されている間、強制アクセス制御に伴い、アクセス元がリソースにアクセスする権限を有しているか否かを判定する処理が発生しなくなる。当該処理によるオーバーヘッド時間は一般的に1回につき数msであるが、前記の通常実行環境-セキュア実行環境間の切り替えと同様、処理装置1を起動する時は数百個のアプリケーションプログラムを起動する必要があるため、起動時間が秒単位で遅くなる。これにより当該処理に係るオーバーヘッドを低減することができる。なお、強制アクセス制御機能を有効化するタイミングが早いほど、オーバーヘッドの低減度合いは減少するがセキュリティ強度は上がるため、強制アクセス制御機能を有効化するタイミングはシステム要件等に応じ、処理装置1を起動する時における改ざんを検出する処理が終了するまでに実施することとしてもよい。
 図5は、図1の処理装置1を備える車載端末装置7の構成を示すブロック図である。図5では車載端末装置7として、カーナビゲーションシステムを想定している。車載端末装置7は、処理装置1、表示部2、音声出力部3、操作部4、GPS受信部5、及び無線通信部6を備える。
 表示部2は液晶ディスプレイまたは有機ELディスプレイを備え、処理装置1から供給される映像データを表示する。例えば、ナビゲーション画面を表示する。音声出力部3はスピーカを備え、処理装置1から供給される音声データを音声出力する。例えば、音声ガイダンスを音声出力する。操作部4は物理キー、タッチパネル等の入力手段を備え、ユーザの操作を電気信号に変換して処理装置1に出力する。GPS受信部5はGPS受信機を備え、複数のGPS衛星から電波を受信して処理装置1の位置を測定する。GPS受信部5は、経度緯度で規定される位置情報を処理装置1に出力する。無線通信部6は携帯電話網または無線LANを介してインターネットに接続するための通信モジュールを備える。例えば、ネットワーク上の図示しない地図サーバと接続し、地図データおよび音声ガイダンス用の音声データを受信し、処理装置1に供給する。
 車載端末装置7がインターネットに接続可能な構成の場合、インターネットを経由してマルウェアやウイルスが処理装置1に侵入するリスクがある。また、スマートフォンと連携して動作する場合も、スマートフォンを経由してマルウェアやウイルスが侵入するケースがある。また、DVD等のメディアを経由して侵入する場合もある。これに対して本発明の実施の形態に係る処理装置1を使用すれば、アプリケーションプログラムを起動する前に改ざんを検出する処理を実行するため、不正な改ざんから車載端末装置7を保護することができる。従って安全かつ高速なセキュアブートを実現した車載端末装置7を構築できる。
 以上説明したように本実施の形態によれば、プログラムリストを通常実行環境側に保持することにより、セキュア実行環境を呼び出す回数を減らすことができ、実行環境を切り替える処理によるオーバーヘッドを低減することができる。その際、改ざん検出対象リストに含まれる各アプリケーションプログラムの署名は、セキュア実行環境側から通常実行環境側に渡さないため、セキュリティ強度の低下を抑えることができる。また、通常実行環境側に保持されるプログラムリストを定期的またはイベント発生ごとにリフレッシュすることにより、外部から不正に改ざんされたプログラムリストを使用して、アプリケーションプログラムの改ざんを検出する処理が実行される可能性を極力抑えることができる。
 また、強制アクセス制御機能の有効化を、改ざん検出対象リストに含まれる全てのアプリケーションプログラムの改ざんを検出する処理が終了した後に実行することにより、強制アクセス機能に係る処理により発生するオーバーヘッドを低減することができる。また、改ざん検出プログラム111をカーネル130ではなくハンドラ110に持たせることにより、改ざん検出プログラム111を修正した際にカーネル130を修正する必要がなくなる。
 以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
 上述の実施の形態では、改ざんを検出する処理として、公開鍵暗号方式を用いて生成された署名を検証する例を説明した。この点、署名の代わりに共通鍵暗号方式を用いて生成されたメッセージ認証コード(MAC)を検証して、改ざんを検出してもよい。また、その他の暗号方式を使用した検証方法を用いてもよい。
 また上述の実施の形態では、強制アクセス制御機能を備えたセキュアOSを使用する例を説明したが、任意アクセス制御を用いたOSにも適用できる。その場合、改ざんを検出する処理の終了後に強制アクセス制御機能を有効化する処理はスキップされる。
 また上述の実施の形態では、アプリケーションプログラムを対象として改ざんを検出する処理を行うこととしたが、アプリケーションプログラムではなく、ファイルシステムイメージを対象としてもよい。特に、ファイルシステムがramfsやpramfsで実現されている場合、ファイルシステムイメージは一般的に連続したメモリ領域に配置される。この場合、当該メモリ領域をマッピングすることで、アプリケーションプログラムを対象とした場合と比較して、ファイルアクセス関連のシステムコール回数を削減し、当該システムコールのオーバーヘッドを低減できる。さらに、メモリマッピングによるアクセスにより、ファイルシステムが保有するファイル読み書きに使用するキャッシュに影響を与えずに、改ざん検出処理を行うことが可能になる。これにより、当該キャッシュを使用する他のアプリケーションの処理速度を低減させることなく、改ざん検出を処理することが可能になる。ファイルシステムが保有するファイル読み書きに使用するキャッシュに影響を与えない方法として、メモリマッピング以外に、直接不揮発性記憶部を読みに行く方法と、ファイルオープンやリードの際にオプションとしてキャッシュに影響を与えない旨を指定する方法があり、これらの方法を用いてもよい。
 また図5では、本実施の形態に係る処理装置1をカーナビゲーションシステムに適用する例を説明したが、ディスプレイオーディオ、コックピットシステム、各種ECU(エンジンECU等)にも適用可能である。また、本実施の形態に係る処理装置1を車載用途以外に使用することを制限するものではなく、安全かつ高速なセキュアブート機能が求められる機器であれば、当該機器に搭載してもよい。
 なお、実施の形態は、以下の項目によって特定されてもよい。
 [項目1]
 少なくとも使用するメモリ空間が隔離されている、通常実行環境とセキュア実行環境を有する処理装置(1)であって、
 プログラムまたはデータの完全性を確認するための検証が必要なプログラムまたはデータの識別情報、及び各プログラムまたはデータの検証に必要な期待値を含む検証リスト(220)を格納する、セキュア実行環境下で使用されるセキュア記憶領域(22)と、
 前記検証リスト(220)内から前記プログラムまたはデータの識別情報を抽出して、通常実行環境に渡す、セキュア実行環境下で動作するセキュア処理部(12)と、
 前記セキュア処理部(12)から渡された前記プログラムまたはデータの識別情報(120)を格納する、通常実行環境下で使用される通常記憶領域(21)と、
 前記検証が必要なプログラムまたはデータの識別情報(120)を参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定する、通常実行環境下で動作する通常処理部(11)と、を備え、
 前記通常処理部(11)は、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータである場合、対象のプログラムまたはデータの検証をセキュア処理部(12)に依頼することを特徴とする処理装置(1)。
 [項目2]
 前記通常処理部(11)は、前記処理装置(1)の起動時において、暗号化された前記検証リストを取得して、セキュア実行環境に渡し、
 前記セキュア処理部(12)は、暗号化された前記検証リストを復号し、復号された前記検証リストから前記検証が必要なプログラムまたはデータの識別情報を抽出して、通常実行環境に渡すことを特徴とする項目1に記載の処理装置(1)。
 [項目3]
 前記セキュア処理部(12)は、定期的またはイベント発生ごとに前記検証が必要なプログラムまたはデータの識別情報を通常実行環境に渡す、または通常実行環境から読み込んでチェックすることを特徴とする項目1または2に記載の処理装置(1)。
 [項目4]
 前記通常処理部(11)は、強制アクセス制御機能を備えたセキュアOS(Operating System)を起動する際、検証が必要なプログラムまたはデータの検証が終了するまでにまたは終了した後、前記強制アクセス制御機能を有効化することを特徴とする項目1から3のいずれかに記載の処理装置(1)。
 [項目5]
 前記通常処理部(11)は、プログラム実行時におけるアクセス要求に対する権限判定を実行するためのハンドラ(110)を実行し、
 前記ハンドラ(110)に、プログラムまたはデータの完全性を確認するための検証処理における通常実行環境側の処理が記述されていることを特徴とする項目1から4のいずれかに記載の処理装置(1)。
 [項目6]
 前記検証が必要なプログラムまたはデータには、ファイルシステムイメージが含まれることを特徴とする項目1から5のいずれかに記載の処理装置(1)。
 [項目7]
 前記セキュア処理部は、前記ファイルシステムのキャッシュメモリに影響を与えずに、前記ファイルシステムイメージを検証することを特徴とする項目6に記載の処理装置(1)。
 [項目8]
 前記検証が必要なプログラムまたはデータには、デバイスドライバのインストールプログラム、インストール対象の前記デバイスドライバの少なくとも一方が含まれるが含まれることを特徴とする項目1から7のいずれかに記載の処理装置(1)。
 [項目9]
 項目1から8のいずれかに記載の処理装置(1)を備えることを特徴とする車載端末装置(7)。
 [項目10]
 少なくとも使用するメモリ空間が隔離されている、通常実行環境とセキュア実行環境を有する処理装置の起動方法であって、
 プログラムまたはデータの完全性を確認するための検証が必要なプログラムまたはデータの識別情報、及び各プログラムまたはデータの検証に必要な期待値を含む検証リストを、セキュア実行環境下で使用されるセキュア記憶領域に格納するステップと、
 前記検証リスト内から前記検証が必要なプログラムまたはデータの識別情報を抽出して、通常実行環境に渡すステップと、
 セキュア実行環境から渡された前記プログラムまたはデータの識別情報を、通常実行環境下で使用される通常記憶領域に格納するステップと、
 通常実行環境下において、前記プログラムまたはデータの識別情報を参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定し、検証が必要なプログラムまたはデータである場合、対象のプログラムまたはデータの検証をセキュア実行環境側に依頼するステップと、
 を備えることを特徴とする処理装置の起動方法。
 [項目11]
 少なくとも使用するメモリ空間が隔離されている、通常実行環境とセキュア実行環境を有する処理装置の起動プログラムであって、
 プログラムまたはデータの完全性を確認するための検証が必要なプログラムまたはデータの識別情報、及び各プログラムまたはデータの検証に必要な期待値を含む検証リストを、セキュア実行環境下で使用されるセキュア記憶領域に格納する機能と、
 前記検証リスト内から前記プログラムまたはデータの識別情報を抽出して、通常実行環境に渡す機能と、
 セキュア実行環境から渡された前記プログラムまたはデータの識別情報を、通常実行環境下で使用される通常記憶領域に格納する機能と、
 通常実行環境下において、前記プログラムのリストを参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定し、検証が必要なプログラムまたはデータである場合、対象のプログラムまたはデータの検証をセキュア実行環境側に依頼する機能と、
 をコンピュータに実行させることを特徴とする処理装置の起動プログラム。
 本発明は、カーナビゲーションシステムやディスプレイオーディオ等のヘッドユニットに利用可能である。
 1 処理装置
 2 表示部
 3 音声出力部
 4 操作部
 5 GPS受信部
 6 無線通信部
 7 車載端末装置
 10 処理部
 11 通常処理部
 12 セキュア処理部
 20 揮発性記憶部
 21 通常記憶領域
 22 セキュア記憶領域
 30 不揮発性記憶部
 40 バス

Claims (11)

  1.  少なくとも使用するメモリ空間が隔離されている、通常実行環境とセキュア実行環境を有する処理装置であって、
     プログラムまたはデータの完全性を確認するための検証が必要なプログラムまたはデータの識別情報、及び各プログラムまたはデータの検証に必要な期待値を含む検証リストを格納する、セキュア実行環境下で使用されるセキュア記憶領域と、
     前記検証リスト内から前記プログラムまたはデータの識別情報を抽出して、通常実行環境に渡す、セキュア実行環境下で動作するセキュア処理部と、
     前記セキュア処理部から渡された前記プログラムまたはデータの識別情報を格納する、通常実行環境下で使用される通常記憶領域と、
     前記検証が必要なプログラムまたはデータの識別情報を参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定する、通常実行環境下で動作する通常処理部と、を備え、
     前記通常処理部は、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータである場合、対象のプログラムまたはデータの検証をセキュア処理部に依頼することを特徴とする処理装置。
  2.  前記通常処理部は、前記処理装置の起動時において、暗号化された前記検証リストを取得して、セキュア実行環境に渡し、
     前記セキュア処理部は、暗号化された前記検証リストを復号し、復号された前記検証リストから前記検証が必要なプログラムまたはデータの識別情報を抽出して、通常実行環境に渡すことを特徴とする請求項1に記載の処理装置。
  3.  前記セキュア処理部は、定期的またはイベント発生ごとに前記検証が必要なプログラムまたはデータの識別情報を通常実行環境に渡す、または通常実行環境から読み込んでチェックすることを特徴とする請求項1または2に記載の処理装置。
  4.  前記通常処理部は、強制アクセス制御機能を備えたセキュアOS(Operating System)を起動する際、検証が必要なプログラムまたはデータの検証が終了するまでにまたは終了した後、前記強制アクセス制御機能を有効化することを特徴とする請求項1から3のいずれかに記載の処理装置。
  5.  前記通常処理部は、プログラム実行時におけるアクセス要求に対する権限判定を実行するためのハンドラを実行し、
     前記ハンドラに、プログラムまたはデータの完全性を確認するための検証処理における通常実行環境側の処理が記述されていることを特徴とする請求項1から4のいずれかに記載の処理装置。
  6.  前記検証が必要なプログラムまたはデータには、ファイルシステムイメージが含まれることを特徴とする請求項1から5のいずれかに記載の処理装置。
  7.  前記セキュア処理部は、前記ファイルシステムのキャッシュメモリに影響を与えずに、前記ファイルシステムイメージを検証することを特徴とする請求項6記載の処理装置。
  8.  前記検証が必要なプログラムまたはデータには、デバイスドライバのインストールプログラム、インストール対象の前記デバイスドライバの少なくとも一方が含まれることを特徴とする請求項1から7のいずれかに記載の処理装置。
  9.  請求項1から8のいずれかに記載の処理装置を備えることを特徴とする車載端末装置。
  10.  少なくとも使用するメモリ空間が隔離されている、通常実行環境とセキュア実行環境を有する処理装置の起動方法であって、
     プログラムまたはデータの完全性を確認するための検証が必要なプログラムまたはデータの識別情報、及び各プログラムまたはデータの検証に必要な期待値を含む検証リストを、セキュア実行環境下で使用されるセキュア記憶領域に格納するステップと、
     前記検証リスト内から前記検証が必要なプログラムまたはデータの識別情報を抽出して、通常実行環境に渡すステップと、
     セキュア実行環境から渡された前記プログラムまたはデータの識別情報を、通常実行環境下で使用される通常記憶領域に格納するステップと、
     通常実行環境下において、前記プログラムまたはデータの識別情報を参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定し、検証が必要なプログラムまたはデータである場合、対象のプログラムまたはデータの検証をセキュア実行環境側に依頼するステップと、
     を備えることを特徴とする処理装置の起動方法。
  11.  少なくとも使用するメモリ空間が隔離されている、通常実行環境とセキュア実行環境を有する処理装置の起動プログラムであって、
     プログラムまたはデータの完全性を確認するための検証が必要なプログラムまたはデータの識別情報、及び各プログラムまたはデータの検証に必要な期待値を含む検証リストを、セキュア実行環境下で使用されるセキュア記憶領域に格納する機能と、
     前記検証リスト内から前記プログラムまたはデータの識別情報を抽出して、通常実行環境に渡す機能と、
     セキュア実行環境から渡された前記プログラムまたはデータの識別情報を、通常実行環境下で使用される通常記憶領域に格納する機能と、
     通常実行環境下において、前記プログラムのリストを参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定し、検証が必要なプログラムまたはデータである場合、対象のプログラムまたはデータの検証をセキュア実行環境側に依頼する機能と、
     をコンピュータに実行させることを特徴とする処理装置の起動プログラム。
PCT/JP2016/001776 2015-07-31 2016-03-28 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム WO2017022149A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-151988 2015-07-31
JP2015151988A JP6422059B2 (ja) 2015-07-31 2015-07-31 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム

Publications (1)

Publication Number Publication Date
WO2017022149A1 true WO2017022149A1 (ja) 2017-02-09

Family

ID=57942611

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/001776 WO2017022149A1 (ja) 2015-07-31 2016-03-28 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム

Country Status (2)

Country Link
JP (1) JP6422059B2 (ja)
WO (1) WO2017022149A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489971A (zh) * 2018-05-15 2019-11-22 微软技术许可有限责任公司 安全的数据集管理
EP3706387A1 (en) * 2019-03-05 2020-09-09 Toyota Jidosha Kabushiki Kaisha Vehicle control device, vehicle control device start-up method, and recording medium
US10789365B2 (en) * 2017-10-04 2020-09-29 Mitsubishi Electric Corporation Control device and control method

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6852604B2 (ja) 2017-07-12 2021-03-31 住友電気工業株式会社 車載装置、管理方法および管理プログラム
JP7052325B2 (ja) * 2017-12-04 2022-04-12 大日本印刷株式会社 デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法
JP6659180B2 (ja) * 2018-04-16 2020-03-04 三菱電機株式会社 制御装置および制御方法
JP2020135459A (ja) * 2019-02-20 2020-08-31 ソニー・オリンパスメディカルソリューションズ株式会社 プロセッサ、制御装置、及びプロセッサの起動プログラム
JP6800276B2 (ja) * 2019-05-14 2020-12-16 三菱電機株式会社 制御装置
US20220261476A1 (en) * 2019-07-22 2022-08-18 Nec Corporation Security management device, security management method and non-transitory computer-readable medium
JP7316902B2 (ja) 2019-10-16 2023-07-28 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
JP7249968B2 (ja) * 2020-03-09 2023-03-31 株式会社東芝 情報処理装置およびストレージ
JP7354074B2 (ja) 2020-09-18 2023-10-02 株式会社東芝 情報処理装置、情報処理方法およびプログラム
EP4407501A3 (en) * 2021-10-06 2024-10-30 Samsung Electronics Co., Ltd. Electronic device for verifying integrity of image using plurality of execution environments, and control method therefor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009372A (ja) * 2007-06-28 2009-01-15 Panasonic Corp 情報端末、クライアントサーバシステムおよびプログラム
JP2009129061A (ja) * 2007-11-21 2009-06-11 Ricoh Co Ltd 情報処理装置、正当性検証方法および正当性検証プログラム
JP2015022521A (ja) * 2013-07-19 2015-02-02 スパンション エルエルシー セキュアブート方法、組み込み機器、セキュアブート装置およびセキュアブートプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009372A (ja) * 2007-06-28 2009-01-15 Panasonic Corp 情報端末、クライアントサーバシステムおよびプログラム
JP2009129061A (ja) * 2007-11-21 2009-06-11 Ricoh Co Ltd 情報処理装置、正当性検証方法および正当性検証プログラム
JP2015022521A (ja) * 2013-07-19 2015-02-02 スパンション エルエルシー セキュアブート方法、組み込み機器、セキュアブート装置およびセキュアブートプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10789365B2 (en) * 2017-10-04 2020-09-29 Mitsubishi Electric Corporation Control device and control method
CN110489971A (zh) * 2018-05-15 2019-11-22 微软技术许可有限责任公司 安全的数据集管理
EP3706387A1 (en) * 2019-03-05 2020-09-09 Toyota Jidosha Kabushiki Kaisha Vehicle control device, vehicle control device start-up method, and recording medium
EP3952244A1 (en) * 2019-03-05 2022-02-09 Toyota Jidosha Kabushiki Kaisha Vehicle control device, vehicle control device start-up method, and recording medium

Also Published As

Publication number Publication date
JP2017033248A (ja) 2017-02-09
JP6422059B2 (ja) 2018-11-14

Similar Documents

Publication Publication Date Title
JP6422059B2 (ja) 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム
CN112074836B (zh) 通过可信执行环境保护数据的设备和方法
US9965268B2 (en) Method and apparatus for preventing software version rollback
US11455397B2 (en) Secure boot assist for devices, and related systems, methods and devices
US6539480B1 (en) Secure transfer of trust in a computing system
EP2913956B1 (en) Management control method and device for virtual machines
US9389898B2 (en) System and method for enforcement of security controls on virtual machines throughout life cycle state changes
US8893295B2 (en) Secure and private location
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
WO2019104988A1 (zh) Plc的安全处理单元及其总线仲裁方法
US8543841B2 (en) Secure hosted execution architecture
CN110245495B (zh) Bios校验方法、配置方法、设备及系统
US7802069B2 (en) Method and apparatus for protecting flash memory
EP2484564A1 (en) Method and apparatus for vehicle security
CN112148314B (zh) 一种嵌入式系统的镜像验证方法、装置、设备及存储介质
JP4754299B2 (ja) 情報処理装置
US20230041769A1 (en) Management system for disk encryption
KR20200041639A (ko) 차량용 소프트웨어 업데이트 장치 및 그 제어 방법
US20200244461A1 (en) Data Processing Method and Apparatus
CN114357468B (zh) 一种固件的安全性保护方法、装置
CN109643352B (zh) 跨安全引导更新保留受保护机密
CN108228219B (zh) 一种带外刷新bios时验证bios合法性的方法及装置
WO2024078159A1 (zh) 完整性度量方法及装置
JP2022190970A (ja) 情報処理装置、情報処理方法、およびプログラム
CN114553428A (zh) 一种可信验证系统、装置、存储介质及电子设备

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16832440

Country of ref document: EP

Kind code of ref document: A1