WO2023145240A1 - 情報処理装置および情報処理システム - Google Patents
情報処理装置および情報処理システム Download PDFInfo
- Publication number
- WO2023145240A1 WO2023145240A1 PCT/JP2022/043941 JP2022043941W WO2023145240A1 WO 2023145240 A1 WO2023145240 A1 WO 2023145240A1 JP 2022043941 W JP2022043941 W JP 2022043941W WO 2023145240 A1 WO2023145240 A1 WO 2023145240A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information processing
- data
- key
- processing device
- management unit
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims description 181
- 238000004364 calculation method Methods 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims description 52
- 238000012795 verification Methods 0.000 claims description 25
- 238000002955 isolation Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 abstract description 8
- 238000007726 management method Methods 0.000 description 91
- 238000004891 communication Methods 0.000 description 37
- 238000000034 method Methods 0.000 description 26
- 230000005540 biological transmission Effects 0.000 description 25
- 238000012360 testing method Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013524 data verification Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 102220637010 Actin-like protein 7A_S10T_mutation Human genes 0.000 description 1
- 102220646098 Actin-like protein 7A_S11A_mutation Human genes 0.000 description 1
- 102220646157 Actin-like protein 7A_S12A_mutation Human genes 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
Definitions
- the present disclosure relates to an information processing apparatus in which isolated computation areas are formed, and an information processing system including a plurality of information processing apparatuses in which isolated computation areas are formed.
- Secure computing is a general term for technologies that enable various processes to be performed while encrypting data.
- data integration between two parties without disclosing the data to each other see, for example, Patent Document 1
- matching of data of both are known.
- security is required in the event that the participants of the secure computation have malicious intent, not an external third party.
- Attacker models that pose a threat to secure computation are roughly classified into two patterns, the "semionest model” and the "malicious model”. It is an attacker who tries to obtain information of other participants from legitimate input and output, and the "malicious model” is an attacker who tries to obtain information of other participants by performing arbitrary data manipulation. .
- the present disclosure has been made in order to solve the above problems, and provides a system designed to be able to respond to attacks from the semi-honest model without causing performance degradation. It is intended to
- An information processing system includes a first information processing device in which a first isolated operation area is formed as an isolated operation area, and a second information processing apparatus in which a second isolated operation area is formed as an isolated operation area. and a management unit configured to generate and manage a data encryption key for encrypting data transmitted and received between the first information processing device and the second information processing device, An information processing system provided inside a first information processing device or said second information processing device, or outside said first information processing device and said second information processing device, said first information processing device sends a data encryption key use request accompanied by first authentication information used by the management unit to verify the integrity of the first application to the management unit by the first application running in the first isolated computing area.
- the management unit verifies the integrity of the first application using the first authentication information and pre-stored first verification information, and only when the integrity is verified and a first management unit configured to transmit the data encryption key to the first information processing device via a secure environment between the management unit and the first information processing device, wherein the first information processing device further comprises: a first encryption unit that encrypts target data to be processed by the first application using the received data encryption key, and transmits the encrypted target data to the second information processing device; wherein the second information processing device encrypts data accompanied by second authentication information used by the management unit to verify the integrity of the second application by the second application running in the second isolated computing area.
- a second processing unit that transmits a key use request to the management unit, and the management unit further verifies the integrity of the second application using the second authentication information and pre-stored second verification information. and only when the integrity is verified, a second management unit that transmits the data encryption key to the second information processing device via a secure environment between the management unit and the second information processing device. The second information processing device further decrypts the encrypted target data received from the first information processing device using the data encryption key received by the second application.
- the first authentication unit used by the management unit to verify the integrity of the first application by the first application running in the first isolated computing area is performed by the first processing unit of the first information processing device.
- the first management unit in the management unit verifies the integrity of the first application using the first authentication information and the pre-stored first verification information, Only when the identity is verified, the data encryption key is transmitted to the first information processing device via a secure environment between the management unit and the first information processing device.
- the data encryption key is transmitted to the first information processing device via the secure environment between the management unit and the first information processing device. sent to.
- integratedity of the first application running in the first isolated computing area is a concept that includes the integrity of the first application itself and the integrity of the first isolated computing area, which is its operating environment. .
- the first encryption unit of the first information processing device encrypts the target data to be processed using the data encryption key received via the secure environment by the first application, and encrypts the encrypted target data.
- the target data is transmitted to the second information processing device.
- the second processing unit of the second information processing device encrypts data accompanied by the second authentication information used by the management unit to verify the integrity of the second application by the second application running in the second isolated computing area.
- the second management unit in the management unit verifies the integrity of the second application using the second authentication information and the pre-stored second verification information, and the integrity is verified. Only in this case, the data encryption key is transmitted to the second information processing device via the secure environment between the management unit and the second information processing device.
- the data encryption key is transferred to the second information processing device via the secure environment between the management unit and the second information processing device. sent to.
- integratedity of the second application running in the second isolated computing area is a concept that includes the integrity of the second application itself and the integrity of the second isolated computing area, which is its operating environment. .
- the second encryption unit of the second information processing device encrypts the encrypted target data received from the first information processing device by the second application using the data encryption key received via the secure environment. to decrypt.
- the second application running in the second isolated computing area and whose integrity has been authenticated decrypts the plaintext using the data encryption key received via the secure environment. data is obtained.
- the data encryption key used for encrypting the target data is shared between the management unit and the first application. It is transmitted to the first information processing device via a secure environment between the information processing devices.
- the data encryption key used for decrypting the target data can be secured between the management unit and the second information processing device. It is transmitted to the second information processing device via the environment. Since the integrity of the applications running in the first and second isolated computational areas (that is, the integrity of the applications themselves and the integrity of the isolated computational areas in which they operate) has been authenticated, Tampering with applications by participants in the process can be prevented.
- a secure communication environment may be used.
- envelope encryption that handles the data key used for data encryption/decryption by encrypting it with a cryptographic key, an encryption method that uses a public/private key pair, etc.
- an example of the latter are described in the embodiments of the invention.
- the data encryption key used for encrypting the target data is transmitted and received between the management unit and the first information processing device. It is possible to prevent falsification of data by a participant (in this case, the second information processing device).
- the data encryption key used for decrypting the target data is transmitted and received between the management unit and the second information processing device via the secure environment between the management unit and the second information processing device, other participation It is possible to prevent data tampering by a person (in this case, the first information processing device).
- a system designed to be able to respond to attacks from the semihonest model can be adapted to respond to attacks from the malicious model without causing performance degradation.
- FIG. 1 is a configuration diagram of an information processing system according to an embodiment of the invention
- FIG. FIG. 2 is a first flow chart showing processing executed in the information processing system according to the embodiment of the invention
- FIG. 4 is a second flowchart showing processing executed by the information processing system according to the embodiment of the invention
- FIG. 11 is a third flowchart showing processing executed by the information processing system according to the embodiment of the invention; It is a block diagram which shows the modification 1 of an information processing system.
- FIG. 11 is a configuration diagram showing a modified example 2 of the information processing system; It is a figure which shows the hardware structural example of an information processing apparatus.
- an information processing system 1 includes a first information processing apparatus 100 in which a first isolated operation area 150 is formed as an isolated operation area, and a second information processing apparatus 100 as an isolated operation area.
- a management unit 300 that includes a second information processing device 200 in which an isolated calculation area 250 is formed and that generates and manages an encryption key and an encrypted data key encrypted with the encryption key controls the first information processing device 100 and It is configured to be provided outside the second information processing apparatus 200 .
- the management unit 300 may be provided inside the first information processing device 100 or the second information processing device 200, but such a modification will be described later.
- Both the first isolated operation area 150 and the second isolated operation area 250 may be formed using physical isolation or logical isolation.
- an example formed using logical isolation is a safe execution environment in which part of the resources such as the memory and CPU of the information processing device can be used and which is logically isolated from the host OS.
- An example is provided by a TEE (Trusted Execution Environment).
- a secure computing participant operating the first information processing device 100 guarantees the reliability of the application running in the first isolated computation area 150 (that is, guarantees that the application is correctly installed). ) has been verified, and in the second information processing device 200, the reliability of the application running in the second isolated computation area 250 has been verified by the secure computation participant who operates the second information processing device 200. and Examples of the method for verifying the reliability of the application include source code review, verification by an external organization, and the like, but the method is not limited to a specific method. On the precondition that the reliability of the applications running in the first and second isolated computation areas has been verified, the processes shown in FIGS. 2 to 4, which will be described later, are executed.
- the integrity of the application running in the first and second isolated computation areas (that is, the integrity of the application itself (for example, the assurance that the application has not been tampered with from a certain point in time), and the isolated computation that is its operating environment area integrity) is verified in the processing of FIGS. 2 to 4, which will be described later.
- the first isolated operation area 150 formed in the first information processing device 100 is specified, and various functional units (for example, the first authentication unit) realized by the applications running in the first isolated operation area 150 are shown. information acquisition unit 153, etc.).
- the second isolated computation area 250 formed in the second information processing device 200 and various functional units implemented by applications running in the management unit 300 are also described.
- the function of each functional unit will be outlined below.
- the first information processing device 100 includes a first transmission/reception control unit 101 realized by an application running outside the first isolated computation area 150 . It serves as an input/output interface with calculation participants, and also functions as a functional unit that operates in the first isolated computation area 150 and performs communication between the second information processing device 200 and the management unit 300 .
- the communication content here widely includes authentication information, data, notification, and the like.
- the first information processing apparatus 100 includes a first internal data communication section 151, a first data processing section 152, a first authentication information acquisition section 153, a first An encryption unit 154 , a first verification unit 155 and a first storage unit 156 are provided.
- the first internal data communication unit 151 is a functional unit that performs communication between the following functional units of the first isolation calculation area 150 and the first transmission/reception control unit 101.
- the first data processing unit 152 is a functional unit that executes arbitrary data processing and calls other functional units according to the processing content.
- the first authentication information acquisition unit 153 generates first authentication information used by the management unit 300 to verify the integrity of the application running in the first isolated computing area 150, and also generates a public key pair (first public key and first public key). 1 private key), and the first authentication information includes, for example, a hash value of the application obtained by a predetermined hash function, and this hash value is initialized by the hash function.
- the integrity of the application itself is verified by the management unit 300 by comparing it with the initial value of the hash value obtained in stages and stored in the management unit 300 .
- the first authentication information also includes test result data output from a predetermined operation test for verifying the integrity of the first isolated computing area 150 itself (operating environment hardware, booting firmware, etc.). This test result data is also compared with the initial value of the test result data obtained in the initial stage and stored in the management unit 300, so that the integrity of the first isolated calculation area 150 itself is confirmed by the management unit 300. verified.
- the first encryption unit 154 uses the first secret key generated by the first authentication information acquisition unit 153 to decrypt the encrypted data key from the management unit 300, and uses the obtained plaintext data key to encrypt the data to be processed.
- the first verification unit 155 is a functional unit that verifies whether the decrypted target data is correct
- the first storage unit 156 is a functional unit that stores various data, authentication information, and the like.
- the second information processing device 200 has the same functional block configuration as the first information processing device 100 described above, and the prefixes such as the names of the functional units provided in the first information processing device 100 are is replaced from "first" to "second". That is, the second internal data communication section 251 corresponds to the first internal data communication section 151 and has the same function. Since the other functional units are the same, redundant explanations will be omitted.
- the management unit 300 includes an authentication information transmission/reception unit 301, an authentication information management unit 302, an authority management unit 303, and an authentication information verification unit 304 as functional units realized by applications running in the management unit 300.
- the authentication information transmission/reception unit 301 is a functional unit that performs communication with the first and second information processing apparatuses, and the authentication information management unit 302 generates, manages, and deletes encryption keys and data keys.
- This is a functional unit that performs encryption of data keys using public keys, encryption/decryption of data keys using encryption keys, and management of authentication information used when confirming authorization to use encryption keys.
- the authority management unit 303 is a functional unit that manages authority for the encryption key of the authentication information management unit 302, and specifically sets usage authority such as who can use the key.
- the authority management unit 303 also manages the operation authority of the authority management function, and specifically sets the operation authority such as who can operate the usage authority.
- the authentication information verification unit 304 compares the authentication information (for example, the hash value of the application) transmitted from each of the first and second information processing apparatuses with the authentication information (for example, the initial value of the hash value of the application) stored in the authority management unit 303 . ) to verify the integrity of the application.
- the authentication information transmitting/receiving unit 301, the authentication information management unit 302, the authority management unit 303, and the authentication information verification unit 304 described above are integrated to form the "first management unit” and the “second management unit” described in the scope of claims. ” function.
- the first transmission/reception control unit 101 of the first information processing device 100 receives an instruction from a secure calculation participant who operates the first information processing device 100, and transmits an encryption key generation request to the management unit 300 (Fig. 2 step S1).
- the encryption key generation request may be sent not from the first information processing apparatus 100 but from the secure calculation participant who operates the first information processing apparatus 100 to the management unit 300 .
- the authentication information transmission/reception unit 301 receives the encryption key generation request
- the authentication information management unit 302 generates an encryption key in response to the request (step S2), further generates a data key, encrypts
- the data key is encrypted with the key to obtain an encrypted data key (step S3).
- the authentication information transmission/reception unit 301 transmits a generation completion notification to the first transmission/reception control unit 101 (step S4).
- an encryption key and an encrypted data key are generated in the management unit 300 and stored by the authentication information management unit 302 .
- the first transmission/reception control unit 101 receives an instruction from the secure calculation participant who operates the first information processing device 100, and transmits an authority setting request for the encryption key to the management unit 300 (step S5).
- the authority setting request may be sent not from the first information processing apparatus 100 but from the secure computation participant who operates the first information processing apparatus 100 to the management unit 300 .
- the authentication information transmission/reception unit 301 receives the authority setting request, the authority management unit 303 sets the usage authority for the encryption key in response to the request (step S6), and the authentication information management unit 302 sets the usage authority.
- the authentication information used for authority confirmation is registered (step S7).
- the initial value of the hash value of the application obtained by a predetermined hash function and the integrity verification of the first isolated computation area 150 itself.
- First authentication information including the initial value of the test result data output by the predetermined operation test in , and the application running in the second isolated calculation area 250, the application obtained by the predetermined hash function The second authentication information including the initial value of the hash value and the initial value of the test result data output by the predetermined operation test for verifying the integrity of the second isolated computation area 250 itself is registered.
- the authority management unit 303 also sets a method for changing the usage authority (step S8).
- Methods for changing the usage authority include, for example, making it impossible for any of the secure computing participants to change the usage authority, and changing the usage authority with the mutual consent of the secure computing participants.
- the authentication information transmission/reception unit 301 transmits a setting completion notification to the first transmission/reception control unit 101 (step S9).
- the usage authority for the encryption key and the method for changing the usage authority are set, and the authentication information used when confirming the usage authority is registered.
- the first transmission/reception control unit 101 transfers the data to be stored in the first information processing device 100 to the first internal data communication unit 151 operating in the first isolated calculation area 150 (step S10A).
- the data received by the first internal data communication section 151 is sent to the first data processing section 152 and stored in the first storage section 156 called by the first data processing section 152 (step S11A).
- the first data processing unit 152 causes the called first internal data communication unit 151 to transmit a storage completion notification to the first transmission/reception control unit 101 (step S12A).
- data to be stored in the second information processing device 200 is also stored in the second storage unit 256 through the processing of steps S10B to S12B in FIG.
- data to be stored (data to be processed or referred to later by the secure calculation application) is input and stored in each of the first and second information processing apparatuses.
- the first transmission/reception control unit 101 receives an instruction from a secure computation participant who operates the first information processing device 100, and transmits a secure computation request to the first internal data communication unit 151 operating in the first isolated computation area 150.
- An application execution instruction is transmitted (step S13 in FIG. 3), and the first data processing unit 152 to which the instruction is transferred from the first internal data communication unit 151 starts secure calculation application processing (step S14), and performs isolation calculation.
- Communication between areas is started (step S15), and the first authentication information acquisition unit 153 is called.
- the first authentication information acquisition unit 153 obtains a hash value of the application running in the first isolated computation area 150 using a predetermined hash function, and also obtains a hash value of the application to verify the integrity of the first isolated computation area 150 itself.
- step S16 obtains the test result data output from the operation test, generates or acquires the first authentication information including the hash value and the test result data, and generates a public key pair for the first isolated computation area. Then, the first data processing unit 152 calls the first internal data communication unit 151, and the first internal data communication unit 151 transmits an encryption key use request accompanied by the first authentication information and the public key of the first isolated calculation area. 1 to the management unit 300 via the transmission/reception control unit 101 (step S17).
- the authentication information verifying unit 304 verifies the received first authentication information.
- the first authentication information is verified by checking whether the included hash value and test result data match the initial value of the hash value and the initial value of the test result data registered in step S7 of FIG. .
- the integrity of the application that is, the integrity of the application itself and the integrity of the isolated computation area itself
- the authentication information verification unit 304 performs authentication.
- Use of the encryption key by the information management unit 302 is permitted (step S18).
- the authentication information management unit 302 uses the encryption key to decrypt the encrypted data key obtained in step S3 above (step S19), obtains the plaintext data key, and performs the first isolation operation.
- the plaintext data key is encrypted using the region's public key (step S20) to obtain an encrypted data key.
- the authentication information managing unit 302 causes the authentication information transmitting/receiving unit 301 to transmit an encryption key use request response accompanied by the encrypted data key to the requesting first data processing unit 152 via the first transmission/reception control unit 101 (step S21).
- the first data processing unit 152 receives the encryption key usage request response with the encrypted data key via the first internal data communication unit 151, calls the first encryption unit 154, and the first encryption unit 154 performs the first isolation calculation.
- the encrypted data key is decrypted using the secret key of the first isolated computation area paired with the public key of the area (step S22).
- the first encryption unit 154 uses the decrypted plaintext data key to encrypt the target data (corresponding to part or all of the data to be stored as described above) (step S23), and then converts the plaintext data key to Delete (step S24).
- the first data processing unit 152 calls the first internal data communication unit 151, and the first internal data communication unit 151 transmits the encrypted target data obtained in step S23 to the first transmission/reception control unit 101 and the It is transmitted to the second internal data communication section 251 operating in the second isolation calculation area 250 via the second transmission/reception control section 201 (step S25).
- the second data processing unit 252 Upon receiving the encrypted target data from the second internal data communication unit 251 , the second data processing unit 252 calls the second authentication information acquisition unit 253 .
- the second authentication information acquisition unit 253 obtains a hash value of the application running in the second isolated computation area 250 by using a predetermined hash function, and also obtains a hash value of the application to verify the integrity of the second isolated computation area 250 itself. obtains the test result data output from the operation test, generates or obtains the second authentication information including the hash value and the test result data, and generates a public key pair for the second isolated computation area (step S26).
- the second data processing unit 252 calls the second internal data communication unit 251, and transmits the encryption key use request accompanied by the second authentication information and the public key of the second isolated calculation area through the second internal data communication unit 251. 2 to the management unit 300 via the transmission/reception control unit 201 (step S27).
- the authentication information verifying unit 304 verifies the received second authentication information.
- the second authentication information is verified by checking whether or not the included hash value and test result data match the initial value of the hash value and the initial value of the test result data registered in step S7 of FIG. .
- the integrity of the application that is, the integrity of the application itself and the integrity of the isolated computation area itself
- the authentication information verification unit 304 performs authentication.
- Use of the encryption key by the information management unit 302 is permitted (step S28).
- the authentication information management unit 302 decrypts the encrypted data key obtained in step S3 using the encryption key (step S29) to obtain the plaintext data key, and the second isolation calculation The plaintext data key is encrypted using the region's public key (step S30) to obtain an encrypted data key. Further, the authentication information managing unit 302 causes the authentication information transmitting/receiving unit 301 to transmit an encryption key use request response accompanied by the encrypted data key to the requesting second data processing unit 252 via the second transmission/reception control unit 201 ( step S31).
- the second data processing unit 252 receives the encryption key usage request response with the encrypted data key via the second internal data communication unit 251, calls the second encryption unit 254, and the second encryption unit 254 performs the second isolation calculation.
- the encrypted data key is decrypted using the secret key of the second isolated calculation area paired with the public key of the area (step S32).
- the second encryption unit 254 uses the decrypted plaintext data key to decrypt the encrypted target data transmitted in step S25 (step S33), and then deletes the plaintext data key (step S34). Then, the second data processing unit 252 transfers the plaintext target data decrypted in step S33 to the second verification unit 255, and the second verification unit 255 verifies the decrypted plaintext target data (step S35).
- the plaintext target data (that is, the target data from the first information processing device 100) is processed by the secure calculation application together with the target data stored in the second information processing device 200.
- FIG. After that, the next process of the secure calculation application is started (step S36), the process returns to step S15, and the same process is repeated.
- steps S16 and S26 does not need to be executed for each processing loop of steps S15 to S36, and may be executed only the first time.
- the condition is that the integrity of the application running in the first isolated computing area 150 and the integrity of the application running in the second isolated computing area 250 are authenticated.
- the "encryption key" necessary to decrypt the data key used to encrypt and decrypt the target data is used to decrypt the data key, and the obtained plaintext data key is used to encrypt and decrypt the target data.
- the "data key" used for encrypting the target data is encrypted using a first public key and first private key pair generated by the application running in the first isolated computation area 150. It is transmitted from the management unit 300 to the first information processing device 100 in a secure format, and is decrypted in the first isolated computation area 150 with the first secret key that can only be used in the first isolated computation area 150 .
- the data encryption key used for encrypting the target data is transmitted and received between the management unit 300 and the first information processing device 100 via the secure environment between the management unit 300 and the first information processing device 100. Therefore, it is possible to prevent falsification of data by another participant (in this case, the second information processing device 200).
- the "data key" used to decrypt the target data is encrypted using a second public key and second private key pair generated by the application running in the second isolated computing area 250. It is transmitted from the management unit 300 to the second information processing device 200 in a secure format, and is decrypted in the second isolated computation area 250 with the second secret key that can only be used in the second isolated computation area 250 .
- the data encryption key used for decrypting the target data is transmitted and received between the management unit 300 and the second information processing device 200 via the secure environment between the management unit 300 and the second information processing device 200. , falsification of data by other participants (in this case, the first information processing device 100) can be prevented.
- a mechanism for preventing the above-described data tampering for example, envelope encryption, which encrypts and handles the data key used for data encryption/decryption with an encryption key
- envelope encryption which encrypts and handles the data key used for data encryption/decryption with an encryption key
- an encryption method using a public key/private key pair, etc. is not an essential requirement, and a secure communication environment between the management unit 300 and each information processing device may be used.
- Both the first isolated operation area 150 and the second isolated operation area 250 may be formed using physical isolation or logical isolation.
- As an example of formation using logical isolation there is an example formed by the TEE described above. Since the TEE is an existing technology, the above-described isolated computation area can be formed relatively easily while suppressing the development cost by effectively utilizing the existing technology.
- FIG. 1 a configuration example in which the management unit 300 is provided outside the first information processing device 100 and the second information processing device 200 has been described. Under the agreement between the secure computation participant on the processing device 100 side and the secure computation participant on the second information processing device 200 side, a configuration provided inside one of the information processing devices can be adopted.
- a configuration (modified example 1) in which the management unit 300 is provided inside the first information processing apparatus 100 may be employed, or as shown in FIG.
- a configuration provided inside the information processing apparatus 200 (Modification 2) may be adopted, and the same effects as those of the above-described embodiment can be obtained.
- each functional block may be implemented using one device physically or logically coupled, or directly or indirectly using two or more physically or logically separated devices (e.g. , wired, wireless, etc.) and may be implemented using these multiple devices.
- a functional block may be implemented by combining software in the one device or the plurality of devices.
- Functions include judging, determining, determining, calculating, calculating, processing, deriving, examining, searching, checking, receiving, transmitting, outputting, accessing, resolving, selecting, choosing, establishing, comparing, assuming, expecting, assuming, Broadcasting, notifying, communicating, forwarding, configuring, reconfiguring, allocating, mapping, assigning, etc.
- a functional block (component) that makes transmission work is called a transmitting unit or transmitter.
- the implementation method is not particularly limited.
- an information processing apparatus may function as a computer that performs processing according to the present embodiment.
- FIG. 7 is a diagram showing a hardware configuration example of the first information processing apparatus 100 according to an embodiment of the present disclosure.
- the first information processing device 100 described above may be physically configured as a computer device including a processor 1001, a memory 1002, a storage 1003, a communication device 1004, an input device 1005, an output device 1006, a bus 1007, and the like.
- the second information processing device 200 may also be configured in the same manner as the first information processing device 100 .
- the word “apparatus” can be read as a circuit, device, unit, etc.
- the hardware configuration of the first information processing apparatus 100 may be configured to include one or more of the devices shown in the figure, or may be configured without some of the devices.
- Each function of the first information processing apparatus 100 is performed by causing the processor 1001 to perform calculations and controlling communication by the communication apparatus 1004 by loading predetermined software (programs) onto hardware such as the processor 1001 and the memory 1002 . , and controlling at least one of reading and writing of data in the memory 1002 and the storage 1003 .
- the processor 1001 for example, operates an operating system and controls the entire computer.
- the processor 1001 may be configured by a central processing unit (CPU) including an interface with peripheral devices, a control device, an arithmetic device, registers, and the like.
- CPU central processing unit
- the processor 1001 reads programs (program codes), software modules, data, etc. from at least one of the storage 1003 and the communication device 1004 to the memory 1002, and executes various processes according to them.
- programs program codes
- software modules software modules
- data etc.
- the program a program that causes a computer to execute at least part of the operations described in the above embodiments is used.
- FIG. Processor 1001 may be implemented by one or more chips. Note that the program may be transmitted from a network via an electric communication line.
- the memory 1002 is a computer-readable recording medium, and is composed of at least one of, for example, ROM (Read Only Memory), EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), RAM (Random Access Memory), etc. may be
- ROM Read Only Memory
- EPROM Erasable Programmable ROM
- EEPROM Electrical Erasable Programmable ROM
- RAM Random Access Memory
- the memory 1002 may also be called a register, cache, main memory (main storage device), or the like.
- the memory 1002 can store executable programs (program code), software modules, etc. for implementing a wireless communication method according to an embodiment of the present disclosure.
- the storage 1003 is a computer-readable recording medium, for example, an optical disc such as a CD-ROM (Compact Disc ROM), a hard disk drive, a flexible disc, a magneto-optical disc (for example, a compact disc, a digital versatile disc, a Blu-ray disk), smart card, flash memory (eg, card, stick, key drive), floppy disk, magnetic strip, and/or the like.
- Storage 1003 may also be called an auxiliary storage device.
- the storage medium described above may be, for example, a database including at least one of memory 1002 and storage 1003, or other suitable medium.
- the communication device 1004 is hardware (transmitting/receiving device) for communicating between computers via at least one of a wired network and a wireless network, and is also called a network device, a network controller, a network card, a communication module, or the like.
- the input device 1005 is an input device (for example, keyboard, mouse, microphone, switch, button, sensor, etc.) that receives input from the outside.
- the output device 1006 is an output device (eg, display, speaker, LED lamp, etc.) that outputs to the outside. Note that the input device 1005 and the output device 1006 may be integrated (for example, a touch panel).
- Each device such as the processor 1001 and the memory 1002 is connected by a bus 1007 for communicating information.
- the bus 1007 may be configured using a single bus, or may be configured using different buses between devices.
- notification of predetermined information is not limited to being performed explicitly, but may be performed implicitly (for example, not notifying the predetermined information). good too.
- Input/output information may be stored in a specific location (for example, memory) or managed using a management table. Input/output information and the like can be overwritten, updated, or appended. The output information and the like may be deleted. The entered information and the like may be transmitted to another device.
- a and B are different may mean “A and B are different from each other.”
- the term may also mean that "A and B are different from C”.
- Terms such as “separate,” “coupled,” etc. may also be interpreted in the same manner as “different.”
- REFERENCE SIGNS LIST 1 information processing system 100 first information processing device 101 first transmission/reception control unit 150 first isolated calculation area 151 first internal data communication unit 152 first data processing unit 153 first 1 authentication information acquisition unit 154 first encryption unit 155 first verification unit 156 first storage unit 200 second information processing device 201 second transmission/reception control unit 250 second isolation calculation area , 251 second internal data communication unit 252 second data processing unit 253 second authentication information acquisition unit 254 second encryption unit 255 second verification unit 256 second storage unit 300 Management unit 301 Authentication information transmission/reception unit 302 Authentication information management unit 303 Authority management unit 304 Authentication information verification unit 1001 Processor 1002 Memory 1003 Storage 1004 Communication device 1005 Input Device, 1006... Output device, 1007... Bus.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Storage Device Security (AREA)
Abstract
管理部(300)は、第1装置(100)からのデータ暗号鍵利用要求に対し、隔離演算領域(150)で稼動する第1アプリの完全性が検証された場合のみ、管理部(300)と第1装置(100)間のセキュアな環境を介してデータ暗号鍵を第1装置(100)へ送信し、第1装置(100)は、第1アプリによって、データ暗号鍵を用いて対象データを暗号化し、暗号化された対象データを第2装置(200)へ送信し、管理部(300)は、第2装置(200)からのデータ暗号鍵利用要求に対し、隔離演算領域(250)で稼動する第2アプリの完全性が検証された場合のみ、管理部(300)と第2装置(200)間のセキュアな環境を介してデータ暗号鍵を第2装置(200)へ送信し、第2装置(200)は、第2アプリによって、データ暗号鍵を用いて、上記暗号化された対象データを復号する。
Description
本開示は、隔離された演算領域が形成された情報処理装置、および、隔離された演算領域が形成された複数の情報処理装置を備える情報処理システムに関する。
秘密計算とは、データを暗号化したまま様々な処理を行うことが可能な技術の総称であり、特に二者間で互いにデータを開示することなく、両者のデータの統合(例えば特許文献1参照)、両者のデータのマッチング(セキュアマッチング)などを行う技術が知られている。このような秘密計算の脅威モデルに対応する上では、外部の第三者ではなく、秘密計算の参加者が悪意を持つ場合の安全性が求められる。秘密計算の脅威となる攻撃者モデルとしては、大別して「セミオネストモデル」、「マリシャスモデル」の2つのパターンが知られており、このうち「セミオネストモデル」は、データ改竄は行わずに、正規の入出力から他の参加者の情報を取得しようとする攻撃者であり、「マリシャスモデル」は、任意のデータ改竄を行って、他の参加者の情報を取得しようとする攻撃者である。
上記のマリシャスモデルからの攻撃に対応するためには、どのような改竄が起きても得られる処理結果が、正直に振る舞う正規の参加者同様であることを保証する必要があり、秘密計算の参加者からのデータが正しい(改竄されていない)ことを逐一検証する必要がある。そのため、セミオネストモデルからの攻撃に対応可能に設計されたシステムを、マリシャスモデルからの攻撃に対応させるためには、上記のような逐一のデータ検証処理を実行することで計算量が増大し、処理速度低下などの性能劣化を招くことが課題となる。
本開示は、上記課題を解決するために成されたものであって、性能劣化を発生させることなく、セミオネストモデルからの攻撃に対応可能に設計されたシステムを、マリシャスモデルからの攻撃に対応させることを目的とする。
本開示に係る情報処理システムは、隔離された演算領域として第1隔離演算領域が形成された第1情報処理装置と、隔離された演算領域として第2隔離演算領域が形成された第2情報処理装置と、を含んだ情報処理システムであり、前記第1情報処理装置と前記第2情報処理装置間で送受信されるデータを暗号化するためのデータ暗号鍵を生成し管理する管理部が、前記第1情報処理装置又は前記第2情報処理装置の内部、又は、前記第1情報処理装置および前記第2情報処理装置の外部に設けられた当該情報処理システムであって、前記第1情報処理装置は、前記第1隔離演算領域で稼動する第1アプリケーションによって、前記管理部が前記第1アプリケーションの完全性を検証するために用いる第1認証情報を伴うデータ暗号鍵利用要求を前記管理部へ送信する第1処理部、を備え、前記管理部は、前記第1認証情報および予め記憶した第1検証情報を用いて前記第1アプリケーションの完全性を検証し、前記完全性が検証された場合のみ、前記管理部と前記第1情報処理装置間のセキュアな環境を介して前記データ暗号鍵を前記第1情報処理装置へ送信する第1管理部、を備え、前記第1情報処理装置は、さらに、前記第1アプリケーションによって、受信された前記データ暗号鍵を用いて、処理対象とされる対象データを暗号化し、暗号化された対象データを前記第2情報処理装置へ送信する第1暗号部、を備え、前記第2情報処理装置は、前記第2隔離演算領域で稼動する第2アプリケーションによって、前記管理部が前記第2アプリケーションの完全性を検証するために用いる第2認証情報を伴うデータ暗号鍵利用要求を前記管理部へ送信する第2処理部、を備え、前記管理部は、さらに、前記第2認証情報および予め記憶した第2検証情報を用いて前記第2アプリケーションの完全性を検証し、前記完全性が検証された場合のみ、前記管理部と前記第2情報処理装置間のセキュアな環境を介して前記データ暗号鍵を前記第2情報処理装置へ送信する第2管理部、を備え、前記第2情報処理装置は、さらに、前記第2アプリケーションによって、受信された前記データ暗号鍵を用いて、前記第1情報処理装置から受信した前記暗号化された対象データを復号する第2暗号部、を備える。
上記の情報処理システムでは、第1情報処理装置の第1処理部が、第1隔離演算領域で稼動する第1アプリケーションによって、管理部が第1アプリケーションの完全性を検証するために用いる第1認証情報を伴うデータ暗号鍵利用要求を管理部へ送信すると、管理部における第1管理部は、第1認証情報および予め記憶した第1検証情報を用いて第1アプリケーションの完全性を検証し、完全性が検証された場合のみ、管理部と第1情報処理装置間のセキュアな環境を介して、データ暗号鍵を第1情報処理装置へ送信する。以上により、第1隔離演算領域で稼動する第1アプリケーションの完全性が検証された場合のみ、データ暗号鍵が、管理部と第1情報処理装置間のセキュアな環境を介して第1情報処理装置へ送信される。なお、上記「第1隔離演算領域で稼動する第1アプリケーションの完全性」とは、第1アプリケーション自体の完全性、および、その稼動環境である第1隔離演算領域の完全性を含む概念である。
そして、第1情報処理装置の第1暗号部は、第1アプリケーションによって、セキュアな環境を介して受信されたデータ暗号鍵を用いて、処理対象とされる対象データを暗号化し、暗号化された対象データを第2情報処理装置へ送信する。
そして、第2情報処理装置の第2処理部が、第2隔離演算領域で稼動する第2アプリケーションによって、管理部が第2アプリケーションの完全性を検証するために用いる第2認証情報を伴うデータ暗号鍵利用要求を管理部へ送信すると、管理部における第2管理部は、第2認証情報および予め記憶した第2検証情報を用いて第2アプリケーションの完全性を検証し、完全性が検証された場合のみ、管理部と第2情報処理装置間のセキュアな環境を介して、データ暗号鍵を第2情報処理装置へ送信する。以上により、第2隔離演算領域で稼動する第2アプリケーションの完全性が検証された場合のみ、データ暗号鍵が、管理部と第2情報処理装置間のセキュアな環境を介して第2情報処理装置へ送信される。なお、上記「第2隔離演算領域で稼動する第2アプリケーションの完全性」とは、第2アプリケーション自体の完全性、および、その稼動環境である第2隔離演算領域の完全性を含む概念である。
さらに、第2情報処理装置の第2暗号部は、第2アプリケーションによって、セキュアな環境を介して受信されたデータ暗号鍵を用いて、第1情報処理装置から受信した上記暗号化された対象データを復号する。このように第2情報処理装置において、第2隔離演算領域で稼動する完全性が認証された第2アプリケーションによって、セキュアな環境を介して受信されたデータ暗号鍵を用いた復号により、平文の対象データが得られる。
以上のような一連の処理では、第1隔離演算領域で稼動する第1アプリケーションの完全性が認証されたことを条件として、対象データの暗号化で用いられるデータ暗号鍵が、管理部と第1情報処理装置間のセキュアな環境を介して第1情報処理装置へ送信される。同様に、第2隔離演算領域で稼動する第2アプリケーションの完全性が認証されたことを条件として、対象データの復号で用いられるデータ暗号鍵が、管理部と第2情報処理装置間のセキュアな環境を介して第2情報処理装置へ送信される。このように第1、第2隔離演算領域で稼動するアプリケーションの完全性(即ち、アプリケーション自体の完全性およびその稼動環境である隔離演算領域の完全性)が認証されたことを条件とするため、処理への参加者によるアプリケーション改竄を未然に防ぐことができる。
上述した管理部と第1情報処理装置間のセキュアな環境、および管理部と第2情報処理装置間のセキュアな環境としては、セキュアな通信環境を利用してもよいし、データ改竄を防ぐためのしくみ(例えば、データの暗号化・復号で用いるデータ鍵を暗号鍵で暗号化して取り扱うエンベロープ暗号化、公開鍵・秘密鍵ペアを用いる暗号化手法など)を利用してもよく、後者の一例は、発明の実施形態において説明する。このような管理部と第1情報処理装置間のセキュアな環境を介して、対象データの暗号化で用いられるデータ暗号鍵が、管理部と第1情報処理装置間で送受信されるため、他の参加者(この場合、第2情報処理装置)によるデータ改竄を未然に防ぐことができる。同様に、管理部と第2情報処理装置間のセキュアな環境を介して、対象データの復号で用いられるデータ暗号鍵が、管理部と第2情報処理装置間で送受信されるため、他の参加者(この場合、第1情報処理装置)によるデータ改竄を未然に防ぐことができる。
即ち、処理への参加者からの「データ改竄」と「アプリケーション改竄」の両方を防止することができるため、従来のような逐一のデータ検証処理は不要となり、性能劣化を発生させることなく、セミオネストモデルからの攻撃に対応可能に設計されたシステムを、マリシャスモデルからの攻撃に対応させることができる。
本開示によれば、性能劣化を発生させることなく、セミオネストモデルからの攻撃に対応可能に設計されたシステムを、マリシャスモデルからの攻撃に対応させることができる。
以下、図面を参照しながら、本開示に係る実施形態を説明する。
(情報処理システムの構成について)
図1に示すように、本実施形態に係る情報処理システム1は、隔離された演算領域として第1隔離演算領域150が形成された第1情報処理装置100と、隔離された演算領域として第2隔離演算領域250が形成された第2情報処理装置200とを含み、暗号鍵および当該暗号鍵で暗号化された暗号化データ鍵を生成し管理する管理部300が、第1情報処理装置100および第2情報処理装置200の外部に設けられた構成とされている。なお、管理部300は、第1情報処理装置100又は第2情報処理装置200の内部に設けられてもよいが、このような変形例は後述する。また、第1隔離演算領域150、第2隔離演算領域250はともに、物理的な隔離を利用して形成されてもよいし、論理的な隔離を利用して形成されてもよい。このうち、論理的な隔離を利用して形成される例としては、情報処理装置のメモリ、CPUなどのリソースの一部を使用可能とされ且つホストOSから論理的に隔離された安全な実行環境であるTEE(Trusted Execution Environment)によって形成される例が挙げられる。
図1に示すように、本実施形態に係る情報処理システム1は、隔離された演算領域として第1隔離演算領域150が形成された第1情報処理装置100と、隔離された演算領域として第2隔離演算領域250が形成された第2情報処理装置200とを含み、暗号鍵および当該暗号鍵で暗号化された暗号化データ鍵を生成し管理する管理部300が、第1情報処理装置100および第2情報処理装置200の外部に設けられた構成とされている。なお、管理部300は、第1情報処理装置100又は第2情報処理装置200の内部に設けられてもよいが、このような変形例は後述する。また、第1隔離演算領域150、第2隔離演算領域250はともに、物理的な隔離を利用して形成されてもよいし、論理的な隔離を利用して形成されてもよい。このうち、論理的な隔離を利用して形成される例としては、情報処理装置のメモリ、CPUなどのリソースの一部を使用可能とされ且つホストOSから論理的に隔離された安全な実行環境であるTEE(Trusted Execution Environment)によって形成される例が挙げられる。
上記第1情報処理装置100では、第1情報処理装置100を操作する秘密計算参加者によって、第1隔離演算領域150で稼動するアプリケーションの信頼性(即ち、アプリケーションが正しく実装されていることの保証)が検証済みであり、また、第2情報処理装置200では、第2情報処理装置200を操作する秘密計算参加者によって、第2隔離演算領域250で稼動するアプリケーションの信頼性が検証済みであるとする。なお、上記のアプリケーションの信頼性の検証方法としては、例えばソースコードのレビュー、外部機関による検証等が挙げられるが、特定の方法に限定されるものではない。このような第1、第2隔離演算領域で稼動するアプリケーションの信頼性が検証済みであることを前提条件として、後述の図2~図4の処理が実行される。一方、第1、第2隔離演算領域で稼動するアプリケーションの完全性(即ち、アプリケーション自体の完全性(例えばアプリケーションが、ある時点から改竄されていないことの保証)、およびその稼動環境である隔離演算領域の完全性)については、後述の図2~図4の処理において検証される。
図1の機能ブロック図では、第1情報処理装置100に形成された第1隔離演算領域150を明記し、第1隔離演算領域150で稼動するアプリケーションによって実現する様々な機能部(例えば第1認証情報取得部153など)を記載している。第2情報処理装置200に形成された第2隔離演算領域250についても同様であり、また、管理部300で稼動するアプリケーションによって実現する様々な機能部も記載している。以下、各機能部の機能を概説する。
第1情報処理装置100は、第1隔離演算領域150の外で稼動するアプリケーションによって実現する第1送受信制御部101を備え、第1送受信制御部101は、第1情報処理装置100を操作する秘密計算参加者との入出力インタフェースとなり、また、第1隔離演算領域150で稼動する機能部、第2情報処理装置200および管理部300との間の通信を行う機能部である。ここでの通信内容には、認証情報、データ、通知などが広く含まれる。
第1情報処理装置100は、第1隔離演算領域150で稼動するアプリケーションによって実現する機能部として、第1内部データ通信部151、第1データ処理部152、第1認証情報取得部153、第1暗号部154、第1検証部155、および第1記憶部156を備える。
このうち、第1内部データ通信部151は、第1隔離演算領域150の下記の各機能部と第1送受信制御部101との間の通信を行う機能部であり、第1データ処理部152は、任意のデータ処理を実行し、処理内容に応じて他の機能部を呼び出す機能部である。第1認証情報取得部153は、第1隔離演算領域150で稼動するアプリケーションの完全性を管理部300が検証するために用いる第1認証情報を生成するとともに公開鍵ペア(第1公開鍵および第1秘密鍵)を生成する機能部であり、上記の第1認証情報には、例えば、予め定められたハッシュ関数により求めたアプリケーションのハッシュ値が含まれ、このハッシュ値は、上記ハッシュ関数により初期段階で求められ、管理部300に保管されたハッシュ値の初期値と比較されることで、当該アプリケーション自体の完全性が管理部300によって検証される。また、第1認証情報には、第1隔離演算領域150自体(動作環境のハードウェア、起動するファームウェアなど)の完全性検証のために、予め定められた動作試験により出力された試験結果データも含まれ、この試験結果データについても、初期段階で求められ管理部300に保管された試験結果データの初期値と比較されることで、第1隔離演算領域150自体の完全性が管理部300によって検証される。第1暗号部154は、第1認証情報取得部153が生成した第1秘密鍵を用いて管理部300からの暗号化データ鍵を復号し、得られた平文データ鍵を用いて、処理対象とされる対象データを暗号化・復号する機能部である。第1検証部155は、復号された対象データが正しいかを検証する機能部であり、第1記憶部156は、様々なデータ、認証情報などを格納する機能部である。
図1より明らかなように、第2情報処理装置200は、上述した第1情報処理装置100と同様の機能ブロック構成とされ、第1情報処理装置100が備える各機能部の名称等の接頭辞を「第1」から「第2」へ入れ替えた様々な機能部を備えている。即ち、第2内部データ通信部251が、上記第1内部データ通信部151に対応し、同様の機能を備えている。他の機能部も同様であるので、重複した説明は省略する。
管理部300は、管理部300で稼動するアプリケーションによって実現する機能部として、認証情報送受信部301、認証情報管理部302、権限管理部303、および認証情報検証部304を備える。このうち、認証情報送受信部301は、第1、第2情報処理装置それぞれとの間の通信を行う機能部であり、認証情報管理部302は、暗号鍵およびデータ鍵の生成・管理・削除、公開鍵を用いたデータ鍵の暗号化、暗号鍵を用いたデータ鍵の暗号化・復号、暗号鍵利用権限確認の際に利用する認証情報の管理などを行う機能部である。権限管理部303は、認証情報管理部302の暗号鍵に対する権限管理を行う機能部であり、具体的には、誰が鍵を利用できるかといった利用権限を設定する。また、権限管理部303は、権限管理機能の操作権限管理も行い、具体的には、誰が利用権限を操作できるかといった操作権限を設定する。認証情報検証部304は、第1、第2情報処理装置それぞれから送信された認証情報(例えばアプリケーションのハッシュ値)と、権限管理部303に格納された認証情報(例えばアプリケーションのハッシュ値の初期値)とを比較することで、アプリケーションの完全性を検証する機能部である。上述した認証情報送受信部301、認証情報管理部302、権限管理部303、および認証情報検証部304が一体となって、特許請求の範囲に記載した「第1管理部」および「第2管理部」の機能を発揮する。
(情報処理システムにて実行される処理について)
図1の情報処理システム1では、図2~図4に示す処理が実行される。前述したように第1、第2隔離演算領域で稼動するアプリケーションの信頼性が検証済みであることを前提条件として、後述の図2~図4の処理が実行される。なお、図2~図4では、第1隔離演算領域150で稼動する機能部による処理は「第1隔離演算領域」の縦の列に、第2隔離演算領域250で稼動する機能部による処理は「第2隔離演算領域」の縦の列に、それぞれ記載しており、図2の記号A1は、次の図面(図3)の同じ記号A1へ処理が継続することを意味している。他の記号A2、B1、B2、…、E2も同様である。
図1の情報処理システム1では、図2~図4に示す処理が実行される。前述したように第1、第2隔離演算領域で稼動するアプリケーションの信頼性が検証済みであることを前提条件として、後述の図2~図4の処理が実行される。なお、図2~図4では、第1隔離演算領域150で稼動する機能部による処理は「第1隔離演算領域」の縦の列に、第2隔離演算領域250で稼動する機能部による処理は「第2隔離演算領域」の縦の列に、それぞれ記載しており、図2の記号A1は、次の図面(図3)の同じ記号A1へ処理が継続することを意味している。他の記号A2、B1、B2、…、E2も同様である。
まず、第1情報処理装置100の第1送受信制御部101は、第1情報処理装置100を操作する秘密計算参加者からの指示を受けて、暗号鍵生成要求を管理部300へ送信する(図2のステップS1)。なお、暗号鍵生成要求は、第1情報処理装置100からでなく、第1情報処理装置100を操作する秘密計算参加者から管理部300へ送信してもよい。管理部300では、認証情報送受信部301が暗号鍵生成要求を受信し、認証情報管理部302が、上記要求に対し、暗号鍵を生成し(ステップS2)、さらに、データ鍵を生成し、暗号鍵でデータ鍵を暗号化して暗号化データ鍵を得る(ステップS3)。その後、認証情報送受信部301が第1送受信制御部101へ生成完了通知を送信する(ステップS4)。以上により、管理部300において、暗号鍵および暗号化データ鍵が生成され、認証情報管理部302により保管される。
次に、第1送受信制御部101は、第1情報処理装置100を操作する秘密計算参加者からの指示を受けて、暗号鍵に対する権限設定要求を管理部300へ送信する(ステップS5)。なお、権限設定要求は、第1情報処理装置100からでなく、第1情報処理装置100を操作する秘密計算参加者から管理部300へ送信してもよい。管理部300では、認証情報送受信部301が権限設定要求を受信し、権限管理部303が、上記要求に対し、暗号鍵に対する利用権限を設定し(ステップS6)、認証情報管理部302が、利用権限確認の際に利用する認証情報を登録する(ステップS7)。ここでは、例えば、第1隔離演算領域150で稼動するアプリケーションについて、予め定められたハッシュ関数により求めた当該アプリケーションのハッシュ値の初期値、および、第1隔離演算領域150自体の完全性検証のために予め定められた動作試験により出力された試験結果データの初期値を含む第1認証情報、並びに、第2隔離演算領域250で稼動するアプリケーションについて、予め定められたハッシュ関数により求めた当該アプリケーションのハッシュ値の初期値、および、第2隔離演算領域250自体の完全性検証のために予め定められた動作試験により出力された試験結果データの初期値を含む第2認証情報が登録される。また、権限管理部303は、利用権限の変更方法の設定も行う(ステップS8)。ここでの利用権限の変更方法としては、例えば、いずれの秘密計算参加者からも利用権限を変更不可能な状態にすること、秘密計算参加者双方の合意を以て変更すること等が挙げられる。その後、認証情報送受信部301が第1送受信制御部101へ設定完了通知を送信する(ステップS9)。以上により、管理部300において、暗号鍵に対する利用権限および利用権限の変更方法が設定されるとともに、利用権限確認の際に利用する認証情報が登録される。
次に、格納すべきデータ(後に秘密計算アプリケーションで処理される又は参照等されるデータ)が以下のように入力され格納される。第1送受信制御部101は、第1情報処理装置100において格納すべきデータを、第1隔離演算領域150で稼動する第1内部データ通信部151へ転送する(ステップS10A)。第1内部データ通信部151で受信されたデータは、第1データ処理部152へ送られ、第1データ処理部152により呼び出された第1記憶部156に格納される(ステップS11A)。格納完了すると、第1データ処理部152は、呼び出した第1内部データ通信部151によって、格納完了通知を第1送受信制御部101へ送信させる(ステップS12A)。第2情報処理装置200において格納すべきデータについても同様に、図2のステップS10B~S12Bの処理により、第2記憶部256に格納される。以上により、第1、第2情報処理装置それぞれにおいて、格納すべきデータ(後に秘密計算アプリケーションで処理される又は参照等されるデータ)が入力され格納される。
次に、第1送受信制御部101は、第1情報処理装置100を操作する秘密計算参加者からの指示を受けて、第1隔離演算領域150で稼動する第1内部データ通信部151へ秘密計算アプリケーション実行指示を送信し(図3のステップS13)、同指示を第1内部データ通信部151から転送された第1データ処理部152が、秘密計算アプリケーション処理を開始し(ステップS14)、隔離演算領域間の通信開始し(ステップS15)、第1認証情報取得部153を呼び出す。第1認証情報取得部153は、第1隔離演算領域150で稼動するアプリケーションについて、予め定められたハッシュ関数によって当該アプリケーションのハッシュ値を求めるとともに、第1隔離演算領域150自体の完全性検証のための動作試験により出力された試験結果データを得て、上記ハッシュ値および試験結果データを含む第1認証情報を生成又は取得し、第1隔離演算領域の公開鍵ペアを生成する(ステップS16)。そして、第1データ処理部152は、第1内部データ通信部151を呼び出して、第1認証情報および第1隔離演算領域の公開鍵を伴う暗号鍵利用要求を第1内部データ通信部151によって第1送受信制御部101経由で管理部300へ送信させる(ステップS17)。
管理部300では、認証情報送受信部301が、第1認証情報および第1隔離演算領域の公開鍵を伴う暗号鍵利用要求を受信した後、認証情報検証部304が、受信した第1認証情報に含まれるハッシュ値および試験結果データと、図2のステップS7で登録したハッシュ値の初期値および試験結果データの初期値とがそれぞれ一致するか否かをチェックすることで第1認証情報を検証する。ここで、第1隔離演算領域150で稼動するアプリケーションが改竄されておらず、稼動環境である第1隔離演算領域150も改変されていなければ、第1認証情報に含まれるハッシュ値および試験結果データと、それぞれの初期値とが一致し、上記アプリケーションの完全性(即ち、アプリケーション自体の完全性および隔離演算領域自体の完全性)が検証され(認証成功となり)、認証情報検証部304は、認証情報管理部302による暗号鍵の利用を許可する(ステップS18)。
上記の許可を受けて、認証情報管理部302は、暗号鍵を用いて、上記ステップS3で得られた暗号化データ鍵を復号して(ステップS19)平文データ鍵を得て、第1隔離演算領域の公開鍵を用いて平文データ鍵を暗号化して(ステップS20)暗号化データ鍵を得る。さらに、認証情報管理部302は、暗号化データ鍵を伴う暗号鍵利用要求応答を、認証情報送受信部301によって第1送受信制御部101経由で、要求元の第1データ処理部152へ送信させる(ステップS21)。
暗号化データ鍵を伴う暗号鍵利用要求応答を第1内部データ通信部151経由で受信した第1データ処理部152は、第1暗号部154を呼び出し、第1暗号部154によって、第1隔離演算領域の公開鍵とペアである第1隔離演算領域の秘密鍵を用いて暗号化データ鍵を復号させる(ステップS22)。さらに、第1暗号部154は、復号された平文データ鍵を用いて、対象データ(前述した格納すべきデータの一部又は全部に相当)を暗号化し(ステップS23)、その後、平文データ鍵を削除する(ステップS24)。そして、第1データ処理部152は、第1内部データ通信部151を呼び出して、ステップS23で得られた暗号化された対象データを、第1内部データ通信部151によって第1送受信制御部101および第2送受信制御部201経由で、第2隔離演算領域250において稼動する第2内部データ通信部251へ送信させる(ステップS25)。
暗号化された対象データを第2内部データ通信部251から転送された第2データ処理部252は、第2認証情報取得部253を呼び出す。第2認証情報取得部253は、第2隔離演算領域250で稼動するアプリケーションについて、予め定められたハッシュ関数によって当該アプリケーションのハッシュ値を求めるとともに、第2隔離演算領域250自体の完全性検証のための動作試験により出力された試験結果データを得て、上記ハッシュ値および試験結果データを含む第2認証情報を生成又は取得し、第2隔離演算領域の公開鍵ペアを生成する(図4のステップS26)。そして、第2データ処理部252は、第2内部データ通信部251を呼び出して、第2認証情報および第2隔離演算領域の公開鍵を伴う暗号鍵利用要求を第2内部データ通信部251によって第2送受信制御部201経由で管理部300へ送信させる(ステップS27)。
管理部300では、認証情報送受信部301が、第2認証情報および第2隔離演算領域の公開鍵を伴う暗号鍵利用要求を受信した後、認証情報検証部304が、受信した第2認証情報に含まれるハッシュ値および試験結果データと、図2のステップS7で登録したハッシュ値の初期値および試験結果データの初期値とがそれぞれ一致するか否かをチェックすることで第2認証情報を検証する。ここで、第2隔離演算領域250で稼動するアプリケーションが改竄されておらず、稼動環境である第2隔離演算領域250も改変されていなければ、第2認証情報に含まれるハッシュ値および試験結果データと、それぞれの初期値とが一致し、上記アプリケーションの完全性(即ち、アプリケーション自体の完全性および隔離演算領域自体の完全性)が検証され(認証成功となり)、認証情報検証部304は、認証情報管理部302による暗号鍵の利用を許可する(ステップS28)。
上記の許可を受けて、認証情報管理部302は、暗号鍵を用いて、上記ステップS3で得られた暗号化データ鍵を復号して(ステップS29)平文データ鍵を得て、第2隔離演算領域の公開鍵を用いて平文データ鍵を暗号化して(ステップS30)暗号化データ鍵を得る。さらに、認証情報管理部302は、暗号化データ鍵を伴う暗号鍵利用要求応答を、認証情報送受信部301によって第2送受信制御部201経由で、要求元の第2データ処理部252へ送信させる(ステップS31)。
暗号化データ鍵を伴う暗号鍵利用要求応答を第2内部データ通信部251経由で受信した第2データ処理部252は、第2暗号部254を呼び出し、第2暗号部254によって、第2隔離演算領域の公開鍵とペアである第2隔離演算領域の秘密鍵を用いて暗号化データ鍵を復号させる(ステップS32)。さらに、第2暗号部254は、復号された平文データ鍵を用いて、ステップS25で送信されてきた暗号化された対象データを復号し(ステップS33)、その後、平文データ鍵を削除する(ステップS34)。そして、第2データ処理部252は、ステップS33で復号された平文の対象データを第2検証部255へ転送し、第2検証部255は、上記復号された平文の対象データを検証する(ステップS35)。検証結果として問題なければ、平文の対象データ(即ち、第1情報処理装置100からの対象データ)は、第2情報処理装置200で格納した対象データとともに、秘密計算アプリケーションの処理対象とされる。その後は、秘密計算アプリケーションの次の処理が開始され(ステップS36)、ステップS15へ戻り、同様の処理が繰り返される。
なお、上記ステップS16、S26における公開鍵ペアの生成は、ステップS15~S36の処理ループ毎に実行する必要はなく、初回のみ実行してもよい。
以上説明した実施形態によれば、第1隔離演算領域150で稼動するアプリケーションの完全性が認証されたこと、および、第2隔離演算領域250で稼動するアプリケーションの完全性が認証されたことを条件として、対象データの暗号化および復号で使用されるデータ鍵を復号するために必要な「暗号鍵」が使用されてデータ鍵が復号され、得られた平文データ鍵が対象データの暗号化・復号で使用される。このように第1、第2隔離演算領域で稼動するアプリケーションの完全性(即ち、アプリケーション自体の完全性およびその稼動環境である隔離演算領域の完全性)が認証されたことを条件とするため、秘密計算参加者によるアプリケーション改竄を未然に防ぐことができる。
また、対象データの暗号化で使用される「データ鍵」は、第1隔離演算領域150で稼動するアプリケーションによって生成された第1公開鍵と第1秘密鍵のペアを用いて、暗号化されたセキュアな形式で管理部300から第1情報処理装置100へ送信され、第1隔離演算領域150において、第1隔離演算領域150でしか利用できない第1秘密鍵で復号される。このように管理部300と第1情報処理装置100間のセキュアな環境を介して、対象データの暗号化で用いられるデータ暗号鍵が、管理部300と第1情報処理装置100間で送受信されるため、他の参加者(この場合、第2情報処理装置200)によるデータ改竄を未然に防ぐことができる。同様に、対象データの復号で使用される「データ鍵」は、第2隔離演算領域250で稼動するアプリケーションによって生成された第2公開鍵と第2秘密鍵のペアを用いて、暗号化されたセキュア形式で管理部300から第2情報処理装置200へ送信され、第2隔離演算領域250において、第2隔離演算領域250でしか利用できない第2秘密鍵で復号される。このように管理部300と第2情報処理装置200間のセキュアな環境を介して、対象データの復号で用いられるデータ暗号鍵が、管理部300と第2情報処理装置200間で送受信されるため、他の参加者(この場合、第1情報処理装置100)によるデータ改竄を未然に防ぐことができる。なお、管理部300と各情報処理装置間のセキュアな環境として、上述したデータ改竄を防ぐためのしくみ(例えば、データの暗号化・復号で用いるデータ鍵を暗号鍵で暗号化して取り扱うエンベロープ暗号化、公開鍵・秘密鍵ペアを用いる暗号化手法など)を利用することは必須要件ではなく、管理部300と各情報処理装置間のセキュアな通信環境を利用してもよい。
このように、秘密計算参加者からの「データ改竄」と「アプリケーション改竄」の両方を防止することができるため、従来のような逐一のデータ検証処理は不要となり、性能劣化を発生させることなく、セミオネストモデルからの攻撃に対応可能に設計されたシステムを、マリシャスモデルからの攻撃に対応させることができる。
また、第1隔離演算領域150、第2隔離演算領域250はともに、物理的な隔離を利用して形成されてもよいし、論理的な隔離を利用して形成されてもよく、このうち、論理的な隔離を利用して形成する例としては、前述したTEEによって形成される例が挙げられる。TEEは既存技術であるため、上記の隔離演算領域は、既存技術を有効に活用して、開発コストを抑えつつ比較的簡易に形成することができる。
(情報処理システムの変形例)
上記の実施形態では、図1のように、管理部300が第1情報処理装置100および第2情報処理装置200の外部に設けられた構成例を説明したが、管理部300は、第1情報処理装置100側の秘密計算参加者と第2情報処理装置200側の秘密計算参加者との合意のもとに、いずれかの情報処理装置の内部に設けられた構成を採用することができる。例えば、図5のように、管理部300が第1情報処理装置100の内部に設けられた構成(変形例1)を採用してもよいし、図6のように、管理部300が第2情報処理装置200の内部に設けられた構成(変形例2)を採用してもよく、上記実施形態と同様の効果を得ることができる。
上記の実施形態では、図1のように、管理部300が第1情報処理装置100および第2情報処理装置200の外部に設けられた構成例を説明したが、管理部300は、第1情報処理装置100側の秘密計算参加者と第2情報処理装置200側の秘密計算参加者との合意のもとに、いずれかの情報処理装置の内部に設けられた構成を採用することができる。例えば、図5のように、管理部300が第1情報処理装置100の内部に設けられた構成(変形例1)を採用してもよいし、図6のように、管理部300が第2情報処理装置200の内部に設けられた構成(変形例2)を採用してもよく、上記実施形態と同様の効果を得ることができる。
(用語の説明、ハードウェア構成(図7)の説明など)
なお、上記の実施形態、変形例の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック(構成部)は、ハードウェア及びソフトウェアの少なくとも一方の任意の組み合わせによって実現される。また、各機能ブロックの実現方法は特に限定されない。すなわち、各機能ブロックは、物理的又は論理的に結合した1つの装置を用いて実現されてもよいし、物理的又は論理的に分離した2つ以上の装置を直接的又は間接的に(例えば、有線、無線などを用いて)接続し、これら複数の装置を用いて実現されてもよい。機能ブロックは、上記1つの装置又は上記複数の装置にソフトウェアを組み合わせて実現されてもよい。
なお、上記の実施形態、変形例の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック(構成部)は、ハードウェア及びソフトウェアの少なくとも一方の任意の組み合わせによって実現される。また、各機能ブロックの実現方法は特に限定されない。すなわち、各機能ブロックは、物理的又は論理的に結合した1つの装置を用いて実現されてもよいし、物理的又は論理的に分離した2つ以上の装置を直接的又は間接的に(例えば、有線、無線などを用いて)接続し、これら複数の装置を用いて実現されてもよい。機能ブロックは、上記1つの装置又は上記複数の装置にソフトウェアを組み合わせて実現されてもよい。
機能には、判断、決定、判定、計算、算出、処理、導出、調査、探索、確認、受信、送信、出力、アクセス、解決、選択、選定、確立、比較、想定、期待、見做し、報知(broadcasting)、通知(notifying)、通信(communicating)、転送(forwarding)、構成(configuring)、再構成(reconfiguring)、割り当て(allocating、mapping)、割り振り(assigning)などがあるが、これらに限られない。たとえば、送信を機能させる機能ブロック(構成部)は、送信部(transmitting unit)、送信機(transmitter)と呼称される。いずれも、上述したとおり、実現方法は特に限定されない。
例えば、本開示の一実施の形態における情報処理装置は、本実施形態における処理を行うコンピュータとして機能してもよい。図7は、本開示の一実施の形態に係る第1情報処理装置100のハードウェア構成例を示す図である。上述の第1情報処理装置100は、物理的には、プロセッサ1001、メモリ1002、ストレージ1003、通信装置1004、入力装置1005、出力装置1006、バス1007などを含むコンピュータ装置として構成されてもよい。なお、第2情報処理装置200も、第1情報処理装置100と同様に構成されてよい。
以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。第1情報処理装置100のハードウェア構成は、図に示した各装置を1つ又は複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
第1情報処理装置100における各機能は、プロセッサ1001、メモリ1002などのハードウェア上に所定のソフトウェア(プログラム)を読み込ませることによって、プロセッサ1001が演算を行い、通信装置1004による通信を制御したり、メモリ1002及びストレージ1003におけるデータの読み出し及び書き込みの少なくとも一方を制御したりすることによって実現される。
プロセッサ1001は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ1001は、周辺装置とのインタフェース、制御装置、演算装置、レジスタなどを含む中央処理装置(CPU:Central Processing Unit)によって構成されてもよい。
また、プロセッサ1001は、プログラム(プログラムコード)、ソフトウェアモジュール、データなどを、ストレージ1003及び通信装置1004の少なくとも一方からメモリ1002に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態において説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。上述の各種処理は、1つのプロセッサ1001によって実行される旨を説明してきたが、2以上のプロセッサ1001により同時又は逐次に実行されてもよい。プロセッサ1001は、1以上のチップによって実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されても良い。
メモリ1002は、コンピュータ読み取り可能な記録媒体であり、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、RAM(Random Access Memory)などの少なくとも1つによって構成されてもよい。メモリ1002は、レジスタ、キャッシュ、メインメモリ(主記憶装置)などと呼ばれてもよい。メモリ1002は、本開示の一実施の形態に係る無線通信方法を実施するために実行可能なプログラム(プログラムコード)、ソフトウェアモジュールなどを保存することができる。
ストレージ1003は、コンピュータ読み取り可能な記録媒体であり、例えば、CD-ROM(Compact Disc ROM)などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu-ray(登録商標)ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー(登録商標)ディスク、磁気ストリップなどの少なくとも1つによって構成されてもよい。ストレージ1003は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ1002及びストレージ1003の少なくとも一方を含むデータベース、その他の適切な媒体であってもよい。
通信装置1004は、有線ネットワーク及び無線ネットワークの少なくとも一方を介してコンピュータ間の通信を行うためのハードウェア(送受信デバイス)であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。
入力装置1005は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサなど)である。出力装置1006は、外部への出力を実施する出力デバイス(例えば、ディスプレイ、スピーカー、LEDランプなど)である。なお、入力装置1005及び出力装置1006は、一体となった構成(例えば、タッチパネル)であってもよい。 また、プロセッサ1001、メモリ1002などの各装置は、情報を通信するためのバス1007によって接続される。バス1007は、単一のバスを用いて構成されてもよいし、装置間ごとに異なるバスを用いて構成されてもよい。
本開示において説明した各態様/実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知(例えば、「Xであること」の通知)は、明示的に行うものに限られず、暗黙的(例えば、当該所定の情報の通知を行わない)ことによって行われてもよい。
以上、本開示について詳細に説明したが、当業者にとっては、本開示が本開示中に説明した実施形態に限定されるものではないということは明らかである。本開示は、請求の範囲の記載により定まる本開示の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本開示の記載は、例示説明を目的とするものであり、本開示に対して何ら制限的な意味を有するものではない。
本開示において説明した各態様/実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本開示において説明した方法については、例示的な順序を用いて様々なステップの要素を提示しており、提示した特定の順序に限定されない。
入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルを用いて管理してもよい。入出力される情報等は、上書き、更新、又は追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
本開示において使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
本開示において、「含む(include)」、「含んでいる(including)」及びそれらの変形が使用されている場合、これらの用語は、用語「備える(comprising)」と同様に、包括的であることが意図される。さらに、本開示において使用されている用語「又は(or)」は、排他的論理和ではないことが意図される。
本開示において、例えば、英語でのa, an及びtheのように、翻訳により冠詞が追加された場合、本開示は、これらの冠詞の後に続く名詞が複数形であることを含んでもよい。
本開示において、「AとBが異なる」という用語は、「AとBが互いに異なる」ことを意味してもよい。なお、当該用語は、「AとBがそれぞれCと異なる」ことを意味してもよい。「離れる」、「結合される」などの用語も、「異なる」と同様に解釈されてもよい。
1…情報処理システム、100…第1情報処理装置、101…第1送受信制御部、150…第1隔離演算領域、151…第1内部データ通信部、152…第1データ処理部、153…第1認証情報取得部、154…第1暗号部、155…第1検証部、156…第1記憶部、200…第2情報処理装置、201…第2送受信制御部、250…第2隔離演算領域、251…第2内部データ通信部、252…第2データ処理部、253…第2認証情報取得部、254…第2暗号部、255…第2検証部、256…第2記憶部、300…管理部、301…認証情報送受信部、302…認証情報管理部、303…権限管理部、304…認証情報検証部、1001…プロセッサ、1002…メモリ、1003…ストレージ、1004…通信装置、1005…入力装置、1006…出力装置、1007…バス。
Claims (9)
- 隔離された演算領域として第1隔離演算領域が形成された第1情報処理装置と、隔離された演算領域として第2隔離演算領域が形成された第2情報処理装置と、を含んだ情報処理システムであり、前記第1情報処理装置と前記第2情報処理装置間で送受信されるデータを暗号化するためのデータ暗号鍵を生成し管理する管理部が、前記第1情報処理装置又は前記第2情報処理装置の内部、又は、前記第1情報処理装置および前記第2情報処理装置の外部に設けられた当該情報処理システムであって、
前記第1情報処理装置は、
前記第1隔離演算領域で稼動する第1アプリケーションによって、前記管理部が前記第1アプリケーションの完全性を検証するために用いる第1認証情報を伴うデータ暗号鍵利用要求を前記管理部へ送信する第1処理部、を備え、
前記管理部は、
前記第1認証情報および予め記憶した第1検証情報を用いて前記第1アプリケーションの完全性を検証し、前記完全性が検証された場合のみ、前記管理部と前記第1情報処理装置間のセキュアな環境を介して前記データ暗号鍵を前記第1情報処理装置へ送信する第1管理部、を備え、
前記第1情報処理装置は、さらに、
前記第1アプリケーションによって、受信された前記データ暗号鍵を用いて、処理対象とされる対象データを暗号化し、暗号化された対象データを前記第2情報処理装置へ送信する第1暗号部、を備え、
前記第2情報処理装置は、
前記第2隔離演算領域で稼動する第2アプリケーションによって、前記管理部が前記第2アプリケーションの完全性を検証するために用いる第2認証情報を伴うデータ暗号鍵利用要求を前記管理部へ送信する第2処理部、を備え、
前記管理部は、さらに、
前記第2認証情報および予め記憶した第2検証情報を用いて前記第2アプリケーションの完全性を検証し、前記完全性が検証された場合のみ、前記管理部と前記第2情報処理装置間のセキュアな環境を介して前記データ暗号鍵を前記第2情報処理装置へ送信する第2管理部、を備え、
前記第2情報処理装置は、さらに、
前記第2アプリケーションによって、受信された前記データ暗号鍵を用いて、前記第1情報処理装置から受信した前記暗号化された対象データを復号する第2暗号部、を備える、
情報処理システム。 - 隔離された演算領域として第1隔離演算領域が形成された情報処理装置と、隔離された演算領域として第2隔離演算領域が形成された相手方装置と、を含み、前記情報処理装置と前記相手方装置間で送受信されるデータを暗号化するためのデータ暗号鍵を生成し管理する管理部が、前記情報処理装置又は前記相手方装置の内部、又は、前記情報処理装置および前記相手方装置の外部に設けられた情報処理システム、における前記情報処理装置であって、
前記情報処理装置は、
前記第1隔離演算領域で稼動する第1アプリケーションによって、前記管理部が前記第1アプリケーションの完全性を検証するために用いる第1認証情報を伴うデータ暗号鍵利用要求を前記管理部へ送信する第1処理部と、
前記第1認証情報および予め記憶した第1検証情報を用いて前記第1アプリケーションの完全性が検証された場合のみ、前記管理部と前記情報処理装置間のセキュアな環境を介して前記データ暗号鍵を前記情報処理装置へ送信する前記管理部、
から、前記データ暗号鍵を前記第1アプリケーションによって受信し、受信された前記データ暗号鍵を用いて、処理対象とされる対象データを暗号化する第1暗号部と、
を備え、
前記第1暗号部は、
前記第2隔離演算領域で稼動する第2アプリケーションによって、前記管理部が前記第2アプリケーションの完全性を検証するために用いる第2認証情報を伴うデータ暗号鍵利用要求を前記管理部へ送信する第2処理部と、
前記第2認証情報および予め記憶した第2検証情報を用いて前記第2アプリケーションの完全性が検証された場合のみ、前記管理部と前記相手方装置間のセキュアな環境を介して前記データ暗号鍵を前記相手方装置へ送信する前記管理部、
から、前記データ暗号鍵を前記第2アプリケーションによって受信し、受信された前記データ暗号鍵を用いて、前記情報処理装置からの暗号化された対象データを復号する第2暗号部と、
を備える前記相手方装置、
に対し、前記暗号化された対象データを送信する、
情報処理装置。 - 前記管理部により管理される前記データ暗号鍵は、暗号鍵、および前記暗号鍵で暗号化された暗号化データ鍵を含み、
前記第1処理部は、第1公開鍵と第1秘密鍵のペアを生成し、前記第1認証情報および前記第1公開鍵を伴う前記データ暗号鍵利用要求を前記管理部へ送信し、
前記管理部は、前記完全性が検証された場合のみ、前記暗号鍵を用いて前記暗号化データ鍵を復号して平文データ鍵を得て、当該平文データ鍵を前記第1公開鍵で暗号化し、得られた暗号化データ鍵を前記情報処理装置へ送信し、
前記第1暗号部は、受信された前記暗号化データ鍵を前記第1秘密鍵で復号して平文データ鍵を得て、当該平文データ鍵で前記対象データを暗号化し、暗号化された対象データを前記相手方装置へ送信する、
請求項2に記載の情報処理装置。 - 前記第2処理部は、第2公開鍵と第2秘密鍵のペアを生成し、前記第2認証情報および前記第2公開鍵を伴う前記データ暗号鍵利用要求を前記管理部へ送信し、
前記管理部は、前記完全性が検証された場合のみ、前記暗号鍵を用いて前記暗号化データ鍵を復号して平文データ鍵を得て、当該平文データ鍵を前記第2公開鍵で暗号化し、得られた暗号化データ鍵を前記相手方装置へ送信し、
前記第2暗号部は、受信された前記暗号化データ鍵を前記第2秘密鍵で復号して平文データ鍵を得て、当該平文データ鍵で前記暗号化された対象データを復号する、
請求項3に記載の情報処理装置。 - 隔離された演算領域として第1隔離演算領域が形成された相手方装置と、隔離された演算領域として第2隔離演算領域が形成された情報処理装置と、を含み、前記情報処理装置と前記相手方装置間で送受信されるデータを暗号化するためのデータ暗号鍵を生成し管理する管理部が、前記情報処理装置又は前記相手方装置の内部、又は、前記情報処理装置および前記相手方装置の外部に設けられた情報処理システム、における前記情報処理装置であって、
前記情報処理装置は、
前記第2隔離演算領域で稼動する第2アプリケーションによって、前記管理部が前記第2アプリケーションの完全性を検証するために用いる第2認証情報を伴うデータ暗号鍵利用要求を前記管理部へ送信する第2処理部と、
前記第2認証情報および予め記憶した第2検証情報を用いて前記第2アプリケーションの完全性が検証された場合のみ、前記管理部と前記情報処理装置間のセキュアな環境を介して前記データ暗号鍵を前記情報処理装置へ送信する前記管理部、
から、前記データ暗号鍵を前記第2アプリケーションによって受信する第2暗号部と、
を備え、
前記第2暗号部は、
前記第1隔離演算領域で稼動する第1アプリケーションによって、前記管理部が前記第1アプリケーションの完全性を検証するために用いる第1認証情報を伴うデータ暗号鍵利用要求を前記管理部へ送信する第1処理部と、
前記第1認証情報および予め記憶した第1検証情報を用いて前記第1アプリケーションの完全性が検証された場合のみ、前記管理部と前記相手方装置間のセキュアな環境を介して前記データ暗号鍵を前記相手方装置へ送信する前記管理部、
から、前記データ暗号鍵を前記第1アプリケーションによって受信し、受信された前記データ暗号鍵を用いて、処理対象とされる対象データを暗号化し、暗号化された対象データを前記情報処理装置へ送信する第1暗号部と、
を備える前記相手方装置、
から前記暗号化された対象データを受信し、
前記データ暗号鍵を用いて、前記相手方装置からの暗号化された対象データを復号する、
情報処理装置。 - 前記管理部により管理される前記データ暗号鍵は、暗号鍵、および前記暗号鍵で暗号化された暗号化データ鍵を含み、
前記第1処理部は、第1公開鍵と第1秘密鍵のペアを生成し、前記第1認証情報および前記第1公開鍵を伴う前記データ暗号鍵利用要求を前記管理部へ送信し、
前記管理部は、前記完全性が検証された場合のみ、前記暗号鍵を用いて前記暗号化データ鍵を復号して平文データ鍵を得て、当該平文データ鍵を前記第1公開鍵で暗号化し、得られた暗号化データ鍵を前記相手方装置へ送信し、
前記第1暗号部は、受信された前記暗号化データ鍵を前記第1秘密鍵で復号して平文データ鍵を得て、当該平文データ鍵で前記対象データを暗号化し、暗号化された対象データを前記情報処理装置へ送信する、
請求項5に記載の情報処理装置。 - 前記第2処理部は、第2公開鍵と第2秘密鍵のペアを生成し、前記第2認証情報および前記第2公開鍵を伴う前記データ暗号鍵利用要求を前記管理部へ送信し、
前記管理部は、前記完全性が検証された場合のみ、前記暗号鍵を用いて前記暗号化データ鍵を復号して平文データ鍵を得て、当該平文データ鍵を前記第2公開鍵で暗号化し、得られた暗号化データ鍵を前記情報処理装置へ送信し、
前記第2暗号部は、受信された前記暗号化データ鍵を前記第2秘密鍵で復号して平文データ鍵を得て、当該平文データ鍵で前記暗号化された対象データを復号する、
請求項6に記載の情報処理装置。 - 前記第1隔離演算領域は、物理的な隔離又は論理的な隔離を利用して形成され、
前記第2隔離演算領域は、物理的な隔離又は論理的な隔離を利用して形成される、
請求項2~7の何れか一項に記載の情報処理装置。 - 前記対象データは、秘密計算の処理対象である、請求項2~8の何れか一項に記載の情報処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022010750 | 2022-01-27 | ||
JP2022-010750 | 2022-01-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023145240A1 true WO2023145240A1 (ja) | 2023-08-03 |
Family
ID=87471463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/043941 WO2023145240A1 (ja) | 2022-01-27 | 2022-11-29 | 情報処理装置および情報処理システム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2023145240A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011081301A (ja) | 2009-10-09 | 2011-04-21 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算システム、秘密計算方法 |
JP2011087150A (ja) * | 2009-10-16 | 2011-04-28 | Nippon Telegr & Teleph Corp <Ntt> | データ編集システム、書込み装置、読取装置及びデータ編集方法 |
JP6795863B1 (ja) * | 2020-01-24 | 2020-12-02 | Eaglys株式会社 | 秘密計算用変換装置、秘密計算システム、秘密計算用変換方法、および秘密計算用変換プログラム |
JP2020202505A (ja) * | 2019-06-11 | 2020-12-17 | 大日本印刷株式会社 | 暗号通信システム、セキュアエレメント、デバイス、サーバ、コンピュータプログラム及び暗号通信方法 |
-
2022
- 2022-11-29 WO PCT/JP2022/043941 patent/WO2023145240A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011081301A (ja) | 2009-10-09 | 2011-04-21 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算システム、秘密計算方法 |
JP2011087150A (ja) * | 2009-10-16 | 2011-04-28 | Nippon Telegr & Teleph Corp <Ntt> | データ編集システム、書込み装置、読取装置及びデータ編集方法 |
JP2020202505A (ja) * | 2019-06-11 | 2020-12-17 | 大日本印刷株式会社 | 暗号通信システム、セキュアエレメント、デバイス、サーバ、コンピュータプログラム及び暗号通信方法 |
JP6795863B1 (ja) * | 2020-01-24 | 2020-12-02 | Eaglys株式会社 | 秘密計算用変換装置、秘密計算システム、秘密計算用変換方法、および秘密計算用変換プログラム |
Non-Patent Citations (2)
Title |
---|
"Introduction to Cryptography", 25 February 1993, KYORITSU SHUPPAN CO., LTD., JP, ISBN: 4-320-02633-0, article OKAMOTO, EIJI: "6.1.2 Key Hierarchy; 6.1.3 Key Distribution", pages: 110 - 112, XP009548201 * |
AKASHI, OSAMU ET AL.: "Multimedia Information Market System (InfoKet)", NTT RESEARCH AND DEVELOPMENT NTTR & D - NTT R & D : NTT GROUP'S RESEARCH AND DEVELOPMENT ACTIVITIES / NTT SENTAN GIJUTSU SōGō KENKYūSHO, TOKYO, JP, vol. 46, no. 2, 1 February 1997 (1997-02-01), JP , pages 107 - 114, XP009548136, ISSN: 0915-2326 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3458999B1 (en) | Self-contained cryptographic boot policy validation | |
JP6151402B2 (ja) | データセンタへのプラットフォームの内包検証 | |
JP4689945B2 (ja) | リソースアクセス方法 | |
CN102271037B (zh) | 基于在线密钥的密钥保护装置 | |
JP4916584B2 (ja) | 呼び出しのプログラムについての秘密の封印のための方法 | |
CN1985466B (zh) | 使用分发cd按签署组向设备传递直接证据私钥的方法 | |
AU2020244511B2 (en) | Balancing public and personal security needs | |
JP2004508619A (ja) | トラステッド・デバイス | |
JP2007512787A (ja) | トラステッド・モバイル・プラットフォーム・アーキテクチャ | |
KR102013983B1 (ko) | 애플리케이션 무결성 인증 방법 및 인증 서버 | |
GB2387678A (en) | Apparatus for remote working where remote computer incorporates a trusted device | |
JP2023535040A (ja) | マスターキーエスクロープロセス | |
CN111639325A (zh) | 基于开放平台的商户认证方法、装置、设备和存储介质 | |
US20230362018A1 (en) | System and Method for Secure Internet Communications | |
Nyman et al. | Citizen electronic identities using TPM 2.0 | |
JP6378424B1 (ja) | 無欠性及び保安性が強化された使用者認証方法 | |
WO2023145240A1 (ja) | 情報処理装置および情報処理システム | |
US20240004986A1 (en) | Cla certificateless authentication of executable programs | |
CN110059489B (zh) | 安全电子设备 | |
CN116888921A (zh) | 经由隔离加密的隐私增强计算 | |
JP2002245013A (ja) | セキュリティ実現方法及びセキュリティ実現プログラム及びセキュリティ実現プログラムを格納した記憶媒体 |
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: 22924092 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2022924092 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2022924092 Country of ref document: EP Effective date: 20240709 |