WO2024005143A1 - 演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラム - Google Patents

演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラム Download PDF

Info

Publication number
WO2024005143A1
WO2024005143A1 PCT/JP2023/024185 JP2023024185W WO2024005143A1 WO 2024005143 A1 WO2024005143 A1 WO 2024005143A1 JP 2023024185 W JP2023024185 W JP 2023024185W WO 2024005143 A1 WO2024005143 A1 WO 2024005143A1
Authority
WO
WIPO (PCT)
Prior art keywords
arithmetic processing
program
secure
hypervisor
processing device
Prior art date
Application number
PCT/JP2023/024185
Other languages
English (en)
French (fr)
Inventor
真啓 小塚
智也 川西
健司 大平
Original Assignee
セーラ・ネットワークス株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by セーラ・ネットワークス株式会社 filed Critical セーラ・ネットワークス株式会社
Priority to JP2023546151A priority Critical patent/JP7412835B1/ja
Publication of WO2024005143A1 publication Critical patent/WO2024005143A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Definitions

  • the present invention relates to an arithmetic processing device, an arithmetic processing system, an arithmetic processing method, and an arithmetic processing program.
  • Patent Document 1 discloses a computer system that can scan all code groups stored in a storage space allocated to a virtual computer used by a client.
  • a special virtual machine that is hidden from the client is prepared outside the general virtual machine used by the client, and the special virtual machine is configured to remove data from the storage space allocated to the general virtual machine. Scan the read code group.
  • Patent Document 2 describes a virtual computer system that can enforce security policies on a guest OS and applications running on the guest OS without installing a special agent on the guest OS.
  • a security policy applied to the virtual computer system includes a setting item information holding unit that holds setting item information consisting of setting values of setting items depending on the type of guest OS or the type of application; a setting detection means for monitoring commands executed by the guest OS and output of the physical device to detect a setting value set in a setting item of the setting item information holding means or a setting value about to be changed;
  • the setting application means applies the setting value indicated by the setting item information to the guest OS or application to which the setting item is set. Equipped with a hypervisor.
  • the scanner includes an assister that reads a code group from the storage space of a general virtual machine and an engine that scans the read code group.
  • the assist is executed on the hypervisor. For this reason, since the code group in the storage space of a general virtual machine is managed by the hypervisor, a secure environment can be maintained for users of the general virtual machine if the hypervisor is a reliable system. On a general network, it is difficult to maintain a secure environment because the hypervisors in all virtual computer systems are not necessarily reliable.
  • the hypervisor when the setting value detected by the setting detection means and the setting value indicated by the setting item information are different, the hypervisor , is equipped with a setting application means that applies the setting value indicated by the setting item information, and can enforce the security policy on the guest OS and applications running on the guest OS, but the hypervisor It is assumed that the system is reliable. However, as described above, on a general network, the hypervisors in all virtual computer systems are not necessarily reliable, making it difficult for guest OS users to maintain a secure environment.
  • an object of the present invention is to provide an environment in which an arithmetic processing device, an arithmetic processing system, an arithmetic processing method, or an arithmetic processing program can be securely processed even in a system where the hypervisor is unreliable.
  • the arithmetic processing device is an arithmetic processing device that can acquire a secure program from the outside, and includes hardware that includes at least a CPU, an input/output device, and a storage device, and that manages the hardware. and one or more virtual processing devices provided with a virtual processing environment by the hypervisor, the virtual processing devices having at least a guest OS and a memory, Transferring a boot loader from the outside to the memory for each virtual processing device in a form in which the hardware can be used only by the virtual processing device, and the boot loader starts the secure program in the virtual processing device. It is characterized by
  • the arithmetic processing device is characterized in that, in the arithmetic processing device according to the first aspect, the boot loader acquires at least one of the guest OS, the secure program, or the secure hypervisor. shall be.
  • the arithmetic processing device is characterized in that, in the arithmetic processing device according to the second aspect, the guest OS is obtained and started by the boot loader.
  • the arithmetic processing device is characterized in that the guest OS acquires the secure program in the arithmetic processing device according to the third aspect.
  • the arithmetic processing device is characterized in that the guest OS acquires a secure hypervisor as the secure program in the arithmetic processing device according to the fourth aspect.
  • the arithmetic processing device in the arithmetic processing device according to the first aspect, at least one of the guest OS, the secure program, or the secure hypervisor is transferred together with the transfer of the boot loader. It is characterized by
  • the virtual arithmetic processing device is managed by the secure hypervisor, and the secure hypervisor receives information from an external information providing device. It is characterized by managing such that arithmetic processing is performed within the range of usage conditions defined by additional information attached to the acquired provision information.
  • the secure program includes a secure hypervisor, an OS, a game, a processing infrastructure for data science, an AI, and a system that is configured to prevent reverse engineering.
  • the invention is characterized by being a program that includes at least one of the following programs that have intellectual property value.
  • An arithmetic processing system is an arithmetic processing system including at least the arithmetic processing device according to the first aspect and a management server that manages the arithmetic processing device, wherein the management server
  • the present invention is characterized in that it includes at least a secure program management section that manages the secure program provided to the virtual processing device.
  • a tenth aspect of the present invention is an arithmetic processing method using an arithmetic processing device capable of acquiring a secure program from the outside, wherein the arithmetic processing device includes a hardware including at least a CPU, an input/output device, and a storage device. a hypervisor that manages the hardware; and one or more virtual processing devices provided with a virtual processing environment by the hypervisor, and the virtual processing device has a guest OS; a step of transferring a boot loader from the outside to the memory for each virtual processing device in a form in which the hardware can be used only by the virtual processing device;
  • the apparatus is characterized in that it includes the step of activating the secure program in the apparatus.
  • the arithmetic processing method according to an eleventh aspect of the present invention is the arithmetic processing method according to the tenth aspect, in which the secure program includes a secure hypervisor, an OS, a game, a data science processing infrastructure, an AI, and a program that is intended to prevent reverse engineering.
  • the invention is characterized by being a program that includes at least one of the following programs that have intellectual property value.
  • the arithmetic processing program according to the twelfth aspect of the present invention is characterized in that each step of the arithmetic processing method according to the tenth or eleventh aspect is executed by a computer.
  • a secure computing environment can be provided even in a system where the hypervisor is unreliable.
  • FIG. 1 is an overall block diagram of an information providing system.
  • FIG. 2 is an explanatory diagram of the operation of the information providing system.
  • FIG. 3 is an explanatory diagram of the operation of the virtual processing device.
  • FIG. 2 is a block diagram of an arithmetic processing device.
  • FIG. 3 is a flow diagram for downloading a secure program.
  • FIGS. 1 to 5 An arithmetic processing device, an arithmetic processing system, an arithmetic processing method, and an arithmetic processing program according to a first embodiment of the present invention will be described with reference to FIGS. 1 to 5.
  • a virtual arithmetic processing device 50 that performs arithmetic processing under the secure hypervisor 24 will be described as an example of an arithmetic processing system using FIGS. 1 to 3.
  • the secure hypervisor 24 will be described as an example of the secure program 54; however, the present invention is not limited to this, and as described in the second embodiment, the secure hypervisor 24 may be used as the secure program 54.
  • the secure program 54 includes various programs such as the OS itself, games, etc.
  • FIG. 1 is an overall block diagram of the arithmetic processing system.
  • the arithmetic processing system includes an information providing apparatus 10, an arithmetic processing apparatus 20, and a management server 30, and the information providing apparatus 10, arithmetic processing apparatus 20, and management server 30 are each interconnected by an information network 40.
  • One or more information providing devices 10 and one or more arithmetic processing devices 20 are provided.
  • FIG. 2 is an explanatory diagram of the operation of the arithmetic processing system.
  • the information providing device 10 includes a verification data creation section 11 and a database 12.
  • the verification data creation unit 11 and the database 12 are interconnected, and information in the database 12 can be provided to the arithmetic processing device 20 via the verification data creation unit 11.
  • the verification data creation unit 11 is configured by a CPU (not shown) based on an information providing device program provided from the secure program management unit 31 of the management server 30 in response to data request information from the data request unit 22 of the arithmetic processing unit 20. Through the calculation, verification data and verification calculation result data used for verification of the calculation process are output as described later. In addition, the verification data creation unit 11 similarly uses a CPU according to a program for the information providing device based on data usage restriction information set in advance by an input/output means (not shown) or stored in the database 12, for example. The authority list data for the arithmetic processing device 20 is created by the calculation.
  • the verification data creation unit 11 accesses the database 12 in accordance with the information providing device program to obtain requested data, that is, data that is actually used in calculations by the arithmetic processing device 20 . Then, the verification data creation unit 11 transmits these data as provided information to the program verification unit 23 of the arithmetic processing device 20.
  • the arithmetic processing device 20 includes one or more virtual arithmetic processing devices 50, as described below.
  • the virtual arithmetic processing device 50 includes an arithmetic processing program execution section 21, a data request section 22, and a program verification section 23.
  • the arithmetic processing program execution section 21, data request section 22, and program verification section 23 are all managed by a secure hypervisor 24.
  • the secure hypervisor 24 is a system that exclusively uses the resources managed by the OS (here, the guest OS 51 of the virtual processing unit 50), so that other people are not allowed to use them, such as viewing them. In other words, it refers to a program that manages the OS under a controlled environment.
  • the secure hypervisor 24 is employed as an example of the secure program 54, which will be described later.
  • the secure program 54 is a program executed under a secure virtual environment. For example, based on the arithmetic processing device program provided by the secure program management section 31, resources managed by the OS can be exclusively managed. For example, in the case of a virtual processing system like the one shown in FIG. By installing it, a controlled environment can be maintained by the management server 30 and a secure virtual processing device 50 can be provided.
  • the arithmetic processing program execution unit 21 requests the data requesting unit 22 to send data requested by the arithmetic processing program to the information providing device 10, and in response to this request, the information providing device 10 sends the requested data to the program verification unit 23.
  • the provided information including the information will be sent.
  • the program verification section 23 the arithmetic processing program is verified, and if the arithmetic processing program is appropriate, the requested data is provided to the arithmetic processing program execution section 21.
  • Both the data request unit 22 and the program verification unit 23 are managed by the secure hypervisor 24 according to the program for the arithmetic processing unit, and the data request unit 22 performs arithmetic processing on data request information and programs in a secure OS environment.
  • Various arithmetic processes such as program verification by the verification unit 23 and processing of providing request data to the arithmetic processing program are executed by the virtual arithmetic processing device 50.
  • the processing in the arithmetic processing program execution unit 21 is similarly executed by the virtual arithmetic processing device 50 equipped with a secure OS (guest OS 51) environment.
  • the information providing device 10 and the virtual processing device 50 are connected to the management server 30, and the programs of the verification data creation unit 11 of the information providing device 10 and the secure hypervisor 24 of the virtual processing device 50 are connected to the secure hypervisor 24 of the management server 30. These programs are provided by the program management section 31 and are managed by the secure program management section 31. As a result, the arithmetic processing system provides and utilizes information in a controlled environment on the information providing platform.
  • the secure program management unit 31 also manages algorithms for data encryption, decryption, and digital signatures when communicating between the information providing device 10 and the arithmetic processing device 20 .
  • the data requesting unit 22 creates data request information for requesting each information providing device 10 for request data required by the arithmetic processing program. .
  • the verification data creation unit 11 creates verification data for verifying the target arithmetic processing program.
  • the arithmetic processing program to be processed executed by the arithmetic processing program execution unit 21 is, for example, a Rust program such as the following arithmetic processing program P1.
  • the arithmetic processing program P1 is an example of linear regression analysis, and performs linear regression using the method of least squares (OLS) on requested data (data group).
  • the data request information includes information on the request data for performing linear regression using the least squares method, which is an instruction regarding the request data, as well as information on the arithmetic processing program P1 as the arithmetic program to be processed, such as a source program. Contains information. Note that the information on the arithmetic processing program is not limited to only the source program, but also information that can specify the relationship between the output and the input, such as information that can be used directly from dedicated hardware whose processing content has been verified and confirmed in advance. Any information may be used as long as it can grasp the processing content of the arithmetic processing program, such as connecting such hardware in series.
  • data request information is transmitted from the data request unit 22 to the verification data creation unit 11 of the information providing device 10. It is desirable that the data request information be encrypted according to a protocol managed by the secure program management section 31.
  • the verification data creation in the verification data creation unit 11 in (3) above will be explained in detail.
  • the verification data creation section 11 if the data request information is encrypted, it is decrypted according to a protocol managed by the secure program management section 31.
  • the verification data creation unit 11 generates information for defining the range of arithmetic processing allowed for the arithmetic processing program to be processed in the arithmetic processing device 20 .
  • the verification data creation unit 11 analyzes the processing content of the arithmetic processing program attached to the data request information, generates information necessary for verifying whether the arithmetic processing program is appropriate, and adds it to the provided information. . Therefore, the following information is included in the provided information sent from the verification data creation section 11 to the program verification section 23.
  • Authority information that defines the range of arithmetic processing allowed for the arithmetic processing program in the arithmetic processing unit 20 and usage restriction conditions, such as an authority list
  • Verification data c
  • Request data data used in actual calculation
  • provided information including request data and additional information defining the range of arithmetic processing allowed for the arithmetic processing program is transmitted from the verification data creation unit 11 to the program verification unit 23 of the arithmetic processing unit 20.
  • the above (a) may also be encrypted.
  • by adding an electronic signature to the provided information falsification can be more reliably prevented.
  • the processing of the program verification unit 23 in (5) above will be explained in detail.
  • the program verification unit 23 uses the above (b) and (c) included in the provided information to determine the result when the processing program to be data processed is executed using the verification data in (b) above. , it is verified whether or not it matches the verification calculation result data used for the calculation processing verification in (c) above.
  • the processing device 20 saves the calculation results. However, storing the request data itself separately is not permitted. Therefore, when the processing program for data processing is executed using the verification data in (b) above, it is verified whether data storage is within the scope of the authorization list.
  • the secure hypervisor 24 of the virtual processing device 50 is always operated in a controlled environment by a program provided by the secure program management section 31. Therefore, the arithmetic processing of the arithmetic processing program executed in the program verification section 23 and the arithmetic processing program execution section 21 of the virtual processing device 50 can be constantly monitored by the secure hypervisor 24, and data storage, transfer, Processing details such as deletion are always known. For this reason, in the arithmetic processing system of this embodiment, when the processing program for data processing is executed using the verification data in (b) above, it is necessary to appropriately check whether data storage is within the scope of the authorization list. It is possible to verify this.
  • the result when the program verification unit 23 executes the target calculation processing program using the verification data in (b) above matches the verification calculation result data used in the calculation processing verification in (c) above.
  • the processing program for data processing is executed using the verification data in (b) above, it is determined that the processing program does not perform processing beyond the scope permitted by the authority information in (a) above.
  • the arithmetic processing program to be processed is determined to be appropriate, that is, it is authenticated as an appropriate arithmetic processing program.
  • the request data in (d) above is provided to the arithmetic processing program, and in the arithmetic processing program execution unit 21, the arithmetic processing program performs actual calculation using the requested data. .
  • FIG. 3 is an explanatory diagram of the operation of the virtual processing device 50.
  • the data request section 22, program verification section 23, arithmetic processing program execution section 21, memory 25, and other input/output devices (not shown) are all processed in an environment managed by the secure hypervisor 24.
  • a state in which all operations of the guest OS 51 can be managed by the secure hypervisor 24, that is, a secure execution environment for the guest OS 51 can be realized.
  • the operational explanatory diagram of the virtual processing device 50 in FIG. 3 is an example of the present embodiment, and the OS can be secured using various other configurations.
  • the function 28 sends and receives all data 29 via the library 27.
  • a library-only area is virtually provided in the memory 25 that can be accessed only by the library 27.
  • request data obtained through the program verification unit 23 is stored in the library-only area in the memory 25. Ru.
  • data 29 is stored in a library exclusive area within the memory 25.
  • Function 28 can access request data stored in a library-only area within memory 25. Then, the function 28 receives the data 29 in the memory 25 via the library 27. The function 28 uses the received data 29 to perform calculations according to the function 28 by the CPU of the arithmetic processing unit 20 .
  • the function 28 After the calculation of the function 28 is completed, only the final calculation result list by the calculation processing program is provided to the user, and the data 29 used during the calculation in the data 29 area in the memory 25 is completely deleted.
  • the method for completely deleting the data 29 is not particularly limited, but any suitable method such as filling all the data with "0" can be used.
  • the function 28 provides only a list of calculation results to the user.
  • the function 28 sends and receives all the data 29 via the library 27 under the complete management of the secure hypervisor 24, so the function 28 sends and receives all the data 29 through the library 27, so that the Request data and data 29 in the middle of calculation are not left in the area, and the request data is stored only in the library 27 in a state that can be managed by the secure hypervisor 24. Therefore, the secure hypervisor 24 can use the requested data within the scope of authority defined in the authority list received from the information providing device 10 and can reliably manage the requested data within the library 27. Furthermore, as described above, the data 29 in the library dedicated area in the memory 25 can be completely deleted.
  • the operation of the arithmetic processing device 20 can be managed by the secure hypervisor 24 by virtualizing the application used in the computation of the arithmetic processing program execution unit 21. It is also possible. In this case, after the calculation by the application starts and before the application calls the requested data, the application make it work. Next, when the application outputs the calculation results, the secure hypervisor 24 provides the user with only a list of the calculation results, and after deleting the request data and the data 29 in the middle of the calculation, the application leaves the secure environment. The operation of the arithmetic processing device 20 is returned to the normal arithmetic environment.
  • the secure hypervisor 24 monitors whether the application is within the range of authority defined in the authority list received from the information providing device 10 in order to manage the application in a secure environment. In other words, output to the console is restricted, writing to files, network communication, etc. are prohibited according to the provisions of the permission list. Further, by using, for example, an authenticated GPU, only the calculation results can be presented to the user under the management of the secure hypervisor 24.
  • each program is authenticated
  • this embodiment is not limited to this.
  • multiple programs may be authenticated in advance and multiple authenticated programs may be combined. It is also possible to perform calculations.
  • FIG. 4 is a block diagram of the arithmetic processing device 20.
  • the arithmetic processing device 20 includes one or more virtual arithmetic processing devices 50, a hypervisor 60, and hardware 61.
  • the hypervisor 60 manages the hardware 61 of the arithmetic processing unit 20 and provides the virtual arithmetic processing unit 50 with an arithmetic processing environment as a virtual physical environment.
  • the hardware 61 is a hardware resource of the arithmetic processing unit 20 including at least a CPU, an input/output device, and a storage device.
  • the arithmetic processing device 20 includes a host OS 62 and an administrator user interface 63. Note that the arithmetic processing device 20 also includes a user interface and the like for the virtual arithmetic processing device 50, but these are not shown.
  • the virtual processing device 50 includes a guest OS 51, a memory 52, and a secure hypervisor 24. Further, the memory 52 stores a boot loader 53 and a secure program 54. The boot loader 53 is for acquiring the secure program 54, and receives information from the secure program management unit 31 without being monitored by the hypervisor 60, that is, without the content of the information being read by the hypervisor 60 (the same applies hereinafter). It is transferred to the memory 52 using the functions of the hardware 61. Note that the boot loader 53 can have the same contents for each guest OS 51.
  • the secure program 54 is a program executed under a secure virtual environment. Although not particularly limited, in this embodiment, a case where the secure hypervisor 24 is employed as the secure program 54 will be described as an example. Furthermore, since the memory 52 is encrypted using the functions of the hardware 61, the hypervisor 60, host OS 62, administrator user interface 63, and other virtual processing devices 50 cannot read or write its contents. .
  • the guest OS 51 is encrypted using the first public key, obtained from the secure program management unit 31 by the boot loader 53, decrypted using the first private key, and activated.
  • the first secret key is a secret key that is built into the boot loader 53 to obtain the guest OS.
  • the secure program 54 is encrypted using the second public key, is acquired from the secure program management unit 31 by the guest OS 51, and is decrypted using the second private key.
  • the second secret key is a secret key included in the guest OS 51 in order to obtain the secure program 54. Then, the secure hypervisor 24 is activated by starting the secure program 54.
  • the guest OS 51 acquires information from the information providing device 10 managed by the management server 30, and the virtual processing device 50 uses the information within the range of information usage conditions approved in advance.
  • the arithmetic processing is executed within the scope of the request data and the additional information that defines the range of arithmetic processing allowed by the arithmetic processing program and the conditions for usage restrictions.
  • the hardware 61 including the CPU of the arithmetic processing unit 20 is reliable.
  • reliable means, for example, that it can be trusted as something that will not be tampered with or leaked (the same applies hereinafter).
  • the hypervisor 60 of the arithmetic processing device 20 is not necessarily reliable, in this embodiment, even in an environment where the hypervisor 60 is not reliable, the secure hypervisor 24 can be safely and securely installed in each virtual arithmetic processing device 50. A means of installation can be provided.
  • FIG. 5 is a flow diagram for downloading the secure program 54.
  • the secure hypervisor 24 of the virtual processing device 50 is acquired from the secure program management unit 31 and activated.
  • the secure hypervisor 24 of the virtual processing device 50 is activated by using encrypted communication that cannot be read by the hypervisor 60. It is necessary to install it on the corresponding virtual processing device 50.
  • Step 1 Procedures with the management server 30 (S1)
  • the provided information is used in the arithmetic processing device 20 while managing the provided information provided by the information providing device 10 so that it is not misused. Execute calculation processing and make it possible to utilize the calculation results.
  • the administrator of the arithmetic processing device 20 sends the hardware information to the management server 30 by inputting from the administrator user interface 63 in order to install the boot loader 53 and the secure hypervisor 24 in each virtual arithmetic processing device 50. 61 is registered in the secure program management section 31 (S1).
  • the secure program management unit 31 can determine whether the hardware 61 is authentic. For example, in a CPU having a function of encrypting the memory 52 for each virtual processing unit 50, specifically, AMD's SEV, the public key of the hardware 61 (CPU) is registered. Information for registering the hardware 61 is sent from the administrator user interface 63 to the secure program management unit 31 via the hypervisor 60 and the hardware 61.
  • Step 2 Transferring the bootloader 53 (S2-S3)
  • the administrator of the arithmetic processing device 20 requests the secure program management section 31 to transfer the boot loader 53 from the administrator user interface 63 via the hypervisor 60 and the hardware 61.
  • the hypervisor 60 requests the secure program management unit 31 to transfer the boot loader 53 via the hardware 61 using the public key of the hardware 61 .
  • the secure program management unit 31 transfers the boot loader 53 to the memory 52 via the hardware 61 and hypervisor 60.
  • the transfer process of the boot loader 53 is performed in a manner that the hypervisor 60 cannot read the contents of the transfer request of the boot loader 53.
  • the transfer information of the boot loader 53 is encrypted in a form that can be used only by the virtual processing unit 50, for example, in a form that can only be read by the executing hardware 61, so it includes the first secret key.
  • the contents of the program cannot be read by the hypervisor 60. Therefore, the boot loader 53 can be transferred from the secure program management unit 31 to the memory 52 using the functions of the hardware 61 without being monitored by the hypervisor 60.
  • the data is transferred to the memory 52, the present embodiment is not limited to this, and the data may be stored in, for example, a hard disk. If the data is stored in a hard disk or the like, there is no need to repeat the transfer of the boot loader 53 every time the virtual processing device 50 is started.
  • Step 3 Encryption of memory 52 (S4-S5)
  • a request is made from the administrator user interface 63 to the hardware 61 via the hypervisor 60 to start the virtual processing device 50.
  • the hardware 61 encrypts the memory 52 according to a command from the hypervisor 60.
  • the hypervisor 60 instructs the hardware 61 to encrypt the memory 52 for each virtual processing unit 50.
  • the hardware 61 encrypts the memory 52 for each virtual processing unit 50.
  • the memory 52 is automatically encrypted using a different encryption key for each virtual processing device 50.
  • the hypervisor 60 cannot read the encryption key used for encryption regarding the command to encrypt the memory 52.
  • the memory transfer request in S5 is 52 encryption, or if the boot loader 53 is already stored in a hard disk or the like, there is no need to read the boot loader 53 again each time the virtual processing device 50 is started.
  • Step 4 Deploying the boot loader 53 to each memory 52 (S6)
  • the hardware 61 transfers the boot loader 53 to the memory 52 in S6 after S5. Expand each time.
  • the hypervisor 60 cannot read the program of the boot loader 53 that includes the first secret key developed for each memory 52.
  • the boot loader 53 is transferred to the memory 52 using the functions of the hardware 61, and in S6, the boot loader 53 is expanded to each memory 52 using the functions of the hardware 61.
  • the information transferred in response to the activation request of the virtual processing unit 50 is encrypted in a form that can be used only by the virtual processing unit 50, for example, in a form that can only be read by the hardware 61 that is executing it. Therefore, the contents of the program including the first private key cannot be read by the hypervisor 60. Therefore, without being monitored by the hypervisor 60, the boot loader 53 can be transferred from the secure program management unit 31 to the memory 52 using the functions of the hardware 61, and expanded in each memory 52.
  • the execution state of one virtual processing unit 50 possessed by the CPU of the hardware 61 is saved, and the execution state of a virtual processing unit 50 owned by the CPU of the hardware 61 is saved and You can use the Migration function that allows you to run .
  • this migration function even in the case of a virtual processing device 50 whose memory 52 is encrypted, its contents can be expanded to the memory 52 of another virtual processing device 50.
  • the CPU is AMD's SEV
  • it supports the migration function and the administrator of the arithmetic processing unit 20 can transfer the bootloader 53 to the memory 52 as an SEV function without being monitored by the hypervisor 60.
  • the boot loader 53 can be expanded in each memory 52 for each virtual processing device 50.
  • the SEV Migration function the boot loader 53 is encrypted for each hardware 61 during transfer, and can create an encrypted memory image for each virtual processing unit 50 of the boot loader 53.
  • the contents of the same memory 52 can be expanded to all virtual processing units 50 in the device 20 in an encrypted form for each virtual processing unit 50.
  • the hardware 61 boots up the boot loader 53 developed in the memory 52 for each virtual processing device 50.
  • Step 4 Launching guest OS 51 (S7-S8)
  • the boot loader 53 transmits a request to start up the guest OS 51 to the secure program management section 31.
  • a request to start up the guest OS 51 is transmitted from the boot loader 53 to the secure program management section 31 via the hardware 61.
  • the secure program management section 31 transfers the guest OS 51 to the memory 52.
  • the guest OS 51 is transmitted from the secure program management section 31 to the memory 52 via the hardware 61.
  • the boot loader 53 boots up the guest OS 51 for each virtual processing device 50 using the first secret key.
  • the encrypted communication when the secure program management unit 31 transfers the guest OS 51 to the memory 52 is encrypted using the first public key and cannot be decrypted without the first private key, so it cannot be monitored by the hypervisor.
  • TLS1.3 can be used for this encrypted communication.
  • Step 5 Acquisition of secure program 54 (S9-S10)
  • the guest OS 51 obtains the secure program 54 from the secure program management section 31 through encrypted communication using the second secret key, and stores it in the memory 52.
  • the guest OS 51 transmits a request to acquire the secure program 54 to the secure program management unit 31 via the hardware 61.
  • the secure program management unit 31 transmits the secure program 54 to the memory 52 via the hardware 61 in S10.
  • the encrypted communication when transferring the secure program 54 is encrypted using the second public key, and since the secure program 54 is stored in the encrypted memory 52, the virtual processing device 50 is connected to the hypervisor 60.
  • the secure program 54 can be acquired without being monitored by. For example, TLS1.3 can be used for this encrypted communication.
  • Step 6 Starting the secure hypervisor 24 (S11-S12)
  • the guest OS 51 starts the secure program 54 acquired in step 5 and stored in the memory 52, and in S12, the secure hypervisor 24 is executed. is enabled.
  • FIG. 4 is a block diagram when the secure hypervisor 24 is enabled.
  • the guest OS 51 acquires provided information from the information providing device 10 managed by the management server 30 through encrypted communication using a secret key, and complies with the usage conditions specified by the additional information. Perform calculations within the range.
  • the virtual arithmetic processing device 50 is provided with the arithmetic processing program execution section 21, the data requesting section 22, and the program verification section 23, as explained in FIG. The acquisition and arithmetic processing of the provided information are performed under the management of the secure hypervisor 24.
  • the secure hypervisor 24 is installed on the virtual processing device 50.
  • the migration function and encryption function of the CPU of the hardware 61 a secure environment is constructed using the secure hypervisor 24 in each virtual processing unit 50, even if the processing unit 20 is equipped with an unreliable hypervisor 60. can do.
  • public key cryptography is used for encryption, the hassle of password management can be eliminated.
  • the public key and private key can be freely set in the secure program management section 31.
  • TLS1.3 communication can be used for encrypted communication. This is a communication that allows two-way authentication.
  • the management server 30 side has a private key, it is guaranteed that the management server 30 itself is an authentic management server while the public key is widely disclosed.
  • the guest OS 51 side has the secret key, it is guaranteed that the guest OS 51 itself is an authentic OS. Therefore, compared to the case where public key cryptography is not used, password management such as distribution of one-time passwords can be omitted.
  • the second secret key is further held within the cryptographic wall of the first secret key, a highly reliable virtual processing device 50 can be provided. That is, when the boot loader 53 starts up the guest OS 51, the guest OS 51 transferred from the secure program management unit 31 to the memory 52 includes the second private key, is encrypted with the first public key, and is encrypted with the first public key. 1. Cannot be decrypted without private key. When the guest OS 51 downloads the secure program 54, communication encrypted using the second public key is used and cannot be decrypted without the second private key. At the time of transferring the boot loader 53, a first secret key has been distributed to the virtual processing device 50, and this first secret key is protected in the encrypted memory 52.
  • the secure program management unit 31 transfers the boot loader 53 to the memory 52 in S2 and S3, but the present embodiment is not limited to this procedure. At least one of the guest OS 51, the secure program 54, and the secure hypervisor 24 may also be transferred. Similarly, when such programs are transferred, they are not monitored by the hypervisor 60, so even if the hypervisor 60 is in an unreliable environment, each program (bootloader) can be safely transferred to each virtual processing unit 50. 53, guest OS 51, secure program 54, secure hypervisor 24, etc.) can be transferred to the memory 52. Furthermore, if other programs are transferred simultaneously with the transfer of the boot reader 53, the subsequent steps are not necessarily limited to steps 3 to 6 above, and the hypervisor 60 may monitor the program transfer. Any procedure can be used unless otherwise specified.
  • the secure program 54 includes the OS itself, games, data science processing infrastructure, AI, programs containing intellectual property value that is desired to be prevented from reverse engineering, etc.
  • the processing infrastructure of data science includes data collection, data accumulation, data processing, data analysis, and the like.
  • AI examples include machine learning and the like.
  • programs that contain intellectual property value that you want to prevent from reverse engineering are those that include inventions in the algorithms used in the program, and those that include inventions or copyrights in the data structure used in the program.
  • data used in the program contains trade secrets or information protected by unfair competition law, or contains machine learning trained models or training data, etc., and the program itself or A program in which the data used by the program includes inventions, copyrights, trade secrets, information protected by the Unfair Competition Prevention Act, etc.
  • the secure program 54 is the OS itself, it is possible to start up the OS using the same steps as S1 to S8 in the first embodiment. Furthermore, if the secure program 54 is a game, a data science processing platform, AI, a program that includes intellectual property value that would prevent reverse engineering, etc., the same steps as S1 to S10 in the first embodiment are performed. Then, the secure program 54 can be transferred to the memory 52.
  • step 4 in S7, the boot loader 53 transmits a startup request to the guest OS 51 to the secure program management unit 31, and the guest OS 51 first receives the request from the secure program management unit 31.
  • the boot loader 53 may transfer the secure program 54 or the secure hypervisor 24 simultaneously with the transfer of the guest OS 51 or instead of transferring the guest OS 51. That is, although the first embodiment has been described as transferring the secure program 54 after starting the guest OS 51, starting the guest OS 51 and the procedure thereof are not necessarily essential, and the boot loader 53 can transfer any secure program.
  • the program 54 can be transferred, and the transfer of the secure program 54 is not monitored by the hypervisor 60 as in the first embodiment. Therefore, even if the hypervisor 60 is in an unreliable environment, it is possible to safely transfer the secure program 54 to the memory 52 of each virtual processing device 50.

Landscapes

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

Abstract

ハイパバイザが信頼できないシステムにおいても、セキュアな演算処理環境を提供すること。本発明の1つの実施形態に係る演算処理装置は、外部からセキュアプログラムを取得可能な演算処理装置であって、CPU、入出力装置及び記憶装置を少なくとも含むハードウェアと、前記ハードウェアを管理するハイパバイザと、前記ハイパバイザにより仮想的な演算処理環境を提供された1つ以上の仮想演算処理装置と、を少なくとも備え、前記仮想演算処理装置が、ゲストOSと、メモリと、を少なくとも有し、前記ハードウェアが前記仮想演算処理装置のみから利用できる形で、外部から仮想演算処理装置毎に前記メモリにブートローダを転送し、前記ブートローダが、前記セキュアプログラムを取得し、前記仮想演算処理装置において、当該セキュアプログラムを起動することを特徴とする。

Description

演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラム
 本発明は、演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラムに関する。
 従来、ハイパバイザを用いて複数の仮想計算機を動作させる計算機システムが知られている。特許文献1には、クライアントから利用される仮想計算機に割り当てられている記憶空間に格納された全てのコード群をスキャンできる計算機システムが開示されている。特許文献1記載の計算機システムでは、クライアントから利用される一般仮想計算機の外部に、クライアントに対して隠蔽される特殊仮想計算機が用意され、特殊仮想計算機が一般仮想計算機に割り当てられている記憶空間から読み出されたコード群をスキャンする。
 また、特許文献2には、ゲストOS上に特別なエージェントを設置することなしに、ゲストOSやゲストOS上で動作しているアプリケーションに対してセキュリティポリシの強制を行うことができる仮想計算機システムが開示されている。特許文献2記載の仮想計算機システムでは、仮想計算機システムに適用されるセキュリティポリシがゲストOSの種類またはアプリケーションの種類に応じた設定項目の設定値からなる設定項目情報を保持する設定項目情報保持手段、ゲストOSが実行する命令および物理デバイスの出力を監視して、設定項目情報保持手段の設定項目に設定されている設定値または変更されようとしている設定値を検出する設定検出手段、及び、設定検出手段によって検出された設定値と設定項目情報で示される設定値とが相違するとき、設定項目の設定対象であるゲストOSまたはアプリケーションに、設定項目情報で示される設定値を適用させる設定適用手段をハイパバイザが備えている。
特開2010-055318号公報 国際公開第2009/081530号
 上記特許文献1に記載の仮想計算機システムでは、スキャナが、一般仮想計算機の記憶空間からコード群を読み出すアシストと、読み出されたコード群をスキャンするエンジンとで構成され、エンジンが、特殊仮想計算機で実行され、アシストが、ハイパバイザで実行される。このため、一般仮想計算機の記憶空間にあるコード群がハイパバイザにより管理されるため、一般仮想計算機の利用者にとって、ハイパバイザが信頼できるシステムであることが前提であればセキュア環境が維持されるが、一般的なネットワーク上において、全ての仮想計算機システムにおけるハイパバイザが信頼できるとは限らないため、セキュア環境を維持することは困難である。
 上記特許文献2に記載の仮想計算機システムでは、ハイパバイザが設定検出手段によって検出された設定値と設定項目情報で示される設定値とが相違するとき、設定項目の設定対象であるゲストOSまたはアプリケーションに、設定項目情報で示される設定値を適用させる設定適用手段を備えており、ゲストOSやゲストOS上で動作しているアプリケーションに対してセキュリティポリシの強制を行うことができるものであるが、ハイパバイザが信頼できるシステムであることが前提となる。ところが、上述のとおり、一般的なネットワーク上において、全ての仮想計算機システムにおけるハイパバイザが信頼できるとは限らないため、ゲストOS利用者にとって、セキュア環境を維持することは困難である。
 そこで、本発明の目的は、ハイパバイザが信頼できないシステムにおいても、演算処理装置、演算処理システム、演算処理方法、又は演算処理プログラムをセキュアに演算処理できる環境を提供することにある。
 本発明の上記目的は、以下の構成によって達成できる。すなわち、本発明の第1の態様の演算処理装置は、外部からセキュアプログラムを取得可能な演算処理装置であって、CPU、入出力装置及び記憶装置を少なくとも含むハードウェアと、前記ハードウェアを管理するハイパバイザと、前記ハイパバイザにより仮想的な演算処理環境を提供された1つ以上の仮想演算処理装置と、を少なくとも備え、前記仮想演算処理装置が、ゲストOSと、メモリと、を少なくとも有し、前記ハードウェアが前記仮想演算処理装置のみから利用できる形で、外部から仮想演算処理装置毎に前記メモリにブートローダを転送し、前記ブートローダが、前記仮想演算処理装置において、前記セキュアプログラムを起動することを特徴とする。
 本発明の第2の態様の演算処理装置は、第1の態様の演算処理装置において、前記ブートローダが、前記ゲストOS、前記セキュアプログラム、又はセキュアハイパバイザの少なくともいずれか1つを取得することを特徴とする。
 本発明の第3の態様の演算処理装置は、第2の態様の演算処理装置において、前記ゲストOSが、前記ブートローダによって取得され、起動されたものであることを特徴とする。
 本発明の第4の態様の演算処理装置は、第3の態様の演算処理装置において、前記ゲストOSが、前記セキュアプログラムを取得することを特徴とする。
 本発明の第5の態様の演算処理装置は、第4の態様の演算処理装置において、前記ゲストOSが、前記セキュアプログラムとしてセキュアハイパバイザを取得することを特徴とする。
 本発明の第6の態様の演算処理システムは、第1態様の演算処理装置において、前記ブートローダの転送と共に、前記ゲストOS、前記セキュアプログラム、又は前記セキュアハイパバイザの少なくともいずれか1つを転送することを特徴とする。
 本発明の第7の態様の演算処理システムは、第5又は第6の態様の演算処理装置において、前記仮想演算処理装置が前記セキュアハイパバイザにより管理され、前記セキュアハイパバイザが、外部の情報提供装置から取得した提供情報に添付された付加情報によって規定された使用条件の範囲内で演算処理が行われるように管理することを特徴とする。
 本発明の第8の態様の演算処理システムは、第1の態様の演算処理装置において、前記セキュアプログラムは、セキュアハイパバイザ、OS、ゲーム、データサイエンスの処理基盤、AI、及び、リバースエンジニアリングを防ぎたいような知的財産的価値が含まれるプログラムのいずれか少なくとも1つを含むプログラムであることを特徴とする。
 本発明の第9の態様の演算処理システムは、第1の態様の演算処理装置と、前記演算処理装置を管理する管理サーバと、を少なくとも備えた演算処理システムであって、前記管理サーバが前記仮想演算処理装置に提供する前記セキュアプログラムを管理するセキュアプログラム管理部を少なくとも有することを特徴とする。
 本発明の第10の態様の演算処理方法は、外部からセキュアプログラムを取得可能な演算処理装置による演算処理方法であって、前記演算処理装置は、CPU、入出力装置及び記憶装置を少なくとも含むハードウェアと、前記ハードウェアを管理するハイパバイザと、前記ハイパバイザにより仮想的な演算処理環境を提供された1つ以上の仮想演算処理装置と、を少なくとも備え、前記仮想演算処理装置が、ゲストOSと、メモリと、を少なくとも有し、前記ハードウェアが前記仮想演算処理装置のみから利用できる形で、外部から仮想演算処理装置毎に前記メモリにブートローダを転送するステップと、前記ブートローダが、前記仮想演算処理装置において、前記セキュアプログラムを起動するステップと、を含むことを特徴とする。
 本発明の第11の態様の演算処理方法は、第10の態様の演算処理方法において、前記セキュアプログラムは、セキュアハイパバイザ、OS、ゲーム、データサイエンスの処理基盤、AI、及び、リバースエンジニアリングを防ぎたいような知的財産的価値が含まれるプログラムのいずれか少なくとも1つを含むプログラムであることを特徴とする。
 本発明の第12の態様の演算処理プログラムは、第10又は第11態様の演算処理方法の各ステップをコンピュータにより実行することを特徴とする。
 本発明の実施形態によれば、ハイパバイザが信頼できないシステムにおいても、セキュアな演算処理環境を提供することができる。
情報提供システムの全体ブロック図である。 情報提供システムの動作説明図である。 仮想演算処理装置の動作説明図である。 演算処理装置のブロック図である。 セキュアプログラムをダウンロードするフロー図である。
 以下、図面を参照して本発明の実施形態に係る演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラムを説明する。但し、以下に示す実施形態は本発明の技術思想を具体化するための演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラムを例示するものであって、本発明をこれらに特定するものではなく、特許請求の範囲に含まれるその他の実施形態のものにも等しく適用し得るものである。
[第1実施形態]
 本発明の第1実施形態に係る演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラムについて、図1~図5を参照して説明する。まず、図1~図3を用いて、演算処理システムの一例として、セキュアハイパバイザ24の下で演算処理を行う仮想演算処理装置50を挙げて説明する。なお、本実施形態では、セキュアプログラム54として、セキュアハイパバイザ24を例に挙げて説明するが、本発明はこれに限定されるものではなく、第2実施形態で説明するように、セキュアプログラム54としては、例えばOS自体、ゲーム等、さまざまなプログラムが含まれる。
 図1は、演算処理システムの全体ブロック図である。演算処理システムは、情報提供装置10、演算処理装置20及び管理サーバ30を備えており、情報提供装置10、演算処理装置20及び管理サーバ30はそれぞれ情報ネットワーク40により相互に接続されている。情報提供装置10及び演算処理装置20は1個以上設けられている。
 図2は、演算処理システムの動作説明図である。情報提供装置10は、検証データ作成部11及びデータベース12を備えている。検証データ作成部11とデータベース12とは相互に接続され、検証データ作成部11を介してデータベース12の情報は、演算処理装置20に提供可能とされている。
 検証データ作成部11は演算処理装置20のデータ要求部22からのデータ要求情報に応じて、管理サーバ30のセキュアプログラム管理部31から提供された情報提供装置用プログラムに基づくCPU(図示省略)による演算により、後述のように検証用データ、及び、演算処理検証に用いられる検証用演算結果データを出力する。また、検証データ作成部11は、同様に、例えば予め入出力手段(図示省略)等により設定され、あるいは、データベース12に保管されたデータ利用制限情報に基づき、情報提供装置用プログラムに従ったCPUによる演算により、演算処理装置20に対する権限リストのデータを作成する。さらに、検証データ作成部11は、情報提供装置用プログラムに従って、データベース12にアクセスして要求データ、すなわち、実際に演算処理装置20の演算に用いられるデータを取得する。そして、検証データ作成部11は、これらのデータを提供情報として、演算処理装置20のプログラム検証部23に送信する。
 演算処理装置20は、後述のとおり、1つ以上の仮想演算処理装置50を備えている。仮想演算処理装置50は、演算処理プログラム実行部21、データ要求部22、プログラム検証部23を有している。演算処理プログラム実行部21、データ要求部22、プログラム検証部23はいずれもセキュアハイパバイザ24により管理されている。ここで、セキュアハイパバイザ24とは、OS(ここでは仮想演算処理装置50のゲストOS51)が管理している資源を排他的に、例えば閲覧をはじめとする他者の利用をそのままでは許さないように管理するプログラム、別の表現では、OSを統制が取れた環境の下で管理するプログラムを意味する。なお、排他的とは、例えば他者に漏洩、改ざんされないような管理を意図している(以下同様)。本実施形態では、後述のセキュアプログラム54の一例として、セキュアハイパバイザ24を採用した場合を挙げて説明する。ここで、セキュアプログラム54とは、セキュアな仮想環境の下において実行されるプログラムである。
 例えばセキュアプログラム管理部31から提供された演算処理装置用プログラムに基づき、OSが管理している資源を排他的に管理することができる。例えば、後述の図4のような仮想演算処理システムの場合、演算処理装置20のハードウェア61を管理するハイパバイザ60が信頼できないようなシステムにおいても、セキュアハイパバイザ24を、各仮想演算処理装置50にインストールしておくことで、管理サーバ30により統制が取れた環境を維持し、セキュアな仮想演算処理装置50を提供することができる。
 演算処理プログラム実行部21からデータ要求部22に対して、演算処理プログラムが要求するデータを情報提供装置10に対して要求し、この要求に応じて情報提供装置10からプログラム検証部23へ要求データを含む提供情報が送信される。プログラム検証部23においては、演算処理プログラムが検証され、適正であった場合には、演算処理プログラム実行部21に要求データが提供される。
 データ要求部22及びプログラム検証部23はいずれも、演算処理装置用プログラムに従ってセキュアハイパバイザ24により管理されており、セキュアなOS環境の中で、データ要求部22によるデータ要求情報の演算処理や、プログラム検証部23によるプログラム検証及び演算処理プログラムへの要求データの提供処理等の各種演算処理が仮想演算処理装置50により実行される。同様に、演算処理プログラム実行部21における処理も同様に、セキュアなOS(ゲストOS51)環境の整った仮想演算処理装置50により実行される。
 情報提供装置10及び仮想演算処理装置50は、管理サーバ30に接続されており、情報提供装置10の検証データ作成部11及び仮想演算処理装置50のセキュアハイパバイザ24のプログラムは、管理サーバ30のセキュアプログラム管理部31から提供され、これらのプログラムはセキュアプログラム管理部31により管理されている。これにより、演算処理システムは、情報提供プラットフォーム上で統制がとれた環境の中で情報の提供及び情報の利用が行われる。情報提供装置10と演算処理装置20との通信を行う際のデータの暗号化、復号及び電子署名のアルゴリズムも、このセキュアプログラム管理部31により管理されている。
 仮想演算処理装置50に対して、情報提供装置10から要求データが提供される手順について説明する。
(1)演算処理プログラム実行部21からの要求に応じて、データ要求部22において、演算処理プログラムが必要とする要求データを各情報提供装置10に対して要求するためのデータ要求情報を作成する。
(2)データ要求部22から情報提供装置10の検証データ作成部11に対して、データ要求情報が送信される。
(3)検証データ作成部11において、対象とする演算処理プログラムを検証するための検証データを作成する。
(4)検証データ作成部11から演算処理装置20のプログラム検証部23へ、データベース12に保管されている要求データ及び演算処理プログラムに許容される演算処理の範囲や使用制限の条件を規定した付加情報が含まれる提供情報が送信される。
(5)プログラム検証部23において、対象とする演算処理プログラムが認証された場合には、演算処理プログラム実行部21に要求データが提供され、演算処理プログラムによる演算処理が実行される。
 上記(1)のデータ要求情報の作成について詳しく説明する。演算処理プログラム実行部21で実行される処理対象の演算処理プログラムは、例えば次の演算処理プログラムP1のようなRustのプログラムである。演算処理プログラムP1は、線形回帰分析の例であり、要求データ(データ群)に対して、最小二乗法(OLS)を用いた線形回帰を行う。
[演算処理プログラムP1]
 データ要求情報には、要求データに関する指示である、最小二乗法を用いた線形回帰を行うための要求データの情報に加え、処理対象となる演算プログラムとしての演算処理プログラムP1の情報、例えばソースプログラムの情報が含まれる。なお、演算処理プログラムの情報としては、ソースプログラムだけに限られるものではなく、入力に対する出力の関係を特定できる情報、例えば、処理内容が事前に検証され、確認されている専用ハードウェアを直接に接続する、そのようなハードウェアを直列したものに接続する等、演算処理プログラムの処理内容が把握できるものであればどのような情報であってもかまわない。
 上記(2)においては、データ要求部22から情報提供装置10の検証データ作成部11に対して、データ要求情報が送信される。データ要求情報はセキュアプログラム管理部31で管理されるプロトコルに従って暗号化されることが望ましい。
 上記(3)の検証データ作成部11における検証データ作成について詳しく説明する。検証データ作成部11では、データ要求情報が暗号化されている場合には、セキュアプログラム管理部31で管理されるプロトコルに従って復号される。次に、検証データ作成部11では、演算処理装置20において処理対象の演算処理プログラムに許容する演算処理の範囲を規定するための情報を生成する。
 検証データ作成部11では、データ要求情報に付与された演算処理プログラムの処理内容を解析し、演算処理プログラムが適正であるかどうかを検証するために必要な情報を生成し、提供情報に付加する。このため検証データ作成部11からプログラム検証部23に送信される提供情報には、次の情報が含まれている。
(a)演算処理装置20において演算処理プログラムに許容される演算処理の範囲や使用制限の条件を規定した権限情報、例えば権限リスト
(b)検証用データ
(c)演算処理検証に用いられる検証用演算結果データ
(d)要求データ(実際の演算に用いられるデータ)
 上記(4)では、検証データ作成部11から演算処理装置20のプログラム検証部23へ要求データ及び演算処理プログラムに許容される演算処理の範囲を規定した付加情報が含まれる提供情報が送信される。提供情報の中、少なくとも上記(b)(c)及び(d)はセキュアプログラム管理部31で管理されるプロトコルに従って暗号化されることが望ましい。上記(a)も併せて暗号化を行ってもよい。さらに、提供情報に電子署名を付加することにより、より確実に改ざんを防ぐことができる。
 上記(5)のプログラム検証部23の処理について詳細に説明する。プログラム検証部23においては、提供情報に含まれている上記(b)及び(c)を用いて、上記(b)の検証用データを用いてデータ処理対象の処理プログラムを実行した場合の結果が、上記(c)の演算処理検証に用いられる検証用演算結果データと一致するかどうかを検証する。
 さらに、上記(b)の検証用データを用いてデータ処理対象の処理プログラムを実行した場合に、処理プログラムが上記(a)の権限情報で許される範囲を超えた処理をしていないかどうかが判定される。
 例えば、権限情報としての権限リストに、データ保存に関し、演算結果の保存が許可されているが、要求データ自体の保存は許可されていない場合には、演算処理装置20が、演算結果を保存することは許可されるが、要求データ自体を別途保存しておくことは許可されない。このため、上記(b)の検証用データを用いてデータ処理対象の処理プログラムを実行した場合に、データ保存が権限リストの範囲にあるかどうかが検証される。
 仮想演算処理装置50のセキュアハイパバイザ24は、セキュアプログラム管理部31により提供されたプログラムにより、常に統制された環境で動作されている。このため、仮想演算処理装置50のプログラム検証部23及び演算処理プログラム実行部21において実行される演算処理プログラムの演算処理はセキュアハイパバイザ24により常に監視することが可能であり、データの保存、転送、削除等の処理内容は常に把握されている。このために、本実施例の演算処理システムにおいては、上記(b)の検証用データを用いてデータ処理対象の処理プログラムを実行した場合に、データ保存が権限リストの範囲にあるかどうかを適切に検証することが可能である。
 上記(b)の検証用データを用いてプログラム検証部23にて処理対象の演算処理プログラムを実行した場合の結果が、上記(c)の演算処理検証に用いられる検証用演算結果データと一致し、かつ、上記(b)の検証用データを用いてデータ処理対象の処理プログラムを実行した場合に、処理プログラムが上記(a)の権限情報で許される範囲を越えた処理をしていないと判定された場合に、処理対象の演算処理プログラムは適正であると判断され、すなわち、適正な演算処理プログラムとして認証される。
 演算処理プログラムが適正なプログラムとして認証されると、上記(d)の要求データが演算処理プログラムに提供され、演算処理プログラム実行部21において、演算処理プログラムは要求データを用いて実際の演算を行う。
 図3は、仮想演算処理装置50の動作説明図である。データ要求部22、プログラム検証部23、演算処理プログラム実行部21、メモリ25及びそれ以外の入出力装置(図示省略)等は、全てセキュアハイパバイザ24により管理された環境の中で処理されている。これによりセキュアハイパバイザ24によりゲストOS51の全ての動作を管理できる状態、すなわち、ゲストOS51のセキュアな実行環境を実現することができる。なお、図3の仮想演算処理装置50の動作説明図は、本実施形態の一例であり、他の様々な構成によって、OSのセキュア化を実現することもできる。
 演算処理プログラム実行部21において関数28は、全てのデータ29を、ライブラリ27を介して送受している。メモリ25内には、ライブラリ27だけがアクセス可能なライブラリ専用領域が仮想的に設けられており、例えば、プログラム検証部23を介して入手された要求データはメモリ25内のライブラリ専用領域に格納される。また、例えば図3において、データ29はメモリ25内のライブラリ専用領域に記憶されているものである。関数28は、メモリ25内のライブラリ専用領域に格納された要求データにアクセスできる。そして、関数28は、メモリ25のデータ29を、ライブラリ27を経由して受け取る。関数28は受け取ったデータ29を用いて、演算処理装置20のCPUにより関数28に従って演算を行う。関数28の演算の終了後、演算処理プログラムによる最終的な演算結果リストだけがユーザに提供され、メモリ25内のデータ29の領域にある演算途中に用いられたデータ29は完全に削除される。データ29を完全に削除する方法としては、特に限定されるものではないが、例えばデータを全て「0」で埋めること等の適宜の方法を採用可能である。また、関数28は、演算結果のリストのみをユーザに提供する。
 このように、関数28は、セキュアハイパバイザ24の完全な管理のもと、ライブラリ27を介して全てのデータ29の送受を行っているため、演算処理装置20内におけるメモリ25内のライブラリ専用領域以外の領域に要求データや演算途中のデータ29を残すことがなく、要求データはライブラリ27内にのみセキュアハイパバイザ24が管理可能な状態で格納されている。したがって、セキュアハイパバイザ24は、情報提供装置10から受信した権限リストに規定された権限の範囲内で要求データを使用し、ライブラリ27内で要求データを確実に管理することができる。また、上述のとおり、メモリ25内のライブラリ専用領域のデータ29は完全に削除することが可能である。
 ここでは、OS(ゲストOS51)をセキュア化する例を説明したが、演算処理プログラム実行部21の演算で用いられるアプリケーションを仮想化することにより、演算処理装置20の動作をセキュアハイパバイザ24により管理することも可能である。この場合には、アプリケーションによる演算が開始された後、アプリケーションにより要求データが呼び出される前に、セキュアハイパバイザ24が全ての動作を管理する仮想的な環境(以下「セキュア環境」という。)内でアプリケーションを動作させる。次に、アプリケーションから演算結果を出力されると、セキュアハイパバイザ24は、ユーザに対して演算結果のリストだけを提供すると共に、要求データ及び演算途中のデータ29を削除した後に、アプリケーションはセキュア環境から演算処理装置20の通常演算環境での動作に戻される。したがって、アプリケーション仮想化の場合にも、セキュアハイパバイザ24は、アプリケーションをセキュア環境において管理するため、情報提供装置10から受信した権限リストに規定された権限の範囲内であることを監視する。すわなち、権限リストの規定に応じて、コンソールへの出力を制限すること、ファイルに書き込むこと、ネットワーク通信を行うこと等を禁止する。また、例えば認証されたGPUを用いることにより、セキュアハイパバイザ24の管理のもとでユーザに対して演算結果のみを提示することができる。
 ここでは、1つのプログラム毎に認証する例を示したが、本実施例はこれに限定されるものではなく、例えば、複数のプログラムを予め認証しておき、認証済みの複数のプログラムを組み合わせて演算を行うことも可能である。
 図4は、演算処理装置20のブロック図である。演算処理装置20は、1つ以上の仮想演算処理装置50、ハイパバイザ60、及びハードウェア61を備えている。ハイパバイザ60は演算処理装置20のハードウェア61を管理し、仮想演算処理装置50に対し仮想的な物理環境としての演算処理環境を提供する。ハードウェア61はCPU、入出力装置及び記憶装置を少なくとも含む演算処理装置20のハードウェア資源である。また、演算処理装置20は、ホストOS62及び管理者ユーザインターフェイス63を備えている。なお、演算処理装置20は、仮想演算処理装置50用のユーザインターフェイス等も備えているが、図示省略されている。
 仮想演算処理装置50は、ゲストOS51、メモリ52及びセキュアハイパバイザ24を備えている。また、メモリ52には、ブートローダ53及びセキュアプログラム54が格納されている。ブートローダ53は、セキュアプログラム54を取得するためのものであり、セキュアプログラム管理部31から、ハイパバイザ60に監視されることなく、すなわち、ハイパバイザ60に情報の内容を読まれることなく(以下同様)、ハードウェア61の機能を利用してメモリ52に転送される。なお、ブートローダ53は各ゲストOS51に対して同一の内容とすることができる。ここで、セキュアプログラム54とは、セキュアな仮想環境の下において実行されるプログラムである。特に限定されるものではないが、本実施形態では、セキュアプログラム54として、セキュアハイパバイザ24を採用した場合を例示して説明する。また、メモリ52は、ハードウェア61の機能を利用して暗号化されているため、ハイパバイザ60やホストOS62、管理者ユーザインターフェイス63、他の仮想演算処理装置50はその内容を読み書きすることはできない。
 ゲストOS51は第1公開鍵により暗号化されており、ブートローダ53によってセキュアプログラム管理部31から取得され、第1秘密鍵を用いて復号されて起動される。なお、第1秘密鍵とは、ゲストOSを取得するためにブートローダ53に組み込まれている秘密鍵である。セキュアプログラム54は第2公開鍵により暗号化されており、ゲストOS51によってセキュアプログラム管理部31から取得され、第2秘密鍵によって、復号される。なお、第2秘密鍵とは、セキュアプログラム54を取得するために、ゲストOS51に含まれている秘密鍵である。そして、セキュアハイパバイザ24はセキュアプログラム54を立ち上げることにより、有効化される。
 セキュアハイパバイザ24の管理のもと、ゲストOS51が管理サーバ30により管理されている情報提供装置10から情報を取得し、仮想演算処理装置50においては、事前に承認された情報利用条件の範囲内で、すなわち要求データ及び演算処理プログラムに許容される演算処理の範囲や使用制限の条件を規定した付加情報の範囲内で、演算処理を実行する。
 ここで、演算処理装置20のCPUを含むハードウェア61は信頼できる。ここで、信頼できるとは、例えば改ざんや漏洩を起こさないものとして信頼できることを意味する(以下同様)。ただし、演算処理装置20のハイパバイザ60は必ずしも信頼できるとは限らないので、本実施形態では、ハイパバイザ60が信頼できない環境であっても、安全に、セキュアにセキュアハイパバイザ24を各仮想演算処理装置50にインストールする手段を提供することができる。
 次に、図5を参照して、仮想演算処理装置50において、セキュアハイパバイザ24が有効化されるまでの手順を説明する。図5は、セキュアプログラム54をダウンロードするフロー図である。仮想演算処理装置50のセキュアハイパバイザ24は、セキュアプログラム管理部31から取得されて有効化されるが、ハイパバイザ60が信頼できない環境においては、ハイパバイザ60に読み取られない暗号通信を用いて各ゲストOS51に対応する仮想演算処理装置50にインストールする必要がある。
(手順1)管理サーバ30との手続(S1)
 管理サーバ30のセキュアプログラム管理部31により管理されたセキュア環境において、情報提供装置10から提供された提供情報が悪用されることがないように管理しながら、演算処理装置20において提供情報を利用した演算処理を実行して、その演算結果を活用することができるようにする。このために、演算処理装置20の管理者は、各仮想演算処理装置50にブートローダ53及びセキュアハイパバイザ24をインストールするために、管理者ユーザインターフェイス63からの入力により、管理サーバ30に対してハードウェア61の情報をセキュアプログラム管理部31に登録する(S1)。管理者ユーザインターフェイス63からの登録要求時の通信を暗号通信とした場合には、セキュアプログラム管理部31がハードウェア61が真正なものかどうかを判別することができる。例えば、仮想演算処理装置50毎にメモリ52を暗号化できる機能を持つCPU、具体的にはAMDのSEVでは、ハードウェア61(CPU)の公開鍵を登録する。ハードウェア61を登録するための情報は、管理者ユーザインターフェイス63から、ハイパバイザ60、ハードウェア61を介して、セキュアプログラム管理部31に送信される。
(手順2)ブートローダ53の転送(S2-S3)
 S2では、演算処理装置20の管理者は、管理者ユーザインターフェイス63から、セキュアプログラム管理部31に対して、ハイパバイザ60、ハードウェア61を介して、ブートローダ53の転送要求を行う。具体的には、ハイパバイザ60がハードウェア61の公開鍵を用いて、ハードウェア61を介し、セキュアプログラム管理部31に対して、ブートローダ53の転送要求を行う。
 S3では、セキュアプログラム管理部31は、ハードウェア61、ハイパバイザ60を介して、メモリ52にブートローダ53を転送する。このとき、ブートローダ53の転送要求の内容についてはハイパバイザ60からは読めない形で、ブートローダ53の転送処理が行われる。この際に、ブートローダ53の転送情報は、仮想演算処理装置50のみから利用できる形で、例えば、実行しているハードウェア61のみが読める形で暗号化されているので、第1秘密鍵を含むプログラムの内容はハイパバイザ60では読むことができない。このため、ハイパバイザ60で監視されることなく、セキュアプログラム管理部31から、ハードウェア61の機能を利用してブートローダ53をメモリ52に転送することができる。また、ここではメモリ52に転送することを説明したが、本実施形態はこれに限定されるものではなく、例えばハードディスク等に保存しておいても良い。ハードディスク等に保存しておく場合には、仮想演算処理装置50を起動する度にブートローダ53の転送を繰り返す必要がなくなる。
(手順3)メモリ52の暗号化(S4-S5)
 S4では、管理者ユーザインターフェイス63から、ハイパバイザ60を介して、ハードウェア61に仮想演算処理装置50の起動要求を行う。
 S5では、ハイパバイザ60からの指令により、ハードウェア61がメモリ52の暗号化を行う。ハイパバイザ60はメモリ52を仮想演算処理装置50毎に暗号化されるようにハードウェア61に指示する。すると、ハードウェア61はメモリ52を仮想演算処理装置50毎に暗号化する。例えば、AMDのSEVでは、仮想演算処理装置50毎に自動的に異なる暗号鍵を用いてメモリ52が暗号化される。このとき、ハイパバイザ60はメモリ52を暗号化する指令について、暗号化に用いられる暗号鍵を読むことができない。なお、ここではS2からS5までのフローを説明したが、本実施形態はこのフローに限定されるものではなく、例えばS2におけるブートローダ53の転送要求及びS3におけるブートローダ53の転送については、S5におけるメモリ52の暗号化の後に行ってもよいし、すでにハードディスク等にブートローダ53が格納されている場合には、仮想演算処理装置50の起動のたびにブートローダ53を再度読み込む必要はない。
(手順4)ブートローダ53の各メモリ52への展開(S6)
 S4において、管理者ユーザインターフェイス63から、ハイパバイザ60を介して、ハードウェア61に仮想演算処理装置50の起動要求が行われると、S5の後に、S6では、ハードウェア61は、ブートローダ53をメモリ52毎に展開する。このとき、ハイパバイザ60は、メモリ52毎に展開される第1秘密鍵を含むブートローダ53のプログラムを読むことはできない。
 S3では、ブートローダ53は、ハードウェア61の機能を利用してメモリ52に転送されると共に、S6では、ブートローダ53は、ハードウェア61の機能を利用して各メモリ52に展開される。この際に、仮想演算処理装置50の起動要求により転送される情報は仮想演算処理装置50のみから利用できる形で、例えば、実行しているハードウェア61のみが読むことができる形で暗号化されているので、第1秘密鍵が含まれるプログラムの内容はハイパバイザ60では読むことができない。このため、ハイパバイザ60で監視されることなく、セキュアプログラム管理部31から、ハードウェア61の機能を利用してブートローダ53をメモリ52に転送し、各メモリ52に展開することができる。例えば、このブートローダ53の各メモリ52への転送及び展開には、ハードウェア61のCPUが有している、ある仮想演算処理装置50の実行状態を保存し、別の仮想演算処理装置50の下で実行できるようにするマイグレーション(Migration)機能を利用することができる。このMigration機能を用いれば、メモリ52が暗号化されている仮想演算処理装置50の場合でも、別の仮想演算処理装置50のメモリ52にその内容を展開することができる。
 例えば、CPUがAMD社のSEVである場合には、Migration機能をサポートしており、演算処理装置20の管理者は、ハイパバイザ60に監視されることなく、SEVの機能として、ブートローダ53をメモリ52に転送すると共に、仮想演算処理装置50毎に各メモリ52にブートローダ53を展開することができる。SEVのMigration機能においては、ブートローダ53は、転送時にはハードウェア61毎に暗号化されており、また、ブートローダ53の仮想演算処理装置50毎に暗号化されたメモリイメージをつくることができ、演算処理装置20内の全ての仮想演算処理装置50に対して、同一のメモリ52の内容を仮想演算処理装置50毎に暗号化された形で展開することができる。
 また、S6において、ハードウェア61はメモリ52に展開されたブートローダ53を仮想演算処理装置50毎に立ち上げる。
(手順4)ゲストOS51の立上げ(S7-S8)
 S7では、ブートローダ53が、セキュアプログラム管理部31に対して、ゲストOS51立上げ要求を送信する。ゲストOS51立上げ要求は、ブートローダ53からハードウェア61を介して、セキュアプログラム管理部31に送信される。S8では、このゲストOS51立上げ要求を受け取ると、セキュアプログラム管理部31はメモリ52へゲストOS51を転送する。ゲストOS51は、セキュアプログラム管理部31から、ハードウェア61を介して、メモリ52に送信される。このとき、ブートローダ53は第1秘密鍵を用いて、仮想演算処理装置50毎にゲストOS51を立ち上げる。すなわち、セキュアプログラム管理部31がメモリ52にゲストOS51を転送する際の暗号通信は、第1公開鍵によって暗号化されており、第1秘密鍵がないと復号できないため、ハイパパイザから監視されることはない。この暗号通信には、例えば、TLS1.3を用いることができる。
(手順5)セキュアプログラム54の取得(S9-S10)
 ゲストOS51は第2秘密鍵を用いた暗号通信によりセキュアプログラム管理部31からセキュアプログラム54を取得し、メモリ52に格納する。S9にて、ゲストOS51は、セキュアプログラム54の取得要求を、ハードウェア61を介して、セキュアプログラム管理部31に送信する。セキュアプログラム54の取得要求を受け取ると、セキュアプログラム管理部31は、S10にて、セキュアプログラム54をハードウェア61を介して、メモリ52に送信する。このセキュアプログラム54を転送する際の暗号通信は、第2公開鍵によって暗号化されており、また、暗号化されたメモリ52にセキュアプログラム54が格納されるため、仮想演算処理装置50はハイパバイザ60により監視されることなく、セキュアプログラム54を取得することができる。この暗号通信には、例えば、TLS1.3を用いることができる。
(手順6)セキュアハイパバイザ24の起動(S11-S12)
 S11にて、ゲストOS51は、手順5で取得されてメモリ52に保存されているセキュアプログラム54を起動し、S12ではセキュアハイパバイザ24が実行され、これにより、仮想演算処理装置50において、セキュアハイパバイザ24が有効化される。図4は、セキュアハイパバイザ24が有効となっている場合のブロック図である。ゲストOS51は、セキュアハイパバイザ24による管理のもと、秘密鍵を用いた暗号通信により、管理サーバ30により管理されている情報提供装置10から提供情報を取得し、付加情報によって規定された使用条件の範囲内で演算処理を行う。なお、図4には省略されているが、仮想演算処理装置50には、図2で説明したように、演算処理プログラム実行部21、データ要求部22及びプログラム検証部23が設けられており、セキュアハイパバイザ24により管理された状態で、提供情報の取得及び演算処理が行われる。
 以上の手順によって、仮想演算処理装置50にセキュアハイパバイザ24がインストールされる。ハードウェア61のCPUの持つMigration機能や暗号化機能を用いて、信頼性のないハイパバイザ60を備える演算処理装置20であっても、各仮想演算処理装置50においてセキュアハイパバイザ24によるセキュアな環境を構築することができる。暗号化には公開鍵暗号方式が用いられているため、パスワード管理などの煩わしさを解消することができる。公開鍵および秘密鍵は、セキュアプログラム管理部31において自由に設定可能である。
 暗合通信には例えばTLS1.3通信を用いることができる。二方向の認証ができる通信である。管理サーバ30側が秘密鍵を持つ場合には、公開鍵が広く公開されている中で、管理サーバ30自身が真正な管理サーバであることを保証する。一方、ゲストOS51側が秘密鍵を持つ場合には、ゲストOS51自身が真正なOSであることを保証する。このため、公開鍵暗号方式を使わない場合と比べて、ワンタイムパスワードの配信等、パスワード管理を省略することができる。
 また、本実施形態においては、第1秘密鍵の暗号の壁の中で、さらに第2秘密鍵を保持しているため、信頼性が高い仮想演算処理装置50を提供できる。すなわち、ブートローダ53がゲストOS51を立ち上げる際に、セキュアプログラム管理部31からメモリ52に転送されるゲストOS51は第2秘密鍵を含んだ形で、第1公開鍵により暗号化されていて、第1秘密鍵がないと復号できない。そして、ゲストOS51がセキュアプログラム54をダウンロードする際に、第2公開鍵により暗号化された通信が利用され、第2秘密鍵がなければ復号できない。ブートローダ53を転送する時点で第1秘密鍵が仮想演算処理装置50に配信されており、この第1秘密鍵は暗号化されたメモリ52の中で保護される。
 上記手順2において、S2及びS3では、セキュアプログラム管理部31がメモリ52にブートローダ53を転送するものとして説明したが、本実施形態はこの手順に限定されるものではなく、例えば、ブートローダ53を転送と共に、ゲストOS51、セキュアプログラム54、又はセキュアハイパバイザ24の少なくともいずれか1つを転送するようにしてもよい。そして、このようなプログラムの転送の際にも同様に、ハイパバイザ60に監視されることがないため、ハイパバイザ60が信頼できない環境であっても、各仮想演算処理装置50に安全に各プログラム(ブートローダ53、ゲストOS51、セキュアプログラム54、及びセキュアハイパバイザ24等)をメモリ52に転送することが可能である。また、ブートリーダ53の転送と共に他のプログラムを同時に転送した場合には、その後の手順は必ずしも上記手順3~6に限定されるものではなく、プログラムの転送の際にハイパバイザ60に監視されることがない限りにおいては、任意の手順とすることができる。
[第2実施形態]
 本発明の第2実施形態に係る演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラムについて説明する。第1実施形態では、セキュアプログラム54がセキュアハイパバイザ24である例を説明したが、本実施形態では、セキュアプログラム54がセキュアハイパバイザ24以外の例について説明する。本実施形態のように、仮想環境のもとでは、セキュアプログラム54として、OS自体、ゲーム、データサイエンスの処理基盤、AI、リバースエンジニアリングを防ぎたいような知的財産的価値が含まれるプログラム等、他にも様々なプログラムを利用することができる。例えば、データサイエンスの処理基盤としては、データ収集、データ蓄積、データ加工、及びデータ分析等が含まれる。AIの例としては、機械学習等が挙げられる。また、リバースエンジニアリングを防ぎたいような知的財産的価値が含まれるプログラムとは、プログラムに使用されているアルゴリズムに発明が含まれているもの、プログラムで使用するデータ構造に発明や著作権が含まれているもの、プログラムで使用するデータに営業秘密ないし不正競争法で保護される情報が含まれているもの、機械学習の学習済みモデルや学習データが含まれているもの等であり、プログラム自体又は当該プログラムが使用するデータに、発明、著作権、営業秘密、不正競争防止法で保護される情報等が含まれているプログラムを意味する。いずれのセキュアプログラム54をメモリ52に転送する際にも、第1実施形態と同様に、ハイパバイザ60に監視されることがない。そのため、ハイパバイザ60が信頼できない環境であっても、各仮想演算処理装置50に安全にセキュアプログラム54をメモリ52に転送することが可能である。
 セキュアプログラム54がOS自体である場合には、第1実施形態におけるS1~S8と同様の手順で、OSを立ち上げることが可能である。また、セキュアプログラム54がゲーム、データサイエンスの処理基盤、AI、リバースエンジニアリングを防ぎたいような知的財産的価値が含まれるプログラム等である場合には、第1実施形態におけるS1~S10と同様の手順で、メモリ52にセキュアプログラム54の転送を行うことができる。
 また、第1実施形態においては、手順4において、S7では、ブートローダ53が、セキュアプログラム管理部31に対して、ゲストOS51立上げ要求を送信し、まずゲストOS51が、セキュアプログラム管理部31から、ハードウェア61を介して、メモリ52に送信されるものとして説明したが、本実施形態はこの手順に限定されるものではなく、ブートローダ53は、ゲストOS51、セキュアプログラム54、又はセキュアハイパバイザ24の少なくともいずれか1つを取得するものであればよい。このため、例えばブートローダ53が、ゲストOS51の転送と同時に、あるいは、ゲストOS51の転送に替えて、セキュアプログラム54、又はセキュアハイパバイザ24の転送を行うようにするようにしてもよい。すなわち、第1実施形態ではゲストOS51の立ち上げ後にセキュアプログラム54を転送するものとして説明したが、必ずしもゲストOS51の立ち上げや、その手順が必須であるものではなく、ブートローダ53は、任意のセキュアプログラム54の転送を行うことができ、このセキュアプログラム54の転送の際には、実施形態1と同様にハイパバイザ60に監視されることがない。そのため、ハイパバイザ60が信頼できない環境であっても、各仮想演算処理装置50に安全にセキュアプログラム54をメモリ52に転送することが可能である。
 以上、本発明のいくつかの実施形態について説明したが、これらの実施形態における本発明の技術思想を具体化するための演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラムを例示するものであって、本発明をこれらに特定するものではなく、その他の実施形態のものにも等しく適用し得るものであり、また、これらの実施形態の一部を省略、追加、変更することや、各実施形態の態様を組み合わせることが可能である。
10…情報提供装置
11…検証データ作成部
12…データベース
20…演算処理装置
21…演算処理プログラム実行部
22…データ要求部
23…プログラム検証部
24…セキュアハイパバイザ
25…メモリ
27…ライブラリ
28…関数
29…データ
30…管理サーバ
31…セキュアプログラム管理部
40…情報ネットワーク
50…仮想演算処理装置
51…ゲストOS
52…メモリ
53…ブートローダ
54…セキュアプログラム
60…ハイパバイザ
61…ハードウェア
62…ホストOS
63…管理者ユーザインターフェイス

Claims (12)

  1.  外部からセキュアプログラムを取得可能な演算処理装置であって、
     CPU、入出力装置及び記憶装置を少なくとも含むハードウェアと、前記ハードウェアを管理するハイパバイザと、前記ハイパバイザにより仮想的な演算処理環境を提供された1つ以上の仮想演算処理装置と、を少なくとも備え、
     前記仮想演算処理装置が、ゲストOSと、メモリと、を少なくとも有し、
     前記ハードウェアが前記仮想演算処理装置のみから利用できる形で、外部から仮想演算処理装置毎に前記メモリにブートローダを転送し、
     前記ブートローダが、前記仮想演算処理装置において、前記セキュアプログラムを起動することを特徴とする演算処理装置。
  2.  前記ブートローダが、前記ゲストOS、前記セキュアプログラム、又はセキュアハイパバイザの少なくともいずれか1つを取得することを特徴とする請求項1に記載の演算処理装置。
  3.  前記ゲストOSが、前記ブートローダによって取得され、起動されたものであることを特徴とする請求項2に記載の演算処理装置。
  4.  前記ゲストOSが、前記セキュアプログラムを取得することを特徴とする請求項3に記転送載の演算処理装置。
  5.  前記ゲストOSが、前記セキュアプログラムとしてセキュアハイパバイザを取得することを特徴とする請求項4に記載の演算処理装置。
  6.  前記ブートローダの転送と共に、前記ゲストOS、前記セキュアプログラム、又は前記セキュアハイパバイザの少なくともいずれか1つを転送することを特徴とする請求項1に記載の演算処理装置。
  7.  前記仮想演算処理装置が前記セキュアハイパバイザにより管理され、
     前記セキュアハイパバイザが、外部の情報提供装置から取得した提供情報に添付された付加情報によって規定された使用条件の範囲内で演算処理が行われるように管理することを特徴とする請求項5又は6に記載の演算処理装置。
  8.  前記セキュアプログラムは、セキュアハイパバイザ、OS、ゲーム、データサイエンスの処理基盤、AI、及び、リバースエンジニアリングを防ぎたいような知的財産的価値が含まれるプログラムのいずれか少なくとも1つを含むプログラムであることを特徴とする請求項1に記載の演算処理装置。
  9.  請求項1記載の演算処理装置と、前記演算処理装置を管理する管理サーバと、を少なくとも備えた演算処理システムであって、
     前記管理サーバが前記仮想演算処理装置に提供する前記セキュアプログラムを管理するセキュアプログラム管理部を少なくとも有することを特徴とする演算処理システム。
  10.  外部からセキュアプログラムを取得可能な演算処理装置による演算処理方法であって、
     前記演算処理装置は、CPU、入出力装置及び記憶装置を少なくとも含むハードウェアと、前記ハードウェアを管理するハイパバイザと、前記ハイパバイザにより仮想的な演算処理環境を提供された1つ以上の仮想演算処理装置と、を少なくとも備え、
     前記仮想演算処理装置が、ゲストOSと、メモリと、を少なくとも有し、
     前記ハードウェアが前記仮想演算処理装置のみから利用できる形で、外部から仮想演算処理装置毎に前記メモリにブートローダを転送するステップと、
     前記ブートローダが、前記仮想演算処理装置において、前記セキュアプログラムを起動するステップと、
    を含むことを特徴とする演算処理方法。
  11.  前記セキュアプログラムは、セキュアハイパバイザ、OS、ゲーム、データサイエンスの処理基盤、AI、及び、リバースエンジニアリングを防ぎたいような知的財産的価値が含まれるプログラムのいずれか少なくとも1つを含むプログラムであることを特徴とする請求項10に記載の演算処理方法。
  12.  請求項10又は11に記載の演算処理方法の各ステップをコンピュータにより実行することを特徴とする演算処理プログラム。
PCT/JP2023/024185 2022-06-29 2023-06-29 演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラム WO2024005143A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023546151A JP7412835B1 (ja) 2022-06-29 2023-06-29 演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022104907 2022-06-29
JP2022-104907 2022-06-29

Publications (1)

Publication Number Publication Date
WO2024005143A1 true WO2024005143A1 (ja) 2024-01-04

Family

ID=89382498

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/024185 WO2024005143A1 (ja) 2022-06-29 2023-06-29 演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラム

Country Status (2)

Country Link
JP (1) JP7412835B1 (ja)
WO (1) WO2024005143A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170032119A1 (en) * 2014-04-16 2017-02-02 Commissariat A L'energie Atomique Et Aux Energies Alternatives System for executing code with blind hypervision mechanism
US9584517B1 (en) * 2014-09-03 2017-02-28 Amazon Technologies, Inc. Transforms within secure execution environments
US20190034218A1 (en) * 2016-01-29 2019-01-31 British Telecommunications Public Limited Company Disk encryption
JP2021124992A (ja) * 2020-02-06 2021-08-30 京セラドキュメントソリューションズ株式会社 情報処理装置、メモリー管理プログラム及びブートプログラム
JP2022522643A (ja) * 2019-03-08 2022-04-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 初期プログラムロード機構を用いたセキュア・ゲストの起動

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170032119A1 (en) * 2014-04-16 2017-02-02 Commissariat A L'energie Atomique Et Aux Energies Alternatives System for executing code with blind hypervision mechanism
US9584517B1 (en) * 2014-09-03 2017-02-28 Amazon Technologies, Inc. Transforms within secure execution environments
US20190034218A1 (en) * 2016-01-29 2019-01-31 British Telecommunications Public Limited Company Disk encryption
JP2022522643A (ja) * 2019-03-08 2022-04-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 初期プログラムロード機構を用いたセキュア・ゲストの起動
JP2021124992A (ja) * 2020-02-06 2021-08-30 京セラドキュメントソリューションズ株式会社 情報処理装置、メモリー管理プログラム及びブートプログラム

Also Published As

Publication number Publication date
JP7412835B1 (ja) 2024-01-15

Similar Documents

Publication Publication Date Title
CN107820604B (zh) 具有联网设备的计算机驱动系统的半虚拟化安全威胁防护
US8201239B2 (en) Extensible pre-boot authentication
EP2278514B1 (en) System and method for providing secure virtual machines
US8909940B2 (en) Extensible pre-boot authentication
US7694121B2 (en) System and method for protected operating system boot using state validation
EP2913956B1 (en) Management control method and device for virtual machines
EP2583410B1 (en) Single-use authentication methods for accessing encrypted data
US8474032B2 (en) Firewall+ storage apparatus, method and system
US20210209221A1 (en) System for securing software containers with encryption and embedded agent
KR101281678B1 (ko) 이동 저장 장치에서 호스트 인증 방법, 호스트 인증을 위한정보 제공 방법, 장치, 및 기록매체
US20160342786A1 (en) Method and apparatus for applying application context security controls for software containers
US20070079120A1 (en) Dynamic creation and hierarchical organization of trusted platform modules
US7840795B2 (en) Method and apparatus for limiting access to sensitive data
CN102208000A (zh) 为虚拟机镜像提供安全机制的方法和系统
US11288377B1 (en) Virtual machine-based trusted execution environment
KR20140051350A (ko) 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법
US20160004859A1 (en) Method and system for platform and user application security on a device
Mannan et al. Unicorn: Two-factor attestation for data security
US20090199017A1 (en) One time settable tamper resistant software repository
US10754979B2 (en) Information management terminal device
US20220159004A1 (en) Method for granting access to objects in a computerized system, computer program product, and field device
US20140047557A1 (en) Providing access of digital contents to online drm users
CN111506915B (zh) 授权访问的控制方法、装置和系统
JP7412835B1 (ja) 演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラム
Papadamou et al. Ensuring the authenticity and fidelity of captured photos using trusted execution and mobile application licensing capabilities

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

Country of ref document: EP

Kind code of ref document: A1