WO2020213050A1 - データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法 - Google Patents

データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法 Download PDF

Info

Publication number
WO2020213050A1
WO2020213050A1 PCT/JP2019/016280 JP2019016280W WO2020213050A1 WO 2020213050 A1 WO2020213050 A1 WO 2020213050A1 JP 2019016280 W JP2019016280 W JP 2019016280W WO 2020213050 A1 WO2020213050 A1 WO 2020213050A1
Authority
WO
WIPO (PCT)
Prior art keywords
data processing
application program
data
verification
unit
Prior art date
Application number
PCT/JP2019/016280
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 PCT/JP2019/016280 priority Critical patent/WO2020213050A1/ja
Priority to JP2020515993A priority patent/JP6737424B1/ja
Priority to CN201980095316.4A priority patent/CN113678128A/zh
Publication of WO2020213050A1 publication Critical patent/WO2020213050A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Definitions

  • the present invention relates to a data processing system having an application program verification function, a data processing device, and a method for verifying an application program.
  • Patent Document 1 the data is digitally signed and the OS program checks the data to confirm the validity of the signature information, and the signer himself maliciously falsifies and re-signs the data attached to the application program.
  • the application program itself has a built-in function (tampering check routine) to confirm the validity of the confidential information created based on the signature information so that the computer can detect falsification even if it is performed. With this function, if the application program itself determines that the data attached to the application program has been tampered with, the execution of the application program is stopped (see Patent Document 1).
  • Patent Document 1 When the system of Patent Document 1 is used, for example, when the data (resource data or auxiliary file) attached to the application program is falsified after the platform management organization certifies the application program and issues a signature to it. Can detect the tampering. However, since the tampering check function depends on the application program, if the application program is tampered with and the tampering check routine is modified so as not to operate, the computer cannot detect the tampering of the application program. Therefore, the computer may not be able to stop the execution of the tampered application program.
  • the present invention has been made in view of the above circumstances, and an object of the present invention is to provide a verification technique capable of accurately detecting falsification of an application program.
  • the data processing system includes a verification means for verifying an application program having authentication data pre-encrypted with a first private key held by a certification body, and the verification means includes verification included in the application program.
  • Acquiring dynamic information which is information expanded in memory when a function is executed, and decrypting authentication data using the first public key corresponding to the first private key held in advance.
  • the application program is verified by comparing it with the dynamic information for verification obtained in.
  • the data processing device publishes a public key storage unit that stores the public key of the certification authority and authentication data that is pre-encrypted with the private key of the certification authority corresponding to the public key and embedded in the application program.
  • the authentication data decryption unit that decrypts using the key, the dynamic information that is the information expanded in the memory when the verification function included in the application program is executed, and the acquired dynamic information. It is provided with a consistency confirmation unit that verifies the application program by comparing it with the dynamic information for verification obtained by decrypting the authentication data.
  • the verification method of the application program includes a step of decrypting authentication data encrypted with the private key of the certification authority and embedded in the application program using the public key of the certification authority corresponding to the private key, and authentication.
  • the step of extracting the dynamic information for verification from the data the step of acquiring the dynamic information expanded in the memory when the verification function included in the application program is executed, and the step of acquiring the acquired dynamic information and verification. It includes a step to verify the application program by comparing it with the dynamic information.
  • the data processing device In the verification method of the data processing system, the data processing device, and the application program of the present invention, whether or not the application program is a genuine product of the information expanded in the memory when the verification function included in the application program is executed. Since it is used for verification of, it is possible to detect falsification of the application program with high accuracy.
  • the figure which shows the hardware configuration of the data processing system which concerns on embodiment of this invention The figure which shows the hardware configuration of the data processing apparatus which concerns on embodiment of this invention.
  • the figure which shows the system structure of the data processing system which concerns on embodiment of this invention The figure which shows the flow of the authentication of the application program which concerns on embodiment of this invention.
  • the figure which shows the verification method of the application program which concerns on embodiment of this invention The figure which shows the system structure of the data processing unit and the data processing control unit which concerns on embodiment of this invention.
  • the flowchart which shows the flow of the verification of the application program which concerns on embodiment of this invention.
  • the figure which shows the modification of the system structure of the data processing system which concerns on embodiment of this invention The figure which shows the hardware configuration of the data processing apparatus which concerns on embodiment of this invention.
  • the figure which shows the system structure of the data processing system which concerns on embodiment of this invention The figure which shows the flow of the authentication of the application program which concerns on embodiment of this invention.
  • the data processing system is a system that processes data transmitted from an apparatus.
  • the data processing system is installed in the factory as a product production system. Data processing by the data processing system is performed to achieve, for example, detection of defective products and exclusion from the manufacturing process, classification of materials, or monitoring of anomalies.
  • the user sets the content of the processing to be applied to the data.
  • the hardware configuration of the data processing system is shown in FIG.
  • the data processing system includes devices 201 and 202 that operate in the manufacturing process of products, and a data processing device 100 that processes data transmitted from the devices 201 and 202.
  • the data processing device 100 is connected to the devices 201 and 202 via the network 210, and communicates with each other by transmitting and receiving signals to and from the devices 201 and 202. Although the data processing device 100 and the devices 201 and 202 are both connected via the network 210, they may be connected via networks of different standards.
  • the network 210 is an industrial network.
  • the network 210 may be a dedicated line for realizing serial communication.
  • the device 201 is a control device provided with a sensor 201a used in the manufacturing process of the product.
  • the sensor 201a is, for example, an optical sensor, a pressure sensor, an ultrasonic sensor, or another detector.
  • the device 201 repeats the data including the sensing result by the sensor 201a at a cycle specified by the data processing device 100, and transmits the data to the data processing device 100. This period is, for example, 10 ms, 100 ms, or 1 sec.
  • the device 202 is, for example, an actuator or a robot used in a product manufacturing process.
  • the device 202 operates according to the data processing result of the data processing device 100. Specifically, when the device 202 receives an operation command from the data processing device 100 instructing one of operation mode designation, operation start, and operation stop as a data processing result, the device 202 changes the operation state according to the operation command. To do.
  • the data transmission line that connects the data processing device 100 and the device 200 is not limited to a wired communication transmission line such as the network 210, and may be a wireless communication transmission line.
  • the device 200 is not limited to either a device that transmits data including a sensing result or a device that operates according to an operation command from the data processing device 100.
  • the device 200 may be a device that transmits data to the data processing device 100 and operates in accordance with an operation command from the data processing device 100.
  • the number of devices 200 is not limited to two.
  • the data processing device 100 is a PLC or an industrial personal computer, and is an FA (Factory Automation) device that performs preset processing on data collected from the device 200 and outputs a processing result.
  • the data processing device 100 transmits an operation command to the device 200 as an output of the processing result, but the present invention is not limited to this, and quality control information obtained by analyzing or processing the data may be presented to the user, or data processing may be performed. Quality control information may be stored in the device 100 itself or an external server device.
  • FIG. 2 shows the hardware configuration of the data processing device 100.
  • the data processing device 100 is a computer having a processor 101, a main storage unit 102, an auxiliary storage unit 103, an input unit 104, an output unit 105, and a communication unit 106.
  • the main storage unit 102, the auxiliary storage unit 103, the input unit 104, the output unit 105, and the communication unit 106 are all connected to the processor 101 via the internal bus 107.
  • the processor 101 includes an MPU (Micro Processing Unit).
  • the processor 101 realizes various functions of the data processing device 100 by executing a program stored in the auxiliary storage unit 103, and executes the processing described later.
  • the main storage unit 102 includes a RAM (RandomAccessMemory). A program is loaded into the main storage unit 102 from the auxiliary storage unit 103. Then, the main storage unit 102 is used as a work area of the processor 101.
  • RAM RandomAccessMemory
  • the auxiliary storage unit 103 includes a non-volatile memory represented by an EEPROM (Electrically Erasable Programmable Read-Only Memory). In addition to the program, the auxiliary storage unit 103 stores various data used in the processing of the processor 101. The auxiliary storage unit 103 supplies the data used by the processor 101 to the processor 101 according to the instruction of the processor 101, and stores the data supplied from the processor 101. A plurality of programs are stored in the auxiliary storage unit 103. Further, the program includes a program preset in the data processing device 100 and a program added by the user of the data processing device 100.
  • EEPROM Electrically Erasable Programmable Read-Only Memory
  • the input unit 104 includes an input key and an input device represented by a pointing device.
  • the input unit 104 acquires the information input by the user of the data processing device 100, and notifies the processor 101 of the acquired information.
  • the output unit 105 includes an output device represented by a display device and a speaker.
  • the output unit 105 presents various information to the user according to the instruction of the processor 101.
  • the communication unit 106 includes a network interface circuit for communicating with the external device 200.
  • the communication unit 106 receives a signal from the device 200 and outputs the data indicated by this signal to the processor 101. Further, the communication unit 106 transmits a signal indicating the data output from the processor 101 to the device 200.
  • FIG. 3 shows the system configuration of the data processing system according to the embodiment of the present invention.
  • the data processing system is composed of a data processing device 100 and devices 201 and 202.
  • the data processing device 100 includes an engineering tool 140, a data processing platform 110, data collecting units 131 and 132, data processing units 121a and 121b, and a verification data transmitting unit 150.
  • the engineering tool 140 includes a data processing control setting unit 141 in which the content of data processing is set by the user.
  • the engineering tool 140 is realized by reading the software stored in the auxiliary storage unit 103 into the main storage unit 102 and executing the software by the processor 101.
  • the user sets the contents of the data processing via the input unit 104.
  • the data processing platform 110 has a setting information construction unit 111 that receives the setting information data received from the engineering tool 140, a setting information storage unit 112 that stores the constructed setting information, and a data collection unit that analyzes the accumulated setting information. It has 131, 132 and a data processing control unit 113 that gives instructions to the data processing units 121a, 121b.
  • the setting information construction unit 111, the setting information storage unit 112, and the data processing control unit 113 are realized by reading the program stored in the auxiliary storage unit 103 into the main storage unit 102 and executing it by the processor 101. ..
  • the setting information storage unit 112 stores the setting information in the auxiliary storage unit 103.
  • the data collection units 131 and 132 collect data from the devices 201 and 202 according to the instructions of the data processing control unit 113, deliver the data to the data processing control unit 113, and deliver the data received from the data processing control unit 113 to the device 201, It has a function to pass to 202.
  • the instruction from the data processing control unit 113 includes, for example, information such as the type of data to be collected and the collection cycle.
  • the data collection units 131 and 132 are realized by reading the program stored in the auxiliary storage unit 103 into the main storage unit 102 and executing the program by the processor 101.
  • the communication unit 106 is used for communication with the devices 201 and 202.
  • the data collection units 131 and 132 are interposed between the device 200 and the data processing control unit 113, and have an interface conversion function. Even if the device 200 is connected by a network having a different communication protocol, it absorbs the difference in the communication protocol and communicates with the data processing control unit 113 in the format specified on the data processing platform 110 side.
  • the data processing units 121a and 121b process the data transferred from the data processing control unit 113 in accordance with the instructions of the data processing control unit 113.
  • the data processing units 121a and 121b are provided by the application vendor 310 as application programs, and the program stored in the auxiliary storage unit 103 is read into the main storage unit 102 and executed by the processor 101. Is realized by.
  • the instruction given by the data processing control unit 113 to the data processing units 121a and 121b includes, for example, parameters such as a data format (number of digits) when outputting data.
  • the parameters given to the data processing units 121a and 121b depend on the data processing units 121a and 121b.
  • the data processing units 121a and 121b perform processing independently of each other, but the data processing control unit 113 can intervene to perform processing substantially in cooperation with each other.
  • the data processing unit 121a may be an application program that removes noise from the sensing data
  • the data processing unit 121b may be an application program that analyzes the sensing data and diagnoses the presence or absence of an abnormality in the device 201.
  • the data processing control unit 113 gives the sensing data collected from the device 201 to the data processing unit 121a, causes the data processing unit 121a to remove the noise, and receives the sensing data from which the noise has been removed from the data processing unit 121a. ..
  • the data processing control unit 113 gives the sensing data from which the noise has been removed to the data processing unit 121b, and causes the device 201 to perform the diagnosis of the presence or absence of an abnormality.
  • the data processing units 121a and 121b can be substantially linked to perform data processing.
  • the verification data transmission unit 150 acquires verification data from the memory and transmits the verification data to the data processing control unit 113 when the application program is verified.
  • the verification data transmission unit 150 is a functional unit realized by calling and executing the verification module by the data processing units 121a and 121b.
  • the verification module is prepared in advance by the platform provider and provided to the user, and the verification data transmission unit has an interface function for secure communication with the data processing control unit 113.
  • the verification module is provided, for example, in the form of a DLL (Dynamic Link Library) file.
  • the data processing units 121a and 121b can be added by the user 320 installing the application program 305 provided by the application vendor 310 in the data processing device 100.
  • the application program 305 is certified by the certification body 300 (platform provider) and is provided to the user 320 with the authentication information 304 embedded.
  • the application vendor 310 passes the application runtime information 302, which is information unique to the application program 305, to the certification body 300.
  • the application execution time information 302 is dynamic information generated when a computer such as the data processing device 100 executes the application program 305.
  • Specific examples of the dynamic information include information expanded on the memory in the data processing device 100 in which the application program 305 operates when the application program 305 is executed, such as information secured in the stack area at the time of function call. Be done.
  • the application program 305 is provided with a verification function for outputting application runtime information, which is verification data, and the stack memory of this verification function (when the verification function is executed).
  • the information secured in the stack area on the memory allocated to the verification function) is used as the application runtime information 302.
  • the information secured in this stack area is, for example, a set of data recording a series of calling functions including a verification function, and includes information on the return address of each function.
  • the application execution time information 302 is stored as the address information of the global variable on the memory and the global variable when a predetermined verification function is executed. It may be a value that is set.
  • the memory is not limited to the main storage unit 102 of the data processing device 100, and may include the cache memory inside the processor 101 and use the information expanded on the cache memory.
  • the certification authority 300 collects the application execution time information 302 and the authentication information 304, creates the authentication data 303 encrypted with the authentication authority private key 301, and provides the authentication data 303 to the application vendor 310.
  • the certification authority private key 301 corresponds to the first private key.
  • the authentication information 304 is an electronic signature created by the certification body 300, and is electronic data that guarantees that the authentication data 303 is created by the certification body 300.
  • the application vendor 310 embeds the received authentication data 303 in the developed application program 305 and provides it to the user 320.
  • the application program 305 certified by the certification body 300 is provided to the user 320.
  • the application runtime information 302 corresponds to the verification dynamic information.
  • the data processing unit 121 realized by executing the application program 305 passes the authentication data 303 to the data processing control unit 113.
  • the data processing control unit 113 decrypts the output authentication data 303 with the authentication authority public key 401 owned by the data processing control unit 113, and obtains the decrypted authentication information 304 and the application execution time information 302.
  • the certification authority public key 401 is paired with the authentication authority private key 301 used when creating the authentication data 303, and the authentication data 303 encrypted with the authentication authority private key 301 can be decrypted, and the authentication authority secret
  • the authentication data 303 encrypted with the key 301 can be decrypted only with the authentication authority public key 401.
  • the certification authority public key 401 corresponds to the first public key.
  • the data processing control unit 113 extracts the authentication information 304 from the decrypted authentication data 303, and verifies that the authentication data 303 is a genuine product certified by the certification body 300. Then, when the authentication data 303 is found to be a genuine product certified by the legitimate certification body 300, the data processing control unit 113 inputs the application execution information 402 which is the information generated when the application program 305 is executed. get. The data processing control unit 113 acquires the application execution time information 402 from the memory 403 via the verification data transmission unit 150.
  • the verification data transmission unit is realized by calling and executing the verification module by the verification function 122 possessed by the data processing unit 121.
  • the verification data transmission unit 150 reads the information expanded in the memory 403 while the verification function 122 is being executed, and transmits the information to the data processing control unit 113.
  • the verification module is provided by the platform provider, and the verification data transmission unit 150 transmits data to the data processing control unit 113 via a predetermined dedicated interface function. Therefore, the application program 305 is an application. Run-time information 402 cannot be spoofed.
  • the data processing control unit 113 may acquire the application execution time information 402 by directly reading the information expanded in the memory 403 when the verification function 122 is executed, without going through the verification data transmission unit 150. In this case as well, since the application runtime information 402 is fetched from the memory 403, the application program 305 cannot disguise the application runtime information 402.
  • the data processing control unit 113 verifies the consistency between the application execution time information 302 extracted from the decrypted authentication data 303 and the newly acquired application execution time information 402, and the authentication data 303 embedded in the application program 305. Is issued to the application program 305.
  • the application runtime information 402 corresponds to dynamic information.
  • the data processing unit 121 includes a data processing execution unit 500, an authentication data storage unit 501, an authentication data transmission unit 505, an application private key storage unit 502, an encryption / decryption unit 503, and a distribution key storage unit 504. To be equipped.
  • the data processing execution unit 500 performs data processing on the data received from the data processing control unit 113.
  • the authentication data storage unit 501 stores the encrypted authentication data 303.
  • the authentication data transmission unit 505 transmits the authentication data 303 to the data processing control unit 113.
  • the application private key storage unit 502 stores the application private key.
  • the application private key is pre-embedded in the application program 305.
  • the application private key corresponds to the second private key.
  • the encryption / decryption unit 503 encrypts the data transmitted to the data processing control unit 113 and decrypts the data received from the data processing control unit 113.
  • the distribution key storage unit 504 stores the distribution key, which will be described later.
  • the data processing execution unit 500, the authentication data storage unit 501, and the encryption / decryption unit 503 are realized by executing the application program 305 by the processor 101.
  • the authentication data storage unit 501, the application private key storage unit 502, and the distribution key storage unit 504 are realized by the auxiliary storage unit 103.
  • the data processing control unit 113 confirms the consistency between the authentication authority public key storage unit 511, the authentication data decryption unit 512, the authentication information extraction unit 513, the application execution time information extraction unit 514, and the application public key extraction unit 515. It includes a unit 516, an application public key storage unit 517, a distribution key generation unit 518, a distribution key storage unit 519, and an encryption / decryption unit 520.
  • the authentication data decryption unit 512, the authentication information extraction unit 513, the application execution time information extraction unit 514, the application public key extraction unit 515, and the consistency confirmation unit 516 constitute a verification unit 521.
  • the verification unit 521 corresponds to the verification means.
  • the certification body public key storage unit 511 stores the certification body public key 401 previously given by the certification body 300.
  • the authentication data decryption unit 512 receives the encrypted authentication data 303 from the authentication data transmission unit 505 of the data processing unit 121, and uses the authentication authority public key 401 stored in the authentication authority public key storage unit 511 to use the authentication authority public key 401.
  • the authentication data 303 is decrypted.
  • the authentication information extraction unit 513 extracts the authentication information 304 from the decrypted authentication data 303 and passes it to the consistency confirmation unit 516.
  • the application runtime information extraction unit 514 extracts the application runtime information 302 from the decrypted authentication data 303 and passes it to the consistency confirmation unit 516.
  • the application public key extraction unit 515 extracts the application public key from the decrypted authentication data 303, and stores the application public key in the application public key storage unit 517.
  • the app private key and the app public key are a pair.
  • the application public key corresponds to the second public key.
  • the consistency confirmation unit 516 verifies the authentication information 304 received from the authentication information extraction unit 513, and verifies whether or not the authentication data 303 is certified by the legitimate certification body 300. Further, the consistency confirmation unit 516 verifies the application execution time information 302 received from the application execution time information extraction unit 514, and the authentication data 303 is issued to the application program 305 that realizes the data processing unit 121. Make sure there is.
  • the authentication data decryption unit 512, the authentication information extraction unit 513, the application execution time information extraction unit 514, the application public key extraction unit 515, and the consistency confirmation unit 516 are executed by the program module corresponding to each unit on the processor 101. It is realized by being done.
  • the certification body public key storage unit 511 and the application public key storage unit 517 are realized by the auxiliary storage unit 103.
  • the distribution key generation unit 518 generates a distribution key and stores it in the distribution key storage unit 519 when the consistency confirmation unit 516 confirms the validity of the data processing unit 121. Further, the distribution key is encrypted by the encryption / decryption unit 520 using the application public key stored in the application public key storage unit 517, and passed to the data processing unit 121. On the other hand, since the data processing unit 121 holds the application private key paired with the application public key in the application private key storage unit 502, the distribution key encrypted with the application public key is stored in the encryption / decryption unit 503. Can be decrypted.
  • the data processing control unit 113 and the data processing unit 121 can safely share the distribution key.
  • the distribution key generation unit 518 and the encryption / decryption unit 520 are realized by executing the corresponding program modules in the processor 101.
  • the distribution key storage unit 519 is realized by the auxiliary storage unit 103.
  • the distribution key is used for data encryption and decryption when the data processing control unit 113 transmits data to be processed by the data processing unit 121 and when the data processed by the data processing unit 121 is returned to the data processing control unit 113. It is a common key to be used.
  • the data processing control unit 113 transmits data to be processed by the data processing unit 121, the data is encrypted by the encryption / decryption unit 520 using the distribution key using the distribution key, and decrypted by the encryption / decryption unit 503. Will be done.
  • the data processed by the data processing unit 121 is returned to the data processing control unit 113, the data is encrypted by the encryption / decryption unit 503 using the distribution key and decrypted by the encryption / decryption unit 520.
  • the distribution key that is safely shared, it is possible to exchange data securely between the data processing control unit 113 and the data processing unit 121.
  • the authentication data decryption unit 512 decrypts the authentication data 303 acquired from the authentication data storage unit 501 of the data processing unit 121 by using the authentication authority public key 401 stored in the authentication authority public key storage unit 511 (. S101).
  • the authentication information 304 included in the decrypted authentication data 303 is verified, and it is confirmed whether the authentication data 303 is certified by the legitimate certification body 300 (S102).
  • the data processing control unit 113 acquires the application execution time information 402 from the memory 403 (S103).
  • the data processing control unit 113 verifies the application execution time information 302 by comparing the application execution time information 302 included in the decrypted authentication data 303 with the acquired application execution time information 402 (S104). .. If the validity cannot be confirmed as a result of the verification, the execution of the application program 305 is prohibited (S110). On the other hand, if the validity can be confirmed, the data processing in the application program 305 is permitted.
  • the application public key is extracted from the decrypted authentication data 303 and stored in the application public key storage unit 517 (S105). Then, the distribution key generation unit 518 creates a distribution key, which is a common key used for data encryption and decryption when the data processing control unit 113 and the data processing unit 121 exchange data, and the distribution key storage unit 519. It is stored in (S106). After that, the encryption / decryption unit 520 encrypts the distribution key using the application public key (S107), and sends the encrypted distribution key to the data processing unit 121 (S108). The distribution key corresponds to a common key for data distribution.
  • the data processing unit 121 uses the application private key paired with the application public key to decrypt the distribution key encrypted using the application public key, and stores the distribution key in the distribution key storage unit. Store in 504. Since the application private key paired with the application public key is held only by the data processing unit 121, only the data processing unit 121 can decrypt the distribution key encrypted using the application public key. .. Therefore, the distribution key can be safely shared between the data processing control unit 113 and the data processing unit 121. This enables encrypted communication between the data processing control unit 113 and the data processing unit 121.
  • the data processing units 121a and 121b and the data processing control unit 113 are provided in the same data processing device 100, but other data processing devices capable of high-speed arithmetic processing. In some cases, it is preferable to perform data processing. Therefore, in the system configuration of the data processing system shown in FIG. 8, the data processing unit 121c is provided on an external processing device 180 separate from the data processing device 100.
  • the data processing device 100 and the external processing device 180 are connected via a network, and the data processing control unit 113 and the data processing unit 121c are configured to be communicable.
  • the verification module provided by the platform provider is called and executed by the data processing unit 121c by the verification function 122 owned by the data processing unit 121c, thereby performing external processing.
  • a verification data transmission unit 152 is provided on the device 180. Since the verification data transmission unit 152 has an interface function for communicating with the data processing control unit 113, the data processing control unit 113 performs external processing even when the application program 305 is provided on the external processing device 180. It is possible to acquire the application execution time information 302 which is the information on the memory of the device 180. Therefore, even when the application program 305 is provided on the external processing device 180, the validity of the application program 305 can be verified.
  • 100 data processing device 101 processor, 102 main storage unit, 103 auxiliary storage unit, 104 input unit, 105 output unit, 106 communication unit, 107 internal bus, 110 data processing platform, 111 setting information construction unit, 112 setting information storage unit , 113 Data processing control unit, 121, 121a, 121b, 121c Data processing unit, 122 Verification function, 131, 132 Data collection unit, 140 Engineering tool, 141 Data processing control setting unit, 150, 152 Verification data transmission unit, 180 External processing device, 200, 201, 202 equipment, 201a sensor, 210 network, 300 certification body, 301 certification body private key, 302 application execution information, 303 authentication data, 304 authentication information, 310 application vendor, 305 application program, 320 User, 401 certification body public key, 402 application execution information, 403 memory, 500 data processing execution unit, 501 authentication data storage unit, 502 application private key storage unit, 503 encryption / decryption unit, 504 distribution key storage unit, 505 Authentication data transmission unit, 511 Certification

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

データ処理システムは、認証機関が保有する第1の秘密鍵301で予め暗号化された認証データ303を有するアプリケーションプログラム310の検証を行う検証手段521を備え、検証手段521は、アプリケーションプログラム310に含まれる検証用関数122が実行された際にメモリ403に展開される情報である動的情報402を取得し、予め保有している第1の秘密鍵301に対応する第1の公開鍵401を用いて認証データ303を復号することで得られる検証用動的情報302と比較することで、アプリケーションプログラム310の検証を行うことを特徴とするデータ処理システム。

Description

データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法
 この発明は、アプリケーションプログラムの検証機能を備えたデータ処理システム、データ処理装置、およびアプリケーションプログラムの検証方法に関する。
 近年、工場に代表される施設では、施設内からデータを収集して処理することで、生産工程、検査工程、その他の工程の管理や改善が実現されている。産業界では、現場で収集したデータを分析し現場の改善に生かそうとする機運が高まっている。それに伴い、データを分析し改善活動するためのシステムのベースとなるプラットフォームや、また、そのプラットフォームと連携して動作してデータの収集や分析を行うアプリケーションプログラムが、それぞれユーザに提供されている。
 ユーザが保有するアプリケーションプログラムが正規のアプリケーションベンダから提供されたものであるか、あるいは改竄されたものであるかを区別することは、一般ユーザにとっては非常に困難である。改竄されたアプリケーションプログラムが実行された場合、データが破壊されたり、悪意のある第三者に現場の機密データが流出してしまったり等の深刻な被害が発生することが考えられる。
特許文献1では、データに電子署名を施しこれをOSプログラムがチェックすることにより署名情報の正当性を確認し、さらに署名者自身が悪意を持ってアプリケーションプログラムに付属するデータを改竄し再署名を行った場合でもコンピュータが改竄を検出できるように、アプリケーションプログラム自身に署名情報に基づき作成された秘匿情報の正当性を確認する機能(改竄チェックルーチン)を内在させている。この機能により、アプリケーションプログラムに付属するデータに改竄ありとアプリケーションプログラム自身が判断した場合には、アプリケーションプログラムの実行が中止される(特許文献1参照)。
特開2014-48866号公報
特許文献1のシステムを用いた場合、例えばプラットフォームの管理団体がアプリケーションプログラムの認定を行いそれに対して署名を発行した後に、アプリケーションプログラムに付属するデータ(リソースデータや補助ファイル)が改竄された場合には、その改竄を検出することができる。しかしながら、改竄のチェック機能がアプリケーションプログラムに依存しているため、アプリケーションプログラムが改竄され、改竄チェックルーチンが動作しないように改変された場合には、コンピュータはアプリケーションプログラムの改竄が検知できない。したがって、コンピュータは改竄されたアプリケーションプログラムの実行を中止することができない場合があった。
 本発明は、上記の事情に鑑みなされたものであり、アプリケーションプログラムの改竄を精度よく検出できる検証技術を提供することを目的とする。
 本発明に係るデータ処理システムは、認証機関が保有する第1の秘密鍵で予め暗号化された認証データを有するアプリケーションプログラムの検証を行う検証手段を備え、検証手段は、アプリケーションプログラムに含まれる検証用関数が実行された際にメモリに展開される情報である動的情報を取得し、予め保有している第1の秘密鍵に対応する第1の公開鍵を用いて認証データを復号することで得られる検証用動的情報と比較することで、アプリケーションプログラムの検証を行う。
 本発明に係るデータ処理装置は、認証機関の公開鍵を格納する公開鍵格納部と、公開鍵に対応する認証機関の秘密鍵で予め暗号化されてアプリケーションプログラムに埋め込まれた認証データを、公開鍵を用いて復号する認証データ復号部と、アプリケーションプログラムに含まれる検証用関数が実行された際にメモリに展開される情報である動的情報をメモリから取得し、取得した動的情報と、認証データを復号することで得られる検証用動的情報とを比較することで、アプリケーションプログラムの検証を行う整合性確認部と、を備える。
 本発明に係るアプリケーションプログラムの検証方法は、認証機関の秘密鍵で暗号化されてアプリケーションプログラムに埋め込まれた認証データを、秘密鍵に対応する認証機関の公開鍵を用いて復号するステップと、認証データから検証用動的情報を抽出するステップと、アプリケーションプログラムに含まれる検証用関数が実行された際にメモリに展開される動的情報をメモリから取得するステップと、取得した動的情報と検証用動的情報とを比較することで、アプリケーションプログラムの検証を行うステップと、を備える。
 本発明のデータ処理システム、データ処理装置およびアプリケーションプログラムの検証方法においては、アプリケーションプログラムに含まれる検証用関数が実行された際にメモリに展開される情報をアプリケーションプログラムが正規品であるか否かの検証に用いるため、アプリケーションプログラムの改竄を精度よく検出することが可能となる。
この発明の実施の形態に係るデータ処理システムのハードウェア構成を示す図。 この発明の実施の形態に係るデータ処理装置のハードウェア構成を示す図。 この発明の実施の形態に係るデータ処理システムのシステム構成を示す図。 この発明の実施の形態に係るアプリケーションプログラムの認証の流れを示す図。 この発明の実施の形態に係るアプリケーションプログラムの検証方法を示す図。 この発明の実施の形態に係るデータ処理部およびデータ処理制御部のシステム構成を示す図。 この発明の実施の形態に係るアプリケーションプログラムの検証の流れを示すフローチャート。 この発明の実施の形態に係るデータ処理システムのシステム構成の変形例を示す図。
 以下、本発明の実施の形態に係るデータ処理システム、データ処理装置およびアプリケーションプログラムの検証方法について、図面を参照しつつ詳細に説明する。
実施の形態.
 本実施の形態に係るデータ処理システムは、機器から送信されたデータを処理するシステムである。データ処理システムは、製品の生産システムとして工場に設置される。データ処理システムによるデータの処理は、例えば、不良品の検出および製造工程からの除外、材料の分類、又は異常の監視を実現するために実行される。データ処理システムは、データに施す処理の内容をユーザが設定する。データ処理システムのハードウェア構成を図1に示す。データ処理システムは、製品の製造工程で稼働する機器201,202と、機器201,202から送信されたデータを処理するデータ処理装置100と、を有している。
 データ処理装置100は、ネットワーク210を介して機器201,202と接続され、機器201,202との間で信号を送受信することにより互いに通信する。データ処理装置100と機器201,202とは、共にネットワーク210を介して接続されているが、異なる規格のネットワークを介して接続されてもよい。ネットワーク210は、産業用ネットワークである。なお、ネットワーク210は、シリアル通信を実現するための専用線であってもよい。
 機器201は、製品の製造工程で利用されるセンサ201aを備えた制御装置である。センサ201aは、例えば、光センサ、圧力センサ、超音波センサ、その他の検出器である。機器201は、センサ201aによるセンシング結果を含むデータを、データ処理装置100から指定された周期で繰り返し、データ処理装置100に送信する。この周期は、例えば、10ms、100ms、又は1secである。
 機器202は、例えば、製品の製造工程で利用されるアクチュエータ又はロボットである。機器202は、データ処理装置100によるデータの処理結果に応じて稼働する。詳細には、機器202は、データの処理結果として、稼働モードの指定、稼働開始、および稼働停止のいずれかを指示する動作指令をデータ処理装置100から受信すると、この動作指令に従って稼働状態を変更する。
 以下では、データ処理装置100に接続される機器201,202を総称して機器200と表記する。データ処理装置100と機器200とを接続するデータの伝送路は、ネットワーク210のような有線通信の伝送路に限定されず、無線通信の伝送路であってもよい。
 機器200は、センシング結果を含むデータを送信する機器とデータ処理装置100からの動作指令に従って稼働する機器とのいずれか一方に限定されない。機器200は、データ処理装置100にデータを送信すると共にデータ処理装置100からの動作指令に従って稼働する機器であってもよい。機器200の個数は2つに限定されない。
 データ処理装置100は、PLCや産業用パソコンであって、機器200から収集したデータに対して、あらかじめ設定された処理を施して処理結果を出力するFA(Factory Automation)装置である。データ処理装置100は、処理結果の出力として、機器200へ動作指令を送信するが、これには限定されず、データを分析又は加工した品質管理情報をユーザに提示してもよいし、データ処理装置100自体又は外部のサーバ装置へ品質管理情報を蓄積してもよい。
 データ処理装置100のハードウェア構成を図2に示す。データ処理装置100は、プロセッサ101と、主記憶部102と、補助記憶部103と、入力部104と、出力部105と、通信部106と、を有するコンピュータである。主記憶部102、補助記憶部103、入力部104、出力部105および通信部106はいずれも、内部バス107を介してプロセッサ101に接続される。
 プロセッサ101は、MPU(Micro Processing Unit)を含む。プロセッサ101は、補助記憶部103に記憶されるプログラムを実行することにより、データ処理装置100の種々の機能を実現して、後述の処理を実行する。
 主記憶部102は、RAM(Random Access Memory)を含む。主記憶部102には、補助記憶部103からプログラムがロードされる。そして、主記憶部102は、プロセッサ101の作業領域として用いられる。
 補助記憶部103は、EEPROM(Electrically Erasable Programmable Read-Only Memory)に代表される不揮発性メモリを含む。補助記憶部103は、プログラムの他に、プロセッサ101の処理に用いられる種々のデータを記憶する。補助記憶部103は、プロセッサ101の指示に従って、プロセッサ101によって利用されるデータをプロセッサ101に供給し、プロセッサ101から供給されたデータを記憶する。なお、補助記憶部103には複数のプログラムが記憶されている。また、プログラムは、データ処理装置100に予め設定されたプログラムと、データ処理装置100のユーザによって追加されたプログラムと、を含む。
 入力部104は、入力キーおよびポインティングデバイスに代表される入力デバイスを含む。入力部104は、データ処理装置100のユーザによって入力された情報を取得して、取得した情報をプロセッサ101に通知する。
 出力部105は、表示装置およびスピーカに代表される出力デバイスを含む。出力部105は、プロセッサ101の指示に従って、種々の情報をユーザに提示する。
 通信部106は、外部の機器200と通信するためのネットワークインタフェース回路を含む。通信部106は、機器200から信号を受信して、この信号により示されるデータをプロセッサ101へ出力する。また、通信部106は、プロセッサ101から出力されたデータを示す信号を機器200へ送信する。
 図3は、本発明の実施の形態に係るデータ処理システムのシステム構成を表す。データ処理システムは、データ処理装置100と機器201,202とで構成されている。データ処理装置100は、エンジニアリングツール140、データ処理プラットフォーム110、データ収集部131,132、データ処理部121a,121b、および検証データ送信部150で構成されている。
 エンジニアリングツール140は、データ処理の内容をユーザが設定するデータ処理制御設定部141を備える。エンジニアリングツール140は、補助記憶部103に記憶されたソフトウェアが、主記憶部102に読み込まれ、プロセッサ101により実行されることにより、実現される。データ処理の内容の設定は、ユーザが入力部104を介して行う。
 データ処理プラットフォーム110は、エンジニアリングツール140から受け取った設定情報データを受け取る設定情報構築部111と、構築した設定情報を蓄積しておく設定情報蓄積部112と、蓄積した設定情報を解析しデータ収集部131,132とデータ処理部121a,121bに指示を行うデータ処理制御部113と、を有する。設定情報構築部111、設定情報蓄積部112およびデータ処理制御部113は、補助記憶部103に記憶されたプログラムが、主記憶部102に読み込まれ、プロセッサ101により実行されることにより、実現される。設定情報蓄積部112は、補助記憶部103に設定情報を蓄積する。
 データ収集部131,132は、データ処理制御部113の指示に従って、機器201,202からデータを収集し、データ処理制御部113に受け渡すと共に、データ処理制御部113から受け取ったデータを機器201,202に渡す機能を備える。データ処理制御部113からの指示には、例えば、収集するデータの種類、収集周期などの情報が含まれる。データ収集部131,132は、補助記憶部103に記憶されたプログラムが、主記憶部102に読み込まれ、プロセッサ101により実行されることにより、実現される。機器201,202との通信には、通信部106が用いられる。データ収集部131,132は、機器200とデータ処理制御部113との間に介在し、インタフェースの変換の機能を備える。機器200が通信プロトコルの異なるネットワークにより接続されていても、通信プロトコルの差異を吸収し、データ処理プラットフォーム110側で指定された形式にてデータ処理制御部113との通信を行う。
 データ処理部121a,121bは、データ処理制御部113の指示に従って、データ処理制御部113から受け渡されたデータに対し、処理を行う。データ処理部121a,121bは、アプリケーションプログラムとして、アプリケーションベンダ310から提供されるものであって、補助記憶部103に記憶されたプログラムが、主記憶部102に読み込まれ、プロセッサ101により実行されることにより、実現される。データ処理制御部113がデータ処理部121a,121bへ与える指示には、例えば、データを出力する際のデータ形式(桁数)などのパラメータが含まれる。データ処理部121a,121bに与えるパラメータは、データ処理部121a,121bに依存する。データ処理部121a,121bは、それぞれ独立して処理を行うが、データ処理制御部113が介在することで、実質的に連携して処理を行うこともできる。例えば、データ処理部121aがセンシングデータからノイズを除去するアプリケーションプログラムであり、データ処理部121bがセンシングデータを分析し、機器201の異常有無の診断を行うアプリケーションプログラムである場合がある。この場合、まずデータ処理制御部113が、機器201から収集したセンシングデータをデータ処理部121aに与え、データ処理部121aでノイズが除去させ、データ処理部121aからノイズが除去されたセンシングデータを受け取る。そして、データ処理制御部113が、ノイズが除去されたセンシングデータをデータ処理部121bに与え、機器201の異常有無の診断を実行させる。このように、データ処理制御部113の働きにより、データ処理部121a,121bを実質的に連携させて、データ処理を行わせることができる。
 検証データ送信部150は、アプリケーションプログラムの検証の際、検証用のデータをメモリから取得して、データ処理制御部113に送信する。検証データ送信部150は、検証用モジュールがデータ処理部121a,121bに呼び出され、実行されることで実現する機能部である。検証用モジュールはプラットフォーム提供者が予め準備し、ユーザに提供されるものであり、検証データ送信部はデータ処理制御部113と安全な通信を行うためのインタフェース機能を備える。検証用モジュールは、例えば、DLL(Dynamic Link Library、動的リンクライブラリ)ファイルの形式で提供される。
 次に、アプリケーションプログラム305の認証の流れについて、図4を用いて説明する。データ処理部121a,121bは、アプリケーションベンダ310から提供されるアプリケーションプログラム305をユーザ320がデータ処理装置100にインストールすることで、追加することができる。アプリケーションプログラム305は、その性能を保証するために、認証機関300(プラットフォーム提供者)の認証を受け、認証情報304が埋め込まれた状態でユーザ320に提供される。
 アプリケーションベンダ310は、アプリケーションプログラム305独自の情報であるアプリ実行時情報302を、認証機関300に渡す。本実施の形態において、アプリ実行時情報302は、データ処理装置100等のコンピュータがアプリケーションプログラム305を実行した際に生成される動的情報である。当該動的情報の具体例としては、関数コール時にスタック領域に確保された情報など、アプリケーションプログラム305の実行時に、アプリケーションプログラム305が動作するデータ処理装置100内のメモリ上に展開される情報が挙げられる。具体的には、アプリケーションプログラム305は検証用のデータであるアプリ実行時情報を出力するための検証用関数を備えており、この検証用関数のスタックメモリ(検証用関数が実行されたされた際に検証用関数に割り当てられたメモリ上のスタック領域)に確保された情報が、アプリ実行時情報302として用いられる。このスタック領域に確保された情報は、例えば、検証用関数をはじめとする一連の呼び出し元関数を記録したデータの集合であり、各関数の戻り先アドレスに関する情報が含まれる。アプリ実行時情報302は、スタックメモリに確保された情報以外の具体例としては、予め定められた検証用関数が実行された際における、大域変数のメモリ上でのアドレス情報や大域変数として格納されている値などでもよい。なお、ここで、メモリはデータ処理装置100の主記憶部102に限定されず、プロセッサ101内部のキャッシュメモリを含み、キャッシュメモリ上に展開される情報を用いても良い。認証機関300は、アプリ実行時情報302と認証情報304とをまとめ、認証機関秘密鍵301にて暗号化した認証データ303を作成し、アプリケーションベンダ310に提供する。認証機関秘密鍵301は、第1の秘密鍵に相当する。ここで、認証情報304とは認証機関300が作成する電子署名であり、認証データ303が認証機関300により作成されたものであることを保証する電子データである。次に、アプリケーションベンダ310は、受け取った認証データ303を、開発したアプリケーションプログラム305に埋め込んで、ユーザ320に提供する。これにより、認証機関300の認証を受けたアプリケーションプログラム305がユーザ320に提供される。アプリ実行時情報302は、検証用動的情報に相当する。
 次に、アプリケーションプログラム305の検証方法について、図5を用いて説明する。データ処理装置100において、アプリケーションプログラム305が実行されることで実現されるデータ処理部121は、認証データ303をデータ処理制御部113に受け渡す。データ処理制御部113は出力された認証データ303を自身が保有している認証機関公開鍵401で復号し、復号された認証情報304とアプリ実行時情報302を得る。認証機関公開鍵401は認証データ303の作成時に使用された認証機関秘密鍵301と一対となっており、認証機関秘密鍵301で暗号化された認証データ303を復号することができ、認証機関秘密鍵301で暗号化されている認証データ303は認証機関公開鍵401でしか復号できない。認証機関公開鍵401は、第1の公開鍵に相当する。
 データ処理制御部113は復号した認証データ303から認証情報304を取り出し、認証データ303が認証機関300で認証された正規品であることを検証する。そして、認証データ303が正規の認証機関300で認証された正規品であると判明した場合、データ処理制御部113はアプリケーションプログラム305を実行した際に生成される情報であるアプリ実行時情報402を取得する。データ処理制御部113は、検証データ送信部150経由で、メモリ403からアプリ実行時情報402を取得する。検証データ送信部は、データ処理部121が保有する検証用関数122により検証用モジュールが呼び出され実行されることで実現する。検証データ送信部150は、検証用関数122が実行されている状態においてメモリ403に展開されている情報を読み出し、データ処理制御部113に送信する。検証用モジュールはプラットフォーム提供者により提供されるものであり、検証データ送信部150は、予め規定された専用のインタフェース機能を介してデータ処理制御部113にデータを送信するため、アプリケーションプログラム305はアプリ実行時情報402を偽装することができない。なお、データ処理制御部113は、検証データ送信部150を経由せず、検証用関数122の実行時にメモリ403に展開される情報を直接読み出すことでアプリ実行時情報402を取得してもよい。この場合もメモリ403からアプリ実行時情報402を取り出すため、アプリケーションプログラム305は、アプリ実行時情報402を偽装することができない。アプリケーションプログラム305が改変された場合には、メモリ403内に展開される情報(スタック領域に確保された戻り値のアドレス等)は変化するため、メモリ403に展開される情報を用いることで、アプリケーションプログラム305の改変を精度よく検知することができる。データ処理制御部113は、復号した認証データ303から取り出したアプリ実行時情報302と、新たに取得したアプリ実行時情報402との整合性を検証し、アプリケーションプログラム305に埋め込まれている認証データ303が当該アプリケーションプログラム305に対して発行されたものであることを確認する。アプリ実行時情報402は、動的情報に相当する。
 次に、データ処理部121およびデータ処理制御部113のシステム構成について、図6を用いて説明する。データ処理部121は、データ処理実行部500と、認証データ格納部501と、認証データ送信部505と、アプリ秘密鍵格納部502と、暗号化/復号部503と、配信鍵格納部504と、を備える。データ処理実行部500は、データ処理制御部113から受け取ったデータに対しデータ処理を行う。認証データ格納部501は、暗号化された認証データ303を格納する。認証データ送信部505は、認証データ303をデータ処理制御部113へ送信する。アプリ秘密鍵格納部502は、アプリ秘密鍵を格納する。アプリ秘密鍵は、アプリケーションプログラム305に予め埋め込まれているものである。アプリ秘密鍵は、第2の秘密鍵に相当する。暗号化/復号部503は、データ処理制御部113へ送信するデータの暗号化、およびデータ処理制御部113から受信したデータの復号を行う。配信鍵格納部504は、後に説明する配信鍵を格納する。データ処理実行部500、認証データ格納部501、暗号化/復号部503は、アプリケーションプログラム305がプロセッサ101によって実行されることにより実現される。一方、認証データ格納部501、アプリ秘密鍵格納部502および配信鍵格納部504は、補助記憶部103により実現される。
 データ処理制御部113は、認証機関公開鍵格納部511と、認証データ復号部512と、認証情報抽出部513と、アプリ実行時情報抽出部514と、アプリ公開鍵抽出部515と、整合性確認部516と、アプリ公開鍵格納部517と、配信鍵生成部518と、配信鍵格納部519と、暗号化/復号部520と、を備える。認証データ復号部512、認証情報抽出部513、アプリ実行時情報抽出部514、アプリ公開鍵抽出部515および整合性確認部516は、検証部521を構成する。検証部521は検証手段に相当する。認証機関公開鍵格納部511は、予め認証機関300から与えられた認証機関公開鍵401を格納している。認証データ復号部512は、データ処理部121の認証データ送信部505から暗号化された認証データ303を受信し、認証機関公開鍵格納部511に格納されている認証機関公開鍵401を用いて、認証データ303の復号を行う。認証情報抽出部513は、復号された認証データ303から認証情報304を抽出し、整合性確認部516に渡す。アプリ実行時情報抽出部514は、復号された認証データ303から、アプリ実行時情報302を抽出し、整合性確認部516に渡す。アプリ公開鍵抽出部515は、復号された認証データ303からアプリ公開鍵を抽出し、アプリ公開鍵をアプリ公開鍵格納部517に格納する。アプリ秘密鍵とアプリ公開鍵は対をなすものである。アプリ公開鍵は、第2の公開鍵に相当する。整合性確認部516は、認証情報抽出部513から受け取った認証情報304の検証を行い、認証データ303が正規の認証機関300で認証されたものであるか否かの検証を行う。また、整合性確認部516は、アプリ実行時情報抽出部514から受け取ったアプリ実行時情報302の検証を行い、認証データ303がデータ処理部121を実現するアプリケーションプログラム305に対し発行されたものであることを確認する。認証データ復号部512と、認証情報抽出部513と、アプリ実行時情報抽出部514と、アプリ公開鍵抽出部515と、整合性確認部516とは、各部に対応するプログラムモジュールがプロセッサ101に実行されることにより実現される。認証機関公開鍵格納部511と、アプリ公開鍵格納部517とは、補助記憶部103により実現される。
 配信鍵生成部518は、整合性確認部516においてデータ処理部121の正当性の確認がとれた場合に、配信鍵を生成し、配信鍵格納部519に格納する。また、この配信鍵は、暗号化/復号部520において、アプリ公開鍵格納部517に格納されたアプリ公開鍵を用い暗号化されて、データ処理部121に渡される。一方、データ処理部121は、アプリ公開鍵と対をなすアプリ秘密鍵をアプリ秘密鍵格納部502に保有しているため、アプリ公開鍵で暗号化された配信鍵を暗号化/復号部503にて復号することができる。また、データ処理部121のみが、アプリ公開鍵と対をなすアプリ秘密鍵を保有しているため、データ処理部121以外は、当該アプリ公開鍵で暗号化されたデータ(配信鍵)を復号することはできない。したがって、データ処理制御部113とデータ処理部121とは、安全に配信鍵を共有することができる。ここで、配信鍵生成部518および暗号化/復号部520は、それぞれ対応するプログラムモジュールがプロセッサ101に実行されることにより実現される。配信鍵格納部519は、補助記憶部103により実現される。
 配信鍵は、データ処理制御部113がデータ処理部121に処理させるデータを送信する際、およびデータ処理部121が処理したデータをデータ処理制御部113に返す際のデータの暗号化および復号に用いられる共通鍵である。データ処理制御部113がデータ処理部121に処理させるデータを送信する際は、データは配信鍵を用い配信鍵を用いて暗号化/復号部520で暗号化され、暗号化/復号部503で復号される。一方、データ処理部121が処理したデータをデータ処理制御部113に返す際は、データは配信鍵を用い暗号化/復号部503で暗号化され、暗号化/復号部520で復号される。安全に共有化された配信鍵を用いることで、データ処理制御部113とデータ処理部121との間で、安全なデータのやり取りが可能となる。
 データ処理制御部113におけるアプリケーションプログラム305の検証の流れについて、図7のフローチャートを用いて説明する。まず、認証データ復号部512が、認証機関公開鍵格納部511に格納された認証機関公開鍵401を用いて、データ処理部121の認証データ格納部501から取得した認証データ303の復号を行う(S101)。次に、復号した認証データ303に含まれる認証情報304の検証を行い、認証データ303が正規の認証機関300で認証されたものであるかの確認を行う(S102)。ここで、認証データ303が正規の認証機関300で発行されたものでない場合、アプリケーションプログラム305の実行を禁止する(S110)。一方、認証データ303が正規の認証機関300で発行されたものであることが確認できた場合、データ処理制御部113はメモリ403からアプリ実行時情報402を取得する(S103)。
 次に、データ処理制御部113は、復号した認証データ303に含まれるアプリ実行時情報302と取得したアプリ実行時情報402とを比較することで、アプリ実行時情報302の検証を行う(S104)。検証の結果、正当性が確認できなかった場合は、アプリケーションプログラム305の実行を禁止する(S110)。一方、正当性が確認できた場合は、アプリケーションプログラム305におけるデータ処理を許可する。
 また、アプリケーションプログラム305の正当性が確認できた場合、復号された認証データ303から、アプリ公開鍵を抽出し、アプリ公開鍵格納部517に格納する(S105)。そして、配信鍵生成部518が、データ処理制御部113とデータ処理部121でデータのやり取りを行う際のデータの暗号化および復号に用いる共通鍵である配信鍵を作成し、配信鍵格納部519に格納する(S106)。その後、暗号化/復号部520が、アプリ公開鍵を用いて配信鍵を暗号化し(S107)、データ処理部121に暗号化された配信鍵を送付する(S108)。配信鍵は、データ配信用共通鍵に相当する。
 その後、図示しないが、データ処理部121では、アプリ公開鍵と対をなすアプリ秘密鍵を用い、アプリ公開鍵を用いて暗号化された配信鍵の復号を行い、当該配信鍵を配信鍵格納部504に格納する。アプリ公開鍵と対をなすアプリ秘密鍵は、データ処理部121のみが保有しているため、データ処理部121以外は、アプリ公開鍵を用いて暗号化された配信鍵の復号を行うことはできない。したがって、データ処理制御部113とデータ処理部121との間で、安全に配信鍵の共有を行うことができる。これにより、データ処理制御部113とデータ処理部121の間での暗号化通信が可能となる。
 続いて、データ処理システムのシステム構成の変形例について、図8を用いて説明する。図3に示したデータ処理システムでは、データ処理部121a,121bと、データ処理制御部113とが、同じデータ処理装置100に設けられていたが、高速な演算処理が可能な他のデータ処理装置において、データ処理を行った方が好ましい場合がある。そこで、図8に示したデータ処理システムのシステム構成では、データ処理部121cがデータ処理装置100とは別の外部処理装置180上に設けられている。ここで、データ処理装置100と外部処理装置180とはネットワークを介して接続され、データ処理制御部113とデータ処理部121cとが通信可能に構成されている。
 他の制御装置上にアプリケーションプログラムがインストールされている場合、他の制御装置から偽装した認証情報が与えられる場合があり、アプリケーションプログラムの正当性の検証が難しい。しかしながら、本実施の形態のアプリケーションプログラムの検証方法では、プラットフォーム提供者が提供した検証用モジュールを、データ処理部121cがデータ処理部121c保有の検証用関数122が呼び出して実行することで、外部処理装置180上に、検証データ送信部152が設けられる。検証データ送信部152はデータ処理制御部113と通信するためのインタフェース機能を有しているため、アプリケーションプログラム305が外部処理装置180上に設けられている場合でも、データ処理制御部113は外部処理装置180のメモリ上の情報であるアプリ実行時情報302を取得することができる。したがって、アプリケーションプログラム305が外部処理装置180上に設けられている場合においても、アプリケーションプログラム305の正当性の検証が可能である。
 100 データ処理装置、101 プロセッサ、102 主記憶部、103 補助記憶部、104 入力部、105 出力部、106 通信部、107 内部バス、110 データ処理プラットフォーム、111 設定情報構築部、112 設定情報蓄積部、113 データ処理制御部、121,121a,121b,121c データ処理部、122 検証用関数、131,132 データ収集部、140 エンジニアリングツール、141 データ処理制御設定部、150,152 検証データ送信部、180 外部処理装置、200,201,202 機器、201a センサ、210 ネットワーク、300 認証機関、301 認証機関秘密鍵、302 アプリ実行時情報、303 認証データ、304 認証情報、310 アプリケーションベンダ、305 アプリケーションプログラム、320 ユーザ、401 認証機関公開鍵、402 アプリ実行時情報、403 メモリ、500 データ処理実行部、501 認証データ格納部、502 アプリ秘密鍵格納部、503 暗号化/復号部、504 配信鍵格納部、505 認証データ送信部、511 認証機関公開鍵格納部、512 認証データ復号部、513 認証情報抽出部、514 アプリ実行時情報抽出部、515 アプリ公開鍵抽出部、516 整合性確認部、517 アプリ公開鍵格納部、518 配信鍵生成部、519 配信鍵格納部、520 暗号化/復号部、521 検証部。

Claims (8)

  1.  認証機関が保有する第1の秘密鍵で予め暗号化された認証データを有するアプリケーションプログラムの検証を行う検証手段を備えたデータ処理システムにおいて、
     前記検証手段は、前記アプリケーションプログラムに含まれる検証用関数が実行された際にメモリに展開される情報である動的情報を取得し、予め保有している前記第1の秘密鍵に対応する第1の公開鍵を用いて前記認証データを復号することで得られる検証用動的情報と比較することで、前記アプリケーションプログラムの検証を行うことを特徴とするデータ処理システム。
  2.  前記検証手段と通信するためのインタフェース機能を備える検証用モジュールが前記検証用関数に呼び出されて実行されることで、前記メモリに展開されている情報を取得し、前記検証手段に提供されることを特徴とする請求項1に記載のデータ処理システム。
  3.  前記動的情報は、前記検証用モジュールが前記検証用関数に呼び出されて実行された際の、前記メモリのスタック領域に確保された情報であることを特徴とする請求項2に記載のデータ処理システム。
  4.  前記検証手段は、前記検証により前記アプリケーションプログラムが正規品であることが判明した場合、前記アプリケーションプログラムにおけるデータ処理を許可することを特徴とする請求項1~3のいずれか1項に記載のデータ処理システム。
  5.  前記検証手段は、前記検証により前記アプリケーションプログラムが正規品であることが判明した場合、データ配信用共通鍵を生成し、前記アプリケーションプログラムに前記データ配信用共通鍵を送信することを特徴とする請求項4に記載のデータ処理システム。
  6.  前記アプリケーションプログラムは第2の秘密鍵を保有しており、
     前記データ配信用共通鍵は、前記アプリケーションプログラムから提供された前記第2の秘密鍵に対応する第2の公開鍵を用いて暗号化された上で、前記アプリケーションプログラムに送信されることを特徴とする請求項5に記載のデータ処理システム。
  7.  認証機関の公開鍵を格納する公開鍵格納部と、
     前記公開鍵に対応する前記認証機関の秘密鍵で予め暗号化されてアプリケーションプログラムに埋め込まれた認証データを、前記公開鍵を用いて復号する認証データ復号部と、
     前記アプリケーションプログラムに含まれる検証用関数が実行された際にメモリに展開される情報である動的情報をメモリから取得し、取得した前記動的情報と、前記認証データを復号することで得られる検証用動的情報とを比較することで、前記アプリケーションプログラムの検証を行う整合性確認部と、
     を備えることを特徴とするデータ処理装置。
  8.  認証機関の秘密鍵で暗号化されてアプリケーションプログラムに埋め込まれた認証データを、前記秘密鍵に対応する前記認証機関の公開鍵を用いて復号するステップと、
     前記認証データから検証用動的情報を抽出するステップと、
     前記アプリケーションプログラムに含まれる検証用関数が実行された際にメモリに展開される動的情報を前記メモリから取得するステップと、
     取得した前記動的情報と前記検証用動的情報とを比較することで、前記アプリケーションプログラムの検証を行うステップと、
     を備えることを特徴とするアプリケーションプログラムの検証方法。
     
PCT/JP2019/016280 2019-04-16 2019-04-16 データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法 WO2020213050A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2019/016280 WO2020213050A1 (ja) 2019-04-16 2019-04-16 データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法
JP2020515993A JP6737424B1 (ja) 2019-04-16 2019-04-16 データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法
CN201980095316.4A CN113678128A (zh) 2019-04-16 2019-04-16 数据处理***、数据处理装置及应用程序的验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/016280 WO2020213050A1 (ja) 2019-04-16 2019-04-16 データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法

Publications (1)

Publication Number Publication Date
WO2020213050A1 true WO2020213050A1 (ja) 2020-10-22

Family

ID=71949274

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/016280 WO2020213050A1 (ja) 2019-04-16 2019-04-16 データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法

Country Status (3)

Country Link
JP (1) JP6737424B1 (ja)
CN (1) CN113678128A (ja)
WO (1) WO2020213050A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282951A (zh) * 2021-03-12 2021-08-20 北京字节跳动网络技术有限公司 一种应用程序的安全校验方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337630A (ja) * 2002-05-17 2003-11-28 Ntt Docomo Inc 通信端末、プログラム、記録媒体、通信端末のアクセス制御方法およびコンテンツの提供方法
JP2005222341A (ja) * 2004-02-05 2005-08-18 Trend Micro Inc 情報機器上および伝送経路上でのプログラム分析によるセキュリティの確保
US20180260564A1 (en) * 2017-03-08 2018-09-13 Secure-Ic Sas Secured execution context data

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7607122B2 (en) * 2005-06-17 2009-10-20 Microsoft Corporation Post build process to record stack and call tree information
WO2010041464A1 (ja) * 2008-10-10 2010-04-15 パナソニック株式会社 情報処理装置、認証システム、認証装置、情報処理方法、情報処理プログラム、記録媒体及び集積回路

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337630A (ja) * 2002-05-17 2003-11-28 Ntt Docomo Inc 通信端末、プログラム、記録媒体、通信端末のアクセス制御方法およびコンテンツの提供方法
JP2005222341A (ja) * 2004-02-05 2005-08-18 Trend Micro Inc 情報機器上および伝送経路上でのプログラム分析によるセキュリティの確保
US20180260564A1 (en) * 2017-03-08 2018-09-13 Secure-Ic Sas Secured execution context data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282951A (zh) * 2021-03-12 2021-08-20 北京字节跳动网络技术有限公司 一种应用程序的安全校验方法、装置及设备
CN113282951B (zh) * 2021-03-12 2024-02-09 北京字节跳动网络技术有限公司 一种应用程序的安全校验方法、装置及设备

Also Published As

Publication number Publication date
CN113678128A (zh) 2021-11-19
JP6737424B1 (ja) 2020-08-12
JPWO2020213050A1 (ja) 2021-05-06

Similar Documents

Publication Publication Date Title
CN107612698B (zh) 一种商用密码检测方法、装置与***
US9042553B2 (en) Communicating device and communicating method
CN108475319A (zh) 装置出生凭证
JP7458150B2 (ja) データ流通方法及び認証サーバ
CN108347361B (zh) 应用程序测试方法、装置、计算机设备和存储介质
JP6619392B2 (ja) 信頼されていないユーザ機器に関する情報の信頼できる提示のためのシステム及び方法
CN105099705B (zh) 一种基于usb协议的安全通信方法及其***
JP2020504583A (ja) 証明書を使用して識別及び信頼を確立することによる正規デバイス保証のための技術
CN104636680A (zh) 维护部件的真实性验证及使用的许可证密钥的提供和获取
CN100334519C (zh) 建立可信输入输出通道的方法
US9367708B2 (en) Method for producing a hardware device and hardware device
US20150047001A1 (en) Application program execution device
CN103686711B (zh) 网络连接方法和电子设备
JP6737424B1 (ja) データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法
US9756044B2 (en) Establishment of communication connection between mobile device and secure element
CN112383577A (zh) 授权方法、装置、***、设备和存储介质
CN116881936A (zh) 可信计算方法及相关设备
JP2000339153A (ja) プログラム検証方法及び装置及びプログラム検証プログラムを格納した記憶媒体
CN106156548A (zh) 用于程序加密的认证方法和装置
JP2012173388A (ja) ログ採取システム、ストレージ装置及び採取ログ検査方法
CN114065302A (zh) 数据处理方法、装置、设备、介质和区块链网络
CN103827877A (zh) 用于剽窃保护的方法以及执行装置
CN113132455A (zh) 一种分布式工业物联网监控方法和***
JP2008004065A (ja) 半導体装置、電子機器及び機器認証プログラム
JP2016126638A (ja) ログ収集システムおよびログ収集方法

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2020515993

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19925159

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19925159

Country of ref document: EP

Kind code of ref document: A1