WO2022153566A1 - 制御装置、管理方法およびセキュリティプログラム - Google Patents

制御装置、管理方法およびセキュリティプログラム Download PDF

Info

Publication number
WO2022153566A1
WO2022153566A1 PCT/JP2021/009558 JP2021009558W WO2022153566A1 WO 2022153566 A1 WO2022153566 A1 WO 2022153566A1 JP 2021009558 W JP2021009558 W JP 2021009558W WO 2022153566 A1 WO2022153566 A1 WO 2022153566A1
Authority
WO
WIPO (PCT)
Prior art keywords
identification information
unit
security
control
information
Prior art date
Application number
PCT/JP2021/009558
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 オムロン株式会社
Publication of WO2022153566A1 publication Critical patent/WO2022153566A1/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • 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
    • 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

  • This disclosure relates to control devices, management methods and security programs.
  • Control devices such as PLC (Programmable Logic Controller) have been introduced at various manufacturing sites.
  • PLC Programmable Logic Controller
  • Such a control device is a kind of computer, and executes a control program designed according to a manufacturing device, a manufacturing facility, or the like.
  • Patent Document 1 discloses one method for dealing with such a problem. Specifically, in Patent Document 1, the PLC determines whether or not the program in which the control program is encrypted is a program peculiar to the equipment, and if it is a program peculiar to the equipment, controls from the program. Disclose a method of decoding a program and executing a control program to control equipment.
  • the PLC is provided with a storage means for storing the identification data input in advance and the encryption rule, and the program encrypted using the identification data is a program unique to the equipment. Determine if it exists.
  • the PLC obtains a control program by decrypting the encrypted program according to the encryption rule and uses the control program. Therefore, if not only the encrypted program but also the identification data and the encryption rule are extracted, the control program will be used. That is, the method shown in Patent Document 1 has room for improvement in protecting the intellectual property of the control program.
  • One purpose of this disclosure is to protect the intellectual property of the control program.
  • a control device including one or more devices includes a control engine that executes a control program and a security engine that manages whether or not the control program can be executed by the control engine.
  • the security engine includes a generating means, a holding means, a collating means, and a permitting means.
  • the generation means generates unique information using the identification information acquired from each of the one or more devices.
  • the holding means collates the holding means that holds the first unique information generated in advance, and the collating means collates the second unique information generated by the generating means according to the collation request with the first unique information. ..
  • the permission means makes a collation request in response to the execution start request of the control program, and determines whether or not the control program can be executed based on the collation result obtained from the collation means.
  • the generation means selects the identification information according to the security policy from the first identification information that identifies the type of the device and the second identification information that individually identifies the device.
  • the security engine collates the second unique information generated in response to the execution start request of the control program based on the first unique information generated in advance, and responds to the collation result.
  • the unique information is generated from the identification information selected from the first identification information that identifies the type of each device and the second identification information that individually identifies each device. Therefore, when a new control device is created by copying the software (including the first unique information and the control program) and hardware of the control device, it is generated from the identification information of the device included in the new control device.
  • the second unique information can be inconsistent with the first unique information. As a result, it is possible to prevent the control program from being started in an environment different from the environment managed by the security engine. That is, the intellectual property of the control program can be protected.
  • the identification information is selected according to the security policy from the first identification information that identifies the type of the device and the second identification information that individually identifies the device. Therefore, the developer of the control program can appropriately set the security policy in consideration of the priority of the security measures for the control program. As a result, the security level in the security engine can be changed arbitrarily.
  • the security policy is preset from the first policy, the second policy, and the third policy.
  • the first policy is a policy of selecting the first identification information for each of one or more devices.
  • the second policy selects the first identification information for the first device belonging to the first group among one or more devices, and prioritizes the security measures over the first group among one or more devices. It is a policy to select the second identification information for the second device belonging to the second group having a high value.
  • the third policy is a policy of selecting a second identification information for each of one or more devices.
  • the developer can arbitrarily change the security level in the security engine in consideration of the priority of security measures for the control program.
  • each of the one or more devices retains a second identification information.
  • the second identification information is a combination of the first identification information and the third identification information uniquely assigned to the individual of the type of device identified by the first identification information.
  • the generation means acquires the first identification information from the second identification information. According to this disclosure, each device only needs to store the second identification information.
  • one or more devices include a control device having a control engine and a security device having a security engine.
  • a control engine that needs to satisfy the degree of freedom of change to the control program and a security engine that does not like the degree of freedom of change in terms of security are realized by devices different from each other. Enables device design according to characteristics.
  • the holding means holds the first unique information in the form of a distributed ledger with the external device.
  • the first unique information is retained in a state where it is more difficult to falsify.
  • the security level of the intellectual property called the control program can be increased.
  • the collation means further collates the second unique information with the first unique information held by the external device.
  • a third party who illegally copies the control device needs to falsify the first unique information held by the external device in order to execute the control program. Therefore, the security level of the control program can be further increased.
  • the management method executed in the control device including one or more devices includes the first to fourth steps.
  • the first step is a step of holding the first unique information generated in advance.
  • the second step is a step of generating a second unique information using the identification information acquired from each of the one or more devices in response to the execution start request of the control program.
  • the third step is a step of collating the first unique information with the second unique information.
  • the fourth step is a step of determining whether or not the control program can be executed based on the collation result.
  • the second step (generation step) is, for each of the one or more devices, from the first identification information for identifying the type of the device and the second identification information for individually identifying the device according to the security policy. Includes steps to select identification information.
  • the security program causes the computer to execute the above management method.
  • FIG. 5 is a sequence diagram showing a processing procedure when an execution start request of the control program 140 is received in the first modification.
  • FIG. 5 is a sequence diagram showing another example of a processing procedure when an execution start request of the control program 140 is received in the second modification.
  • FIG. 1 is a diagram showing an example of a scene in which the control device 1 according to the embodiment is applied.
  • the control device 1 manages a control program 140 for controlling a controlled object, a control engine 142 for executing the control program 140, and whether or not the control program 140 can be executed by the control engine 142. It is equipped with a security engine 230.
  • Control device 1 includes one or more devices. Each device is controlled by executing the control program 140, and the manufacturing equipment and the like to be controlled are controlled by controlling each device.
  • the security engine 230 includes a permission unit 232, a generation unit 234, a holding unit 236, and a collation unit 238.
  • the permission unit 232 receives the start request of the control program 140 from the control engine 142, and determines whether or not the control program 140 can be executed.
  • the generation unit 234 generates unique information using the identification information acquired from each of the one or more devices constituting the control device 1. For each of the one or more devices, the generation unit 234 selects the identification information according to the security policy from the first identification information for identifying the type of the device and the second identification information for individually identifying the device. Since the unique information is generated using the identification information acquired in this way, it changes according to the change in the configuration of the control device 1.
  • the holding unit 236 holds the management information 30 including the unique information 20 generated in advance for the control device 1.
  • the holding unit 236 permits the update of the management information 30 only when a predetermined condition is satisfied in order to prevent the unique information 20 from being tampered with illegally.
  • the predetermined condition is, for example, a condition that the preset access ID and password match the input information.
  • the collation unit 238 collates the unique information 22 generated by the generation unit 234 in accordance with the collation request with the unique information 20 included in the management information 30. Collation means determining whether or not there is a match.
  • step 1 a step is simply referred to as "S".
  • the generation unit 234 generates the unique information 20 of the control device 1 in advance.
  • the holding unit 236 holds the management information 30 including the unique information 20 generated in advance.
  • the permission unit 232 receives a request to start the control program 140.
  • the control engine 142 makes a start request, but the security engine 230 may include a reception unit that receives the start request.
  • S3 The permission unit 232 requests the collation unit 238 for collation in response to the start request of the control program 140.
  • the collation unit 238 requests the generation unit 234 to generate the unique information 22 in response to the collation request.
  • the generation unit 234 acquires identification information from one or more devices included in the control device 1 in response to the generation request, and generates unique information 22 using the acquired identification information. For each device, the generation unit 234 selects the identification information according to the security policy from the first identification information for identifying the type of the device and the second identification information for individually identifying the device. The generation unit 234 may select the first identification information for all of one or more devices, or may select the second identification information for all of one or more devices. Alternatively, the generation unit 234 may select the first identification information for some of the one or more devices and the second identification information for the remaining devices.
  • the security policy is preset for the control device 1.
  • the collation unit 238 collates the pre-generated unique information 20 included in the management information 30 with the unique information 22 generated at the timing when the collation request is received, and obtains a collation result.
  • the collation unit 238 provides the obtained collation result to the permission unit 232.
  • the permission unit 232 determines whether or not the control program 140 can be executed based on the provided collation result. Specifically, the permission unit 232 permits the execution of the control program 140 according to the matching result indicating a match. The permission unit 232 prohibits the execution of the control program 140 according to the collation result indicating a mismatch.
  • the permission unit 232 provides the control engine 142 with a result (permission or prohibition) determined based on the collation result.
  • the control engine 142 executes the control program 140 only when the determination result of the permission unit 232 is “permission”.
  • the development of the control program 140 for realizing the environment managed by the control device 1 may be performed by a company other than the company that uses the control device 1. In such a case, if the control program 140 and the environment in which the control program 140 can be used are easily imitated, the intellectual property of the company that develops the control program 140 cannot be sufficiently protected.
  • both the hardware and the software of the control device 1 are copied in order to execute the control program 140.
  • the software is copied, not only the control program 140 but also the system program for operating the control engine 142 and the security engine 230 is copied. Further, by copying the software, the management information 30 held by the security engine 230 is also copied.
  • the control device 1 is imitated by installing a device that replaces each device that constitutes the control device 1.
  • the unique information 22 is generated using the identification information acquired from a device different from the control device 1. Therefore, the unique information 22 may be inconsistent with the unique information 20 included in the copied management information 30.
  • the unique information 22 does not match the unique information 20 by setting the security policy to acquire the second identification information for at least one device.
  • the unique information 22 does not match the unique information 20.
  • the unique information 22 does not match the unique information 20.
  • the unique information 22 does not match the unique information 20.
  • the unique information 22 can match the unique information 20 by falsifying the identification information of each device.
  • the number of devices constituting the control device 1 may be several tens, and in such a case, it becomes necessary to falsify the identification information of the devices for all the tens of devices. Therefore, it takes a lot of labor to imitate the control device 1 managed by the control program 140.
  • the identification information is selected according to the security policy from the first identification information for identifying the type of the device and the second identification information for individually identifying the device.
  • the developer of the control program 140 may lower the priority of security measures by selecting the first identification information for a device that is expected to be replaced due to a failure or periodic maintenance. This allows developers to balance maintainability, such as device replacement, with intellectual property protection.
  • FIG. 2 is a schematic view showing the overall configuration of the control system 10 including the control device 1 according to the present embodiment.
  • the control system 10 includes one or more control devices 1 and a higher-level device 3.
  • the control device 1 controls the control target.
  • Controlled objects include various industrial equipment for automating production processes, and devices that give some physical action to manufacturing equipment, production lines, etc. (hereinafter, also collectively referred to as "fields"), and fields. Includes input / output devices that exchange information with and from. The entire production line may be controlled.
  • the control device 1 is communicably connected to the host device 3 and another control device 1 via the information system network 2.
  • the information network 2 is an OPC UA (Object Linking and Embedding for Process Control) that can realize data exchange without depending on, for example, EtherNet / IP (registered trademark) or the type of vendor or OS (Operating System). It is a network that complies with communication standards such as Unified Architecture.
  • Control device 1 includes one or more devices.
  • the control device 1 is composed of a control unit 100, a security unit 200, an I / O (Input / Output) unit 300, a communication coupler 400, and the like.
  • I / O (Input / Output) unit 300 a communication coupler 400, and the like.
  • each unit and communication coupler constituting the control device 1 are also collectively referred to as a “device”.
  • the control unit 100 is an example of a control device constituting the control device 1, executes a control program for controlling a control target, and executes a central process in the control device 1.
  • the security unit 200 is an example of a security device constituting the control device 1, and manages whether or not the control program can be executed by the control unit 100. The method of managing whether or not the control program can be executed will be described later.
  • control unit 100 and the security unit 200 are connected via, for example, an arbitrary data transmission line (for example, PCI Express or EtherNet / IP (registered trademark)).
  • an arbitrary data transmission line for example, PCI Express or EtherNet / IP (registered trademark)
  • the I / O unit 300 is an example of a device constituting the control device 1, and is a unit related to general input / output processing.
  • the I / O unit 300 collects detected values from IO devices including various sensors, various switches, encoders, and the like.
  • the control unit 100 and the I / O unit 300 are communicably connected via an internal bus.
  • the control unit 100 executes an operation of the control program using the detected value collected by the I / O unit 300, and outputs the value of the operation result to the I / O unit 300.
  • the communication coupler 400 is communicably connected to the control unit 100 via the field network 4.
  • the communication coupler 400 performs processing related to data transmission in the field network 4.
  • the communication coupler 400 is communicably connected to one or more I / O units 300 via, for example, an internal bus.
  • the detected values collected by each of the one or more I / O units 300 connected to the communication coupler 400 are output to the control unit 100 via the field network 4.
  • industrial Ethernet As the field network 4, various types of industrial Ethernet (registered trademark) can be typically used.
  • industrial Ethernet for example, EtherCAT (registered trademark), Profinet IRT, MECHATROLINK (registered trademark) -III, Powerlink, SERCOS (registered trademark) -III, CIP Motion and the like are known. Any of these may be adopted.
  • a field network other than Industrial Ethernet may be used. For example, if motion control is not performed, DeviceNet, CompoNet / IP (registered trademark), or the like may be used.
  • Each device constituting the control device 1 has the identification information 40.
  • the identification information 40 is an individual identification code such as SGTIN (Serialized Global Trade Item Number).
  • the device constituting the control device 1 is not limited to the device shown in FIG.
  • the devices constituting the control device 1 are, for example, a power supply unit that supplies power, a special unit having a function that the I / O unit 300 does not support, and safety for preventing human safety from being threatened by equipment or machines. It may include a safety unit or the like that provides the function. Further, the devices constituting the control device 1 present to the operator various information obtained by the control calculation in the control unit 100 or another unit, and in accordance with the operation from the operator, the control unit 100 or the other unit. On the other hand, it may include an HMI (Human Machine Interface) that generates an internal command or the like.
  • HMI Human Machine Interface
  • the host device 3 is a server in the control system 100, an external server such as a cloud server, a PLC having higher performance than the control device 1, or an industrial computer (so-called IPC: Industrial Personal Computer). It is configured as.
  • FIG. 3 is a schematic diagram showing a hardware configuration example of the control unit 100 constituting the control device 1 according to the present embodiment.
  • the control unit 100 has a processor 102 such as a CPU (Central Processing Unit) and a GPU (Graphical Processing Unit), a chip set 104, a main storage device 106, and a secondary storage device as main components. It includes 108, a communication controller 110, a USB controller 112, a memory card interface 114, a field network controller 116, an internal bus controller 118, and an information system network controller 120.
  • a processor 102 such as a CPU (Central Processing Unit) and a GPU (Graphical Processing Unit)
  • a chip set 104 such as a main storage device 106, and a secondary storage device as main components.
  • It includes 108, a communication controller 110, a USB controller 112, a memory card interface 114, a field network controller 116, an internal bus controller 118, and an information system network controller 120.
  • the processor 102 reads various programs stored in the secondary storage device 108 or the memory card 115, deploys them to the main storage device 106, and executes them to perform control operations for controlling the control target, and will be described later. Such processing related to the execution start request of the control program is realized.
  • the main storage device 106 is composed of a volatile storage device such as a DRAM (Dynamic Random Access Memory) or a SRAM (Static Random Access Memory).
  • the secondary storage device 108 is composed of, for example, a non-volatile storage device such as an HDD (Hard Disc Drive) or an SSD (Solid State Drive).
  • the chipset 104 realizes the processing of the control unit 100 as a whole by mediating the exchange of data between the processor 102 and each component.
  • a control program 140 created according to a control target such as equipment or a machine, and a control unit 100 are provided. Identification information 40 for identification is stored.
  • the authentication program 130 is incorporated in the system program 1082.
  • the authentication program 130 is a program executed when the control program 140 is started, and is a program for requesting the security unit 200 for permission to execute the control program 140 to be started.
  • the system program 1082 also provides a function as a control engine that executes the control program 140.
  • the control program 140 is, for example, an intellectual property whose basic algorithm is created by a program development company. For example, the user prepares an environment in which the control program 140 provided by the program development company can be executed by setting the parameters according to the control device 1.
  • the communication controller 110 is in charge of exchanging data with the security unit 200.
  • the communication controller 110 for example, a communication chip corresponding to PCI Express or Ethernet (registered trademark) can be adopted.
  • the USB controller 112 is in charge of exchanging data with an arbitrary information processing device via a USB connection.
  • the arbitrary information processing device includes, for example, a support device that provides the user with functions such as creation or editing of the control program 140, debugging, and setting of various parameters.
  • the memory card interface 114 is configured so that the memory card 115, which is an example of a storage medium, can be attached and detached.
  • the memory card interface 114 can write data such as the control program 140 and various settings to the memory card 115, or can read data such as the control program 140 and various settings from the memory card 115.
  • the field network controller 116 controls the exchange of data with other devices via the field network 4.
  • the internal bus controller 118 controls the exchange of data with other devices (I / O unit 300, etc.) via the internal bus.
  • a manufacturer-specific communication protocol may be used for the internal bus, or a communication protocol that is the same as or compliant with any industrial network protocol may be used.
  • the information system network controller 120 controls the exchange of data with another control device 1 via the information system network 2.
  • FIG. 3 shows a configuration example in which the necessary functions are provided by the processor 102 executing the program, and some or all of these provided functions are provided by a dedicated hardware circuit (for example, ASIC). Alternatively, it may be implemented using an FPGA or the like). Alternatively, the main part of the control unit 100 may be realized by using hardware that follows a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, virtualization technology may be used to execute a plurality of OSs having different uses in parallel, and to execute necessary applications on each OS.
  • a general-purpose architecture for example, an industrial personal computer based on a general-purpose personal computer.
  • virtualization technology may be used to execute a plurality of OSs having different uses in parallel, and to execute necessary applications on each OS.
  • FIG. 4 is a schematic diagram showing a hardware configuration example of the security unit 200 constituting the control device 1 according to the present embodiment.
  • the security unit 200 has, as main components, a processor 202 such as a CPU and a GPU, a chip set 204, a main storage device 206, a secondary storage device 208, a communication controller 210, and a USB controller. It includes 212, a memory card interface 214, and an information network controller 220.
  • the processor 202 has a function of reading various programs stored in the secondary storage device 208 or the memory card 215, deploying them in the main storage device 206, and executing the programs to manage whether or not the control program can be executed in the control unit 100.
  • the main storage device 206 is composed of a volatile storage device such as DRAM or SRAM.
  • the secondary storage device 208 is composed of, for example, a non-volatile storage device such as an HDD or an SSD.
  • the chipset 204 realizes the processing of the security unit 200 as a whole by mediating the exchange of data between the processor 202 and each component.
  • the secondary storage device 208 stores identification information 40 and management information 30 in addition to the system program 2082 for realizing the basic functions of the security unit 200.
  • the security program 240 is incorporated in the system program 2082.
  • the security program 240 is a program for managing whether or not the control program 140 executed by the control device 1 can be executed. That is, the security program 240 provides a function as a security engine that manages whether or not the control program 140 can be executed.
  • the management information 30 is information for managing unique information generated by using the identification information 40 acquired from one or more devices constituting the control device 1.
  • the unique information is used as reference information when determining whether or not to permit the execution of the control program 140. The unique information will be described later.
  • the communication controller 210 is in charge of exchanging data with the control unit 100.
  • a communication chip corresponding to, for example, PCI Express or Ethernet (registered trademark) can be adopted for the control unit 100 in the same manner as the communication controller 210.
  • the USB controller 212 is in charge of exchanging data with an arbitrary information processing device via a USB connection.
  • the optional information processing device includes, for example, a support device that provides the user with functions such as setting the security program 240.
  • the memory card interface 214 is configured so that the memory card 215, which is an example of a storage medium, can be attached and detached.
  • the memory card interface 214 can write data such as programs and various settings to the memory card 215, or can read data such as programs and various settings from the memory card 215.
  • the information system network controller 220 controls the exchange of data with another control device 1 via the information system network 2.
  • the information system network controller 220 may adopt a general-purpose network protocol such as Ethernet (registered trademark).
  • FIG. 4 shows a configuration example in which the necessary functions are provided by the processor 202 executing the program, and some or all of these provided functions are provided by a dedicated hardware circuit (for example, ASIC). Alternatively, it may be implemented using an FPGA or the like). Alternatively, the main part of the security unit 200 may be realized by using hardware that follows a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, virtualization technology may be used to execute a plurality of OSs having different uses in parallel, and to execute necessary applications on each OS.
  • a general-purpose architecture for example, an industrial personal computer based on a general-purpose personal computer.
  • virtualization technology may be used to execute a plurality of OSs having different uses in parallel, and to execute necessary applications on each OS.
  • control device 1 may be connected to the information system network 2 via the information system network controller 120 of the control unit 100, and the information system of the security unit 200. It may be connected via the network controller 220. In the present embodiment, the control device 1 will be described as being connected via the information system network controller 220 of the security unit 200.
  • FIG. 5 is a diagram showing an example of identification information 40 possessed by each device included in the control device 1.
  • FIG. 5 shows the identification information 40 which is SGTIN.
  • SGTIN is one of the identification codes for writing on the electronic tag standardized by the distribution system standardization organization GS1, and is an individual identification code for products.
  • the identification information 40 is a second identification information for individually identifying the device.
  • the identification information 40 includes identification information 42, which is a product identification code for identifying the type of device, and a serial number uniquely assigned to an individual device of the type identified by the identification information 42. It is a combination with the number 44 (third identification information).
  • the identification information 42 is the first identification information for identifying the type of the device.
  • the identification information 42 is a product identification code GTIN (Global Trade Item Number) standardized by the distribution system standardization organization GS1.
  • GTIN Global Trade Item Number
  • GTIN is composed of an indicator, a business operator code, a product item code, and a check digit.
  • the developer of the control program 140 sets a security policy for the control program 140.
  • the security policy setting is not limited to the developer of the control program 140, and may be executed by another person.
  • the security policy is preset in the security program 240.
  • the security policy is preset from the following policies (A) to (C).
  • the developer sets policy (A) when there is a high possibility that the control program 140 is imitated and the security level of the control program 140 is to be increased.
  • the developer sets a policy (B) or a policy (C) when the control program 140 is unlikely to be imitated or when the value of the control program 140 as an intellectual property is not high.
  • the developer uses the product identification code GTIN (identification information 42) of the device belonging to the first group and the product identification code GTIN (identification information 42) of the device belonging to the second group. Is set in advance.
  • FIG. 6 is a diagram showing a flow of a method of determining whether or not the control program 140 can be executed.
  • the description of units other than the control unit 100 and the security unit 200 (I / O unit 300, communication coupler 400, etc.) constituting the control device 1 is omitted. There is.
  • the control unit 100 first requests the security unit 200 to determine whether or not the control program 140 can be executed ((1) in the figure).
  • the security unit 200 collects the identification information 40 from one or more devices constituting the control device 1 ((2) in the figure).
  • the security unit 200 selects one of the identification information 40 (SGTIN) of each device and the identification information 42 (GTIN) included in the identification information 40 according to a preset security policy ((3) in the figure). ..
  • SGTIN identification information 40
  • GTIN identification information 42
  • the security unit 200 selects one of the identification information 40 (SGTIN) of each device and the identification information 42 (GTIN) included in the identification information 40 according to a preset security policy ((3) in the figure). .
  • the security unit 200 selects the identification information 40 for all the devices.
  • the security unit 200 selects the identification information 42 for the device corresponding to the product identification code GTIN set in the first group.
  • the security unit 200 selects the identification information 40 for the device corresponding to the product identification code GTIN set in the second group.
  • the security unit 200 selects the identification information 42 for all the devices.
  • the security unit 200 generates a system hash value as unique information 22 based on the identification information (identification information 40 or identification information 42) selected for each device ((4) in the figure).
  • the system hash value can be obtained by using a known hash function with the identification information 40 of the devices constituting the control device 1 other than the security unit 200 as an argument.
  • the security unit 200 collates the unique information 22 (system hash value) generated by using the identification information 40 with the unique information 20 managed by the management information 30, and determines whether or not they match (in the figure). (5)).
  • the newly generated unique information 22 and the unique information 20 managed by the management information 30 are collated, and if they match, the control device 1 is a normally managed device. Guaranteed to be. On the other hand, if they do not match, the control device 1 may be a control device that is not managed by the management information 30.
  • the security unit 200 determines whether or not the control program 140 requested in (1) can be executed based on the collation result obtained in the process (5) ((6) in the figure). The security unit 200 permits the execution of the control program 140 according to the collation result indicating "match".
  • the security unit 200 notifies the control unit 100 of a determination result indicating whether or not the control program 140 can be executed ((7) in the figure).
  • FIG. 7 is a block diagram showing an example of the functional configuration of the control unit 100 and the security unit 200.
  • the dashed arrow indicates the flow of instructions.
  • Solid arrows indicate the flow of information.
  • control unit 100 includes a control program execution unit 144 and an authentication unit 132. Each of these functions is realized by the processor 102 of the control unit 100 executing the system program 1082.
  • the control program execution unit 144 functions to execute the control program 140.
  • the control program execution unit 144 requests the authentication unit 132 to authenticate the control program 140 in response to the execution start request of the control program 140.
  • the authentication is to authenticate whether or not the execution environment of the control program 140 is an environment managed by the management information 30 held by the control device 1, and in an environment in which the control program 140 may be executed. To authenticate if there is.
  • the authentication unit 132 includes a determination request unit 134, an identification information transmission unit 136, and an identification information collection unit 138. Upon receiving the authentication request from the control program execution unit 144, the determination request unit 134 requests the permission unit 232 of the security unit 200 to determine whether or not the control program 140 can be executed.
  • the identification information transmission unit 136 transmits the identification information 40 of each device constituting the control device 1 collected by the identification information collection unit 138 to the security unit 200.
  • the identification information collection unit 138 collects the identification information 40 of each device constituting the control device 1 in response to a request from the generation unit 234 of the security unit 200.
  • the identification information collection unit 138 collects the identification information 40 from the security unit 200 not only when determining whether or not the control program 140 can be executed, but also when registering new unique information (system hash value) in the management information 30. Is required.
  • the identification information collecting unit 138 collects the identification information 40 from each of the devices constituting the control device 1 except the security unit 200.
  • the identification information 40 of the security unit 200 may be included in the identification information 40 used to generate the system hash value which is the unique information.
  • the authentication unit 132 After the control program execution unit 144 requests the authentication of the control program 140, the authentication unit 132 receives the determination result of whether or not the control program 140 can be executed from the permission unit 232 of the security unit 200. The authentication unit 132 performs processing according to the determination result received from the security unit 200. When the authentication unit 132 obtains the determination result that the execution can be permitted, the authentication unit 132 notifies the control program execution unit 144 to start the execution of the control program 140. On the other hand, when the authentication unit 132 obtains a determination result that the execution cannot be permitted, the authentication unit 132 instructs the control program execution unit 144 to prohibit the execution of the control program 140.
  • the security unit 200 includes a permission unit 232, a generation unit 234, a holding unit 236, and a collation unit 238. Each of these functions is realized by the processor 202 of the security unit 200 executing the security program 240.
  • the permission unit 232 includes a determination unit 2322 and a collation request unit 2324.
  • the determination unit 2322 determines whether or not to permit the execution of the control program 140 based on the collation results obtained from the collation unit 238 of the security unit 200 including the determination unit 2322 and the collation unit 238 of the other security unit 200. Then, the determination result is notified to the authentication unit 132 of the control unit 100.
  • the collation request unit 2324 requests the collation unit 238 to collate the unique information.
  • the generation unit 234 generates a system hash value which is unique information.
  • the generation unit 234 includes a collection request unit 2342 and a system hash value calculation unit 2344.
  • the collection request unit 2342 functions when the collation unit 238 or the holding unit 236 requests the generation of the system hash value.
  • the collation unit 238 requests the generation of a system hash value when collation is started.
  • the device constituting the control device 1 is changed and the unique information of the changed control device 1 is newly registered in the management information 30, for example, when the control device 1 is normally changed. Requests the generation of a system hash value.
  • the collection requesting unit 2342 requests the identification information collecting unit 138 of the control unit 100 to collect the identification information 40.
  • the system hash value calculation unit 2344 generates a system hash value using the identification information 40 of each device sent from the identification information transmission unit 136.
  • the system hash value calculation unit 2344 typically generates a system hash value by using an algorithm used for a known hash function.
  • the system hash value calculation unit 2344 uses the identification information 40 (SGTIN) and the identification information 42 (GTIN) which is a part of the identification information 40 to generate the system hash value according to the preset security policy. Select information.
  • the system hash value calculation unit 2344 uses the identification information (identification information 40 or identification information 42) selected for each device to generate a system hash value as unique information.
  • the system hash value calculation unit 2344 sends the generated system hash value to the collation unit 238 when the collation unit 238 requests the generation of the system hash value. Further, the system hash value calculation unit 2344 sends the generated system hash value to the holding unit 236 when the holding unit 236 requests the generation of the system hash value.
  • the holding unit 236 holds the management information 30 including the unique information 20 (system hash value) generated in response to the request from the holding unit 236.
  • the holding unit 236 includes a registration unit 2362.
  • the registration unit 2362 functions when the device constituting the control device 1 is changed, the unique information 20 of the changed control device 1 is newly registered in the management information 30, and the management of the unique information 20 is started. ..
  • the registration unit 2362 starts the process when the condition that the preset access ID and password match the input information is satisfied.
  • the registration unit 2362 requests the generation unit 234 to generate the unique information 20.
  • the registration unit 2362 registers the unique information 20 generated by the generation unit 234 as a part of the management information 30.
  • the holding unit 236 transmits the unique information 22 included in the management information 30 to the collating unit 238 in response to the request from the collating unit 238.
  • the collation unit 238 requests the generation unit 234 to generate the unique information 22 in response to the request of the collation request unit 2324. Further, the collation unit 238 requests the holding unit 236 to transmit the unique information 20 included in the management information 30 in response to the request of the collation request unit 2324. The collation unit 238 collates the unique information 22 sent from the system hash value calculation unit 2344 with the unique information 20 sent from the holding unit 236, and sends the collated result to the determination unit 2322.
  • FIG. 8 is a sequence diagram showing a processing procedure when an execution start request of the control program 140 is received in the present embodiment. In the following, the sequence is simply referred to as "SQ".
  • control unit 100 notifies the security unit 200 of the start request of the control program.
  • the security unit 200 requests the control unit 100 to collect the identification information 40.
  • control unit 100 sends the identification information 40 of each device constituting the control device 1 toward the security unit 200.
  • the security unit 200 selects one of the identification information 40 (SGTIN) and the identification information 42 (GTIN) which is a part of the identification information 40 for each device according to the security policy.
  • the security unit 200 In SQ110, the security unit 200 generates unique information 22 (system hash value) using the identification information selected for each device.
  • the security unit 200 collates the generated unique information 22 with the unique information 20 (system hash value) in the management information 30 to obtain a collation result.
  • the security unit 200 determines whether or not the control program can be executed based on the collation result obtained by SQ112. Specifically, the security unit 200 permits the execution of the control program according to the collation result indicating "match”. On the other hand, the security unit 200 prohibits the execution of the control program according to the collation result indicating "mismatch".
  • the security unit 200 notifies the control unit 100 of the determination result.
  • the holding unit 236 of the security engine 230 may hold the management information 30 in the form of a distributed ledger with other devices.
  • the management information 30 is held in the form of a distributed ledger with the host device 3.
  • the management information 30 is managed and shared by the control device 1 and the host device 3 using a known distributed ledger technique.
  • the management information 30 may be held in the form of a distributed ledger with another control device 1.
  • the management information 30 is managed and shared by a plurality of control devices 1 using a known distributed ledger technique.
  • the management information 30 may be held in the form of a distributed ledger on the cloud. Since the management information 30 is held in the form of a distributed ledger, it is difficult to be tampered with.
  • FIG. 9 is a diagram showing an example of management information 30 held in the form of a distributed ledger.
  • the management information 30 is composed of a plurality of connected blocks 50.
  • Each block 50 includes at least unique information 20 (system hash value) obtained from the configuration of the control device 1 at a certain timing.
  • the block 50 is generated when a change occurs in the devices constituting the control device 1.
  • the information in each block 50 is not updated, and a new block 50 is generated in relation to the latest block 50.
  • each block 50 includes a block hash value 52, system configuration information 54, and nonce 56.
  • the system configuration information 54 includes the identification information 40 of the security unit 200 and the unique information 20 (system hash value) of the control device 1 including the security unit 200.
  • the block hash value 52 is unique information indicating the information of the previous block.
  • the block hash value 52 is, for example, a return value obtained according to a known hash function with the information of the previous block as an argument.
  • Block 50-n + 1 includes a block hash value of 52-n.
  • the block hash value 52-n is a return value obtained according to a known hash function with the information of the block 50-n as an argument.
  • the nonce 56 is a numerical value generated when the block 50 is newly generated, and is a numerical value generated each time the block 50 is generated.
  • the nonce 56 has a unique value for each block 50.
  • FIG. 10 is a diagram showing a functional configuration of the security unit 200 that functions when a new block 50 is generated. The functions described with reference to FIG. 7 will not be described again. Further, FIG. 10 shows the data flow when the blocks 50-n are stored up to the block 50-n and the block 50-n + 1 is newly stored based on the change of the device constituting the control device 1. Has been done. Further, in the example shown in FIG. 10, the management information 30 is held in the form of a distributed ledger with the host device 3.
  • the collection request unit 2342 of the generation unit 234 requests the control unit 100 to collect the identification information 40 in response to the generation request of the unique information 20 (system hash value) from the holding unit 236.
  • the system hash value calculation unit 2344 generates the unique information 20 based on the identification information 40 of each device constituting the control device 1 sent from the control unit 100.
  • the registration unit 2362 of the holding unit 236 includes a distribution unit 236A, a mining unit 236B, and a block hash value calculation unit 236C.
  • the system hash value calculation unit 2344 sends the generated unique information 20 to the distribution unit 236A.
  • the host device 3 includes a mining unit 236D, a block hash value calculation unit 236E, and management information 30.
  • the distribution unit 236A generates the system configuration information 54 from the unique information 20 and the identification information 40 of the security unit 200, and distributes the system configuration information 54 to the mining unit 236B and the host device 3.
  • the mining unit 236B of the registration unit 2362 cooperates with the mining unit 236D of the host device 3 to generate the block 50-n + 1.
  • the block hash value calculation unit 236C of the registration unit 2362 generates the block hash value 52 from the block 50 last registered in the management information 30.
  • the block hash value 52-n is generated based on the block 50-n.
  • the block hash value calculation unit 236E of the host device 3 also generates the block hash value 52 from the block 50 last registered in the management information 30.
  • the mining unit 236B of the registration unit 2362 generates the block 50 by setting the nonce 56 so that the information obtained from the generated block 50 satisfies a predetermined condition based on the system configuration information 54 and the block hash value 52-n. do.
  • the process of setting the nonce 56 to generate the block 50 satisfying a predetermined condition in this way is called mining.
  • the mining unit 236D of the host device 3 also performs mining.
  • the block 50 generated by the mining unit that finds the nonce 56 satisfying the predetermined condition earliest is stored in the management information 30 of each of the control device 1 and the higher-level device 3.
  • the subject that generated the system configuration information 54 and the subject that generated the block 50 may be different.
  • the block 50 is stored in the management information 30 of each of the control device 1 and the host device 3. That is, the management information 30 of each of the control device 1 and the higher-level device 3 is common unless it is tampered with.
  • Each block 50 included in the management information 30 includes a block hash value 52 obtained based on the previous block 50. That is, when one block 50 is falsified, it becomes necessary to falsify the other blocks 50 in a chain reaction, and falsification of the management information 30 requires a lot of labor. That is, it can be said that the management information 30 is information that is difficult to falsify. By targeting the unique information 20 included in the management information 30 that is difficult to falsify, the unauthorized duplication and use of the control program 140 can be suppressed.
  • the method of generating one block 50 is not limited to the method described with reference to FIGS. 9 and 10.
  • the method of generating one block 50 may be arbitrarily designed.
  • the method of generating the block 50 may be selected according to the security level of the control device 1. For example, when the security level of the control device 1 is high, the security level (transparency, strictness) in the process of generating the block 50 can be lowered. On the other hand, when the security level of the control device 1 is low, it is necessary to raise the security level (transparency, strictness) in the process of generating the block 50.
  • the hurdle for consensus building is lowered, and the time required for consensus building, that is, one.
  • the time required to generate the block 50 and store it in the management information 30 can be shortened.
  • the management information 30 is held in the form of a distributed ledger using the public blockchain technology, it is necessary to raise the hurdle for consensus building.
  • FIG. 11 is a sequence diagram showing a processing procedure when an execution start request of the control program 140 is received in the first modification.
  • the SQ number common to FIG. 8 is assumed to be a common process.
  • the processes of SQ102 to SQ112 and SQ116 are common to those in FIG. 8, and the added SQ120 to SQ126 will be described.
  • the security unit 200 transmits the unique information 22 (system hash value) generated by the SQ 110 to the host device 3.
  • the host device 3 collates the unique information 20 included in the latest block 50 in the management information 30 with the unique information 22 to obtain a collation result.
  • the host device 3 transmits the collation result obtained in SQ122 to the security unit 200.
  • the security unit 200 determines whether or not the control program can be executed based on the collation result of SQ112 and the collation result obtained in SQ124. Specifically, the security unit 200 permits the execution of the control program according to the fact that both of the two collation results show "match”. On the other hand, the security unit 200 prohibits the execution of the control program according to the fact that at least one of the two collation results shows "mismatch".
  • the management information 30 held by the other control device is falsified, and the unique information 20 of the other control device is the management information. It is assumed that it is registered within 30.
  • the security program of the other control device collates not only the management information 30 in the own device but also the management information 30 of the higher-level device 3. Therefore, the execution of the control program is not permitted unless the management information 30 of the host device 3 is also falsified, so that the security level can be raised.
  • the second modification is an example in which the management information 30 is held in the form of a distributed ledger with another device (for example, the higher-level device 3) as in the first modification, and requests the execution start of the control program 140. It differs in the processing procedure when it is received.
  • FIG. 12 is a sequence diagram showing another example of the processing procedure when the execution start request of the control program 140 is received in the modified example 2.
  • the SQ number common to FIG. 11 is assumed to be a common process.
  • SQ112 is omitted and SQ128 is executed instead of SQ126.
  • the security unit 200 determines whether or not the control program can be executed based on the collation result obtained in SQ124. Specifically, the security unit 200 permits the execution of the control program according to the collation result indicating "match”. On the other hand, the security unit 200 prohibits the execution of the control program according to the collation result indicating "mismatch".
  • the collation result is not obtained by collating with the unique information 20 in the management information 30 held by the control device 1, but is not obtained by collating with another device (for example, the host device 3). ) Is collated with the unique information 20 in the management information 30 held by).
  • processor 102 that executes the control program and the processor 202 that executes the security program are provided by different devices.
  • one device may include a processor 202 that executes a security program and a processor 102 that executes a control program.
  • the security engine A generation means (234) that generates unique information using the identification information acquired from each of the one or more devices, and A holding means (236) for holding the first unique information generated in advance, and A collation means (238) for collating the second unique information generated by the generation means according to the collation request with the first unique information. Including the permission means (232) that makes the collation request in response to the execution start request of the control program and determines whether or not the control program can be executed based on the collation result obtained from the collation means.
  • the generation means responds to the security policy from the first identification information (42) for identifying the type of the device and the second identification information (42) for individually identifying the device.
  • a control device that selects the identification information.
  • the security policy is preset from the first policy, the second policy, and the third policy.
  • the first policy is a policy for selecting the first identification information for each of the one or more devices.
  • the second policy selects the first identification information for the first device belonging to the first group of the one or more devices, and more than the first group of the one or more devices. It is a policy to select the second identification information for the second device belonging to the second group having a high priority of security measures.
  • Each of the one or more devices holds the second identification information and
  • the second identification information is a combination of the first identification information and a third identification information (44) uniquely assigned to an individual of the type of device identified by the first identification information.
  • ⁇ Structure 4> The control device according to any one of configurations 1 to 3, wherein the one or more devices include a control device (100) having the control engine and a security device (200) having the security engine.
  • ⁇ Structure 5> The control device according to any one of configurations 1 to 4, wherein the holding means holds the first unique information in the form of a distributed ledger with the external device (3).
  • the generation step obtains the identification information from the first identification information for identifying the type of the device and the second identification information for individually identifying the device for each of the one or more devices according to the security policy.
  • a security program (230) that causes a computer to execute a management method executed in a control device (1) including one or more devices.
  • the management method is The step (S1) of holding the first unique information generated in advance and In response to the execution start request of the control program (140), the steps (S5, SQ108, SQ110) of generating the second unique information using the identification information acquired from each of the one or more devices, and The step (S6, SQ112) of collating the first unique information with the second unique information, A step (S8, SQ114) for determining whether or not the control program can be executed is provided based on the collation result.
  • the generation step obtains the identification information from the first identification information for identifying the type of the device and the second identification information for individually identifying the device for each of the one or more devices according to the security policy.
  • a security program that includes a step of selection (SQ108).
  • Control device 2 Information system network, 3 High-level equipment, 4 Field network, 10 Control system, 20 Unique information (1st unique information), 22 Unique information (2nd unique information, 30 Management information, 40 Identification information (2nd unique information, 30 management information, 40 identification information) Second identification information), 42 identification information (first identification information), 44 serial number (third identification information), 50 blocks, 52 block hash values, 54 system configuration information, 56 nonces, 100 control units, 102 , 202 processor, 104,204 chipset, 106,206 main memory, 108,208 secondary storage, 110,210 communication controller, 112,212 USB controller, 114,214 memory card interface, 115,215 memory card, 116 field network controller, 118 internal bus controller, 120, 220 information system network controller, 130 authentication program, 132 authentication unit, 134 judgment request unit, 136 identification information transmission unit, 138 identification information collection unit, 140 control program, 142 control engine 144 control program execution unit, 200 security unit, 230 security engine, 232 permission unit, 234 generation unit, 236 holding unit, 236A distribution unit,

Abstract

制御装置は、制御プログラムの実行可否の実行開始要求に応答して、1以上のデバイスの各々から取得された識別情報を用いて生成された固有情報と、予め生成された固有情報とを照合し、照合結果に基づいて、制御プログラムの実行可否を判定する。制御装置は、1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて識別情報を選択する。これにより、制御プログラムという知的財産を保護できる。

Description

制御装置、管理方法およびセキュリティプログラム
 本開示は、制御装置、管理方法およびセキュリティプログラムに関する。
 様々な製造現場において、PLC(Programmable Logic Controller)などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置または製造設備などに応じて設計された制御プログラムを実行する。
 近年では、既に製造現場での稼働実績のある制御装置から制御プログラムを抜き取り、別の製造現場内で新たな制御装置が作られて、抜き取られた制御プログラムが利用されるという問題が発生している。
 特開2008-065678号公報(特許文献1)は、このような問題に対処する一の方法を開示する。具体的には、特許文献1は、PLCが、制御プログラムを暗号化したプログラムが設備機器に固有なプログラムであるか否かを判断し、設備機器に固有なプログラムであれば、当該プログラムから制御プログラムを復号し、制御プログラムを実行して設備機器を制御する方法を開示する。
特開2008-065678号公報
 特許文献1で示された方法では、PLCは、予め入力された識別データと暗号ルールとを格納する記憶手段を備え、当該識別データを用いて、暗号化したプログラムが設備機器に固有なプログラムであるか否かを判断する。暗号化したプログラムが設備機器に固有なプログラムであると判断された場合、PLCは、暗号ルールに従って、暗号化したプログラムを復号することにより制御プログラムを得て、当該制御プログラムを利用する。そのため、暗号化したプログラムだけでなく、識別データおよび暗号ルールも抜き取られた場合、制御プログラムの利用が図られてしまう。すなわち、特許文献1で示された方法では、制御プログラムという知的財産の保護を図る上で改善の余地があった。
 本開示は、制御プログラムという知的財産の保護を図ることを一つの目的とする。
 本開示の一例に従うと、1以上のデバイスを含む制御装置は、制御プログラムを実行する制御エンジンと、制御エンジンでの制御プログラムの実行可否を管理するセキュリティエンジンとを備える。セキュリティエンジンは、生成手段と、保持手段と、照合手段と、許可手段とを含む。生成手段は、1以上のデバイスの各々から取得された識別情報を用いて固有情報を生成する。保持手段は、予め生成された第1の固有情報を保持する保持手段と、照合手段は、照合の要求に従って生成手段により生成される第2の固有情報と、第1の固有情報とを照合する。許可手段は、制御プログラムの実行開始要求に応答して、照合の要求を行い、照合手段から得られる照合結果に基づいて、制御プログラムの実行可否を判定する。生成手段は、1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて識別情報を選択する。
 この構成によれば、セキュリティエンジンは、予め生成された第1の固有情報を基準に、制御プログラムの実行開始要求に応答して生成される第2の固有情報を照合し、その照合結果に応じて制御プログラムの実行可否を判定する。固有情報は、各デバイスの種別を識別する第1の識別情報および各デバイスを個別に識別する第2の識別情報から選択された識別情報から生成される。そのため、制御装置のソフトウェア(第1の固有情報および制御プログラムを含む)およびハードウェアをコピーすることにより新たな制御装置を作製した場合、当該新たな制御装置に含まれるデバイスの識別情報から生成される第2の固有情報は、第1の固有情報と不一致となり得る。その結果、セキュリティエンジンによって管理された環境下とは異なる環境下での制御プログラムの起動を防ぐことができる。すなわち、制御プログラムという知的財産を保護することができる。
 さらに、デバイスの種別を識別する第1の識別情報およびデバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて識別情報が選択される。そのため、制御プログラムの開発者は、制御プログラムに対するセキュリティ対策の優先度を考慮して、セキュリティポリシーを適宜設定できる。その結果、セキュリティエンジンにおけるセキュリティレベルを任意に変更できる。
 上述の開示において、セキュリティポリシーは、第1のポリシー、第2のポリシーおよび第3のポリシーの中から予め設定される。第1のポリシーは、1以上のデバイスの各々について第1の識別情報を選択するポリシーである。第2のポリシーは、1以上のデバイスのうち第1のグループに属する第1のデバイスについて第1の識別情報を選択し、1以上のデバイスのうち、第1のグループよりもセキュリティ対策の優先度の高い第2のグループに属する第2のデバイスについて第2の識別情報を選択するポリシーである。第3のポリシーは、1以上のデバイスの各々について第2の識別情報を選択するポリシーである。
 この開示によれば、開発者は、制御プログラムに対するセキュリティ対策の優先度を考慮して、セキュリティエンジンにおけるセキュリティレベルを任意に変更できる。
 上述の開示において、1以上のデバイスの各々は、第2の識別情報を保持する。第2の識別情報は、第1の識別情報と、第1の識別情報によって識別される種別のデバイスの個体に対してユニークに割り当てられる第3の識別情報との組み合わせである。生成手段は、第2の識別情報から第1の識別情報を取得する。この開示によれば、各デバイスは、第2の識別情報のみを記憶しておけばよい。
 上述の開示において、1以上のデバイスは、制御エンジンを有する制御デバイスと、セキュリティエンジンを有するセキュリティデバイスとを含む。
 この開示によれば、制御プログラムに対する変更の自由度を満たす必要のある制御エンジンと、セキュリティ上、変更の自由度が好まれないセキュリティエンジンとを、互いに異なるデバイスによって実現することで、各エンジンの特性に応じたデバイス設計を可能にする。
 上述の開示において、保持手段は、外部装置との間で、分散型台帳の形式で第1の固有情報を保持する。
 この開示によれば、第1の固有情報は、より改竄困難な状態で保持される。これにより、制御プログラムという知的財産のセキュリティレベルを高めることができる。
 上述の開示において、照合手段は、第2の固有情報と外部装置が保持する第1の固有情報とをさらに照合する。
 この開示によれば、不正に制御装置をコピーした第三者は、制御プログラムを実行させるために、外部装置が保持する第1の固有情報を改竄する必要が生じる。そのため、制御プログラムのセキュリティレベルをさらに高めることができる。
 本開示の別の一例によれば、1以上のデバイスを含む制御装置において実行される管理方法は、第1~第4のステップを備える。第1のステップは、予め生成された第1の固有情報を保持するステップである。第2のステップは、制御プログラムの実行開始要求に応答して、1以上のデバイスの各々から取得された識別情報を用いて第2の固有情報を生成するステップである。第3のステップは、第1の固有情報と第2の固有情報とを照合するステップである。第4のステップは、照合結果に基づいて、制御プログラムの実行可否を判定するステップである。第2のステップ(生成するステップ)は、1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて識別情報を選択するステップを含む。
 本開示の別の一例によれば、セキュリティプログラムは、上記の管理方法をコンピュータに実行させる。
 これらの開示によっても、制御プログラムという知的財産の保護を図ることができる。
 本開示によれば、制御プログラムという知的財産の保護を図ることができる。
実施の形態に係る制御装置を適用した場面の一例を示す図である。 本実施の形態に係る制御装置1を含む制御システム10の全体構成を示す模式図である。 本実施の形態に従う制御装置1を構成する制御ユニット100のハードウェア構成例を示す模式図である。 本実施の形態に従う制御装置1を構成するセキュリティユニット200のハードウェア構成例を示す模式図である。 制御装置1に含まれる各デバイスが有する識別情報40の一例を示す図である。 制御プログラム140の実行可否の判断方法の流れを示す図である。 制御ユニット100およびセキュリティユニット200の機能構成の一例を示すブロック図である。 本実施の形態における、制御プログラム140の実行開始要求を受けたときの処理手順を示すシーケンス図である。 分散型台帳の形式で保持される管理情報30の一例を示す図である。 新たなブロック50が生成される際に機能するセキュリティユニット200の機能構成を示す図である。 変形例1における、制御プログラム140の実行開始要求を受けたときの処理手順を示すシーケンス図である。 変形例2における、制御プログラム140の実行開始要求を受けたときの処理手順の別の例を示すシーケンス図である。
 以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わせてもよい。
 §1.適用例
 本実施の形態にかかる制御システムの概略について説明する。図1は、実施の形態に係る制御装置1を適用した場面の一例を示す図である。図1に示されるように、制御装置1は、制御対象を制御するための制御プログラム140と、制御プログラム140を実行する制御エンジン142と、制御エンジン142での制御プログラム140の実行可否を管理するセキュリティエンジン230とを備える。
 制御装置1は、1以上のデバイスを含む。制御プログラム140が実行されることで各デバイスが制御され、各デバイスが制御されることで、制御対象である製造設備などが制御される。
 セキュリティエンジン230は、許可部232と、生成部234と、保持部236と、照合部238とを含む。
 許可部232は、制御エンジン142から制御プログラム140の開始要求を受けて、当該制御プログラム140の実行可否を判断する。
 生成部234は、制御装置1を構成する1以上のデバイスの各々から取得された識別情報を用いて固有情報を生成する。生成部234は、1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて識別情報を選択する。固有情報は、このようにして取得された識別情報を用いて生成されるため、制御装置1の構成が変わることに応じて変化する。
 保持部236は、制御装置1について予め生成された固有情報20を含む管理情報30を保持する。保持部236は、固有情報20が不正に改竄されることを防止するため、所定条件を満たす場合にのみ管理情報30の更新を許可する。所定条件とは、たとえば予め設定されたアクセスIDおよびパスワードと入力情報とが一致するという条件である。
 照合部238は、照合の要求に従って生成部234によって生成された固有情報22と、管理情報30に含まれる固有情報20とを照合する。照合とは、一致するか否かを判定することを意味する。
 次に、図1に示すステップ1から順に、制御装置1において実行される制御プログラムの実行可否の管理方法について説明する。なお、図1および以下の説明において、ステップを単に「S」と記す。
 S1:生成部234は、予め、制御装置1の固有情報20を生成する。保持部236は、予め生成された固有情報20を含む管理情報30を保持する。
 S2:許可部232は、制御プログラム140の開始要求を受ける。なお、図1に示す例では、制御エンジン142が、開始要求を行うものとしているが、セキュリティエンジン230が開始要求を受け付ける受付部を備えていてもよい。
 S3:許可部232は、制御プログラム140の開始要求に応じて、照合部238に照合の要求を行う。
 S4:照合部238は、照合の要求に応じて、生成部234に対して固有情報22の生成を要求する。
 S5:生成部234は、生成の要求に応じて、制御装置1が備える1以上のデバイスから識別情報を取得し、取得した識別情報を用いて固有情報22を生成する。生成部234は、各デバイスについて、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて識別情報を選択する。なお、生成部234は、1以上のデバイスの全てについて第1の識別情報を選択してもよいし、1以上のデバイスの全てについて第2の識別情報を選択してもよい。あるいは、生成部234は、1以上のデバイスのうちの一部のデバイスについて第1の識別情報を選択し、残りのデバイスについて第2の識別情報を選択してもよい。セキュリティポリシーは、制御装置1に対して予め設定される。
 S6:照合部238は、管理情報30に含まれている、予め生成された固有情報20と、照合の要求を受けたタイミングで生成された固有情報22とを照合して照合結果を得る。
 S7:照合部238は、得られた照合結果を許可部232に提供する。許可部232は、提供された照合結果に基づいて、制御プログラム140の実行可否を判定する。具体的には、許可部232は、照合結果が一致を示すことに応じて、制御プログラム140の実行を許可する。許可部232は、照合結果が不一致を示すことに応じて、制御プログラム140の実行を禁止する。
 S8:許可部232は、照合結果に基づいて判定した結果(許可または禁止)を、制御エンジン142に対して提供する。制御エンジン142は、許可部232の判定結果が「許可」である場合に限って、制御プログラム140を実行する。
 制御装置1によって管理された環境を実現するための制御プログラム140の開発は、制御装置1を利用する会社とは別の会社が行うこともある。このような場合に、制御プログラム140および制御プログラム140を利用できる環境が容易に模倣されてしまうと、制御プログラム140を開発する会社の知的財産を十分に保護することができない。
 制御装置1を模倣する場合、制御プログラム140を実行するために、制御装置1のハードウェアおよびソフトウェアの双方がコピーされる。ソフトウェアがコピーされるということは、制御プログラム140だけでなく、制御エンジン142およびセキュリティエンジン230を動作させるためのシステムプログラムもコピーされる。さらに、ソフトウェアのコピーにより、セキュリティエンジン230によって保持されている管理情報30についてもコピーされる。
 一方、ハードウェアについては、制御装置1を構成する各デバイスに代わるデバイスを設置することにより、制御装置1が模倣される。制御装置1を模倣した別の制御装置では、制御装置1とは異なるデバイスから取得された識別情報を用いて固有情報22が生成される。そのため、固有情報22は、コピーされた管理情報30に含まれる固有情報20と不一致となり得る。特に、少なくとも1つのデバイスについて第2の識別情報を取得するようにセキュリティポリシーを設定することにより、固有情報22は、固有情報20と一致しない。あるいは、制御装置1を構成する少なくとも1つのデバイスについて、当該デバイスと同じ機能を有する別の機種のデバイスを用いて模倣した場合、当該デバイスについて第1の識別情報を取得したとしても、固有情報22は、固有情報20と一致しない。その結果、セキュリティエンジン230によって管理された環境下とは異なる環境下での制御プログラム140の起動を防ぐことができる。すなわち、制御プログラム140という知的財産を保護することができる。
 なお、制御装置1を模倣した別の制御装置において、各デバイスの識別情報を改竄することにより、固有情報22が固有情報20と一致し得る。しかしながら、制御装置1を構成するデバイスの個数は数十となることもあり、このような場合に、数十のデバイスすべてについて、当該デバイスの識別情報を改竄する必要が生じる。そのため、制御プログラム140によって管理される制御装置1を模倣するには、多くの労力を要することとなる。
 また、本実施の形態では、デバイスの種別を識別する第1の識別情報およびデバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて識別情報が選択される。たとえば、制御プログラム140の開発者は、故障や定期メンテナンスなどで交換が想定されるデバイスについて、第1の識別情報を選択することによりセキュリティ対策の優先度を低くしてもよい。これにより、開発者は、デバイス交換などの保守性と知的財産保護とのバランスをとることができる。
 §2.具体例
 <A.制御システム>
 図2は、本実施の形態に係る制御装置1を含む制御システム10の全体構成を示す模式図である。図2を参照して、制御システム10は、1以上の制御装置1と、上位機器3とを備える。
 制御装置1は、制御対象を制御する。制御対象は、生産工程を自動化するための種々の産業用機器を含み、製造装置や生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与える装置と、フィールドとの間で情報を遣り取りする入出力装置とを含む。なお、生産ライン全体を制御対象としてもよい。
 制御装置1は、情報系ネットワーク2を介して、上位機器3および他の制御装置1と通信可能に接続される。情報系ネットワーク2は、たとえば、EtherNet/IP(登録商標)または、ベンダやOS(Operating System)の種類などに依存することなくデータ交換を実現することができるOPC UA(Object Linking and Embedding for Process Control Unified Architecture)などの通信規格に従ったネットワークである。
 制御装置1は、1以上のデバイスを含む。図2に示す例では、制御装置1は、制御ユニット100、セキュリティユニット200、I/O(Input/Output)ユニット300、通信カプラ400などから構成される。なお、以下では、制御装置1を構成する各ユニットおよび通信カプラを総じて「デバイス」とも称する。
 制御ユニット100は、制御装置1を構成する制御デバイスの一例であって、制御対象を制御するための制御プログラムを実行し、制御装置1において中心的な処理を実行する。
 セキュリティユニット200は、制御装置1を構成するセキュリティデバイスの一例であって、制御ユニット100での制御プログラムの実行可否を管理する。制御プログラムの実行可否の管理方法は、後述する。
 制御ユニット100とセキュリティユニット200との間は、たとえば、任意のデータ伝送路(例えば、PCI ExpressあるいはEtherNet/IP(登録商標)など)を介して接続されている。
 I/Oユニット300は、制御装置1を構成するデバイスの一例であって、一般的な入出力処理に関するユニットである。I/Oユニット300は、各種センサ、各種スイッチ、エンコーダなどを含むIOデバイスから検出値を収集する。
 制御ユニット100とI/Oユニット300とは、内部バスを介して通信可能に接続されている。制御ユニット100は、I/Oユニット300により収集された検出値を用いて制御プログラムの演算を実行し、演算結果の値をI/Oユニット300に出力する。
 通信カプラ400は、フィールドネットワーク4を介して制御ユニット100と通信可能に接続される。通信カプラ400は、フィールドネットワーク4でのデータ伝送にかかる処理を行う。通信カプラ400は、たとえば、内部バスを介して1または複数のI/Oユニット300と通信可能に接続される。通信カプラ400に接続された1または複数のI/Oユニット300の各々により収集された検出値は、フィールドネットワーク4を介して制御ユニット100に出力される。
 フィールドネットワーク4としては、典型的には、各種の産業用イーサネット(登録商標)を用いることができる。産業用イーサネット(登録商標)としては、例えば、EtherCAT(登録商標)、Profinet IRT、MECHATROLINK(登録商標)-III、Powerlink、SERCOS(登録商標)-III、CIP Motionなどが知られており、これらのうちのいずれを採用してもよい。さらに、産業用イーサネット(登録商標)以外のフィールドネットワークを用いてもよい。例えば、モーション制御を行わない場合であれば、DeviceNet、CompoNet/IP(登録商標)などを用いてもよい。
 制御装置1を構成する各デバイスは、識別情報40を有する。典型的には、識別情報40は、SGTIN(Serialized Global Trade Item Number)のような個体識別コードである。
 なお、制御装置1を構成するデバイスは、図2に示したデバイスに限られない。制御装置1を構成するデバイスは、たとえば、電源を供給する電源ユニット、I/Oユニット300ではサポートしない機能を有する特殊ユニット、設備や機械などによって人の安全が脅かされることを防止するためのセーフティ機能を提供するセーフティユニットなどを含み得る。また、制御装置1を構成するデバイスは、たとえば、制御ユニット100または他のユニットでの制御演算によって得られる各種情報をオペレータへ提示するとともに、オペレータからの操作に従って、制御ユニット100または他のユニットに対して内部コマンドなどを生成するHMI(Human Machine Interface)を含み得る。
 上位機器3は、制御システム100内のサーバ、またはクラウドサーバ等のような外部サーバ、または制御装置1に比較して高い性能を備えたPLC、または産業用のコンピュータ(所謂IPC:Industrial Personal Computer)として構成される。
 <B.ハードウェア構成>
 本実施の形態に従う制御装置1を構成する主なデバイスのハードウェア構成例について説明する。
 (b1.制御ユニット)
 図3は、本実施の形態に従う制御装置1を構成する制御ユニット100のハードウェア構成例を示す模式図である。図3を参照して、制御ユニット100は、主たるコンポーネントとして、CPU(Central Processing Unit)やGPU(Graphical Processing Unit)などのプロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、通信コントローラ110と、USBコントローラ112と、メモリカードインターフェイス114と、フィールドネットワークコントローラ116と、内部バスコントローラ118と、情報系ネットワークコントローラ120とを含む。
 プロセッサ102は、二次記憶装置108またはメモリカード115に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、制御対象を制御するための制御演算、および、後述するような、制御プログラムの実行開始要求にかかる処理を実現する。
 主記憶装置106は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。二次記憶装置108は、例えば、HDD(Hard Disc Drive)またはSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。
 チップセット104は、プロセッサ102と各コンポーネントとの間のデータの遣り取りを仲介することで、制御ユニット100全体としての処理を実現する。
 二次記憶装置108には、制御ユニット100の基本的な機能を実現するためのシステムプログラム1082に加えて、設備や機械などの制御対象に応じて作成される制御プログラム140と、制御ユニット100を識別するための識別情報40とが格納されている。
 システムプログラム1082には、認証プログラム130が組み込まれている。認証プログラム130は、制御プログラム140を起動する際に実行されるプログラムであって、セキュリティユニット200に向けて、起動する制御プログラム140の実行の許可を要求するためのプログラムである。また、システムプログラム1082は、制御プログラム140を実行する制御エンジンとしての機能を提供する。
 制御プログラム140は、たとえば、基本的なアルゴリズムがプログラム開発会社によって作成された知的財産である。たとえば、ユーザは、制御装置1に応じてパラメータを設定することで、プログラム開発会社により提供された制御プログラム140を実行可能な環境を整える。
 通信コントローラ110は、セキュリティユニット200との間のデータの遣り取りを担当する。通信コントローラ110としては、例えば、PCI Expressあるいはイーサネット(登録商標)などに対応する通信チップを採用できる。
 USBコントローラ112は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。任意の情報処理装置は、たとえば、制御プログラム140の作成または編集、デバッグ、各種パラメータの設定などの機能をユーザに提供するサポート装置などを含む。
 メモリカードインターフェイス114は、記憶媒体の一例であるメモリカード115を着脱可能に構成される。メモリカードインターフェイス114は、メモリカード115に対して制御プログラム140や各種設定などのデータを書込み、あるいは、メモリカード115から制御プログラム140や各種設定などのデータを読出すことが可能になっている。
 フィールドネットワークコントローラ116は、フィールドネットワーク4を介した他の装置との間のデータの遣り取りを制御する。
 内部バスコントローラ118は、内部バスを介した他の装置(I/Oユニット300など)との間のデータの遣り取りを制御する。内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
 情報系ネットワークコントローラ120は、情報系ネットワーク2を介した他の制御装置1との間のデータの遣り取りを制御する。
 図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、制御ユニット100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
 (b2.セキュリティユニット)
 図4は、本実施の形態に従う制御装置1を構成するセキュリティユニット200のハードウェア構成例を示す模式図である。図4を参照して、セキュリティユニット200は、主たるコンポーネントとして、CPUやGPUなどのプロセッサ202と、チップセット204と、主記憶装置206と、二次記憶装置208と、通信コントローラ210と、USBコントローラ212と、メモリカードインターフェイス214と、情報系ネットワークコントローラ220とを含む。
 プロセッサ202は、二次記憶装置208またはメモリカード215に格納された各種プログラムを読み出して、主記憶装置206に展開して実行することで、制御ユニット100での制御プログラムの実行可否を管理する機能を実現する。主記憶装置206は、DRAMまたはSRAMなどの揮発性記憶装置などで構成される。二次記憶装置208は、例えば、HDDまたはSSDなどの不揮発性記憶装置などで構成される。
 チップセット204は、プロセッサ202と各コンポーネントとの間のデータの遣り取りを仲介することで、セキュリティユニット200全体としての処理を実現する。
 二次記憶装置208には、セキュリティユニット200の基本的な機能を実現するためのシステムプログラム2082に加えて、識別情報40および管理情報30が格納されている。
 システムプログラム2082には、セキュリティプログラム240が組み込まれている。セキュリティプログラム240は、制御装置1において実行される制御プログラム140の実行可否を管理するためのプログラムである。すなわち、セキュリティプログラム240は、制御プログラム140の実行可否を管理するセキュリティエンジンとしての機能を提供する。
 管理情報30は、制御装置1を構成する1以上のデバイスから取得した識別情報40を用いて生成される固有情報を管理するための情報である。固有情報は、制御プログラム140の実行を許可するか否かを判定する際の基準となる情報として利用される。固有情報については、後述する。
 通信コントローラ210は、制御ユニット100との間のデータの遣り取りを担当する。通信コントローラ210としては、制御ユニット100に通信コントローラ210と同様に、例えば、PCI Expressあるいはイーサネット(登録商標)などに対応する通信チップを採用できる。
 USBコントローラ212は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。任意の情報処理装置は、たとえば、セキュリティプログラム240の設定などの機能をユーザに提供するサポート装置などを含む。
 メモリカードインターフェイス214は、記憶媒体の一例であるメモリカード215を着脱可能に構成される。メモリカードインターフェイス214は、メモリカード215に対してプログラムや各種設定などのデータを書込み、あるいは、メモリカード215からプログラムや各種設定などのデータを読出すことが可能になっている。
 情報系ネットワークコントローラ220は、情報系ネットワーク2を介した他の制御装置1との間のデータの遣り取りを制御する。情報系ネットワークコントローラ220は、イーサネット(登録商標)などの汎用的なネットワークプロトコルを採用してもよい。
 図4には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、セキュリティユニット200の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
 なお、図3および図4を参照して、制御装置1は、情報系ネットワーク2へ、制御ユニット100の情報系ネットワークコントローラ120を介して接続されていてもよく、また、セキュリティユニット200の情報系ネットワークコントローラ220を介して接続されていてもよい。本実施の形態において、制御装置1は、セキュリティユニット200の情報系ネットワークコントローラ220を介して接続されているものとして説明する。
 <C.識別情報>
 図5は、制御装置1に含まれる各デバイスが有する識別情報40の一例を示す図である。図5には、SGTINである識別情報40が示される。SGTINは、流通システム標準化機関GS1によって標準化された電子タグに書き込むための識別コードの1つであり、商品用の個別識別コードである。識別情報40は、デバイスを個別に識別するため、第2の識別情報である。
 図5に示されるように、識別情報40は、デバイスの種別を識別する商品識別コードである識別情報42と、当該識別情報42によって識別される種別のデバイスの個体に対してユニークに割り当てられるシリアル番号44(第3の識別情報)との組み合わせである。識別情報42は、デバイスの種別を識別するため、第1の識別情報である。
 識別情報42は、流通システム標準化機関GS1によって標準化された商品識別コードGTIN(Global Trade Item Number)である。GTINは、インジケータと、事業者コードと、商品アイテムコードと、チェックデジットとによって構成される。
 <D.セキュリティポリシー>
 制御プログラム140の開発者は、制御プログラム140に対するセキュリティポリシーを設定する。なお、セキュリティポリシーの設定は、制御プログラム140の開発者に限定されず、他の者によって実行されてもよい。セキュリティポリシーは、セキュリティプログラム240に予め設定される。
 本実施の形態では、セキュリティポリシーは、以下のポリシー(A)~(C)の中から予め設定される。
ポリシー(A):全てのデバイスについて識別情報40(第2の識別情報)を選択する。ポリシー(B):第1のグループに属する第1のデバイスについて識別情報42(第1の識別情報)を選択し、第1のグループよりもセキュリティ対策の優先度の高い第2のグループに属する第2のデバイスについて識別情報40(第2の識別情報)を選択する。
ポリシー(C):全てのデバイスについて識別情報42(第1の識別情報)を選択する。
 たとえば、開発者は、制御プログラム140が模倣される可能性が高く、かつ、制御プログラム140のセキュリティレベルを高めたい場合、ポリシー(A)を設定する。開発者は、制御プログラム140が模倣される可能性が低い場合、あるいは、制御プログラム140の知的財産としての価値が高くない場合、ポリシー(B)またはポリシー(C)を設定する。
 ポリシー(B)を設定する場合、開発者は、第1のグループに属するデバイスの商品識別コードGTIN(識別情報42)と、第2のグループに属するデバイスの商品識別コードGTIN(識別情報42)とを予め設定する。
 <E.制御プログラムの実行可否の判断方法の概略>
 図6は、制御プログラム140の実行可否の判断方法の流れを示す図である。なお、図6に示す例では、図面を簡略にするため、制御装置1を構成する制御ユニット100およびセキュリティユニット200以外のユニット(I/Oユニット300、通信カプラ400など)の記載を省略している。
 制御ユニット100は、まず、セキュリティユニット200に向けて制御プログラム140の実行可否判定を要求する(図中の(1))。
 制御ユニット100からの判定要求を受けて、セキュリティユニット200は、制御装置1を構成する1以上のデバイスから識別情報40の収集を行う(図中の(2))。
 セキュリティユニット200は、予め設定されたセキュリティポリシーに従って、各デバイスの識別情報40(SGTIN)および識別情報40に含まれる識別情報42(GTIN)のうちの一方を選択する(図中の(3))。上記のポリシー(A)が設定されている場合、セキュリティユニット200は、全てのデバイスについて、識別情報40を選択する。上記のポリシー(B)が設定されている場合、セキュリティユニット200は、第1のグループに設定されている商品識別コードGTINに対応するデバイスについて識別情報42を選択する。さらに、セキュリティユニット200は、第2のグループに設定されている商品識別コードGTINに対応するデバイスについて識別情報40を選択する。上記のポリシー(C)が設定されている場合、セキュリティユニット200は、全てのデバイスについて、識別情報42を選択する。
 セキュリティユニット200は、各デバイスについて選択された識別情報(識別情報40または識別情報42)に基づいて、固有情報22としてシステムハッシュ値を生成する(図中の(4))。システムハッシュ値は、制御装置1を構成するデバイスのうちセキュリティユニット200を除く他のデバイスの識別情報40を引数とし、公知のハッシュ関数を利用することで得られる。
 セキュリティユニット200は、識別情報40を用いて生成された固有情報22(システムハッシュ値)と管理情報30によって管理されている固有情報20とを照合し、一致するか否かを判定する(図中の(5))。
 図中の(5)において、新たに生成された固有情報22と、管理情報30によって管理されている固有情報20とを照合し、一致する場合、制御装置1は、正規に管理された装置であることが保証される。一方、一致しない場合、制御装置1は、管理情報30によって管理されていない制御装置である可能性がある。
 セキュリティユニット200は、(5)の処理で得られた照合結果に基づいて、(1)で要求された制御プログラム140の実行可否判定を行う(図中の(6))。セキュリティユニット200は、照合結果が「一致」を示すことに応じて、制御プログラム140の実行を許可する。
 セキュリティユニット200は、制御ユニット100に向けて制御プログラム140の実行可否を示す判定結果を通知する(図中の(7))。
 <F.機能構成>
 図7は、制御ユニット100およびセキュリティユニット200の機能構成の一例を示すブロック図である。図7において、破線の矢印は、指示に関する流れを示す。実線の矢印は、情報の流れを示す。
 図7に示されるように、制御ユニット100は、制御プログラム実行部144と、認証部132とを含む。これらの各機能は、制御ユニット100のプロセッサ102がシステムプログラム1082を実行することで実現する。
 制御プログラム実行部144は、制御プログラム140を実行するために機能する。制御プログラム実行部144は、制御プログラム140の実行開始要求を受けて、認証部132に対して、制御プログラム140の認証を要求する。認証とは、制御プログラム140の実行環境が、制御装置1が保持する管理情報30によって管理されている環境であるか否かを認証することであって、制御プログラム140を実行してよい環境であるかを認証することである。
 認証部132は、判定要求部134と、識別情報送信部136と、識別情報収集部138とを含む。制御プログラム実行部144から認証の要求を受けると、判定要求部134は、セキュリティユニット200の許可部232に対して、制御プログラム140の実行可否判定を要求する。
 識別情報送信部136は、識別情報収集部138が収集した制御装置1を構成する各デバイスの識別情報40をセキュリティユニット200に送信する。
 識別情報収集部138は、セキュリティユニット200の生成部234からの要求を受けて、制御装置1を構成する各デバイスの識別情報40を収集する。識別情報収集部138は、制御プログラム140の実行可否を判定するときに加えて、新たな固有情報(システムハッシュ値)を管理情報30に登録するときにも、セキュリティユニット200から識別情報40の収集を要求される。なお、本実施の形態においては、識別情報収集部138は、制御装置1を構成するデバイスのうち、セキュリティユニット200を除くデバイスの各々から識別情報40を収集する。なお、固有情報であるシステムハッシュ値の生成に用いられる識別情報40に、セキュリティユニット200の識別情報40を含めてもよい。
 認証部132は、制御プログラム実行部144から制御プログラム140の認証が要求された後、セキュリティユニット200の許可部232から制御プログラム140の実行可否の判定結果を受ける。認証部132は、セキュリティユニット200から受けた判定結果に従った処理をする。認証部132は、実行を許可できる旨の判定結果を得た場合、制御プログラム実行部144に向けて、制御プログラム140の実行を開始するように通知する。一方、認証部132は、実行が許可できない旨の判定結果を得た場合、制御プログラム実行部144に向けて、制御プログラム140の実行を禁止するよう指示する。
 セキュリティユニット200は、許可部232と、生成部234と、保持部236と、照合部238とを含む。これらの各機能は、セキュリティユニット200のプロセッサ202がセキュリティプログラム240を実行することで実現する。
 許可部232は、判定部2322と照合要求部2324とを含む。判定部2322は、判定部2322が含まれるセキュリティユニット200の照合部238および他のセキュリティユニット200の照合部238から得られる照合結果に基づいて、制御プログラム140の実行を許可するか否かを判定し、判定結果を制御ユニット100の認証部132に通知する。照合要求部2324は、照合部238に対して、固有情報の照合を要求する。
 生成部234は、固有情報であるシステムハッシュ値を生成する。生成部234は、収集要求部2342とシステムハッシュ値演算部2344とを含む。
 収集要求部2342は、照合部238から、または、保持部236からシステムハッシュ値の生成を要求されたときに機能する。照合部238は、照合を開始するときにシステムハッシュ値の生成を要求する。保持部236は、たとえば、制御装置1が正規に変更された場合など、制御装置1を構成するデバイスが変更されて、変更後の制御装置1の固有情報を管理情報30に新たに登録するときにシステムハッシュ値の生成を要求する。収集要求部2342は、制御ユニット100の識別情報収集部138に対して、識別情報40の収集を要求する。
 システムハッシュ値演算部2344は、識別情報送信部136から送られた各デバイスの識別情報40を用いてシステムハッシュ値を生成する。システムハッシュ値演算部2344は、典型的には、公知のハッシュ関数に利用されるアルゴリズムを利用してシステムハッシュ値を生成する。
 システムハッシュ値演算部2344は、予め設定されているセキュリティポリシーに従って、識別情報40(SGTIN)および識別情報40の一部である識別情報42(GTIN)の中から、システムハッシュ値の生成に用いる識別情報を選択する。システムハッシュ値演算部2344は、各デバイスについて選択した識別情報(識別情報40または識別情報42)を用いて、固有情報としてシステムハッシュ値を生成する。
 システムハッシュ値演算部2344は、照合部238からシステムハッシュ値の生成が要求されている場合には、照合部238に生成したシステムハッシュ値を送る。また、システムハッシュ値演算部2344は、保持部236からシステムハッシュ値の生成が要求されている場合には、保持部236に生成したシステムハッシュ値を送る。
 保持部236は、保持部236からの要求に応じて生成された固有情報20(システムハッシュ値)を含む管理情報30を保持する。保持部236は、登録部2362を含む。
 登録部2362は、制御装置1を構成するデバイスが変更され、変更後の制御装置1の固有情報20を新たに管理情報30内に登録し、当該固有情報20の管理を開始するときに機能する。登録部2362は、予め設定されたアクセスIDおよびパスワードと入力情報とが一致するという条件が満たされたことに応じて、処理を開始する。
 登録部2362は、生成部234に向けて固有情報20の生成を要求する。登録部2362は、生成部234が生成した固有情報20を管理情報30の一部として登録する。
 保持部236は、照合部238からの要求に応じて、管理情報30に含まれる固有情報22を照合部238に送信する。
 照合部238は、照合要求部2324の要求を受けて、生成部234に対して、固有情報22の生成を要求する。また、照合部238は、照合要求部2324の要求を受けて、保持部236に対して、管理情報30に含まれる固有情報20の送信を要求する。照合部238は、システムハッシュ値演算部2344から送られた固有情報22と、保持部236から送られた固有情報20とを照合し、照合した結果を判定部2322に送る。
 <G.シーケンス図>
 図8は、本実施の形態における、制御プログラム140の実行開始要求を受けたときの処理手順を示すシーケンス図である。なお、以下では、シーケンスを単に「SQ」と記載する。
 SQ102において、制御ユニット100は、制御プログラムの開始要求をセキュリティユニット200に向けて通知する。
 SQ104において、セキュリティユニット200は、識別情報40の収集を制御ユニット100に向けて要求する。
 SQ106において、制御ユニット100は、制御装置1を構成する各デバイスの識別情報40をセキュリティユニット200に向けて送る。
 SQ108において、セキュリティユニット200は、セキュリティポリシーに従って、各デバイスについて識別情報40(SGTIN)および識別情報40の一部である識別情報42(GTIN)のうちの1つの識別情報を選択する。
 SQ110において、セキュリティユニット200は、各デバイスについて選択された識別情報を用いて固有情報22(システムハッシュ値)を生成する。
 SQ112において、セキュリティユニット200は、生成された固有情報22と、管理情報30内の固有情報20(システムハッシュ値)とを照合して照合結果を得る。
 SQ114において、セキュリティユニット200は、SQ112によって得られる照合結果に基づいて、制御プログラムの実行の可否を判定する。具体的には、セキュリティユニット200は、照合結果が「一致」を示すことに応じて、制御プログラムの実行を許可する。一方、セキュリティユニット200は、照合結果が「不一致」を示すことに応じて、制御プログラムの実行を禁止する。
 S116において、セキュリティユニット200は、制御ユニット100に向けて判定結果を通知する。
 <H.変形例>
 (h1.変形例1)
 セキュリティエンジン230の保持部236は、他の装置との間で、分散型台帳の形式で管理情報30を保持してもよい。たとえば、管理情報30は、上位機器3との間で、分散型台帳の形式で保持される。この場合、管理情報30は、公知の分散型台帳技術を利用して制御装置1および上位機器3によって管理および共有される。あるいは、管理情報30は、他の制御装置1との間で、分散型台帳の形式で保持されてもよい。この場合、管理情報30は、公知の分散型台帳技術を利用して複数の制御装置1によって管理および共有される。あるいは、管理情報30は、クラウド上において、分散型台帳の形式で保持されてもよい。管理情報30は、分散型台帳の形式で保持されるため、改竄されにくくなる。
 図9は、分散型台帳の形式で保持される管理情報30の一例を示す図である。図9に示されるように、管理情報30は、ひと繋ぎの複数のブロック50で構成される。各ブロック50は、あるタイミングにおける制御装置1の構成から得られる固有情報20(システムハッシュ値)を少なくとも含む。ブロック50は、制御装置1を構成するデバイスに変更が生じた場合に生成される。各ブロック50内の情報は更新されることがなく、新たなブロック50は、最新のブロック50に関連して生成される。
 具体的には、各ブロック50は、ブロックハッシュ値52と、システム構成情報54と、ナンス56とを含む。システム構成情報54は、セキュリティユニット200の識別情報40と、当該セキュリティユニット200を含む制御装置1の固有情報20(システムハッシュ値)とを含む。
 ブロックハッシュ値52は、前ブロックの情報を示すユニークな情報である。ブロックハッシュ値52は、たとえば、前ブロックの情報を引数とし、公知のハッシュ関数に従って得られた戻り値である。
 図9には、ブロック50-1から順にブロック50-nまでが管理情報30に含まれている状況で、制御装置1のデバイス構成に変更が生じ、新たなブロック50-n+1が管理情報30に追加されたときの管理情報30が示される。ブロック50-n+1は、ブロックハッシュ値52-nを含む。ブロックハッシュ値52-nは、ブロック50-nの情報を引数とし、公知のハッシュ関数に従って得られた戻り値である。
 ナンス56は、ブロック50を新たに生成する際に生成される数値であって、ブロック50が生成される度に生成される数値である。ナンス56は、ブロック50ごとにユニークな値となる。
 図10は、新たなブロック50が生成される際に機能するセキュリティユニット200の機能構成を示す図である。なお、図7を参照して説明した機能については、再度の説明を省略する。また、図10には、ブロック50-nまで格納されており、制御装置1を構成するデバイスが変更されたことに基づいて、新たにブロック50-n+1が格納されるときのデータの流れが示されている。また、図10に示す例では、管理情報30は、上位機器3との間で分散型台帳の形式で保持される。
 上述のように、生成部234の収集要求部2342は、保持部236からの固有情報20(システムハッシュ値)の生成要求を受けて、制御ユニット100に対して識別情報40の収集を要求する。システムハッシュ値演算部2344は、制御ユニット100から送られた、制御装置1を構成する各デバイスの識別情報40に基づいて、固有情報20を生成する。
 保持部236の登録部2362は、配布部236Aと、マイニング部236Bと、ブロックハッシュ値演算部236Cとを含む。システムハッシュ値演算部2344は、生成した固有情報20を配布部236Aに送る。
 上位機器3は,マイニング部236Dと、ブロックハッシュ値演算部236Eと、管理情報30とを備える。
 配布部236Aは、固有情報20と、セキュリティユニット200の識別情報40とからシステム構成情報54を生成し、マイニング部236Bと上位機器3とに配布する。
 登録部2362のマイニング部236Bは、上位機器3のマイニング部236Dと協働してブロック50-n+1を生成する。
 登録部2362のブロックハッシュ値演算部236Cは、管理情報30に最後に登録されたブロック50からブロックハッシュ値52を生成する。図8に示す例では、最後に登録されたブロック50は、ブロック50-nであるから、ブロック50-nに基づいてブロックハッシュ値52-nが生成される。同様に、上位機器3のブロックハッシュ値演算部236Eも、管理情報30に最後に登録されたブロック50からブロックハッシュ値52を生成する。
 登録部2362のマイニング部236Bは、システム構成情報54およびブロックハッシュ値52-nに基づいて、生成するブロック50から得られる情報が所定の条件を満たすようにナンス56を設定してブロック50を生成する。なお、このように、ナンス56を設定して所定の条件を満たすブロック50を生成する処理は、マイニングと呼ばれる。上位機器3のマイニング部236Dもマイニングを行う。マイニング部236B,236Dのうち、最も早くに所定の条件を満たすナンス56を見つけたマイニング部が生成したブロック50が、制御装置1および上位機器3の各々の管理情報30に格納される。
 すなわち、システム構成情報54を生成した主体と、ブロック50を生成した主体とは、異なる場合がある。
 このように、ブロック50は、制御装置1および上位機器3の各々の管理情報30に格納される。すなわち、制御装置1および上位機器3の各々の管理情報30は、改ざんされない限り、共通している。
 管理情報30に含まれる各ブロック50は、前のブロック50に基づいて得られるブロックハッシュ値52を含む。すなわち、一つのブロック50を改ざんした場合に、連鎖的に他のブロック50も改ざんする必要が生じることとなり、管理情報30の改竄には、多くの労力を要する。すなわち、管理情報30は、改竄困難な情報であるといえる。このような改竄困難な管理情報30に含まれる固有情報20を照合対象とすることにより、制御プログラム140の不正な複製利用を抑制できる。
 なお、一のブロック50を生成する方法は、図9および図10を参照して説明した方法に限られない。一のブロック50を生成する方法は、任意に設計されるものであってもよい。
 たとえば、制御装置1のセキュリティレベルに応じて、ブロック50の生成方法は選択されてもよい。たとえば、制御装置1のセキュリティレベルが高い場合、ブロック50を生成する過程のセキュリティレベル(透明性、厳格性)を下げることができる。一方、制御装置1のセキュリティレベルが低い場合、ブロック50を生成する過程のセキュリティレベル(透明性、厳格性)を上げる必要がある。
 具体的には、プライベート型またはコンソーシアム型のブロックチェーン技術を利用して分散型台帳の形式で管理情報30が保持されている場合、合意形成のハードルを下げ、合意形成に要する時間、すなわち、一のブロック50を生成して管理情報30に格納するまでに要する時間を短くできる。一方、パブリック型のブロックチェーン技術を利用して分散型台帳の形式で管理情報30が保持されている場合、合意形成のハードルを上げる必要がある。
 図11は、変形例1における、制御プログラム140の実行開始要求を受けたときの処理手順を示すシーケンス図である。なお、図11において、図8と共通するSQ番号は、共通の処理であるものとする。以下、図8と異なる処理についてのみ説明する。すなわち、SQ102~SQ112,SQ116の処理は、図8と共通しており、追加されたSQ120~SQ126について説明する。
 具体的には、SQ112のあとのSQ120において、セキュリティユニット200は、上位機器3に向けて、SQ110で生成した固有情報22(システムハッシュ値)を送信する。
 SQ122において、上位機器3は、管理情報30内の最新のブロック50に含まれる固有情報20と固有情報22とを照合して照合結果を得る。
 SQ124において、上位機器3は、SQ122で得られた照合結果をセキュリティユニット200に向けて送信する。
 SQ126において、セキュリティユニット200は、SQ112の照合結果とSQ124で得られた照合結果とに基づいて、制御プログラムの実行の可否を判定する。具体的には、セキュリティユニット200は、2つの照合結果のいずれも「一致」を示すことに応じて、制御プログラムの実行を許可する。一方、セキュリティユニット200は、2つの照合結果の少なくとも一方が「不一致」を示すことに応じて、制御プログラムの実行を禁止する。
 たとえば、制御装置1を不正に模倣することにより別の制御装置が生成された場合に、当該別の制御装置が保持する管理情報30が改竄され、当該別の制御装置の固有情報20が管理情報30内に登録されたものとする。この場合に、当該別の制御装置のセキュリティプログラムは、自装置内の管理情報30だけでなく、上位機器3の管理情報30との間でも照合を行う。そのため、上位機器3の管理情報30についても改竄しなければ制御プログラムの実行が許可されないため、セキュリティレベルを上げることができる。
 (h2.変形例2)
 変形例2は、変形例1と同様に、管理情報30が他の装置(たとえば上位機器3)との間で分散型台帳の形式で保持される例であり、制御プログラム140の実行開始要求を受けたときの処理手順の点で異なる。
 図12は、変形例2における、制御プログラム140の実行開始要求を受けたときの処理手順の別の例を示すシーケンス図である。図12において、図11と共通するSQ番号は、共通の処理であるものとする。図12に示されるように、変形例2では、SQ112が省略され、SQ126の代わりにSQ128が実行される。
 SQ128では、セキュリティユニット200は、SQ124で得られた照合結果に基づいて、制御プログラムの実行の可否を判定する。具体的には、セキュリティユニット200は、照合結果が「一致」を示すことに応じて、制御プログラムの実行を許可する。一方、セキュリティユニット200は、照合結果が「不一致」を示すことに応じて、制御プログラムの実行を禁止する。
 このように、変形例2によれば、照合結果は、制御装置1が保持している管理情報30内の固有情報20と照合することで得られるものではなく、他の装置(たとえば上位機器3)が保持している管理情報30内の固有情報20と照合することにより得られる。
 制御装置1を不正に模倣することにより別の制御装置を設置する場合に、当該別の制御装置内のデータを改竄するよりも、上位機器3内のデータを改竄することの方が困難である。そのため、変形例2によれば、上位機器3の管理情報30についても改竄しなければ制御プログラムの実行が許可されないため、セキュリティレベルを上げることができる。
 (h3.その他の変形例)
 上記実施の形態において、制御プログラムを実行するプロセッサ102と、セキュリティプログラムを実行するプロセッサ202とは、互いに異なるデバイスが備えているものとした。なお、一のデバイスが、セキュリティプログラムを実行するプロセッサ202と、制御プログラムを実行するプロセッサ102とを備えていてもよい。
 §3.付記
 以上のように、上記の実施の形態および変形例による開示は以下のような開示を含む。
 <構成1>
 1以上のデバイスを含む制御装置(1)であって、
 制御プログラム(140)を実行する制御エンジン(142)と、
 前記制御エンジンでの前記制御プログラムの実行可否を管理するセキュリティエンジン(230)とを備え、
 前記セキュリティエンジンは、
  前記1以上のデバイスの各々から取得された識別情報を用いて固有情報を生成する生成手段(234)と、
  予め生成された第1の固有情報を保持する保持手段(236)と、
  照合の要求に従って前記生成手段により生成される第2の固有情報と、前記第1の固有情報とを照合する照合手段(238)と、
  前記制御プログラムの実行開始要求に応答して、前記照合の要求を行い、前記照合手段から得られる照合結果に基づいて、前記制御プログラムの実行可否を判定する許可手段(232)とを含み、
 前記生成手段は、前記1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報(42)および当該デバイスを個別に識別する第2の識別情報(42)からセキュリティポリシーに応じて前記識別情報を選択する、制御装置。
 <構成2>
 前記セキュリティポリシーは、第1のポリシー、第2のポリシーおよび第3のポリシーの中から予め設定され、
 前記第1のポリシーは、前記1以上のデバイスの各々について前記第1の識別情報を選択するポリシーであり、
 前記第2のポリシーは、前記1以上のデバイスのうち第1のグループに属する第1のデバイスについて前記第1の識別情報を選択し、前記1以上のデバイスのうち、前記第1のグループよりもセキュリティ対策の優先度の高い第2のグループに属する第2のデバイスについて前記第2の識別情報を選択するポリシーであり、
 前記第3のポリシーは、前記1以上のデバイスの各々について前記第2の識別情報を選択するポリシーである、構成1に記載の制御装置。
 <構成3>
 前記1以上のデバイスの各々は、前記第2の識別情報を保持し、
 前記第2の識別情報は、前記第1の識別情報と、前記第1の識別情報によって識別される種別のデバイスの個体に対してユニークに割り当てられる第3の識別情報(44)との組み合わせであり、
 前記生成手段は、前記第2の識別情報から前記第1の識別情報を取得する、請求項1または2に記載の制御装置。
 <構成4>
 前記1以上のデバイスは、前記制御エンジンを有する制御デバイス(100)と、前記セキュリティエンジンを有するセキュリティデバイス(200)とを含む、構成1から3のいずれかに記載の制御装置。
 <構成5>
 前記保持手段は、外部装置(3)との間で、分散型台帳の形式で前記第1の固有情報を保持する、構成1から4のいずれかに記載の制御装置。
 <構成6>
 前記照合手段は、前記第2の固有情報と前記外部装置が保持する前記第1の固有情報とをさらに照合する、構成5に記載の制御装置。
 <構成7>
 1以上のデバイスを含む制御装置(1)において実行される管理方法であって、
 予め生成された第1の固有情報を保持するステップ(S1)と、
 制御プログラム(140)の実行開始要求に応答して、前記1以上のデバイスの各々から取得された識別情報を用いて第2の固有情報を生成するステップ(S5,SQ108,SQ110)と、
 前記第1の固有情報と前記第2の固有情報とを照合するステップ(S6,SQ112)と、
 照合結果に基づいて、前記制御プログラムの実行可否を判定するステップ(S8,SQ114)とを備え、
 前記生成するステップは、前記1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて前記識別情報を選択するステップ(SQ108)を含む、管理方法。
 <構成8>
 1以上のデバイスを含む制御装置(1)において実行される管理方法をコンピュータに実行させるセキュリティプログラム(230)であって、
 前記管理方法は、
 予め生成された第1の固有情報を保持するステップ(S1)と、
 制御プログラム(140)の実行開始要求に応答して、前記1以上のデバイスの各々から取得された識別情報を用いて第2の固有情報を生成するステップ(S5,SQ108,SQ110)と、
 前記第1の固有情報と前記第2の固有情報とを照合するステップ(S6,SQ112)と、
 照合結果に基づいて、前記制御プログラムの実行可否を判定するステップ(S8,SQ114)とを備え、
 前記生成するステップは、前記1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて前記識別情報を選択するステップ(SQ108)を含む、セキュリティプログラム。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組み合わせても、実施することが意図される。
 1 制御装置、2 情報系ネットワーク、3 上位機器、4 フィールドネットワーク、10 制御システム、20 固有情報(第1の固有情報)、22 固有情報(第2の固有情報、30 管理情報、40 識別情報(第2の識別情報)、42 識別情報(第1の識別情報)、44 シリアル番号(第3の識別情報)、50 ブロック、52 ブロックハッシュ値、54 システム構成情報、56 ナンス、100 制御ユニット、102,202 プロセッサ、104,204 チップセット、106,206 主記憶装置、108,208 二次記憶装置、110,210 通信コントローラ、112,212 USBコントローラ、114,214 メモリカードインターフェイス、115,215 メモリカード、116 フィールドネットワークコントローラ、118 内部バスコントローラ、120,220 情報系ネットワークコントローラ、130 認証プログラム、132 認証部、134 判定要求部、136 識別情報送信部、138 識別情報収集部、140 制御プログラム、142 制御エンジン、144 制御プログラム実行部、200 セキュリティユニット、230 セキュリティエンジン、232 許可部、234 生成部、236 保持部、236A 配布部、236B,236D マイニング部、236C,236E ブロックハッシュ値演算部、238 照合部、240 セキュリティプログラム、300 I/Oユニット、400 通信カプラ、1082,2082 システムプログラム、2322 判定部、2324 照合要求部、2342 収集要求部、2344 システムハッシュ値演算部、2362 登録部。

Claims (8)

  1.  1以上のデバイスを含む制御装置であって、
     制御プログラムを実行する制御エンジンと、
     前記制御エンジンでの前記制御プログラムの実行可否を管理するセキュリティエンジンとを備え、
     前記セキュリティエンジンは、
      前記1以上のデバイスの各々から取得された識別情報を用いて固有情報を生成する生成手段と、
      予め生成された第1の固有情報を保持する保持手段と、
      照合の要求に従って前記生成手段により生成される第2の固有情報と、前記第1の固有情報とを照合する照合手段と、
      前記制御プログラムの実行開始要求に応答して、前記照合の要求を行い、前記照合手段から得られる照合結果に基づいて、前記制御プログラムの実行可否を判定する許可手段とを含み、
     前記生成手段は、前記1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて前記識別情報を選択する、制御装置。
  2.  前記セキュリティポリシーは、第1のポリシー、第2のポリシーおよび第3のポリシーの中から予め設定され、
     前記第1のポリシーは、前記1以上のデバイスの各々について前記第1の識別情報を選択するポリシーであり、
     前記第2のポリシーは、前記1以上のデバイスのうち第1のグループに属する第1のデバイスについて前記第1の識別情報を選択し、前記1以上のデバイスのうち、前記第1のグループよりもセキュリティ対策の優先度の高い第2のグループに属する第2のデバイスについて前記第2の識別情報を選択するポリシーであり、
     前記第3のポリシーは、前記1以上のデバイスの各々について前記第2の識別情報を選択するポリシーである、請求項1に記載の制御装置。
  3.  前記1以上のデバイスの各々は、前記第2の識別情報を保持し、
     前記第2の識別情報は、前記第1の識別情報と、前記第1の識別情報によって識別される種別のデバイスの個体に対してユニークに割り当てられる第3の識別情報との組み合わせであり、
     前記生成手段は、前記第2の識別情報から前記第1の識別情報を取得する、請求項1または2に記載の制御装置。
  4.  前記1以上のデバイスは、前記制御エンジンを有する制御デバイスと、前記セキュリティエンジンを有するセキュリティデバイスとを含む、請求項1から3のいずれか1項に記載の制御装置。
  5.  前記保持手段は、外部装置との間で、分散型台帳の形式で前記第1の固有情報を保持する、請求項1から4のいずれか1項に記載の制御装置。
  6.  前記照合手段は、前記第2の固有情報と前記外部装置が保持する前記第1の固有情報とをさらに照合する、請求項5に記載の制御装置。
  7.  1以上のデバイスを含む制御装置において実行される管理方法であって、
     予め生成された第1の固有情報を保持するステップと、
     制御プログラムの実行開始要求に応答して、前記1以上のデバイスの各々から取得された識別情報を用いて第2の固有情報を生成するステップと、
     前記第1の固有情報と前記第2の固有情報とを照合するステップと、
     照合結果に基づいて、前記制御プログラムの実行可否を判定するステップとを備え、
     前記生成するステップは、前記1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて前記識別情報を選択するステップを含む、管理方法。
  8.  1以上のデバイスを含む制御装置において実行される管理方法をコンピュータに実行させるセキュリティプログラムであって、
     前記管理方法は、
     予め生成された第1の固有情報を保持するステップと、
     制御プログラムの実行開始要求に応答して、前記1以上のデバイスの各々から取得された識別情報を用いて第2の固有情報を生成するステップと、
     前記第1の固有情報と前記第2の固有情報とを照合するステップと、
     照合結果に基づいて、前記制御プログラムの実行可否を判定するステップとを備え、
     前記生成するステップは、前記1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて前記識別情報を選択するステップを含む、セキュリティプログラム。
PCT/JP2021/009558 2021-01-12 2021-03-10 制御装置、管理方法およびセキュリティプログラム WO2022153566A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-002808 2021-01-12
JP2021002808A JP2022108027A (ja) 2021-01-12 2021-01-12 制御装置、管理方法およびセキュリティプログラム

Publications (1)

Publication Number Publication Date
WO2022153566A1 true WO2022153566A1 (ja) 2022-07-21

Family

ID=82447086

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/009558 WO2022153566A1 (ja) 2021-01-12 2021-03-10 制御装置、管理方法およびセキュリティプログラム

Country Status (2)

Country Link
JP (1) JP2022108027A (ja)
WO (1) WO2022153566A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015181925A1 (ja) * 2014-05-29 2015-12-03 三菱電機株式会社 機器制御システム、機器制御装置、機器制御方法及びプログラム
WO2020261654A1 (ja) * 2019-06-26 2020-12-30 オムロン株式会社 制御システム、制御装置、および管理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015181925A1 (ja) * 2014-05-29 2015-12-03 三菱電機株式会社 機器制御システム、機器制御装置、機器制御方法及びプログラム
WO2020261654A1 (ja) * 2019-06-26 2020-12-30 オムロン株式会社 制御システム、制御装置、および管理方法

Also Published As

Publication number Publication date
JP2022108027A (ja) 2022-07-25

Similar Documents

Publication Publication Date Title
ES2866498T3 (es) Procedimiento y sistema de control para el control y/o la supervisión de dispositivos
CN102208001B (zh) 硬件支持的虚拟化密码服务
JP7162677B2 (ja) 特に適合性追跡用の、データを供給するためのコンピュータ実装方法
TW475103B (en) Public cryptographic control unit and system therefor
US11615007B2 (en) Method and control system for controlling and/or monitoring devices
CN102156840B (zh) 控制装置以及管理装置
CN111492355B (zh) 用于控制和/或监控装置的方法和控制系统
US11412047B2 (en) Method and control system for controlling and/or monitoring devices
CN105518687A (zh) 安全数据存储装置
EP1413942A2 (en) Controlled access to software applications and/or data
JP5360192B2 (ja) 個人認証システムおよび個人認証方法
JP4055393B2 (ja) データ処理装置およびその方法とプログラム
US10805294B1 (en) Systems and methods for validating device permissions of computing devices to execute code on a decentralized database
US20220043434A1 (en) Method for Managing a Production Process
US11231958B2 (en) Method and control system for controlling and/or monitoring devices
US20210200839A1 (en) Method for Managing Soft IP Licenses on a Partially Reconfigurable Hardware System
WO2022153566A1 (ja) 制御装置、管理方法およびセキュリティプログラム
WO2020195348A1 (ja) 制御システム、セキュリティ装置および方法
WO2020261654A1 (ja) 制御システム、制御装置、および管理方法
CN111602372B (zh) 用于控制和/或监控设备的方法和控制系统
US20220114276A1 (en) Controlling a data network with respect to a use of a distributed database
JPWO2020080522A1 (ja) 制御方法、制御システム、第1サーバ、及び、データ構造
EP3699802B1 (en) Security data processing device
JP5675925B2 (ja) 設計モデルのオブジェクトデータの一時的分離方法
US20190392133A1 (en) System and method for producing secure data management software

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

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

Country of ref document: EP

Kind code of ref document: A1