WO2009090706A1 - 情報処理装置および携帯電話装置 - Google Patents

情報処理装置および携帯電話装置 Download PDF

Info

Publication number
WO2009090706A1
WO2009090706A1 PCT/JP2008/003656 JP2008003656W WO2009090706A1 WO 2009090706 A1 WO2009090706 A1 WO 2009090706A1 JP 2008003656 W JP2008003656 W JP 2008003656W WO 2009090706 A1 WO2009090706 A1 WO 2009090706A1
Authority
WO
WIPO (PCT)
Prior art keywords
information processing
processing apparatus
predetermined
area
execution
Prior art date
Application number
PCT/JP2008/003656
Other languages
English (en)
French (fr)
Inventor
Jun Anzai
Hideki Matsushima
Original Assignee
Panasonic Corporation
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 Panasonic Corporation filed Critical Panasonic Corporation
Publication of WO2009090706A1 publication Critical patent/WO2009090706A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Definitions

  • the present invention relates to an information processing device and a mobile phone device, and more particularly to an information processing device and a mobile phone device capable of performing domain division in consideration of sufficient convenience and safety even when a plurality of CPUs are provided. .
  • the virtualization technology is a technology in which a plurality of virtual environments are provided in the same CPU and a different OS is executed for each virtual environment, and is attracting attention because of efficient use of resources and ease of management.
  • resources are exclusively controlled between virtual environments by a VMM (Virtual Machine Monitor), and access from one virtual environment to another virtual environment can be controlled. For this reason, it is difficult for damage caused by malware or the like in one environment to spread to another environment.
  • VMM Virtual Machine Monitor
  • the secure mode can be executed only by the protection application and has a dedicated protection resource. An information processing terminal having such an operation mode can be shifted from the normal mode to the secure mode to restrict access.
  • a conventional PC that is an example of an information processing terminal is a process called Trusted Boot
  • a conventional PC that is an example of an information processing terminal to perform software integrity verification is a process called Secure Boot.
  • a conventional PC that performs software integrity measurement starts in the order of internal ROM (Core Root of Trust Measurement: CRTM), BIOS, and Kernel.
  • the SHA-1 hash value of the BIOS to be activated next is calculated from the internal ROM, the hash value is set in the PCR (Platform Configuration Register) inside the TPM (Trusted Platform Module), and the BIOS is activated.
  • the BIOS calculates the hash value of Kernel, sets the hash value in PCR, and starts Kernel.
  • this hash value is set in such a manner that the hash value of Kernel depends on the hash value of BIOS.
  • TBC Trusted Component Base
  • the external server When the PC is connected to the network after the implementation of Trusted Boot, the external server requests the PCR value from the PC, and the PC obtains the PCR value signed with the TPM unique key from the TPM and returns it to the external server. .
  • the external server performs control such as permitting network connection when the PCR value is equal to the assumed value.
  • the PCR is a module with high tamper resistance, and high safety is ensured. As a result, the integrity of the terminal can be guaranteed.
  • a hash value is stored in PCR and integrity verification is performed by an external server.
  • hash value calculation and integrity verification are performed by the terminal itself.
  • the MTM for the former is Mobile Local Trusted Module (MLTM)
  • the MTM for the latter is Mobile Remote Trusted Module (MRTM).
  • An execution area whose access is controlled according to a security policy is called a domain.
  • This domain allows a plurality of virtual environments to belong to one domain or a domain that does not use virtualization. It is possible to set a plurality of such domains in the CPU of the information processing terminal. Note that setting a domain is also called domain division.
  • domain division assuming the operation mode see, for example, Non-Patent Document 1
  • domain division assuming a virtual environment for example, Non-Patent Document 2
  • An example of a technique for minimizing damage to the information processing terminal is a technique for comparing a generated value generated using a secret key with a stored value stored and executing a program if they match. It is known (see, for example, Patent Document 1). Further, it is known that a program encrypted with a hardware unique key is falsified and verified, and if there is no falsification, the program is decrypted and started (see, for example, Patent Document 2).
  • the information processing terminal includes arithmetic processing units such as a plurality of CPUs
  • arithmetic processing units such as a plurality of CPUs
  • domain division is performed across arithmetic processing units such as a plurality of CPUs. Domain division considering security and security is not possible.
  • the present invention has been made in view of the above circumstances, and is an information processing apparatus and portable device capable of performing domain division in consideration of sufficient convenience and safety even when a plurality of arithmetic processing units are provided.
  • An object is to provide a telephone device.
  • an information processing apparatus having a plurality of operation modes including a normal mode having no protection resource and a secure mode having a protection resource, and a plurality of arithmetic processing units. And a domain control unit that generates a domain indicating an execution region including a program or data whose access is controlled based on a predetermined security policy, wherein the domain control unit includes the plurality of arithmetic processing units and the plurality of processing units. The domain is generated based on the operation mode.
  • the domain control unit further generates a domain based on the protected resource in the operation mode.
  • the domain control unit further generates a domain based on a virtual environment including an execution area.
  • the domain control unit sets the execution domains to which access control is performed based on the same security policy as the same domain.
  • the arithmetic processing unit has an area indicating a plurality of execution regions, and when the domain control unit communicates from the transmission source area to the transmission destination area, the transmission source area And the destination area are in the same domain, communication is permitted.
  • the arithmetic processing unit has an area indicating a plurality of execution regions, and when the domain control unit communicates from the transmission source area to the transmission destination area, the transmission source area And the transmission destination area are different domains, and communication is permitted when the security policy includes information for permitting communication between the transmission source area and the transmission destination area.
  • the arithmetic processing unit has an area indicating a plurality of execution regions, and the domain control unit prohibits communication with an area where a predetermined verification process has failed.
  • a reliable platform can be constructed because communication is prohibited when verification processing fails even in the same domain.
  • the arithmetic processing unit hierarchically includes execution areas including individually startable programs or data, and the execution areas of the predetermined hierarchy are unique to the execution areas of the predetermined hierarchy.
  • a key is used to decrypt an execution region of a layer one level higher than the predetermined layer
  • a predetermined verification process is executed for the execution region of the one level higher layer, and if the verification process is successful, the one step higher layer The process at the time of starting the program which the execution area
  • the startup process is executed step by step until the lowest layer is the predetermined layer and one step lower layer than the highest layer is the predetermined layer.
  • the execution region of the highest layer decrypts predetermined data using the unique key of the execution region of the highest layer after the execution of the execution region of the highest layer, A predetermined verification process is executed for the predetermined data, and when the verification process is successful, the predetermined data can be operated.
  • the startup process is performed by unbinding Chain-binding including predetermined data, so that a more reliable platform can be constructed. Further, unless the data can be decrypted, the copied data cannot be used at the copy destination terminal, and it becomes difficult to decrypt the data at the copy destination terminal.
  • predetermined data data that can be determined in advance, such as IMEI or SIMLock setting, and is not the same in all terminals can be considered.
  • the predetermined data is data including identification data for identifying the information processing apparatus.
  • the information processing apparatus executes a recovery process based on the importance of the predetermined hierarchy when the execution area of the predetermined hierarchy fails the verification process.
  • the startup process can be continued or stopped flexibly even when verification fails.
  • the information processing apparatus executes a recovery process based on an importance level higher than an importance level of the predetermined hierarchy when the execution area of the predetermined hierarchy fails in the recovery process.
  • recovery processing can be further executed when recovery fails, it is possible to flexibly continue or stop startup processing even when verification or recovery fails.
  • the restoration process is a start / stop process of the information processing apparatus.
  • the startup process can be stopped most safely by stopping and starting the information processing apparatus.
  • high safety can be ensured by stopping the activation when verification fails in a component indispensable for the main processing of the mobile phone terminal.
  • the restoration process is a process of replacing the execution area of the predetermined hierarchy with another execution area acquired from an external server.
  • the startup process can be flexibly continued by replacing the execution area.
  • the restoration process is a process that makes it possible to use only the emergency call function.
  • the information processing apparatus of the present invention is a process for informing the notification unit that the restoration process has failed in the verification process.
  • the user of the information processing apparatus and the service provider can recognize the failure, so that the user of the information processing apparatus and the service provider can quickly determine the subsequent processing.
  • the arithmetic processing unit hierarchically includes execution areas including individually startable programs or data, and the execution areas of the predetermined hierarchy are unique to the execution areas of the predetermined hierarchy.
  • an encryption process for encrypting an execution area one level lower than the predetermined hierarchy is executed.
  • the encryption processing is executed step by step from the highest layer to the predetermined layer and the lowest layer to the predetermined layer.
  • the information processing apparatus encrypts predetermined data using the unique key of the execution layer of the highest layer before the execution region of the highest layer is encrypted. To do.
  • the arithmetic processing unit includes a first arithmetic processing unit and a second arithmetic processing unit that include predetermined data
  • the second arithmetic processing unit includes the first arithmetic processing unit and the second arithmetic processing unit.
  • a verification process related to an execution region including a program that configures a communication path that executes a transmission request for the predetermined data to the first arithmetic processing unit and connects the first arithmetic processing unit and the second arithmetic processing unit. Is successful, the predetermined data transmitted from the first arithmetic processing unit is stored.
  • the two arithmetic processing units that perform IMEI transmission / reception perform the verification processing of the program related to IMEI transmission / reception, and the verification processing is successful. Since only IMEI can be copied and stored, it is possible to ensure the completeness of IMEI.
  • the information processing apparatus of the present invention has a secure flag indicating the result of the verification process, and the arithmetic processing unit determines whether the verification process has failed based on the secure flag.
  • the arithmetic processing unit performs different control depending on the result of the verification process based on the secure flag.
  • the result of the verification process can be easily determined, and the behavior after the verification process can also be determined.
  • the mobile phone device of the present invention includes an antenna, an input unit that receives an operation input, a wireless unit for performing wireless communication via the antenna, and any one of the information processing devices described above.
  • the domain can be divided across a plurality of arithmetic processing units and a plurality of modes.
  • integrity verification of the present invention it is possible to perform software and data integrity verification. Therefore, secure boot that depends not only on the program but also on the data to be protected can be executed.
  • the figure which shows an example of the hardware constitutions of the mobile telephone terminal concerning embodiment of this invention The figure which shows an example of the domain mainly divided by C-MPU12 and A-MPU16 in the mobile telephone terminal concerning embodiment of this invention
  • the flowchart which shows an example of SecureBoot0 of Bootstrap Sequence concerning embodiment of this invention The flowchart which shows an example of SecureBoot1 of Bootstrap Sequence concerning embodiment of this invention
  • the flowchart which shows an example of SecureBoot1 'of Bootstrap Sequence concerning embodiment of this invention The flowchart which shows an example of SecureBoot2 of Bootstrap Sequence concerning embodiment of this invention
  • the figure which shows an example of the resource sharing between domains concerning embodiment of this invention The flowchart which shows an example of the integrity verification after Bootstrap Sequence concerning embodiment of this invention
  • a PC As the information processing apparatus according to the present embodiment, a PC, a personal digital assistant (PDA), a mobile phone terminal, and the like can be considered.
  • a mobile phone terminal will be considered as an example.
  • FIG. 1 is a diagram illustrating an example of a hardware configuration of a mobile phone terminal according to the present embodiment.
  • the mobile phone terminal is a non-volatile memory including a wireless unit 11, a C-MPU (Micro Processing Unit) 12, a volatile memory 13 such as SDRAM, an MB (MPU Bridge) 14, and a NOR / NAND.
  • the memory 15 includes an A-MPU 16, an internal ROM (CRTM) 17, and an MRTM (Mobile Remote Trusted Module) 18.
  • an input unit that receives an operation input may naturally be provided.
  • the wireless unit 11 communicates with an external communication device such as an external server via an antenna (not shown).
  • the A-MPU 16 is an application MPU, and the C-MPU 12 is a communication MPU.
  • the MPU is an example of an arithmetic processing unit, but a CPU, a DSP (Digital Signal Processor), a multi-core CPU, and the like can be considered as the arithmetic processing unit.
  • the volatile memory 13 is a so-called main memory, and stores an execution program and various data.
  • MB 14 is a data transmission path between the A-MPU 16 and the C-MPU 12 and controls communication between the C-MPU 12 and the A-MPU 16.
  • MB14 has both hardware and software elements.
  • the nonvolatile memory 15 stores the IMEI described in the production process of the mobile phone terminal 10 and the encryption component.
  • the internal ROM 17 stores various programs.
  • MRTM18 is a module having high tamper resistance, and is a PCR (Platform Configuration Register), Secure Flag, IMEI (International Mobile Equipment Identity) for identifying a mobile terminal, and a key that is a key that is a unique key of MRTM18.
  • PCR Plate Configuration Register
  • IMEI International Mobile Equipment Identity
  • a particularly important area or data such as a certain RIM_Cert is stored.
  • RIM_Cert can be stored in the nonvolatile memory 15 when a digital signature or the like is applied.
  • a unique key possessed by each layer described later can be embedded in a program in each layer as plain text, or can be encrypted and embedded in the program.
  • the unique key of each layer is encrypted with the unique key of MRTM 18 or an associated key.
  • the encrypted unique key of each layer is decrypted inside the MRTM and cached in the MRTM RAM.
  • the Key includes the cached unique key of each hierarchy.
  • the Secure Flag (secure flag) is a flag formed on the protected memory area held inside the MTM. The result of integrity verification in each layer described later is held. Further, based on the secure flag, the arithmetic processing unit determines whether or not a predetermined verification process has failed. Further, the arithmetic processing unit performs different control depending on the result of the verification process based on the secure flag. The secure flag can be updated. In this embodiment, Secure Flag is also simply referred to as Flag.
  • the cellular phone terminal 10 uses a DC (Domain Coordinator) described later to generate a domain indicating an execution area including a program or data that is controlled based on a predetermined security policy, so that the C-MPU 12 and the A-MPU 16 Divide the area. This is called domain division.
  • the cellular phone terminal 10 is configured to assign domains based on a plurality of operation modes including a calculation processing unit such as a plurality of MPUs such as a C-MPU 12 and an A-MPU 16, a normal mode having no protection resources, and a secure mode having protection resources Generate.
  • a domain may be generated based on cheek resources in the operation mode. Furthermore, a domain may be generated based on a virtual environment including an execution area. Furthermore, a domain may be generated based on a plurality of environments including a virtual environment and a real environment.
  • domain generation refers to one or a plurality of arbitrarily defined areas (A-MPU16, C-MPU12, normal mode, secure mode, virtual environment), one DC sharing information and resources. It means to realize a domain by controlling as a region.
  • the above protected resources are, for example, a memory and a cryptographic engine.
  • the execution area indicates an area or a part for executing various programs, applications, or software, and includes programs and data.
  • FIG. 2 is a diagram mainly showing an example of divided domains of the C-MPU 12 and the A-MPU 16.
  • the C-MPU 12 has an OD (Operator Domain).
  • the A-MPU 16 has an execution area used in the normal mode and the secure mode.
  • the A-MPU 16 has an OD (Operator Domain) and a UD (User Domain).
  • OD is an environment (area) where the platform construction and application execution for the operator of the mobile phone terminal 10 can be performed, and cannot be directly accessed from other domains.
  • the UD is an environment (execution area) in which data or an application used by the owner of the mobile phone terminal 10 or a third party providing a service to the owner can be executed, and the other UD resource only when permitted from another UD. Can be accessed and communicated with other UDs.
  • C-MPU 12 and A-MPU 16 form OD and UD exclusively by switching between normal mode and secure mode.
  • the C-MPU 12 and the A-MPU 16 may be MPUs that can process both modes simultaneously without forming both modes exclusively.
  • OD of A-MPU 16 has TCB (Trusted Component Base), normal mode OD other than TCB, and secure mode OD other than TCB. Further, the OD of the C-MPU 12 has an OD in a normal mode other than TCB.
  • TCB Trusted Component Base
  • the TCB included in the OD of the A-MPU 16 includes HW (Hardware) Platform 21, IPL (Initial Program Loader) 22, DC (Domain Coordinator) 23, MS (Mode Selector) 24, VMM (VirtualMuMitUrMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuMuM) (Bridge) 14 and MRTM (Mobile Remote Trusted Module) 18. Since the TCB is a conceptual division, components that are not included in the MPU, such as the MRTM 18 and the MB 14, can be handled as included in the TCB.
  • HW Platform 21 is a general term for the cryptographic processing function, HW unique key, and mode switching function provided in the A-MPU 16 itself.
  • the HW Platform 21 has an internal ROM 17 (CRTM) 17, an HW unique key, and MC (Mode Controller).
  • MC has a mode switching function like MS.
  • the MC has both hardware and software elements as in the MB14.
  • the IPL 22 is a program that is first executed in an external ROM (not shown), and controls various hardware settings and activation of Kernel.
  • the DC 23 controls the VMM 25, the MS 24, and the MB in an integrated manner according to the security policy defined for each domain, and forms a domain that spans different areas in the mobile phone terminal 1.
  • the DC 23 has a function as a domain control unit.
  • MS24 is a mode switching mechanism between normal mode and secure mode, and performs exclusive control between modes.
  • the VMM 25 is a hardware virtualization layer and performs exclusive control between virtual environments.
  • the OD and UD in the secure mode other than the TCB are the OS (secure mode OS, A-OS, or C-OS) and the app (secure mode app, A-app, or C -App).
  • the area for storing various data is an example of MTM (Mobile Trusted Module) and is included in the Virtualizing MRTM (A-VMRTM or C-vMRTM) included in the OD and the UD. It has Virtualizing MLTM (A-vLTM).
  • MTM Mobile Trusted Module
  • A-VMRTM or C-vMRTM Virtualizing MRTM
  • A-vLTM Virtualizing MLTM
  • VMRTM is an MLTM used in the UD realized in the normal mode of the A-MPU 16, and its function is realized by using the MRTM 18.
  • VMLTM is a virtual driver for accessing MRTM 18 from the OD realized in the normal mode of C-MPU 12 or A-MPU 16.
  • execution areas whose access is controlled based on the same security policy are generated as the same domain.
  • execution areas whose access is controlled based on the same security policy are generated as the same domain.
  • the normal mode OD of A-MPU16, the secure mode OD of A-MPU16 and the OD of C-MPU12, the normal mode UD1 of A-MPU16 and the secure mode UD1, and the normal mode of A-MPU16 UD2 and secure mode UD2 are generated as the same domain.
  • the Bootstrap Sequence When the Bootstrap Sequence is further divided into detailed processing, it is divided into three layers: Secure Boot 0 that establishes a TCB, Secure Boot 1 and 1 'that establishes OD across multiple MPUs, and Secure Boot 2 that establishes a UD.
  • Bootstrap Sequence divides the cellular phone platform (here, mainly A-MPU 16 and C-MPU 12) into one OD and multiple UDs. Domain division of OD is also called OD establishment, and domain division of UD is also called UD establishment.
  • the Secure Boot 0 for starting the internal ROM (CRTM) 17, the IPL 22 and the DC 23, the Secure Boot 1 for starting up the OS / application / data (such as IMEI) in the OD normal mode of the A-MPU 16, and the C-MPU 16
  • the process is divided into three layers: SecureBoot 1 ′ for starting up the OS / application / data in the normal mode of the OD.
  • UD establishment processing is performed in one layer of Secure Boot 2 that starts up the OS / application / data in the normal mode of A-MPU UD.
  • UD establishment is performed after OD establishment.
  • a behavior when integrity verification fails is determined according to a predetermined importance for each layer.
  • Bootstrap Sequence verifies the components and data (such as IMEI) such as internal ROM17, IPL22, and DC23, such as integrity verification, execution of verification failure processing, and verification depending on the processing results using Secure Flag. / Decode processing is executed.
  • the component that executes activation at Bootstrap Sequence verifies (measures) the integrity after decrypting the activation target component with its own unique key.
  • the integrity verification is successful, that is, when it is determined that the integrity is maintained, the activation target component is activated.
  • the integrity verification fails, the activation of the activation target component is prohibited.
  • the component that executes the activation can be decrypted after performing the integrity verification if the encrypted activation target component is a hash target.
  • the mobile phone terminal 10 it is particularly required to protect the integrity of software that handles IMEI and IMEI, which are mobile unit specific numbers.
  • the IMEI integrity is indispensable in order to realize the invalidation of a stolen terminal by controlling access to a terminal that accesses the network using the IMEI.
  • the PC since the PC is also provided with a mobile phone communication function, and the PC may be required to be protected by IMEI in the future, this embodiment in which falsification verification is performed on data such as IMEI as well as software. Bootstrap Sequence in is very useful.
  • the mobile phone terminal 10 repeatedly encrypts the activation target component with the unique key of the component that executes the activation, like encrypting the data with the unique key of the application and encrypting the application with the unique key of the OS.
  • the component is stored in the nonvolatile memory 15.
  • the root key is an HW unique key.
  • Such an encryption method is also called Chain-binding.
  • the A-MPU 16 and the C-MPU 12 have a plurality of components (an example of an execution area including a program) that can be activated individually, and the components in the predetermined layer are the unique keys of the components in the predetermined layer.
  • the above encryption process can be executed step by step from the lowest layer to the predetermined layer until the lowest layer is set to the predetermined layer.
  • the encrypted component is stored in the nonvolatile memory 15.
  • the above-described component performs an encryption process in which the execution region of the lower layer one level lower than the predetermined layer is encrypted using the unique key of the execution region of the predetermined layer. It may be stored in the A-MPU 16 or the C-MPU 12 after being executed step by step until a predetermined hierarchy is reached.
  • FIGS. 3 to 6 are flowcharts showing an example of Bootstrap Sequence executed by the mobile phone terminal 10. Here, in particular, integrity verification is shown.
  • the mobile phone terminal 10 executes Secure Boot 1/1 ′ / 2 after executing Secure Boot 0.
  • the IPL 22 verifies the integrity by decrypting the DC 23 with the MRTM unique key. When the verification is successful, the IPL 22 sets the hash value of the DC 23 to the PCR in the MRTM 18 and sets the Secure Flag 2 to ON, and then activates the DC 23. On the other hand, when verification fails, the IPL 22 stops activation (step S2).
  • DC23 includes VMM25, MS24, and MB14, and when tampering verification of DC23, tampering verification is performed in order of VMM25, MS24, and MB14. This is because the VMM 25, MS 244, and MB 14 are included in the binary file of the DC 23, and are verified together with the verification of the DC 23. Note that when the DC23 does not include the VMM25, MS24, and MB14 and the falsification verification of the DC23 is successful, the verification and activation may be performed in the order of the VMM25, MS24, and MB14.
  • the mobile phone terminal 10 executes Secure Boot 1.
  • A-OS0 verifies the integrity by decrypting A-App0 with the A-vMRTM0 unique key.
  • A-OS0 sets the hash value of A-App0 to A-vMRTM0 in PCR, sets Secure Flag4 to ON, and then starts A-App0.
  • the A-OS 0 shifts the mobile phone terminal 10 to the recovery mode (step S4).
  • A-App0 verifies the integrity by decrypting A-Data0 (such as IMEI) with the C-App0 unique key.
  • A-App0 sets the hash value of A-Data0 to A-vMRTM0 in PCR, sets Secure Flag5 to ON, and caches A-Data0 in A-vMRTM0.
  • A-App0 shifts the mobile phone terminal 10 to the recovery mode (step S5).
  • the mobile phone terminal 10 After the integrity verification of the DC 23, the mobile phone terminal 10 also executes Secure Boot 1 '. Execution of Secure Boot 1 'can be performed in parallel with the implementation of Secure Boot 1.
  • MB14 starts C-OS0 and uses C-vMRTM0 and A-vMRTM0 to establish a SAC (Secure Authentication channel) between C-OS0 and A-OS0.
  • the SAC is a communication path that realizes mutual authentication and encryption of the communication path, like SSL (Secure Socket Layer).
  • C-OS0 decrypts C-App0 with the C-vMRTM0 unique key and verifies the integrity.
  • C-OS0 sets the hash value of C-App0 to PCR in C-vMRTM0, sets Secure Flag 4 'to ON, and then starts C-App0.
  • the C-OS 0 shifts the mobile phone terminal 10 to the recovery mode (step S4 ').
  • C-App0 decrypts C-Data0 with the C-App0 unique key and verifies the integrity.
  • C-App0 sets the hash value of A-Data0 in PCR to C-vMRTM0, sets Secure Flag5 to ON, and caches A-Data0 in A-vMRTM0.
  • C-App0 shifts the mobile phone terminal 10 to the recovery mode.
  • Secure Boot 2 can be parallel to the implementation of Secure Boot 1 and 1 '.
  • A-OS1 decrypts A-App1 with the A-vMRTM1 unique key and verifies the integrity.
  • A-OS1 sets the hash value of A-App1 to A-vMLTM1, sets Secure Flag7 to ON, and then activates A-App1.
  • the A-OS 1 shifts the mobile phone terminal 10 to the report mode (step S7).
  • A-App1 decrypts A-Data1 with the A-App1 unique key and verifies the integrity.
  • A-App1 sets the hash value of A-Data1 in A-vMLTM1 to PCR, sets Secure Flag8 to ON, and then caches A-Data1 in A-vMLTM1.
  • A-App1 makes a transition to the report mode (step S8).
  • the establishment method after UD2 of the A-MPU 16 is the same as that of UD1.
  • establishment of OD / UD in secure mode is executed at the time of transition to secure mode.
  • the contents of the establishment are the same as those in the normal mode except that the MRTM 18 is directly accessed. In FIG. 3, the normal mode is assumed.
  • the protection software executed in the secure mode is stored in the nonvolatile memory 15 in an encrypted state, and decryption and integrity verification are performed by the HW Platform 21 immediately before execution, and execution is permitted only when successful.
  • the cellular phone terminal 10 has a plurality of components (an example of an execution area including a program) that can be individually activated by the A-MPU 16 and the C-MPU 12, and the components in the predetermined hierarchy are predetermined.
  • the predetermined verification process is executed for the component of the upper layer, and if the verification process is successful, the above one layer upper layer Execute the startup process that starts the component. Further, the start-up process can be executed step by step in order from the lowest layer to the predetermined layer to the one layer lower layer than the highest layer to the predetermined layer.
  • the top layer execution region decrypts data such as IMEI using the unique key of the top layer execution region, executes a predetermined verification process, and performs the above verification.
  • data such as IMEI can be operated.
  • the mobile phone terminal 10 can change the behavior at the time of verification failure according to the importance of the layer in Bootstrap Sequence. That is, it is possible to execute a recovery process based on the importance of a predetermined hierarchy.
  • the process fails in recovery mode, transition to emergency mode. However, the transition is performed only when the integrity of components required for communication such as IMEI and IMEI related software is guaranteed.
  • the mode is changed to a report mode in which the user (the owner of the mobile phone terminal 10 or the service provider) is notified of the failure, and the user is allowed to determine subsequent processing.
  • the integrity verification level itself according to the importance of the layer. For example, in order to speed up the start-up, the lower the importance, the narrower the component verification range or the lower the probability of verification. At least, it is necessary to implement so that the entire range of all components is verified within a certain period. However, it is possible to increase the speed by omitting a part of the verification process of the layer with low importance.
  • the recovery process when the recovery process fails, the recovery process based on the importance level higher than the predetermined hierarchy level (component) that failed the recovery process may be performed.
  • FIG. 3 it is explained that when the verification fails, the transition is made to the recovery mode in the secure boots 1 and 1 ′, and the report mode in the secure boot 2, but the recovery mode and emergency mode are changed depending on the importance of each layer. , Report mode, or start / stop. However, since Secure Boot0 is very important, start and stop are performed when verification fails. In the report mode, for example, it is possible to display a message or the like to the user through a user interface (UI), or to send a message to an external server such as a service providing server.
  • UI user interface
  • the domain in the mobile phone terminal 1 includes the TCB of the A-MPU 16, the virtual environment 0/1/2 of the normal mode 0 of the A-MPU 16, the secure mode 0/1/2 of the A-MPU 16, It is composed of one or more areas in the normal mode 0 of the C-MPU 12.
  • the OD is composed of a TCB of the A-MPU 16, a virtual environment 0 of the normal mode 0 of the A-MPU 16, a secure mode 0 of the A-MPU 16, and a plurality of areas of the normal mode 0 of the C-MPU 12.
  • the domain configuration is not limited to the above configuration.
  • one of the roles of the DC 23 is to flexibly share information and resources in a plurality of areas belonging to these ODs, and to control information outflow and resources to other domains.
  • the DC 23 monitors the MB that controls a plurality of MPUs, the MS 24 that controls a plurality of operation modes, and the VMM 25 that controls a plurality of virtual environments, and performs information and resource access according to a base policy corresponding to OD and a domain policy corresponding to UD. Control.
  • the base policy and the domain policy are examples of security policies.
  • the area indicates an execution area such as the OD of the normal mode of the A-MPU 16, the UD 1 or UD 2, the OD of the secure mode of the A-MPU 16, the UD 1 or UD 2, or the OD of the C-MPU 12.
  • the mobile phone terminal 10 controls inter-domain information distribution by the DC 23 as follows.
  • DC23 specifies that information from an area to another area always passes through DC23.
  • the DC 23 permits communication only when the domain to which the transmission source area belongs and the domain to which the transmission destination area belongs (base policy).
  • the DC 23 permits communication even when the domain to which the transmission destination area belongs is different when the domain policy set in advance in the domain to which the transmission source area belongs.
  • the DC 23 confirms the secure flag, and prohibits communication from an area where the flag is OFF and communication to an area where the flag is OFF. That is, communication with an area where the predetermined verification process has failed is prohibited.
  • FIG. 7 is a diagram illustrating an example of inter-domain resource sharing.
  • MRTM18 manages Secure Flag 0/1/2/3/6
  • A-vMRTM0 manages Secure Flag 4/5
  • C-vMRTM0 manages Secure Flag 4 '/ 5'
  • A-vMLTM1 manages Secure Flag 7/8
  • DC23 belongs Only allow access from the domain (base policy).
  • -It is permitted to access the MRTM 18 directly from the area in the secure mode via the DC 23.
  • FIG. 7 shows an example of access from the OS. -No access other than via the virtual MTM (vMRTM or vMLTM) is permitted from the area in the normal mode.
  • the DC 23 controls the PCR / Secure Flag of the MRTM 18 to Read Only (read only), and does not permit reference to any PCR / Secure Flag other than the MRTM 18 (base policy).
  • the DC 23 permits PCR / Secure Flag reference even if the domain to which the access source area belongs is different.
  • Verification_Tag for data such as IMEI
  • FIG. 8 is a flowchart showing an example of integrity verification after Bootstrap Sequence.
  • the C-MPU 12 requests the IMEI from the A-App0 when the validity period of the IMEI cached in the C-vMRTM0 has expired (step S11).
  • A-App0 reads IMEI from A-vMRTM0 (step S12). It is assumed that IMEI is cached in MRTM 18 via A-vMRTM0 or A-vMRTM.
  • the A-MPU 16 sets Verification_Tag to ON and sends an IMEI message to C-App0 (step S13).
  • step S15 the A-MPU 16 and the C-MPU 12 determine whether or not the Secure Flag corresponding to the transmission source program that has sent the IMEI is ON.
  • step S16 the A-MPU 16 and the C-MPU 12 execute falsification verification of the destination program
  • step S17 determine whether the destination program (for example, C-OS0) has been tampered with
  • the A-MPU 26 and the C-MPU 22 turn on the Secure Flag corresponding to the destination program, and send an IMEI message to the destination program (step S18).
  • steps S14 to S18 are repeated for the number of programs on the communication path.
  • the A-MPU 16 and the C-MPU 12 determine whether or not an IMEI message has been transmitted to C-App0, for example, as shown in step S13. If the IMEI message has not been transmitted, the process returns immediately before step S13.
  • the C-MPU 12 receives the IMEI message from C-App0 (step S20).
  • the C-MPU 12 determines whether or not the secure flag of the transmission source program is ON (step S21).
  • the C-MPU 12 caches IMEI in C-vMRTM0 (step S22).
  • the mobile phone terminal 10 allows the C-MPU 12 to send a transmission request for data such as IMEI to the A-MPU 16 when the IMEI is used or when the expiration date has passed.
  • the C-MPU 12 stores the data transmitted from the A-MPU 16 when the verification process related to the execution area including the program constituting the communication path connecting the A-MPU 16 and the C-MPU 12 is successful.
  • -Domain division can be performed based on arithmetic processing units such as multiple MPUs and multiple modes, so even if multiple arithmetic processing units are provided, domain division is performed in consideration of sufficient convenience and safety. It is possible.
  • the IMEI and related software are encrypted at the copy destination terminal by encrypting the IMEI with a chain using the unique key of HW Platform21 / MRTM18 as a root by Chain-binding. Are all difficult to decode.
  • the coincidence between the IMEI described in the nonvolatile memory 15 in the production process and the IMEI output to the wireless communication path is realized by caching the IMEI in the MRTM in a state where the integrity is guaranteed after the OD is established.
  • This is not only the integrity verification of IMEI itself by Chain-Unbinding described above, but also the integrity of components using IMEI is guaranteed by Bootstrap Sequence, and the decoding / verification processing of IMEI is controlled depending on the Secure Flag. It is guaranteed from that.
  • IMEI-driven and minimum necessary IMEI-related software verification when IMEI is used it is possible to realize efficient processing on the communication side while realizing IMEI protection.
  • the present invention is useful as an information processing device, a mobile phone device, and the like that can execute domain division in consideration of sufficient convenience and safety even when a plurality of arithmetic processing units are provided.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

 複数の演算処理部を備える場合であっても、十分な利便性および安全性を考慮したドメイン分割を実行可能な情報処理装置および携帯電話装置を提供する。  保護リソースを有しないノーマルモードおよび保護リソースを有するセキュアモードを含む複数の動作モードを有する携帯電話端末10であって、複数の演算処理部と、所定のセキュリティポリシに基づいてアクセス制御されるプログラムまたはデータを含む実行領域を示すドメインを生成するDC23と、を有し、DC23は、複数の演算処理部および複数の動作モードに基づいてドメインを生成する。

Description

情報処理装置および携帯電話装置
 本発明は、情報処理装置および携帯電話装置に関し、特に、複数のCPUを備える場合であっても、十分な利便性および安全性を考慮したドメイン分割を実行可能な情報処理装置および携帯電話装置に関する。
 近年、マルウェアによるPC等の情報処理端末の被害が拡大している。このような情報処理端末の被害を最小限に抑えるために、仮想化技術、セキュリティに関する動作モードの設定、ソフトウェアの完全性計測または完全性検証の実施、ドメイン分割などが知られている。
 仮想化技術は、同一のCPU内に複数の仮想環境を設け、仮想環境毎に異なるOSを実行する技術であり、リソースの効率利用や管理の容易性から注目されている。セキュリティ面では、仮想環境間はVMM(Virtual Machine Monitor)によりリソースが排他制御され、ある仮想環境から他仮想環境に対するアクセスを制御できる。そのため、ある環境におけるマルウェア等による被害が他の環境へ波及しにくい。
 また、情報処理端末の動作モードとして、ノーマルモードおよびセキュアモードがある。セキュアモードは、保護アプリケーションのみ実行可能であり、専用保護リソースを有する。このような動作モードを有する情報処理端末では、ノーマルモードからセキュアモードへ移行させ、アクセス制限を行うことが可能である。
 また、ソフトウェアの完全性計測を実施するために、情報処理端末の一例である従来のPCではTrusted Bootと呼ばれる処理を、ソフトウェアの完全性検証を実施するために、情報処理端末の一例である従来の携帯電話ではSecure Bootと呼ばれる処理を行う。
 ソフトウェアの完全性計測を実施する従来のPCは、内部ROM(Core Root of Trust Measurement:CRTM)、BIOS、Kernelの順に起動する。この際、内部ROMから次に起動するBIOSのSHA-1ハッシュ値を計算し、TPM(Trusted Platform Module)内部のPCR(Platform Configuration Register)にハッシュ値を設定し、BIOSを起動する。BIOSはKernelのハッシュ値を計算し、PCRにハッシュ値を設定し、Kernelを起動する。ここで、このハッシュ値は、BIOSのハッシュ値にKernelのハッシュ値が依存した形で設定される。Kernelが起動されると、Trusted Component Base(TCB)が確立する。この一連の流れをTrusted Bootと呼ぶ。
 Trusted Bootの実施後、PCがネットワークに接続された場合等に、外部サーバがPCにPCR値を要求し、PCはTPMからTPM固有鍵で署名されたPCR値を取得して外部サーバに返信する。外部サーバはPCR値が想定の値と等しい場合に、ネットワーク接続を許可する等の制御を行う。ここで、PCRは耐タンパ性の高いモジュールであり、高い安全性が確保されるため、結果として端末の完全性を保証できる。
 また、ソフトウェアの完全性検証を実施する従来の携帯電話は、Trusted Bootと同様の処理によりハッシュ値を計測し、事前に用意したハッシュ期待値と計測したハッシュ値を比較し、一致時のみ対象ソフトウェアを起動する。この流れをSecure Bootと呼ぶ。なお、ハッシュ期待値や計測したハッシュ値は、MTM(Mobile Trusted Module)に格納される。
 このように、Trusted Bootでは、ハッシュ値をPCRに保存し、外部サーバにより完全性検証を行うが、Secure Bootでは、端末自身でハッシュ値算出および完全性検証まで実施する。また、MTMは、携帯電話はユーザの所有物であり、通信オペレータのプラットフォームでもあるため、前者向けのMTMをMobile Local Trusted Module(MLTM)、後者向けのMTMをMobile Remote Trusted Module(MRTM)としている。
 また、セキュリティポリシに従いアクセス制御される実行領域をドメインと呼ぶ。このドメインは、複数の仮想環境が1つのドメインに属することや、仮想化を用いないドメインを許容する。情報処理端末のCPUにこのようなドメインを複数設定することが可能になっている。なお、ドメインを設定することをドメイン分割とも呼ぶ。
 このような情報処理端末内のCPUにドメイン分割を行う技術の一例として、上記動作モードを想定したドメイン分割(例えば、非特許文献1参照)や仮想環境を想定したドメイン分割(例えば、非特許文献2参照)が知られている。
 なお、情報処理端末の被害を最小限に抑えるための技術の一例として、秘密キーを用いて生成される生成値と保存されている保存値とを比較し、一致すればプログラムを実行する技術が知られている(例えば、特許文献1参照)。また、ハードウェア固有鍵で暗号化されたプログラムを改ざん検証し、改ざんがなければ、プログラムを復号化して起動することが知られている(例えば、特許文献2参照)。
「Open and Secure Terminal Initiative 2006」 NTTドコモ 「IBM Virtualizing the Trusted Platform Module 2006」 IBM 特許第2564593号公報 特開2003-108257号公報
 しかしながら、上記特許文献では、情報処理端末が複数のCPU等の演算処理部を備える場合、複数のCPU等の演算処理部間にまたがってドメイン分割を行うことが想定されていないため、十分な利便性および安全性を考慮したドメイン分割を行うことができない。
 本発明は、上記事情を鑑みてなされたものであって、複数の演算処理部を備える場合であっても、十分な利便性および安全性を考慮したドメイン分割を実行可能な情報処理装置および携帯電話装置を提供することを目的とする。
 上記目的を達成するために、本発明の情報処理装置は、保護リソースを有しないノーマルモードおよび保護リソースを有するセキュアモードを含む複数の動作モードを有する情報処理装置であって、複数の演算処理部と、所定のセキュリティポリシに基づいてアクセス制御されるプログラムまたはデータを含む実行領域を示すドメインを生成するドメイン制御部と、を有し、前記ドメイン制御部は、前記複数の演算処理部および前記複数の動作モードに基づいて前記ドメインを生成する。
 上記構成によれば、複数の演算処理部を備える場合であっても、十分な利便性および安全性を考慮したドメイン分割を実行可能である。
 また、本発明の情報処理装置は、前記ドメイン制御部が、更に、前記動作モードの前記保護リソースに基づいてドメインを生成する。
 上記構成によれば、複数の演算処理部を備える場合であっても、十分な利便性および安全性を考慮したドメイン分割を実行可能である。
 また、本発明の情報処理装置は、前記ドメイン制御部が、更に、実行領域を含む仮想環境に基づいて、ドメインを生成する。
 上記構成によれば、複数の演算処理部を備える場合であっても、十分な利便性および安全性を考慮したドメイン分割を実行可能である。
 また、本発明の情報処理装置は、前記ドメイン制御部が、同一のセキュリティポリシに基づいてアクセス制御される実行領域を同一のドメインとする。
 上記構成によれば、信頼できるプラットフォームを構築することができる。
 また、本発明の情報処理装置は、前記演算処理部が、複数の実行領域を示すエリアを有し、前記ドメイン制御部が、送信元エリアから送信先エリアへ通信を行う際、前記送信元エリアと前記送信先エリアとが同一のドメインである場合に、通信を許可する。
 上記構成によれば、同一ドメイン間でのみ通信を許可するため、信頼できるプラットフォームを構築することができる。
 また、本発明の情報処理装置は、前記演算処理部が、複数の実行領域を示すエリアを有し、前記ドメイン制御部が、送信元エリアから送信先エリアへ通信を行う際、前記送信元エリアと前記送信先エリアとが異なるドメインである場合、かつ、前記セキュリティポリシに前記送信元エリアと送信先エリアとの間の通信を許可するための情報が含まれる場合に、通信を許可する。
 上記構成によれば、送信元エリアと送信先エリアとが異なるドメインである場合であっても、所定の場合にのみ通信を許可するので、柔軟性のある信頼できるプラットフォームを構築することができる。
 また、本発明の情報処理装置は、前記演算処理部が、複数の実行領域を示すエリアを有し、前記ドメイン制御部が、所定の検証処理に失敗したエリアとの間の通信を禁止する。
 上記構成によれば、同一ドメインであっても検証処理に失敗している場合には通信を禁止するため、信頼できるプラットフォームを構築することができる。
 また、本発明の情報処理装置は、前記演算処理部が、個別に起動可能なプログラムまたはデータを含む実行領域を階層的に有し、所定階層の実行領域が、当該所定階層の実行領域の固有鍵を用いて当該所定階層よりも一段階上位層の実行領域を復号化し、前記一段階上位層の実行領域について所定の検証処理を実行し、前記検証処理に成功した場合、前記一段階上位層の実行領域が有するプログラムを起動する起動時処理を実行する。
 上記構成によれば、前階層の固有鍵を用いて復号化等を行うため、信頼できるプラットフォームを構築することができる。
 また、本発明の情報処理装置は、前記起動時処理が、最下位層を前記所定階層として最上位層よりも一段階下位層を前記所定階層とするまで一段階ずつ順に実行される。
 上記構成によれば、階層毎に段階的に復号化し、さらに前階層の固有鍵を用いてChain-bindingをUnbindingすることで起動時処理を行うため、信頼できるプラットフォームを構築することができる。
 また、本発明の情報処理装置は、最上位層の実行領域が、当該最上位層の実行領域の起動後に、当該最上位層の実行領域の固有鍵を用いて所定のデータを復号化し、前記所定のデータについて所定の検証処理を実行し、前記検証処理に成功した場合、前記所定のデータを操作可能とする。
 上記構成によれば、例えば所定のデータを含めてChain-bindingをUnbindingすることで起動時処理を行うため、さらに信頼できるプラットフォームを構築することができる。また、復号化ができない限りコピーされたデータがコピー先端末で利用できず、コピー先端末ではデータが復号困難となる。なお、所定のデータとしては、IMEIやSIMLock設定のような事前に決めることができて、かつ全ての端末で同じではないデータが考えられる。
 また、本発明の情報処理装置は、前記所定のデータが、当該情報処理装置を識別するための識別データを含むデータである。
 上記構成によれば、IMEI等のデータを含めてChain-bindingをUnbindingすることで起動時処理を行うため、さらに信頼できるプラットフォームを構築することができる。また、復号化ができない限りコピーされたIMEIがコピー先端末で利用できず、コピー先端末ではIMEI及び関連ソフトウェアの全てが復号困難となる。
 また、本発明の情報処理装置は、所定階層の実行領域が、前記検証処理に失敗した場合、当該所定階層の重要度に基づく復旧処理を実行する。
 上記構成によれば、検証失敗時に復旧処理を実行可能であるため、検証失敗時であっても起動時処理を柔軟に継続または停止することが可能である。
 また、本発明の情報処理装置は、所定階層の実行領域が、前記復旧処理に失敗した場合、当該所定階層の重要度よりも高い重要度に基づく復旧処理を実行する。
 上記構成によれば、復旧失敗時にさらに復旧処理を実行可能であるため、検証や復旧に失敗時であっても起動時処理を柔軟に継続または停止することが可能である。
 また、本発明の情報処理装置は、前記復旧処理が、当該情報処理装置の起動停止処理である。
 上記構成によれば、情報処理装置を起動停止することで、最も安全に起動時処理を停止ことが可能である。特に携帯電話端末の主要な処理の実行に不可欠なコンポーネントにおいて検証失敗した場合に起動停止すると、高い安全性を確保できる。
 また、本発明の情報処理装置は、前記復旧処理が、前記所定階層の実行領域を外部サーバから取得した他の実行領域に差し替える処理である。
 上記構成によれば、上記実行領域の差し替えにより、起動時処理を柔軟に継続可能である。
 また、本発明の情報処理装置は、前記復旧処理が、非常通報機能のみ利用可能とする処理である。
 上記構成によれば、非常通報のみ利用可能とするので、危急の場合に最低限の動作を保証することができるとともに、高い安全性を確保することができる。
 また、本発明の情報処理装置は、前記復旧処理が、前記検証処理に失敗した旨を報知部に報知させる処理である。
 上記構成によれば、失敗した旨を情報処理装置のユーザやサービス提供者が認識可能であるため、情報処理装置のユーザやサービス提供者が以降の処理を迅速に判断することができる。
 また、本発明の情報処理装置は、前記演算処理部が、個別に起動可能なプログラムまたはデータを含む実行領域を階層的に有し、所定階層の実行領域が、当該所定階層の実行領域の固有鍵を用いて当該所定階層よりも一段階下位層の実行領域を暗号化する暗号化処理を実行する。
 上記構成によれば、前階層の固有鍵を用いて暗号化を行うため、信頼できるプラットフォームを構築することができる。
 また、本発明の情報処理装置は、前記暗号化処理が、最上位層よりも一段階下位層を前記所定階層としてから最下位層を前記所定階層とするまで一段階ずつ順に実行される。
 上記構成によれば、階層毎に段階的に暗号化し、さらに前階層の固有鍵を用いてChain-bindingを行う暗号化処理を行うため、信頼できるプラットフォームを構築することができる。
 また、本発明の情報処理装置は、最上位層の実行領域が、当該最上位層の実行領域の暗号化前に、当該最上位層の実行領域の固有鍵を用いて所定のデータを暗号化する。
 上記構成によれば、所定のデータを含めてChain-bindingを行う起動時処理を行うため、さらに信頼できるプラットフォームを構築することができる。また、復号化ができない限りコピーされたデータがコピー先端末で利用できず、コピー先端末ではデータが復号困難となる。
 また、本発明の情報処理装置は、前記演算処理部が、所定のデータを備える第1の演算処理部と、第2の演算処理部とを有し、前記第2の演算処理部が、前記第1の演算処理部へ前記所定のデータの送信要求を実行し、前記第1の演算処理部と当該第2の演算処理部とを接続する通信路を構成するプログラムを含む実行領域に関する検証処理が成功した場合、前記第1の演算処理部から送信された前記所定のデータを記憶する。
 上記構成によれば、例えば情報処理装置の利用時又は定期的に、IMEIの送受信を行う2つの演算処理部において、IMEIの送受信に関連するプログラムの検証処理を行い、検証処理に成功した場合にのみIMEIをコピーし記憶することが可能となるため、IMEIの完全性を確実に確保することが可能である。
 また、本発明の情報処理装置は、前記検証処理の結果を示すセキュアフラグを有し、前記演算処理部が、前記セキュアフラグに基づいて、前記検証処理に失敗したか否かを判定する。
 また、本発明の情報処理装置は、前記演算処理部が、前記セキュアフラグに基づく検証処理の結果に応じて、異なる制御を行う。
 上記構成によれば、セキュアフラグを用いることで、検証処理の結果を容易に判断することができ、検証処理後の挙動についても決定することが可能である。
 また、本発明の携帯電話装置は、アンテナと、操作入力を受け付ける入力部と、前記アンテナを介して無線通信を行うための無線部と、上記いずれかの情報処理装置とを有する。
 上記構成によれば、複数のCPUを備える場合であっても、十分な利便性および安全性を考慮したドメイン分割の実行等が可能である。
 以上説明したように、本発明にかかる情報処理装置および携帯電話装置によれば、複数の演算処理部、複数モードにまたがってドメイン分割できる。また、本発明の完全性検証では、ソフトウェアおよびデータの完全性検証まで行うことが可能である。したがって、プログラムのみに依存したセキュアブートではなく、保護したいデータにも依存させるセキュアブートが実行可能である。
本発明の実施形態にかかる携帯電話端末のハードウェア構成の一例を示す図 本発明の実施形態にかかる携帯電話端末における主にC-MPU12およびA-MPU16の分割されたドメインの一例を示す図 本発明の実施形態にかかるBootstrap SequenceのSecure Boot0の一例を示すフローチャート 本発明の実施形態にかかるBootstrap SequenceのSecure Boot1の一例を示すフローチャート 本発明の実施形態にかかるBootstrap SequenceのSecure Boot1’の一例を示すフローチャート 本発明の実施形態にかかるBootstrap SequenceのSecure Boot2の一例を示すフローチャート 本発明の実施形態にかかるドメイン間リソース共有の一例を示す図 本発明の実施形態にかかるBootstrap Sequence後における完全性検証の一例を示すフローチャート
符号の説明
10 携帯電話端末
11 無線部
12 C-MPU
13 揮発メモリ
14 MB(MPU Bridge)
15 不揮発メモリ
16 A-MPU
17 内部ROM
18 MRTM
21 HW Platform
22 IPL
23 DC
24 MS
25 VMM
 本発明の実施形態における情報処理装置および携帯電話装置について、図面を参照しながら以下に説明する。
 本実施形態にかかる情報処理装置としては、PC、携帯情報端末(PDA)、携帯電話端末などが考えられるが、ここでは一例として携帯電話端末について考察する。
 図1は、本実施形態にかかる携帯電話端末のハードウェア構成の一例を示す図である。
 本実施形態の携帯電話端末は、無線部11と、C-MPU(Micro Processing Unit)12と、SDRAM等の揮発メモリ13と、MB(MPU Bridge)14と、NOR/NAND等によって構成される不揮発メモリ15と、A-MPU16と、内部ROM(CRTM)17と、MRTM(Mobile Remote Trusted Module)18とを有して構成される。また、図示はしないが、操作入力を受け付ける入力部を当然備えてもよい。
 無線部11は、図示しないアンテナを介して外部サーバ等の外部通信装置と通信を行う。
 A-MPU16は、アプリケーション用のMPUであり、C-MPU12は、通信用のMPUである。MPUは演算処理部の一例であるが、演算処理部として他に、CPU、DSP(Digital Signal Processor)、複数コアのCPUなどが考えられる。
 揮発メモリ13は、いわゆるメインメモリであり、実行プログラムや各種データを記憶する。
 MB14は、A-MPU16およびC-MPU12間のデータ伝送路であり、C-MPU12とA-MPU16との間の通信を制御する。MB14は、ハードウェア的要素とソフトウェア的要素とをあわせ持つ。
 不揮発メモリ15は、携帯電話端末10の生産工程で記載されたIMEIや、暗号化コンポーネントを記憶する。
 内部ROM17は、各種プログラムを記憶する。
 MRTM18は、高い耐タンパ性を有するモジュールであり、PCR(Platform Configuration Register)、Secure Flag、携帯端末を識別するためのIMEI(International Mobile Equipment Identity)、MRTM18の固有鍵であるKey、ハッシュ期待値であるRIM_Certなどの特に重要度の高い領域やデータを記憶する。
 なお、RIM_Certについては、ディジタル署名などが施されている場合には、不揮発メモリ15に保存することも可能である。
 また、後述する各階層が有する固有鍵は、平文のまま各階層のプログラムに埋め込む場合と、暗号化してプログラムに埋め込む場合があり得る。後者の場合、各階層の固有鍵はMRTM18の固有鍵または関連する鍵で暗号化する。暗号化された各階層の固有鍵はMRTMの内部で復号化され、MRTMのRAMにキャッシュされる。この場合、Keyにはキャッシュされた各階層の固有鍵も含む。
 ここで、Secure Flag(セキュアフラグ)とは、MTMが内部に保持する保護メモリ領域上に形成されたフラグである。後述する各レイヤにおける完全性検証の結果を保持する。また、セキュアフラグに基づいて、演算処理部は所定の検証処理に失敗したか否かを判定する。また、セキュアフラグに基づく検証処理の結果に応じて、演算処理部は異なる制御を行う。また、セキュアフラグは、更新可能である。本実施形態では、Secure Flagを単にFlagとも称する。
 携帯電話端末10は、後述するDC(Domain Coordinator)により、所定のセキュリティポリシに基づいてアクセス制御されるプログラムまたはデータを含む実行領域を示すドメインを生成するために、C-MPU12およびA-MPU16の領域を分割する。これをドメイン分割と称する。携帯電話端末10は、C-MPU12およびA-MPU16などの複数のMPU等の演算処理部、保護リソースを有しないノーマルモードおよび保護リソースを有するセキュアモードを含む複数の動作モードに基づいて、ドメインを生成する。
 なお、複数の演算処理部および複数の動作モードの他に、更に、動作モードの頬リソースに基づいてドメインを生成してもよい。また、更に、実行領域を含む仮想環境に基づいて、ドメインを生成してもよい。また、更に、仮想環境および実環境を含む複数の環境に基づいて、ドメインを生成してもよい。
 ここで、ドメインの生成とは、任意に定めた1つまたは複数のエリア(A-MPU16、C-MPU12、ノーマルモード、セキュアモード、仮想環境)を、DCが、情報やリソースを共有する1つの領域として制御することでドメインを実現することを意味している。
 また、上記の保護リソースとは、例えばメモリや暗号エンジンである。また、実行領域とは、各種プログラムやアプリケーションやソフトウェアを実行するための領域や部位を示し、プログラムやデータを含むものである。
 図2は、主にC-MPU12およびA-MPU16の分割されたドメインの一例を示す図である。
 図2に示すように、C-MPU12は、OD(Operator Domain)を有する。A-MPU16は、ノーマルモードおよびセキュアモードにおいて利用される実行領域を有する。また、A-MPU16は、OD(Operator Domain)およびUD(User Domain)を有する。
 ODは、携帯電話端末10のオペレータ向けのプラットフォーム構築とアプリケーション実行が可能な環境(領域)であり、他ドメインから直接アクセスできない。
 UDは、携帯電話端末10の所有者又は所有者へサービスを提供するサードパーティが利用するデータやアプリケーションの実行が可能な環境(実行領域)であり、他UDから許可された場合のみ他UDリソースへのアクセスや他UDとの通信が可能である。
 C-MPU12およびA-MPU16は、ノーマルモード、セキュアモードのモード切替によって、OD、UDを排他的に形成する。ただし、C-MPU12およびA-MPU16は、両モードを排他的に形成せずに両モードを同時に処理可能なMPUであってもよい。
 A-MPU16のODは、TCB(Trusted Component Base)、TCB以外のノーマルモードのOD、およびTCB以外のセキュアモードのODを有する。また、C-MPU12のODは、TCB以外のノーマルモードのODを有する。
 A-MPU16のODに含まれるTCBは、HW(Hardware) Platform21、IPL(Initial Program Loader)22、DC(Domain Coordinator)23、MS(Mode Selector)24、VMM(Virtual Machine Monitor)25、MB(MPU Bridge)14、およびMRTM(Mobile Remote Trusted Module)18を有する。なお、TCBは概念的な区分けであるため、MRTM18やMB14など、MPU内に含まれない構成要素についても、TCBに含まれるものとして扱うことが可能である。
 HW Platform21は、A-MPU16自体が備える暗号処理機能、HW固有鍵、モード切り替え機能の総称である。また、HW Platform21は、内部ROM17(CRTM)17、HW固有鍵、MC(Mode Contoller)を有している。
 ここで、MCは、MSと同様にモード切り替え機能を有する。また、MCは、MB14と同様に、ハードウェア的要素とソフトウェア的要素をあわせ持つ。
 IPL22は、外部ROM(図示せず)において最初に実行されるプログラムであり、各種のハードウェア設定やKernelの起動を司る。
 DC23は、ドメイン毎に定義されるセキュリティポリシに従いVMM25とMS24とMBを統合的に制御し、携帯電話端末1内の異なる複数エリアにまたがるドメインを形成する。なお、DC23は、ドメイン制御部としての機能を有する。
 MS24は、ノーマルモードおよびセキュアモードのモード切り替え機構であり、モード間の排他制御を行う。
 VMM25は、ハードウェアの仮想化層であり、仮想環境間の排他制御を行う。
 A-MPU16およびC-MPU12において、TCB以外のセキュアモードのODおよびUDは、OS(セキュアモード用OS、A-OS、もしくはC-OS)およびアプリ(セキュアモード用アプリ、A-app、もしくはC-App)を有する。
 さらに、A-MPU16およびC-MPU12において、各種データを格納する領域として、MTM(Mobile Trusted Module)の一例でありODに含まれるVirtualizing MRTM(A-vMRTMもしくはC-vMRTM)や、UDに含まれるVirtualizing MLTM(A-vLTM)を有する。
 vMRTMは、A-MPU16のノーマルモードで実現されるUDで利用するMLTMであり、その機能はMRTM18を用いることで実現される。
 vMLTMは、C-MPU12またはA-MPU16のノーマルモードで実現されるODからMRTM18にアクセスするための仮想ドライバである。
 なお、ドメイン生成の際には、同一のセキュリティポリシに基づいてアクセス制御される実行領域は、同一のドメインとして生成される。例えば図2では、A-MPU16のノーマルモードのODとA-MPU16のセキュアモードのODとC-MPU12のOD、A-MPU16のノーマルモードのUD1とセキュアモード)のUD1、A-MPU16のノーマルモードのUD2とセキュアモードのUD2が、それぞれ同一のドメインとして生成される。
 次に、携帯電話端末10の電源ONから各実行領域による実行が可能な状態となるまでの一連の処理の流れ(Bootstrap Sequenceや起動時処理とも称する)の一例について説明する。
 Bootstrap Sequenceをさらに詳細な処理に分けると、TCBを確立するSecure Boot0、複数MPUをまたいだODを確立するSecure Boot1および1’、UDを確立するSecure Boot2の3レイヤに分けられる。
 Bootstrap Sequenceでは、携帯電話プラットフォーム(ここでは、主にA-MPU16およびC-MPU12である)を1つのODと複数UDにドメイン分割する。ODのドメイン分割をOD確立、UDのドメイン分割をUD確立とも称する。
 OD確立では、内部ROM(CRTM)17とIPL22とDC23を起動するSecure Boot0と、A-MPU16のODのノーマルモードのOS/アプリ/データ(IMEIなど)までを起動するSecure Boot1と、C-MPU16のODのノーマルモードのOS/アプリ/データまでを起動するSecureBoot1’と、の3つのレイヤに分けて処理が行われる。
 UD確立では、A-MPU UDのノーマルモードのOS/アプリ/データまでを起動するSecure Boot2の1つのレイヤで処理が行われる。OD確立後にUD確立を実行する。
 そして、後述するが、OD確立およびUD確立では、予め定めたレイヤ毎の重要度に応じ、完全性検証に失敗した場合の挙動を定める。
 Bootstrap Sequenceでは、内部ROM17、IPL22、DC23などの各コンポーネントやデータ(IMEI等)に対して、ソフトウェア同様の完全性検証、検証失敗時処理の実行、およびSecure Flagを用いた処理結果に依存した検証/復号処理を実行する。
 また、Bootstrap Sequence時に起動を実行するコンポーネントは、起動対象コンポーネントを自身の固有鍵で復号後に完全性を検証(計測)する。完全性検証に成功した場合、つまり完全性が保持されていると判定された場合には、起動対象コンポーネントの起動を実施する。一方、完全性検証に失敗した場合には、起動対象コンポーネントの起動を禁止する。なお、起動を実行するコンポーネントは、暗号化された起動対象コンポーネントをハッシュの対象とすれば、完全性検証を行なった後に復号化することも可能である。
 携帯電話端末10では、特に、移動機固有番号であるIMEIとIMEIを扱うソフトウェアの完全性を保護することが求められている。携帯電話網では、IMEIを用いて網にアクセスする端末をアクセス制御することで盗難端末の無効化等を実現するため、IMEIの完全性が必要不可欠である。さらに、PCにも携帯電話の通信機能が備えられるようになり、今後はPCでも同様にIMEI保護が求められる可能性もあるため、ソフトウェア同様にIMEI等のデータについても改ざん検証を行う本実施形態におけるBootstrap Sequenceは、大変有用である。
 ここで、上記のコンポーネントを暗号化する方法の一例について説明する。
 携帯電話端末10は、製造時に、アプリ固有鍵でデータを暗号化、アプリをOS固有鍵で暗号化する様に、起動を実行するコンポーネントの固有鍵で起動対象コンポーネントの暗号化を繰返し、暗号化コンポーネントを不揮発メモリ15に保存している。ルートの鍵はHW固有鍵とする。このような暗号化方法をChain-bindingとも称する。
 このように、A-MPU16やC-MPU12が、個別に起動可能な複数のコンポーネント(プログラムを含む実行領域の一例)を階層的に有し、所定階層のコンポーネントが、所定階層のコンポーネントの固有鍵を用いて所定階層よりも一段階上位層のコンポーネントを暗号化する暗号化処理を実行する。また、上記暗号化処理は、最上位層よりも一段階下位層を所定階層としてから最下位層を所定階層とするまで一段階ずつ順に実行されることも可能である。これにより暗号化されたコンポーネントが不揮発メモリ15に保存されている。
 また、上記コンポーネントが、所定階層の実行領域の固有鍵を用いて所定階層よりも一段階下位層の実行領域が暗号化される暗号化処理が、最上位層を所定階層としてから最下位層を所定階層とするまで一段階ずつ順に実行された後、A-MPU16やC-MPU12に記憶されるようにしてもよい。
 また、最上位層の実行領域が、最上位層の実行領域の暗号化前に、IMEI等を含むデータを用いて暗号化されるようにすることも可能である。
 図3~図6は、携帯電話端末10が実施するBootstrap Sequenceの一例を示すフローチャートである。ここでは、特に、完全性検証について示している。携帯電話端末10は、Secure Boot0の実施後に、Secure Boot1/1’/2を実施する。
 まず、Secure Boot0において、内部ROM17は、自身のハッシュ値を計算してPCRを設定し、Secure Flag0をONに設定する。続いて、Flag0=ONなら、内部ROM17は、IPL22をHW固有鍵とMRTM固有鍵で復号してハッシュ値を計算し、ハッシュ期待値であるRIM_Certと上記計算したハッシュ値とを比較することで、完全性を検証する。検証成功時には、内部ROM17が、MRTM18へIPL22のハッシュ値をPCRに設定し、Secure Flag1をONに設定後、IPL22を起動する。一方、検証失敗時には、内部ROM16は、起動を停止する(ステップS1)。なお、以降の完全性検証においても、計算したハッシュ値はRIM_Certとの比較が行われる。
 Flag1=ONなら、IPL22は、DC23をMRTM固有鍵で復号して完全性を検証する。検証成功時には、IPL22は、MRTM18へDC23のハッシュ値をPCRに設定、Secure Flag2をONに設定後、DC23を起動する。一方、検証失敗時には、IPL22は、起動を停止する(ステップS2)。
 なお、ここでは、DC23がVMM25、MS24、MB14を包含しており、DC23の改ざん検証時には、VMM25、MS24、MB14の順に段階的に改ざん検証が行なわれる。これは、DC23のバイナリファイル内にVMM25、MS244、MB14が含まれており、DC23を検証すると一緒に検証されるためである。なお、DC23がVMM25、MS24、MB14を包含せずに、DC23の改ざん検証に成功した場合に、VMM25、MS24、MB14の順に検証および起動を行なうようにしてもよい。
 なお、Secure Boot0の実装方法として、 完全性検証及び検証後の対象ソフトウェアの起動まで含めた全てをセキュアモードで処理する方法と、 完全性検証のみをセキュアモードで処理する方法が考えられる。いずれを採用するかは各プラットフォームのMS24の実装に応じて決定すべきである。
 DC23の完全性検証後、携帯電話端末10はSecure Boot1を実施する。
 Secure Boot1において、まず、Flag2=ONなら、DC23は、A-OS0をDC固有鍵で復号して完全性を検証する。検証成功時には、DC23は、MRTM18へA-OS0のハッシュ値をPCRに設定し、Secure Flag3をONに設定後、A-OS0を起動する。一方、検証失敗時には、DC23が、携帯電話端末10をリカバリーモードへ遷移させる(ステップS3)。
 続いて、Flag3=ONなら、A-OS0は、A-App0をA-vMRTM0固有鍵で復号して完全性を検証する。検証成功時には、A-OS0は、A-vMRTM0へA-App0のハッシュ値をPCRに設定し、Secure Flag4をONに設定後、A-App0を起動する。一方、検証失敗時には、A-OS0が、携帯電話端末10をリカバリーモードへ遷移させる(ステップS4)。
 続いて、Flag4=ONなら、A-App0は、A-Data0(IMEI等)をC-App0固有鍵で復号して完全性を検証する。検証成功時には、A-App0は、A-vMRTM0へA-Data0のハッシュ値をPCRに設定し、Secure Flag5をONに設定後、A-Data0をA-vMRTM0にキャッシュする。一方、検証失敗時には、A-App0が、携帯電話端末10をリカバリーモードへ遷移させる(ステップS5)。
 DC23の完全性検証後、携帯電話端末10はSecure Boot1’も実施する。Secure Boot1’の実施はSecure Boot1の実施と並行することが可能である。
 Secure Boot1’において、まず、Flag2=ONなら、DC23は、C-OS0をDC固有鍵で復号して完全性を検証する。検証成功時には、DC23は、MRTM18へC-OS0のハッシュ値をPCRに設定し、Secure Flag3’をONに設定後、C-OS0/C-App0/C-Data0をC-MPU12へ転送する。一方、検証失敗時には、C-OS0が、携帯電話端末10をリカバリーモードへ遷移させる(ステップS3’)。
 続いて、Flag3’=ONなら、MB14は、C-OS0を起動し、C-vMRTM0とA-vMRTM0を用いて、C-OS0とA-OS0との間でSAC(Secure Authentication channel)を確立する。SACは、SSL(Secure Socket Layer)にように相互認証と通信路の暗号化を実現した通信路である。SAC確立成功後、C-OS0は、C-App0をC-vMRTM0固有鍵で復号して完全性を検証する。検証成功時には、C-OS0は、C-vMRTM0へC-App0のハッシュ値をPCRに設定し、Secure Flag4’をONに設定後、C-App0を起動する。一方、検証失敗時には、C-OS0が、携帯電話端末10をリカバリーモードへ遷移させる(ステップS4’)。
 続いて、Flag4’=ONなら、C-App0は、C-Data0をC-App0固有鍵で復号して完全性を検証する。検証成功時には、C-App0は、C-vMRTM0へA-Data0のハッシュ値をPCRに設定し、Secure Flag5をONに設定後、A-Data0をA-vMRTM0にキャッシュする。一方、検証失敗時には、C-App0が携帯電話端末10をリカバリーモードへ遷移させる。
 ここでは、C-MPU12側で完全性検証を行うSecure Boot1’の実施方法を示したが、A-MPU16側のDC23により、C-OS0のみではなく、C-App0/C-Data0も復号/完全性検証してからC-MPU12へ転送することも可能である。
 DC23の完全性検証後、携帯電話端末10はSecure Boot2を実施する。Secure Boot2の実施はSecure Boot1および1’の実施と並行することが可能である。
 Secure Boot2において、まず、Flag2=ON、Flag5=ON、かつFlag5’=ONなら、DC23は、A-OS1をDC固有鍵で復号して完全性を検証する。検証成功時には、DC23は、MRTM18へA-OS1のハッシュ値をPCRに設定し、Secure Flag6をONに設定後、A-OS1を起動する。一方、検証失敗時には、DC23が携帯電話端末10をリポートモードへ遷移させる(ステップS6)。
 続いて、Flag6=ONなら、A-OS1はA-App1をA-vMRTM1固有鍵で復号して完全性を検証する。検証成功時には、A-OS1は、A-vMLTM1へA-App1のハッシュ値をPCRに設定し、Secure Flag7をONに設定後、A-App1を起動する。一方、検証失敗時には、A-OS1が携帯電話端末10をリポートモードへ遷移させる(ステップS7)。
 続いて、Flag7=ONなら、A-App1は、A-Data1をA-App1固有鍵で復号して完全性を検証する。検証成功時には、A-App1は、A-vMLTM1へA-Data1のハッシュ値をPCRに設定し、Secure Flag8をONに設定後、A-Data1をA-vMLTM1にキャッシュする。検証失敗時には、A-App1が、リポートモードへ遷移させる(ステップS8)。
 なお、図2のようにUDが複数存在する場合、A-MPU16のUD2以降の確立方法はUD1と同じである。
 また、セキュアモードにおけるOD/UDの確立は、セキュアモード遷移時に実行される。確立の内容は、直接MRTM18にアクセスすることを除いて、ノーマルモードの場合と同様である。なお、図3では、ノーマルモードを想定している。
 セキュアモードで実行される保護ソフトウェアは、暗号化された状態で不揮発メモリ15に保存されており、実行直前にHW Platform21により復号及び完全性の検証が行われ、成功時のみ実行が許可される。
 このように、携帯電話端末10は、A-MPU16やC-MPU12が、個別に起動可能な複数のコンポーネント(プログラムを含む実行領域の一例)を階層的に有し、所定階層のコンポーネントが、所定階層のコンポーネントの固有鍵を用いて所定階層よりも一段階上位層のコンポーネントを復号化し、一段階上位層のコンポーネントについて所定の検証処理を実行し、検証処理に成功した場合、上記一段階上位層のコンポーネントを起動する起動時処理を実行する。また、上記起動時処理が、最下位層を上記所定階層としてから最上位層よりも一段階下位層を上記所定階層とするまで一段階ずつ順に実行されることが可能である。
 さらに、最上位層の実行領域が、最上位層の実行領域の起動後に、最上位層の実行領域の固有鍵を用いてIMEI等のデータを復号化し、所定の検証処理を実行し、上記検証処理に成功した場合、IMEI等のデータを操作可能とする。
 次に、Bootstrap Sequenceにおける検証失敗時の挙動の一例について説明する。
 本実施形態では、検証失敗時に次の5つのパターンを想定している。携帯電話端末10は、Bootstrap Sequenceにおけるレイヤの重要度に応じて、検証失敗時の挙動を変更することが可能である。つまり、所定階層の重要度に基づく復旧処理を実行することが可能である。
(1)無視して起動を続ける。
(2)起動を停止する。
(3)検証に失敗したコンポーネントをリポジトリサーバ(外部サーバの一例)からダウンロードした正しいコンポーネントに差し替える(リカバリーモードとも称する)。
(4)110番通報等の非常時通報機能のみ利用できる(エマージェンシーモードとも称する)。
(5)失敗をユーザに通知する(リポートモードとも称する)。この通知は、図示しない報知部によって行われる。
 リカバリーモードで処理が失敗した場合は、エマージェンシーモードへ遷移させる。ただし、IMEI及びIMEI関連ソフトウェア等の通信に必要となるコンポーネントの完全性が保証されている場合のみ遷移させる。UDでの失敗時はユーザ(携帯電話端末10の所有者又はサービス提供者)に失敗内容を通知するリポートモードに遷移させ、ユーザにそれ以降の処理を判断させる。
 また、Bootstrap Sequenceにおけるレイヤの重要度に応じて検証失敗時の挙動を変更する以外に、レイヤの重要度に応じて完全性検証のレベル自体を変更することも可能である。例えば、起動を高速化するため、重要度が低いほどコンポーネントの検証範囲を狭くする、あるいは検証される確率を低くする。最低限、ある期間内には全コンポーネントの全範囲が検証されるよう実装する必要はあるが、重要度の低いレイヤの検証処理の一部を省略することで高速化することも可能である。
 さらに、復旧処理に失敗した場合には、復旧処理に失敗した所定階層(コンポーネント)よりも当該所定階層の重要度よりも高い重要度に基づく復旧処理を行うようにしてもよい。
 図3では、検証失敗時には、Secure Boot1および1’においてはリカバリーモード、Secure Boot2においてはリポートモードへ遷移することを説明しているが、各レイヤの重要度等に応じて、リカバリーモード、エマージェンシーモード、リポートモード、起動停止のいずれかに遷移すればよい。ただし、Secure Boot0においては、非常に重要度が高いため、検証失敗時には起動停止を行うようにする。また、リポートモードでは、例えば、ユーザインタフェース(UI)でユーザに向けてメッセージの表示等を行ったり、サービス提供サーバなどの外部サーバに対してメッセージを送信したりすることが可能である。
 次に、DC23によるアクセス制御の一例について説明する。
 図2に示したように、携帯電話端末1におけるドメインは、A-MPU16のTCB、A-MPU16のノーマルモード0の仮想環境0/1/2、A-MPU16のセキュアモード0/1/2、C-MPU12のノーマルモード0の1つ又は複数のエリアから構成される。例えば、ODは、A-MPU16のTCB、A-MPU16のノーマルモード0の仮想環境0、A-MPU16のセキュアモード0、C-MPU12のノーマルモード0の複数エリアから構成される。ただし、ドメインの構成は上記構成に限られない。
 ここで、DC23の役割の1つは、これらのODに所属する複数エリア内において情報とリソースをフレキシブルに共有し、他ドメインへの情報流出とリソースを制御することにある。DC23は、複数MPUを制御するMB、複数の動作モードを制御するMS24、複数仮想環境を制御するVMM25を監視し、ODに対応するベースポリシとUDに対応するドメインポリシに従い、情報およびリソースアクセスを制御する。なお、ベースポリシおよびドメインポリシは、セキュリティポリシの一例である。
 ここで、エリアとは、A-MPU16のノーマルモードのODやUD1やUD2、A-MPU16のセキュアモードのODやUD1やUD2、C-MPU12のODなどの実行領域を示すものである。
 携帯電話端末10は、一例として、以下のようにDC23によるドメイン間情報流通の制御を行う。
・あらかじめ、例えばDC23によって、エリアから他のエリアへ情報は必ずDC23を経由するように指定する。
・DC23は、送信元エリアの属するドメインと送信先エリアの属するドメインが一致する場合のみ通信を許可する(ベースポリシ)。
・DC23は、送信元エリアの属するドメインに予め設定されたドメインポリシが許可する場合は送信先エリアの属するドメインが異なる場合も通信を許可する。
・DC23は、Secure Flagを確認し、FlagがOFFの部分があるエリアからの通信およびOFFの部分があるエリアへの通信については禁止する。つまり、所定の検証処理に失敗したエリアとの間の通信を禁止する。
 また、携帯電話端末10は、一例として、以下のようにDC23によるドメイン間リソース共有の制御を行う。図7にドメイン間リソース共有の一例を示す図である。
・あらかじめ、あるエリアからMRTM18にアクセスする場合は、必ずDC23を経由するように指定する。
・MRTM18はSecure Flag0/1/2/3/6、A-vMRTM0はSecure Flag4/5、C-vMRTM0はSecure Flag4’/5’、A-vMLTM1はSecure Flag7/8を管理し、DC23は所属するドメインからのアクセスしか許可しない(ベースポリシ)。
・セキュアモードにおけるエリアからは、直接DC23を経由してMRTM18へアクセスすることを許可とする。図7では、一例としてOSからアクセスすることを示している。
・ノーマルモードにおけるエリアからは、仮想MTM(vMRTM又はvMLTM)経由以外のアクセスを許可しない。仮想MTM経由の場合、DC23は、MRTM18のPCR/Secure FlagをRead Only(読み取り専用)に制御し、かつMRTM18以外のPCR/Secure Flagは参照も許可しない(ベースポリシ)。
・DC23は、アクセス先エリアの属するドメインに予め設定されたドメインポリシが許可する場合には、アクセス元エリアの属するドメインが異なる場合もPCR/Secure Flag参照を許可する。
 次に、Bootstrap Sequence後における完全性検証の一例について説明する。
 C-MPU12においてIMEIを利用する場合、SAC経由でIMEIをロードしてC-vMRTM0へキャッシュする。ただし、利用時又は定期的にIMEIおよびIMEIに関連するソフトウェアの完全性検証が必要と考えられる。この完全性検証は、IMEIをA-vMRTM0からリロードする際の流通経路となるソフトウェアをデータドリブンで検証することで、最小限の範囲を利用直前に検証するものである。なお、IMEIをリロードする毎に完全性検証が発生する為、実装時はC-vMRTM0のキャッシュの有効期間を定め、許容される負荷の範囲でリロードするべきである。
 具体的には、IMEI等のデータにVerification_Tagを設け、データ送信元コンポーネントはデータ送信先コンポーネントの完全性を実施し、検証成功時のみ送信することで実現できる。検証成功か否は、Verification_Tag=ONか否かを判断する。また、リロード時も各コンポーネントにおける完全性検証結果をMTMのSecure Flagに設定することで、事前の検証が失敗している場合には、各コンポーネントからIMEIをC-MPU12へ出力させない。なお、Verification_TagはIMEI等のデータとともにMTMに保存可能である。
 図8は、Bootstrap Sequence後における完全性検証の一例を示すフローチャートである。
 まず、C-MPU12は、C-vMRTM0にキャッシュしているIMEIの有効期間が過ぎた場合などに、C-App0がA-App0へIMEIを要求する(ステップS11)。
 続いて、A-MPU16は、A-App0がA-vMRTM0からIMEIを読み出す(ステップS12)。なお、IMEIはA-vMRTM0又はA-vMRTM経由でMRTM18にキャッシュされているとする。
 続いて、A-MPU16は、Verification_TagをONに設定してIMEIメッセージをC-App0宛に送る(ステップS13)。
 続いて、A-MPU16またはC-MPU12は、IMEIメッセージを受信した通信経路上のプログラム(PG)(A-OS0、DC23、またはC-OS0に含まれる)が、Verification_Tag=ONか否か判定する。
 Verification_Tag=ONの場合、A-MPU16およびC-MPU12は、IMEIを送ってきた送り元プログラムに対応するSecure FlagがONであるか否かを判定する(ステップS15)。
 Secure FlagがONである場合、A-MPU16およびC-MPU12は、送り先プログラムの改ざん検証を実行し(ステップS16)、送り先プログラム(例えばC-OS0)の改ざんがないか判定する(ステップS17)。
 送り先プログラムの改ざんがないと判定された場合、A-MPU26およびC-MPU22は、送り先プログラムに対応するSecure FlagをONし、IMEIメッセージを送り先プログラムに送信する(ステップS18)。
 なお、ステップS14~S18は、通信経路上のプログラム数だけ繰り返される。
 続いて、A-MPU16およびC-MPU12は、例えばステップS13に示すように、C-App0へIMEIメッセージを送信したか否かを判定する。IMEIメッセージを送信していない場合、ステップS13の直前に戻る。
 IMEIメッセージを送信されると、C-MPU12は、C-App0がIMEIメッセージを受信する(ステップS20)。
 続いて、C-MPU12は、送り元プログラムのSecure FlagがONであるか否かを判定する(ステップS21)。
 送り元プログラムのSecure FlagがONである場合、C-MPU12は、IMEIをC-vMRTM0にキャッシュする(ステップS22)。
 このように、Bootstrap Sequence後における完全性検証では、携帯電話端末10は、例えば、IMEIの利用時や有効期限が過ぎた場合に、C-MPU12がIMEI等のデータの送信要求をA-MPU16へ行い、C-MPU12は、A-MPU16とC-MPU12とを接続する通信路を構成するプログラムを含む実行領域に関する検証処理が成功した場合、A-MPU16から送信されたデータを記憶する。
 携帯電話端末10によれば、以下の効果が得られる。
・複数MPU等の演算処理部、複数モードに基づいてドメイン分割することができるため、複数の演算処理部を備える場合であっても、十分な利便性および安全性を考慮したドメイン分割を実施することが可能である。
・従来のTrusted BootおよびSecure Bootではソフトウェアの完全性計測または完全性検証のみであったが、本実施形態におけるBootstrap Sequenceでは、ソフトウェアおよびデータ(IMEI等)の完全性検証まで行うことが可能である。したがって、プログラムのみに依存したセキュアブートではなく、保護したいデータにも依存させるセキュアブート(本実施形態におけるBootstrap Sequence)が実行可能である。
・携帯電話端末10は、復号/改ざん検証時に一段階前の処理結果をSecure Flagにより確認すること、検証成功時にSecure Flag=ONを設定すること、データまで起動プロセスで復号及び完全性検証することにより、所望のドメイン分割および完全性検証が実現できる。
・コピーされたIMEIがコピー先端末で利用できないようにするために、Chain-bindingによりIMEIをHW Platform21/MRTM18の固有鍵をルートとしてチェーンで暗号化することで、コピー先端末ではIMEI及び関連ソフトウェアの全てが復号困難となる。
・生産工程で不揮発メモリ15に記載されたIMEIと無線通信路に出力されたIMEIの一致は、IMEIがOD確立後に完全性が保証された状態でMRTMにキャッシュされることで実現される。これは、前述したChain-UnbindingによるIMEI自体の完全性検証のみではなく、IMEIを利用するコンポーネントの完全性がBootstrap Sequenceで保証され、かつIMEIの復号/検証処理がSecure Flagに依存して制御されていることからも保証される。さらに、IMEI利用時にIMEIドリブンで必要最小限のIMEI関連ソフトウェアの検証を実行することで、IMEIの保護を実現しつつ、効率的な通信側の処理を実現することができる。
 本発明を詳細にまた特定の実施態様を参照して説明したが、本発明の精神と範囲を逸脱することなく様々な変更や修正を加えることができることは当業者にとって明らかである。
 本出願は、2008年1月18日出願の日本特許出願No.2008-009469に基づくものであり、その内容はここに参照として取り込まれる。
 本発明は、複数の演算処理部を備える場合であっても、十分な利便性および安全性を考慮したドメイン分割を実行可能な情報処理装置および携帯電話装置等として有用である。

Claims (24)

  1.  保護リソースを有しないノーマルモードおよび保護リソースを有するセキュアモードを含む複数の動作モードを有する情報処理装置であって、
     複数の演算処理部と、
     所定のセキュリティポリシに基づいてアクセス制御されるプログラムまたはデータを含む実行領域を示すドメインを生成するドメイン制御部と、
     を有し、
     前記ドメイン制御部は、前記複数の演算処理部および前記複数の動作モードに基づいて前記ドメインを生成する
     情報処理装置。
  2.  請求項1に記載の情報処理装置であって、
     前記ドメイン制御部は、更に、前記動作モードの前記保護リソースに基づいてドメインを生成する
     情報処理装置。
  3.  請求項1に記載の情報処理装置であって、
     前記ドメイン制御部は、更に、所定の実行領域を含む仮想環境に基づいて、ドメインを生成する。
  4.  請求項1に記載の情報処理装置であって、
     前記ドメイン制御部は、同一のセキュリティポリシに基づいてアクセス制御される実行領域を同一のドメインとする
     情報処理装置。
  5.  請求項4に記載の情報処理装置であって、
     前記演算処理部は、複数の実行領域を示すエリアを有し、
     前記ドメイン制御部は、送信元エリアから送信先エリアへ通信を行う際、前記送信元エリアと前記送信先エリアとが同一のドメインである場合に、通信を許可する
     情報処理装置。
  6.  請求項4に記載の情報処理装置であって、
     前記演算処理部は、複数の実行領域を示すエリアを有し、
     前記ドメイン制御部は、送信元エリアから送信先エリアへ通信を行う際、前記送信元エリアと前記送信先エリアとが異なるドメインである場合、かつ、前記セキュリティポリシに前記送信元エリアと送信先エリアとの間の通信を許可するための情報が含まれる場合に、通信を許可する
     情報処理装置。
  7.  請求項4に記載の情報処理装置であって、
     前記演算処理部は、複数の実行領域を示すエリアを有し、
     前記ドメイン制御部は、所定の検証処理に失敗したエリアとの間の通信を禁止する
     情報処理装置。
  8.  請求項1に記載の情報処理装置であって、
     前記演算処理部は、個別に起動可能なプログラムまたはデータを含む実行領域を階層的に有し、
     所定階層の実行領域は、当該所定階層の実行領域の固有鍵を用いて当該所定階層よりも一段階上位層の実行領域を復号化し、前記一段階上位層の実行領域について所定の検証処理を実行し、前記検証処理に成功した場合、前記一段階上位層の実行領域が有するプログラムを起動する起動時処理を実行する
     情報処理装置。
  9.  請求項8に記載の情報処理装置であって、
     前記起動時処理は、最下位層を前記所定階層として最上位層よりも一段階下位層を前記所定階層とするまで一段階ずつ順に実行される
     情報処理装置。
  10.  請求項8または9に記載の情報処理装置であって、
     最上位層の実行領域は、当該最上位層の実行領域の起動後に、当該最上位層の実行領域の固有鍵を用いて所定のデータを復号化し、前記所定のデータについて所定の検証処理を実行し、前記検証処理に成功した場合、前記所定のデータを操作可能とする
     情報処理装置。
  11.  請求項10に記載の情報処理装置であって、
     前記所定のデータは、当該情報処理装置を識別するための識別データを含むデータである
     情報処理装置。
  12.  請求項8ないし11のいずれか1項に記載の情報処理装置であって、
     所定階層の実行領域は、前記検証処理に失敗した場合、当該所定階層の重要度に基づく復旧処理を実行する
     情報処理装置。
  13.  請求項12に記載の情報処理装置であって、
     所定階層の実行領域は、前記復旧処理に失敗した場合、当該所定階層の重要度よりも高い重要度に基づく復旧処理を実行する
     情報処理装置。
  14.  請求項12または13に記載の情報処理装置であって、
     前記復旧処理は、当該情報処理装置の起動停止処理である
     情報処理装置。
  15.  請求項12または13に記載の情報処理装置であって、
     前記復旧処理は、前記所定階層の実行領域を外部サーバから取得した他の実行領域に差し替える処理である
     情報処理装置。
  16.  請求項12または13に記載の情報処理装置であって、
     前記復旧処理は、非常通報機能のみ利用可能とする処理である
     情報処理装置。
  17.  請求項12または13に記載の情報処理装置であって、
     前記復旧処理は、前記検証処理に失敗した旨を報知部に報知させる処理である
     情報処理装置。
  18.  請求項1に記載の情報処理装置であって、
     前記演算処理部は、個別に起動可能なプログラムまたはデータを含む実行領域を階層的に有し、
     所定階層の実行領域は、当該所定階層の実行領域の固有鍵を用いて当該所定階層よりも一段階上位層の実行領域を暗号化する暗号化処理を実行する
     情報処理装置。
  19.  請求項18に記載の情報処理装置であって、
     前記暗号化処理は、最上位層よりも一段階下位層を前記所定階層としてから最下位層を前記所定階層とするまで一段階ずつ順に実行される
     情報処理装置。
  20.  請求項18または19に記載の情報処理装置であって、
     最上位層の実行領域は、当該最上位層の実行領域の暗号化前に、当該最上位層の実行領域の固有鍵を用いて所定のデータを暗号化する
     情報処理装置。
  21.  請求項1に記載の情報処理装置であって、
     前記演算処理部は、所定のデータを備える第1の演算処理部と、第2の演算処理部とを有し、
     前記第2の演算処理部は、前記第1の演算処理部へ前記所定のデータの送信要求を実行し、前記第1の演算処理部と当該第2の演算処理部とを接続する通信路を構成するプログラムを含む実行領域に関する検証処理が成功した場合、前記第1の演算処理部から送信された前記所定のデータを記憶する
     情報処理装置。
  22.  請求項7、8、9、10、21のいずれか1項に記載の情報処理装置であって、更に、
     前記検証処理の結果を示すセキュアフラグを有し、
     前記演算処理部は、前記セキュアフラグに基づいて、前記検証処理に失敗したか否かを判定する
     情報処理装置。
  23.  請求項22に記載の情報処理装置であって、
     前記演算処理部は、前記セキュアフラグに基づく検証処理の結果に応じて、異なる制御を行う
     情報処理装置。
  24.  アンテナと、
     操作入力を受け付ける入力部と、
     前記アンテナを介して無線通信を行うための無線部と、
     請求項1ないし23のいずれか1項に記載の情報処理装置と
     を有する携帯電話装置。
PCT/JP2008/003656 2008-01-18 2008-12-08 情報処理装置および携帯電話装置 WO2009090706A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-009469 2008-01-18
JP2008009469A JP2009169841A (ja) 2008-01-18 2008-01-18 情報処理装置および携帯電話装置

Publications (1)

Publication Number Publication Date
WO2009090706A1 true WO2009090706A1 (ja) 2009-07-23

Family

ID=40885117

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2008/003656 WO2009090706A1 (ja) 2008-01-18 2008-12-08 情報処理装置および携帯電話装置

Country Status (2)

Country Link
JP (1) JP2009169841A (ja)
WO (1) WO2009090706A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010176630A (ja) * 2009-02-02 2010-08-12 Ntt Docomo Inc 携帯端末
JP2014112369A (ja) * 2012-11-27 2014-06-19 Oberthur Technologies 無効化モジュールを備えた電子アセンブリ
JP2020072431A (ja) * 2018-11-02 2020-05-07 三菱電機株式会社 制御装置
JP2020187504A (ja) * 2019-05-14 2020-11-19 三菱電機株式会社 制御装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015455B2 (en) 2011-07-07 2015-04-21 Intel Corporation Processsor integral technologies for BIOS flash attack protection and notification
US8949929B2 (en) * 2011-08-10 2015-02-03 Qualcomm Incorporated Method and apparatus for providing a secure virtual environment on a mobile device
US9497221B2 (en) * 2013-09-12 2016-11-15 The Boeing Company Mobile communication device and method of operating thereof
US10177910B2 (en) * 2016-08-31 2019-01-08 Microsoft Technology Licensing, Llc Preserving protected secrets across a secure boot update

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006022161A1 (ja) * 2004-08-25 2006-03-02 Nec Corporation 情報通信装置及びプログラム実行環境制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006022161A1 (ja) * 2004-08-25 2006-03-02 Nec Corporation 情報通信装置及びプログラム実行環境制御方法

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
"Annual ACM IEEE Design Automation Conference: Proceedings of the 43rd annual conference on Design automation", 24 July 2006, article HIROAKI INOUE ET AL.: "VIRTUS: a new processor virtualization architecture for security- oriented next-generation mobile terminals", pages: 484 - 489 *
"Computer Security Symposium 2007 (CSS2007) Ronbunshu", vol. 2007, 31 October 2007, article MASANA MURASE: "Design and Implementation of the Cell Broadband Engine Security SDK", pages: 559 - 564 *
"International Conference on Hardware Software Codesign: Proceedings of the 5th IEEE/ACM international conference on Hardware/software codesign and system synthesis", 30 September 2006, article HIROAKI INOUE ET AL.: "Dynamic security domain scaling on symmetric multiprocessors for future high-end embedded systems", pages: 39 - 44 *
"Proceedings of the 3rd IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis", 19 September 2005, article INOUE HIROAKI ET AL.: "FIDES: An Advanced Chip Multiprocessor Platform forSecure Next Generation Mobile Terminals", pages: 178 - 183 *
HIROAKI INOUE: "A Chip Multiprocessor Platform for Mobile Terminals Toward Coordination with Home Appliances", IEICE TECHNICAL REPORT, vol. 104, no. 673, 24 February 2005 (2005-02-24), pages 25 - 30 *
HIROAKI INOUE: "Dependable IT Network Tokushu", NEC TECHNICAL JOURNAL, vol. 59, no. 3, 31 May 2006 (2006-05-31), pages 46 - 49 *
JUNJI SAKAI: "Software Technology for Multicore Systems", INFORMATION PROCESSING, vol. 47, no. 1, 15 January 2006 (2006-01-15), pages 29 - 33 *
MASATO EDAHIRO: "Developing a Software Platform for Multicore: Implementation in a Mobile Phone", NIKKEI ELECTRONICS, no. 896, 28 March 2005 (2005-03-28), pages 125 - 136 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010176630A (ja) * 2009-02-02 2010-08-12 Ntt Docomo Inc 携帯端末
JP2014112369A (ja) * 2012-11-27 2014-06-19 Oberthur Technologies 無効化モジュールを備えた電子アセンブリ
JP2020072431A (ja) * 2018-11-02 2020-05-07 三菱電機株式会社 制御装置
JP2020187504A (ja) * 2019-05-14 2020-11-19 三菱電機株式会社 制御装置

Also Published As

Publication number Publication date
JP2009169841A (ja) 2009-07-30

Similar Documents

Publication Publication Date Title
JP6067449B2 (ja) 情報処理装置、情報処理プログラム
US8856544B2 (en) System and method for providing secure virtual machines
US8171295B2 (en) Information processing apparatus, a server apparatus, a method of an information processing apparatus, a method of a server apparatus, and an apparatus executable process
JP6991431B2 (ja) ホストシステムとデータ処理アクセラレータの間の通信を保護するための方法およびシステム
CN107077574B (zh) 用于客户端设备的信任服务
WO2009090706A1 (ja) 情報処理装置および携帯電話装置
US8789037B2 (en) Compatible trust in a computing device
JP4912879B2 (ja) プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法
KR101795457B1 (ko) 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법
US7457960B2 (en) Programmable processor supporting secure mode
JP2007512787A (ja) トラステッド・モバイル・プラットフォーム・アーキテクチャ
US10282549B2 (en) Modifying service operating system of baseboard management controller
KR20200020627A (ko) 통합 보안 SoC를 이용한 IoT 디바이스의 안전한 부트 방법
EP2750073A1 (en) Method and apparatus for managing security state
KR20200020626A (ko) 통합 보안 SoC를 이용한 IoT 디바이스의 안전한 펌웨어 업데이트 방법
JP5806187B2 (ja) 秘密情報の交換方法およびコンピュータ
JP7230598B2 (ja) 情報処理装置、暗号化データの復号方法及び電子機器
JP6741236B2 (ja) 情報処理装置
US11526598B2 (en) Microcontroller and semiconductor device
CN110059489B (zh) 安全电子设备
JP2024501395A (ja) 車両の安全始動方法、安全始動装置、電子制御ユニット及び記憶媒体
CN117453343A (zh) 虚拟机度量、机密计算认证方法、设备、系统及存储介质
WO2023073198A1 (en) Method to store data persistently by a software payload
CN115437673A (zh) 车载mcu升级的方法、车载mcu升级系统与服务器组

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

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

Country of ref document: EP

Kind code of ref document: A1