WO2021005831A1 - 制御システム、および制御方法 - Google Patents

制御システム、および制御方法 Download PDF

Info

Publication number
WO2021005831A1
WO2021005831A1 PCT/JP2020/009376 JP2020009376W WO2021005831A1 WO 2021005831 A1 WO2021005831 A1 WO 2021005831A1 JP 2020009376 W JP2020009376 W JP 2020009376W WO 2021005831 A1 WO2021005831 A1 WO 2021005831A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
security information
information
volatile memory
control system
Prior art date
Application number
PCT/JP2020/009376
Other languages
English (en)
French (fr)
Inventor
西山 佳秀
雄大 永田
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Priority to CN202080046751.0A priority Critical patent/CN114072793A/zh
Priority to US17/623,169 priority patent/US20220245233A1/en
Priority to EP20836615.3A priority patent/EP3998542A4/en
Publication of WO2021005831A1 publication Critical patent/WO2021005831A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Definitions

  • This disclosure relates to a technique for managing security information in a control system composed of a plurality of units.
  • Patent Document 1 Japanese Unexamined Patent Publication No. 2016-1948078 discloses a PLC capable of accessing a database of an external device.
  • Various functional units can be connected to the control unit.
  • Various applications can be installed in each functional unit. Users can add functional units and install applications as needed.
  • Each functional unit is independent of other functional units, and it is necessary to manage information such as account information and digital certificates (hereinafter, also referred to as "security information") for each functional unit. Therefore, as the number of functional units increases, the user may set an easy password or forget the password, and the management of security information becomes complicated. Therefore, a technique for centrally managing security information in a control system composed of a plurality of units is desired.
  • a control system composed of a plurality of units.
  • the plurality of units include a master unit connected to the bus and a slave unit connected to the bus and communicating with the master unit via the bus.
  • the master unit has a non-volatile memory for storing first security information which is information to be kept secret.
  • the slave unit has a volatile memory. The slave unit receives the first security information from the master unit at a predetermined timing, and stores the first security information in the volatile memory.
  • the slave unit stores the security information received from the master unit in the volatile memory.
  • the security information disappears from the master unit each time the power supply to the control system is stopped.
  • the security information stored in the non-volatile memory of the master unit does not disappear even if the power supply to the control system is stopped. As a result, security information can be centrally managed.
  • the predetermined timing includes the timing when the power of the control system is turned on.
  • the slave unit receives the security information from the master unit every time the power of the control system is turned on, so that the security information can be kept up to date.
  • the first security information includes user account information. Based on receiving a data access request to the slave unit from an external device configured to be able to communicate with the slave unit, the slave unit requests the external device to input account information, and causes the external device to input the account information. When the entered account information is registered in the first security information stored in the volatile memory, data access to the slave unit by the external device is permitted.
  • the slave unit can realize the user authentication process based on the account information received from the master unit.
  • the first security information includes a digital certificate.
  • the slave unit is stored in the volatile memory based on the reception of an acquisition request for data stored in the slave unit from an external device configured to be able to communicate with the slave unit. Send the digital certificate to the above external device.
  • the slave unit can realize communication with an external device based on the digital certificate received from the master unit.
  • the slave unit further has a non-volatile memory for storing second security information which is information to be kept secret.
  • second security information which is information to be kept secret.
  • the master unit receives the second security information from the slave unit at the predetermined timing, and stores the second security information in the volatile memory of the master unit.
  • security information can be distributed and managed between the master unit and the slave unit.
  • the slave unit includes a control unit for controlling a drive device.
  • the security information used in the control unit can be centrally managed by the master unit.
  • a control method of a control system composed of a plurality of units includes a master unit connected to the bus and a slave unit connected to the bus and communicating with the master unit via the bus.
  • the master unit stores the first security information, which is information to be concealed, in the non-volatile memory of the master unit, and the slave unit performs the first security information at a predetermined timing. It includes a step of receiving security information from the master unit and a step of storing the first security information received from the master unit by the slave unit in the volatile memory of the slave unit.
  • the slave unit stores the security information received from the master unit in the volatile memory.
  • the security information disappears from the master unit each time the power supply to the control system is stopped.
  • the security information stored in the non-volatile memory of the master unit does not disappear even if the power supply to the control system is stopped. As a result, security information can be centrally managed.
  • FIG. 1 is a diagram showing a configuration example of an information processing system 1 according to an embodiment.
  • the information processing system 1 includes one or more control systems 2 and one or more external devices 500.
  • the control system 2 is an FA system for automating the production process.
  • the control system 2 includes a control unit 100 and functional units 200 and 300.
  • the functional unit 300 functions as a master unit.
  • the control unit 100 and the functional unit 200 function as slave units.
  • the master-slave relationship is preset.
  • the functional unit 200 and the external device 500 are connected to an external network. Communication between the functional unit 200 and the external device 500 is realized by Ethernet®.
  • the external device 500 is, for example, a notebook type or desktop type PC (Personal Computer), a tablet terminal, a smartphone, an HMI (Human Machine Interface), or another information processing terminal.
  • control unit 100, the functional unit 200, and the functional unit 300 are connected by the internal bus 10. These units communicate with each other via the internal bus 10.
  • the control unit 100 is, for example, a PLC.
  • the control unit 100 controls a drive device (not shown) according to a user program designed in advance.
  • Drive equipment includes various industrial equipment for automating production processes.
  • the drive device includes a robot controller, a servo driver, an arm robot controlled by the robot controller, a servo motor controlled by the servo driver, and the like.
  • the drive device may include a visual sensor for photographing the work, other devices used in the production process, and the like.
  • the control unit 100 has a volatile memory 106.
  • the volatile memory 106 is a general term for memories in which stored information is erased when the power supply is stopped.
  • the volatile memory 106 is, for example, a RAM (Random Access Memory) such as a SRAM (Static Random Access Memory) or a DRAM (Dynamic Random Access Memory).
  • the functional unit 200 is connected to the control unit 100. Various applications for providing various services related to the control system 2 may be installed in the functional unit 200.
  • the functional unit 200 has a volatile memory 206.
  • the volatile memory 106 is, for example, a RAM such as an SRAM or a DRAM.
  • the functional unit 300 is a unit for centrally managing security information 330, which is information to be kept secret.
  • the functional unit 300 is, for example, an SGU (Security Guard Unit).
  • the security information 330 includes, for example, account information and digital certificates used by various units.
  • the security information 330 is stored in the non-volatile memory 308 of the functional unit 300.
  • Non-volatile memory 308 is a general term for memory that can continue to hold information even when there is no power supply.
  • the non-volatile memory 308 is, for example, a ROM (Read Only Memory), a hard disk, or a flash memory.
  • the functional unit 300 as a master unit transmits security information 330 to the control unit 100 and the functional unit 200 as slave units at a predetermined timing.
  • the control unit 100 stores the security information 330 received from the functional unit 300 in the volatile memory 106.
  • the functional unit 200 stores the security information 330 received from the functional unit 300 in the volatile memory 206.
  • the timing at which the security information 330 is distributed is not particularly limited. In a certain aspect, the security information 330 is distributed to each slave unit at the timing when the power of the control system 2 is turned on. In another aspect, the security information 330 is distributed to each slave unit at predetermined intervals. In still another aspect, the security information 330 is distributed to each slave unit at the timing of receiving the acquisition instruction or the update instruction by the user operation.
  • control system 2 has a functional unit 300 that centrally manages security information. This eliminates the need for the user to manage account information, digital certificates, etc. for each unit, and eliminates the complexity of managing security information. As a result, security holes caused by incorrect or old settings can be prevented. Further, if the security information 330 is managed in one place, the number of places to be confirmed when an abnormality occurs can be reduced, and the abnormality can be quickly dealt with.
  • the security information is distributed via the internal bus 10, it is not necessary to connect to the external network. As a result, the possibility that the security information is leaked to the outside is reduced, and the security level of the control system 2 is improved.
  • the security information 330 is stored in the volatile memories 106 and 206. Therefore, the security information 330 does not remain on the slave unit after the power supply of the control system 2 is cut off. On the other hand, the security information 330 stored in the non-volatile memory 308 of the functional unit 300 does not disappear even if the power supply to the control system 2 is stopped. As a result, the security information 330 is not duplicated, and the centralized management of the security information 330 is more reliably realized.
  • the security information 330 is centrally managed, the user does not need to take measures against information leakage for all units. That is, the user can improve the security level by focusing on information leakage countermeasures for the non-volatile memory 308 of the functional unit 300. For example, if a memory with an encryption function is used for the non-volatile memory 308, the risk of leakage of security information 330 can be reduced. Further, since the user only needs to take measures against information leakage only for the non-volatile memory 308, the cost can be suppressed.
  • Control system 2 The control system 2 shown in FIG. 1 will be described with reference to FIG. FIG. 2 is an external view showing a configuration example of the control system 2.
  • control system 2 includes one or more control units 100, one or more functional units 200, one or more functional units 300, one or more functional units 400, and a power supply unit. Including 450 and.
  • the control unit 100 and the functional unit 200 are connected via an arbitrary data transmission line.
  • the control unit 100, the functional unit 200, and one or more functional units 300, 400 are connected via an internal bus 10 (see FIG. 1).
  • the control unit 100 executes the main processing in the control system 2.
  • the control unit 100 executes a control operation for controlling a controlled object according to an arbitrarily designed requirement specification.
  • the control unit 100 has one or a plurality of communication ports.
  • the control unit 100 corresponds to a processing execution unit that executes standard control according to a standard control program.
  • the functional unit 200 is connected to the control unit 100 and is in charge of the communication function with other devices.
  • the functional unit 200 has one or a plurality of communication ports.
  • the functional unit 300 is an optional unit and is connected to the control unit 100 as needed.
  • the functional unit 300 typically has a communication unit having a data exchange function by SGU (Security Guard Unit) and OPC UA (Object Linking and Embedding for Process Control Unified Architecture), and a preventive maintenance function by AI (Artificial Intelligence). It may include AI units and the like.
  • the functional unit 400 provides various functions for realizing control for various control targets by the control system 2.
  • the functional unit 400 may typically include an I / O unit, a safety I / O unit, a communication unit, a motion controller unit, a temperature control unit, a pulse counter unit, and the like.
  • the I / O unit for example, a digital input (DI) unit, a digital output (DO) unit, an analog output (AI) unit, an analog output (AO) unit, a pulse catch input unit, and a plurality of types are mixed. Examples include a composite unit.
  • the safety I / O unit is in charge of I / O processing related to safety control.
  • the power supply unit 450 supplies power of a predetermined voltage to each unit constituting the control system 2.
  • FIG. 3 is a schematic diagram showing a hardware configuration example of the control unit 100 constituting the control system 2 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 chipset 104, a volatile memory 106, and a non-volatile memory 108 as main components.
  • a communication controller 110 a USB (Universal Serial Bus) controller 112, a memory card interface 114, network controllers 116, 118, 120, an internal bus controller 122, and an indicator 124.
  • USB Universal Serial Bus
  • the processor 102 reads various programs stored in the non-volatile memory 108, expands them in the volatile memory 106, and executes them to realize control calculations related to standard control and various processes as described later.
  • 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.
  • the non-volatile memory 108 stores a control program that operates in the execution environment provided by the system program.
  • the communication controller 110 is in charge of exchanging data with the functional unit 300.
  • the communication controller 110 for example, a communication chip corresponding to an internal bus, Ethernet, or the like can be adopted.
  • the USB controller 112 is in charge of exchanging data with an arbitrary information processing device via a USB connection.
  • the memory card interface 114 is configured so that the memory card 115 can be attached and detached, and data such as a control program and various settings can be written to the memory card 115, or data such as a control program and various settings can be written from the memory card 115. It is possible to read it.
  • Each of the network controllers 116, 118, 120 is in charge of exchanging data with any device via the network.
  • the network controllers 116, 118, 120 may employ industrial network protocols such as EtherCAT®, EtherNet / IP®, DeviceNet®, CompoNet®.
  • the internal bus controller 122 is in charge of exchanging data with the functional units 200, one or a plurality of functional units 300, and one or a plurality of functional units 400 constituting the control system 2.
  • a manufacturer-specific communication protocol may be used, or a communication protocol that is the same as or compliant with any of the industrial network protocols may be used.
  • the indicator 124 notifies the operating state of the control unit 100 and the like, and is composed of one or a plurality of LEDs arranged on the surface of the unit.
  • 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). It may be implemented using (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array). 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, a virtualization technique may be used to execute a plurality of OSs (Operating Systems) having different uses in parallel, and to execute necessary applications on each OS.
  • OSs Operating Systems
  • FIG. 4 is a schematic diagram showing a hardware configuration example of the functional unit 200 constituting the control system 2 according to the present embodiment.
  • the functional unit 200 has a processor 202 such as a CPU and a GPU, a chipset 204, a volatile memory 206, a non-volatile memory 208, a communication controller 210, and a communication interface 212 as main components.
  • a memory card interface 214, a network controller 216, 218, and an indicator 224 is a processor 202 such as a CPU and a GPU, a chipset 204, a volatile memory 206, a non-volatile memory 208, a communication controller 210, and a communication interface 212 as main components.
  • a memory card interface 214 such as a CPU and a GPU
  • a network controller 216 such as a network controller 216, 218, and an indicator 224.
  • the processor 202 realizes various communication functions as described later by reading various programs stored in the non-volatile memory 208, expanding them in the volatile memory 206, and executing the programs.
  • the chipset 204 realizes the processing of the functional unit 200 as a whole by mediating the exchange of data between the processor 202 and each component.
  • the non-volatile memory 208 stores various data such as the communication control program 232 that operates in the execution environment provided by the system program.
  • the communication controller 210 is in charge of exchanging data with the control unit 100 and the functional unit 300.
  • the communication controller 210 for example, a communication chip corresponding to an internal bus, Ethernet, or the like can be adopted.
  • the communication interface 212 is in charge of exchanging data with an arbitrary information processing device via a USB connection.
  • the memory card interface 214 is configured so that the memory card 215 can be attached and detached, and data such as a control program and various settings can be written to the memory card 215, or data such as a control program and various settings can be written from the memory card 215. It is possible to read it.
  • Each of the network controllers 216 and 218 is in charge of exchanging data with and from any device via the network.
  • the network controllers 216 and 218 may employ a general-purpose network protocol such as Ethernet.
  • the functional unit 200 communicates with the external device 500 via the network controller 216 or the network controller 218.
  • the indicator 224 notifies the operating state of the functional unit 200, etc., and is composed of one or a plurality of LEDs arranged on the surface of the unit.
  • 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 functional 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.
  • FIG. 5 is a schematic diagram showing a hardware configuration example of the functional unit 300 constituting the control system 2 according to the present embodiment.
  • the functional unit 300 has, as main components, a processor 302 such as a CPU and a GPU, a chipset 304, a volatile memory 306, a non-volatile memory 308, a memory card interface 314, and an internal bus. Includes controller 322 and indicator 324.
  • the processor 302 realizes a server function and various functions by reading various application programs stored in the non-volatile memory 308, deploying them in the volatile memory 306, and executing them.
  • the chipset 304 realizes the processing of the functional unit 300 as a whole by mediating the exchange of data between the processor 302 and each component.
  • the non-volatile memory 308 stores an application program that operates in the execution environment provided by the system program and the above-mentioned security information 330 (see FIG. 1).
  • the memory card interface 314 is configured so that the memory card 315 can be attached and detached, and data such as application programs and various settings can be written to the memory card 315, or data such as application programs and various settings can be written from the memory card 315. It is possible to read it.
  • the internal bus controller 322 is in charge of exchanging data with the control unit 100 and the functional unit 200 via the internal bus.
  • the indicator 324 notifies the operating state of the functional unit 300, etc., and is composed of one or a plurality of LEDs arranged on the surface of the unit.
  • FIG. 5 shows a configuration example in which the necessary functions are provided by the processor 302 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 functional unit 300 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. 6 is a schematic diagram showing a hardware configuration example of the external device 500 constituting the information processing system 1 according to the embodiment.
  • the external device 500 is composed of a computer configured according to a general-purpose computer architecture.
  • the external device 500 includes a processor 502 such as a CPU and an MPU, a volatile memory 504, a non-volatile memory 510, a communication interface 511, an I / O (Input / Output) interface 514, and a display interface 520. These components are communicably connected to each other via an internal bus 525.
  • the processor 502 controls the operation of the external device 500 by executing various control programs such as the development support program 510A and a browser application (not shown).
  • the development support program 510A is a program that provides an environment for developing a control program (user program) of the control system 2.
  • the processor 502 reads the control program to be executed from the non-volatile memory 510 to the volatile memory 504 based on the reception of the execution instructions of various control programs such as the development support program 510A and the browser application.
  • the communication interface 511 exchanges data with other communication devices via a network.
  • the other communication device includes, for example, a functional unit 200, a server, and the like.
  • the external device 500 may be configured so that various control programs such as the development support program 510A can be downloaded from the other communication device via the communication interface 511.
  • the I / O interface 514 is connected to the input device 515 and captures a signal indicating a user operation from the input device 515.
  • the input device 515 typically includes a keyboard, mouse, touch panel, touch pad, and the like, and accepts operations from the user.
  • the external device 500 and the input device 515 are shown as separate bodies, but the external device 500 and the input device 515 may be integrally configured.
  • the display interface 520 is connected to the display 521 and sends an image signal for displaying an image to the display 521 in accordance with a command from the processor 502 or the like.
  • the display 521 is, for example, an LCD (Liquid Crystal Display) or an organic EL (Electro Luminescence), and presents various information to the user.
  • the display 521 may display various screens provided by the development support program 510A.
  • the external device 500 and the display 521 are shown as separate bodies, but the external device 500 and the display 521 may be integrally configured.
  • FIG. 7 is a diagram showing an example of the unit configuration of the information processing system 1. A specific example of the unit configuration of the information processing system 1 will be described with reference to FIG. 7.
  • the information processing system 1 includes a control system 2 and an external device 500.
  • the control system 2 includes a control unit 100, functional units 200A and 200B, and a functional unit 300.
  • the functional units 200A and 200B are examples of the above-mentioned functional units 200 (see FIG. 2).
  • the control unit 100, the functional units 200A and 200B, and the functional unit 300 are connected to each other via the internal bus 10. These units communicate with each other via the internal bus 10.
  • the communication is realized by, for example, virtual Ethernet.
  • the functional unit 200 and the external device 500 are connected to the external network NW1.
  • An IP address "192.168.250.3" is assigned to the external device 500.
  • the functional unit 200 and the external device 500 each have a physical communication port, and are connected to the external network NW1 via the communication port.
  • control unit 100 and the functional units 200A, 200B, 300 are connected to the internal network NW2.
  • a virtual IP address "192.168.250.1" is assigned to the control unit 100.
  • control unit 100 is assigned a unit name "Unit # 0".
  • the IP address "192.168.250.2" is assigned to the functional unit 200A. Further, the unit name "Unit # 1" is assigned to the functional unit 200A.
  • the functional unit 200A functions as a Web server "Web1”. Applications “App11” and “Appp12” are installed in the functional unit 200A. The applications “App11” and “Appp12” are accessed from the Web server "Web1".
  • a virtual IP address "192.168.251.100" is assigned to the functional unit 200B. Further, the unit name "Unit # 2" is assigned to the functional unit 200B.
  • the functional unit 200B functions as a Web server "Web2”.
  • the applications “App 21” and “App 22” are installed in the functional unit 200B.
  • the applications “App21” and “App22” are accessed from the Web server "Web2".
  • a virtual IP address "192.168.251.101" is assigned to the functional unit 300. Further, the functional unit 300 is assigned the unit name "Unit # 3".
  • the functional unit 300 functions as a Web server "Web3”. Applications "App 31" and “App 32" are installed in the functional unit 300. The applications “App31” and “App32” are accessed from the Web server "Web3".
  • FIG. 8 is a diagram showing a data flow between the functional unit 200, the functional unit 300, and the external device 500.
  • the control system 2 is started in step S20. Based on this, the master-slave relationship is set between the functional units 200 and 300.
  • the master-slave relationship may be preset or may be arbitrarily set by the user.
  • the functional unit 200 is set as a slave unit and the functional unit 300 is set as a master unit.
  • the functional unit 200 as a slave unit transmits a request for acquiring security information 330 to the functional unit 300 as a master unit.
  • the functional unit 300 transmits the security information 330 to the functional unit 200 based on the receipt of the acquisition request.
  • step S22 the functional unit 200 stores the security information 330 received from the functional unit 300 in the volatile memory 206.
  • step S30 it is assumed that the external device 500 receives a data access request to the functional unit 200 from the user.
  • the external device 500 is requested to input the account information. More specifically, the functional unit 200 transmits the URL of the login page to the external device 500 based on the data access request received from the external device 500, and redirects the user to the login page.
  • step S32 the external device 500 transmits an access request to the login page to the functional unit 200 based on the URL received from the functional unit 200. Based on this, the functional unit 200 transmits the accessed login page to the external device 500.
  • step S34 the external device 500 displays the login page received from the functional unit 200 on the display 521 (see FIG. 6).
  • FIG. 9 is a diagram showing an example of a screen displayed on the external device 500.
  • the login page 700 is shown as an example of the screen displayed on the external device 500.
  • the login page 700 accepts input of account information such as a user ID and a password.
  • account information such as a user ID and a password.
  • the login button on the login page 700 is pressed, the entered account information is transmitted to the functional unit 200.
  • the cancel button of the login page 700 is pressed, the entered account information is discarded and the login page 700 is closed.
  • step S36 the external device 500 transmits the account information entered on the login page 700 to the functional unit 200.
  • step S50 the functional unit 200 authenticates the account information by referring to the security information 330 (see FIG. 1) stored in the volatile memory 206 based on the account information received from the external device 500. Execute the process.
  • the functional unit 200 allows the external device 500 to access the data to the functional unit 200.
  • FIG. 10 is a diagram showing the registered account information 330A included in the security information 330.
  • the registered account information 330A associates a password or the like with each user ID.
  • the functional unit 200 uses the user ID included in the input account information received from the external device 500 as a key to acquire the password corresponding to the user ID from the registered account information 330A.
  • the functional unit 200 compares the password acquired from the registered account information 330A with the password included in the input account information received from the external device 500. If these passwords match, the functional unit 200 determines that the input account information received from the external device 500 is registered in the registered account information 330A.
  • step S52 the functional unit 200 transmits an HTML (HyperText Markup Language) document of the portal site to the external device 500 as a response to the data access request in step S30.
  • HTML HyperText Markup Language
  • step S54 the external device 500 configures a portal site based on the received HTML document, and displays the portal site on the display 521 (see FIG. 6).
  • FIG. 9 shows an example of the portal site 710 displayed on the external device 500.
  • a link to the application installed in the functional unit 200 is shown as a hyperlink.
  • a link to the application "App 11" (see FIG. 7) installed in the functional unit 200 is shown as a hyperlink 710A
  • the application "App 12" is shown as hyperlink 710B.
  • hyperlink 710A When the user selects the hyperlink 710A, the function of the application "App11" can be used, and when the hyperlink 710B is selected, the function of the application "App12" can be used.
  • FIG. 11 is a diagram showing a configuration example of the control system 2A according to the first modification.
  • the functional unit 200 as a slave unit used the security information 330 distributed from the functional unit 300 as a master unit.
  • the functional unit 200 not only uses the security information 330 received from the functional unit 300, but also uses the security information 230 stored in advance in the functional unit 200. To do. Since the other points are as described above, duplicate explanations will not be repeated below.
  • the security information 230 is stored in advance in the non-volatile memory 208 of the functional unit 200. Further, the functional unit 200 stores the security information 330 distributed from the functional unit 300 in the volatile memory 206. As a result, the functional unit 200 has the security information 230 and the security information 330.
  • FIG. 12 is a diagram showing a process of merging security information 230 and security information 330. More specifically, FIG. 12 shows the registered account information 230A included in the security information 230, the registered account information 330A included in the security information 330, and the merged result 233 of the registered account information 230A and 330A. ..
  • information may conflict between the information included in the security information 230 and the information included in the security information 330.
  • the term "conflict” as used herein means that unique information such as a user ID is duplicated.
  • the user ID “user2” included in the registered account information 230A and the user ID “user2” included in the registered account information 330A conflict with each other.
  • the functional unit 200 is predetermined when information conflicts between the information included in the security information 230 (first security information) and the information contained in the security information 330 (second security information).
  • First security information the information included in the security information 230
  • second security information the information contained in the security information 330
  • the priority is set in advance for each functional unit, and the functional unit 200 gives priority to the information acquired from the unit having a high priority.
  • the priority is set so that the priority of the functional unit 300 as a master unit is higher than the priority of the slave unit.
  • the functional unit 200 gives priority to the security information 330 received from the functional unit 300 over the security information 230 stored in the functional unit 200.
  • the account information of the user ID "user2" and the password "pass2A" has priority over the account information of the user ID "user2" and the password "pass2B". This prevents conflicts in account information.
  • FIG. 13 is a diagram showing a configuration example of the control system 2B according to the second modification.
  • the master unit distributed security information to the slave units.
  • the slave unit distributes the security information to other units. Since the other points are as described above, duplicate explanations will not be repeated below.
  • control unit 100 which is a slave unit, has a volatile memory 106 and a non-volatile memory 108.
  • Security information 330 is stored in advance in the non-volatile memory 108.
  • the functional unit 200 which is a slave unit, has a volatile memory 206 and a non-volatile memory 208.
  • Security information 230 is stored in advance in the volatile memory 206.
  • the functional unit 300 which is a master unit, has a volatile memory 306 and a non-volatile memory 308. Security information 330 is stored in advance in the volatile memory 306.
  • the control unit 100 distributes the security information 130 stored in the non-volatile memory 108 to each of the functional units 200 and 300 at a predetermined timing.
  • the functional unit 200 stores the security information 130 received from the control unit 100 in the volatile memory 206.
  • the functional unit 300 stores the security information 130 received from the control unit 100 in the volatile memory 306.
  • the functional unit 200 distributes the security information 230 stored in the non-volatile memory 208 to the control unit 100 and the functional unit 300 at a predetermined timing.
  • the control unit 100 stores the security information 230 received from the functional unit 200 in the volatile memory 106.
  • the functional unit 300 stores the security information 230 received from the functional unit 200 in the volatile memory 306.
  • the functional unit 300 distributes the security information 330 stored in the non-volatile memory 208 to the control unit 100 and the functional unit 200 at a predetermined timing.
  • the control unit 100 stores the security information 330 received from the functional unit 300 in the volatile memory 106.
  • the functional unit 200 stores the security information 330 received from the functional unit 300 in the volatile memory 206.
  • the timing at which the security information 130, 230, 330 is distributed to other units is not particularly limited.
  • the security information 130, 230, 330 is distributed to each unit at the timing when the power of the control system 2B is turned on.
  • security information 130, 230, 330 is distributed to each unit at predetermined intervals.
  • the security information 130, 230, 330 is distributed to each unit at the timing of receiving the acquisition instruction or the update instruction by the user operation.
  • each unit of the control unit 100 and the functional units 200 and 300 merges the security information 130, 230 and 330 according to a predetermined merge rule. At this time, when information conflicts among the security information 130, 230, 330, each unit resolves the information conflict by the method described in the above "G. First variant example".
  • FIG. 13 has described an example in which security information is distributed to all other units, the security information does not necessarily have to be distributed to all other units.
  • a unit that allows distribution of security information and a unit that prohibits distribution of security information are predetermined, and each unit distributes security information only to other units that are permitted to distribute security information. You may.
  • FIG. 14 is a diagram showing a configuration example of the control system 2C according to the third modification.
  • the security information 330 includes the account information.
  • the security information 330 includes key information 330B such as a private key and a digital certificate used for encryption. Since the other points are as described above, duplicate explanations will not be repeated below.
  • the security information 330 including the key information 330B is stored in the non-volatile memory 308 of the functional unit 300 as the master unit.
  • FIG. 15 is a diagram showing key information 330B included in security information 330.
  • the key information 330B includes one or more sets of a digital certificate and a private key.
  • the digital certificate contains the public key used for encryption.
  • a digital certificate is a data set for certifying the owner of the public key.
  • digital certificates are pre-issued by a certificate authority called a Certificate Authority (CA).
  • CA Certificate Authority
  • the functional unit 300 as the master unit transmits the security information 330 including the key information 330B to the control unit 100 and the functional unit 200 as the slave units at a predetermined timing.
  • the control unit 100 stores the security information 330 received from the functional unit 300 in the volatile memory 106.
  • the functional unit 200 stores the security information 330 received from the functional unit 300 in the volatile memory 206.
  • Each unit constituting the control system 2C realizes secure communication with the external device 500 by using the key information 330B held by itself.
  • FIG. 14 shows an example in which the functional unit 200 is performing secure communication with the external device 500A and an example in which the functional unit 300 is performing secure communication with the external device 500B.
  • the functional units 200 and 300 realize secure communication with external devices 500A and 500B by SSL (Secure Sockets Layer) communication.
  • SSL Secure Sockets Layer
  • the functional unit 200 which is a slave unit, is stored in the volatile memory 206 based on the reception of the acquisition request for the data stored in the functional unit 200 from the external device 500A.
  • the digital certificate C1 is transmitted to the external device 500A.
  • the digital certificate C1 includes the host name of the registrant.
  • the digital certificate C1 is distributed from the functional unit 300, but the host specified in the digital certificate C1 even though the sender of the digital certificate C1 is the functional unit 200. If the name is functional unit 300, the external device 500A cannot correctly authenticate the sender. Therefore, a multi-domain certificate or a wildcard certificate is used as the digital certificate C1.
  • a multi-domain certificate is a certificate that can authenticate a plurality of domains with one digital certificate C1.
  • a wildcard certificate is a certificate that can authenticate all subdomains belonging to the same hierarchy of "*.” By adding "*.” As a common name.
  • the external device 500A verifies the digital certificate C1 received from the functional unit 200 and determines whether or not the sender of the digital certificate C1 is a legitimate sender. When the external device 500A determines that the sender of the digital certificate C1 is a legitimate sender, the external device 500A generates a common key (not shown). After that, the external device 500A encrypts the generated common key using the public key included in the digital certificate C1, and transmits the encrypted common key to the functional unit 200.
  • the functional unit 200 decrypts the common key by using the private key K1 included in the key information 330B based on the reception of the encrypted common key from the external device 500A. By the above processing, the common key is safely sent from the functional unit 200 to the external device 500A. In the subsequent communication, the functional unit 200 and the external device 500A encrypt the data using the common key and then exchange the data with each other.
  • the functional unit 300 performs SSL communication with the external device 500B using the key information 330B stored in the non-volatile memory 308.
  • the present embodiment includes the following disclosures.
  • a control system (2) composed of a plurality of units.
  • the plurality of units The master unit (300) connected to the bus (10) and A slave unit (200) connected to the bus (10) and communicating with the master unit (300) via the bus (10) is included.
  • the master unit (300) has a non-volatile memory (308) for storing the first security information (330), which is information to be kept secret.
  • the slave unit (200) has a volatile memory (206).
  • the slave unit (200) receives the first security information (330) from the master unit (300) at a predetermined timing, and receives the first security information (330) from the volatile memory (206).
  • a control system to store in.
  • the first security information (330) includes user account information.
  • the slave unit (200) Based on the reception of the data access request to the slave unit (200) from the external device (500) configured to be able to communicate with the slave unit (200), the account information is input to the external device (500). Request and When the account information input to the external device (500) is registered in the first security information (330) stored in the volatile memory (206), the slave by the external device (500).
  • the control system according to configuration 1 or 2, which allows data access to the unit (200).
  • the first security information (330) includes a digital certificate.
  • the slave unit (200) is based on receiving an acquisition request for data stored in the slave unit (200) from an external device (500) configured to be able to communicate with the slave unit (200).
  • the control system according to any one of configurations 1 to 3, wherein the digital certificate stored in the volatile memory (206) is transmitted to the external device (500).
  • the slave unit (200) further has a non-volatile memory (308) for storing a second security information (230) which is information to be kept secret. If there is conflicting information between the information contained in the first security information (330) and the information contained in the second security information (230), the slave unit (200) may advance the information.
  • the control system according to any one of configurations 1 to 4, which determines which of the competing information is prioritized according to a set rule.
  • the master unit (300) receives the second security information (230) from the slave unit (200) at the predetermined timing, and receives the second security information (230) from the master unit (300).
  • the control system according to configuration 5, which is stored in the volatile memory (306) of the above.
  • [Structure 8] It is a control method of a control system (2) composed of a plurality of units.
  • the plurality of units The master unit (300) connected to the bus (10) and A slave unit (200) connected to the bus (10) and communicating with the master unit (300) via the bus (10) is included.
  • the control method is A step in which the master unit (300) stores the first security information (330), which is information to be concealed, in the non-volatile memory (308) of the master unit (300).
  • a step in which the slave unit (200) receives the first security information (330) from the master unit (300) at a predetermined timing.
  • a control method comprising a step in which the slave unit (200) stores the first security information (330) received from the master unit (300) in the volatile memory (206) of the slave unit (200). ..

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Small-Scale Networks (AREA)
  • Programmable Controllers (AREA)

Abstract

複数のユニットで構成される制御システム(2)においてセキュリティ情報を一元的に管理するための技術を提供する。制御システム(2)は、バス(10)に接続されるマスターユニット(300)と、バス(10)に接続され、当該バス(10)を介してマスターユニット(300)と通信するスレーブユニット(200)とを備える。マスターユニット(300)は、秘匿対象の情報である第1セキュリティ情報(330)を格納するための不揮発性メモリ(308)を有する。スレーブユニット(200)は、揮発性メモリ(206)を有する。スレーブユニット(200)は、予め定められたタイミングにおいて、第1セキュリティ情報(330)をマスターユニット(300)から受信し、当該第1セキュリティ情報(330)を揮発性メモリ(206)に格納する。

Description

制御システム、および制御方法
 本開示は、複数のユニットで構成される制御システムにおいてセキュリティ情報を管理するための技術に関する。
 FA(Factory Automation)を用いた生産現場などでは、各種装置の制御において、PLC(Programmable Logic Controller)などの制御ユニットが用いられる。近年、外部機器に接続できる制御ユニットが普及している。このような制御ユニットに関し、特許文献1(特開2016-194808号公報)は、外部機器のデーターベースにアクセスすることができるPLCを開示している。
特開2016-194808号公報
 制御ユニットには、種々の機能ユニットが接続され得る。各機能ユニットには、様々なアプリケーションがインストールされ得る。ユーザは、必要に応じて、機能ユニットを追加したり、アプリケーションをインストールしたりすることができる。
 各機能ユニットは、他の機能ユニットとは独立しており、アカウント情報やデジタル証明書などの情報(以下、「セキュリティ情報」ともいう。)を機能ユニットごとに管理する必要がある。そのため、ユーザは、機能ユニットの数が多くなるほど、容易なパスワードを設定したり、パスワードを忘れてしまったりして、セキュリティ情報の管理が煩雑になる。したがって、複数のユニットで構成される制御システムにおいてセキュリティ情報を一元的に管理するための技術が望まれている。
 本開示の一例では、複数のユニットで構成される制御システムが提供される。上記複数のユニットは、バスに接続されるマスターユニットと、上記バスに接続され、当該バスを介して上記マスターユニットと通信するスレーブユニットとを含む。上記マスターユニットは、秘匿対象の情報である第1セキュリティ情報を格納するための不揮発性メモリを有する。上記スレーブユニットは、揮発性メモリを有する。上記スレーブユニットは、予め定められたタイミングにおいて、上記第1セキュリティ情報を上記マスターユニットから受信し、当該第1セキュリティ情報を上記揮発性メモリに格納する。
 本開示によれば、スレーブユニットは、マスターユニットから受信したセキュリティ情報を揮発性メモリに格納する。これにより、制御システムへの電力の供給が停止する度に、マスターユニットからセキュリティ情報が消える。一方で、マスターユニットの不揮発性メモリに格納されているセキュリティ情報は、制御システムへの電力の供給が停止したとしても消えない。これにより、セキュリティ情報を一元的に管理することができる。
 本開示の一例では、上記予め定められたタイミングは、上記制御システムの電源がオンされたタイミングを含む。
 本開示によれば、スレーブユニットは、制御システムの電源がオンされる度にマスターユニットからセキュリティ情報を受信するので、セキュリティ情報を最新の状態に保つことができる。
 本開示の一例では、上記第1セキュリティ情報は、ユーザのアカウント情報を含む。上記スレーブユニットは、当該スレーブユニットと通信可能に構成される外部機器から当該スレーブユニットへのデータアクセス要求を受信したことに基づいて、アカウント情報の入力を上記外部機器に要求し、上記外部機器に入力されたアカウント情報が、上記揮発性メモリに格納されている上記第1セキュリティ情報に登録されている場合、上記外部機器による上記スレーブユニットへのデータアクセスを許可する。
 本開示によれば、スレーブユニットは、マスターユニットから受信したアカウント情報に基づいて、ユーザの認証処理を実現することができる。
 本開示の一例では、上記第1セキュリティ情報は、デジタル証明書を含む。上記スレーブユニットは、当該スレーブユニットと通信可能に構成される外部機器から、当該スレーブユニットに格納されているデータについての取得要求を受信したことに基づいて、上記揮発性メモリに格納されている上記デジタル証明書を上記外部機器に送信する。
 本開示によれば、スレーブユニットは、マスターユニットから受信したデジタル証明書に基づいて、外部機器と通信を実現することができる。
 本開示の一例では、上記スレーブユニットは、さらに、秘匿対象の情報である第2セキュリティ情報を格納するための不揮発性メモリを有する。上記スレーブユニットは、上記第1セキュリティ情報に含まれる情報と、上記第2セキュリティ情報に含まれる情報との間で、競合する情報が存在する場合には、予め定められたルールに従って、当該競合する情報の内のいずれの情報を優先するかを決定する。
 本開示によれば、第1セキュリティ情報と第2セキュリティ情報との間で、情報の競合が解消される。
 本開示の一例では、上記マスターユニットは、上記予め定められたタイミングにおいて、上記第2セキュリティ情報を上記スレーブユニットから受信し、当該第2セキュリティ情報を当該マスターユニットの上記揮発性メモリに格納する。
 本開示によれば、マスターユニットとスレーブユニットとの間で、セキュリティ情報を分散させて管理することができる。
 本開示の一例では、上記スレーブユニットは、駆動機器を制御するための制御ユニットを含む。
 本開示によれば、制御ユニットで利用されるセキュリティ情報を、マスターユニットで一元的に管理することができる。
 本開示の他の例では、複数のユニットで構成される制御システムの制御方法が提供される。上記複数のユニットは、バスに接続されるマスターユニットと、上記バスに接続され、当該バスを介して上記マスターユニットと通信するスレーブユニットとを含む。上記制御方法は、上記マスターユニットが、秘匿対象の情報である第1セキュリティ情報を、当該マスターユニットの不揮発性メモリに格納するステップと、上記スレーブユニットが、予め定められたタイミングにおいて、上記第1セキュリティ情報を上記マスターユニットから受信するステップと、前上記スレーブユニットが、上記マスターユニットから受信した上記第1セキュリティ情報を、当該スレーブユニットの揮発性メモリに格納するステップとを備える。
 本開示によれば、スレーブユニットは、マスターユニットから受信したセキュリティ情報を揮発性メモリに格納する。これにより、制御システムへの電力の供給が停止する度に、マスターユニットからセキュリティ情報が消える。一方で、マスターユニットにおいては、マスターユニットの不揮発性メモリに格納されているセキュリティ情報は、制御システムへの電力の供給が停止したとしても消えない。これにより、セキュリティ情報を一元的に管理することができる。
実施の形態に従う情報処理システムの構成例を示す図である。 実施の形態に従う制御システムの構成例を示す外観図である。 実施の形態に従う制御システムを構成する制御ユニットのハードウェア構成例を示す模式図である。 実施の形態に従う制御システムを構成する機能ユニットのハードウェア構成例を示す模式図である。 実施の形態に従う制御システムを構成する機能ユニットのハードウェア構成例を示す模式図である。 実施の形態に従う情報処理システムを構成する外部機器のハードウェア構成例を示す模式図である。 実施の形態に従う情報処理システムのユニット構成の一例を示す図である。 機能ユニットと機能ユニットと外部機器との間のデータフローを示す図である。 実施の形態に従う外部機器に表示される画面の一例を示す図である。 セキュリティ情報に含まれる登録アカウント情報を示す図である。 第1変形例に従う制御システムの構成例を示す図である。 セキュリティ情報をマージする過程を示す図である。 第2変形例に従う制御システムの構成例を示す図である。 第3変形例に従う制御システムの構成例を示す図である。 セキュリティ情報に含まれる鍵情報を示す図である。
 以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
 <A.適用例>
 図1を参照して、本発明の適用例について説明する。図1は、実施の形態に従う情報処理システム1の構成例を示す図である。
 情報処理システム1は、1つ以上の制御システム2と、1つ以上の外部機器500とを含む。制御システム2は、生産工程を自動化するためのFAシステムである。制御システム2は、制御ユニット100と、機能ユニット200,300とを含む。機能ユニット300は、マスターユニットとして機能する。制御ユニット100および機能ユニット200は、スレーブユニットとして機能する。マスターおよびスレーブの関係は、予め設定されている。
 機能ユニット200および外部機器500は、外部ネットワークに接続される。機能ユニット200および外部機器500の間の通信は、Ethernet(登録商標)によって実現される。外部機器500は、たとえば、ノート型またはデスクトップ型のPC(Personal Computer)、タブレット端末、スマートフォン、HMI(Human Machine Interface)、または、その他の情報処理端末である。
 制御ユニット100、機能ユニット200、および機能ユニット300は、内部バス10によって接続される。これらのユニットは、内部バス10を介して、互いに通信を行う。
 制御ユニット100は、たとえば、PLCである。制御ユニット100は、予め設計されたユーザプログラムに従って、駆動機器(図示しない)を制御する。駆動機器は、生産工程を自動化するための種々の産業用機器を含む。一例として、駆動機器は、ロボットコントローラや、サーボドライバや、ロボットコントローラに制御されるアームロボットや、サーボドライバによって制御されるサーボモータなどを含む。また、駆動機器は、ワークを撮影するための視覚センサや、生産工程で利用されるその他の機器などを含んでもよい。
 制御ユニット100は、揮発性メモリ106を有する。揮発性メモリ106は、電力の供給が停止されると記憶している情報が消えてしまうようなメモリの総称である。揮発性メモリ106は、たとえば、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)などのRAM(Random Access Memory)である。
 機能ユニット200は、制御ユニット100に接続される。機能ユニット200には、制御システム2に関する各種サービスを提供するための種々のアプリケーションがインストールされ得る。機能ユニット200は、揮発性メモリ206を有する。揮発性メモリ106は、たとえば、SRAMやDRAMなどのRAMである。
 機能ユニット300は、秘匿対象の情報であるセキュリティ情報330を一元的に管理するためのユニットである。機能ユニット300は、たとえば、SGU(Security Guard Unit)である。セキュリティ情報330は、たとえば、各種ユニットで利用されるアカウント情報やデジタル証明書などを含む。セキュリティ情報330は、機能ユニット300の不揮発性メモリ308に格納される。
 不揮発性メモリ308は、電力の供給がない状態でも情報を保持し続けることが可能なメモリの総称である。不揮発性メモリ308は、たとえば、ROM(Read Only Memory)、ハードディスク、または、フラッシュメモリである。
 マスターユニットとしての機能ユニット300は、予め定められたタイミングにおいて、スレーブユニットとしての制御ユニット100と機能ユニット200とに、セキュリティ情報330を送信する。制御ユニット100は、機能ユニット300から受信したセキュリティ情報330を揮発性メモリ106に格納する。同様に、機能ユニット200は、機能ユニット300から受信したセキュリティ情報330を揮発性メモリ206に格納する。
 セキュリティ情報330が配布されるタイミングは、特に限定されない。ある局面において、セキュリティ情報330は、制御システム2の電源がオンされたタイミングに、各スレーブユニットに配布される。他の局面において、セキュリティ情報330は、予め定められた周期ごとに各スレーブユニットに配布される。さらに他の局面において、セキュリティ情報330は、ユーザ操作による取得指示や更新指示を受けたタイミングに、各スレーブユニットに配布される。
 以上のように、制御システム2は、セキュリティ情報の管理を一元的に担う機能ユニット300を有する。これにより、ユーザは、アカウント情報やデジタル証明書などの管理をユニットごとに行う必要がなくなり、セキュリティ情報の管理における煩雑性が解消される。その結果、誤った設定や古い設定によって生じるセキュリティホールを防ぐことができる。また、セキュリティ情報330が一箇所で管理されると、異常発生時において確認すべき箇所を減らすことができ、迅速に異常に対応することができる。
 さらに、セキュリティ情報は、内部バス10を介して配布されるので、外部ネットワークに接続する必要がない。これにより、セキュリティ情報が外部に漏れる可能性が低くなり、制御システム2のセキュリティレベルが改善される。
 また、セキュリティ情報330は、揮発性メモリ106,206に格納される。そのため、セキュリティ情報330は、制御システム2の電源の遮断後において、スレーブユニット上に残らない。一方で、機能ユニット300の不揮発性メモリ308に格納されているセキュリティ情報330は、制御システム2への電力の供給が停止したとしても消えない。これにより、セキュリティ情報330が重複することがなくなり、セキュリティ情報330の一元的な管理がより確実に実現される。
 また、セキュリティ情報330が一元的に管理されると、ユーザは、全てのユニットについて情報漏洩対策を行う必要がない。すなわち、ユーザは、機能ユニット300の不揮発性メモリ308に対して情報漏洩対策を重点的に行えば、セキュリティレベルを改善することができる。たとえば、暗号化機能付きのメモリが不揮発性メモリ308に用いられると、セキュリティ情報330の漏洩のリスクを低減することができる。また、ユーザは、不揮発性メモリ308に対してのみ情報漏洩対策を行えばいいので、コストも抑えることができる。
 <B.制御システム2>
 図2を参照して、図1に示される制御システム2について説明する。図2は、制御システム2の構成例を示す外観図である。
 図2を参照して、制御システム2は、1または複数の制御ユニット100と、1または複数の機能ユニット200と、1または複数の機能ユニット300と、1または複数の機能ユニット400と、電源ユニット450とを含む。
 制御ユニット100と機能ユニット200との間は、任意のデータ伝送路を介して接続されている。制御ユニット100と、機能ユニット200と、1または複数の機能ユニット300,400との間は、内部バス10(図1参照)を介して接続されている。
 制御ユニット100は、制御システム2において中心的な処理を実行する。制御ユニット100は、任意に設計された要求仕様に従って、制御対象を制御するための制御演算を実行する。図2に示す構成例において、制御ユニット100は、1または複数の通信ポートを有している。制御ユニット100は、標準制御プログラムに従って標準制御を実行する処理実行部に相当する。
 機能ユニット200は、制御ユニット100に接続され、他の装置との間の通信機能を担当する。図2に示す構成例において、機能ユニット200は、1または複数の通信ポートを有している。
 機能ユニット300は、オプションのユニットであり、必要に応じて制御ユニット100に接続される。機能ユニット300は、典型的には、SGU(Security Guard Unit)、OPC UA(Object Linking and Embedding for Process Control Unified Architecture)によるデータ交換機能を有する通信ユニット、AI(Artificial Intelligence)による予防保全機能を有するAIユニットなどを包含し得る。
 機能ユニット400は、制御システム2による様々な制御対象に対する制御を実現するための各種機能を提供する。機能ユニット400は、典型的には、I/Oユニット、セーフティI/Oユニット、通信ユニット、モーションコントローラユニット、温度調整ユニット、パルスカウンタユニットなどを包含し得る。I/Oユニットとしては、たとえば、デジタル入力(DI)ユニット、デジタル出力(DO)ユニット、アナログ出力(AI)ユニット、アナログ出力(AO)ユニット、パルスキャッチ入力ユニット、および、複数の種類を混合させた複合ユニットなどが挙げられる。セーフティI/Oユニットは、セーフティ制御に係るI/O処理を担当する。
 電源ユニット450は、制御システム2を構成する各ユニットに対して、所定電圧の電源を供給する。
 <C.各ユニットのハードウェア構成例>
 次に、本実施の形態に従う制御システム2を構成する各ユニットのハードウェア構成例について説明する。
 (c1:制御ユニット100)
 図3は、本実施の形態に従う制御システム2を構成する制御ユニット100のハードウェア構成例を示す模式図である。図3を参照して、制御ユニット100は、主たるコンポーネントとして、CPU(Central Processing Unit)やGPU(Graphical Processing Unit)などのプロセッサ102と、チップセット104と、揮発性メモリ106と、不揮発性メモリ108と、通信コントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、ネットワークコントローラ116,118,120と、内部バスコントローラ122と、インジケータ124とを含む。
 プロセッサ102は、不揮発性メモリ108に格納された各種プログラムを読み出して、揮発性メモリ106に展開して実行することで、標準制御に係る制御演算、および、後述するような各種処理を実現する。チップセット104は、プロセッサ102と各コンポーネントとの間のデータの遣り取りを仲介することで、制御ユニット100全体としての処理を実現する。
 不揮発性メモリ108には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作する制御プログラムが格納される。
 通信コントローラ110は、機能ユニット300との間のデータの遣り取りを担当する。通信コントローラ110としては、たとえば、内部バスあるいはEtherNetなどに対応する通信チップを採用できる。
 USBコントローラ112は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
 メモリカードインターフェイス114は、メモリカード115を着脱可能に構成されており、メモリカード115に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード115から制御プログラムや各種設定などのデータを読出すことが可能になっている。
 ネットワークコントローラ116,118,120の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ116,118,120は、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などの産業用ネットワークプロトコルを採用してもよい。
 内部バスコントローラ122は、制御システム2を構成する機能ユニット200、1または複数の機能ユニット300、1または複数の機能ユニット400との間のデータの遣り取りを担当する。内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
 インジケータ124は、制御ユニット100の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLEDなどで構成される。
 図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(たとえば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御ユニット100の主要部を、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
 (c2:機能ユニット200)
 図4は、本実施の形態に従う制御システム2を構成する機能ユニット200のハードウェア構成例を示す模式図である。図4を参照して、機能ユニット200は、主たるコンポーネントとして、CPUやGPUなどのプロセッサ202と、チップセット204と、揮発性メモリ206と、不揮発性メモリ208と、通信コントローラ210と、通信インターフェイス212と、メモリカードインターフェイス214と、ネットワークコントローラ216,218と、インジケータ224とを含む。
 プロセッサ202は、不揮発性メモリ208に格納された各種プログラムを読み出して、揮発性メモリ206に展開して実行することで、後述するような各種通信機能を実現する。チップセット204は、プロセッサ202と各コンポーネントとの間のデータの遣り取りを仲介することで、機能ユニット200全体としての処理を実現する。
 不揮発性メモリ208には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作する通信制御プログラム232などの各種データが格納される。
 通信コントローラ210は、制御ユニット100や機能ユニット300との間のデータの遣り取りを担当する。通信コントローラ210としては、たとえば、内部バスあるいはEtherNetなどに対応する通信チップを採用できる。
 通信インターフェイス212は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
 メモリカードインターフェイス214は、メモリカード215を着脱可能に構成されており、メモリカード215に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード215から制御プログラムや各種設定などのデータを読出すことが可能になっている。
 ネットワークコントローラ216,218の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ216,218は、EtherNetなどの汎用的なネットワークプロトコルを採用してもよい。一例として、機能ユニット200は、ネットワークコントローラ216またはネットワークコントローラ218を介して外部機器500と通信する。
 インジケータ224は、機能ユニット200の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLEDなどで構成される。
 図4には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(たとえば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、機能ユニット200の主要部を、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
 (c3:機能ユニット300)
 図5は、本実施の形態に従う制御システム2を構成する機能ユニット300のハードウェア構成例を示す模式図である。図5を参照して、機能ユニット300は、主たるコンポーネントとして、CPUやGPUなどのプロセッサ302と、チップセット304と、揮発性メモリ306と、不揮発性メモリ308と、メモリカードインターフェイス314と、内部バスコントローラ322と、インジケータ324とを含む。
 プロセッサ302は、不揮発性メモリ308に格納された各種アプリケーションプログラムを読み出して、揮発性メモリ306に展開して実行することで、サーバ機能および各種機能を実現する。チップセット304は、プロセッサ302と各コンポーネントとの間のデータの遣り取りを仲介することで、機能ユニット300全体としての処理を実現する。
 不揮発性メモリ308には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作するアプリケーションプログラムや上述のセキュリティ情報330(図1参照)が格納される。
 メモリカードインターフェイス314は、メモリカード315を着脱可能に構成されており、メモリカード315に対してアプリケーションプログラムや各種設定などのデータを書込み、あるいは、メモリカード315からアプリケーションプログラムや各種設定などのデータを読出すことが可能になっている。
 内部バスコントローラ322は、内部バスを介した制御ユニット100や機能ユニット200との間のデータの遣り取りを担当する。
 インジケータ324は、機能ユニット300の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLEDなどで構成される。
 図5には、プロセッサ302がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(たとえば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、機能ユニット300の主要部を、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
 <D.外部機器500のハードウェア構成例>
 次に、図6を参照して、外部機器500のハードウェア構成について順に説明する。図6は、実施の形態に従う情報処理システム1を構成する外部機器500のハードウェア構成例を示す模式図である。
 外部機器500は、一例として、汎用的なコンピュータアーキテクチャに準じて構成されるコンピュータからなる。外部機器500は、CPUやMPUなどのプロセッサ502と、揮発性メモリ504と、不揮発性メモリ510と、通信インターフェイス511と、I/O(Input/Output)インターフェイス514と、表示インターフェイス520とを含む。これらのコンポーネントは、内部バス525を介して互いに通信可能に接続されている。
 プロセッサ502は、開発支援プログラム510Aやブラウザアプリケーション(図示しない)などの各種の制御プログラムを実行することで外部機器500の動作を制御する。開発支援プログラム510Aは、制御システム2の制御プログラム(ユーザプログラム)を開発するための環境を提供するプログラムである。プロセッサ502は、開発支援プログラム510Aやブラウザアプリケーションなどの各種制御プログラムの実行命令を受け付けたことに基づいて、実行対象の制御プログラムを不揮発性メモリ510から揮発性メモリ504に読み出す。
 通信インターフェイス511は、他の通信機器との間でネットワークを介してデータを遣り取りする。当該他の通信機器は、たとえば、機能ユニット200、サーバなどを含む。外部機器500は、通信インターフェイス511を介して、当該他の通信機器から、開発支援プログラム510Aなどの各種制御プログラムをダウンロード可能なように構成されてもよい。
 I/Oインターフェイス514は、入力デバイス515に接続され、入力デバイス515からのユーザ操作を示す信号を取り込む。入力デバイス515は、典型的には、キーボード、マウス、タッチパネル、タッチパッドなどからなり、ユーザからの操作を受け付ける。なお、図6の例では、外部機器500および入力デバイス515が別体として示されているが、外部機器500および入力デバイス515は、一体的に構成されてもよい。
 表示インターフェイス520は、ディスプレイ521と接続され、プロセッサ502などからの指令に従って、ディスプレイ521に対して、画像を表示するための画像信号を送出する。ディスプレイ521は、たとえば、LCD(Liquid Crystal Display)や有機EL(Electro Luminescence)であり、ユーザに対して各種情報を提示する。ディスプレイ521には、開発支援プログラム510Aによって提供される各種画面が表示され得る。なお、図6の例では、外部機器500およびディスプレイ521が別体として示されているが、外部機器500およびディスプレイ521は、一体的に構成されてもよい。
 <E.情報処理システム1のユニット構成例>
 図7は、情報処理システム1のユニット構成の一例を示す図である。図7を参照して、情報処理システム1のユニット構成の具体例について説明する。
 図7に示されるように、情報処理システム1は、制御システム2と、外部機器500とを含む。制御システム2は、制御ユニット100と、機能ユニット200A,200Bと、機能ユニット300とを含む。機能ユニット200A,200Bは、上述の機能ユニット200(図2参照)の一例である。制御ユニット100と、機能ユニット200A,200Bと、機能ユニット300とは、内部バス10を介して接続されている。これらのユニットは、内部バス10を介して互いに通信する。当該通信は、たとえば、仮想Ethernetによって実現される。
 外部ネットワークNW1には、機能ユニット200および外部機器500が接続されている。外部機器500には、IPアドレス「192.168.250.3」が割り当てられている。機能ユニット200および外部機器500は、それぞれ、物理的な通信ポートを有し、当該通信ポートを介して外部ネットワークNW1に接続される。
 内部ネットワークNW2には、制御ユニット100、機能ユニット200A,200B,300が接続されている。制御ユニット100には、仮想IPアドレス「192.168.250.1」が割り当てられている。また、制御ユニット100には、ユニット名「Unit #0」が割り当てられている。
 機能ユニット200Aには、IPアドレス「192.168.250.2」が割り当てられている。また、機能ユニット200Aには、ユニット名「Unit #1」が割り当てられている。機能ユニット200Aは、Webサーバ「Web1」として機能する。機能ユニット200Aには、アプリケーション「App11」,「App12」がインストールされている。アプリケーション「App11」,「App12」は、Webサーバ「Web1」からアクセスされる。
 機能ユニット200Bには、仮想IPアドレス「192.168.251.100」が割り当てられている。また、機能ユニット200Bには、ユニット名「Unit #2」が割り当てられている。機能ユニット200Bは、Webサーバ「Web2」として機能する。機能ユニット200Bには、アプリケーション「App21」,「App22」がインストールされている。アプリケーション「App21」,「App22」は、Webサーバ「Web2」からアクセスされる。
 機能ユニット300には、仮想IPアドレス「192.168.251.101」が割り当てられている。また、機能ユニット300には、ユニット名「Unit #3」が割り当てられている。機能ユニット300は、Webサーバ「Web3」として機能する。機能ユニット300には、アプリケーション「App31」,「App32」がインストールされている。アプリケーション「App31」,「App32」は、Webサーバ「Web3」からアクセスされる。
 <F.シーケンスフロー>
 次に、図8~図10を参照して、制御システム2の制御フローについて説明する。図8は、機能ユニット200と、機能ユニット300と、外部機器500との間のデータフローを示す図である。
 ステップS20において、制御システム2が起動されたとする。このことに基づいて、機能ユニット200,300の間でマスターおよびスレーブの関係が設定される。マスターおよびスレーブの関係は、予め設定されていてもよいし、ユーザによって任意に設定されてもよい。図8の例では、機能ユニット200がスレーブユニットとして設定されており、機能ユニット300がマスターユニットとして設定されているとする。スレーブユニットとしての機能ユニット200は、マスターユニットとしての機能ユニット300に、セキュリティ情報330の取得要求を送信する。機能ユニット300は、当該取得要求を受信したことに基づいて、セキュリティ情報330を機能ユニット200に送信する。
 ステップS22において、機能ユニット200は、機能ユニット300から受信したセキュリティ情報330を揮発性メモリ206に格納する。
 ステップS30において、外部機器500は、機能ユニット200へのデータアクセス要求をユーザから受けたとする。ステップS30の時点では、機能ユニット200へのログイン処理が行われていないので、アカウント情報の入力を外部機器500に要求する。より具体的には、機能ユニット200は、外部機器500からデータアクセス要求を受信したことに基づいて、ログインページのURLを外部機器500に送信し、ログインページにリダイレクトさせる。
 ステップS32において、外部機器500は、機能ユニット200から受信したURLに基づいて、ログインページへのアクセス要求を機能ユニット200に送信する。このことに基づいて、機能ユニット200は、アクセスされたログインページを外部機器500に送信する。
 ステップS34において、外部機器500は、機能ユニット200から受信したログインページをディスプレイ521(図6参照)に表示する。図9は、外部機器500に表示される画面の一例を示す図である。図9には、外部機器500に表示される画面の一例として、ログインページ700が示されている。ログインページ700は、ユーザIDやパスワードなどのアカウント情報の入力を受け付ける。ログインページ700のログインボタンが押下された場合には、入力されたアカウント情報が機能ユニット200に送信される。ログインページ700のキャンセルボタンが押下された場合には、入力されたアカウント情報が破棄され、ログインページ700が閉じられる。
 ステップS36において、ログインページ700のログインボタンが押下されたとする。これにより、外部機器500は、ログインページ700に入力されたアカウント情報を機能ユニット200に送信する。
 ステップS50において、機能ユニット200は、外部機器500からアカウント情報を受信したことに基づいて、揮発性メモリ206に格納されているセキュリティ情報330(図1参照)を参照して、当該アカウント情報の認証処理を実行する。外部機器500に入力されたアカウント情報が、揮発性メモリ206に格納されているセキュリティ情報330に登録されている場合、機能ユニット200は、外部機器500による機能ユニット200へのデータアクセスを許可する。
 図10は、セキュリティ情報330に含まれる登録アカウント情報330Aを示す図である。登録アカウント情報330Aは、ユーザID別にパスワードなどを関連付けている。機能ユニット200は、外部機器500から受信した入力アカウント情報に含まれるユーザIDをキーとして、当該ユーザIDに対応するパスワードを登録アカウント情報330Aから取得する。次に、機能ユニット200は、登録アカウント情報330Aから取得したパスワードと、外部機器500から受信した入力アカウント情報に含まれるパスワードとを比較する。これらのパスワードが一致する場合、機能ユニット200は、外部機器500から受信した入力アカウント情報が登録アカウント情報330Aに登録されていると判断する。
 ステップS52において、機能ユニット200は、ステップS30でのデータアクセス要求に対する応答として、ポータルサイトのHTML(HyperText Markup Language)文書を外部機器500に送信する。
 ステップS54において、外部機器500は、受信したHTML文書に基づいてポータルサイトを構成し、当該ポータルサイトをディスプレイ521(図6参照)に表示する。図9には、外部機器500に表示されるポータルサイト710の例が示されている。
 ポータルサイト710には、機能ユニット200にインストールされているアプリケーションへのリンクがハイパーリンクで示される。図9の例では、機能ユニット200にインストールされているアプリケーション「App11」(図7参照)へのリンクがハイパーリンク710Aとして示され、機能ユニット200にインストールされているアプリケーション「App12」(図7参照)へのリンクがハイパーリンク710Bとして示されている。ユーザは、ハイパーリンク710Aを選択するとアプリケーション「App11」の機能を利用することができ、ハイパーリンク710Bを選択するとアプリケーション「App12」の機能を利用することができる。
 <G.第1変形例>
 次に、図11および図12を参照して、上述の制御システム2の変形例について説明する。図11は、第1変形例に従う制御システム2Aの構成例を示す図である。
 上述の制御システム2においては、スレーブユニットとしての機能ユニット200は、マスターユニットとしての機能ユニット300から配布されたセキュリティ情報330を利用していた。これに対して、本変形例に従う制御システム2Aにおいては、機能ユニット200は、機能ユニット300から受信したセキュリティ情報330を利用するだけでなく、機能ユニット200に予め格納されているセキュリティ情報230も利用する。その他の点については上述の通りであるので、以下では、重複する説明については繰り返さない。
 図11に示されるように、セキュリティ情報230は、機能ユニット200の不揮発性メモリ208に予め格納されている。また、機能ユニット200は、機能ユニット300から配布されたセキュリティ情報330を揮発性メモリ206に格納する。その結果、機能ユニット200は、セキュリティ情報230と、セキュリティ情報330とを有することになる。
 機能ユニット200は、セキュリティ情報230とセキュリティ情報330とをマージする。図12は、セキュリティ情報230およびセキュリティ情報330をマージする過程を示す図である。より詳細には、図12には、セキュリティ情報230に含まれる登録アカウント情報230Aと、セキュリティ情報330に含まれる登録アカウント情報330Aと、登録アカウント情報230A,330Aのマージ結果233とが示されている。
 図12に示されるように、セキュリティ情報230に含まれる情報と、セキュリティ情報330含まれる情報との間で、情報が競合する場合がある。ここでいう「競合」とは、ユーザIDのような一意の情報が重複していることを意味する。図12の例では、登録アカウント情報230Aに含まれるユーザID「user2」と、登録アカウント情報330Aに含まれるユーザID「user2」とが競合している。
 機能ユニット200は、セキュリティ情報230(第1セキュリティ情報)に含まれる情報と、セキュリティ情報330(第2セキュリティ情報)に含まれる情報との間で、情報が競合する場合には、予め定められたマージルールに従って、競合する情報の内のいずれの情報を優先するかを決定する。
 一例として、優先度が機能ユニットごとに予め設定されており、機能ユニット200は、優先度の高いユニットから取得した情報を優先する。たとえば、マスターユニットとしての機能ユニット300の優先度が、スレーブユニットとしての優先度よりも高いように、優先度が設定されているとする。この場合、機能ユニット200は、機能ユニット300から受信したセキュリティ情報330を、機能ユニット200に格納されているセキュリティ情報230よりも優先する。その結果、ユーザID「user2」およびパスワード「pass2A」のアカウント情報が、ユーザID「user2」およびパスワード「pass2B」のアカウント情報よりも優先される。これにより、アカウント情報の競合が防がれる。
 <H.第2変形例>
 次に、図13を参照して、上述の制御システム2の他の変形例について説明する。図13は、第2変形例に従う制御システム2Bの構成例を示す図である。
 上述の制御システム2においては、マスターユニットがスレーブユニットにセキュリティ情報を配布していた。これに対して、本変形例に従う制御システム2Bにおいては、マスターユニットがスレーブユニットにセキュリティ情報を配布するだけでなく、スレーブユニットも他のユニットにセキュリティ情報を配布する。その他の点については上述の通りであるので、以下では、重複する説明については繰り返さない。
 図13に示されるように、スレーブユニットである制御ユニット100は、揮発性メモリ106と、不揮発性メモリ108とを有する。不揮発性メモリ108には、セキュリティ情報330が予め格納されている。
 スレーブユニットである機能ユニット200は、揮発性メモリ206と、不揮発性メモリ208とを有する。揮発性メモリ206には、セキュリティ情報230が予め格納されている。
 マスターユニットである機能ユニット300は、揮発性メモリ306と、不揮発性メモリ308とを有する。揮発性メモリ306には、セキュリティ情報330が予め格納されている。
 制御ユニット100は、予め定められたタイミングにおいて、不揮発性メモリ108に格納されているセキュリティ情報130を、機能ユニット200,300のそれぞれに配布する。機能ユニット200は、制御ユニット100から受信したセキュリティ情報130を揮発性メモリ206に格納する。同様に、機能ユニット300は、制御ユニット100から受信したセキュリティ情報130を揮発性メモリ306に格納する。
 機能ユニット200は、予め定められたタイミングにおいて、不揮発性メモリ208に格納されているセキュリティ情報230を、制御ユニット100と機能ユニット300とのそれぞれに配布する。制御ユニット100は、機能ユニット200から受信したセキュリティ情報230を揮発性メモリ106に格納する。同様に、機能ユニット300は、機能ユニット200から受信したセキュリティ情報230を揮発性メモリ306に格納する。
 機能ユニット300は、予め定められたタイミングにおいて、不揮発性メモリ208に格納されているセキュリティ情報330を、制御ユニット100と機能ユニット200とのそれぞれに配布する。制御ユニット100は、機能ユニット300から受信したセキュリティ情報330を揮発性メモリ106に格納する。同様に、機能ユニット200は、機能ユニット300から受信したセキュリティ情報330を揮発性メモリ206に格納する。
 セキュリティ情報130,230,330が他のユニットに配布されるタイミングは、特に限定されない。ある局面において、セキュリティ情報130,230,330は、制御システム2Bの電源がオンされたタイミングに、各ユニットに配布される。他の局面において、セキュリティ情報130,230,330は、予め定められた周期ごとに各ユニットに配布される。さらに他の局面において、セキュリティ情報130,230,330は、ユーザ操作による取得指示や更新指示を受けたタイミングに、各ユニットに配布される。
 制御ユニット100および機能ユニット200,300の各ユニットは、他のユニットからのセキュリティ情報の受信後において、予め定められたマージルールに従って、セキュリティ情報130,230,330をマージする。このとき、セキュリティ情報130,230,330の間で情報が競合する場合には、各ユニットは、上記「G.第1変形例」で説明した方法で、情報の競合を解消する。
 なお、図13では、セキュリティ情報が他の全てのユニットに配布される例について説明を行ったが、セキュリティ情報は、必ずしも、他の全てのユニットに配布される必要はない。たとえば、セキュリティ情報の配布を許可するユニットと、セキュリティ情報の配布を禁止するユニットとが予め決められており、各ユニットは、セキュリティ情報の配布が許可されている他のユニットにのみセキュリティ情報を配布してもよい。
 <I.第3変形例>
 次に、図14および図15を参照して、上述の制御システム2の他の変形例について説明する。図14は、第3変形例に従う制御システム2Cの構成例を示す図である。
 上述では、セキュリティ情報330がアカウント情報を含む例について説明した。これに対して、本変形例においては、セキュリティ情報330は、暗号化に用いる秘密鍵やデジタル証明書などの鍵情報330Bを含む。その他の点については上述の通りであるので、以下では、重複する説明については繰り返さない。
 図14に示されるように、鍵情報330Bを含むセキュリティ情報330は、マスターユニットとしての機能ユニット300の不揮発性メモリ308に格納されている。図15は、セキュリティ情報330に含まれる鍵情報330Bを示す図である。鍵情報330Bは、デジタル証明書と秘密鍵とのセットを1つ以上含む。
 デジタル証明書は、暗号化に用いられる公開鍵を含む。デジタル証明書とは、当該公開鍵の所有者を証明するためのデータセットである。典型的には、デジタル証明書は、認証局(CA:Certificate Authority)と呼ばれる認証機関によって予め発行されている。
 再び図14を参照して、マスターユニットとしての機能ユニット300は、予め定められたタイミングにおいて、スレーブユニットとしての制御ユニット100と機能ユニット200とに、鍵情報330Bを含むセキュリティ情報330を送信する。制御ユニット100は、機能ユニット300から受信したセキュリティ情報330を揮発性メモリ106に格納する。同様に、機能ユニット200は、機能ユニット300から受信したセキュリティ情報330を揮発性メモリ206に格納する。
 制御システム2Cを構成する各ユニットは、自身が保持する鍵情報330Bを用いて、外部機器500とのセキュア通信を実現する。図14には、機能ユニット200が外部機器500Aとセキュア通信を行っている例と、機能ユニット300が外部機器500Bとセキュア通信を行っている例とが示されている。
 一例として、機能ユニット200,300は、SSL(Secure Sockets Layer)通信により、外部機器500A,500Bとのセキュア通信を実現する。
 より具体的には、スレーブユニットである機能ユニット200は、外部機器500Aから、機能ユニット200に格納されているデータについての取得要求を受信したことに基づいて、揮発性メモリ206に格納されているデジタル証明書C1を外部機器500Aに送信する。通常、デジタル証明書C1には、登録者のホスト名が含まれる。上述のように、デジタル証明書C1は、機能ユニット300から配布されたものであるが、デジタル証明書C1の送信者が機能ユニット200であるにも関わらず、デジタル証明書C1に規定されるホスト名が機能ユニット300であると、外部機器500Aは、送信者を正しく認証することができない。そのため、デジタル証明書C1として、マルチドメイン証明書や、ワイルドカード証明書が利用される。マルチドメイン証明書は、1つのデジタル証明書C1で複数のドメインを認証することができる証明書である。ワイルドカード証明書は、コモンネームとして「*.」を付けることで、「*.」の同一階層に属する全てのサブドメインを認証することができる証明書である。
 外部機器500Aは、機能ユニット200から受信したデジタル証明書C1を検証して、デジタル証明書C1の送信者が正当な送信者であるか否かを判断する。外部機器500Aは、デジタル証明書C1の送信者が正当な送信者であると判断した場合、共通鍵(図示しない)を生成する。その後、外部機器500Aは、デジタル証明書C1に含まれる公開鍵を用いて、生成した共通鍵を暗号化し、暗号化後の共通鍵を機能ユニット200に送信する。
 機能ユニット200は、暗号化された共通鍵を外部機器500Aから受信したことに基づいて、鍵情報330Bに含まれる秘密鍵K1を用いて、当該共通鍵を復号化する。以上の処理により、共通鍵が機能ユニット200から外部機器500Aに安全に送られる。以降の通信では、機能ユニット200および外部機器500Aは、共通鍵を用いてデータを暗号化した上で、互いにデータをやり取りする。
 同様に、機能ユニット300は、不揮発性メモリ308に格納されている鍵情報330Bを用いて、外部機器500BとSSL通信を行う。
 <J.付記>
 以上のように、本実施形態は以下のような開示を含む。
 [構成1]
 複数のユニットで構成される制御システム(2)であって、
 前記複数のユニットは、
  バス(10)に接続されるマスターユニット(300)と、
  前記バス(10)に接続され、当該バス(10)を介して前記マスターユニット(300)と通信するスレーブユニット(200)とを含み、
 前記マスターユニット(300)は、秘匿対象の情報である第1セキュリティ情報(330)を格納するための不揮発性メモリ(308)を有し、
 前記スレーブユニット(200)は、揮発性メモリ(206)を有し、
 前記スレーブユニット(200)は、予め定められたタイミングにおいて、前記第1セキュリティ情報(330)を前記マスターユニット(300)から受信し、当該第1セキュリティ情報(330)を前記揮発性メモリ(206)に格納する、制御システム。
 [構成2]
 前記予め定められたタイミングは、前記制御システム(2)の電源がオンされたタイミングを含む、構成1に記載の制御システム。
 [構成3]
 前記第1セキュリティ情報(330)は、ユーザのアカウント情報を含み、
 前記スレーブユニット(200)は、
  当該スレーブユニット(200)と通信可能に構成される外部機器(500)から当該スレーブユニット(200)へのデータアクセス要求を受信したことに基づいて、アカウント情報の入力を前記外部機器(500)に要求し、
  前記外部機器(500)に入力されたアカウント情報が、前記揮発性メモリ(206)に格納されている前記第1セキュリティ情報(330)に登録されている場合、前記外部機器(500)による前記スレーブユニット(200)へのデータアクセスを許可する、構成1または2に記載の制御システム。
 [構成4]
 前記第1セキュリティ情報(330)は、デジタル証明書を含み、
 前記スレーブユニット(200)は、当該スレーブユニット(200)と通信可能に構成される外部機器(500)から、当該スレーブユニット(200)に格納されているデータについての取得要求を受信したことに基づいて、前記揮発性メモリ(206)に格納されている前記デジタル証明書を前記外部機器(500)に送信する、構成1~3のいずれか1項に記載の制御システム。
 [構成5]
 前記スレーブユニット(200)は、さらに、秘匿対象の情報である第2セキュリティ情報(230)を格納するための不揮発性メモリ(308)を有し、
 前記スレーブユニット(200)は、前記第1セキュリティ情報(330)に含まれる情報と、前記第2セキュリティ情報(230)に含まれる情報との間で、競合する情報が存在する場合には、予め定められたルールに従って、当該競合する情報の内のいずれの情報を優先するかを決定する、構成1~4のいずれか1項に記載の制御システム。
 [構成6]
 前記マスターユニット(300)は、前記予め定められたタイミングにおいて、前記第2セキュリティ情報(230)を前記スレーブユニット(200)から受信し、当該第2セキュリティ情報(230)を当該マスターユニット(300)の前記揮発性メモリ(306)に格納する、構成5に記載の制御システム。
 [構成7]
 前記スレーブユニット(200)は、駆動機器を制御するための制御ユニット(100)を含む、構成1~6のいずれか1項に記載の制御システム。
 [構成8]
 複数のユニットで構成される制御システム(2)の制御方法であって、
 前記複数のユニットは、
  バス(10)に接続されるマスターユニット(300)と、
  前記バス(10)に接続され、当該バス(10)を介して前記マスターユニット(300)と通信するスレーブユニット(200)とを含み、
 前記制御方法は、
  前記マスターユニット(300)が、秘匿対象の情報である第1セキュリティ情報(330)を、当該マスターユニット(300)の不揮発性メモリ(308)に格納するステップと、
  前記スレーブユニット(200)が、予め定められたタイミングにおいて、前記第1セキュリティ情報(330)を前記マスターユニット(300)から受信するステップと、
  前記スレーブユニット(200)が、前記マスターユニット(300)から受信した前記第1セキュリティ情報(330)を、当該スレーブユニット(200)の揮発性メモリ(206)に格納するステップとを備える、制御方法。
 今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
 1 情報処理システム、2,2A,2B,2C 制御システム、10,525 内部バス、100 制御ユニット、102,202,302,502 プロセッサ、104,204,304 チップセット、106,206,306,504 揮発性メモリ、108,208,308,510 不揮発性メモリ、110,210 通信コントローラ、112 USBコントローラ、114,214,314 メモリカードインターフェイス、115,215,315 メモリカード、116,118,120,216,218 ネットワークコントローラ、122,322 内部バスコントローラ、124,224,324 インジケータ、130,230,330 セキュリティ情報、200,200A,200B,300,400 機能ユニット、212,511 通信インターフェイス、230A,330A 登録アカウント情報、232 通信制御プログラム、233 マージ結果、330B 鍵情報、450 電源ユニット、500,500A,500B 外部機器、510A 開発支援プログラム、514 インターフェイス、515 入力デバイス、520 表示インターフェイス、521 ディスプレイ、700 ログインページ、710 ポータルサイト、710A,710B ハイパーリンク。

Claims (8)

  1.  複数のユニットで構成される制御システムであって、
     前記複数のユニットは、
      バスに接続されるマスターユニットと、
      前記バスに接続され、当該バスを介して前記マスターユニットと通信するスレーブユニットとを含み、
     前記マスターユニットは、秘匿対象の情報である第1セキュリティ情報を格納するための不揮発性メモリを有し、
     前記スレーブユニットは、揮発性メモリを有し、
     前記スレーブユニットは、予め定められたタイミングにおいて、前記第1セキュリティ情報を前記マスターユニットから受信し、当該第1セキュリティ情報を前記揮発性メモリに格納する、制御システム。
  2.  前記予め定められたタイミングは、前記制御システムの電源がオンされたタイミングを含む、請求項1に記載の制御システム。
  3.  前記第1セキュリティ情報は、ユーザのアカウント情報を含み、
     前記スレーブユニットは、
      当該スレーブユニットと通信可能に構成される外部機器から当該スレーブユニットへのデータアクセス要求を受信したことに基づいて、アカウント情報の入力を前記外部機器に要求し、
      前記外部機器に入力されたアカウント情報が、前記揮発性メモリに格納されている前記第1セキュリティ情報に登録されている場合、前記外部機器による前記スレーブユニットへのデータアクセスを許可する、請求項1または2に記載の制御システム。
  4.  前記第1セキュリティ情報は、デジタル証明書を含み、
     前記スレーブユニットは、当該スレーブユニットと通信可能に構成される外部機器から、当該スレーブユニットに格納されているデータについての取得要求を受信したことに基づいて、前記揮発性メモリに格納されている前記デジタル証明書を前記外部機器に送信する、請求項1~3のいずれか1項に記載の制御システム。
  5.  前記スレーブユニットは、さらに、秘匿対象の情報である第2セキュリティ情報を格納するための不揮発性メモリを有し、
     前記スレーブユニットは、前記第1セキュリティ情報に含まれる情報と、前記第2セキュリティ情報に含まれる情報との間で、競合する情報が存在する場合には、予め定められたルールに従って、当該競合する情報の内のいずれの情報を優先するかを決定する、請求項1~4のいずれか1項に記載の制御システム。
  6.  前記マスターユニットは、前記予め定められたタイミングにおいて、前記第2セキュリティ情報を前記スレーブユニットから受信し、当該第2セキュリティ情報を当該マスターユニットの前記揮発性メモリに格納する、請求項5に記載の制御システム。
  7.  前記スレーブユニットは、駆動機器を制御するための制御ユニットを含む、請求項1~6のいずれか1項に記載の制御システム。
  8.  複数のユニットで構成される制御システムの制御方法であって、
     前記複数のユニットは、
      バスに接続されるマスターユニットと、
      前記バスに接続され、当該バスを介して前記マスターユニットと通信するスレーブユニットとを含み、
     前記制御方法は、
      前記マスターユニットが、秘匿対象の情報である第1セキュリティ情報を、当該マスターユニットの不揮発性メモリに格納するステップと、
      前記スレーブユニットが、予め定められたタイミングにおいて、前記第1セキュリティ情報を前記マスターユニットから受信するステップと、
      前記スレーブユニットが、前記マスターユニットから受信した前記第1セキュリティ情報を、当該スレーブユニットの揮発性メモリに格納するステップとを備える、制御方法。
PCT/JP2020/009376 2019-07-08 2020-03-05 制御システム、および制御方法 WO2021005831A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202080046751.0A CN114072793A (zh) 2019-07-08 2020-03-05 控制系统以及控制方法
US17/623,169 US20220245233A1 (en) 2019-07-08 2020-03-05 Control system and control method
EP20836615.3A EP3998542A4 (en) 2019-07-08 2020-03-05 ORDERING SYSTEM AND ORDERING METHOD

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019126824A JP7379888B2 (ja) 2019-07-08 2019-07-08 制御システム、および制御方法
JP2019-126824 2019-07-08

Publications (1)

Publication Number Publication Date
WO2021005831A1 true WO2021005831A1 (ja) 2021-01-14

Family

ID=74114654

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/009376 WO2021005831A1 (ja) 2019-07-08 2020-03-05 制御システム、および制御方法

Country Status (5)

Country Link
US (1) US20220245233A1 (ja)
EP (1) EP3998542A4 (ja)
JP (1) JP7379888B2 (ja)
CN (1) CN114072793A (ja)
WO (1) WO2021005831A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7567576B2 (ja) 2021-03-11 2024-10-16 オムロン株式会社 制御システムおよびその制御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079354A (ja) * 2008-09-24 2010-04-08 Koyo Electronics Ind Co Ltd 分散型plcシステム
JP2016194808A (ja) 2015-03-31 2016-11-17 オムロン株式会社 プログラマブルロジックコントローラ、データ収集装置、データベースアクセス方法およびデータベースアクセスプログラム
JP2018128722A (ja) * 2017-02-06 2018-08-16 株式会社日立産機システム プログラマブルロジックコントローラ

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI1004907A2 (pt) * 2009-07-22 2016-08-09 Panasonic Coporation unidade principal e unidade subordinada
US8863256B1 (en) * 2011-01-14 2014-10-14 Cisco Technology, Inc. System and method for enabling secure transactions using flexible identity management in a vehicular environment
US9467297B2 (en) * 2013-08-06 2016-10-11 Bedrock Automation Platforms Inc. Industrial control system redundant communications/control modules authentication
JP6460760B2 (ja) 2014-12-03 2019-01-30 キヤノン株式会社 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム
US10057072B2 (en) * 2014-12-31 2018-08-21 Schneider Electric USA, Inc. Industrial network certificate recovery by identifying secondary root certificate
JP2016162314A (ja) 2015-03-03 2016-09-05 キヤノン株式会社 画像形成装置及びその制御方法
JP7088104B2 (ja) * 2019-03-27 2022-06-21 オムロン株式会社 制御システム、および制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079354A (ja) * 2008-09-24 2010-04-08 Koyo Electronics Ind Co Ltd 分散型plcシステム
JP2016194808A (ja) 2015-03-31 2016-11-17 オムロン株式会社 プログラマブルロジックコントローラ、データ収集装置、データベースアクセス方法およびデータベースアクセスプログラム
JP2018128722A (ja) * 2017-02-06 2018-08-16 株式会社日立産機システム プログラマブルロジックコントローラ

Also Published As

Publication number Publication date
EP3998542A1 (en) 2022-05-18
JP2021012573A (ja) 2021-02-04
CN114072793A (zh) 2022-02-18
JP7379888B2 (ja) 2023-11-15
US20220245233A1 (en) 2022-08-04
EP3998542A4 (en) 2023-08-02

Similar Documents

Publication Publication Date Title
TWI428721B (zh) 工業控制系統、在工業控制環境中之通訊方法,以及用於實施此方法之電腦可讀取媒體
EP3048523B1 (en) Programmable display
EP2863281B1 (en) System and method to configure a field device
CN110192197A (zh) 通过使用证书建立身份标识和信任来实现正品设备保证的技术
TWI582556B (zh) 顯示操作系統
WO2021005831A1 (ja) 制御システム、および制御方法
WO2020195350A1 (ja) 制御システム、および制御方法
WO2022185583A1 (ja) 制御装置、ならびに制御装置の記憶部に保存されたデータの入出力を管理するプログラムおよび方法
WO2020184186A1 (ja) 制御装置および制御システム
JP2020120367A (ja) セーフティシステムおよびメンテナンス方法
WO2021161653A1 (ja) 制御システム、中継装置、およびアクセス管理プログラム
JP7131455B2 (ja) ユニット、ユニットの制御方法、および、ユニットの制御プログラム
CN115361270B (zh) 一种存储集群访问ad域的方法、装置及介质
WO2020246093A1 (ja) 情報提供方法、情報提供システムおよびサーバ
JP2020161048A (ja) コントローラシステム
US20240142952A1 (en) Control system and method for controlling same
JP2024130006A (ja) サポート装置、制御方法、およびサポートプログラム

Legal Events

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

Ref document number: 20836615

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020836615

Country of ref document: EP

Effective date: 20220208