WO2018092289A1 - Information processing device - Google Patents

Information processing device Download PDF

Info

Publication number
WO2018092289A1
WO2018092289A1 PCT/JP2016/084386 JP2016084386W WO2018092289A1 WO 2018092289 A1 WO2018092289 A1 WO 2018092289A1 JP 2016084386 W JP2016084386 W JP 2016084386W WO 2018092289 A1 WO2018092289 A1 WO 2018092289A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
update
information processing
processing apparatus
update file
Prior art date
Application number
PCT/JP2016/084386
Other languages
French (fr)
Japanese (ja)
Inventor
嘉昭 植村
智恒 浜野
矢野 義博
篤浩 佐橋
Original Assignee
大日本印刷株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大日本印刷株式会社 filed Critical 大日本印刷株式会社
Priority to JP2018550982A priority Critical patent/JP6741236B2/en
Priority to PCT/JP2016/084386 priority patent/WO2018092289A1/en
Publication of WO2018092289A1 publication Critical patent/WO2018092289A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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 an information processing apparatus, and more particularly, to an information processing apparatus having a function of updating a program using an update file obtained from an external device.
  • General information processing devices realize various information processing functions by software.
  • the information processing apparatus incorporates an OS program and an application program, and also incorporates a program closely related to hardware called firmware. All of these programs can be rewritten by updating. Therefore, in many information processing apparatuses, new functions are added or bugs are corrected by updating the program (updating the contents of the program) as necessary.
  • Patent Document 1 a device driver or utility software program incorporated in a peripheral device such as a fax machine, a scanner, or a printer connected to a host computer is based on an instruction from the computer side.
  • a technique for performing update is disclosed.
  • Patent Document 2 discloses a technique for performing a batch update on a plurality of information processing apparatuses via the Internet.
  • Patent Document 3 discloses an information processing apparatus installed in a home.
  • a system is disclosed in which an update execution instruction is given using a mobile phone and efficient update is performed via the Internet.
  • an update to a program incorporated in an information processing apparatus is usually performed by obtaining an update file from an external apparatus connected via the network.
  • the information processing apparatus is connected to an external update server, and an update file necessary for the update is distributed from the update server to the information processing apparatus.
  • the update program included in is executed.
  • the update file is distributed by sending a distribution request from the information processing device to the update server (Pull type distribution).
  • the update server voluntarily distributes to the information processing device (Push).
  • Push the information processing device
  • an object of the present invention is to provide an information processing apparatus capable of updating in a secure environment.
  • an information processing apparatus including a CPU, a memory, and an external communication unit.
  • First OS program and second OS program to be executed by CPU in memory
  • first attribute application program to be executed by CPU under management of first OS program
  • second OS program A second attribute application program to be executed by the CPU
  • a hypervisor program for performing processing for causing the CPU to execute the first OS program and the second OS program in parallel
  • the first attribute application program includes a first management program for managing update processing
  • the second attribute application program includes a second management program for managing update processing.
  • the memory storage area is provided with a shared memory area that can be accessed both under the management of the first OS program and under the management of the second OS program,
  • the external communication means has a function of receiving an encrypted update file transmitted from an external device and encrypted using a predetermined encryption key under the management of the first OS program,
  • the first management program executes a process of writing the encrypted update file received by the external communication means into the shared memory area;
  • the second management program reads the encrypted update file written in the shared memory area, and decrypts the encrypted update file by using the encryption key or the encryption key related to the encryption key.
  • a decryption process to be generated is executed, and a process to write the generated decryption update file in a predetermined storage location is executed.
  • the first management program When the first management program receives an encrypted update file for executing an update process for the first OS program or the application program having the first attribute, the received encrypted update file is stored in the shared memory. Write to the area, The second management program generates a decrypted update file by decrypting the encrypted update file, and writes the decrypted update file in a predetermined storage location. The CPU executes an update program included in the decrypted update file, thereby performing update processing on the first OS program or the application program having the first attribute.
  • volatile memory and nonvolatile memory are built-in, Volatile memory is used as a work area when the CPU executes a program, The nonvolatile memory stores the first OS program, the second OS program, the first attribute application program, the second attribute application program, and the hypervisor program. It is.
  • the volatile memory has a shared memory area
  • the first management program executes a process of writing the encrypted update file to the shared memory area in the volatile memory
  • the second management program executes a process of writing the decryption update file to the shared memory area in the volatile memory
  • the CPU reads the update program contained in the decrypted update file from the volatile memory, and executes the update program to execute the update process.
  • a shared memory area is provided in the nonvolatile memory
  • the first management program executes a process of writing the encrypted update file to the shared memory area in the nonvolatile memory
  • the second management program executes a process of writing the decryption update file to the shared memory area in the nonvolatile memory
  • the CPU reads the update program included in the decrypted update file from the nonvolatile memory and executes it to perform the update process.
  • a shared memory area is provided in both the volatile memory and the nonvolatile memory
  • the first management program executes a process of writing the encrypted update file to the shared memory area in the volatile memory
  • the second management program executes a process of writing the decryption update file to the shared memory area in the nonvolatile memory
  • the CPU reads the update program included in the decrypted update file from the nonvolatile memory and executes it to perform the update process.
  • a seventh aspect of the present invention in the information processing apparatus according to the third aspect described above, Provide a shared memory area in volatile memory,
  • the information processing apparatus is equipped with a non-volatile external memory and has a function of writing and reading information to and from the external memory.
  • At least a part of the storage area of the external memory is a common access area that can be accessed both under the management of the first OS program and under the management of the second OS program.
  • the first management program executes a process of writing the encrypted update file to the shared memory area in the volatile memory
  • the second management program executes a process of writing the decryption update file to the common access area of the external memory
  • the CPU reads the update program included in the decrypted update file from the common access area of the external memory, and executes the update program to execute the update process.
  • the information processing apparatus in the information processing apparatus according to the third aspect described above, Provide a shared memory area in volatile memory,
  • the information processing apparatus is equipped with a non-volatile external memory and has a function of writing and reading information to and from the external memory under the control of the first OS program.
  • the first management program executes a process of writing the encrypted update file to the shared memory area in the volatile memory
  • the second management program executes a process of writing the decryption update file to the shared memory area in the volatile memory
  • the first management program reads the decryption update file written in the shared memory area in the volatile memory, and then executes a process of writing it to the external memory.
  • the CPU reads the update program included in the decrypted update file from the external memory and executes it to perform update processing.
  • identification information for specifying the information processing device or the user of the information processing device is recorded,
  • the external communication means has a function of receiving an encrypted update file encrypted using the encryption key generated using the identification information,
  • the second management program decrypts the encrypted update file using the encryption key generated using the identification information.
  • a first area and a second area are defined,
  • the first OS program and the application program with the first attribute can only access the first area, and the second OS program and the application program with the second attribute are in the first area and the second area. Access to both is possible.
  • An eleventh aspect of the present invention is the information processing apparatus according to the tenth aspect described above,
  • the encryption key used for the decryption process by the second management program or information used for generating the encryption key is stored in the second area of the nonvolatile memory.
  • the first management program or the second management program executes a process of writing the update program included in the decrypted update file into the storage location for storing the boot program that the information processing apparatus executes at startup ,
  • the CPU executes the update process by executing the update program at the time of startup.
  • the first management program or the second management program executes a process of writing the update program included in the decrypted update file to a storage location accessible under the management of the first OS program,
  • the CPU executes the update process by executing the update program under the control of the first OS program.
  • the application program of the first attribute includes a VPN opening application that performs processing for opening a VPN communication path with an external device,
  • the external communication means receives the encrypted update file via the VPN communication path.
  • the first management program is incorporated in the first OS program, or the second management program is incorporated in the second OS program, or both.
  • a computer program including both the first management program and the second management program in the information processing apparatus according to the first to fourteenth aspects described above is provided as an independent product. It is what you do.
  • a seventeenth aspect of the present invention is a home gateway apparatus including the information processing apparatus according to the first to fifteenth aspects described above.
  • two systems of OS programs are executed in parallel by the hypervisor program.
  • the encrypted update file transmitted from the external device is received and delivered under the management of the second OS program.
  • it is decrypted under the management of the second OS program, and a decrypted update file is created.
  • the decryption of the encrypted update file is performed not under the management of the first OS program but under the management of the second OS program, the execution under the management of the first OS program should be performed. Even if the environment is infected with malware, the decryption process of the encrypted update file can escape from the influence of the malware. For this reason, it becomes possible to update in a secure environment.
  • FIG. 3 is a block diagram showing some examples of a method for delivering an update file in the embodiment shown in FIG. 1 or FIG. 2.
  • FIG. 5 is a block diagram showing still another example of a method for delivering an update file in the embodiment shown in FIG. 1 or FIG. 2.
  • FIG. 5B is a flowchart showing a procedure of update processing in the embodiment shown in FIG.
  • FIG. 1 is a block diagram showing configurations of an information processing apparatus 100 and an external apparatus 200 according to a basic embodiment of the present invention.
  • the information processing apparatus 100 is an electronic device such as a personal computer, a smartphone, or a tablet terminal, and may be any apparatus as long as the CPU can perform an information processing function by executing a program.
  • a device such as a home gateway device that is not normally operated by the user may be used (see ⁇ 5 described later).
  • the information processing apparatus 100 includes a CPU 110, a memory 120, and an external communication unit 130.
  • a display device an input device such as a keyboard and a mouse, various sensors, and the like are provided as necessary, but only the components directly related to the configuration of the present invention are shown here. .
  • the first OS program Pa and the second OS program Pb to be executed by the CPU 110, and the first attribute application programs AP1, AP2 to be executed by the CPU 110 under the management of the first OS program Pa.
  • Ma a second attribute application program Mb that is executed by the CPU 110 under the control of the second OS program, and a hypervisor program that performs processing for causing the CPU 110 to execute the first OS program Pa and the second OS program Pb in parallel Ph is stored.
  • a general information processing apparatus with a built-in CPU can fulfill various processing functions by executing various application programs under the control of a specific OS program.
  • one information processing apparatus often incorporates a set of OS programs and application programs that operate under the management of the OS programs.
  • it is devised to incorporate and use a plurality of OS programs.
  • two sets of OS programs are installed in advance, one of them is selected and booted at startup, or a virtual machine is constructed under the operating environment of the first OS program, and the second OS
  • a method for emulating the operation of a program has been put into practical use.
  • the hypervisor program Ph is also a program prepared for operating a plurality of OS programs in one information processing apparatus, and has a function of directly operating on hardware, and the plurality of OS programs are used as guest OSs in parallel. It can be operated.
  • both the first OS program Pa and the second OS program Pb are installed as the guest OS of the hypervisor program Ph, and both OS programs are managed under the hypervisor program Ph. Pa and Pb can be activated at the same time.
  • the hypervisor program Ph used in the present invention is any program as long as it has a function of causing the CPU 110 to execute the first OS program Pa and the second OS program Pb in parallel. It doesn't matter.
  • a program for example, a product “FOXvisor” is sold by SELTECH Co., Ltd. (Shibuya-ku, Tokyo) (in this product, the hypervisor program Ph is incorporated in the same chip as the CPU 110).
  • the first attribute application programs AP1, AP2, and Ma operate under the management of the first OS program Pa, and the second attribute application program Mb manages the second OS program Pb. It is a program that runs below.
  • FIG. 1 shows an example in which applications AP1 and AP2 are installed as application programs having the first attribute.
  • the applications AP1 and AP2 are programs installed to cause the information processing apparatus 100 to perform the original information processing function.
  • a larger number of application programs are installed, but here, for convenience of explanation, only two sets of applications AP1 and AP2 are installed.
  • the first attribute application program includes the first management program Ma in addition to the apps AP1 and AP2, and the second attribute application program includes the second management program Mb.
  • These management programs Ma and Mb are dedicated application programs incorporated in order to execute secure update processing in the present invention.
  • the application program having the second attribute is configured only by the second management program Mb.
  • the hypervisor program Ph, the first management program Ma, the second OS program Pb, and the second attribute application are securely updated.
  • the additional program is incorporated for the purpose of executing the process and it is not necessary to execute the secure update process according to the present invention, it is not necessary to incorporate these additional programs in the first place.
  • the original function of the information processing apparatus 100 can be performed by the first OS program Pa and the applications AP1 and AP2 having the first attribute, and the additional program includes the first OS program Pa and the first OS program Pa. It can be said that it is a program introduced in order to perform update processing for the first attribute application AP1, AP2 in a secure environment.
  • the shared memory area 121 is an area that can be accessed both under the management of the first OS program Pa and under the management of the second OS program Pb. Therefore, the shared memory area 121 can be accessed by the first management program Ma that operates under the management of the first OS program Pa, and the second operation that operates under the management of the second OS program Pb. It is also possible to access the shared memory area 121 by the management program Mb.
  • the reason for setting such a shared memory area 121 is to exchange data between the first management program Ma and the second management program Mb, as will be described later.
  • the hypervisor program Ph has a function of controlling both the first OS program Pa and the second OS program Pb and controlling the parallel operation of both OS programs. Therefore, the shared memory area 121 can be set by the function of this hypervisor program Ph.
  • the external communication means 130 is a device that communicates with some device provided outside the information processing apparatus 100.
  • FIG. 1 shows an example in which communication with an update server as the external device 200 is performed for the convenience of describing the unique update processing according to the present invention.
  • the update server 200 plays a role of distributing an update file F1 necessary for performing update processing (program update processing) for the first OS program Pa and the application programs AP1 and AP2 in the information processing apparatus 100.
  • An update program is included in the update file F1, and a desired update process is performed by causing the CPU 110 to execute the update program.
  • Distribution of the update file F1 from the update server 200 to the information processing apparatus 100 may be performed in a format (Pull type distribution) in which a distribution request is sent from the information processing apparatus 100 to the update server 200, or voluntarily from the update server 200. Alternatively, it may be performed in a format that is distributed to the information processing apparatus 100 (Push distribution). On the information processing apparatus 100 side, the process of receiving the update file F1 is performed by the first management program Ma.
  • the important point is that the update file F1 is not sent as it is, but is sent after being encrypted.
  • a predetermined encryption key K is prepared in the update server 200, and the update file F1 is encrypted using this encryption key K to generate an encrypted update file F2.
  • AES Advanced Encryption Standard
  • the encrypted update file F2 is transmitted from the update server 200 to the information processing apparatus 100.
  • the encrypted update file F2 transmitted in this way is received by the external communication means 130 of the information processing apparatus 100.
  • This reception process is performed by the first management program Ma as described above.
  • the first management program Ma executes a process of writing the encrypted update file F2 received by the external communication unit 130 into the shared memory area 121.
  • the arrows shown in FIG. 1 indicate the flow of such an encrypted update file F2.
  • the reception process of the encrypted update file F2 does not necessarily have to be performed by the first management program Ma, but may be performed by an arbitrary application program having the first attribute.
  • the application AP1 is a Web browser
  • the external communication unit 130 receives the encrypted update file F2 transmitted from the external device 200 and encrypted using the predetermined encryption key K under the management of the first OS program Pa. Will do.
  • the received encrypted update file F2 is written to the shared memory area 121 by the first management program Ma operating under the management of the first OS program Pa. Therefore, all the processes so far are executed under the management of the first OS program Pa.
  • system management is switched to the second OS program Pb by the function of the hypervisor program Ph.
  • the encrypted update file F2 written in the shared memory area 121 is read by the second management program Mb operating under the management of the second OS program Pb.
  • the second management program Mb has a function of decrypting the read encrypted update file using the encryption key K ′, executes a decryption process for generating the decryption update file F3, and further generates the generated decryption update.
  • a process of writing the file F3 to a predetermined storage location is executed.
  • the arrows shown in FIG. 1 indicate the flow of the encrypted update file F2 and the decrypted update file F3.
  • the decryption update file F3 is written so that the write destination of the decryption update file F3 is outside the information processing apparatus 100.
  • the decryption update file F3 is written inside the information processing apparatus 100. Or outside. Details of the write destination will be described in detail in Section 3 below.
  • the encryption key K ′ used for the decryption process executed by the second management program Mb is set to the same key as the encryption key K used for the encryption in the update server 200, and is the reverse of the encryption process. If the above process is performed, a decrypted update file F3 having the same contents as the original update file F1 is obtained, and correct decryption is performed. Therefore, if the CPU 110 executes the update program included in the decryption update file F3, a desired update process can be performed.
  • the encryption key K ′ used for the decryption process executed by the second management program Mb is not necessarily the same as the encryption key K used for the encryption process on the update server 200 side, and correct decryption is possible. Any key that has a specific relationship such that For example, in a public key cryptosystem, a pair of keys having a specific relationship is used, and what is encrypted with one key can be correctly decrypted with the other key. Therefore, when encryption processing based on the public key cryptosystem is executed on the update server 200 side, the encryption key K used for encryption and the encryption key K ′ used for decryption are a pair of corresponding keys in the public key cryptosystem. It only has to have a relationship.
  • the second management program Mb may perform decryption processing using an encryption key used for encryption processing on the update server 200 side or a predetermined encryption key related to the encryption key.
  • the broken line shown in FIG. 1 indicates that such a pair of encryption keys has a specific relationship.
  • the storage location of the second management program Mb and the storage location of the encryption key K ′ used for the decryption process by the second management program Mb are areas other than the shared memory area 121, as shown in the example of FIG. It is preferable to store in an area that can be accessed only under the management of the second OS program (a secure area that cannot be accessed under the management of the first OS program). Then, even if the area under the management of the first OS program Pa is infected with malware, the second management program Mb and the encryption key K ′ can be kept in a secure state.
  • An important feature of the information processing apparatus 100 according to the present invention is that an environment in which the first OS program Pa and the second OS program Pb are executed in parallel is built by incorporating the hypervisor program Ph. Therefore, normally, the application program AP1, AP2 having the first attribute can be executed under the management of the first OS program Pa, and the original function as the information processing apparatus 100 can be performed. On the other hand, when it becomes necessary to perform update processing on the first OS program Pa and the first attribute application programs AP1 and AP2, the second management program Mb is executed under the management of the second OS program Pb. The decryption process of the encrypted update file F2 can be performed.
  • the external communication means 130 communicates with various external devices. May be infected.
  • the update server 200 is a fake
  • the file F2 received by the external communication unit 130 is a fake file. In this way, even if malware is infected under the management of the first OS program Pa, there is a low possibility that the influence will reach the execution environment of the second OS program Pb, which is a different OS.
  • the execution environment of the second OS program Pb is maintained in an extremely secure state.
  • the feature of the present invention is that the decryption process of the encrypted update file F2 transmitted from the external device 200 is performed by using the fact that the execution environment of the second OS program Pb is maintained in a secure state.
  • the update is executed in a secure environment by executing it in the execution environment of the secure second OS program Pb.
  • an update file necessary for the update process on the external device 200 (update server) side F1 (a file containing a program for executing update processing) is encrypted to create an encrypted update file F2, which is transmitted to the information processing apparatus 100.
  • the encrypted update file F2 is received under the management of the first OS program Pa, and the received encrypted update file F2 is stored in the shared memory area 121 by the first management program Ma. Perform the writing process.
  • the first management program Ma sends the encrypted update file F2 to the shared memory area 121.
  • the process of writing to is completed, it can be notified to the second management program Mb.
  • the notification functions as a “decryption processing request” for the second management program Mb, and the second management program Mb receives the notification and then stores the encrypted update file F2 written in the shared memory area 121.
  • the decryption update file F3 is generated by performing the decryption process using the encryption key K ′, and the process of writing this in a predetermined storage location is performed.
  • the CPU 110 executes the update program included in the decryption update file F3 to thereby execute the application program AP1, AP2 having the first attribute or the first OS.
  • Update processing for the program Pa is executed under the management of the first OS program Pa or in the boot process.
  • the second management program Mb notifies the first management program Ma via the hypervisor program Ph.
  • the notification functions as a “decryption processing completion report” for the first management program Ma, and the first management program Ma that has received the notification is under the control of the first OS program Pa or in a boot process. Necessary processing is executed so that update processing using the decrypted update file F3 (the same content as the original update file F1) written in the storage location is executed.
  • the second management program Mb fails in the decryption process, the fact is reported to the first management program Ma via the hypervisor program Ph.
  • the first management program Ma performs some kind of error processing (for example, processing for presenting the user that the update has failed), and the update processing is stopped.
  • the decryption process of the encrypted update file F2 is performed under the management of the second OS program Pb (in other words, by the second management program Mb operating under the management of the second OS program Pb). Is very important to ensure the security of the update process.
  • the information processing apparatus 100 performs its original function by executing the application programs AP1 and AP2 having the first attribute under the management of the first OS program Pa. For this reason, the execution environment of the first OS program Pa may be infected with malware, and is placed in a non-secure area. On the other hand, the execution environment of the second OS program Pb is extremely unlikely to be infected with malware, and is placed in a secure area. In the present invention, since the decryption process of the encrypted update file F2 is executed in this secure area, it is possible to avoid the influence of malware as much as possible.
  • the operation and effect unique to the present invention can be easily understood in view of the danger of performing decryption processing in a non-secure area (under the control of the first OS program Pa).
  • the execution environment of the first OS program Pa is infected with malware and the decryption process is performed under the management of the first OS program Pa
  • the received encrypted update file F2 is legitimate. Even if it is a file, it cannot be guaranteed that the decryption update file F3 obtained by the decryption process is a regular file. Therefore, it is very dangerous to execute the update program included in the decryption update file F3.
  • the decryption process is performed under the management of the second OS program Pb in a secure environment, if the encrypted update file F2 is a legitimate file, the decryption process is performed.
  • the decrypted update file F3 is also a regular file. Therefore, there is no danger in executing the update program included in the decrypted update file F3.
  • the present invention can achieve the effect of avoiding danger.
  • the intended site of the authorized update server 200 is intended to be accessed, if the execution environment of the first OS program Pa is infected with malware, it may be directed to a fake site. .
  • the encrypted update file F2 (false) received by the external communication unit 130 is a fake file.
  • the decryption process is performed under the management of the second OS program Pb in a secure environment
  • the execution environment of the first OS program Pa is infected with malware.
  • the encryption key K ′ is accessed in an area other than the shared memory area 121, that is, an area accessible only under the management of the second OS program (accessed under the management of the first OS program), as shown in the example of FIG. If it is stored in a secure area that cannot be protected, it is possible to prevent leakage to the outside due to the influence of malware.
  • the second OS program used during the update process in addition to the first OS program Pa necessary for executing the original function by using the hypervisor program Ph. Since a secure execution environment is built by incorporating Pb and the encrypted update file F2 is decrypted in this secure execution environment, there is a risk that a fake update program may be executed compared to the conventional device. It can be reduced, and updating in a secure environment becomes possible.
  • the second management program Mb is installed as the application program with the second attribute, but if necessary, another application program is installed as the application program with the second attribute. It does not matter if you use it. However, as the number and types of application programs with the second attribute increase, the possibility that the execution environment of the second OS program Pb is infected with malware increases. In practical terms, as the application program with the second attribute, As in the illustrated embodiment, it is preferable to install a minimum necessary program such as the second management program Mb.
  • the information processing apparatus 100 uses the hypervisor program Ph as a conventional apparatus that executes the first attribute application programs AP1, AP2, and the like under the first OS program Pa.
  • the second OS program Pb can be incorporated, and the first management program Ma and the second management program Mb having the functions described above can be installed.
  • Commercially available programs can be used as the OS programs Pa and Pb and the hypervisor program Ph. Therefore, in practice, if the first management program Ma and the second management program Mb are prepared, the present invention can be used. Implementation is possible.
  • the first management program Ma and the second management program Mb are prepared as programs independent of the OS programs Pa and Pb. Can be prepared as a function of the first OS program Pa by incorporating it into the first OS program Pa.
  • the second management program Pb can be incorporated into the second OS program Pb. Thus, it can be prepared as a function of the second OS program Pb.
  • FIG. 2 is a configuration of a more practical embodiment using a VPN (Virtual Private Network) communication path as a communication path between the information processing apparatus 100 and the external apparatus 200 in the basic embodiment shown in FIG. FIG.
  • VPN Virtual Private Network
  • the basic configuration of the system shown in FIG. 2 is almost the same as the basic configuration of the system shown in FIG. 1, but the transmission of the encrypted update file F2 from the external device 200 to the information processing device 100 is performed via the VPN communication path. What is done is different. Therefore, on the information processing apparatus 100 side, a VPN opening application VPN1 that performs a process of opening a VPN communication path with the external apparatus 200 is prepared as an application program of the first attribute (as application AP2 shown in FIG. 1). VPN opening application VPN1 is prepared), and on the external device side, a VPN opening application VPN2 for performing a process for opening a VPN communication path is prepared. Further, a VPN server 300 for managing and operating the VPN communication path is provided. Therefore, the illustrated VPN communication path is constructed by the cooperative work of the VPN server 300 and the VPN opening applications VPN1 and VPN2, and the external communication means 130 receives the encrypted update file F2 via this VPN communication path. Become.
  • the encrypted update file F2 is an encrypted file, and the risk of being tampered with during communication by an attack by a malicious person is reduced. By doing so, the risk can be further reduced and safe delivery can be performed. Since such a VPN construction method and the function of the VPN server 300 are already known techniques, a detailed description thereof will be omitted here.
  • FIG. 3 shows the first OS program Pa or the first installed in the information processing apparatus 100 using the update file F1 prepared in the external apparatus 200 (update server) in the embodiment shown in FIG. It is a flowchart which shows the procedure which performs the update process with respect to application program AP1, VPN1, etc. of 1 attribute. Reference numerals in parentheses attached to the right side of the block indicating each procedure indicate components involved in performing the procedure in the block.
  • step S1 authentication processing by the VPN server 300 is executed.
  • This process is a preparatory stage process for establishing a VPN communication path between the information processing apparatus 100 and the external apparatus 200.
  • the VPN server 300 is a server device
  • the information processing device 100, and the external device 200 are client devices
  • the processing in step S1 is information processing in which the VPN server 300 is the client device. It can be said that the device 100, the external device 200, and the user are authenticated as authentic.
  • the VPN server 300 causes the information processing apparatus 100 to And authenticating the user as a normal one, and similarly using the device certificate D2, the client certificate C2, and the client private key K2 prepared as data for the VPN opening application VPN2 in the external device 200, A process in which the VPN server 300 authenticates the external device 200 and its user as authentic ones is performed.
  • the VPN server 300 plays a role of managing the VPN communication path.
  • step S3 processing for encrypting the update file F1 to be transmitted to the information processing apparatus 100 is performed on the external apparatus 200 side.
  • FIG. 2 shows an example in which the encrypted update file F2 is generated by encrypting the update file F1 by an encryption process using the encryption key K.
  • step S4 the encrypted update file F2 is transmitted via the VPN communication path established in step S2 and received by the information processing apparatus 100. In this way, the encrypted update file F2 can be safely delivered by transmission / reception via the VPN communication path.
  • step S5 a process of writing the received encrypted update file F2 into the shared memory area 121 is performed by the first management program Ma in the information processing apparatus 100.
  • step S6 the second management program Mb is written.
  • a decryption process for reading the encrypted update file F2 from the shared memory area 121 and decrypting it using the encryption key K ′ is performed.
  • the decryption update file F3 obtained by this decryption process is written in a predetermined storage location in step S7.
  • the decryption update file F3 written in the storage location is executed by the CPU 110, and the target update process is completed.
  • steps S4 and S5 are performed under the control of the first OS program Pa, whereas the processes in steps S6 and S7 are more secure management of the second OS program Pb. Will be done below.
  • the location of the shared memory area 121 used in step S5, the storage location of the decrypted update file F3 in step S7, and the specific procedure of the update process in step S8 will be described with specific examples in ⁇ 3 below. To do.
  • each update file >>>
  • the encrypted update file F2 received by the external communication unit 130 is transferred via the shared memory area 121, and the decrypted update file F3 obtained by the decryption process is written to a predetermined storage location. After that, this is executed and the update process is performed.
  • these update files F2, F3 are shown with some examples. A specific delivery method will be described.
  • a volatile memory and a nonvolatile memory are used in combination.
  • the volatile memory is usually composed of a RAM, and is used as a work area when the CPU executes a program.
  • the nonvolatile memory is constituted by a flash memory or the like, and is used as a storage area for programs and data.
  • the memory 120 in the embodiment shown in FIGS. 1 and 2 actually includes a volatile memory (RAM) and a nonvolatile memory (flash memory).
  • the volatile memory (RAM) is used as a work area when the CPU 110 executes various programs
  • the nonvolatile memory (flash memory) is a first OS program Pa, a second OS program Pb, a first attribute.
  • Application programs AP1, AP2, Ma, second attribute application program Mb, and hypervisor program Ph are used as storage areas.
  • the shared memory area 121 can be provided in a volatile memory (RAM) area or a non-volatile memory (flash memory) area.
  • the storage location for writing the decryption update file F3 can be provided in a volatile memory (RAM) area or in a non-volatile memory area (flash memory).
  • RAM volatile memory
  • flash memory non-volatile memory
  • FIG. 4 is a block diagram showing some examples of a method for delivering an update file in the embodiment shown in FIG. 1 or FIG.
  • the encrypted update file F2 and the decryption update file F3 are transferred (under the management of the first OS program Pa and under the management of the second OS program Pb). Between them).
  • FIG. 4A is a block diagram showing an example in which a shared memory area 122 is provided in the volatile memory (RAM) of the memory 120, and this shared memory area 122 is used as a storage location for writing the decrypted update file F3. It is.
  • the first management program Ma executes a process of writing the received encrypted update file F2 to the shared memory area 122 in the volatile memory.
  • the second management program Mb reads and decrypts the encrypted update file F2 from the shared memory area 122.
  • the second management program Mb reads the obtained decryption update file F3.
  • a process of writing to the shared memory area 122 in the volatile memory is executed.
  • the CPU 110 Since the decryption update file F3 used for the update process is written in the shared memory area 122 in the volatile memory, the CPU 110 reads the update program included in the decryption update file F3 from the volatile memory, By executing this, update processing is performed. Since the shared memory area 122 is an area in the volatile memory (RAM), the information is written to when the information processing apparatus 100 is turned off or the contents of the volatile memory are initialized by restarting. Since the decrypted update file F3 is lost, the update process cannot be performed.
  • RAM volatile memory
  • a shared memory area 123 is provided in the nonvolatile memory (flash memory) of the memory 120, and this shared memory area 123 is used as a storage location for writing the decryption update file F3.
  • the first management program Ma executes a process of writing the received encrypted update file F2 into the shared memory area 123 in the nonvolatile memory.
  • the second management program Mb reads and decrypts the encrypted update file F2 from the shared memory area 123.
  • the second management program Mb reads the obtained decryption update file F3. Then, a process of writing to the shared memory area 123 in the nonvolatile memory is executed.
  • the CPU 110 Since the decryption update file F3 used for the update process is written in the shared memory area 123 in the nonvolatile memory, the CPU 110 reads the update program included in the decryption update file F3 from the nonvolatile memory, By executing this, update processing is performed. Since the shared memory area 123 is an area in the non-volatile memory (flash memory), the information processing apparatus 100 is turned off or the contents of the volatile memory (RAM) are initialized by restarting. However, the decryption update file F3 written therein is not lost. Therefore, the embodiment shown in FIG. 4B is an embodiment suitable not only for updating the application program but also for updating the OS program.
  • FIG. 4C is a block diagram showing an example in which the shared memory area 124 is provided so as to extend over both the volatile memory (RAM) 124a and the nonvolatile memory (flash memory) 124b of the memory 120. is there.
  • the shared memory area 124a in the volatile memory (RAM) is used as the delivery location of the encrypted update file F2
  • the nonvolatile memory (flash memory) is used as the storage location for writing the decrypted update file F3. ) Is used.
  • step S5 in FIG. 3 the first management program Ma executes a process of writing the received encrypted update file F2 into the shared memory area 124a in the volatile memory (RAM). .
  • step S6 the second management program Mb reads and decrypts the encrypted update file F2 from the shared memory area 124a.
  • step S7 the second management program Mb reads the obtained decryption update file F3. Then, a process of writing to the shared memory area 124b in the nonvolatile memory is executed.
  • the decryption update file F3 used for the update process is written in the shared memory area 124b in the nonvolatile memory. Therefore, the CPU 110 uses the decryption update file from the nonvolatile memory.
  • the update program included in F3 is read out and executed to execute update processing. Since the shared memory area 124b is an area in the nonvolatile memory (flash memory), the information processing apparatus 100 is turned off, or the contents of the volatile memory (RAM) are initialized by restarting. However, the decryption update file F3 written therein is not lost.
  • the embodiment shown in FIG. 4C is also an embodiment suitable not only for updating the application program but also for updating the OS program, similarly to the embodiment shown in FIG. 4B.
  • reading / writing data from / to the volatile memory (RAM) can be performed at a higher speed than reading / writing data from / to the nonvolatile memory (flash memory).
  • 4 (c) is advantageous in that the embodiment shown in FIG. 4 (c) can be faster than the embodiment shown in FIG. 4 (b).
  • all of the three embodiments shown in FIG. 4 use the built-in memory 120 of the information processing apparatus 100 to transfer the encrypted update file F2 and the decrypted update file F3 (under the control of the first OS program Pa).
  • the transfer location of the update file is not necessarily the internal memory 120 of the information processing apparatus 100, but the external memory is the transfer location. You can use it.
  • FIG. 5A shows that a shared memory area 122 provided in a volatile memory (RAM) in the built-in memory 120 is used as a delivery location of the encrypted update file F2, and a non-volatile property is used as a delivery location of the decryption update file F3.
  • FIG. 5A shows the Example using the external memory 400 of FIG.
  • the information processing apparatus 100 is indicated by a broken-line block for convenience of explanation (the same applies to FIG. 5B).
  • the information processing apparatus 100 includes various components in addition to the memory 120, but these components are not shown here.
  • the external memory 400 is not an internal component of the information processing apparatus 100 as illustrated outside the information processing apparatus 100 in the figure, but is a non-volatile memory externally attached to the information processing apparatus 100 as necessary.
  • a flash memory so-called USB memory
  • USB memory can be attached to the information processing apparatus 100 according to the USB standard.
  • the information processing apparatus 100 has a function of attaching and reading information to and from the external memory 400 by mounting the nonvolatile external memory 400. Further, at least a part of the storage area of the external memory 400 constitutes a common access area 410 that can be accessed both under the management of the first OS program Pa and under the management of the second OS program Pb. Yes.
  • the common access area 410 is a kind of “shared memory area” in that it is a memory area accessible from both OS programs Pa and Pb. However, in the embodiment shown in FIG. Of the memory areas accessible from both OS programs Pa and Pb, the area provided in the built-in memory 120 of the information processing apparatus 100 is called a “shared memory area”, and the area provided in the external memory 400 is “ This is called a “common access area”.
  • a shared memory area 122 is provided in the volatile memory (RAM) of the built-in memory 120 of the information processing apparatus 100.
  • the shared memory area 122 is used as a delivery location for the encrypted update file F2
  • the common access area 410 in the external memory 400 is used as a delivery location for the decryption update file F3.
  • step S5 in FIG. 3 the first management program Ma writes the received encrypted update file F2 to the shared memory area 122 in the volatile memory (RAM).
  • step S6 the second management program Mb reads and decrypts the encrypted update file F2 from the shared memory area 122.
  • step S7 the second management program Mb reads the obtained decryption update file F3. Then, a process of writing to the common access area 410 in the external memory 400 is executed.
  • the CPU 110 decrypts from the common access area 410.
  • the update process included in the update file F3 is read out and executed to execute update processing. Since the common access area 410 is an area in the non-volatile external memory 400 (for example, a USB memory), it is written even if the information processing apparatus 100 is turned off or restarted. The decrypted update file F3 is not lost.
  • the embodiment shown in FIG. 5A is also suitable for updating the OS program as well as updating the application program, similar to the embodiment shown in FIGS. 4B and 4C. It will be an example.
  • the encrypted update file F2 is transferred via the shared memory area 122 in the volatile memory (RAM), the writing process and the reading process of the encrypted update file F2 can be speeded up.
  • FIG. 5 (b) employs a technique common to the embodiment of FIG. 5 (a) described above in that the decrypted update file F3 used for the final update process is written to the nonvolatile external memory 400.
  • the shared memory area 122 provided in the volatile memory (RAM) in the built-in memory 120 is used as a delivery location for the encrypted update file F2, and also used as a delivery location for the decryption update file F3. 400 is used as a save location for the decryption update file F3 written in the shared memory area 122.
  • the embodiment shown in FIG. 5B is a modification for solving the problems of the embodiment shown in FIG. 4A. That is, in the embodiment shown in FIG. 4A, the decrypted update file F3 used for the final update process is written in the shared memory area 122 in the volatile memory (RAM). When is turned off or the contents of the volatile memory are initialized by restarting, the decrypted update file F3 written therein is lost.
  • RAM volatile memory
  • the decryption update file F3 written in the shared memory area 122 in the volatile memory (RAM) is written to the nonvolatile external memory 400 by the first management program Ma. Then, a measure is taken to save the decryption update file F3 so as not to be lost. Therefore, similar to the embodiment of FIG. 5 (a), it can be used not only for updating the application program but also for updating the OS program.
  • a shared memory area 122 is provided in the volatile memory (RAM) of the built-in memory 120.
  • the information processing apparatus 100 indicated by the broken-line block in the figure has a non-volatile external memory 400 (for example, a USB memory) attached to the external memory 400 under the management of the first OS program Pa.
  • a non-volatile external memory 400 for example, a USB memory
  • the common access area 410 is set as in the embodiment shown in FIG. There is no need to provide it.
  • the update processing procedure in the embodiment shown in FIG. 5 (b) is almost the same as that in the embodiment shown in FIG. 4 (a). That is, first, the first management program Ma executes a process of writing the received encrypted update file F2 to the shared memory area 122 in the volatile memory, and then the second management program Mb The encrypted update file F2 is read from the area 122 and decrypted, and the obtained decrypted update file F3 is written into the shared memory area 122 in the volatile memory.
  • the update process is executed using the decrypted update file F3 in the shared memory area 122.
  • the first management program Ma reads the decryption update file F3 written in the shared memory area 122 in the volatile memory (RAM) and then writes it in the nonvolatile external memory 400 (for example, a USB memory). Execute the process. Therefore, the CPU 110 reads the update program included in the decrypted update file F3 from the external memory 400 and executes the update program to execute the update process.
  • the decryption update file F3 written in the non-volatile external memory 400 (for example, a USB memory) is not lost even if the information processing apparatus 100 is turned off or restarted. Therefore, the embodiment shown in FIG. 5B is also an embodiment suitable not only for updating the application program but also for updating the OS program.
  • FIG. 6 is a flowchart showing the procedure of the update process in the embodiment shown in FIG.
  • the procedure from steps S1 to S6 is exactly the same as the procedure from steps S1 to S6 in the flowchart of FIG.
  • step S6 the decryption process is performed on the encrypted update file F2, and the decrypted update file F3 is generated.
  • the generated decryption update file F3 is written into the shared memory area 122 in the volatile memory.
  • This writing process is executed by the second management program Mb.
  • the fact is notified to the first management program Ma via the hypervisor program Ph. This notification functions as a “write request to the external memory” for the first management program Ma.
  • the first management program Ma After receiving the notification, the first management program Ma reads the decryption update file F3 written in the shared memory area 122 and performs a process of writing it in the nonvolatile external memory 400.
  • the procedure of step S7b in the flowchart of FIG. 6 is the procedure of this writing process.
  • step S8 the update program included in the decryption update file F3 written in the external memory 400 is executed, and the update process is completed.
  • the first management program Ma (example of FIG. 5 (b)) or the second management program Mb (FIG. 4 (a), (b), (c), FIG. 5 (a)
  • the decrypted update file F3 (that is, the update file F1) can be executed under the management of the first OS program Pa.
  • the decryption update file F3 is stored in the shared memory area 122 in the volatile memory (RAM) as in the embodiment shown in FIG.
  • the application programs AP1 and AP2 can be updated.
  • the first management program Ma can be updated in the same manner.
  • the second management program Mb can be updated by the same method.
  • the OS program cannot be updated while the OS program is operating, it is usually necessary to restart the system. Since the data in the volatile memory (RAM) is usually initialized when the system is restarted, the shared memory in the volatile memory (RAM) as in the embodiment shown in FIG.
  • the decryption update file F3 written in the area 122 is lost. Therefore, when updating a general OS program, the decryption update file F3 is stored in a non-volatile manner as in the embodiments shown in FIGS. 4B, 4C, 5A, and 5B. What is necessary is just to write in memory.
  • the update program included in the decryption update file F3 is written in a storage location (so-called boot sector) for storing a boot program that is executed when the information processing apparatus 100 is started up.
  • the CPU 110 can perform an OS program update process by performing a boot process for executing the update program written in the boot sector at the time of startup.
  • Firmware can also be updated by a similar method.
  • the decryption update file is stored in the boot sector in the shared memory area 123 or 124b provided in the nonvolatile memory. What is necessary is just to write the update program contained in F3. Then, in the process of restarting the first OS program Pa, the update program can be executed, and the updated first OS program Pa can be started.
  • which OS to select at the time of restart can be specified by the setting of the hypervisor program.
  • the first is selected at the time of restart. If the OS program Pa is set to be selected, there will be no trouble. Of course, if it is set to select the second OS program Pb at the time of restart, it is possible to update the second OS program Pb.
  • the encryption key K ′ related to the encryption key K used for the encryption process on the update server 200 side is used.
  • the encryption key K ′ may be the same key as the encryption key K, or may be a pair of keys having a specific relationship used in the public key cryptosystem.
  • a modification in which the same encryption keys K and K ′ are generated using the identification information UID will be described with reference to the block diagram of FIG.
  • the information processing apparatus 100 is indicated by a broken-line block, but this indicates that the constituent elements drawn in the block are some constituent elements in the information processing apparatus 100. Because. Further, in FIG. 7, the processing contents of the program and data used for the program are shown in the blocks indicating the individual programs.
  • the information processing apparatus 100 is installed with a second management program Mb and a VPN opening application program VPN1, and the external apparatus 200 (update server) has an external apparatus management program Mc and a VPN opening application program.
  • VPN2 is installed. As described in ⁇ 2, the programs VPN1 and VPN2 work in cooperation with the VPN server 300 to open a VPN communication path between the information processing apparatus 100 and the external apparatus 200.
  • the program VPN1 uses the device certificate D1, the client certificate C1, and the client private key K1 to open a VPN communication path
  • the program VPN2 contains the device certificate D2, the server certificate C2, and the server private key.
  • a VPN communication path establishment process is performed using K2.
  • the specific VPN communication channel establishment processing procedure is as described in ⁇ 2.
  • the external device management program Mc is a program that plays a role equivalent to that of the external device 200 of FIG. 1, and encrypts the update file F1 using the encryption key K to generate an encrypted update file F2, which is then transmitted via VPN communication.
  • the information is transmitted to the information processing apparatus 100 via the path.
  • the encryption key K is generated using the identification information UID.
  • the identification information UID (User Identifier) is information recorded in a nonvolatile memory built in the information processing apparatus 100 that is the transmission destination of the encrypted update file F2, and is the information processing apparatus 100 or the information processing apparatus. This is information for identifying 100 users. Specifically, unique identification information assigned to the information processing apparatus 100 (for example, a serial number assigned to the CPU 110), account information given to the user, or the like can be used as the identification information UID.
  • the identification information UID is recorded in a nonvolatile memory built in the information processing apparatus 100 and also on the external apparatus 200 side.
  • the external device management program Mc may be determined in advance. For example, it is possible to use an algorithm that uses a hash value obtained by applying a predetermined hash function to data constituting the UID as an encryption key K.
  • the second management program Mb installed in the information processing apparatus 100 also has a function of generating the encryption key K ′ based on the identification information UID using the same encryption key generation algorithm.
  • the identification information UID recorded in the information processing apparatus 100 and the identification information UID recorded in the external apparatus 200 are the same, and the encryption key is generated using the same encryption key generation algorithm.
  • the encryption key K ′ generated on the information processing apparatus 100 side is the same key as the encryption key K generated on the external apparatus 200 side.
  • the encrypted update file F2 transmitted from the external apparatus 200 via the VPN communication path is received by the external communication means 130 in the information processing apparatus 100 and shared from the first management program Ma.
  • the data is delivered to the second management program Mb via the memory area 121.
  • the second management program Mb uses the same algorithm as the encryption key generation algorithm used by the external device management program Mc to use the encryption key K ′. (The same key as the encryption key K) is created.
  • decryption update file F3 (same as update file F1) is obtained by performing decryption processing on encrypted update file F2 using this encryption key K ′.
  • the device certificate D1, the client certificate C1, and the client private key K1 that the VPN opening application program VPN1 uses for the VPN channel establishment process also function as identification information for specifying the information processing apparatus 100 or its user. It is also possible to generate the secret key K ′ by using these pieces of information as identification information UID.
  • the information processing apparatus 100 incorporates the first OS program Pa and the second OS program Pb using the function of the hypervisor program Ph. Then, under the management of the first OS program Pa, various processes for performing the original processing function of the information processing apparatus 100 are executed by the application program having the first attribute. On the other hand, under the management of the second OS program Pb, the decryption process of the encrypted update file F2 is executed by the second management program Mb which is the application program having the second attribute.
  • the reason why the decryption process of the encrypted update file F2 is purposely performed under the management of the second OS program Pb is to perform the decryption process in a secure environment. That is, the basic concept of the present invention is that the execution environment of the second OS program Pb in which the decryption process of the encrypted update file F2 is executed even when the execution environment of the first OS program Pa is adversely affected by malware. Is in a secure state.
  • the execution environment (secure environment) of the second OS program Pb is not affected by the execution environment (non-secure environment) of the first OS program Pa as much as possible. Therefore, in practice, the following access rights are set for the memory area accessible under the management of the first OS program Pa and the memory area accessible under the management of the second OS program Pb. preferable.
  • FIG. 8 is a diagram showing a memory space of a nonvolatile memory (flash memory) built in the information processing apparatus 100.
  • a first area A1 (white area in the figure) and a second area A2 (hatched area in the figure) are defined as shown.
  • the entire memory space is divided into two areas A1 and A2. Then, the following access rights are set for these areas A1 and A2.
  • the first OS program Pa and the application program AP1, AP2, Ma having the first attribute can only access the first area A1, and access to the second area A2 is prohibited.
  • the first OS program Pa and the first attribute application programs AP1, AP2, Ma recognize that the first area A1 is the entire memory space of the built-in nonvolatile memory. You only have to set it.
  • the program itself constituting the first OS program Pa and the first attribute application programs AP1, AP2, Ma is stored in the first area A1, and each of these programs Pa, AP1 is stored. , AP2, Ma also records the first attribute data used in the first area A1.
  • the shared memory area used as the delivery location of the encrypted update file F2 and the decryption update file F3 is provided in the built-in nonvolatile memory, the shared memory area is also the first area A1. Keep it inside.
  • the second OS program Pa and the application program Mb having the second attribute are allowed to access both the first area A1 and the second area A2.
  • the second OS program Pa and the application program Mb having the second attribute can access the entire memory space of the built-in nonvolatile memory.
  • the program itself constituting the hypervisor program Ph, the second OS program Pb, and the second attribute application program Mb (second management program) is stored in the second area A2.
  • the second attribute data used by each of the programs Ph, Pb, and Mb is also recorded in the second area A2.
  • the second attribute data includes the encryption key K ′ used for the decryption process by the second management program Mb or the identification information UID used for generating the encryption key K ′.
  • FIG. 8 shows an example in which the hypervisor program Ph is stored in the flash memory
  • the hypervisor program Ph may be stored in the ROM (for example, in the above-described product “FOXvisor”).
  • the hypervisor program Ph is stored in the ROM of the same chip as the CPU 110).
  • the access right as described above is set, for the first OS program Pa and the application program AP1, AP2, Ma having the first attribute, the first area A1 is the entire memory space, and the second area A2 (hatched area in the figure) is an area where even its existence cannot be recognized. Therefore, even if the information processing apparatus 100 is operated under the control of the first OS program Pa and is infected with malware by being attacked by a malicious person, the influence of the malware is first. It is possible to prevent the second region A2 from being affected by staying within the region A1.
  • the second OS program Pa and the second attribute application program Mb can access not only the second area A2 but also the first area A1.
  • the second management program Mb needs to access the first area A1 because it accesses the shared memory area for delivery of the encrypted update file F2 and the decryption update file F3. It is only a case, and it is very unlikely that the second area A2 is affected by the access to the shared memory area.
  • the possibility that the second OS program Pb and the application Mb having the second attribute are affected by malware is very low.
  • the possibility that the encryption key K ′ and the identification information UID, which are data of the second attribute, are affected by malware is very low.
  • the first area A1 is a non-secure area
  • the second area A2 functions as a secure area. Then, the decryption process of the encrypted update file F2 by the second management program Mb is executed in this secure area. Therefore, according to the present invention, it is possible to update in a secure environment.
  • the home gateway device serves as an intermediary between the public network and the home network, and is an information processing device for home use that has functions for exchanging telephone and fax signals in addition to the functions of a general broadband router. is there.
  • This home gateway device is also an information processing device including a CPU, a memory, and external communication means, and can perform its function by executing a predetermined OS program or application program. Therefore, it will be necessary to update each program after installation, but since it is a home-use information processing device, it is difficult to take advanced security measures, and it is feared that malware damage will occur frequently during the update .
  • FIG. 9 is a block diagram showing an embodiment in which the information processing apparatus according to the present invention is used as a home gateway apparatus.
  • the information processing apparatus according to the present invention is used as the home gateway apparatus 100.
  • the home gateway device 100 plays a role of mediating various devices such as sensors, surveillance cameras, personal computers, TVs, recording devices, lighting, smart meters, and the like connected to the home network and the Internet.
  • the information processing apparatus is used as the home gateway apparatus 100, as shown in the figure, it is connected to the update server 200 functioning as an external apparatus via the Internet, and a built-in OS program or application program Can be updated. Moreover, according to the present invention, it is possible to perform the update in a secure environment, and the risk of being damaged by malware during the update can be reduced.
  • the present invention can be widely used in an information processing apparatus that includes a CPU, a memory, and external communication means, and performs a program update process using an update file received from an external apparatus. Specifically, it can also be used for electronic devices such as personal computers, smartphones, tablet terminals, and devices such as home gateway devices.
  • Information processing device (home gateway device) 110: CPU 120: Memory 121: Shared memory area 122: Shared memory area (area in volatile memory) 123: Shared memory area (area in nonvolatile memory) 124: Shared memory area (area in volatile and non-volatile memory) 124a: Shared memory area (area in volatile memory) 124b: shared memory area (area in nonvolatile memory) 130: External communication means 200: External device (update server) 300: VPN server 400: External memory (nonvolatile memory) 410: common access area A1: first area A2: second area AP1, AP2: application program C1: first attribute C1: client certificate C2: server certificate D1: device certificate D2: device certificate F1: update File F2: Encryption update file F3: Decryption update file K, K ′: Encryption key K1: Client secret key K2: Server secret key Ma: First management program (application program having the first attribute) Mb: second management program (second-attribute application program

Abstract

In order to make an update in a secure environment, a hypervisor program (Ph) is installed in an information processing device (100), and the information processing device (100) is caused to execute a first OS and a second OS in parallel. An application of a first attribution is normally executed under management of the first OS. For an update of the first OS or an update of the application of the first attribution, an encrypted update file (F2) is received from an update server (200), is written into a shared memory region (121) through a first management program (Ma), and is delivered to a second management program (Mb). The second management program (Mb) decrypts the encrypted update file (F2) under management of the second OS providing a secure environment, and writes a decrypted update file (F3) in a predetermined storage area (an internal memory or an external memory). Subsequently, an update process is executed with use of the decrypted update file (F3) under management of the first OS.

Description

情報処理装置Information processing device
 本発明は、情報処理装置に関し、特に、外部装置から入手したアップデートファイルを用いてプログラムのアップデートを行う機能を有する情報処理装置に関する。 The present invention relates to an information processing apparatus, and more particularly, to an information processing apparatus having a function of updating a program using an update file obtained from an external device.
 一般的な情報処理装置は、ソフトウェアにより様々な情報処理機能を実現している。通常、情報処理装置には、OSプログラムやアプリケーションプログラムが組み込まれ、また、ファームウェアと呼ばれるハードウェアに密接に結びついたプログラムも組み込まれる。これらのプログラムは、いずれも、アップデートによってその内容を書き換えることができる。したがって、多くの情報処理装置では、必要に応じて、プログラムをアップデートする(プログラムの内容を更新する)ことにより、新機能の追加やバグの修正などが行われている。 General information processing devices realize various information processing functions by software. Usually, the information processing apparatus incorporates an OS program and an application program, and also incorporates a program closely related to hardware called firmware. All of these programs can be rewritten by updating. Therefore, in many information processing apparatuses, new functions are added or bugs are corrected by updating the program (updating the contents of the program) as necessary.
 たとえば、下記の特許文献1には、ホストとなるコンピュータに接続されるファックス、スキャナ、プリンタなどの周辺機器に組み込まれているデバイスドライバやユーティリティソフトのプログラムに対して、コンピュータ側からの指示に基づいてアップデートを行う技術が開示されている。また、特許文献2には、インターネットを介して、複数の情報処理装置に対するアップデートを一括して一斉に行う技術が開示されており、特許文献3には、家庭内に設置された情報処理装置に対して、携帯電話を利用してアップデートの実行指示を与え、インターネットを介した効率的なアップデートを行うシステムが開示されている。 For example, in the following Patent Document 1, a device driver or utility software program incorporated in a peripheral device such as a fax machine, a scanner, or a printer connected to a host computer is based on an instruction from the computer side. A technique for performing update is disclosed. Patent Document 2 discloses a technique for performing a batch update on a plurality of information processing apparatuses via the Internet. Patent Document 3 discloses an information processing apparatus installed in a home. On the other hand, a system is disclosed in which an update execution instruction is given using a mobile phone and efficient update is performed via the Internet.
特開平11-296469号公報JP 11-296469 A 特開2002-278766号公報JP 2002-278766 A 特開2016-001391号公報JP 2016-001391 A
 インターネット等のネットワーク環境が普及した今日では、情報処理装置に組み込まれているプログラムに対するアップデートは、通常、ネットワークを介して接続された外部装置から、アップデートファイルを入手することによって行われる。具体的には、情報処理装置を外部のアップデートサーバに接続し、このアップデートサーバから情報処理装置に対して、アップデートに必要なアップデートファイルを配信し、これを受信した情報処理装置において、当該アップデートファイルに含まれているアップデート用プログラムを実行することになる。 In today's widespread network environment such as the Internet, an update to a program incorporated in an information processing apparatus is usually performed by obtaining an update file from an external apparatus connected via the network. Specifically, the information processing apparatus is connected to an external update server, and an update file necessary for the update is distributed from the update server to the information processing apparatus. The update program included in is executed.
 アップデートファイルの配信は、情報処理装置からアップデートサーバに対して配信要求を行うことにより行われる場合(Pull型配信)もあれば、アップデートサーバから自主的に情報処理装置に対して配信する場合(Push型配信)もあるが、いずれの場合も、アップデートサーバから送信されてきたアップデートファイルに基づいて、アップデート処理が行われることに相違はない。したがって、正規のアップデートサーバから送信されてきた正しいアップデートファイルに基づくアップデート処理が行われれば問題ないが、悪意をもった者が設置した偽のアップデートサーバから送信されてきた偽のアップデートファイルに基づくアップデート処理が行われると、セキュリティ上、重大な問題が生じる。 In some cases, the update file is distributed by sending a distribution request from the information processing device to the update server (Pull type distribution). In other cases, the update server voluntarily distributes to the information processing device (Push). In any case, there is no difference that the update process is performed based on the update file transmitted from the update server. Therefore, there is no problem if the update process based on the correct update file sent from the legitimate update server is performed, but the update based on the fake update file sent from the fake update server installed by a malicious person When processing is performed, a serious problem arises in terms of security.
 最近は、悪意のある者がネットワーク経由で情報処理装置の脆弱性を突いて侵入し、様々な方法でシステムを改竄する危険性が高まっており、正しいサイトから偽のサイトへと誘導されるケースも少なくない。こうして誘導された偽のサイト(偽のアップデートサーバ)から偽のアップデートファイルを取得し、含まれているプログラムを実行してしまうと、情報処理装置のシステムは完全に乗っ取られてしまうおそれがある。 Recently, there has been an increase in the risk of a malicious person intruding a vulnerability in an information processing device via a network and tampering with the system in various ways, leading to a fake site from the correct site Not a few. If a fake update file is acquired from a fake site (fake update server) that has been guided in this manner and the included program is executed, the system of the information processing apparatus may be completely hijacked.
 今後は、IoT(Internet of Things)の考え方に基づき、家庭内の電子機器をホームゲートウェイ装置を介してインターネットに接続する形態が広まることが予想される。このような家庭用の情報処理装置では、十分なセキュリティ対策を講じることが困難であり、アップデート時にマルウェアに感染する事態が頻発することが危惧される。 In the future, based on the idea of IoT (Internet of Things), it is expected that electronic devices in the home will be connected to the Internet via home gateway devices. In such a home information processing apparatus, it is difficult to take sufficient security measures, and it is feared that a situation where malware is infected frequently occurs at the time of update.
 そこで本発明は、セキュアな環境下でアップデートを行うことが可能な情報処理装置を提供することを目的とする。 Therefore, an object of the present invention is to provide an information processing apparatus capable of updating in a secure environment.
 (1)  本発明の第1の態様は、CPUと、メモリと、外部通信手段と、を備えた情報処理装置において、
 メモリに、CPUに実行させる第1のOSプログラムおよび第2のOSプログラムと、第1のOSプログラムの管理下においてCPUに実行させる第1属性のアプリケーションプログラムと、第2のOSプログラムの管理下においてCPUに実行させる第2属性のアプリケーションプログラムと、CPUに第1のOSプログラムおよび第2のOSプログラムを並列実行させる処理を行うハイパーバイザープログラムと、を格納し、
 第1属性のアプリケーションプログラムには、アップデート処理を管理する第1の管理プログラムが含まれ、第2属性のアプリケーションプログラムには、アップデート処理を管理する第2の管理プログラムが含まれるようにし、
 メモリの記憶領域には、第1のOSプログラムの管理下と第2のOSプログラムの管理下との双方においてアクセス可能な共有メモリ領域を設け、
 外部通信手段には、外部装置から送信されてきた、所定の暗号鍵を用いて暗号化された暗号化アップデートファイルを、第1のOSプログラムの管理下で受信する機能をもたせ、
 第1の管理プログラムが、外部通信手段が受信した暗号化アップデートファイルを共有メモリ領域に書き込む処理を実行し、
 第2の管理プログラムが、共有メモリ領域に書き込まれた暗号化アップデートファイルを読出し、上記暗号鍵もしくは上記暗号鍵に関連する暗号鍵を用いて、暗号化アップデートファイルを復号することにより復号アップデートファイルを生成する復号処理を実行し、生成した復号アップデートファイルを所定の格納場所に書き込む処理を実行するようにしたものである。
(1) According to a first aspect of the present invention, there is provided an information processing apparatus including a CPU, a memory, and an external communication unit.
First OS program and second OS program to be executed by CPU in memory, first attribute application program to be executed by CPU under management of first OS program, and under management of second OS program A second attribute application program to be executed by the CPU, and a hypervisor program for performing processing for causing the CPU to execute the first OS program and the second OS program in parallel,
The first attribute application program includes a first management program for managing update processing, and the second attribute application program includes a second management program for managing update processing.
The memory storage area is provided with a shared memory area that can be accessed both under the management of the first OS program and under the management of the second OS program,
The external communication means has a function of receiving an encrypted update file transmitted from an external device and encrypted using a predetermined encryption key under the management of the first OS program,
The first management program executes a process of writing the encrypted update file received by the external communication means into the shared memory area;
The second management program reads the encrypted update file written in the shared memory area, and decrypts the encrypted update file by using the encryption key or the encryption key related to the encryption key. A decryption process to be generated is executed, and a process to write the generated decryption update file in a predetermined storage location is executed.
 (2)  本発明の第2の態様は、上述した第1の態様に係る情報処理装置において、
 第1の管理プログラムが、第1のOSプログラムもしくは第1属性のアプリケーションプログラムに対するアップデート処理を実行するための暗号化アップデートファイルを外部通信手段が受信したときに、受信した暗号化アップデートファイルを共有メモリ領域に書き込み、
 第2の管理プログラムが、暗号化アップデートファイルを復号することにより復号アップデートファイルを生成し、これを所定の格納場所に書き込み、
 CPUが、復号アップデートファイルに含まれているアップデート用プログラムを実行することにより、第1のOSプログラムもしくは第1属性のアプリケーションプログラムに対するアップデート処理を行うようにしたものである。
(2) According to a second aspect of the present invention, in the information processing apparatus according to the first aspect described above,
When the first management program receives an encrypted update file for executing an update process for the first OS program or the application program having the first attribute, the received encrypted update file is stored in the shared memory. Write to the area,
The second management program generates a decrypted update file by decrypting the encrypted update file, and writes the decrypted update file in a predetermined storage location.
The CPU executes an update program included in the decrypted update file, thereby performing update processing on the first OS program or the application program having the first attribute.
 (3)  本発明の第3の態様は、上述した第2の態様に係る情報処理装置において、
 メモリとして、揮発性メモリと不揮発性メモリとを内蔵しており、
 揮発性メモリは、CPUがプログラムを実行する際の作業領域として利用され、
 不揮発性メモリには、第1のOSプログラムと、第2のOSプログラムと、第1属性のアプリケーションプログラムと、第2属性のアプリケーションプログラムと、ハイパーバイザープログラムと、が格納されているようにしたものである。
(3) According to a third aspect of the present invention, in the information processing apparatus according to the second aspect described above,
As memory, volatile memory and nonvolatile memory are built-in,
Volatile memory is used as a work area when the CPU executes a program,
The nonvolatile memory stores the first OS program, the second OS program, the first attribute application program, the second attribute application program, and the hypervisor program. It is.
 (4)  本発明の第4の態様は、上述した第3の態様に係る情報処理装置において、
 揮発性メモリに共有メモリ領域が設けられており、
 第1の管理プログラムが、暗号化アップデートファイルを、揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
 第2の管理プログラムが、復号アップデートファイルを、揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
 CPUが、揮発性メモリから復号アップデートファイルに含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うようにしたものである。
(4) According to a fourth aspect of the present invention, in the information processing apparatus according to the third aspect described above,
The volatile memory has a shared memory area,
The first management program executes a process of writing the encrypted update file to the shared memory area in the volatile memory,
The second management program executes a process of writing the decryption update file to the shared memory area in the volatile memory,
The CPU reads the update program contained in the decrypted update file from the volatile memory, and executes the update program to execute the update process.
 (5)  本発明の第5の態様は、上述した第3の態様に係る情報処理装置において、
 不揮発性メモリに共有メモリ領域が設けられており、
 第1の管理プログラムが、暗号化アップデートファイルを、不揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
 第2の管理プログラムが、復号アップデートファイルを、不揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
 CPUが、不揮発性メモリから復号アップデートファイルに含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うようにしたものである。
(5) According to a fifth aspect of the present invention, in the information processing apparatus according to the third aspect described above,
A shared memory area is provided in the nonvolatile memory,
The first management program executes a process of writing the encrypted update file to the shared memory area in the nonvolatile memory,
The second management program executes a process of writing the decryption update file to the shared memory area in the nonvolatile memory,
The CPU reads the update program included in the decrypted update file from the nonvolatile memory and executes it to perform the update process.
 (6)  本発明の第6の態様は、上述した第3の態様に係る情報処理装置において、
 揮発性メモリと不揮発性メモリとの双方に共有メモリ領域が設けられており、
 第1の管理プログラムが、暗号化アップデートファイルを、揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
 第2の管理プログラムが、復号アップデートファイルを、不揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
 CPUが、不揮発性メモリから復号アップデートファイルに含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うようにしたものである。
(6) According to a sixth aspect of the present invention, in the information processing apparatus according to the third aspect described above,
A shared memory area is provided in both the volatile memory and the nonvolatile memory,
The first management program executes a process of writing the encrypted update file to the shared memory area in the volatile memory,
The second management program executes a process of writing the decryption update file to the shared memory area in the nonvolatile memory,
The CPU reads the update program included in the decrypted update file from the nonvolatile memory and executes it to perform the update process.
 (7)  本発明の第7の態様は、上述した第3の態様に係る情報処理装置において、
 揮発性メモリに共有メモリ領域を設け、
 情報処理装置には、不揮発性の外部メモリを装着して、この外部メモリに対して情報の書き込みおよび読み出しを行う機能をもたせ、
 外部メモリの少なくとも一部の記憶領域は、第1のOSプログラムの管理下と第2のOSプログラムの管理下との双方においてアクセスが可能な共通アクセス領域になっており、
 第1の管理プログラムが、暗号化アップデートファイルを、揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
 第2の管理プログラムが、復号アップデートファイルを、外部メモリの共通アクセス領域に書き込む処理を実行し、
 CPUが、外部メモリの共通アクセス領域から復号アップデートファイルに含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うようにしたものである。
(7) According to a seventh aspect of the present invention, in the information processing apparatus according to the third aspect described above,
Provide a shared memory area in volatile memory,
The information processing apparatus is equipped with a non-volatile external memory and has a function of writing and reading information to and from the external memory.
At least a part of the storage area of the external memory is a common access area that can be accessed both under the management of the first OS program and under the management of the second OS program.
The first management program executes a process of writing the encrypted update file to the shared memory area in the volatile memory,
The second management program executes a process of writing the decryption update file to the common access area of the external memory,
The CPU reads the update program included in the decrypted update file from the common access area of the external memory, and executes the update program to execute the update process.
 (8)  本発明の第8の態様は、上述した第3の態様に係る情報処理装置において、
 揮発性メモリに共有メモリ領域を設け、
 情報処理装置には、不揮発性の外部メモリを装着して、第1のOSプログラムの管理下において外部メモリに対して情報の書き込みおよび読み出しを行う機能をもたせ、
 第1の管理プログラムが、暗号化アップデートファイルを、揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
 第2の管理プログラムが、復号アップデートファイルを、揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
 第1の管理プログラムが、揮発性メモリ内の共有メモリ領域に書き込まれた復号アップデートファイルを読み出した上で、これを外部メモリに書き込む処理を実行し、
 CPUが、外部メモリから復号アップデートファイルに含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うようにしたものである。
(8) According to an eighth aspect of the present invention, in the information processing apparatus according to the third aspect described above,
Provide a shared memory area in volatile memory,
The information processing apparatus is equipped with a non-volatile external memory and has a function of writing and reading information to and from the external memory under the control of the first OS program.
The first management program executes a process of writing the encrypted update file to the shared memory area in the volatile memory,
The second management program executes a process of writing the decryption update file to the shared memory area in the volatile memory,
The first management program reads the decryption update file written in the shared memory area in the volatile memory, and then executes a process of writing it to the external memory.
The CPU reads the update program included in the decrypted update file from the external memory and executes it to perform update processing.
 (9)  本発明の第9の態様は、上述した第3~第8の態様に係る情報処理装置において、
 内蔵された不揮発性メモリには、当該情報処理装置もしくは当該情報処理装置のユーザを特定するための識別情報を記録しておき、
 外部通信手段には、上記識別情報を利用して生成された暗号鍵を用いて暗号化された暗号化アップデートファイルを受信する機能をもたせ、
 第2の管理プログラムが、上記識別情報を利用して生成された暗号鍵を用いて暗号化アップデートファイルの復号を行うようにしたものである。
(9) According to a ninth aspect of the present invention, in the information processing apparatus according to the third to eighth aspects described above,
In the built-in nonvolatile memory, identification information for specifying the information processing device or the user of the information processing device is recorded,
The external communication means has a function of receiving an encrypted update file encrypted using the encryption key generated using the identification information,
The second management program decrypts the encrypted update file using the encryption key generated using the identification information.
 (10) 本発明の第10の態様は、上述した第3~第9の態様に係る情報処理装置において、
 内蔵された不揮発性メモリのメモリ空間に、第1の領域と第2の領域とを定義し、
 第1のOSプログラムおよび第1属性のアプリケーションプログラムは、第1の領域に対するアクセスのみが可能であり、第2のOSプログラムおよび第2属性のアプリケーションプログラムは、第1の領域および第2の領域の双方に対するアクセスが可能であるようにしたものである。
(10) According to a tenth aspect of the present invention, in the information processing apparatus according to the third to ninth aspects described above,
In the memory space of the built-in nonvolatile memory, a first area and a second area are defined,
The first OS program and the application program with the first attribute can only access the first area, and the second OS program and the application program with the second attribute are in the first area and the second area. Access to both is possible.
 (11) 本発明の第11の態様は、上述した第10の態様に係る情報処理装置において、
 第2の管理プログラムが復号処理に用いる暗号鍵、もしくは当該暗号鍵の生成に利用される情報を、不揮発性メモリの第2の領域に格納するようにしたものである。
(11) An eleventh aspect of the present invention is the information processing apparatus according to the tenth aspect described above,
The encryption key used for the decryption process by the second management program or information used for generating the encryption key is stored in the second area of the nonvolatile memory.
 (12) 本発明の第12の態様は、上述した第1~第11の態様に係る情報処理装置において、
 第1の管理プログラムもしくは第2の管理プログラムが、復号アップデートファイルに含まれているアップデート用プログラムを、情報処理装置が起動時に実行するブート用プログラムを格納するための格納場所に書き込む処理を実行し、
 CPUが、起動時に、上記アップデート用プログラムを実行することにより、アップデート処理を行うようにしたものである。
(12) According to a twelfth aspect of the present invention, in the information processing apparatus according to the first to eleventh aspects described above,
The first management program or the second management program executes a process of writing the update program included in the decrypted update file into the storage location for storing the boot program that the information processing apparatus executes at startup ,
The CPU executes the update process by executing the update program at the time of startup.
 (13) 本発明の第13の態様は、上述した第1~第11の態様に係る情報処理装置において、
 第1の管理プログラムもしくは第2の管理プログラムが、復号アップデートファイルに含まれているアップデート用プログラムを、第1のOSプログラムの管理下においてアクセス可能な格納場所に書き込む処理を実行し、
 CPUが、第1のOSプログラムの管理下において、アップデート用プログラムを実行することにより、アップデート処理を行うようにしたものである。
(13) According to a thirteenth aspect of the present invention, in the information processing apparatus according to the first to eleventh aspects described above,
The first management program or the second management program executes a process of writing the update program included in the decrypted update file to a storage location accessible under the management of the first OS program,
The CPU executes the update process by executing the update program under the control of the first OS program.
 (14) 本発明の第14の態様は、上述した第1~第13の態様に係る情報処理装置において、
 第1属性のアプリケーションプログラムには、外部装置との間にVPN通信路を開設する処理を行うVPN開設アプリが含まれており、
 外部通信手段が、暗号化アップデートファイルを上記VPN通信路を介して受信するようにしたものである。
(14) According to a fourteenth aspect of the present invention, in the information processing apparatus according to the first to thirteenth aspects described above,
The application program of the first attribute includes a VPN opening application that performs processing for opening a VPN communication path with an external device,
The external communication means receives the encrypted update file via the VPN communication path.
 (15) 本発明の第15の態様は、上述した第1~第14の態様に係る情報処理装置において、
 第1の管理プログラムが第1のOSプログラムに組み込まれているか、もしくは、第2の管理プログラムが第2のOSプログラムに組み込まれているか、または、その双方であるようにしたものである。
(15) According to a fifteenth aspect of the present invention, in the information processing apparatus according to the first to fourteenth aspects described above,
The first management program is incorporated in the first OS program, or the second management program is incorporated in the second OS program, or both.
 (16) 本発明の第16の態様は、上述した第1~第14の態様に係る情報処理装置における第1の管理プログラムおよび第2の管理プログラムの双方を含むコンピュータプログラムを独立した製品として提供するようにしたものである。 (16) According to a sixteenth aspect of the present invention, a computer program including both the first management program and the second management program in the information processing apparatus according to the first to fourteenth aspects described above is provided as an independent product. It is what you do.
 (17) 本発明の第17の態様は、上述した第1~第15の態様に係る情報処理装置を含むホームゲートウェイ装置を構成したものである。 (17) A seventeenth aspect of the present invention is a home gateway apparatus including the information processing apparatus according to the first to fifteenth aspects described above.
 本発明の情報処理装置によれば、ハイパーバイザープログラムによって、2系統のOSプログラムが並列実行される。ここで、第1のOSプログラムの管理下では、外部装置から送信されてきた暗号化アップデートファイルが受信され、第2のOSプログラムの管理下に引き渡される。そして、第2のOSプログラムの管理下において復号され、復号アップデートファイルが作成される。このように、暗号化アップデートファイルの復号は、第1のOSプログラムの管理下ではなく、第2のOSプログラムの管理下で行われるため、万一、第1のOSプログラムの管理下にある実行環境がマルウェアに感染していたとしても、暗号化アップデートファイルの復号処理は、当該マルウェアの影響から逃れることができる。このため、セキュアな環境下でアップデートを行うことが可能になる。 According to the information processing apparatus of the present invention, two systems of OS programs are executed in parallel by the hypervisor program. Here, under the management of the first OS program, the encrypted update file transmitted from the external device is received and delivered under the management of the second OS program. Then, it is decrypted under the management of the second OS program, and a decrypted update file is created. As described above, since the decryption of the encrypted update file is performed not under the management of the first OS program but under the management of the second OS program, the execution under the management of the first OS program should be performed. Even if the environment is infected with malware, the decryption process of the encrypted update file can escape from the influence of the malware. For this reason, it becomes possible to update in a secure environment.
本発明の基本的な実施形態に係る情報処理装置および外部装置の構成を示すブロック図である。It is a block diagram which shows the structure of the information processing apparatus which concerns on fundamental embodiment of this invention, and an external device. 図1に示す基本的な実施形態における通信路にVPN通信路を用いた、より実用的な実施形態の構成を示すブロック図である。It is a block diagram which shows the structure of more practical embodiment which used the VPN communication path for the communication path in basic embodiment shown in FIG. 図2に示す実施形態におけるアップデート処理の手順を示す流れ図である。It is a flowchart which shows the procedure of the update process in embodiment shown in FIG. 図1もしくは図2に示す実施形態において、アップデートファイルの受け渡しをする方法のいくつかの実施例を示すブロック図である。FIG. 3 is a block diagram showing some examples of a method for delivering an update file in the embodiment shown in FIG. 1 or FIG. 2. 図1もしくは図2に示す実施形態において、アップデートファイルの受け渡しをする方法の更に別な実施例を示すブロック図である。FIG. 5 is a block diagram showing still another example of a method for delivering an update file in the embodiment shown in FIG. 1 or FIG. 2. 図5(b) に示す実施例におけるアップデート処理の手順を示す流れ図である。FIG. 5B is a flowchart showing a procedure of update processing in the embodiment shown in FIG. 識別情報UIDを利用して暗号鍵を生成する変形例を示すブロック図である。It is a block diagram which shows the modification which produces | generates an encryption key using identification information UID. 内蔵不揮発性メモリ(フラッシュメモリ)のメモリ空間を示す図である。It is a figure which shows the memory space of a built-in non-volatile memory (flash memory). 本発明に係る情報処理装置を、ホームゲートウェイ装置として利用した実施例を示すブロック図である。It is a block diagram which shows the Example which utilized the information processing apparatus which concerns on this invention as a home gateway apparatus.
 以下、本発明を図示する実施形態に基づいて説明する。 Hereinafter, the present invention will be described based on the illustrated embodiment.
 <<< §1. 本発明の基本的な実施形態 >>>
 図1は、本発明の基本的な実施形態に係る情報処理装置100および外部装置200の構成を示すブロック図である。情報処理装置100は、たとえば、パソコン、スマートフォン、タブレット端末などの電子機器であり、CPUがプログラムを実行することにより情報処理機能を果たすことができる装置であれば、どのような装置でもかまわない。もちろん、通常、ユーザの操作対象にはならないホームゲートウェイ装置のような装置でもかまわない(後述する§5参照)。
<<< §1. Basic embodiment of the present invention >>
FIG. 1 is a block diagram showing configurations of an information processing apparatus 100 and an external apparatus 200 according to a basic embodiment of the present invention. The information processing apparatus 100 is an electronic device such as a personal computer, a smartphone, or a tablet terminal, and may be any apparatus as long as the CPU can perform an information processing function by executing a program. Of course, a device such as a home gateway device that is not normally operated by the user may be used (see §5 described later).
 図示のとおり、情報処理装置100は、CPU110と、メモリ120と、外部通信手段130とを備えている。もちろん、この他にも必要に応じて、ディスプレイ装置,キーボードやマウスなどの入力機器,各種センサなどを備えているケースもあるが、ここでは、本発明の構成に直接関連する構成要素のみを示す。 As illustrated, the information processing apparatus 100 includes a CPU 110, a memory 120, and an external communication unit 130. Of course, there are cases where a display device, an input device such as a keyboard and a mouse, various sensors, and the like are provided as necessary, but only the components directly related to the configuration of the present invention are shown here. .
 内蔵するメモリ120には、CPU110に実行させる第1のOSプログラムPaおよび第2のOSプログラムPbと、第1のOSプログラムPaの管理下においてCPU110に実行させる第1属性のアプリケーションプログラムAP1,AP2,Maと、第2のOSプログラムの管理下においてCPU110に実行させる第2属性のアプリケーションプログラムMbと、CPU110に第1のOSプログラムPaおよび第2のOSプログラムPbを並列実行させる処理を行うハイパーバイザープログラムPhと、が格納されている。 In the built-in memory 120, the first OS program Pa and the second OS program Pb to be executed by the CPU 110, and the first attribute application programs AP1, AP2 to be executed by the CPU 110 under the management of the first OS program Pa. Ma, a second attribute application program Mb that is executed by the CPU 110 under the control of the second OS program, and a hypervisor program that performs processing for causing the CPU 110 to execute the first OS program Pa and the second OS program Pb in parallel Ph is stored.
 CPUを内蔵した一般的な情報処理装置は、特定のOSプログラムの管理下で、種々のアプリケーションプログラムを実行することにより、様々な処理機能を果たすことができる。通常、1台の情報処理装置には、1組のOSプログラムと、当該OSプログラムの管理下で動作するアプリケーションプログラムとが組み込まれることが多いが、複数のOSプログラムを組み込んで用いる工夫がなされる場合もある。たとえば、パソコンでは、予め2組のOSプログラムを組み込んでおき、起動時にいずれか一方を選択してブートする方式や、第1のOSプログラムの動作環境下に仮想マシンを構築し、第2のOSプログラムの動作をエミュレートする方式などが実用化されている。 A general information processing apparatus with a built-in CPU can fulfill various processing functions by executing various application programs under the control of a specific OS program. In general, one information processing apparatus often incorporates a set of OS programs and application programs that operate under the management of the OS programs. However, it is devised to incorporate and use a plurality of OS programs. In some cases. For example, in a personal computer, two sets of OS programs are installed in advance, one of them is selected and booted at startup, or a virtual machine is constructed under the operating environment of the first OS program, and the second OS A method for emulating the operation of a program has been put into practical use.
 ハイパーバイザープログラムPhも、1台の情報処理装置において複数のOSプログラムを動作させるために用意されたプログラムであり、ハードウェア上で直接動作する機能を有し、複数のOSプログラムをゲストOSとして並列動作させることができる。図1に示す例の場合、第1のOSプログラムPaおよび第2のOSプログラムPbは、いずれもハイパーバイザープログラムPhのゲストOSとしてインストールされており、ハイパーバイザープログラムPhの管理下において、両OSプログラムPa,Pbを同時に起動状態にしておくことが可能になる。 The hypervisor program Ph is also a program prepared for operating a plurality of OS programs in one information processing apparatus, and has a function of directly operating on hardware, and the plurality of OS programs are used as guest OSs in parallel. It can be operated. In the case of the example shown in FIG. 1, both the first OS program Pa and the second OS program Pb are installed as the guest OS of the hypervisor program Ph, and both OS programs are managed under the hypervisor program Ph. Pa and Pb can be activated at the same time.
 本発明に用いるハイパーバイザープログラムPhは、CPU110に、第1のOSプログラムPaおよび第2のOSプログラムPbを並列実行させる処理を行う機能をもったプログラムであれば、どのようなプログラムであってもかまわない。そのようなプログラムとしては、たとえば、株式会社SELTECH社(東京都渋谷区)から「FOXvisor」なる製品が販売されている(当該製品では、ハイパーバイザープログラムPhは、CPU110と同一のチップに組み込まれている)。 The hypervisor program Ph used in the present invention is any program as long as it has a function of causing the CPU 110 to execute the first OS program Pa and the second OS program Pb in parallel. It doesn't matter. As such a program, for example, a product “FOXvisor” is sold by SELTECH Co., Ltd. (Shibuya-ku, Tokyo) (in this product, the hypervisor program Ph is incorporated in the same chip as the CPU 110). )
 前述したとおり、第1属性のアプリケーションプログラムAP1,AP2,Maは、第1のOSプログラムPaの管理下で動作するプログラムであり、第2属性のアプリケーションプログラムMbは、第2のOSプログラムPbの管理下で動作するプログラムである。 As described above, the first attribute application programs AP1, AP2, and Ma operate under the management of the first OS program Pa, and the second attribute application program Mb manages the second OS program Pb. It is a program that runs below.
 図1に示す例では、第1属性のアプリケーションプログラムとして、アプリAP1,AP2がインストールされている例が示されている。これらアプリAP1,AP2は、この情報処理装置100に、本来の情報処理機能を実施させるためにインストールされたプログラムである。実用上は、より多数のアプリケーションプログラムがインストールされるが、ここでは、説明の便宜上、2組のアプリAP1,AP2のみがインストールされている例を示す。 The example shown in FIG. 1 shows an example in which applications AP1 and AP2 are installed as application programs having the first attribute. The applications AP1 and AP2 are programs installed to cause the information processing apparatus 100 to perform the original information processing function. In practice, a larger number of application programs are installed, but here, for convenience of explanation, only two sets of applications AP1 and AP2 are installed.
 一方、第1属性のアプリケーションプログラムには、アプリAP1,AP2の他に、第1の管理プログラムMaが含まれており、第2属性のアプリケーションプログラムには、第2の管理プログラムMbが含まれている。これら管理プログラムMa,Mbは、本発明においてセキュアなアップデート処理を実行するために組み込まれた専用のアプリケーションプログラムである。ここに示す実施例の場合、第2属性のアプリケーションプログラムは、第2の管理プログラムMbのみによって構成されている。 On the other hand, the first attribute application program includes the first management program Ma in addition to the apps AP1 and AP2, and the second attribute application program includes the second management program Mb. Yes. These management programs Ma and Mb are dedicated application programs incorporated in order to execute secure update processing in the present invention. In the case of the embodiment shown here, the application program having the second attribute is configured only by the second management program Mb.
 この図1に示す情報処理装置100において、ハイパーバイザープログラムPh、第1の管理プログラムMa、第2のOSプログラムPb、第2属性のアプリ(すなわち、第2の管理プログラムMb)は、セキュアなアップデート処理を実行する目的のために組み込まれた付加プログラムであり、本発明に係るセキュアなアップデート処理を実行する必要がない場合には、そもそもこれらの付加プログラムを組み込む必要はない。別言すれば、この情報処理装置100の本来の機能は、第1のOSプログラムPaと第1属性のアプリAP1,AP2とによって果たすことができ、上記付加プログラムは、第1のOSプログラムPaや第1属性のアプリAP1,AP2に対するアップデート処理をセキュアな環境下で行うために導入されたプログラムと言うことができる。 In the information processing apparatus 100 shown in FIG. 1, the hypervisor program Ph, the first management program Ma, the second OS program Pb, and the second attribute application (that is, the second management program Mb) are securely updated. If the additional program is incorporated for the purpose of executing the process and it is not necessary to execute the secure update process according to the present invention, it is not necessary to incorporate these additional programs in the first place. In other words, the original function of the information processing apparatus 100 can be performed by the first OS program Pa and the applications AP1 and AP2 having the first attribute, and the additional program includes the first OS program Pa and the first OS program Pa. It can be said that it is a program introduced in order to perform update processing for the first attribute application AP1, AP2 in a secure environment.
 本発明を実施する上では、図示のとおり、メモリ120の記憶領域に共有メモリ領域121を設定しておく必要がある。この共有メモリ領域121は、第1のOSプログラムPaの管理下と第2のOSプログラムPbの管理下との双方においてアクセス可能な領域である。したがって、第1のOSプログラムPaの管理下で動作する第1の管理プログラムMaによって共有メモリ領域121をアクセスすることも可能であるし、第2のOSプログラムPbの管理下で動作する第2の管理プログラムMbによって共有メモリ領域121をアクセスすることも可能である。このような共有メモリ領域121を設定する理由は、後述するように、第1の管理プログラムMaと第2の管理プログラムMbとの間でデータの受け渡しを行うためである。 In implementing the present invention, it is necessary to set the shared memory area 121 in the storage area of the memory 120 as shown in the figure. The shared memory area 121 is an area that can be accessed both under the management of the first OS program Pa and under the management of the second OS program Pb. Therefore, the shared memory area 121 can be accessed by the first management program Ma that operates under the management of the first OS program Pa, and the second operation that operates under the management of the second OS program Pb. It is also possible to access the shared memory area 121 by the management program Mb. The reason for setting such a shared memory area 121 is to exchange data between the first management program Ma and the second management program Mb, as will be described later.
 ハイパーバイザープログラムPhは、第1のOSプログラムPaと第2のOSプログラムPbとの双方を管理下におき、両OSプログラムの並列動作を制御する機能を有している。したがって、共有メモリ領域121は、このハイパーバイザープログラムPhの機能によって設定することができる。 The hypervisor program Ph has a function of controlling both the first OS program Pa and the second OS program Pb and controlling the parallel operation of both OS programs. Therefore, the shared memory area 121 can be set by the function of this hypervisor program Ph.
 一方、外部通信手段130は、この情報処理装置100の外部に設けられた何らかの装置と通信を行う装置である。図1では、本発明に係る固有のアップデート処理を説明する便宜上、外部装置200としてのアップデートサーバに対する通信を行う例が示されている。アップデートサーバ200は、情報処理装置100内の第1のOSプログラムPaやアプリケーションプログラムAP1,AP2についてアップデート処理(プログラムの更新処理)を行うために必要なアップデートファイルF1を配信する役割を果たす。アップデートファイルF1内には、アップデート用プログラムが含まれており、このアップデート用プログラムをCPU110に実行させることにより、所望のアップデート処理が行われる。 On the other hand, the external communication means 130 is a device that communicates with some device provided outside the information processing apparatus 100. FIG. 1 shows an example in which communication with an update server as the external device 200 is performed for the convenience of describing the unique update processing according to the present invention. The update server 200 plays a role of distributing an update file F1 necessary for performing update processing (program update processing) for the first OS program Pa and the application programs AP1 and AP2 in the information processing apparatus 100. An update program is included in the update file F1, and a desired update process is performed by causing the CPU 110 to execute the update program.
 アップデートサーバ200から情報処理装置100に対するアップデートファイルF1の配信は、情報処理装置100からアップデートサーバ200に対して配信要求を行う形式(Pull型配信)で行ってもよいし、アップデートサーバ200から自主的に情報処理装置100に対して配信する形式(Push型配信)で行ってもよい。情報処理装置100側で、アップデートファイルF1を受信する処理は、第1の管理プログラムMaによって行われる。 Distribution of the update file F1 from the update server 200 to the information processing apparatus 100 may be performed in a format (Pull type distribution) in which a distribution request is sent from the information processing apparatus 100 to the update server 200, or voluntarily from the update server 200. Alternatively, it may be performed in a format that is distributed to the information processing apparatus 100 (Push distribution). On the information processing apparatus 100 side, the process of receiving the update file F1 is performed by the first management program Ma.
 ここで重要な点は、アップデートファイルF1は、そのままの形態ではなく、暗号化して送信される点である。図示のとおり、アップデートサーバ200内には、所定の暗号鍵Kが用意されており、この暗号鍵Kを用いて、アップデートファイルF1を暗号化し、暗号化アップデートファイルF2を生成する処理が行われる。実用上は、AES(Advanced Encryption Standard)などの堅固な暗号方式を用いて暗号化を行うのが好ましい。アップデートサーバ200から情報処理装置100に対しては、この暗号化アップデートファイルF2が送信される。 Here, the important point is that the update file F1 is not sent as it is, but is sent after being encrypted. As shown in the figure, a predetermined encryption key K is prepared in the update server 200, and the update file F1 is encrypted using this encryption key K to generate an encrypted update file F2. In practice, it is preferable to perform encryption using a robust encryption method such as AES (Advanced Encryption Standard). The encrypted update file F2 is transmitted from the update server 200 to the information processing apparatus 100.
 こうして送信されてきた暗号化アップデートファイルF2は、情報処理装置100の外部通信手段130によって受信される。この受信処理は、上述したように、第1の管理プログラムMaによって行われる。第1の管理プログラムMaは、外部通信手段130が受信した暗号化アップデートファイルF2を共有メモリ領域121に書き込む処理を実行する。図1に示す矢印は、このような暗号化アップデートファイルF2の流れを示している。 The encrypted update file F2 transmitted in this way is received by the external communication means 130 of the information processing apparatus 100. This reception process is performed by the first management program Ma as described above. The first management program Ma executes a process of writing the encrypted update file F2 received by the external communication unit 130 into the shared memory area 121. The arrows shown in FIG. 1 indicate the flow of such an encrypted update file F2.
 なお、暗号化アップデートファイルF2の受信処理は、必ずしも第1の管理プログラムMaに担わせる必要はなく、第1属性の任意のアプリケーションプログラムに担わせてもよい。たとえば、アプリAP1がWebブラウザであった場合は、このWebブラウザの機能により、アップデートサーバ200に配信要求を出し、送信されてきた暗号化アップデートファイルF2を受信することが可能である。いずれの場合も、外部通信手段130は、外部装置200から送信されてきた、所定の暗号鍵Kを用いて暗号化された暗号化アップデートファイルF2を、第1のOSプログラムPaの管理下で受信することになる。そして、受信した暗号化アップデートファイルF2は、第1のOSプログラムPaの管理下で動作する第1の管理プログラムMaによって、共有メモリ領域121に書き込まれる。したがって、ここまでの処理は、すべて第1のOSプログラムPaの管理下で実行されることになる。 The reception process of the encrypted update file F2 does not necessarily have to be performed by the first management program Ma, but may be performed by an arbitrary application program having the first attribute. For example, when the application AP1 is a Web browser, it is possible to issue a distribution request to the update server 200 and receive the transmitted encrypted update file F2 by the function of the Web browser. In any case, the external communication unit 130 receives the encrypted update file F2 transmitted from the external device 200 and encrypted using the predetermined encryption key K under the management of the first OS program Pa. Will do. The received encrypted update file F2 is written to the shared memory area 121 by the first management program Ma operating under the management of the first OS program Pa. Therefore, all the processes so far are executed under the management of the first OS program Pa.
 続いて、ハイパーバイザープログラムPhの機能により、システムの管理が第2のOSプログラムPbに切り替えられる。そして、第2のOSプログラムPbの管理下で動作する第2の管理プログラムMbによって、共有メモリ領域121に書き込まれていた暗号化アップデートファイルF2が読出される。第2の管理プログラムMbは、読み出した暗号化アップデートファイルを暗号鍵K′を用いて復号する機能を有しており、復号アップデートファイルF3を生成する復号処理を実行し、更に、生成した復号アップデートファイルF3を所定の格納場所に書き込む処理を実行する。 Subsequently, system management is switched to the second OS program Pb by the function of the hypervisor program Ph. Then, the encrypted update file F2 written in the shared memory area 121 is read by the second management program Mb operating under the management of the second OS program Pb. The second management program Mb has a function of decrypting the read encrypted update file using the encryption key K ′, executes a decryption process for generating the decryption update file F3, and further generates the generated decryption update. A process of writing the file F3 to a predetermined storage location is executed.
 図1に示す矢印は、このような暗号化アップデートファイルF2および復号アップデートファイルF3の流れを示している。なお、図1では、便宜上、復号アップデートファイルF3の書き込み先が、情報処理装置100の外部になるように描かれているが、復号アップデートファイルF3の書き込み先は、情報処理装置100の内部であっても外部であってもかまわない。この書き込み先についての詳細は、後の§3において詳述する。 The arrows shown in FIG. 1 indicate the flow of the encrypted update file F2 and the decrypted update file F3. In FIG. 1, for the sake of convenience, the decryption update file F3 is written so that the write destination of the decryption update file F3 is outside the information processing apparatus 100. However, the decryption update file F3 is written inside the information processing apparatus 100. Or outside. Details of the write destination will be described in detail in Section 3 below.
 ここで、第2の管理プログラムMbによって実行される復号処理に用いられる暗号鍵K′を、アップデートサーバ200における暗号化に用いられた暗号鍵Kと同一の鍵にしておき、暗号化処理と逆のプロセスを行えば、元のアップデートファイルF1と同じ内容の復号アップデートファイルF3が得られ、正しい復号が行われることになる。そこで、この復号アップデートファイルF3に含まれているアップデート用プログラムをCPU110に実行させれば、所望のアップデート処理を行うことができる。 Here, the encryption key K ′ used for the decryption process executed by the second management program Mb is set to the same key as the encryption key K used for the encryption in the update server 200, and is the reverse of the encryption process. If the above process is performed, a decrypted update file F3 having the same contents as the original update file F1 is obtained, and correct decryption is performed. Therefore, if the CPU 110 executes the update program included in the decryption update file F3, a desired update process can be performed.
 もっとも、第2の管理プログラムMbによって実行される復号処理に用いる暗号鍵K′は、必ずしもアップデートサーバ200側での暗号化処理に用いた暗号鍵Kと同一である必要はなく、正しい復号が可能となるような特定の関係をもった鍵であればよい。たとえば、公開鍵暗号方式では特定の関係をもった一対の鍵が用いられ、一方の鍵で暗号化したものを、他方の鍵で正しく復号することができる。したがって、アップデートサーバ200側で、公開鍵暗号方式に基づく暗号化処理を実行した場合、暗号化に用いる暗号鍵Kと復号に用いる暗号鍵K′とは、公開鍵暗号方式における一対の対応鍵の関係をもっていればよい。 However, the encryption key K ′ used for the decryption process executed by the second management program Mb is not necessarily the same as the encryption key K used for the encryption process on the update server 200 side, and correct decryption is possible. Any key that has a specific relationship such that For example, in a public key cryptosystem, a pair of keys having a specific relationship is used, and what is encrypted with one key can be correctly decrypted with the other key. Therefore, when encryption processing based on the public key cryptosystem is executed on the update server 200 side, the encryption key K used for encryption and the encryption key K ′ used for decryption are a pair of corresponding keys in the public key cryptosystem. It only has to have a relationship.
 要するに、第2の管理プログラムMbは、アップデートサーバ200側での暗号化処理に用いる暗号鍵、もしくは、当該暗号鍵に関連する所定の暗号鍵を用いて復号処理を行えばよい。図1に示す破線は、このような一対の暗号鍵が特定の関連性を有していることを示すものである。 In short, the second management program Mb may perform decryption processing using an encryption key used for encryption processing on the update server 200 side or a predetermined encryption key related to the encryption key. The broken line shown in FIG. 1 indicates that such a pair of encryption keys has a specific relationship.
 なお、第2の管理プログラムMbの格納場所や、第2の管理プログラムMbが復号処理に利用する暗号鍵K′の格納場所は、図示の例のように、共有メモリ領域121以外の領域、すなわち、第2のOSプログラムの管理下でのみアクセス可能な領域(第1のOSプログラムの管理下ではアクセスできないセキュアな領域)に格納しておくようにするのが好ましい。そうすれば、第1のOSプログラムPaの管理下にある領域がマルウェアに感染したとしても、第2の管理プログラムMbや暗号鍵K′をセキュアな状態に保つことができる。 The storage location of the second management program Mb and the storage location of the encryption key K ′ used for the decryption process by the second management program Mb are areas other than the shared memory area 121, as shown in the example of FIG. It is preferable to store in an area that can be accessed only under the management of the second OS program (a secure area that cannot be accessed under the management of the first OS program). Then, even if the area under the management of the first OS program Pa is infected with malware, the second management program Mb and the encryption key K ′ can be kept in a secure state.
 本発明に係る情報処理装置100の重要な特徴は、ハイパーバイザープログラムPhを組み込むことにより、第1のOSプログラムPaと第2のOSプログラムPbとを並列実行させる環境を構築した点にある。そのため、通常は、第1のOSプログラムPaの管理下で第1属性のアプリケーションプログラムAP1,AP2を実行させ、情報処理装置100としての本来の機能を果たさせることができる。一方、第1のOSプログラムPaや第1属性のアプリケーションプログラムAP1,AP2に対してアップデート処理を行う必要が生じたときには、第2のOSプログラムPbの管理下で第2の管理プログラムMbを実行させ、暗号化アップデートファイルF2の復号処理を行うことができる。 An important feature of the information processing apparatus 100 according to the present invention is that an environment in which the first OS program Pa and the second OS program Pb are executed in parallel is built by incorporating the hypervisor program Ph. Therefore, normally, the application program AP1, AP2 having the first attribute can be executed under the management of the first OS program Pa, and the original function as the information processing apparatus 100 can be performed. On the other hand, when it becomes necessary to perform update processing on the first OS program Pa and the first attribute application programs AP1 and AP2, the second management program Mb is executed under the management of the second OS program Pb. The decryption process of the encrypted update file F2 can be performed.
 情報処理装置100が第1のOSプログラムPaの管理下で通常の処理(アップデート処理以外の処理)を行っている状態では、外部通信手段130により、外部の様々な装置と通信を行うため、マルウェアに感染する可能性がある。もちろん、図示の例の場合も、アップデートサーバ200が偽物であった場合、外部通信手段130が受信するファイルF2は偽のファイルということになる。このように、第1のOSプログラムPaの管理下でマルウェアに感染したとしても、その影響が、異なるOSである第2のOSプログラムPbの実行環境に及ぶ可能性は低い。 In the state where the information processing apparatus 100 is performing normal processing (processing other than update processing) under the control of the first OS program Pa, the external communication means 130 communicates with various external devices. May be infected. Of course, also in the example shown in the figure, when the update server 200 is a fake, the file F2 received by the external communication unit 130 is a fake file. In this way, even if malware is infected under the management of the first OS program Pa, there is a low possibility that the influence will reach the execution environment of the second OS program Pb, which is a different OS.
 すなわち、両OSプログラムPa,Pb間では、共有メモリ領域121を介してデータの受け渡しが行われるものの、各OSプログラムの実行環境は完全に独立しているため、第1のOSプログラムPaの実行環境下に寄生したマルウェアが第2のOSプログラムPbの実行環境下に何らかの影響を及ぼす可能性は非常に低い。また、異なるOSプログラムでは、異なるプログラムコードが用いられるため、第1のOSプログラムPa用に作成されたマルウェアは、通常、第2のOSプログラムPbに害を及ぼすことはできない。 That is, although data is exchanged between the OS programs Pa and Pb via the shared memory area 121, the execution environment of each OS program is completely independent, so the execution environment of the first OS program Pa The possibility that the parasitic malware below has some influence on the execution environment of the second OS program Pb is very low. Also, since different OS programs use different program codes, the malware created for the first OS program Pa cannot normally harm the second OS program Pb.
 したがって、情報処理装置100の通常の処理を第1のOSプログラムPaの管理下で行い、アップデート処理を行うときにのみ第2のOSプログラムPbの管理下に切り替える、という運用を採用すれば、第2のOSプログラムPbの実行環境は、極めてセキュアな状態に維持されることになる。本発明の特徴は、このように、第2のOSプログラムPbの実行環境がセキュアな状態に保たれることを利用して、外部装置200から送信されてきた暗号化アップデートファイルF2の復号処理を、このセキュアな第2のOSプログラムPbの実行環境で実行することにより、セキュアな環境下でのアップデートを実現する点にある。 Therefore, if the operation of performing the normal processing of the information processing apparatus 100 under the management of the first OS program Pa and switching to the management of the second OS program Pb only when the update processing is performed is adopted, The execution environment of the second OS program Pb is maintained in an extremely secure state. The feature of the present invention is that the decryption process of the encrypted update file F2 transmitted from the external device 200 is performed by using the fact that the execution environment of the second OS program Pb is maintained in a secure state. The update is executed in a secure environment by executing it in the execution environment of the secure second OS program Pb.
 具体的には、第1のOSプログラムPaもしくは第1属性のアプリケーションプログラムAP1,AP2に対するアップデート処理が必要になった場合、まず、外部装置200(アップデートサーバ)側で、アップデート処理に必要なアップデートファイルF1(アップデート処理を実行するプログラムを含むファイル)を暗号化して暗号化アップデートファイルF2を作成し、これを情報処理装置100に送信する。一方、情報処理装置100側では、この暗号化アップデートファイルF2を第1のOSプログラムPaの管理下で受信し、第1の管理プログラムMaによって、受信した暗号化アップデートファイルF2を共有メモリ領域121に書き込む処理を行う。 Specifically, when an update process for the first OS program Pa or the application program AP1 or AP2 having the first attribute is required, first, an update file necessary for the update process on the external device 200 (update server) side F1 (a file containing a program for executing update processing) is encrypted to create an encrypted update file F2, which is transmitted to the information processing apparatus 100. On the other hand, on the information processing apparatus 100 side, the encrypted update file F2 is received under the management of the first OS program Pa, and the received encrypted update file F2 is stored in the shared memory area 121 by the first management program Ma. Perform the writing process.
 第1の管理プログラムMaと第2の管理プログラムMbとは、ハイパーバイザープログラムPhを介して信号のやりとりを行うことができるので、第1の管理プログラムMaにより暗号化アップデートファイルF2を共有メモリ領域121へ書き込む処理が完了したら、その旨を第2の管理プログラムMbに通知することができる。当該通知は、第2の管理プログラムMbに対する「復号処理要求」として機能し、第2の管理プログラムMbは、当該通知を受け取った後、共有メモリ領域121に書き込まれている暗号化アップデートファイルF2を読み出し、暗号鍵K′を用いた復号処理を行って復号アップデートファイルF3を生成し、これを所定の格納場所に書き込む処理を行うことになる。 Since the first management program Ma and the second management program Mb can exchange signals via the hypervisor program Ph, the first management program Ma sends the encrypted update file F2 to the shared memory area 121. When the process of writing to is completed, it can be notified to the second management program Mb. The notification functions as a “decryption processing request” for the second management program Mb, and the second management program Mb receives the notification and then stores the encrypted update file F2 written in the shared memory area 121. The decryption update file F3 is generated by performing the decryption process using the encryption key K ′, and the process of writing this in a predetermined storage location is performed.
 第2の管理プログラムMbが復号処理に成功した場合、CPU110は、この復号アップデートファイルF3に含まれているアップデート用プログラムを実行することにより、第1属性のアプリケーションプログラムAP1,AP2もしくは第1のOSプログラムPaに対するアップデート処理を、第1のOSプログラムPaの管理下もしくはブートプロセスで実行する。 When the second management program Mb succeeds in the decryption process, the CPU 110 executes the update program included in the decryption update file F3 to thereby execute the application program AP1, AP2 having the first attribute or the first OS. Update processing for the program Pa is executed under the management of the first OS program Pa or in the boot process.
 そのため、第2の管理プログラムMbは、復号アップデートファイルF3の書き込みが完了したら、その旨をハイパーバイザープログラムPhを介して第1の管理プログラムMaに通知する。当該通知は、第1の管理プログラムMaに対する「復号処理完了報告」として機能し、当該通知を受けた第1の管理プログラムMaは、第1のOSプログラムPaの管理下もしくはブートプロセスで、所定の格納場所に書き込まれた復号アップデートファイルF3(元のアップデートファイルF1と同じ内容)を用いたアップデート処理が実行されるよう必要な処理を実行する。 Therefore, when the writing of the decryption update file F3 is completed, the second management program Mb notifies the first management program Ma via the hypervisor program Ph. The notification functions as a “decryption processing completion report” for the first management program Ma, and the first management program Ma that has received the notification is under the control of the first OS program Pa or in a boot process. Necessary processing is executed so that update processing using the decrypted update file F3 (the same content as the original update file F1) written in the storage location is executed.
 たとえば、ディスプレイ画面上に「アップデートの準備が完了しました。アップデート用プログラムを実行して下さい。」のようなメッセージを表示させて、ユーザにアップデート用プログラムの実行を促すような処理を行ってもよい(第1属性のアプリケーションプログラムAP1やAP2についてのアップデートを行う場合)。あるいは、「アップデートの準備が完了しました。装置を再起動して下さい。」のようなメッセージを表示させて、ユーザに再起動を促すような処理を行い、ブートプロセスが実行されるようにしてもよい(第1のOSプログラムPaについてのアップデートを行う場合)。もちろん、ユーザの確認操作を待たずに、復号アップデートファイルF3に含まれているアップデート用プログラムの実行やブートプロセスを自動的に行うようにしてもよい。 For example, even if a message such as “Ready for update is complete. Please run the update program.” Is displayed on the display screen and the user is prompted to run the update program. Good (when updating the application programs AP1 and AP2 having the first attribute). Alternatively, display a message such as “Ready to update. Please restart the device” and prompt the user to restart, so that the boot process is executed. It is also possible (when updating the first OS program Pa). Of course, the execution of the update program included in the decryption update file F3 and the boot process may be automatically performed without waiting for the user's confirmation operation.
 なお、第2の管理プログラムMbが復号処理に失敗した場合は、その旨をハイパーバイザープログラムPhを介して第1の管理プログラムMaに報告する。第1の管理プログラムMaは、何らかのエラー処理(たとえば、ユーザに対して、アップデートに失敗した旨を提示する処理)を行うことになり、アップデート処理は中止される。 In addition, when the second management program Mb fails in the decryption process, the fact is reported to the first management program Ma via the hypervisor program Ph. The first management program Ma performs some kind of error processing (for example, processing for presenting the user that the update has failed), and the update processing is stopped.
 結局、本発明に係る情報処理装置100の場合、外部装置200からの暗号化アップデートファイルF2の入手は、第1のOSプログラムPaの管理下で行うが、暗号化アップデートファイルF2の復号処理は、第2のOSプログラムPbに引き渡した後、第2のOSプログラムPbの管理下のセキュアな環境で行うことになる。そして、この復号処理によって得られた復号アップデートファイルF3を用いたアップデート処理は、第1のOSプログラムPaの管理下もしくはブートプロセスで行う、という手順が踏まれる。 After all, in the case of the information processing apparatus 100 according to the present invention, acquisition of the encrypted update file F2 from the external apparatus 200 is performed under the management of the first OS program Pa, but decryption processing of the encrypted update file F2 is After handing over to the second OS program Pb, it is performed in a secure environment under the control of the second OS program Pb. The update process using the decryption update file F3 obtained by this decryption process is performed under the control of the first OS program Pa or in the boot process.
 このように、暗号化アップデートファイルF2の復号処理を、第2のOSプログラムPbの管理下で行う(別言すれば、第2のOSプログラムPbの管理下で動作する第2の管理プログラムMbによって行う)ことは、アップデート処理の安全性を確保する上で非常に重要である。前述したとおり、この情報処理装置100は、第1のOSプログラムPaの管理下で第1属性のアプリケーションプログラムAP1,AP2を実行させることにより本来の機能を果たす。このため、第1のOSプログラムPaの実行環境はマルウェアに感染するおそれがあり、ノンセキュアな領域に置かれていることになる。これに対して、第2のOSプログラムPbの実行環境はマルウェアに感染する可能性が極めて低く、セキュアな領域に置かれていることになる。本発明では、暗号化アップデートファイルF2の復号処理が、このセキュアな領域で実行されるため、マルウェアの影響を極力回避することが可能になる。 In this way, the decryption process of the encrypted update file F2 is performed under the management of the second OS program Pb (in other words, by the second management program Mb operating under the management of the second OS program Pb). Is very important to ensure the security of the update process. As described above, the information processing apparatus 100 performs its original function by executing the application programs AP1 and AP2 having the first attribute under the management of the first OS program Pa. For this reason, the execution environment of the first OS program Pa may be infected with malware, and is placed in a non-secure area. On the other hand, the execution environment of the second OS program Pb is extremely unlikely to be infected with malware, and is placed in a secure area. In the present invention, since the decryption process of the encrypted update file F2 is executed in this secure area, it is possible to avoid the influence of malware as much as possible.
 本発明に固有の作用効果は、ノンセキュアな領域(第1のOSプログラムPaの管理下)で復号処理を行った場合の危険性を考えれば、容易に理解できよう。たとえば、第1のOSプログラムPaの実行環境がマルウェアに感染している状態で、当該第1のOSプログラムPaの管理下で復号処理を行った場合、たとえ受信した暗号化アップデートファイルF2が正規のファイルであったとしても、復号処理で得られる復号アップデートファイルF3が正規のファイルであることは保証できない。したがって、当該復号アップデートファイルF3に含まれているアップデート用プログラムを実行することは非常に危険である。 The operation and effect unique to the present invention can be easily understood in view of the danger of performing decryption processing in a non-secure area (under the control of the first OS program Pa). For example, when the execution environment of the first OS program Pa is infected with malware and the decryption process is performed under the management of the first OS program Pa, the received encrypted update file F2 is legitimate. Even if it is a file, it cannot be guaranteed that the decryption update file F3 obtained by the decryption process is a regular file. Therefore, it is very dangerous to execute the update program included in the decryption update file F3.
 本発明に係る情報処理装置100では、復号処理は、セキュアな環境にある第2のOSプログラムPbの管理下で行われるため、暗号化アップデートファイルF2が正規のファイルであれば、復号処理で得られる復号アップデートファイルF3も正規のファイルになる。したがって、当該復号アップデートファイルF3に含まれているアップデート用プログラムを実行すること自体には、何ら危険性はない。 In the information processing apparatus 100 according to the present invention, since the decryption process is performed under the management of the second OS program Pb in a secure environment, if the encrypted update file F2 is a legitimate file, the decryption process is performed. The decrypted update file F3 is also a regular file. Therefore, there is no danger in executing the update program included in the decrypted update file F3.
 また、受信した暗号化アップデートファイルが偽のファイルであった場合にも、本発明は危険を回避する作用効果を奏することができる。たとえば、正規のアップデートサーバ200の正規サイトにアクセスしているつもりであっても、第1のOSプログラムPaの実行環境がマルウェアに感染していると、偽のサイトに誘導されてしまうことがある。この場合、外部通信手段130が受信する暗号化アップデートファイルF2(false)は偽のファイルということになる。 In addition, even when the received encrypted update file is a fake file, the present invention can achieve the effect of avoiding danger. For example, even if the intended site of the authorized update server 200 is intended to be accessed, if the execution environment of the first OS program Pa is infected with malware, it may be directed to a fake site. . In this case, the encrypted update file F2 (false) received by the external communication unit 130 is a fake file.
 この場合、復号処理に用いる暗号鍵K′が秘密状態に維持されている限り、このような偽の暗号化アップデートファイルF2(false)は復号に失敗するので、偽のアップデート用プログラムが実行されてしまうことを未然に防ぐことができる。ところが、第1のOSプログラムPaの実行環境がマルウェアに感染していると、第1のOSプログラムPaの管理下に格納されている暗号鍵K′は漏洩する危険性があり、悪意をもった者は、この漏洩した暗号鍵K′によって正しく復号することができる偽の暗号化アップデートファイルF2(false)を作成することが可能になる。この場合、偽のアップデート用プログラムが実行されてしまうことになる。 In this case, as long as the encryption key K ′ used for the decryption process is maintained in a secret state, such a fake encrypted update file F2 (false) fails to be decrypted, and therefore a fake update program is executed. Can be prevented in advance. However, if the execution environment of the first OS program Pa is infected with malware, the encryption key K ′ stored under the control of the first OS program Pa may be leaked, which is malicious. The person can create a fake encrypted update file F2 (false) that can be correctly decrypted by the leaked encryption key K ′. In this case, a fake update program is executed.
 本発明に係る情報処理装置100では、復号処理は、セキュアな環境にある第2のOSプログラムPbの管理下で行われるため、たとえ第1のOSプログラムPaの実行環境がマルウェアに感染していたとしても、当該マルウェアの影響を受けることがない。したがって、暗号鍵K′を、図示の例のように、共有メモリ領域121以外の領域、すなわち、第2のOSプログラムの管理下でのみアクセス可能な領域(第1のOSプログラムの管理下ではアクセスできないセキュアな領域)に格納しておけば、マルウェアの影響を受けて外部に漏洩することを防ぐことができる。 In the information processing apparatus 100 according to the present invention, since the decryption process is performed under the management of the second OS program Pb in a secure environment, the execution environment of the first OS program Pa is infected with malware. However, it is not affected by the malware. Accordingly, the encryption key K ′ is accessed in an area other than the shared memory area 121, that is, an area accessible only under the management of the second OS program (accessed under the management of the first OS program), as shown in the example of FIG. If it is stored in a secure area that cannot be protected, it is possible to prevent leakage to the outside due to the influence of malware.
 このように、本発明に係る情報処理装置100では、ハイパーバイザープログラムPhを利用して、本来の機能実行に必要な第1のOSプログラムPaの他に、アップデート処理時に利用する第2のOSプログラムPbを組み込んでセキュアな実行環境を構築し、このセキュアな実行環境で暗号化アップデートファイルF2の復号処理を行うようにしたため、従来装置に比べて、偽のアップデート用プログラムが実行される危険性を低減することができ、セキュアな環境下でのアップデートが可能になる。 As described above, in the information processing apparatus 100 according to the present invention, the second OS program used during the update process in addition to the first OS program Pa necessary for executing the original function by using the hypervisor program Ph. Since a secure execution environment is built by incorporating Pb and the encrypted update file F2 is decrypted in this secure execution environment, there is a risk that a fake update program may be executed compared to the conventional device. It can be reduced, and updating in a secure environment becomes possible.
 なお、図1に示す実施例では、第2属性のアプリケーションプログラムとして、第2の管理プログラムMbのみがインストールされているが、必要に応じて、別なアプリケーションプログラムを第2属性のアプリケーションプログラムとしてインストールして利用するようにしてもかまわない。ただ、第2属性のアプリケーションプログラムの数や種類が増えれば増えるほど、第2のOSプログラムPbの実行環境がマルウェアに感染する可能性も高まるので、実用上は、第2属性のアプリケーションプログラムとしては、図示の実施例のように、第2の管理プログラムMbなど、必要最低限のプログラムをインストールするのが好ましい。 In the embodiment shown in FIG. 1, only the second management program Mb is installed as the application program with the second attribute, but if necessary, another application program is installed as the application program with the second attribute. It does not matter if you use it. However, as the number and types of application programs with the second attribute increase, the possibility that the execution environment of the second OS program Pb is infected with malware increases. In practical terms, as the application program with the second attribute, As in the illustrated embodiment, it is preferable to install a minimum necessary program such as the second management program Mb.
 結局、図1の実施例に係る情報処理装置100は、第1のOSプログラムPaの下で第1属性のアプリケーションプログラムAP1,AP2等を実行する従来装置に、ハイパーバイザープログラムPhを利用して第2のOSプログラムPbを組み込むようにし、上述した機能を有する第1の管理プログラムMaおよび第2の管理プログラムMbをインストールすることにより実現することができる。各OSプログラムPa,PbやハイパーバイザープログラムPhとしては、市販のプログラムを利用することができるので、実用上は、第1の管理プログラムMaおよび第2の管理プログラムMbを用意すれば、本発明の実施が可能である。 After all, the information processing apparatus 100 according to the embodiment of FIG. 1 uses the hypervisor program Ph as a conventional apparatus that executes the first attribute application programs AP1, AP2, and the like under the first OS program Pa. The second OS program Pb can be incorporated, and the first management program Ma and the second management program Mb having the functions described above can be installed. Commercially available programs can be used as the OS programs Pa and Pb and the hypervisor program Ph. Therefore, in practice, if the first management program Ma and the second management program Mb are prepared, the present invention can be used. Implementation is possible.
 また、図1に示す実施例では、第1の管理プログラムMaおよび第2の管理プログラムMbを、各OSプログラムPa,Pbとは別個独立したプログラムとして用意しているが、第1の管理プログラムPaを、第1のOSプログラムPaに組み込むことにより、第1のOSプログラムPaの一機能として用意することもできるし、同様に、第2の管理プログラムPbを、第2のOSプログラムPbに組み込むことにより、第2のOSプログラムPbの一機能として用意することもできる。 In the embodiment shown in FIG. 1, the first management program Ma and the second management program Mb are prepared as programs independent of the OS programs Pa and Pb. Can be prepared as a function of the first OS program Pa by incorporating it into the first OS program Pa. Similarly, the second management program Pb can be incorporated into the second OS program Pb. Thus, it can be prepared as a function of the second OS program Pb.
 <<< §2. 本発明の実用的な実施形態 >>>
 ここでは、本発明のより実用的な実施形態を述べる。図2は、図1に示す基本的な実施形態における情報処理装置100と外部装置200との間の通信路として、VPN(Virtual Private Network)通信路を用いた、より実用的な実施形態の構成を示すブロック図である。
<<< §2. Practical embodiment of the present invention >>>
Here, a more practical embodiment of the present invention will be described. 2 is a configuration of a more practical embodiment using a VPN (Virtual Private Network) communication path as a communication path between the information processing apparatus 100 and the external apparatus 200 in the basic embodiment shown in FIG. FIG.
 図2に示すシステムの基本構成は、図1に示すシステムの基本構成とほぼ同じであるが、外部装置200から情報処理装置100への暗号化アップデートファイルF2の送信が、VPN通信路を介して行われる点が異なる。そのため、情報処理装置100側では、第1属性のアプリケーションプログラムとして、外部装置200との間にVPN通信路を開設する処理を行うVPN開設アプリVPN1が用意されており(図1に示すアプリAP2として、VPN開設アプリVPN1が用意されている)、外部装置側では、同様にVPN通信路を開設する処理を行うVPN開設アプリVPN2が用意されている。更に、このVPN通信路を管理運用するためのVPNサーバ300が設けられている。したがって、図示のVPN通信路は、VPNサーバ300とVPN開設アプリVPN1,VPN2の協働作業により構築され、外部通信手段130は、暗号化アップデートファイルF2をこのVPN通信路を介して受信することになる。 The basic configuration of the system shown in FIG. 2 is almost the same as the basic configuration of the system shown in FIG. 1, but the transmission of the encrypted update file F2 from the external device 200 to the information processing device 100 is performed via the VPN communication path. What is done is different. Therefore, on the information processing apparatus 100 side, a VPN opening application VPN1 that performs a process of opening a VPN communication path with the external apparatus 200 is prepared as an application program of the first attribute (as application AP2 shown in FIG. 1). VPN opening application VPN1 is prepared), and on the external device side, a VPN opening application VPN2 for performing a process for opening a VPN communication path is prepared. Further, a VPN server 300 for managing and operating the VPN communication path is provided. Therefore, the illustrated VPN communication path is constructed by the cooperative work of the VPN server 300 and the VPN opening applications VPN1 and VPN2, and the external communication means 130 receives the encrypted update file F2 via this VPN communication path. Become.
 §1で述べたとおり、暗号化アップデートファイルF2は暗号化されたファイルであり、悪意をもった者による攻撃によって通信中に改竄を受けるリスクは低減されているが、通信路自体をVPN通信路とすることにより、そのリスクを更に低減し、安全な受け渡しを行うことができるようになる。このようなVPNの構築方法やVPNサーバ300の機能については、既に公知の技術であるため、ここでは詳しい説明は省略する。 As described in §1, the encrypted update file F2 is an encrypted file, and the risk of being tampered with during communication by an attack by a malicious person is reduced. By doing so, the risk can be further reduced and safe delivery can be performed. Since such a VPN construction method and the function of the VPN server 300 are already known techniques, a detailed description thereof will be omitted here.
 図3は、図2に示す実施形態において、外部装置200(アップデートサーバ)内に用意されているアップデートファイルF1を用いて、情報処理装置100内にインストールされている第1のOSプログラムPaもしくは第1属性のアプリケーションプログラムAP1,VPN1等に対するアップデート処理を行う手順を示す流れ図である。各手順を示すブロックの右側に付記された括弧書きの符号は、当該ブロック内の手順実施に関与する構成要素を示している。 3 shows the first OS program Pa or the first installed in the information processing apparatus 100 using the update file F1 prepared in the external apparatus 200 (update server) in the embodiment shown in FIG. It is a flowchart which shows the procedure which performs the update process with respect to application program AP1, VPN1, etc. of 1 attribute. Reference numerals in parentheses attached to the right side of the block indicating each procedure indicate components involved in performing the procedure in the block.
 まず、ステップS1において、VPNサーバ300による認証処理が実行される。この処理は、情報処理装置100と外部装置200との間にVPN通信路を開設するための準備段階の処理である。VPN通信路の開設にあたっては、VPNサーバ300がサーバ装置、情報処理装置100および外部装置200がそれぞれクライアント装置という関係になり、ステップS1の処理は、VPNサーバ300が、そのクライアント装置である情報処理装置100および外部装置200ならびにそのユーザを正規のものとして認証する処理と言うことができる。 First, in step S1, authentication processing by the VPN server 300 is executed. This process is a preparatory stage process for establishing a VPN communication path between the information processing apparatus 100 and the external apparatus 200. In establishing a VPN communication path, the VPN server 300 is a server device, the information processing device 100, and the external device 200 are client devices, and the processing in step S1 is information processing in which the VPN server 300 is the client device. It can be said that the device 100, the external device 200, and the user are authenticated as authentic.
 具体的には、情報処理装置100内にVPN開設アプリVPN1用のデータとして用意されているデバイス証明書D1,クライアント証明書C1,クライアント秘密鍵K1を用いることにより、VPNサーバ300が情報処理装置100およびそのユーザを正規のものとして認証し、同様に、外部装置200内にVPN開設アプリVPN2用のデータとして用意されているデバイス証明書D2,クライアント証明書C2,クライアント秘密鍵K2を用いることにより、VPNサーバ300が外部装置200およびそのユーザを正規のものとして認証する処理が行われる。 Specifically, by using the device certificate D1, the client certificate C1, and the client private key K1 prepared as data for the VPN establishment application VPN1 in the information processing apparatus 100, the VPN server 300 causes the information processing apparatus 100 to And authenticating the user as a normal one, and similarly using the device certificate D2, the client certificate C2, and the client private key K2 prepared as data for the VPN opening application VPN2 in the external device 200, A process in which the VPN server 300 authenticates the external device 200 and its user as authentic ones is performed.
 こうして、VPNサーバ300による認証処理が完了すると、続くステップS2において、図2に示すように、情報処理装置100と外部装置200との間にVPN通信路を開設する処理が行われる。VPNサーバ300は、当該VPN通信路を管理する役割を果たす。 Thus, when the authentication process by the VPN server 300 is completed, in the subsequent step S2, a process of opening a VPN communication path between the information processing apparatus 100 and the external apparatus 200 is performed as shown in FIG. The VPN server 300 plays a role of managing the VPN communication path.
 次のステップS3では、外部装置200側において、情報処理装置100に送信するためのアップデートファイルF1を暗号化する処理が行われる。図2には、暗号鍵Kを用いた暗号化処理によってアップデートファイルF1を暗号化することにより暗号化アップデートファイルF2を生成する例が示されている。この暗号化アップデートファイルF2は、続くステップS4において、ステップS2で開設されたVPN通信路を介して送信され、情報処理装置100によって受信される。このようにVPN通信路を介した送受信により、暗号化アップデートファイルF2の安全な受け渡しが可能になる。 In the next step S3, processing for encrypting the update file F1 to be transmitted to the information processing apparatus 100 is performed on the external apparatus 200 side. FIG. 2 shows an example in which the encrypted update file F2 is generated by encrypting the update file F1 by an encryption process using the encryption key K. In step S4, the encrypted update file F2 is transmitted via the VPN communication path established in step S2 and received by the information processing apparatus 100. In this way, the encrypted update file F2 can be safely delivered by transmission / reception via the VPN communication path.
 そして、ステップS5では、情報処理装置100内の第1の管理プログラムMaによって、受信した暗号化アップデートファイルF2を共有メモリ領域121に書き込む処理が行われ、続くステップS6では、第2の管理プログラムMbによって、暗号化アップデートファイルF2を共有メモリ領域121から読み出し、これを暗号鍵K′を用いて復号する復号処理が行われる。この復号処理によって得られた復号アップデートファイルF3は、ステップS7において、所定の格納場所に書き込まれる。最後のステップS8では、CPU110によって、当該格納場所に書き込まれている復号アップデートファイルF3が実行され、目的となるアップデート処理が完了する。 In step S5, a process of writing the received encrypted update file F2 into the shared memory area 121 is performed by the first management program Ma in the information processing apparatus 100. In the subsequent step S6, the second management program Mb is written. Thus, a decryption process for reading the encrypted update file F2 from the shared memory area 121 and decrypting it using the encryption key K ′ is performed. The decryption update file F3 obtained by this decryption process is written in a predetermined storage location in step S7. In the last step S8, the decryption update file F3 written in the storage location is executed by the CPU 110, and the target update process is completed.
 §1で述べたとおり、ステップS4,S5の処理が第1のOSプログラムPaの管理下で行われるのに対して、ステップS6,S7の処理は、よりセキュアな第2のOSプログラムPbの管理下で行われることになる。なお、ステップS5で用いる共有メモリ領域121の配置場所、ステップS7における復号アップデートファイルF3の格納場所や、ステップS8におけるアップデート処理の具体的な手順については、以下の§3において具体例を挙げながら説明する。 As described in §1, the processes in steps S4 and S5 are performed under the control of the first OS program Pa, whereas the processes in steps S6 and S7 are more secure management of the second OS program Pb. Will be done below. The location of the shared memory area 121 used in step S5, the storage location of the decrypted update file F3 in step S7, and the specific procedure of the update process in step S8 will be described with specific examples in §3 below. To do.
 <<< §3. 各アップデートファイルの受け渡し方法 >>>
 図1および図2に示す実施形態では、外部通信手段130が受信した暗号化アップデートファイルF2を共有メモリ領域121を介して受け渡し、復号処理によって得られた復号アップデートファイルF3を所定の格納場所へ書き込んだ後、これを実行してアップデート処理を行うことになる。ここでは、暗号化アップデートファイルF2の受け渡しに利用される共有メモリ領域121や、復号アップデートファイルF3の書き込み先となる所定の格納場所について、いくつかの実施例を示しながら、これらアップデートファイルF2,F3の具体的な受け渡し方法を説明する。
<<< §3. Delivery method of each update file >>>
In the embodiment shown in FIGS. 1 and 2, the encrypted update file F2 received by the external communication unit 130 is transferred via the shared memory area 121, and the decrypted update file F3 obtained by the decryption process is written to a predetermined storage location. After that, this is executed and the update process is performed. Here, with respect to the shared memory area 121 used for delivery of the encrypted update file F2 and the predetermined storage location to which the decryption update file F3 is written, these update files F2, F3 are shown with some examples. A specific delivery method will be described.
 一般的な情報処理装置には、揮発性メモリと不揮発性メモリとが併用されている。ここで揮発性メモリは、通常、RAMによって構成され、CPUがプログラムを実行する際の作業領域として利用される。一方、不揮発性メモリは、フラッシュメモリ等によって構成され、プログラムやデータの格納領域として利用される。 In general information processing apparatuses, a volatile memory and a nonvolatile memory are used in combination. Here, the volatile memory is usually composed of a RAM, and is used as a work area when the CPU executes a program. On the other hand, the nonvolatile memory is constituted by a flash memory or the like, and is used as a storage area for programs and data.
 図1および図2に示す実施形態におけるメモリ120も、実際には、揮発性メモリ(RAM)と不揮発性メモリ(フラッシュメモリ)とを内蔵している。揮発性メモリ(RAM)は、CPU110が種々のプログラムを実行する際の作業領域として利用され、不揮発性メモリ(フラッシュメモリ)は、第1のOSプログラムPa、第2のOSプログラムPb、第1属性のアプリケーションプログラムAP1,AP2,Ma、第2属性のアプリケーションプログラムMb、ハイパーバイザープログラムPh、を格納する格納領域として利用される。 The memory 120 in the embodiment shown in FIGS. 1 and 2 actually includes a volatile memory (RAM) and a nonvolatile memory (flash memory). The volatile memory (RAM) is used as a work area when the CPU 110 executes various programs, and the nonvolatile memory (flash memory) is a first OS program Pa, a second OS program Pb, a first attribute. Application programs AP1, AP2, Ma, second attribute application program Mb, and hypervisor program Ph are used as storage areas.
 ここで、共有メモリ領域121は、揮発性メモリ(RAM)の領域に設けることもできるし、不揮発性メモリ(フラッシュメモリ)の領域に設けることもできる。同様に、復号アップデートファイルF3を書き込む格納場所も、揮発性メモリ(RAM)の領域に設けることもできるし、不揮発性メモリの領域(フラッシュメモリ)に設けることもできる。以下、メモリ120の具体的な利用形態について、いくつかの実施例を述べることにする。 Here, the shared memory area 121 can be provided in a volatile memory (RAM) area or a non-volatile memory (flash memory) area. Similarly, the storage location for writing the decryption update file F3 can be provided in a volatile memory (RAM) area or in a non-volatile memory area (flash memory). Hereinafter, some embodiments will be described with respect to specific usage forms of the memory 120.
 図4は、図1もしくは図2に示す実施形態において、アップデートファイルの受け渡しをする方法のいくつかの実施例を示すブロック図である。いずれの実施例も、情報処理装置100の内蔵メモリ120を用いて、暗号化アップデートファイルF2および復号アップデートファイルF3の受け渡し(第1のOSプログラムPaの管理下と第2のOSプログラムPbの管理下との間の受け渡し)が行われる。 FIG. 4 is a block diagram showing some examples of a method for delivering an update file in the embodiment shown in FIG. 1 or FIG. In any embodiment, using the built-in memory 120 of the information processing apparatus 100, the encrypted update file F2 and the decryption update file F3 are transferred (under the management of the first OS program Pa and under the management of the second OS program Pb). Between them).
 図4(a) は、メモリ120の揮発性メモリ(RAM)内に共有メモリ領域122を設け、更に、この共有メモリ領域122を、復号アップデートファイルF3を書き込む格納場所として利用した例を示すブロック図である。この実施例の場合、図3におけるステップS5において、第1の管理プログラムMaは、受信した暗号化アップデートファイルF2を、この揮発性メモリ内の共有メモリ領域122に書き込む処理を実行する。そしてステップS6では、第2の管理プログラムMbが、共有メモリ領域122から暗号化アップデートファイルF2を読み出して復号し、続くステップS7では、第2の管理プログラムMbが、得られた復号アップデートファイルF3を、揮発性メモリ内の共有メモリ領域122に書き込む処理を実行する。 FIG. 4A is a block diagram showing an example in which a shared memory area 122 is provided in the volatile memory (RAM) of the memory 120, and this shared memory area 122 is used as a storage location for writing the decrypted update file F3. It is. In the case of this embodiment, in step S5 in FIG. 3, the first management program Ma executes a process of writing the received encrypted update file F2 to the shared memory area 122 in the volatile memory. In step S6, the second management program Mb reads and decrypts the encrypted update file F2 from the shared memory area 122. In subsequent step S7, the second management program Mb reads the obtained decryption update file F3. , A process of writing to the shared memory area 122 in the volatile memory is executed.
 アップデート処理に用いる復号アップデートファイルF3は、揮発性メモリ内の共有メモリ領域122に書き込まれているので、CPU110は、この揮発性メモリから、復号アップデートファイルF3に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことになる。共有メモリ領域122は、揮発性メモリ(RAM)内の領域であるため、情報処理装置100の電源がOFFにされたり、再起動によって揮発性メモリの内容が初期化されたりすると、そこに書き込まれていた復号アップデートファイルF3は失われてしまうため、アップデート処理を行うことができない。 Since the decryption update file F3 used for the update process is written in the shared memory area 122 in the volatile memory, the CPU 110 reads the update program included in the decryption update file F3 from the volatile memory, By executing this, update processing is performed. Since the shared memory area 122 is an area in the volatile memory (RAM), the information is written to when the information processing apparatus 100 is turned off or the contents of the volatile memory are initialized by restarting. Since the decrypted update file F3 is lost, the update process cannot be performed.
 一般的な情報処理装置の場合、OSプログラムに対してアップデートを行う場合、一旦、電源をOFFにしたり、再起動のプロセスを行ったりする必要がある。このような情報処理装置の場合、図4(a) に示す実施例では、OSプログラムについてのアップデートを行うことはできない。したがって、この図4(a) に示す実施例は、主に、アプリケーションプログラムのアップデートに適した実施例ということになる。 In the case of a general information processing apparatus, when updating an OS program, it is necessary to temporarily turn off the power or perform a restart process. In the case of such an information processing apparatus, in the embodiment shown in FIG. 4A, the OS program cannot be updated. Therefore, the embodiment shown in FIG. 4A is mainly an embodiment suitable for updating an application program.
 これに対して、図4(b) は、メモリ120の不揮発性メモリ(フラッシュメモリ)内に共有メモリ領域123を設け、更に、この共有メモリ領域123を、復号アップデートファイルF3を書き込む格納場所として利用した例を示すブロック図である。この実施例の場合、図3におけるステップS5において、第1の管理プログラムMaは、受信した暗号化アップデートファイルF2を、この不揮発性メモリ内の共有メモリ領域123に書き込む処理を実行する。そしてステップS6では、第2の管理プログラムMbが、共有メモリ領域123から暗号化アップデートファイルF2を読み出して復号し、続くステップS7では、第2の管理プログラムMbが、得られた復号アップデートファイルF3を、不揮発性メモリ内の共有メモリ領域123に書き込む処理を実行する。 On the other hand, in FIG. 4B, a shared memory area 123 is provided in the nonvolatile memory (flash memory) of the memory 120, and this shared memory area 123 is used as a storage location for writing the decryption update file F3. It is a block diagram showing an example. In the case of this embodiment, in step S5 in FIG. 3, the first management program Ma executes a process of writing the received encrypted update file F2 into the shared memory area 123 in the nonvolatile memory. In step S6, the second management program Mb reads and decrypts the encrypted update file F2 from the shared memory area 123. In the subsequent step S7, the second management program Mb reads the obtained decryption update file F3. Then, a process of writing to the shared memory area 123 in the nonvolatile memory is executed.
 アップデート処理に用いる復号アップデートファイルF3は、不揮発性メモリ内の共有メモリ領域123に書き込まれているので、CPU110は、この不揮発性メモリから、復号アップデートファイルF3に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことになる。共有メモリ領域123は、不揮発性メモリ(フラッシュメモリ)内の領域であるため、情報処理装置100の電源がOFFにされたり、再起動によって揮発性メモリ(RAM)の内容が初期化されたりしても、そこに書き込まれていた復号アップデートファイルF3が失われることはない。したがって、この図4(b) に示す実施例は、アプリケーションプログラムのアップデートのみならず、OSプログラムのアップデートにも適した実施例ということになる。 Since the decryption update file F3 used for the update process is written in the shared memory area 123 in the nonvolatile memory, the CPU 110 reads the update program included in the decryption update file F3 from the nonvolatile memory, By executing this, update processing is performed. Since the shared memory area 123 is an area in the non-volatile memory (flash memory), the information processing apparatus 100 is turned off or the contents of the volatile memory (RAM) are initialized by restarting. However, the decryption update file F3 written therein is not lost. Therefore, the embodiment shown in FIG. 4B is an embodiment suitable not only for updating the application program but also for updating the OS program.
 一方、図4(c) は、メモリ120の揮発性メモリ(RAM)124a内と不揮発性メモリ(フラッシュメモリ)124b内との双方に跨るように共有メモリ領域124を設けた例を示すブロック図である。この実施例の場合、暗号化アップデートファイルF2の受け渡し場所としては、揮発性メモリ(RAM)内の共有メモリ領域124aが利用され、復号アップデートファイルF3を書き込む格納場所としては、不揮発性メモリ(フラッシュメモリ)内の共有メモリ領域124bが利用される。 On the other hand, FIG. 4C is a block diagram showing an example in which the shared memory area 124 is provided so as to extend over both the volatile memory (RAM) 124a and the nonvolatile memory (flash memory) 124b of the memory 120. is there. In this embodiment, the shared memory area 124a in the volatile memory (RAM) is used as the delivery location of the encrypted update file F2, and the nonvolatile memory (flash memory) is used as the storage location for writing the decrypted update file F3. ) Is used.
 したがって、この実施例の場合、図3におけるステップS5において、第1の管理プログラムMaは、受信した暗号化アップデートファイルF2を、揮発性メモリ(RAM)内の共有メモリ領域124aに書き込む処理を実行する。そしてステップS6では、第2の管理プログラムMbが、共有メモリ領域124aから暗号化アップデートファイルF2を読み出して復号し、続くステップS7では、第2の管理プログラムMbが、得られた復号アップデートファイルF3を、不揮発性メモリ内の共有メモリ領域124bに書き込む処理を実行する。 Therefore, in this embodiment, in step S5 in FIG. 3, the first management program Ma executes a process of writing the received encrypted update file F2 into the shared memory area 124a in the volatile memory (RAM). . In step S6, the second management program Mb reads and decrypts the encrypted update file F2 from the shared memory area 124a. In subsequent step S7, the second management program Mb reads the obtained decryption update file F3. Then, a process of writing to the shared memory area 124b in the nonvolatile memory is executed.
 図4(b) に示す例と同様に、アップデート処理に用いる復号アップデートファイルF3は、不揮発性メモリ内の共有メモリ領域124bに書き込まれているので、CPU110は、この不揮発性メモリから、復号アップデートファイルF3に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことになる。共有メモリ領域124bは、不揮発性メモリ(フラッシュメモリ)内の領域であるため、情報処理装置100の電源がOFFにされたり、再起動によって揮発性メモリ(RAM)の内容が初期化されたりしても、そこに書き込まれていた復号アップデートファイルF3が失われることはない。 As in the example shown in FIG. 4B, the decryption update file F3 used for the update process is written in the shared memory area 124b in the nonvolatile memory. Therefore, the CPU 110 uses the decryption update file from the nonvolatile memory. The update program included in F3 is read out and executed to execute update processing. Since the shared memory area 124b is an area in the nonvolatile memory (flash memory), the information processing apparatus 100 is turned off, or the contents of the volatile memory (RAM) are initialized by restarting. However, the decryption update file F3 written therein is not lost.
 したがって、この図4(c) に示す実施例も、図4(b) に示す実施例と同様に、アプリケーションプログラムのアップデートのみならず、OSプログラムのアップデートにも適した実施例ということになる。また、一般に、揮発性メモリ(RAM)に対するデータの読み書きは、不揮発性メモリ(フラッシュメモリ)に対するデータの読み書きよりも高速に行うことができるので、暗号化アップデートファイルF2の書込処理および読出処理に関しては、図4(c) に示す実施例の方が図4(b) に示す実施例よりも高速化できるという利点が得られる。 Therefore, the embodiment shown in FIG. 4C is also an embodiment suitable not only for updating the application program but also for updating the OS program, similarly to the embodiment shown in FIG. 4B. In general, reading / writing data from / to the volatile memory (RAM) can be performed at a higher speed than reading / writing data from / to the nonvolatile memory (flash memory). 4 (c) is advantageous in that the embodiment shown in FIG. 4 (c) can be faster than the embodiment shown in FIG. 4 (b).
 以上、図4に示した3つの実施例は、いずれも情報処理装置100の内蔵メモリ120を用いて、暗号化アップデートファイルF2および復号アップデートファイルF3の受け渡し(第1のOSプログラムPaの管理下と第2のOSプログラムPbの管理下との間の受け渡し)を行う例であるが、アップデートファイルの受け渡し場所は、必ずしも情報処理装置100の内蔵メモリ120である必要はなく、外部メモリを受け渡し場所として用いてもかまわない。 As described above, all of the three embodiments shown in FIG. 4 use the built-in memory 120 of the information processing apparatus 100 to transfer the encrypted update file F2 and the decrypted update file F3 (under the control of the first OS program Pa). The transfer location of the update file is not necessarily the internal memory 120 of the information processing apparatus 100, but the external memory is the transfer location. You can use it.
 図5(a) は、暗号化アップデートファイルF2の受け渡し場所として、内蔵メモリ120内の揮発性メモリ(RAM)に設けられた共有メモリ領域122を用い、復号アップデートファイルF3の受け渡し場所として、不揮発性の外部メモリ400を用いた実施例を示すブロック図である。この図5(a) では、説明の便宜上、情報処理装置100を破線のブロックで示してある(図5(b) も同様)。図1,図2に示すとおり、情報処理装置100には、メモリ120以外にも種々の構成要素が存在するが、ここではこれらの構成要素の図示は省略されている。 FIG. 5A shows that a shared memory area 122 provided in a volatile memory (RAM) in the built-in memory 120 is used as a delivery location of the encrypted update file F2, and a non-volatile property is used as a delivery location of the decryption update file F3. It is a block diagram which shows the Example using the external memory 400 of FIG. In FIG. 5A, the information processing apparatus 100 is indicated by a broken-line block for convenience of explanation (the same applies to FIG. 5B). As shown in FIGS. 1 and 2, the information processing apparatus 100 includes various components in addition to the memory 120, but these components are not shown here.
 外部メモリ400は、図において、情報処理装置100の外部に描かれているとおり、情報処理装置100の内部構成要素ではなく、必要に応じて、情報処理装置100に外付けされる不揮発性メモリであり、たとえば、USBの規格で情報処理装置100に対して装着可能なフラッシュメモリ(いわゆるUSBメモリ)等を用いることができる。 The external memory 400 is not an internal component of the information processing apparatus 100 as illustrated outside the information processing apparatus 100 in the figure, but is a non-volatile memory externally attached to the information processing apparatus 100 as necessary. For example, a flash memory (so-called USB memory) that can be attached to the information processing apparatus 100 according to the USB standard can be used.
 情報処理装置100は、この不揮発性の外部メモリ400を装着して、この外部メモリ400に対して情報の書き込みおよび読み出しを行う機能を有している。また、この外部メモリ400の少なくとも一部の記憶領域は、第1のOSプログラムPaの管理下と第2のOSプログラムPbの管理下との双方においてアクセスが可能な共通アクセス領域410を構成している。なお、この共通アクセス領域410は、両OSプログラムPa,Pbの双方からアクセス可能なメモリ領域という点において、「共有メモリ領域」の一種であるが、この図5に示す実施例では、説明の便宜上、両OSプログラムPa,Pbの双方からアクセス可能なメモリ領域のうち、情報処理装置100の内蔵メモリ120に設けられた領域を「共有メモリ領域」と呼び、外部メモリ400に設けられた領域を「共通アクセス領域」と呼んで区別することにする。 The information processing apparatus 100 has a function of attaching and reading information to and from the external memory 400 by mounting the nonvolatile external memory 400. Further, at least a part of the storage area of the external memory 400 constitutes a common access area 410 that can be accessed both under the management of the first OS program Pa and under the management of the second OS program Pb. Yes. The common access area 410 is a kind of “shared memory area” in that it is a memory area accessible from both OS programs Pa and Pb. However, in the embodiment shown in FIG. Of the memory areas accessible from both OS programs Pa and Pb, the area provided in the built-in memory 120 of the information processing apparatus 100 is called a “shared memory area”, and the area provided in the external memory 400 is “ This is called a “common access area”.
 図5(a) に示す実施例の場合、情報処理装置100の内蔵メモリ120の揮発性メモリ(RAM)内に共有メモリ領域122が設けられている。この共有メモリ領域122は、暗号化アップデートファイルF2の受け渡し場所として利用され、外部メモリ400内の共通アクセス領域410は、復号アップデートファイルF3の受け渡し場所として利用される。 In the embodiment shown in FIG. 5A, a shared memory area 122 is provided in the volatile memory (RAM) of the built-in memory 120 of the information processing apparatus 100. The shared memory area 122 is used as a delivery location for the encrypted update file F2, and the common access area 410 in the external memory 400 is used as a delivery location for the decryption update file F3.
 具体的には、この実施例の場合、図3におけるステップS5において、第1の管理プログラムMaは、受信した暗号化アップデートファイルF2を、揮発性メモリ(RAM)内の共有メモリ領域122に書き込む処理を実行する。そしてステップS6では、第2の管理プログラムMbが、共有メモリ領域122から暗号化アップデートファイルF2を読み出して復号し、続くステップS7では、第2の管理プログラムMbが、得られた復号アップデートファイルF3を、外部メモリ400内の共通アクセス領域410に書き込む処理を実行する。 Specifically, in this embodiment, in step S5 in FIG. 3, the first management program Ma writes the received encrypted update file F2 to the shared memory area 122 in the volatile memory (RAM). Execute. In step S6, the second management program Mb reads and decrypts the encrypted update file F2 from the shared memory area 122. In subsequent step S7, the second management program Mb reads the obtained decryption update file F3. Then, a process of writing to the common access area 410 in the external memory 400 is executed.
 この図5(a) に示す実施例の場合、アップデート処理に用いる復号アップデートファイルF3は、外部メモリ400内の共通アクセス領域410に書き込まれているので、CPU110は、この共通アクセス領域410から、復号アップデートファイルF3に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことになる。共通アクセス領域410は、不揮発性の外部メモリ400(たとえば、USBメモリ)内の領域であるため、情報処理装置100の電源がOFFにされたり、再起動されたりしても、そこに書き込まれていた復号アップデートファイルF3が失われることはない。 In the case of the embodiment shown in FIG. 5A, since the decrypted update file F3 used for the update process is written in the common access area 410 in the external memory 400, the CPU 110 decrypts from the common access area 410. The update process included in the update file F3 is read out and executed to execute update processing. Since the common access area 410 is an area in the non-volatile external memory 400 (for example, a USB memory), it is written even if the information processing apparatus 100 is turned off or restarted. The decrypted update file F3 is not lost.
 したがって、この図5(a) に示す実施例も、図4(b) ,図4(c) に示す実施例と同様に、アプリケーションプログラムのアップデートのみならず、OSプログラムのアップデートにも適した実施例ということになる。もちろん、暗号化アップデートファイルF2は、揮発性メモリ(RAM)内の共有メモリ領域122を介して受け渡しされるので、暗号化アップデートファイルF2の書込処理および読出処理は高速化できる。 Accordingly, the embodiment shown in FIG. 5A is also suitable for updating the OS program as well as updating the application program, similar to the embodiment shown in FIGS. 4B and 4C. It will be an example. Of course, since the encrypted update file F2 is transferred via the shared memory area 122 in the volatile memory (RAM), the writing process and the reading process of the encrypted update file F2 can be speeded up.
 図5(b) は、最終的なアップデート処理に用いられる復号アップデートファイルF3を、不揮発性の外部メモリ400に書き出すという点において、上述した図5(a) の実施例と共通した手法を採用している。ただ、内蔵メモリ120内の揮発性メモリ(RAM)に設けられた共有メモリ領域122は、暗号化アップデートファイルF2の受け渡し場所として用いられるとともに、復号アップデートファイルF3の受け渡し場所としても用いられ、外部メモリ400は、この共有メモリ領域122に書き込まれた復号アップデートファイルF3の退避場所として利用される。 FIG. 5 (b) employs a technique common to the embodiment of FIG. 5 (a) described above in that the decrypted update file F3 used for the final update process is written to the nonvolatile external memory 400. ing. However, the shared memory area 122 provided in the volatile memory (RAM) in the built-in memory 120 is used as a delivery location for the encrypted update file F2, and also used as a delivery location for the decryption update file F3. 400 is used as a save location for the decryption update file F3 written in the shared memory area 122.
 別言すれば、この図5(b) に示す実施例は、図4(a) に示す実施例の問題点を解決するための変形例というべきものである。すなわち、図4(a) に示す実施例では、最終的なアップデート処理に用いられる復号アップデートファイルF3が、揮発性メモリ(RAM)内の共有メモリ領域122に書き込まれるため、情報処理装置100の電源がOFFにされたり、再起動によって揮発性メモリの内容が初期化されたりすると、そこに書き込まれていた復号アップデートファイルF3は失われてしまうという問題が生じていた。 In other words, the embodiment shown in FIG. 5B is a modification for solving the problems of the embodiment shown in FIG. 4A. That is, in the embodiment shown in FIG. 4A, the decrypted update file F3 used for the final update process is written in the shared memory area 122 in the volatile memory (RAM). When is turned off or the contents of the volatile memory are initialized by restarting, the decrypted update file F3 written therein is lost.
 この図5(b) に示す実施例では、揮発性メモリ(RAM)内の共有メモリ領域122に書き込まれた復号アップデートファイルF3を、第1の管理プログラムMaによって不揮発性の外部メモリ400に書き出すようにし、復号アップデートファイルF3が失われないように退避する措置が取られる。したがって、上述した図5(a) の実施例と同様に、アプリケーションプログラムのアップデートのみならず、OSプログラムのアップデートにも利用することができる。 In the embodiment shown in FIG. 5B, the decryption update file F3 written in the shared memory area 122 in the volatile memory (RAM) is written to the nonvolatile external memory 400 by the first management program Ma. Then, a measure is taken to save the decryption update file F3 so as not to be lost. Therefore, similar to the embodiment of FIG. 5 (a), it can be used not only for updating the application program but also for updating the OS program.
 具体的には、この実施例の場合、図5(b) に示すとおり、内蔵メモリ120の揮発性メモリ(RAM)内に共有メモリ領域122が設けられている。また、図に破線のブロックで示されている情報処理装置100は、不揮発性の外部メモリ400(たとえば、USBメモリ)を装着して、第1のOSプログラムPaの管理下においてこの外部メモリ400に対して情報の書き込みおよび読み出しを行う機能を有している。なお、この実施例の場合、外部メモリ400に対する読み書きは、第1のOSプログラムPaの管理下もしくはブートプロセスで行われるため、図5(a) に示す実施例のように、共通アクセス領域410を設ける必要はない。 Specifically, in this embodiment, as shown in FIG. 5B, a shared memory area 122 is provided in the volatile memory (RAM) of the built-in memory 120. In addition, the information processing apparatus 100 indicated by the broken-line block in the figure has a non-volatile external memory 400 (for example, a USB memory) attached to the external memory 400 under the management of the first OS program Pa. On the other hand, it has a function of writing and reading information. In this embodiment, since reading and writing to the external memory 400 are performed under the control of the first OS program Pa or in the boot process, the common access area 410 is set as in the embodiment shown in FIG. There is no need to provide it.
 この図5(b) に示す実施例におけるアップデートの処理手順は、図4(a) に示す実施例とほぼ同じである。すなわち、まず、第1の管理プログラムMaが、受信した暗号化アップデートファイルF2を、揮発性メモリ内の共有メモリ領域122に書き込む処理を実行し、続いて、第2の管理プログラムMbが、共有メモリ領域122から暗号化アップデートファイルF2を読み出して復号し、得られた復号アップデートファイルF3を、揮発性メモリ内の共有メモリ領域122に書き込む処理を実行する。 The update processing procedure in the embodiment shown in FIG. 5 (b) is almost the same as that in the embodiment shown in FIG. 4 (a). That is, first, the first management program Ma executes a process of writing the received encrypted update file F2 to the shared memory area 122 in the volatile memory, and then the second management program Mb The encrypted update file F2 is read from the area 122 and decrypted, and the obtained decrypted update file F3 is written into the shared memory area 122 in the volatile memory.
 ただ、図4(a) に示す実施例では、この共有メモリ領域122内の復号アップデートファイルF3を用いてアップデート処理を実行することになるが、図5(b) に示す実施例では、更に、第1の管理プログラムMaが、揮発性メモリ(RAM)内の共有メモリ領域122に書き込まれた復号アップデートファイルF3を読み出した上で、これを不揮発性の外部メモリ400(たとえば、USBメモリ)に書き込む処理を実行する。したがって、CPU110は、この外部メモリ400から復号アップデートファイルF3に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことになる。 However, in the embodiment shown in FIG. 4A, the update process is executed using the decrypted update file F3 in the shared memory area 122. In the embodiment shown in FIG. The first management program Ma reads the decryption update file F3 written in the shared memory area 122 in the volatile memory (RAM) and then writes it in the nonvolatile external memory 400 (for example, a USB memory). Execute the process. Therefore, the CPU 110 reads the update program included in the decrypted update file F3 from the external memory 400 and executes the update program to execute the update process.
 不揮発性の外部メモリ400(たとえば、USBメモリ)に書き込まれた復号アップデートファイルF3は、情報処理装置100の電源がOFFにされたり、再起動されたりしても、失われることはない。したがって、この図5(b) に示す実施例も、アプリケーションプログラムのアップデートのみならず、OSプログラムのアップデートにも適した実施例ということになる。 The decryption update file F3 written in the non-volatile external memory 400 (for example, a USB memory) is not lost even if the information processing apparatus 100 is turned off or restarted. Therefore, the embodiment shown in FIG. 5B is also an embodiment suitable not only for updating the application program but also for updating the OS program.
 この図5(b) に示す実施例を採用する場合、第1の管理プログラムMaによる外部メモリ400への書き出し処理が必要になるため、アップデート処理の手順は、図3の流れ図に示す手順を若干変更する必要がある。図6は、図5(b) に示す実施例におけるアップデート処理の手順を示す流れ図である。この図6の流れ図において、ステップS1~S6までの手順は、図3の流れ図におけるステップS1~S6までの手順と全く同じである。ステップS6の実行により、暗号化アップデートファイルF2に対する復号処理が行われ、復号アップデートファイルF3が生成される。 When the embodiment shown in FIG. 5B is adopted, the first management program Ma needs to write to the external memory 400, so the update processing procedure is slightly different from the flowchart shown in FIG. Need to change. FIG. 6 is a flowchart showing the procedure of the update process in the embodiment shown in FIG. In the flowchart of FIG. 6, the procedure from steps S1 to S6 is exactly the same as the procedure from steps S1 to S6 in the flowchart of FIG. By executing step S6, the decryption process is performed on the encrypted update file F2, and the decrypted update file F3 is generated.
 図5(b) に示す実施例では、続くステップS7aにおいて、生成された復号アップデートファイルF3が揮発性メモリ内の共有メモリ領域122に書き込まれる。この書き込み処理は、第2の管理プログラムMbによって実行される。第2の管理プログラムMbにより復号アップデートファイルF3の書き込みが完了したら、ハイパーバイザープログラムPhを介して、その旨が第1の管理プログラムMaに通知される。当該通知は、第1の管理プログラムMaに対する「外部メモリへの書込要求」として機能する。 5B, in the subsequent step S7a, the generated decryption update file F3 is written into the shared memory area 122 in the volatile memory. This writing process is executed by the second management program Mb. When the writing of the decryption update file F3 is completed by the second management program Mb, the fact is notified to the first management program Ma via the hypervisor program Ph. This notification functions as a “write request to the external memory” for the first management program Ma.
 第1の管理プログラムMaは、当該通知を受け取った後、共有メモリ領域122に書き込まれている復号アップデートファイルF3を読み出し、これを不揮発性外部メモリ400に書き込む処理を行う。図6の流れ図におけるステップS7bの手順は、この書き込み処理の手順である。最後に、ステップS8において、外部メモリ400に書き込まれていた復号アップデートファイルF3に含まれているアップデート用プログラムが実行され、アップデート処理が完了する。 After receiving the notification, the first management program Ma reads the decryption update file F3 written in the shared memory area 122 and performs a process of writing it in the nonvolatile external memory 400. The procedure of step S7b in the flowchart of FIG. 6 is the procedure of this writing process. Finally, in step S8, the update program included in the decryption update file F3 written in the external memory 400 is executed, and the update process is completed.
 <<< §4. 具体的なアップデート処理の形態 >>>
 続いて、本発明に係る情報処理装置100における具体的なアップデート処理の形態を述べる。§3では、図4および図5を参照しながら、アップデート処理に用いられる復号アップデートファイルF3の具体的な書き込み態様をいくつか説明した。すなわち、復号アップデートファイルF3は、図4(a) の実施例では、揮発性メモリ(RAM)内の共有メモリ領域122に書き込まれ、図4(b) の実施例では、不揮発性メモリ(フラッシュメモリ)内の共有メモリ領域123に書き込まれ、図4(c) の実施例では、不揮発性メモリ(フラッシュメモリ)内の共有メモリ領域124bに書き込まれる。また、図5(a) ,(b) の実施例では、不揮発性外部メモリ400(たとえば、USBメモリ)に書き込まれる。
<<< §4. Specific form of update processing >>>
Next, a specific form of update processing in the information processing apparatus 100 according to the present invention will be described. In §3, with reference to FIG. 4 and FIG. 5, some specific modes of writing the decrypted update file F3 used for the update process have been described. That is, the decryption update file F3 is written in the shared memory area 122 in the volatile memory (RAM) in the embodiment of FIG. 4 (a), and the nonvolatile memory (flash memory) in the embodiment of FIG. 4 (b). In the embodiment shown in FIG. 4C, the data is written in the shared memory area 124b in the nonvolatile memory (flash memory). In the embodiment shown in FIGS. 5A and 5B, data is written in the nonvolatile external memory 400 (for example, a USB memory).
 いずれの実施例の場合も、第1の管理プログラムMa(図5(b) の例)もしくは第2の管理プログラムMb(図4(a) ,(b) ,(c) ,図5(a) の例)が、復号アップデートファイルF3を、第1のOSプログラムPaの管理下もしくはブートプロセスにおいてアクセス可能な格納場所に書き込む処理を実行している。したがって、CPU110は、第1のOSプログラムPaの管理下もしくはブートプロセスにおいて、復号アップデートファイルF3に含まれているアップデート用プログラムを実行することにより、アップデート処理を行うことが可能である。 In any of the embodiments, the first management program Ma (example of FIG. 5 (b)) or the second management program Mb (FIG. 4 (a), (b), (c), FIG. 5 (a) In the example) executes a process of writing the decryption update file F3 into a storage location accessible under the management of the first OS program Pa or in the boot process. Therefore, the CPU 110 can perform the update process by executing the update program included in the decrypted update file F3 under the management of the first OS program Pa or in the boot process.
 たとえば、アップデートの対象となるプログラムが、図1に示すアプリケーションプログラムAP1やAP2であった場合、復号アップデートファイルF3(すなわち、アップデートファイルF1)としては、第1のOSプログラムPaの管理下において実行可能なアップデート用プログラムを提供すればよい。通常、アプリケーションプログラムをアップデートする際には、再起動を行う必要がないので、図4(a) に示す実施例のように、復号アップデートファイルF3が揮発性メモリ(RAM)内の共有メモリ領域122に書き込まれていた場合でも、アプリケーションプログラムAP1やAP2のアップデートが可能である。もちろん、第1の管理プログラムMaのアップデートも同様に行うことができる。また、必要があれば、同様の方法によって、第2の管理プログラムMbのアップデートも行うことができる。 For example, if the program to be updated is the application program AP1 or AP2 shown in FIG. 1, the decrypted update file F3 (that is, the update file F1) can be executed under the management of the first OS program Pa. Provide a simple update program. Normally, when updating an application program, it is not necessary to restart, so that the decryption update file F3 is stored in the shared memory area 122 in the volatile memory (RAM) as in the embodiment shown in FIG. Even if it is written in the application program, the application programs AP1 and AP2 can be updated. Of course, the first management program Ma can be updated in the same manner. If necessary, the second management program Mb can be updated by the same method.
 一方、OSプログラムのアップデートは、当該OSプログラムを動作させた状態では行うことができないので、通常、システムを再起動させる必要がある。システムを再起動させると、通常は、揮発性メモリ(RAM)内のデータが初期化されてしまうため、図4(a) に示す実施例のように、揮発性メモリ(RAM)内の共有メモリ領域122に書き込まれていた復号アップデートファイルF3は失われてしまう。このため、一般的なOSプログラムのアップデートを行う場合には、図4(b) ,(c) ,図5(a) ,(b) に示す実施例のように、復号アップデートファイルF3を不揮発性メモリに書き込んでおくようにすればよい。 On the other hand, since the OS program cannot be updated while the OS program is operating, it is usually necessary to restart the system. Since the data in the volatile memory (RAM) is usually initialized when the system is restarted, the shared memory in the volatile memory (RAM) as in the embodiment shown in FIG. The decryption update file F3 written in the area 122 is lost. Therefore, when updating a general OS program, the decryption update file F3 is stored in a non-volatile manner as in the embodiments shown in FIGS. 4B, 4C, 5A, and 5B. What is necessary is just to write in memory.
 より具体的には、復号アップデートファイルF3に含まれているアップデート用プログラムを、情報処理装置100が起動時に実行するブート用プログラムを格納するための格納場所(いわゆる、ブートセクター)に書き込むようにする。そうすれば、CPU110が、起動時に、ブートセクターに書き込まれたアップデート用プログラムを実行するブートプロセスを行うことにより、OSプログラムのアップデート処理を行うことができる。同様の方法によって、ファームウェアのアップデートも行うことができる。 More specifically, the update program included in the decryption update file F3 is written in a storage location (so-called boot sector) for storing a boot program that is executed when the information processing apparatus 100 is started up. . Then, the CPU 110 can perform an OS program update process by performing a boot process for executing the update program written in the boot sector at the time of startup. Firmware can also be updated by a similar method.
 たとえば、図4(b) ,(c) に示す実施例において、第1のOSプログラムPaのアップデートを行う場合、不揮発性メモリに設けられた共有メモリ領域123もしくは124b内のブートセクターに復号アップデートファイルF3に含まれているアップデート用プログラムを書き込んでおくようにすればよい。そうすれば、第1のOSプログラムPaを再起動するプロセスにおいて、アップデート用プログラムを実行することができ、アップデートされた第1のOSプログラムPaを起動することができる。 For example, in the embodiment shown in FIGS. 4B and 4C, when updating the first OS program Pa, the decryption update file is stored in the boot sector in the shared memory area 123 or 124b provided in the nonvolatile memory. What is necessary is just to write the update program contained in F3. Then, in the process of restarting the first OS program Pa, the update program can be executed, and the updated first OS program Pa can be started.
 なお、複数のOSプログラムが組み込まれている装置の場合、再起動時にどちらのOSを選択するかは、ハイパーバイザープログラムの設定によって指定することができるので、上例の場合、再起動時に第1のOSプログラムPaを選択する設定にしておけば、支障は生じない。もちろん、再起動時に第2のOSプログラムPbを選択する設定にしておけば、第2のOSプログラムPbに対するアップデートを行うことも可能である。 In the case of a device incorporating a plurality of OS programs, which OS to select at the time of restart can be specified by the setting of the hypervisor program. In the above example, the first is selected at the time of restart. If the OS program Pa is set to be selected, there will be no trouble. Of course, if it is set to select the second OS program Pb at the time of restart, it is possible to update the second OS program Pb.
 <<< §5. 種々の変形例・応用例 >>>
 最後に、本発明に係る情報処理装置100の変形例や応用例を述べておく。
<<< §5. Various modifications and application examples >>>
Finally, modifications and application examples of the information processing apparatus 100 according to the present invention will be described.
 <5.1 識別情報UIDを利用した暗号鍵生成>
 §1で述べたとおり、第2の管理プログラムMbによって実行される復号処理では、アップデートサーバ200側での暗号化処理に用いられた暗号鍵Kに関連する暗号鍵K′が用いられる。ここで、暗号鍵K′は暗号鍵Kと全く同一の鍵であってもよいし、公開鍵暗号方式で利用される特定の関係をもった一対の鍵であってもよい。ここでは、識別情報UIDを用いて互いに同一の暗号鍵KおよびK′を生成する変形例を、図7のブロック図を参照しながら説明する。なお、図7では、情報処理装置100を破線のブロックで示してあるが、これは当該ブロック内に描かれている構成要素が、情報処理装置100内の一部の構成要素であることを示すためである。また、図7において、個々のプログラムを示すブロック内には、当該プログラムの処理内容や当該プログラムに用いられるデータが示されている。
<5.1 Encryption Key Generation Using Identification Information UID>
As described in §1, in the decryption process executed by the second management program Mb, the encryption key K ′ related to the encryption key K used for the encryption process on the update server 200 side is used. Here, the encryption key K ′ may be the same key as the encryption key K, or may be a pair of keys having a specific relationship used in the public key cryptosystem. Here, a modification in which the same encryption keys K and K ′ are generated using the identification information UID will be described with reference to the block diagram of FIG. In FIG. 7, the information processing apparatus 100 is indicated by a broken-line block, but this indicates that the constituent elements drawn in the block are some constituent elements in the information processing apparatus 100. Because. Further, in FIG. 7, the processing contents of the program and data used for the program are shown in the blocks indicating the individual programs.
 図示のとおり、情報処理装置100には、第2の管理プログラムMbとVPN開設アプリケーションプログラムVPN1がインストールされており、外部装置200(アップデートサーバ)には、外部装置用管理プログラムMcとVPN開設アプリケーションプログラムVPN2がインストールされている。§2で述べたとおり、プログラムVPN1,VPN2は、VPNサーバ300と協働して、情報処理装置100と外部装置200との間にVPN通信路を開設する役割を果たす。 As illustrated, the information processing apparatus 100 is installed with a second management program Mb and a VPN opening application program VPN1, and the external apparatus 200 (update server) has an external apparatus management program Mc and a VPN opening application program. VPN2 is installed. As described in §2, the programs VPN1 and VPN2 work in cooperation with the VPN server 300 to open a VPN communication path between the information processing apparatus 100 and the external apparatus 200.
 ここで、プログラムVPN1は、デバイス証明書D1,クライアント証明書C1,クライアント秘密鍵K1を用いてVPN通信路の開設処理を行い、プログラムVPN2は、デバイス証明書D2,サーバ証明書C2,サーバ秘密鍵K2を用いてVPN通信路の開設処理を行う。具体的なVPN通信路の開設処理の手順は、§2で述べたとおりである。 Here, the program VPN1 uses the device certificate D1, the client certificate C1, and the client private key K1 to open a VPN communication path, and the program VPN2 contains the device certificate D2, the server certificate C2, and the server private key. A VPN communication path establishment process is performed using K2. The specific VPN communication channel establishment processing procedure is as described in §2.
 外部装置用管理プログラムMcは、図1の外部装置200と同等の役割を果たすプログラムであり、アップデートファイルF1を暗号鍵Kを用いて暗号化して暗号化アップデートファイルF2を生成し、これをVPN通信路を介して情報処理装置100へと送信する。 The external device management program Mc is a program that plays a role equivalent to that of the external device 200 of FIG. 1, and encrypts the update file F1 using the encryption key K to generate an encrypted update file F2, which is then transmitted via VPN communication. The information is transmitted to the information processing apparatus 100 via the path.
 ただ、ここに示す実施例の場合、暗号鍵Kは識別情報UIDを利用して生成される。この識別情報UID(User Identifier)は、暗号化アップデートファイルF2の送信先となる情報処理装置100に内蔵された不揮発性メモリに記録されている情報であり、当該情報処理装置100もしくは当該情報処理装置100のユーザを特定するための情報である。具体的には、情報処理装置100に付与された固有の識別情報(たとえば、CPU110に付与されたシリアルナンバー)や、そのユーザに与えられたアカウント情報などを識別情報UIDとして用いることができる。この識別情報UIDは、情報処理装置100に内蔵された不揮発性メモリに記録されるとともに、外部装置200側にも記録されている。 However, in the embodiment shown here, the encryption key K is generated using the identification information UID. The identification information UID (User Identifier) is information recorded in a nonvolatile memory built in the information processing apparatus 100 that is the transmission destination of the encrypted update file F2, and is the information processing apparatus 100 or the information processing apparatus. This is information for identifying 100 users. Specifically, unique identification information assigned to the information processing apparatus 100 (for example, a serial number assigned to the CPU 110), account information given to the user, or the like can be used as the identification information UID. The identification information UID is recorded in a nonvolatile memory built in the information processing apparatus 100 and also on the external apparatus 200 side.
 外部装置用管理プログラムMcが、識別情報UIDを利用して暗号鍵Kを生成する暗号鍵生成アルゴリズムとしては、予め任意のアルゴリズムを定めておけばよい。たとえば、UIDを構成するデータに対して所定のハッシュ関数を作用させたハッシュ値を暗号鍵Kとするアルゴリズムを用いることが可能である。 As the encryption key generation algorithm for generating the encryption key K by using the identification information UID, the external device management program Mc may be determined in advance. For example, it is possible to use an algorithm that uses a hash value obtained by applying a predetermined hash function to data constituting the UID as an encryption key K.
 一方、情報処理装置100にインストールされている第2の管理プログラムMbも、全く同じ暗号鍵生成アルゴリズムを用いて、識別情報UIDに基づいて暗号鍵K′を生成する機能を有している。情報処理装置100に記録されている識別情報UIDと外部装置200に記録されている識別情報UIDとは同一のものであり、それぞれ同一の暗号鍵生成アルゴリズムを用いて暗号鍵の生成が行われるため、情報処理装置100側で生成された暗号鍵K′は、外部装置200側で生成された暗号鍵Kと同一の鍵になる。 On the other hand, the second management program Mb installed in the information processing apparatus 100 also has a function of generating the encryption key K ′ based on the identification information UID using the same encryption key generation algorithm. The identification information UID recorded in the information processing apparatus 100 and the identification information UID recorded in the external apparatus 200 are the same, and the encryption key is generated using the same encryption key generation algorithm. The encryption key K ′ generated on the information processing apparatus 100 side is the same key as the encryption key K generated on the external apparatus 200 side.
 §2で述べたとおり、外部装置200からVPN通信路を介して送信されてきた暗号化アップデートファイルF2は、情報処理装置100内の外部通信手段130によって受信され、第1の管理プログラムMaから共有メモリ領域121を介して第2の管理プログラムMbへと引き渡される。第2の管理プログラムMbは、内蔵された不揮発性メモリに記録されている識別情報UIDに基づいて、外部装置用管理プログラムMcで利用された暗号鍵生成アルゴリズムと同じアルゴリズムを用いて暗号鍵K′(暗号鍵Kと同一の鍵)を作成する。そして、この暗号鍵K′を用いて暗号化アップデートファイルF2に対する復号処理を行うことにより、復号アップデートファイルF3(アップデートファイルF1と同じ)が得られる。 As described in §2, the encrypted update file F2 transmitted from the external apparatus 200 via the VPN communication path is received by the external communication means 130 in the information processing apparatus 100 and shared from the first management program Ma. The data is delivered to the second management program Mb via the memory area 121. Based on the identification information UID recorded in the built-in nonvolatile memory, the second management program Mb uses the same algorithm as the encryption key generation algorithm used by the external device management program Mc to use the encryption key K ′. (The same key as the encryption key K) is created. Then, decryption update file F3 (same as update file F1) is obtained by performing decryption processing on encrypted update file F2 using this encryption key K ′.
 なお、VPN開設アプリケーションプログラムVPN1がVPN通信路の開設処理に用いるデバイス証明書D1,クライアント証明書C1,クライアント秘密鍵K1も、情報処理装置100もしくはそのユーザを特定するための識別情報として機能するので、これらの情報を識別情報UIDとして利用して秘密鍵K′を生成することも可能である。 Note that the device certificate D1, the client certificate C1, and the client private key K1 that the VPN opening application program VPN1 uses for the VPN channel establishment process also function as identification information for specifying the information processing apparatus 100 or its user. It is also possible to generate the secret key K ′ by using these pieces of information as identification information UID.
 <5.2 内蔵する不揮発性メモリのアクセス権>
 これまで述べたとおり、本発明に係る情報処理装置100には、ハイパーバイザープログラムPhの機能を利用して、第1のOSプログラムPaと第2のOSプログラムPbとが組み込まれる。そして、第1のOSプログラムPaの管理下では、当該情報処理装置100の本来の処理機能を果たすための種々の処理が、第1属性のアプリケーションプログラムによって実行される。一方、第2のOSプログラムPbの管理下では、第2属性のアプリケーションプログラムである第2の管理プログラムMbにより、暗号化アップデートファイルF2の復号処理が実行される。
<5.2 Access right of built-in nonvolatile memory>
As described above, the information processing apparatus 100 according to the present invention incorporates the first OS program Pa and the second OS program Pb using the function of the hypervisor program Ph. Then, under the management of the first OS program Pa, various processes for performing the original processing function of the information processing apparatus 100 are executed by the application program having the first attribute. On the other hand, under the management of the second OS program Pb, the decryption process of the encrypted update file F2 is executed by the second management program Mb which is the application program having the second attribute.
 このように、暗号化アップデートファイルF2の復号処理を、わざわざ第2のOSプログラムPbの管理下で行うのは、セキュアな環境下で復号処理が行われるようにするためである。すなわち、本発明の基本概念は、第1のOSプログラムPaの実行環境がマルウェアによって悪影響を受けた場合にも、暗号化アップデートファイルF2の復号処理が実行される第2のOSプログラムPbの実行環境をセキュアな状態に維持する点にある。 Thus, the reason why the decryption process of the encrypted update file F2 is purposely performed under the management of the second OS program Pb is to perform the decryption process in a secure environment. That is, the basic concept of the present invention is that the execution environment of the second OS program Pb in which the decryption process of the encrypted update file F2 is executed even when the execution environment of the first OS program Pa is adversely affected by malware. Is in a secure state.
 そのためには、第2のOSプログラムPbの実行環境(セキュアな環境)が、できる限り第1のOSプログラムPaの実行環境(ノンセキュアな環境)から影響を受けないようにするのが好ましい。そこで実用上は、第1のOSプログラムPaの管理下でアクセス可能なメモリ領域と第2のOSプログラムPbの管理下でアクセス可能なメモリ領域について、次のようなアクセス権の設定を行うのが好ましい。 For this purpose, it is preferable that the execution environment (secure environment) of the second OS program Pb is not affected by the execution environment (non-secure environment) of the first OS program Pa as much as possible. Therefore, in practice, the following access rights are set for the memory area accessible under the management of the first OS program Pa and the memory area accessible under the management of the second OS program Pb. preferable.
 図8は、情報処理装置100に内蔵されている不揮発性メモリ(フラッシュメモリ)のメモリ空間を示す図である。まず、このメモリ空間に、図示のとおり第1の領域A1(図の白地領域)と第2の領域A2(図のハッチング領域)とを定義する。図示の例の場合、2つの領域A1,A2のみが定義されているため、全メモリ空間は、2つの領域A1,A2に分割されることになる。そして、これらの領域A1,A2について、次のようなアクセス権を設定する。 FIG. 8 is a diagram showing a memory space of a nonvolatile memory (flash memory) built in the information processing apparatus 100. First, in this memory space, a first area A1 (white area in the figure) and a second area A2 (hatched area in the figure) are defined as shown. In the example shown in the figure, since only two areas A1 and A2 are defined, the entire memory space is divided into two areas A1 and A2. Then, the following access rights are set for these areas A1 and A2.
 まず、第1のOSプログラムPaおよび第1属性のアプリケーションプログラムAP1,AP2,Maは、第1の領域A1に対するアクセスのみが可能であり、第2の領域A2へのアクセスは禁じられるようにする。具体的には、第1のOSプログラムPaおよび第1属性のアプリケーションプログラムAP1,AP2,Maには、第1の領域A1が内蔵不揮発性メモリの全メモリ空間であるとの認識がなされるような設定を行えばよい。 First, the first OS program Pa and the application program AP1, AP2, Ma having the first attribute can only access the first area A1, and access to the second area A2 is prohibited. Specifically, the first OS program Pa and the first attribute application programs AP1, AP2, Ma recognize that the first area A1 is the entire memory space of the built-in nonvolatile memory. You only have to set it.
 そして、図示のとおり、第1のOSプログラムPaおよび第1属性のアプリケーションプログラムAP1,AP2,Maを構成するプログラム自体は、第1の領域A1に格納しておくようにし、これら各プログラムPa,AP1,AP2,Maが用いる第1属性のデータも、第1の領域A1に記録するようにする。また、暗号化アップデートファイルF2や復号アップデートファイルF3の受け渡し場所として利用される共有メモリ領域を、内蔵不揮発性メモリ内に設ける実施例を採用する場合は、この共有メモリ領域も、第1の領域A1内に設けておく。 As shown in the figure, the program itself constituting the first OS program Pa and the first attribute application programs AP1, AP2, Ma is stored in the first area A1, and each of these programs Pa, AP1 is stored. , AP2, Ma also records the first attribute data used in the first area A1. When the embodiment in which the shared memory area used as the delivery location of the encrypted update file F2 and the decryption update file F3 is provided in the built-in nonvolatile memory, the shared memory area is also the first area A1. Keep it inside.
 一方、第2のOSプログラムPaおよび第2属性のアプリケーションプログラムMbは、第1の領域A1および第2の領域A2の双方に対するアクセスが可能になるようにする。結局、図示の例の場合は、第2のOSプログラムPaおよび第2属性のアプリケーションプログラムMbは、内蔵不揮発性メモリの全メモリ空間に対してアクセスを行うことができる。 On the other hand, the second OS program Pa and the application program Mb having the second attribute are allowed to access both the first area A1 and the second area A2. As a result, in the example shown in the figure, the second OS program Pa and the application program Mb having the second attribute can access the entire memory space of the built-in nonvolatile memory.
 そして、図示のとおり、ハイパーバイザープログラムPh、第2のOSプログラムPb、第2属性のアプリケーションプログラムMb(第2の管理プログラム)を構成するプログラム自体は、第2の領域A2に格納しておくようにし、これら各プログラムPh,Pb,Mbが用いる第2属性のデータも、第2の領域A2に記録するようにする。この第2属性のデータには、第2の管理プログラムMbが復号処理に用いる暗号鍵K′もしくは暗号鍵K′の生成に利用される識別情報UIDが含まれている。 Then, as shown in the drawing, the program itself constituting the hypervisor program Ph, the second OS program Pb, and the second attribute application program Mb (second management program) is stored in the second area A2. The second attribute data used by each of the programs Ph, Pb, and Mb is also recorded in the second area A2. The second attribute data includes the encryption key K ′ used for the decryption process by the second management program Mb or the identification information UID used for generating the encryption key K ′.
 なお、図8には、ハイパーバイザープログラムPhをフラッシュメモリに格納する例を示したが、ハイパーバイザープログラムPhは、ROMに格納するようにしてもかまわない(たとえば、前述した「FOXvisor」なる製品では、ハイパーバイザープログラムPhは、CPU110と同一のチップのROM内に格納されている)。 Although FIG. 8 shows an example in which the hypervisor program Ph is stored in the flash memory, the hypervisor program Ph may be stored in the ROM (for example, in the above-described product “FOXvisor”). The hypervisor program Ph is stored in the ROM of the same chip as the CPU 110).
 上述したようなアクセス権を設定しておけば、第1のOSプログラムPaおよび第1属性のアプリケーションプログラムAP1,AP2,Maにとっては、第1の領域A1が全メモリ空間であり、第2の領域A2(図のハッチング領域)は、その存在すら認識できない領域ということになる。したがって、この情報処理装置100を第1のOSプログラムPaの管理下で動作させている最中に、悪意をもった者の攻撃を受けてマルウェアに感染したとしても、当該マルウェアの影響は第1の領域A1内にとどまり、第2の領域A2に影響が及ぶことを防ぐことができる。 If the access right as described above is set, for the first OS program Pa and the application program AP1, AP2, Ma having the first attribute, the first area A1 is the entire memory space, and the second area A2 (hatched area in the figure) is an area where even its existence cannot be recognized. Therefore, even if the information processing apparatus 100 is operated under the control of the first OS program Pa and is infected with malware by being attacked by a malicious person, the influence of the malware is first. It is possible to prevent the second region A2 from being affected by staying within the region A1.
 もちろん、第2のOSプログラムPaおよび第2属性のアプリケーションプログラムMb(第2の管理プログラム)は、第2の領域A2のみならず第1の領域A1に対してもアクセスが可能であるが、本発明の実施にあたり、第2の管理プログラムMbが第1の領域A1に対してアクセスする必要があるのは、暗号化アップデートファイルF2や復号アップデートファイルF3の受け渡しのために共有メモリ領域に対するアクセスを行う場合だけであり、この共有メモリ領域に対するアクセスによって第2の領域A2にマルウェアの影響が及ぶ可能性は非常に低い。 Of course, the second OS program Pa and the second attribute application program Mb (second management program) can access not only the second area A2 but also the first area A1, In carrying out the invention, the second management program Mb needs to access the first area A1 because it accesses the shared memory area for delivery of the encrypted update file F2 and the decryption update file F3. It is only a case, and it is very unlikely that the second area A2 is affected by the access to the shared memory area.
 このため、第2のOSプログラムPbや第2属性のアプリMbがマルウェアの影響を受ける可能性は非常に低い。また、第2属性のデータである暗号鍵K′や識別情報UIDがマルウェアの影響を受ける可能性も非常に低い。このように、第1の領域A1がノンセキュア領域であるのに対して、第2の領域A2はセキュア領域として機能する。そして、第2の管理プログラムMbによる暗号化アップデートファイルF2の復号処理は、このセキュア領域で実行される。したがって、本発明によれば、セキュアな環境下でのアップデートが可能になる。 For this reason, the possibility that the second OS program Pb and the application Mb having the second attribute are affected by malware is very low. In addition, the possibility that the encryption key K ′ and the identification information UID, which are data of the second attribute, are affected by malware is very low. Thus, while the first area A1 is a non-secure area, the second area A2 functions as a secure area. Then, the decryption process of the encrypted update file F2 by the second management program Mb is executed in this secure area. Therefore, according to the present invention, it is possible to update in a secure environment.
 <5.3 ホームゲートウェイ装置への応用>
 最後に、本発明をホームゲートウェイ装置に応用した実施例を述べておく。近年、IoT(Internet of Things)の考え方に基づき、家庭内の電子機器をホームゲートウェイ装置を介してインターネットに接続する形態が急速に普及してゆくものと予想されている。ホームゲートウェイ装置は、公衆回線網と家庭内ネットワークとを仲介する役割を果たし、一般的なブロードバンドルータの機能に加え、電話やFAXの信号などをやりとりする機能も備わった家庭用の情報処理装置である。
<5.3 Application to home gateway device>
Finally, an embodiment in which the present invention is applied to a home gateway device will be described. In recent years, based on the idea of IoT (Internet of Things), it is expected that a form in which home electronic devices are connected to the Internet via a home gateway device will rapidly spread. The home gateway device serves as an intermediary between the public network and the home network, and is an information processing device for home use that has functions for exchanging telephone and fax signals in addition to the functions of a general broadband router. is there.
 このホームゲートウェイ装置も、CPUと、メモリと、外部通信手段と、を備えた情報処理装置であり、所定のOSプログラムやアプリケーションプログラムを実行することにより、その機能を果たすことができる。したがって、導入後も、各プログラムをアップデートする必要が生じるが、家庭用の情報処理装置であるため、高度なセキュリティ対策を講じることは困難であり、アップデート時にマルウェアによる被害が頻発することが危惧される。 This home gateway device is also an information processing device including a CPU, a memory, and external communication means, and can perform its function by executing a predetermined OS program or application program. Therefore, it will be necessary to update each program after installation, but since it is a home-use information processing device, it is difficult to take advanced security measures, and it is feared that malware damage will occur frequently during the update .
 本発明は、このようなホームゲートウェイ装置に応用するのに適した技術である。図9は、本発明に係る情報処理装置を、ホームゲートウェイ装置として利用した実施例を示すブロック図である。この例では、本発明に係る情報処理装置がホームゲートウェイ装置100として利用されている。このホームゲートウェイ装置100は、家庭内ネットワークに接続されたセンサ、監視カメラ、パソコン、TV、録画機器、照明、スマートメータなどの様々な機器と、インターネットとを仲介する役割を果たす。 The present invention is a technique suitable for application to such a home gateway device. FIG. 9 is a block diagram showing an embodiment in which the information processing apparatus according to the present invention is used as a home gateway apparatus. In this example, the information processing apparatus according to the present invention is used as the home gateway apparatus 100. The home gateway device 100 plays a role of mediating various devices such as sensors, surveillance cameras, personal computers, TVs, recording devices, lighting, smart meters, and the like connected to the home network and the Internet.
 このホームゲートウェイ装置100として、本発明に係る情報処理装置を用いるようにすれば、図示のとおり、外部装置として機能するアップデートサーバ200にインターネットを介して接続し、内蔵されているOSプログラムやアプリケーションプログラムをアップデートすることが可能である。しかも、本発明によれば、セキュアな環境下でアップデートを行うことが可能になり、アップデート時にマルウェアによる被害を受ける危険性を低減することができる。 If the information processing apparatus according to the present invention is used as the home gateway apparatus 100, as shown in the figure, it is connected to the update server 200 functioning as an external apparatus via the Internet, and a built-in OS program or application program Can be updated. Moreover, according to the present invention, it is possible to perform the update in a secure environment, and the risk of being damaged by malware during the update can be reduced.
 本発明は、CPUとメモリと外部通信手段とを備え、外部装置から受信したアップデートファイルを用いてプログラムのアップデート処理を行う情報処理装置に広く利用することができる。具体的には、パソコン、スマートフォン、タブレット端末などの電子機器や、ホームゲートウェイ装置のような装置にも利用することが可能である。 The present invention can be widely used in an information processing apparatus that includes a CPU, a memory, and external communication means, and performs a program update process using an update file received from an external apparatus. Specifically, it can also be used for electronic devices such as personal computers, smartphones, tablet terminals, and devices such as home gateway devices.
100:情報処理装置(ホームゲートウェイ装置)
110:CPU
120:メモリ
121:共有メモリ領域
122:共有メモリ領域(揮発性メモリ内の領域)
123:共有メモリ領域(不揮発性メモリ内の領域)
124:共有メモリ領域(揮発性および不揮発性メモリ内の領域)
124a:共有メモリ領域(揮発性メモリ内の領域)
124b:共有メモリ領域(不揮発性メモリ内の領域)
130:外部通信手段
200:外部装置(アップデートサーバ)
300:VPNサーバ
400:外部メモリ(不揮発性メモリ)
410:共通アクセス領域
A1:第1の領域
A2:第2の領域
AP1,AP2:第1属性のアプリケーションプログラム
C1:クライアント証明書
C2:サーバ証明書
D1:デバイス証明書
D2:デバイス証明書
F1:アップデートファイル
F2:暗号化アップデートファイル
F3:復号アップデートファイル
K,K′:暗号鍵
K1:クライアント秘密鍵
K2:サーバ秘密鍵
Ma:第1の管理プログラム(第1属性のアプリケーションプログラム)
Mb:第2の管理プログラム(第2属性のアプリケーションプログラム)
Mc:外部装置用管理プログラム
Pa:第1のOSプログラム
Pb:第2のOSプログラム
Ph:ハイパーバイザープログラム
S1~S8:流れ図の各ステップ
UID:情報処理装置もしくはそのユーザの識別情報
VPN1,VPN2:VPN(Virtual Private Network)開設アプリケーションプログラム
100: Information processing device (home gateway device)
110: CPU
120: Memory 121: Shared memory area 122: Shared memory area (area in volatile memory)
123: Shared memory area (area in nonvolatile memory)
124: Shared memory area (area in volatile and non-volatile memory)
124a: Shared memory area (area in volatile memory)
124b: shared memory area (area in nonvolatile memory)
130: External communication means 200: External device (update server)
300: VPN server 400: External memory (nonvolatile memory)
410: common access area A1: first area A2: second area AP1, AP2: application program C1: first attribute C1: client certificate C2: server certificate D1: device certificate D2: device certificate F1: update File F2: Encryption update file F3: Decryption update file K, K ′: Encryption key K1: Client secret key K2: Server secret key Ma: First management program (application program having the first attribute)
Mb: second management program (second-attribute application program)
Mc: management program for external device Pa: first OS program Pb: second OS program Ph: hypervisor programs S1 to S8: steps in the flowchart UID: identification information of the information processing device or its user VPN1, VPN2: VPN (Virtual Private Network) established application program

Claims (17)

  1.  CPU(110)と、メモリ(120)と、外部通信手段(130)と、を備えた情報処理装置(100)であって、
     前記メモリ(120)には、前記CPU(110)に実行させる第1のOSプログラム(Pa)および第2のOSプログラム(Pb)と、前記第1のOSプログラム(Pa)の管理下において前記CPU(110)に実行させる第1属性のアプリケーションプログラム(AP1,AP2,Ma)と、前記第2のOSプログラム(Pb)の管理下において前記CPU(110)に実行させる第2属性のアプリケーションプログラム(Mb)と、前記CPU(110)に前記第1のOSプログラム(Pa)および前記第2のOSプログラム(Pb)を並列実行させる処理を行うハイパーバイザープログラム(Ph)と、が格納されており、
     前記第1属性のアプリケーションプログラムには、アップデート処理を管理する第1の管理プログラム(Ma)が含まれており、前記第2属性のアプリケーションプログラムには、アップデート処理を管理する第2の管理プログラム(Mb)が含まれており、
     前記メモリ(120)の記憶領域には、前記第1のOSプログラム(Pa)の管理下と前記第2のOSプログラム(Pb)の管理下との双方においてアクセス可能な共有メモリ領域(121)が設けられており、
     前記外部通信手段(130)は、外部装置(200)から送信されてきた、所定の暗号鍵(K)を用いて暗号化された暗号化アップデートファイル(F2)を、前記第1のOSプログラム(Pa)の管理下で受信する機能を有し、
     前記第1の管理プログラム(Ma)は、前記外部通信手段(130)が受信した前記暗号化アップデートファイル(F2)を前記共有メモリ領域(121)に書き込む処理を実行し、
     前記第2の管理プログラム(Mb)は、前記共有メモリ領域(121)に書き込まれた前記暗号化アップデートファイル(F2)を読出し、前記暗号鍵(K)もしくは前記暗号鍵(K)に関連する暗号鍵を用いて、前記暗号化アップデートファイル(F2)を復号することにより復号アップデートファイル(F3)を生成する復号処理を実行し、生成した前記復号アップデートファイル(F3)を所定の格納場所に書き込む処理を実行することを特徴とする情報処理装置。
    An information processing apparatus (100) comprising a CPU (110), a memory (120), and an external communication means (130),
    The memory (120) includes a first OS program (Pa) and a second OS program (Pb) to be executed by the CPU (110), and the CPU under the control of the first OS program (Pa). The first attribute application program (AP1, AP2, Ma) to be executed by (110) and the second attribute application program (Mb) to be executed by the CPU (110) under the control of the second OS program (Pb). ) And a hypervisor program (Ph) that performs processing for causing the CPU (110) to execute the first OS program (Pa) and the second OS program (Pb) in parallel,
    The first attribute application program includes a first management program (Ma) for managing update processing, and the second attribute application program includes a second management program for managing update processing ( Mb) is included,
    The storage area of the memory (120) includes a shared memory area (121) that can be accessed both under the management of the first OS program (Pa) and under the management of the second OS program (Pb). Provided,
    The external communication means (130) receives an encrypted update file (F2) encrypted from a predetermined encryption key (K) transmitted from the external device (200) by using the first OS program ( Pa) has the function of receiving under the management of
    The first management program (Ma) executes a process of writing the encrypted update file (F2) received by the external communication unit (130) into the shared memory area (121),
    The second management program (Mb) reads the encrypted update file (F2) written in the shared memory area (121), and performs encryption related to the encryption key (K) or the encryption key (K). Processing for generating a decryption update file (F3) by decrypting the encrypted update file (F2) using a key, and writing the generated decryption update file (F3) to a predetermined storage location An information processing apparatus characterized by executing
  2.  請求項1に記載の情報処理装置において、
     第1の管理プログラム(Ma)は、外部通信手段(130)が、第1のOSプログラム(Pa)もしくは第1属性のアプリケーションプログラム(AP1,AP2,Ma)に対するアップデート処理を実行するための暗号化アップデートファイル(F2)を受信したときに、受信した前記暗号化アップデートファイル(F2)を共有メモリ領域(121)に書き込み、
     第2の管理プログラム(Mb)は、前記暗号化アップデートファイル(F2)を復号することにより復号アップデートファイル(F3)を生成し、これを所定の格納場所に書き込み、
     CPU(110)が、前記復号アップデートファイル(F3)に含まれているアップデート用プログラムを実行することにより、前記第1のOSプログラム(Pa)もしくは前記第1属性のアプリケーションプログラム(AP1,AP2,Ma)に対するアップデート処理を行うことを特徴とする情報処理装置。
    The information processing apparatus according to claim 1,
    The first management program (Ma) is encrypted so that the external communication means (130) executes an update process for the first OS program (Pa) or the first attribute application program (AP1, AP2, Ma). When the update file (F2) is received, the received encrypted update file (F2) is written to the shared memory area (121),
    The second management program (Mb) generates a decrypted update file (F3) by decrypting the encrypted update file (F2), writes the decrypted update file (F3) in a predetermined storage location,
    When the CPU (110) executes the update program included in the decryption update file (F3), the first OS program (Pa) or the first attribute application program (AP1, AP2, Ma) An information processing apparatus for performing update processing on
  3.  請求項2に記載の情報処理装置において、
     メモリ(120)として、揮発性メモリと不揮発性メモリとを内蔵しており、
     前記揮発性メモリは、CPU(110)がプログラムを実行する際の作業領域として利用され、
     前記不揮発性メモリには、第1のOSプログラム(Pa)と、第2のOSプログラム(Pb)と、第1属性のアプリケーションプログラム(AP1,AP2,Ma)と、第2属性のアプリケーションプログラム(Mb)と、ハイパーバイザープログラム(Ph)と、が格納されていることを特徴とする情報処理装置。
    The information processing apparatus according to claim 2,
    As the memory (120), a volatile memory and a non-volatile memory are incorporated,
    The volatile memory is used as a work area when the CPU (110) executes a program,
    The nonvolatile memory includes a first OS program (Pa), a second OS program (Pb), a first attribute application program (AP1, AP2, Ma), and a second attribute application program (Mb). ) And a hypervisor program (Ph) are stored.
  4.  請求項3に記載の情報処理装置において、
     揮発性メモリに共有メモリ領域(122)が設けられており、
     第1の管理プログラム(Ma)が、暗号化アップデートファイル(F2)を、前記揮発性メモリ内の共有メモリ領域(122)に書き込む処理を実行し、
     第2の管理プログラム(Mb)が、復号アップデートファイル(F3)を、前記揮発性メモリ内の共有メモリ領域(122)に書き込む処理を実行し、
     CPU(110)が、前記揮発性メモリから前記復号アップデートファイル(F3)に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことを特徴とする情報処理装置。
    The information processing apparatus according to claim 3.
    A volatile memory is provided with a shared memory area (122),
    The first management program (Ma) executes a process of writing the encrypted update file (F2) to the shared memory area (122) in the volatile memory,
    The second management program (Mb) executes a process of writing the decryption update file (F3) to the shared memory area (122) in the volatile memory,
    An information processing apparatus, wherein the CPU (110) reads an update program contained in the decrypted update file (F3) from the volatile memory and executes the update program to execute the update process.
  5.  請求項3に記載の情報処理装置において、
     不揮発性メモリに共有メモリ領域(123)が設けられており、
     第1の管理プログラム(Ma)が、暗号化アップデートファイル(F2)を、前記不揮発性メモリ内の共有メモリ領域(123)に書き込む処理を実行し、
     第2の管理プログラム(Mb)が、復号アップデートファイル(F3)を、前記不揮発性メモリ内の共有メモリ領域(123)に書き込む処理を実行し、
     CPU(110)が、前記不揮発性メモリから前記復号アップデートファイル(F3)に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことを特徴とする情報処理装置。
    The information processing apparatus according to claim 3.
    A shared memory area (123) is provided in the nonvolatile memory,
    The first management program (Ma) executes a process of writing the encrypted update file (F2) to the shared memory area (123) in the nonvolatile memory,
    The second management program (Mb) executes a process of writing the decryption update file (F3) to the shared memory area (123) in the nonvolatile memory,
    An information processing apparatus, wherein the CPU (110) reads an update program included in the decryption update file (F3) from the nonvolatile memory and executes the update program to execute the update program.
  6.  請求項3に記載の情報処理装置において、
     揮発性メモリと不揮発性メモリとの双方に共有メモリ領域(124)が設けられており、
     第1の管理プログラム(Ma)が、暗号化アップデートファイル(F2)を、前記揮発性メモリ内の共有メモリ領域(124a)に書き込む処理を実行し、
     第2の管理プログラム(Mb)が、復号アップデートファイル(F3)を、前記不揮発性メモリ内の共有メモリ領域(124b)に書き込む処理を実行し、
     CPU(110)が、前記不揮発性メモリから前記復号アップデートファイル(F3)に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことを特徴とする情報処理装置。
    The information processing apparatus according to claim 3.
    A shared memory area (124) is provided in both the volatile memory and the nonvolatile memory,
    The first management program (Ma) executes a process of writing the encrypted update file (F2) to the shared memory area (124a) in the volatile memory,
    The second management program (Mb) executes a process of writing the decryption update file (F3) to the shared memory area (124b) in the nonvolatile memory,
    An information processing apparatus, wherein the CPU (110) reads an update program included in the decryption update file (F3) from the nonvolatile memory and executes the update program to execute the update program.
  7.  請求項3に記載の情報処理装置において、
     揮発性メモリに共有メモリ領域(122)が設けられており、
     前記情報処理装置は、不揮発性の外部メモリ(400)を装着して、この外部メモリ(400)に対して情報の書き込みおよび読み出しを行う機能を有しており、
     前記外部メモリ(400)の少なくとも一部の記憶領域は、第1のOSプログラム(Pa)の管理下と第2のOSプログラム(Pb)の管理下との双方においてアクセスが可能な共通アクセス領域(410)になっており、
     第1の管理プログラム(Ma)が、暗号化アップデートファイル(F2)を、前記揮発性メモリ内の共有メモリ領域(122)に書き込む処理を実行し、
     第2の管理プログラム(Mb)が、復号アップデートファイル(F3)を、前記外部メモリ(400)の前記共通アクセス領域(410)に書き込む処理を実行し、
     CPU(110)が、前記外部メモリ(400)の前記共通アクセス領域(410)から前記復号アップデートファイル(F3)に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことを特徴とする情報処理装置。
    The information processing apparatus according to claim 3.
    A volatile memory is provided with a shared memory area (122),
    The information processing apparatus has a function of mounting a nonvolatile external memory (400) and writing and reading information to and from the external memory (400).
    At least a part of the storage area of the external memory (400) is a common access area (accessible both under the management of the first OS program (Pa) and under the management of the second OS program (Pb)). 410)
    The first management program (Ma) executes a process of writing the encrypted update file (F2) to the shared memory area (122) in the volatile memory,
    The second management program (Mb) executes a process of writing the decryption update file (F3) into the common access area (410) of the external memory (400),
    The CPU (110) reads the update program contained in the decrypted update file (F3) from the common access area (410) of the external memory (400), and executes the update process by executing the program. An information processing apparatus characterized by the above.
  8.  請求項3に記載の情報処理装置において、
     揮発性メモリに共有メモリ領域(122)が設けられており、
     前記情報処理装置は、不揮発性の外部メモリ(400)を装着して、第1のOSプログラム(Pa)の管理下において前記外部メモリ(400)に対して情報の書き込みおよび読み出しを行う機能を有しており、
     第1の管理プログラム(Ma)が、暗号化アップデートファイル(F2)を、前記揮発性メモリ内の共有メモリ領域(122)に書き込む処理を実行し、
     第2の管理プログラム(Mb)が、復号アップデートファイル(F3)を、前記揮発性メモリ内の共有メモリ領域(122)に書き込む処理を実行し、
     第1の管理プログラム(Ma)が、前記揮発性メモリ内の共有メモリ領域(122)に書き込まれた復号アップデートファイル(F3)を読み出した上で、これを前記外部メモリ(400)に書き込む処理を実行し、
     CPU(110)が、前記外部メモリ(400)から前記復号アップデートファイル(F3)に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことを特徴とする情報処理装置。
    The information processing apparatus according to claim 3.
    A volatile memory is provided with a shared memory area (122),
    The information processing apparatus has a function of mounting a nonvolatile external memory (400) and writing / reading information to / from the external memory (400) under the control of the first OS program (Pa). And
    The first management program (Ma) executes a process of writing the encrypted update file (F2) to the shared memory area (122) in the volatile memory,
    The second management program (Mb) executes a process of writing the decryption update file (F3) to the shared memory area (122) in the volatile memory,
    The first management program (Ma) reads the decrypted update file (F3) written in the shared memory area (122) in the volatile memory and then writes the decrypted update file (F3) in the external memory (400). Run,
    An information processing apparatus, wherein the CPU (110) reads an update program contained in the decrypted update file (F3) from the external memory (400) and executes the update program to execute an update process.
  9.  請求項3~8のいずれかに記載の情報処理装置において、
     内蔵された不揮発性メモリには、当該情報処理装置もしくは当該情報処理装置のユーザを特定するための識別情報(UID)が記録されており、
     外部通信手段(130)は、前記識別情報(UID)を利用して生成された暗号鍵(K)を用いて暗号化された暗号化アップデートファイル(F2)を受信する機能を有し、
     第2の管理プログラム(Mb)は、前記識別情報(UID)を利用して生成された暗号鍵(K′)を用いて暗号化アップデートファイル(F2)の復号を行うことを特徴とする情報処理装置。
    The information processing apparatus according to any one of claims 3 to 8,
    In the built-in nonvolatile memory, identification information (UID) for specifying the information processing apparatus or the user of the information processing apparatus is recorded,
    The external communication means (130) has a function of receiving an encrypted update file (F2) encrypted using an encryption key (K) generated using the identification information (UID),
    The second management program (Mb) performs decryption of the encrypted update file (F2) using the encryption key (K ′) generated using the identification information (UID). apparatus.
  10.  請求項3~9のいずれかに記載の情報処理装置において、
     内蔵された不揮発性メモリのメモリ空間には、第1の領域(A1)と第2の領域(A2)とが定義されており、
     第1のOSプログラム(Pa)および第1属性のアプリケーションプログラム(AP1,AP2,Ma)は、前記第1の領域(A1)に対するアクセスのみが可能であり、第2のOSプログラム(Pb)および第2属性のアプリケーションプログラム(Mb)は、前記第1の領域(A1)および前記第2の領域(A2)の双方に対するアクセスが可能であることを特徴とする情報処理装置。
    The information processing apparatus according to any one of claims 3 to 9,
    In the memory space of the built-in nonvolatile memory, a first area (A1) and a second area (A2) are defined,
    The first OS program (Pa) and the first attribute application program (AP1, AP2, Ma) can only access the first area (A1), and the second OS program (Pb) and the first OS program (Pb) An information processing apparatus characterized in that a two-attribute application program (Mb) can access both the first area (A1) and the second area (A2).
  11.  請求項10に記載の情報処理装置において、
     第2の管理プログラム(Mb)が復号処理に用いる暗号鍵(K′)、もしくは当該暗号鍵の生成に利用される情報(UID)が、不揮発性メモリの第2の領域(A2)に格納されていることを特徴とする情報処理装置。
    The information processing apparatus according to claim 10,
    The encryption key (K ′) used for the decryption process by the second management program (Mb) or the information (UID) used to generate the encryption key is stored in the second area (A2) of the nonvolatile memory. An information processing apparatus characterized by that.
  12.  請求項1~11のいずれかに記載の情報処理装置において、
     第1の管理プログラム(Ma)もしくは第2の管理プログラム(Mb)が、復号アップデートファイル(F3)に含まれているアップデート用プログラムを、情報処理装置が起動時に実行するブート用プログラムを格納するための格納場所に書き込む処理を実行し、
     CPU(110)が、起動時に、前記アップデート用プログラムを実行することにより、アップデート処理を行うことを特徴とする情報処理装置。
    The information processing apparatus according to any one of claims 1 to 11,
    The first management program (Ma) or the second management program (Mb) stores a boot program that the information processing apparatus executes when starting the update program included in the decryption update file (F3) Execute the process of writing to the storage location of
    An information processing apparatus, wherein the CPU (110) performs an update process by executing the update program at the time of startup.
  13.  請求項1~11のいずれかに記載の情報処理装置において、
     第1の管理プログラム(Ma)もしくは第2の管理プログラム(Mb)が、復号アップデートファイル(F3)に含まれているアップデート用プログラムを、第1のOSプログラム(Pa)の管理下においてアクセス可能な格納場所に書き込む処理を実行し、
     CPU(110)が、前記第1のOSプログラム(Pa)の管理下において、前記アップデート用プログラムを実行することにより、アップデート処理を行うことを特徴とする情報処理装置。
    The information processing apparatus according to any one of claims 1 to 11,
    The first management program (Ma) or the second management program (Mb) can access the update program included in the decryption update file (F3) under the management of the first OS program (Pa). Execute the process of writing to the storage location,
    An information processing apparatus, wherein a CPU (110) performs an update process by executing the update program under the management of the first OS program (Pa).
  14.  請求項1~13のいずれかに記載の情報処理装置において、
     第1属性のアプリケーションプログラムには、外部装置(200)との間にVPN通信路を開設する処理を行うVPN開設アプリ(VPN1)が含まれており、
     外部通信手段(130)は、暗号化アップデートファイル(F2)を前記VPN通信路を介して受信することを特徴とする情報処理装置。
    The information processing apparatus according to any one of claims 1 to 13,
    The application program of the first attribute includes a VPN opening application (VPN1) that performs processing for opening a VPN communication path with the external device (200),
    The external communication means (130) receives the encrypted update file (F2) via the VPN communication path.
  15.  請求項1~14のいずれかに記載の情報処理装置において、
     第1の管理プログラム(Ma)が第1のOSプログラム(Pa)に組み込まれているか、もしくは、第2の管理プログラム(Mb)が第2のOSプログラム(Pb)に組み込まれているか、または、その双方であることを特徴とする情報処理装置。
    The information processing apparatus according to any one of claims 1 to 14,
    The first management program (Ma) is incorporated in the first OS program (Pa), the second management program (Mb) is incorporated in the second OS program (Pb), or An information processing apparatus characterized by being both of them.
  16.  請求項1~14のいずれかに記載の情報処理装置における第1の管理プログラム(Ma)および第2の管理プログラム(Mb)の双方を含むコンピュータプログラム。 A computer program including both the first management program (Ma) and the second management program (Mb) in the information processing apparatus according to any one of claims 1 to 14.
  17.  請求項1~15のいずれかに記載の情報処理装置を含むホームゲートウェイ装置。 A home gateway device including the information processing device according to any one of claims 1 to 15.
PCT/JP2016/084386 2016-11-21 2016-11-21 Information processing device WO2018092289A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018550982A JP6741236B2 (en) 2016-11-21 2016-11-21 Information processing equipment
PCT/JP2016/084386 WO2018092289A1 (en) 2016-11-21 2016-11-21 Information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/084386 WO2018092289A1 (en) 2016-11-21 2016-11-21 Information processing device

Publications (1)

Publication Number Publication Date
WO2018092289A1 true WO2018092289A1 (en) 2018-05-24

Family

ID=62145355

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/084386 WO2018092289A1 (en) 2016-11-21 2016-11-21 Information processing device

Country Status (2)

Country Link
JP (1) JP6741236B2 (en)
WO (1) WO2018092289A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022506633A (en) * 2018-11-09 2022-01-17 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Wireless upgrade method and related equipment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011118873A (en) * 2009-11-30 2011-06-16 Intel Corp Automated modular and secure boot firmware update
JP2014503101A (en) * 2011-01-19 2014-02-06 インターナショナル・ビジネス・マシーンズ・コーポレーション Method and system for updating and authenticating code, method and system for testing program integrity

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011118873A (en) * 2009-11-30 2011-06-16 Intel Corp Automated modular and secure boot firmware update
JP2014503101A (en) * 2011-01-19 2014-02-06 インターナショナル・ビジネス・マシーンズ・コーポレーション Method and system for updating and authenticating code, method and system for testing program integrity

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022506633A (en) * 2018-11-09 2022-01-17 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Wireless upgrade method and related equipment
US11947673B2 (en) 2018-11-09 2024-04-02 Huawei Technologies Co., Ltd. Over-the-air upgrade method and related apparatus

Also Published As

Publication number Publication date
JPWO2018092289A1 (en) 2019-10-10
JP6741236B2 (en) 2020-08-19

Similar Documents

Publication Publication Date Title
KR102434444B1 (en) Method and Apparatus for Device Security Verification Utilizing a Virtual Trusted Computing Base
CN109858265B (en) Encryption method, device and related equipment
CN108810894B (en) Terminal authorization method, device, computer equipment and storage medium
TWI598814B (en) System and method for managing and diagnosing a computing device equipped with unified extensible firmware interface (uefi)-compliant firmware
EP2913956B1 (en) Management control method and device for virtual machines
US9768951B2 (en) Symmetric keying and chain of trust
JP5497171B2 (en) System and method for providing a secure virtual machine
US8291480B2 (en) Trusting an unverified code image in a computing device
Chen et al. {cTPM}: A cloud {TPM} for {Cross-Device} trusted applications
WO2019218919A1 (en) Private key management method and apparatus in blockchain scenario, and system
US20150095652A1 (en) Encryption and decryption processing method, apparatus, and device
CN107077567B (en) Identifying security boundaries on computing devices
JP2010537270A (en) Virtual token for implicit self-installing security environment
US10045212B2 (en) Method and apparatus for providing provably secure user input/output
US10747885B2 (en) Technologies for pre-boot biometric authentication
WO2022126644A1 (en) Model protection device, method, and computing device
JP2017041145A (en) Processor and processor system
US20150047001A1 (en) Application program execution device
CN114296873B (en) Virtual machine image protection method, related device, chip and electronic equipment
EP3221996B1 (en) Symmetric keying and chain of trust
CN113485785A (en) Method for realizing virtualized trusted platform module, security processor and storage medium
CN112182669A (en) System and method for storing data records to be protected
WO2018092289A1 (en) Information processing device
KR101711024B1 (en) Method for accessing temper-proof device and apparatus enabling of the method
US10824766B2 (en) Technologies for authenticated USB device policy enforcement

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018550982

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16921787

Country of ref document: EP

Kind code of ref document: A1