JP2022108027A - Control apparatus, management method and security program - Google Patents

Control apparatus, management method and security program Download PDF

Info

Publication number
JP2022108027A
JP2022108027A JP2021002808A JP2021002808A JP2022108027A JP 2022108027 A JP2022108027 A JP 2022108027A JP 2021002808 A JP2021002808 A JP 2021002808A JP 2021002808 A JP2021002808 A JP 2021002808A JP 2022108027 A JP2022108027 A JP 2022108027A
Authority
JP
Japan
Prior art keywords
identification information
unit
control
security
information
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2021002808A
Other languages
Japanese (ja)
Inventor
信次 村山
Shinji Murayama
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
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 Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2021002808A priority Critical patent/JP2022108027A/en
Priority to PCT/JP2021/009558 priority patent/WO2022153566A1/en
Publication of JP2022108027A publication Critical patent/JP2022108027A/en
Pending legal-status Critical Current

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

Landscapes

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

Abstract

To protect a control program, which is intellectual property.SOLUTION: A control apparatus collates unique information, which is generated by using identification information acquired from each of one or more devices, with unique information generated in advance in response to an execution start request relating to whether to execute a control program, and determines whether to execute the control program on the basis of the collation result. The control apparatus selects, for each of the one or more devices, identification information according to a security policy out of first identification information for identifying the type of the device and second identification information for individually identifying the device.SELECTED DRAWING: Figure 1

Description

本開示は、制御装置、管理方法およびセキュリティプログラムに関する。 The present disclosure relates to control devices, management methods, and security programs.

様々な製造現場において、PLC(Programmable Logic Controller)などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置または製造設備などに応じて設計された制御プログラムを実行する。 Control devices such as PLCs (Programmable Logic Controllers) have been introduced in various manufacturing sites. Such a control device is a kind of computer and executes a control program designed according to a manufacturing device or manufacturing facility.

近年では、既に製造現場での稼働実績のある制御装置から制御プログラムを抜き取り、別の製造現場内で新たな制御装置が作られて、抜き取られた制御プログラムが利用されるという問題が発生している。 In recent years, there has been a problem in which control programs are extracted from control devices that have already been used at manufacturing sites, new control devices are created at other manufacturing sites, and the extracted control programs are used. there is

特開2008-065678号公報(特許文献1)は、このような問題に対処する一の方法を開示する。具体的には、特許文献1は、PLCが、制御プログラムを暗号化したプログラムが設備機器に固有なプログラムであるか否かを判断し、設備機器に固有なプログラムであれば、当該プログラムから制御プログラムを復号し、制御プログラムを実行して設備機器を制御する方法を開示する。 Japanese Patent Laying-Open No. 2008-065678 (Patent Document 1) discloses one method for coping with such a problem. Specifically, in Patent Document 1, the PLC determines whether or not a program obtained by encrypting a control program is unique to the equipment, and if the program is unique to the equipment, control is performed from the program. Disclosed is a method of decoding a program and executing a control program to control equipment.

特開2008-065678号公報Japanese Patent Application Laid-Open No. 2008-065678

特許文献1で示された方法では、PLCは、予め入力された識別データと暗号ルールとを格納する記憶手段を備え、当該識別データを用いて、暗号化したプログラムが設備機器に固有なプログラムであるか否かを判断する。暗号化したプログラムが設備機器に固有なプログラムであると判断された場合、PLCは、暗号ルールに従って、暗号化したプログラムを復号することにより制御プログラムを得て、当該制御プログラムを利用する。そのため、暗号化したプログラムだけでなく、識別データおよび暗号ルールも抜き取られた場合、制御プログラムの利用が図られてしまう。すなわち、特許文献1で示された方法では、制御プログラムという知的財産の保護を図る上で改善の余地があった。 In the method disclosed in Patent Document 1, the PLC has storage means for storing previously input identification data and encryption rules, and using the identification data, the encrypted program is a program unique to the equipment. determine whether there is If the encrypted program is determined to be unique to the equipment, the PLC obtains the control program by decrypting the encrypted program according to the encryption rules, and uses the control program. Therefore, if not only the encrypted program but also the identification data and encryption rules are extracted, the control program will be used. In other words, the method disclosed in Patent Document 1 has room for improvement in terms of protecting the intellectual property of the control program.

本開示は、制御プログラムという知的財産の保護を図ることを一つの目的とする。 One object of the present disclosure is to protect the intellectual property of the control program.

本開示の一例に従うと、1以上のデバイスを含む制御装置は、制御プログラムを実行する制御エンジンと、制御エンジンでの制御プログラムの実行可否を管理するセキュリティエンジンとを備える。セキュリティエンジンは、生成手段と、保持手段と、照合手段と、許可手段とを含む。生成手段は、1以上のデバイスの各々から取得された識別情報を用いて固有情報を生成する。保持手段は、予め生成された第1の固有情報を保持する保持手段と、照合手段は、照合の要求に従って生成手段により生成される第2の固有情報と、第1の固有情報とを照合する。許可手段は、制御プログラムの実行開始要求に応答して、照合の要求を行い、照合手段から得られる照合結果に基づいて、制御プログラムの実行可否を判定する。生成手段は、1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて識別情報を選択する。 According to one example of the present disclosure, a control device including one or more devices includes a control engine that executes a control program, and a security engine that manages whether the control engine can execute the control program. The security engine includes generating means, holding means, verification means, and authorization means. The generator generates unique information using identification information obtained from each of the one or more devices. The holding means holds the first unique information generated in advance, and the collating means collates the first unique information with the second unique information generated by the generating means in accordance with the collation request. . The permitting means makes a request for verification in response to the control program execution start request, and determines whether or not the control program can be executed based on the verification result obtained from the verification means. For each of the one or more devices, the generation means selects identification information from first identification information identifying the type of the device and second identification information individually identifying the device according to the security policy.

この構成によれば、セキュリティエンジンは、予め生成された第1の固有情報を基準に、制御プログラムの実行開始要求に応答して生成される第2の固有情報を照合し、その照合結果に応じて制御プログラムの実行可否を判定する。固有情報は、各デバイスの種別を識別する第1の識別情報および各デバイスを個別に識別する第2の識別情報から選択された識別情報から生成される。そのため、制御装置のソフトウェア(第1の固有情報および制御プログラムを含む)およびハードウェアをコピーすることにより新たな制御装置を作製した場合、当該新たな制御装置に含まれるデバイスの識別情報から生成される第2の固有情報は、第1の固有情報と不一致となり得る。その結果、セキュリティエンジンによって管理された環境下とは異なる環境下での制御プログラムの起動を防ぐことができる。すなわち、制御プログラムという知的財産を保護することができる。 According to this configuration, the security engine compares the second unique information generated in response to the control program execution start request based on the previously generated first unique information, and according to the comparison result, to determine whether the control program can be executed. The unique information is generated from identification information selected from first identification information identifying the type of each device and second identification information individually identifying each device. Therefore, when a new control device is created by copying the software (including the first unique information and the control program) and the hardware of the control device, the The second unique information may be inconsistent with the first unique information. As a result, it is possible to prevent activation of the control program under an environment different from the environment managed by the security engine. That is, it is possible to protect the intellectual property of the control program.

さらに、デバイスの種別を識別する第1の識別情報およびデバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて識別情報が選択される。そのため、制御プログラムの開発者は、制御プログラムに対するセキュリティ対策の優先度を考慮して、セキュリティポリシーを適宜設定できる。その結果、セキュリティエンジンにおけるセキュリティレベルを任意に変更できる。 Further, identification information is selected according to the security policy from the first identification information that identifies the device type 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 security measures for the control program. As a result, the security level in the security engine can be changed arbitrarily.

上述の開示において、セキュリティポリシーは、第1のポリシー、第2のポリシーおよび第3のポリシーの中から予め設定される。第1のポリシーは、1以上のデバイスの各々について第1の識別情報を選択するポリシーである。第2のポリシーは、1以上のデバイスのうち第1のグループに属する第1のデバイスについて第1の識別情報を選択し、1以上のデバイスのうち、第1のグループよりもセキュリティ対策の優先度の高い第2のグループに属する第2のデバイスについて第2の識別情報を選択するポリシーである。第3のポリシーは、1以上のデバイスの各々について第2の識別情報を選択するポリシーである。 In the above disclosure, the security policy is preset among the first policy, the second policy and the third policy. A first policy is a policy that selects a first identification for each of the one or more devices. A second policy selects first identification information for a first device belonging to a first group among the one or more devices, and prioritizes security measures over the first group among the one or more devices. is a policy of selecting a second identity for a second device belonging to a second group with a higher . A third policy is a policy that selects the second identification for each of the one or more devices.

この開示によれば、開発者は、制御プログラムに対するセキュリティ対策の優先度を考慮して、セキュリティエンジンにおけるセキュリティレベルを任意に変更できる。 According to this disclosure, the developer can arbitrarily change the security level in the security engine in consideration of the priority of security measures for the control program.

上述の開示において、1以上のデバイスの各々は、第2の識別情報を保持する。第2の識別情報は、第1の識別情報と、第1の識別情報によって識別される種別のデバイスの個体に対してユニークに割り当てられる第3の識別情報との組み合わせである。生成手段は、第2の識別情報から第1の識別情報を取得する。この開示によれば、各デバイスは、第2の識別情報のみを記憶しておけばよい。 In the above disclosure, each of the one or more devices carries a second identification. The second identification information is a combination of the first identification information and the third identification information uniquely assigned to the individual device of the type 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 need only store the second identification.

上述の開示において、1以上のデバイスは、制御エンジンを有する制御デバイスと、セキュリティエンジンを有するセキュリティデバイスとを含む。 In the above disclosure, one or more devices include a control device with a control engine and a security device with a security engine.

この開示によれば、制御プログラムに対する変更の自由度を満たす必要のある制御エンジンと、セキュリティ上、変更の自由度が好まれないセキュリティエンジンとを、互いに異なるデバイスによって実現することで、各エンジンの特性に応じたデバイス設計を可能にする。 According to this disclosure, a control engine that needs to satisfy the degree of freedom to change the control program and a security engine that does not like the degree of freedom to change from the viewpoint of security are realized by different devices, thereby enabling each engine to Enables device design according to characteristics.

上述の開示において、保持手段は、外部装置との間で、分散型台帳の形式で第1の固有情報を保持する。 In the above disclosure, the holding means holds the first unique information in the form of a distributed ledger with the external device.

この開示によれば、第1の固有情報は、より改竄困難な状態で保持される。これにより、制御プログラムという知的財産のセキュリティレベルを高めることができる。 According to this disclosure, the first unique information is held in a state that is more difficult to falsify. As a result, the security level of the intellectual property of the control program can be increased.

上述の開示において、照合手段は、第2の固有情報と外部装置が保持する第1の固有情報とをさらに照合する。 In the above disclosure, the collating means further collates the second unique information with the first unique information held by the external device.

この開示によれば、不正に制御装置をコピーした第三者は、制御プログラムを実行させるために、外部装置が保持する第1の固有情報を改竄する必要が生じる。そのため、制御プログラムのセキュリティレベルをさらに高めることができる。 According to this disclosure, a third party who illegally copies the control device needs to tamper with 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 enhanced.

本開示の別の一例によれば、1以上のデバイスを含む制御装置において実行される管理方法は、第1~第4のステップを備える。第1のステップは、予め生成された第1の固有情報を保持するステップである。第2のステップは、制御プログラムの実行開始要求に応答して、1以上のデバイスの各々から取得された識別情報を用いて第2の固有情報を生成するステップである。第3のステップは、第1の固有情報と第2の固有情報とを照合するステップである。第4のステップは、照合結果に基づいて、制御プログラムの実行可否を判定するステップである。第2のステップ(生成するステップ)は、1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて識別情報を選択するステップを含む。 According to another example of the present disclosure, a management method performed in a control device including one or more devices comprises first to fourth steps. The first step is to hold pre-generated first unique information. A second step is generating second unique information using identification information obtained from each of the one or more devices in response to a request to start execution of the control program. A third step is a step of collating the first unique information and the second unique information. A fourth step is a step of determining whether or not the control program can be executed based on the collation result. A second step (generating step) includes, for each of one or more devices, first identification information that identifies the type of the device and second identification information that individually identifies the device according to the security policy. Selecting identification information.

本開示の別の一例によれば、セキュリティプログラムは、上記の管理方法をコンピュータに実行させる。 According to another example of the present disclosure, the security program causes the computer to execute the management method described above.

これらの開示によっても、制御プログラムという知的財産の保護を図ることができる。 These disclosures also make it possible to protect the intellectual property of the control program.

本開示によれば、制御プログラムという知的財産の保護を図ることができる。 According to the present disclosure, the intellectual property of the control program can be protected.

実施の形態に係る制御装置を適用した場面の一例を示す図である。It is a figure which shows an example of the scene to which the control apparatus which concerns on embodiment is applied. 本実施の形態に係る制御装置1を含む制御システム10の全体構成を示す模式図である。1 is a schematic diagram showing an overall configuration of a control system 10 including a control device 1 according to this embodiment; FIG. 本実施の形態に従う制御装置1を構成する制御ユニット100のハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing a hardware configuration example of a control unit 100 that configures the control device 1 according to the present embodiment; FIG. 本実施の形態に従う制御装置1を構成するセキュリティユニット200のハードウェア構成例を示す模式図である。2 is a schematic diagram showing a hardware configuration example of a security unit 200 that constitutes control device 1 according to the present embodiment. FIG. 制御装置1に含まれる各デバイスが有する識別情報40の一例を示す図である。4 is a diagram showing an example of identification information 40 possessed by each device included in the control device 1. FIG. 制御プログラム140の実行可否の判断方法の流れを示す図である。FIG. 4 is a diagram showing the flow of a method for determining whether or not a control program 140 can be executed; 制御ユニット100およびセキュリティユニット200の機能構成の一例を示すブロック図である。2 is a block diagram showing an example of functional configurations of a control unit 100 and a security unit 200; FIG. 本実施の形態における、制御プログラム140の実行開始要求を受けたときの処理手順を示すシーケンス図である。FIG. 4 is a sequence diagram showing a processing procedure when receiving a request to start execution of control program 140 in the present embodiment; 分散型台帳の形式で保持される管理情報30の一例を示す図である。3 is a diagram showing an example of management information 30 held in the form of a distributed ledger; FIG. 新たなブロック50が生成される際に機能するセキュリティユニット200の機能構成を示す図である。3 is a diagram showing the functional configuration of a security unit 200 that functions when a new block 50 is generated; FIG. 変形例1における、制御プログラム140の実行開始要求を受けたときの処理手順を示すシーケンス図である。FIG. 12 is a sequence diagram showing a processing procedure when receiving a request to start execution of the control program 140 in Modification 1; 変形例2における、制御プログラム140の実行開始要求を受けたときの処理手順の別の例を示すシーケンス図である。FIG. 12 is a sequence diagram showing another example of a processing procedure when a request to start execution of the control program 140 is received in modification 2;

以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わせてもよい。 Hereinafter, each embodiment according to the present invention will be described with reference to the drawings. In the following description, identical parts and components are given identical reference numerals. Their names and functions are also the same. Therefore, detailed description of these will not be repeated. It should be noted that each embodiment and each modified example described below may be selectively combined as appropriate.

§1.適用例
本実施の形態にかかる制御システムの概略について説明する。図1は、実施の形態に係る制御装置1を適用した場面の一例を示す図である。図1に示されるように、制御装置1は、制御対象を制御するための制御プログラム140と、制御プログラム140を実行する制御エンジン142と、制御エンジン142での制御プログラム140の実行可否を管理するセキュリティエンジン230とを備える。
§1. APPLICATION EXAMPLE An outline of the control system according to the present embodiment will be described. FIG. 1 is a diagram showing an example of a scene in which a control device 1 according to an embodiment is applied. As shown in FIG. 1, the control device 1 manages a control program 140 for controlling a controlled object, a control engine 142 that executes the control program 140, and whether or not the control engine 142 can execute the control program 140. and a security engine 230 .

制御装置1は、1以上のデバイスを含む。制御プログラム140が実行されることで各デバイスが制御され、各デバイスが制御されることで、制御対象である製造設備などが制御される。 The control device 1 includes one or more devices. Each device is controlled by executing the control program 140, and by controlling each device, a manufacturing facility or the like, which is a controlled object, is controlled.

セキュリティエンジン230は、許可部232と、生成部234と、保持部236と、照合部238とを含む。 Security engine 230 includes a permitting portion 232 , a generating portion 234 , a holding portion 236 and a matching portion 238 .

許可部232は、制御エンジン142から制御プログラム140の開始要求を受けて、当該制御プログラム140の実行可否を判断する。 The permitting unit 232 receives a start request for the control program 140 from the control engine 142 and determines whether the control program 140 can be executed.

生成部234は、制御装置1を構成する1以上のデバイスの各々から取得された識別情報を用いて固有情報を生成する。生成部234は、1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて識別情報を選択する。固有情報は、このようにして取得された識別情報を用いて生成されるため、制御装置1の構成が変わることに応じて変化する。 The generation unit 234 generates unique information using identification information acquired from each of the one or more devices that configure the control device 1 . The generation unit 234 selects identification information for each of the one or more devices from first identification information for identifying the type of the device and second identification information for individually identifying the device, according to the security policy. Since the unique information is generated using the identification information thus acquired, it changes as the configuration of the control device 1 changes.

保持部236は、制御装置1について予め生成された固有情報20を含む管理情報30を保持する。保持部236は、固有情報20が不正に改竄されることを防止するため、所定条件を満たす場合にのみ管理情報30の更新を許可する。所定条件とは、たとえば予め設定されたアクセスIDおよびパスワードと入力情報とが一致するという条件である。 The holding unit 236 holds management information 30 including unique information 20 generated in advance for the control device 1 . In order to prevent the unique information 20 from being illegally falsified, the holding unit 236 permits updating of the management information 30 only when a predetermined condition is satisfied. The predetermined condition is, for example, a condition that the preset access ID and password match the input information.

照合部238は、照合の要求に従って生成部234によって生成された固有情報22と、管理情報30に含まれる固有情報20とを照合する。照合とは、一致するか否かを判定することを意味する。 The collation unit 238 collates the unique information 22 generated by the generation unit 234 according to the collation request with the unique information 20 included in the management information 30 . Matching means determining whether or not there is a match.

次に、図1に示すステップ1から順に、制御装置1において実行される制御プログラムの実行可否の管理方法について説明する。なお、図1および以下の説明において、ステップを単に「S」と記す。 Next, a method for managing whether or not a control program executed by the control device 1 can be executed will be described in order from step 1 shown in FIG. In addition, in FIG. 1 and the following description, a step is simply written as "S".

S1:生成部234は、予め、制御装置1の固有情報20を生成する。保持部236は、予め生成された固有情報20を含む管理情報30を保持する。 S1: The generator 234 generates unique information 20 of the control device 1 in advance. The holding unit 236 holds management information 30 including unique information 20 generated in advance.

S2:許可部232は、制御プログラム140の開始要求を受ける。なお、図1に示す例では、制御エンジン142が、開始要求を行うものとしているが、セキュリティエンジン230が開始要求を受け付ける受付部を備えていてもよい。 S2: The permitting unit 232 receives the request to start the control program 140 . In the example shown in FIG. 1, the control engine 142 issues the start request, but the security engine 230 may have a reception unit that receives the start request.

S3:許可部232は、制御プログラム140の開始要求に応じて、照合部238に照合の要求を行う。 S3: In response to the request to start the control program 140, the permission unit 232 requests the verification unit 238 to perform verification.

S4:照合部238は、照合の要求に応じて、生成部234に対して固有情報22の生成を要求する。 S4: The collation unit 238 requests the generation unit 234 to generate the unique information 22 in response to the collation request.

S5:生成部234は、生成の要求に応じて、制御装置1が備える1以上のデバイスから識別情報を取得し、取得した識別情報を用いて固有情報22を生成する。生成部234は、各デバイスについて、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて識別情報を選択する。なお、生成部234は、1以上のデバイスの全てについて第1の識別情報を選択してもよいし、1以上のデバイスの全てについて第2の識別情報を選択してもよい。あるいは、生成部234は、1以上のデバイスのうちの一部のデバイスについて第1の識別情報を選択し、残りのデバイスについて第2の識別情報を選択してもよい。セキュリティポリシーは、制御装置1に対して予め設定される。 S5: 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. The generation unit 234 selects identification information for each device from first identification information for identifying the type of the device and second identification information for individually identifying the device according to the security policy. Note that the generation unit 234 may select the first identification information for all of the one or more devices, or may select the second identification information for all of the one or more devices. Alternatively, the generator 234 may select the first identification information for some of the one or more devices and select the second identification information for the remaining devices. A security policy is preset for the control device 1 .

S6:照合部238は、管理情報30に含まれている、予め生成された固有情報20と、照合の要求を受けたタイミングで生成された固有情報22とを照合して照合結果を得る。 S6: 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 of receiving the collation request to obtain a collation result.

S7:照合部238は、得られた照合結果を許可部232に提供する。許可部232は、提供された照合結果に基づいて、制御プログラム140の実行可否を判定する。具体的には、許可部232は、照合結果が一致を示すことに応じて、制御プログラム140の実行を許可する。許可部232は、照合結果が不一致を示すことに応じて、制御プログラム140の実行を禁止する。 S7: The matching unit 238 provides the obtained matching result to the permitting unit 232 . The permitting unit 232 determines whether or not the control program 140 can be executed based on the collation result provided. Specifically, the permitting unit 232 permits the execution of the control program 140 in response to a matching result. The permitting unit 232 prohibits the execution of the control program 140 in response to the matching result indicating a mismatch.

S8:許可部232は、照合結果に基づいて判定した結果(許可または禁止)を、制御エンジン142に対して提供する。制御エンジン142は、許可部232の判定結果が「許可」である場合に限って、制御プログラム140を実行する。 S8: The permission unit 232 provides the control engine 142 with the 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 "permitted".

制御装置1によって管理された環境を実現するための制御プログラム140の開発は、制御装置1を利用する会社とは別の会社が行うこともある。このような場合に、制御プログラム140および制御プログラム140を利用できる環境が容易に模倣されてしまうと、制御プログラム140を開発する会社の知的財産を十分に保護することができない。 The control program 140 for realizing the environment managed by the control device 1 may be developed by a company other than the company using 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.

制御装置1を模倣する場合、制御プログラム140を実行するために、制御装置1のハードウェアおよびソフトウェアの双方がコピーされる。ソフトウェアがコピーされるということは、制御プログラム140だけでなく、制御エンジン142およびセキュリティエンジン230を動作させるためのシステムプログラムもコピーされる。さらに、ソフトウェアのコピーにより、セキュリティエンジン230によって保持されている管理情報30についてもコピーされる。 When mimicking the controller 1 , both the hardware and software of the controller 1 are copied to run the control program 140 . Copying the software means that not only the control program 140 but also the system programs for operating the control engine 142 and the security engine 230 are copied. Furthermore, copying the software also copies the management information 30 held by the security engine 230 .

一方、ハードウェアについては、制御装置1を構成する各デバイスに代わるデバイスを設置することにより、制御装置1が模倣される。制御装置1を模倣した別の制御装置では、制御装置1とは異なるデバイスから取得された識別情報を用いて固有情報22が生成される。そのため、固有情報22は、コピーされた管理情報30に含まれる固有情報20と不一致となり得る。特に、少なくとも1つのデバイスについて第2の識別情報を取得するようにセキュリティポリシーを設定することにより、固有情報22は、固有情報20と一致しない。あるいは、制御装置1を構成する少なくとも1つのデバイスについて、当該デバイスと同じ機能を有する別の機種のデバイスを用いて模倣した場合、当該デバイスについて第1の識別情報を取得したとしても、固有情報22は、固有情報20と一致しない。その結果、セキュリティエンジン230によって管理された環境下とは異なる環境下での制御プログラム140の起動を防ぐことができる。すなわち、制御プログラム140という知的財産を保護することができる。 On the other hand, as for hardware, the control device 1 is imitated by installing a device that replaces each device that constitutes the control device 1 . Another control device that imitates the control device 1 generates unique information 22 using identification information obtained from a device different from the control device 1 . Therefore, the unique information 22 may not match the unique information 20 included in the copied management information 30 . In particular, unique information 22 does not match unique information 20 by setting the security policy to obtain the second identification information for at least one device. Alternatively, if at least one device constituting the control device 1 is imitated using a device of a different model having the same function as the device, even if the first identification information is obtained for the device, the unique information 22 does not match the unique information 20. As a result, activation of the control program 140 under an environment different from the environment managed by the security engine 230 can be prevented. In other words, the intellectual property of the control program 140 can be protected.

なお、制御装置1を模倣した別の制御装置において、各デバイスの識別情報を改竄することにより、固有情報22が固有情報20と一致し得る。しかしながら、制御装置1を構成するデバイスの個数は数十となることもあり、このような場合に、数十のデバイスすべてについて、当該デバイスの識別情報を改竄する必要が生じる。そのため、制御プログラム140によって管理される制御装置1を模倣するには、多くの労力を要することとなる。 In another control device imitating the control device 1, the unique information 22 can match the unique information 20 by falsifying the identification information of each device. However, the number of devices constituting the control device 1 can be several tens, and in such a case, it becomes necessary to falsify the identification information of all the devices. Therefore, much effort is required to imitate the control device 1 managed by the control program 140 .

また、本実施の形態では、デバイスの種別を識別する第1の識別情報およびデバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて識別情報が選択される。たとえば、制御プログラム140の開発者は、故障や定期メンテナンスなどで交換が想定されるデバイスについて、第1の識別情報を選択することによりセキュリティ対策の優先度を低くしてもよい。これにより、開発者は、デバイス交換などの保守性と知的財産保護とのバランスをとることができる。 Further, in the present embodiment, identification information is selected from the first identification information for identifying the device type and the second identification information for individually identifying the device according to the security policy. For example, the developer of the control program 140 may lower the priority of security countermeasures by selecting the first identification information for a device that is expected to be replaced due to failure, regular maintenance, or the like. This allows developers to strike a balance between maintainability such as device replacement and intellectual property protection.

§2.具体例
<A.制御システム>
図2は、本実施の形態に係る制御装置1を含む制御システム10の全体構成を示す模式図である。図2を参照して、制御システム10は、1以上の制御装置1と、上位機器3とを備える。
§2. Specific example <A. Control system>
FIG. 2 is a schematic diagram showing the overall configuration of a control system 10 including the control device 1 according to this embodiment. Referring to FIG. 2 , control system 10 includes one or more control devices 1 and host device 3 .

制御装置1は、制御対象を制御する。制御対象は、生産工程を自動化するための種々の産業用機器を含み、製造装置や生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与える装置と、フィールドとの間で情報を遣り取りする入出力装置とを含む。なお、生産ライン全体を制御対象としてもよい。 The control device 1 controls a controlled object. Control objects include various industrial equipment for automating production processes, and equipment that exerts some physical action on manufacturing equipment, production lines, etc. (hereinafter also collectively referred to as "fields") and field input/output devices for transmitting information to and from Note that the entire production line may be controlled.

制御装置1は、情報系ネットワーク2を介して、上位機器3および他の制御装置1と通信可能に接続される。情報系ネットワーク2は、たとえば、EtherNet/IP(登録商標)または、ベンダやOS(Operating System)の種類などに依存することなくデータ交換を実現することができるOPC UA(Object Linking and Embedding for Process Control Unified Architecture)などの通信規格に従ったネットワークである。 The control device 1 is communicably connected to a host device 3 and other control devices 1 via an information system network 2 . The information system network 2 is, for example, EtherNet/IP (registered trademark) or OPC UA (Object Linking and Embedding for Process Control) that can realize data exchange without depending on the type of vendor or OS (Operating System). It is a network that complies with communication standards such as Unified Architecture).

制御装置1は、1以上のデバイスを含む。図2に示す例では、制御装置1は、制御ユニット100、セキュリティユニット200、I/O(Input/Output)ユニット300、通信カプラ400などから構成される。なお、以下では、制御装置1を構成する各ユニットおよび通信カプラを総じて「デバイス」とも称する。 The control device 1 includes one or more devices. In the example shown in FIG. 2, the control device 1 includes a control unit 100, a security unit 200, an I/O (Input/Output) unit 300, a communication coupler 400, and the like. In addition, below, each unit and communication coupler which comprise the control apparatus 1 are also collectively called a "device."

制御ユニット100は、制御装置1を構成する制御デバイスの一例であって、制御対象を制御するための制御プログラムを実行し、制御装置1において中心的な処理を実行する。 The control unit 100 is an example of a control device that configures the control device 1 , executes a control program for controlling a controlled object, and performs central processing in the control device 1 .

セキュリティユニット200は、制御装置1を構成するセキュリティデバイスの一例であって、制御ユニット100での制御プログラムの実行可否を管理する。制御プログラムの実行可否の管理方法は、後述する。 The security unit 200 is an example of a security device that configures the control device 1 and manages whether or not the control program can be executed in the control unit 100 . A method of managing whether or not the control program is executable will be described later.

制御ユニット100とセキュリティユニット200との間は、たとえば、任意のデータ伝送路(例えば、PCI ExpressあるいはEtherNet/IP(登録商標)など)を介して接続されている。 Control unit 100 and security unit 200 are connected, for example, via an arbitrary data transmission line (eg, PCI Express or EtherNet/IP (registered trademark)).

I/Oユニット300は、制御装置1を構成するデバイスの一例であって、一般的な入出力処理に関するユニットである。I/Oユニット300は、各種センサ、各種スイッチ、エンコーダなどを含むIOデバイスから検出値を収集する。 The I/O unit 300 is an example of a device that configures the control device 1, and is a unit related to general input/output processing. The I/O unit 300 collects detection values from IO devices including various sensors, various switches, encoders, and the like.

制御ユニット100とI/Oユニット300とは、内部バスを介して通信可能に接続されている。制御ユニット100は、I/Oユニット300により収集された検出値を用いて制御プログラムの演算を実行し、演算結果の値をI/Oユニット300に出力する。 The control unit 100 and the I/O unit 300 are communicably connected via an internal bus. The control unit 100 uses the detected values collected by the I/O unit 300 to execute the calculations of the control program and outputs the values of the calculation results to the I/O unit 300 .

通信カプラ400は、フィールドネットワーク4を介して制御ユニット100と通信可能に接続される。通信カプラ400は、フィールドネットワーク4でのデータ伝送にかかる処理を行う。通信カプラ400は、たとえば、内部バスを介して1または複数のI/Oユニット300と通信可能に接続される。通信カプラ400に接続された1または複数のI/Oユニット300の各々により収集された検出値は、フィールドネットワーク4を介して制御ユニット100に出力される。 Communication coupler 400 is communicably connected to control unit 100 via field network 4 . The communication coupler 400 performs processing related to data transmission on the field network 4 . Communication coupler 400 is communicatively connected to one or more I/O units 300 via an internal bus, for example. 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 .

フィールドネットワーク4としては、典型的には、各種の産業用イーサネット(登録商標)を用いることができる。産業用イーサネット(登録商標)としては、例えば、EtherCAT(登録商標)、Profinet IRT、MECHATROLINK(登録商標)-III、Powerlink、SERCOS(登録商標)-III、CIP Motionなどが知られており、これらのうちのいずれを採用してもよい。さらに、産業用イーサネット(登録商標)以外のフィールドネットワークを用いてもよい。例えば、モーション制御を行わない場合であれば、DeviceNet、CompoNet/IP(登録商標)などを用いてもよい。 As the field network 4, typically, various types of industrial Ethernet (registered trademark) can be used. Industrial Ethernet (registered trademark) includes, for example, EtherCAT (registered trademark), Profinet IRT, MECHATROLINK (registered trademark)-III, Powerlink, SERCOS (registered trademark)-III, and CIP Motion. You can use any one of them. Furthermore, a field network other than Industrial Ethernet (registered trademark) may be used. For example, if motion control is not performed, DeviceNet, CompoNet/IP (registered trademark), etc. may be used.

制御装置1を構成する各デバイスは、識別情報40を有する。典型的には、識別情報40は、SGTIN(Serialized Global Trade Item Number)のような個体識別コードである。 Each device that configures the control device 1 has identification information 40 . Typically, the identification information 40 is an individual identification code such as SGTIN (Serialized Global Trade Item Number).

なお、制御装置1を構成するデバイスは、図2に示したデバイスに限られない。制御装置1を構成するデバイスは、たとえば、電源を供給する電源ユニット、I/Oユニット300ではサポートしない機能を有する特殊ユニット、設備や機械などによって人の安全が脅かされることを防止するためのセーフティ機能を提供するセーフティユニットなどを含み得る。また、制御装置1を構成するデバイスは、たとえば、制御ユニット100または他のユニットでの制御演算によって得られる各種情報をオペレータへ提示するとともに、オペレータからの操作に従って、制御ユニット100または他のユニットに対して内部コマンドなどを生成するHMI(Human Machine Interface)を含み得る。 Note that the devices that configure the control device 1 are not limited to the devices shown in FIG. 2 . Devices that make up the control device 1 include, for example, a power supply unit that supplies power, a special unit that has functions not supported by the I/O unit 300, and a safety device that prevents human safety from being threatened by facilities and machinery. It may include a safety unit or the like that provides the functionality. In addition, the devices that make up the control device 1, for example, present various types of information obtained by control calculations in the control unit 100 or other units to the operator, and in accordance with operations from the operator, to the control unit 100 or other units. It may include an HMI (Human Machine Interface) for generating internal commands and the like.

上位機器3は、制御システム100内のサーバ、またはクラウドサーバ等のような外部サーバ、または制御装置1に比較して高い性能を備えたPLC、または産業用のコンピュータ(所謂IPC:Industrial Personal Computer)として構成される。 The host device 3 is a server in the control system 100, an external server such as a cloud server, a PLC with higher performance than the control device 1, or an industrial computer (so-called IPC: Industrial Personal Computer). configured as

<B.ハードウェア構成>
本実施の形態に従う制御装置1を構成する主なデバイスのハードウェア構成例について説明する。
<B. Hardware configuration>
A hardware configuration example of main devices constituting control device 1 according to the present embodiment will be described.

(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とを含む。
(b1. Control unit)
FIG. 3 is a schematic diagram showing a hardware configuration example of control unit 100 forming control device 1 according to the present embodiment. Referring to FIG. 3, control unit 100 includes, as main components, processor 102 such as a CPU (Central Processing Unit) or GPU (Graphical Processing Unit), chipset 104, main memory 106, and secondary memory. 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 .

プロセッサ102は、二次記憶装置108またはメモリカード115に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、制御対象を制御するための制御演算、および、後述するような、制御プログラムの実行開始要求にかかる処理を実現する。 The processor 102 reads various programs stored in the secondary storage device 108 or the memory card 115, develops them in the main storage device 106, and executes them, thereby performing control calculations for controlling the control target and It realizes the processing related to the execution start request of the control program.

主記憶装置106は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。二次記憶装置108は、例えば、HDD(Hard Disc Drive)またはSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。 The main memory device 106 is composed of a volatile memory device such as a DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory). The secondary storage device 108 is configured by, for example, a non-volatile storage device such as an HDD (Hard Disc Drive) or an SSD (Solid State Drive).

チップセット104は、プロセッサ102と各コンポーネントとの間のデータの遣り取りを仲介することで、制御ユニット100全体としての処理を実現する。 The chipset 104 mediates the exchange of data between the processor 102 and each component, thereby realizing the processing of the control unit 100 as a whole.

二次記憶装置108には、制御ユニット100の基本的な機能を実現するためのシステムプログラム1082に加えて、設備や機械などの制御対象に応じて作成される制御プログラム140と、制御ユニット100を識別するための識別情報40とが格納されている。 In the secondary storage device 108, in addition to the system program 1082 for realizing the basic functions of the control unit 100, the control program 140 created according to the control object such as equipment and machinery, and the control unit 100 are stored. Identification information 40 for identification is stored.

システムプログラム1082には、認証プログラム130が組み込まれている。認証プログラム130は、制御プログラム140を起動する際に実行されるプログラムであって、セキュリティユニット200に向けて、起動する制御プログラム140の実行の許可を要求するためのプログラムである。また、システムプログラム1082は、制御プログラム140を実行する制御エンジンとしての機能を提供する。 The system program 1082 incorporates the authentication program 130 . The authentication program 130 is a program that is executed when the control program 140 is activated, and is a program that requests the security unit 200 for permission to execute the control program 140 that is activated. The system program 1082 also functions as a control engine that executes the control program 140 .

制御プログラム140は、たとえば、基本的なアルゴリズムがプログラム開発会社によって作成された知的財産である。たとえば、ユーザは、制御装置1に応じてパラメータを設定することで、プログラム開発会社により提供された制御プログラム140を実行可能な環境を整える。 Control program 140 is, for example, intellectual property whose underlying algorithms are 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 parameters according to the control device 1 .

通信コントローラ110は、セキュリティユニット200との間のデータの遣り取りを担当する。通信コントローラ110としては、例えば、PCI Expressあるいはイーサネット(登録商標)などに対応する通信チップを採用できる。 The communication controller 110 is in charge of exchanging data with the security unit 200 . As the communication controller 110, for example, a communication chip compatible with PCI Express or Ethernet (registered trademark) can be adopted.

USBコントローラ112は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。任意の情報処理装置は、たとえば、制御プログラム140の作成または編集、デバッグ、各種パラメータの設定などの機能をユーザに提供するサポート装置などを含む。 The USB controller 112 is in charge of exchanging data with any 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.

メモリカードインターフェイス114は、記憶媒体の一例であるメモリカード115を着脱可能に構成される。メモリカードインターフェイス114は、メモリカード115に対して制御プログラム140や各種設定などのデータを書込み、あるいは、メモリカード115から制御プログラム140や各種設定などのデータを読出すことが可能になっている。 The memory card interface 114 is configured such that a memory card 115, which is an example of a storage medium, can be attached/detached. The memory card interface 114 can write data such as the control program 140 and various settings to the memory card 115 and read data such as the control program 140 and various settings from the memory card 115 .

フィールドネットワークコントローラ116は、フィールドネットワーク4を介した他の装置との間のデータの遣り取りを制御する。 Field network controller 116 controls data exchange with other devices via field network 4 .

内部バスコントローラ118は、内部バスを介した他の装置(I/Oユニット300など)との間のデータの遣り取りを制御する。内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。 The internal bus controller 118 controls data exchange with other devices (such as the I/O unit 300) via the internal bus. The internal bus may use a manufacturer-specific communication protocol, or may use a communication protocol that is the same as or conforms to any industrial network protocol.

情報系ネットワークコントローラ120は、情報系ネットワーク2を介した他の制御装置1との間のデータの遣り取りを制御する。 The information system network controller 120 controls exchange of data with other control devices 1 via the information system network 2 .

図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、制御ユニット100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。 FIG. 3 shows a configuration example in which necessary functions are provided by the processor 102 executing a program. Alternatively, it may be implemented using an FPGA, etc.). Alternatively, the main part of the control unit 100 may be implemented using hardware following 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 with different purposes in parallel, and necessary applications may be executed on each OS.

(b2.セキュリティユニット)
図4は、本実施の形態に従う制御装置1を構成するセキュリティユニット200のハードウェア構成例を示す模式図である。図4を参照して、セキュリティユニット200は、主たるコンポーネントとして、CPUやGPUなどのプロセッサ202と、チップセット204と、主記憶装置206と、二次記憶装置208と、通信コントローラ210と、USBコントローラ212と、メモリカードインターフェイス214と、情報系ネットワークコントローラ220とを含む。
(b2. security unit)
FIG. 4 is a schematic diagram showing a hardware configuration example of security unit 200 that configures control device 1 according to the present embodiment. 4, security unit 200 includes, as main components, processor 202 such as CPU or GPU, chipset 204, main memory device 206, secondary memory device 208, communication controller 210, and USB controller. 212 , a memory card interface 214 and an information system network controller 220 .

プロセッサ202は、二次記憶装置208またはメモリカード215に格納された各種プログラムを読み出して、主記憶装置206に展開して実行することで、制御ユニット100での制御プログラムの実行可否を管理する機能を実現する。主記憶装置206は、DRAMまたはSRAMなどの揮発性記憶装置などで構成される。二次記憶装置208は、例えば、HDDまたはSSDなどの不揮発性記憶装置などで構成される。 The processor 202 reads various programs stored in the secondary storage device 208 or the memory card 215, develops them in the main storage device 206, and executes them, thereby managing whether or not the control programs can be executed in the control unit 100. Realize The main memory device 206 is composed of a volatile memory 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 SSD.

チップセット204は、プロセッサ202と各コンポーネントとの間のデータの遣り取りを仲介することで、セキュリティユニット200全体としての処理を実現する。 The chipset 204 implements processing of the security unit 200 as a whole by mediating data exchange between the processor 202 and each component.

二次記憶装置208には、セキュリティユニット200の基本的な機能を実現するためのシステムプログラム2082に加えて、識別情報40および管理情報30が格納されている。 The secondary storage device 208 stores identification information 40 and management information 30 in addition to a system program 2082 for realizing the basic functions of the security unit 200 .

システムプログラム2082には、セキュリティプログラム240が組み込まれている。セキュリティプログラム240は、制御装置1において実行される制御プログラム140の実行可否を管理するためのプログラムである。すなわち、セキュリティプログラム240は、制御プログラム140の実行可否を管理するセキュリティエンジンとしての機能を提供する。 A 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 in 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.

管理情報30は、制御装置1を構成する1以上のデバイスから取得した識別情報40を用いて生成される固有情報を管理するための情報である。固有情報は、制御プログラム140の実行を許可するか否かを判定する際の基準となる情報として利用される。固有情報については、後述する。 The management information 30 is information for managing unique information generated using the identification information 40 acquired from one or more devices that configure the control device 1 . The unique information is used as reference information for determining whether or not to permit execution of the control program 140 . Specific information will be described later.

通信コントローラ210は、制御ユニット100との間のデータの遣り取りを担当する。通信コントローラ210としては、制御ユニット100に通信コントローラ210と同様に、例えば、PCI Expressあるいはイーサネット(登録商標)などに対応する通信チップを採用できる。 The communication controller 210 is in charge of exchanging data with the control unit 100 . As the communication controller 210, a communication chip compatible with PCI Express or Ethernet (registered trademark), for example, can be adopted in the control unit 100, similarly to the communication controller 210. FIG.

USBコントローラ212は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。任意の情報処理装置は、たとえば、セキュリティプログラム240の設定などの機能をユーザに提供するサポート装置などを含む。 The USB controller 212 is in charge of exchanging data with any information processing device via a USB connection. Any information processing device includes, for example, a support device that provides a user with functions such as setting the security program 240 .

メモリカードインターフェイス214は、記憶媒体の一例であるメモリカード215を着脱可能に構成される。メモリカードインターフェイス214は、メモリカード215に対してプログラムや各種設定などのデータを書込み、あるいは、メモリカード215からプログラムや各種設定などのデータを読出すことが可能になっている。 The memory card interface 214 is configured such that a memory card 215, which is an example of a storage medium, can be attached/detached. The memory card interface 214 can write data such as programs and various settings to the memory card 215 and read data such as programs and various settings from the memory card 215 .

情報系ネットワークコントローラ220は、情報系ネットワーク2を介した他の制御装置1との間のデータの遣り取りを制御する。情報系ネットワークコントローラ220は、イーサネット(登録商標)などの汎用的なネットワークプロトコルを採用してもよい。 The information system network controller 220 controls exchange of data with other control devices 1 via the information system network 2 . The information system network controller 220 may employ a general-purpose network protocol such as Ethernet (registered trademark).

図4には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、セキュリティユニット200の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。 FIG. 4 shows a configuration example in which necessary functions are provided by the processor 202 executing a program. Alternatively, it may be implemented using an FPGA, etc.). Alternatively, the main part of the security unit 200 may be implemented using hardware following 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 with different purposes in parallel, and necessary applications may be executed on each OS.

なお、図3および図4を参照して、制御装置1は、情報系ネットワーク2へ、制御ユニット100の情報系ネットワークコントローラ120を介して接続されていてもよく、また、セキュリティユニット200の情報系ネットワークコントローラ220を介して接続されていてもよい。本実施の形態において、制御装置1は、セキュリティユニット200の情報系ネットワークコントローラ220を介して接続されているものとして説明する。 3 and 4, the 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 network controller 220 . In this embodiment, it is assumed that the control device 1 is connected via the information system network controller 220 of the security unit 200 .

<C.識別情報>
図5は、制御装置1に含まれる各デバイスが有する識別情報40の一例を示す図である。図5には、SGTINである識別情報40が示される。SGTINは、流通システム標準化機関GS1によって標準化された電子タグに書き込むための識別コードの1つであり、商品用の個別識別コードである。識別情報40は、デバイスを個別に識別するため、第2の識別情報である。
<C. Identification information>
FIG. 5 is a diagram showing an example of identification information 40 possessed by each device included in the control device 1. As shown in FIG. FIG. 5 shows identification information 40, which is SGTIN. SGTIN is one of identification codes to be written in electronic tags standardized by the distribution system standardization organization GS1, and is an individual identification code for products. The identification information 40 is the second identification information because it uniquely identifies the device.

図5に示されるように、識別情報40は、デバイスの種別を識別する商品識別コードである識別情報42と、当該識別情報42によって識別される種別のデバイスの個体に対してユニークに割り当てられるシリアル番号44(第3の識別情報)との組み合わせである。識別情報42は、デバイスの種別を識別するため、第1の識別情報である。 As shown in FIG. 5, identification information 40 includes identification information 42, which is a product identification code that identifies the type of device, and a serial number that is uniquely assigned to each individual device of the type identified by the identification information 42. It is a combination with number 44 (third identification information). The identification information 42 is first identification information for identifying the type of device.

識別情報42は、流通システム標準化機関GS1によって標準化された商品識別コードGTIN(Global Trade Item Number)である。GTINは、インジケータと、事業者コードと、商品アイテムコードと、チェックデジットとによって構成される。 The identification information 42 is a product identification code GTIN (Global Trade Item Number) standardized by the distribution system standardization organization GS1. A GTIN is composed of an indicator, a business code, a merchandise item code, and a check digit.

<D.セキュリティポリシー>
制御プログラム140の開発者は、制御プログラム140に対するセキュリティポリシーを設定する。なお、セキュリティポリシーの設定は、制御プログラム140の開発者に限定されず、他の者によって実行されてもよい。セキュリティポリシーは、セキュリティプログラム240に予め設定される。
<D. Security Policy>
A developer of control program 140 sets a security policy for control program 140 . Note that security policy setting is not limited to the developer of the control program 140, and may be performed by another person. A security policy is preset in the security program 240 .

本実施の形態では、セキュリティポリシーは、以下のポリシー(A)~(C)の中から予め設定される。
ポリシー(A):全てのデバイスについて識別情報40(第2の識別情報)を選択する。
ポリシー(B):第1のグループに属する第1のデバイスについて識別情報42(第1の識別情報)を選択し、第1のグループよりもセキュリティ対策の優先度の高い第2のグループに属する第2のデバイスについて識別情報40(第2の識別情報)を選択する。
ポリシー(C):全てのデバイスについて識別情報42(第1の識別情報)を選択する。
In this embodiment, the security policy is set in advance from the following policies (A) to (C).
Policy (A): Select identification information 40 (second identification information) for all devices.
Policy (B): Select identification information 42 (first identification information) for a first device belonging to a first group, and select a second group belonging to a second group having a higher priority for security measures than the first group. The identification information 40 (second identification information) is selected for the second device.
Policy (C): Select identification information 42 (first identification information) for all devices.

たとえば、開発者は、制御プログラム140が模倣される可能性が高く、かつ、制御プログラム140のセキュリティレベルを高めたい場合、ポリシー(A)を設定する。開発者は、制御プログラム140が模倣される可能性が低い場合、あるいは、制御プログラム140の知的財産としての価値が高くない場合、ポリシー(B)またはポリシー(C)を設定する。 For example, the developer sets policy (A) when there is a high possibility that the control program 140 will be imitated and the developer wants to increase the security level of the control program 140 . The developer sets policy (B) or policy (C) when the control program 140 is unlikely to be imitated, or when the value of the control program 140 as intellectual property is not high.

ポリシー(B)を設定する場合、開発者は、第1のグループに属するデバイスの商品識別コードGTIN(識別情報42)と、第2のグループに属するデバイスの商品識別コードGTIN(識別情報42)とを予め設定する。 When setting policy (B), the developer sets 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.

<E.制御プログラムの実行可否の判断方法の概略>
図6は、制御プログラム140の実行可否の判断方法の流れを示す図である。なお、図6に示す例では、図面を簡略にするため、制御装置1を構成する制御ユニット100およびセキュリティユニット200以外のユニット(I/Oユニット300、通信カプラ400など)の記載を省略している。
<E. Outline of Method for Determining Whether Control Program is Executable>
FIG. 6 is a diagram showing the flow of a method for determining whether the control program 140 can be executed. In addition, in the example shown in FIG. 6, in order to simplify the drawing, description of units (I/O unit 300, communication coupler 400, etc.) other than the control unit 100 and the security unit 200 constituting the control device 1 is omitted. there is

制御ユニット100は、まず、セキュリティユニット200に向けて制御プログラム140の実行可否判定を要求する(図中の(1))。 First, the control unit 100 requests the security unit 200 to determine whether the control program 140 can be executed ((1) in the figure).

制御ユニット100からの判定要求を受けて、セキュリティユニット200は、制御装置1を構成する1以上のデバイスから識別情報40の収集を行う(図中の(2))。 Upon receiving the determination request from the control unit 100, the security unit 200 collects the identification information 40 from one or more devices constituting the control device 1 ((2) in the figure).

セキュリティユニット200は、予め設定されたセキュリティポリシーに従って、各デバイスの識別情報40(SGTIN)および識別情報40に含まれる識別情報42(GTIN)のうちの一方を選択する(図中の(3))。上記のポリシー(A)が設定されている場合、セキュリティユニット200は、全てのデバイスについて、識別情報40を選択する。上記のポリシー(B)が設定されている場合、セキュリティユニット200は、第1のグループに設定されている商品識別コードGTINに対応するデバイスについて識別情報42を選択する。さらに、セキュリティユニット200は、第2のグループに設定されている商品識別コードGTINに対応するデバイスについて識別情報40を選択する。上記のポリシー(C)が設定されている場合、セキュリティユニット200は、全てのデバイスについて、識別情報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). . When the above policy (A) is set, the security unit 200 selects identification information 40 for all devices. When the above policy (B) is set, the security unit 200 selects the identification information 42 for the device corresponding to the product identification code GTIN set in the first group. Furthermore, the security unit 200 selects the identification information 40 for the device corresponding to the product identification code GTIN set in the second group. When the above policy (C) is set, the security unit 200 selects identification information 42 for all devices.

セキュリティユニット200は、各デバイスについて選択された識別情報(識別情報40または識別情報42)に基づいて、固有情報22としてシステムハッシュ値を生成する(図中の(4))。システムハッシュ値は、制御装置1を構成するデバイスのうちセキュリティユニット200を除く他のデバイスの識別情報40を引数とし、公知のハッシュ関数を利用することで得られる。 The security unit 200 generates a system hash value as the 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 is obtained by using a well-known hash function with the identification information 40 of the devices other than the security unit 200 among the devices constituting the control device 1 as an argument.

セキュリティユニット200は、識別情報40を用いて生成された固有情報22(システムハッシュ値)と管理情報30によって管理されている固有情報20とを照合し、一致するか否かを判定する(図中の(5))。 The security unit 200 collates the unique information 22 (system hash value) generated using the identification information 40 with the unique information 20 managed by the management information 30, and determines whether or not they match. (5)).

図中の(5)において、新たに生成された固有情報22と、管理情報30によって管理されている固有情報20とを照合し、一致する場合、制御装置1は、正規に管理された装置であることが保証される。一方、一致しない場合、制御装置1は、管理情報30によって管理されていない制御装置である可能性がある。 In (5) in the figure, 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 properly 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 .

セキュリティユニット200は、(5)の処理で得られた照合結果に基づいて、(1)で要求された制御プログラム140の実行可否判定を行う(図中の(6))。セキュリティユニット200は、照合結果が「一致」を示すことに応じて、制御プログラム140の実行を許可する。 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 of (5) ((6) in the figure). The security unit 200 permits the execution of the control program 140 in response to the verification result indicating "match".

セキュリティユニット200は、制御ユニット100に向けて制御プログラム140の実行可否を示す判定結果を通知する(図中の(7))。 The security unit 200 notifies the control unit 100 of the determination result indicating whether or not the control program 140 can be executed ((7) in the figure).

<F.機能構成>
図7は、制御ユニット100およびセキュリティユニット200の機能構成の一例を示すブロック図である。図7において、破線の矢印は、指示に関する流れを示す。実線の矢印は、情報の流れを示す。
<F. Functional configuration>
FIG. 7 is a block diagram showing an example of functional configurations of the control unit 100 and the security unit 200. As shown in FIG. In FIG. 7, dashed arrows indicate the flow of instructions. Solid arrows indicate information flow.

図7に示されるように、制御ユニット100は、制御プログラム実行部144と、認証部132とを含む。これらの各機能は、制御ユニット100のプロセッサ102がシステムプログラム1082を実行することで実現する。 As shown in FIG. 7, control unit 100 includes control program execution section 144 and authentication section 132 . Each of these functions is realized by processor 102 of control unit 100 executing system program 1082 .

制御プログラム実行部144は、制御プログラム140を実行するために機能する。制御プログラム実行部144は、制御プログラム140の実行開始要求を受けて、認証部132に対して、制御プログラム140の認証を要求する。認証とは、制御プログラム140の実行環境が、制御装置1が保持する管理情報30によって管理されている環境であるか否かを認証することであって、制御プログラム140を実行してよい環境であるかを認証することである。 The control program execution unit 144 functions to execute the control program 140 . Upon receiving the request to start executing the control program 140 , the control program execution unit 144 requests the authentication unit 132 to authenticate the control program 140 . 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 is an environment in which the control program 140 may be executed. It is to authenticate that there is

認証部132は、判定要求部134と、識別情報送信部136と、識別情報収集部138とを含む。制御プログラム実行部144から認証の要求を受けると、判定要求部134は、セキュリティユニット200の許可部232に対して、制御プログラム140の実行可否判定を要求する。 Authentication unit 132 includes determination request unit 134 , identification information transmission unit 136 , and identification information collection unit 138 . Upon receiving an 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 the control program 140 can be executed.

識別情報送信部136は、識別情報収集部138が収集した制御装置1を構成する各デバイスの識別情報40をセキュリティユニット200に送信する。 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 .

識別情報収集部138は、セキュリティユニット200の生成部234からの要求を受けて、制御装置1を構成する各デバイスの識別情報40を収集する。識別情報収集部138は、制御プログラム140の実行可否を判定するときに加えて、新たな固有情報(システムハッシュ値)を管理情報30に登録するときにも、セキュリティユニット200から識別情報40の収集を要求される。なお、本実施の形態においては、識別情報収集部138は、制御装置1を構成するデバイスのうち、セキュリティユニット200を除くデバイスの各々から識別情報40を収集する。なお、固有情報であるシステムハッシュ値の生成に用いられる識別情報40に、セキュリティユニット200の識別情報40を含めてもよい。 The identification information collection unit 138 receives a request from the generation unit 234 of the security unit 200 and collects the identification information 40 of each device that configures the control device 1 . The identification information collection unit 138 collects the identification information 40 from the security unit 200 not only when determining whether the control program 140 can be executed but also when registering new unique information (system hash value) in the management information 30. is requested. In the present embodiment, identification information collection unit 138 collects identification information 40 from each of the devices constituting control device 1 excluding security unit 200 . Note that 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 unique information.

認証部132は、制御プログラム実行部144から制御プログラム140の認証が要求された後、セキュリティユニット200の許可部232から制御プログラム140の実行可否の判定結果を受ける。認証部132は、セキュリティユニット200から受けた判定結果に従った処理をする。認証部132は、実行を許可できる旨の判定結果を得た場合、制御プログラム実行部144に向けて、制御プログラム140の実行を開始するように通知する。一方、認証部132は、実行が許可できない旨の判定結果を得た場合、制御プログラム実行部144に向けて、制御プログラム140の実行を禁止するよう指示する。 After receiving a request for authentication of the control program 140 from the control program execution unit 144 , the authentication unit 132 receives the determination result as to 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 a determination result indicating that execution can be permitted, the authentication unit 132 notifies the control program execution unit 144 to start executing the control program 140 . On the other hand, when the authentication unit 132 obtains a determination result indicating 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 .

セキュリティユニット200は、許可部232と、生成部234と、保持部236と、照合部238とを含む。これらの各機能は、セキュリティユニット200のプロセッサ202がセキュリティプログラム240を実行することで実現する。 Security unit 200 includes a permitting portion 232 , a generating portion 234 , a holding portion 236 and a matching portion 238 . Each of these functions is realized by executing the security program 240 by the processor 202 of the security unit 200 .

許可部232は、判定部2322と照合要求部2324とを含む。判定部2322は、判定部2322が含まれるセキュリティユニット200の照合部238および他のセキュリティユニット200の照合部238から得られる照合結果に基づいて、制御プログラム140の実行を許可するか否かを判定し、判定結果を制御ユニット100の認証部132に通知する。照合要求部2324は、照合部238に対して、固有情報の照合を要求する。 Permission unit 232 includes determination unit 2322 and matching request unit 2324 . Determination unit 2322 determines whether or not execution of control program 140 is permitted based on the verification results obtained from verification unit 238 of security unit 200 including determination unit 2322 and verification unit 238 of another security unit 200. and notifies the authentication unit 132 of the control unit 100 of the determination result. The collation request unit 2324 requests the collation unit 238 to collate the unique information.

生成部234は、固有情報であるシステムハッシュ値を生成する。生成部234は、収集要求部2342とシステムハッシュ値演算部2344とを含む。 The generator 234 generates a system hash value, which is unique information. Generation unit 234 includes collection request unit 2342 and system hash value calculation unit 2344 .

収集要求部2342は、照合部238から、または、保持部236からシステムハッシュ値の生成を要求されたときに機能する。照合部238は、照合を開始するときにシステムハッシュ値の生成を要求する。保持部236は、たとえば、制御装置1が正規に変更された場合など、制御装置1を構成するデバイスが変更されて、変更後の制御装置1の固有情報を管理情報30に新たに登録するときにシステムハッシュ値の生成を要求する。収集要求部2342は、制御ユニット100の識別情報収集部138に対して、識別情報40の収集を要求する。 The collection requesting unit 2342 functions when requested by the matching unit 238 or the holding unit 236 to generate a system hash value. The verification unit 238 requests generation of a system hash value when starting verification. The holding unit 236 newly registers the unique information of the changed control device 1 in the management information 30 when the devices constituting the control device 1 are changed, for example, when the control device 1 is officially changed. to generate a system hash value. The collection request section 2342 requests the identification information collection section 138 of the control unit 100 to collect the identification information 40 .

システムハッシュ値演算部2344は、識別情報送信部136から送られた各デバイスの識別情報40を用いてシステムハッシュ値を生成する。システムハッシュ値演算部2344は、典型的には、公知のハッシュ関数に利用されるアルゴリズムを利用してシステムハッシュ値を生成する。 The system hash value calculator 2344 generates a system hash value using the identification information 40 of each device sent from the identification information transmitter 136 . The system hash value calculator 2344 typically generates a system hash value using an algorithm used for known hash functions.

システムハッシュ値演算部2344は、予め設定されているセキュリティポリシーに従って、識別情報40(SGTIN)および識別情報40の一部である識別情報42(GTIN)の中から、システムハッシュ値の生成に用いる識別情報を選択する。システムハッシュ値演算部2344は、各デバイスについて選択した識別情報(識別情報40または識別情報42)を用いて、固有情報としてシステムハッシュ値を生成する。 The system hash value calculation unit 2344 selects the identification information 40 (SGTIN) and the identification information 42 (GTIN) that is a part of the identification information 40 according to a preset security policy. Select information. The system hash value calculator 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.

システムハッシュ値演算部2344は、照合部238からシステムハッシュ値の生成が要求されている場合には、照合部238に生成したシステムハッシュ値を送る。また、システムハッシュ値演算部2344は、保持部236からシステムハッシュ値の生成が要求されている場合には、保持部236に生成したシステムハッシュ値を送る。 The system hash value calculation unit 2344 sends the generated system hash value to the verification unit 238 when the generation of the system hash value is requested by the verification unit 238 . 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.

保持部236は、保持部236からの要求に応じて生成された固有情報20(システムハッシュ値)を含む管理情報30を保持する。保持部236は、登録部2362を含む。 The holding unit 236 holds management information 30 including unique information 20 (system hash value) generated in response to a request from the holding unit 236 . Holding unit 236 includes registration unit 2362 .

登録部2362は、制御装置1を構成するデバイスが変更され、変更後の制御装置1の固有情報20を新たに管理情報30内に登録し、当該固有情報20の管理を開始するときに機能する。登録部2362は、予め設定されたアクセスIDおよびパスワードと入力情報とが一致するという条件が満たされたことに応じて、処理を開始する。 The registration unit 2362 functions when a 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 management of the unique information 20 is started. . The registration unit 2362 starts processing when the condition that the preset access ID and password match the input information is satisfied.

登録部2362は、生成部234に向けて固有情報20の生成を要求する。登録部2362は、生成部234が生成した固有情報20を管理情報30の一部として登録する。 The registration unit 2362 requests the generation unit 234 to generate unique information 20 . The registration unit 2362 registers the unique information 20 generated by the generation unit 234 as part of the management information 30 .

保持部236は、照合部238からの要求に応じて、管理情報30に含まれる固有情報22を照合部238に送信する。 The holding unit 236 transmits the unique information 22 included in the management information 30 to the matching unit 238 in response to a request from the matching unit 238 .

照合部238は、照合要求部2324の要求を受けて、生成部234に対して、固有情報22の生成を要求する。また、照合部238は、照合要求部2324の要求を受けて、保持部236に対して、管理情報30に含まれる固有情報20の送信を要求する。照合部238は、システムハッシュ値演算部2344から送られた固有情報22と、保持部236から送られた固有情報20とを照合し、照合した結果を判定部2322に送る。 The collation unit 238 receives the request from the collation request unit 2324 and requests the generation unit 234 to generate the unique information 22 . Also, upon receiving the request from the matching requesting unit 2324 , the matching unit 238 requests the holding unit 236 to transmit the unique information 20 included in the management information 30 . The collation unit 238 collates the unique information 22 sent from the system hash value calculation unit 2344 and the unique information 20 sent from the holding unit 236 and sends the collation result to the determination unit 2322 .

<G.シーケンス図>
図8は、本実施の形態における、制御プログラム140の実行開始要求を受けたときの処理手順を示すシーケンス図である。なお、以下では、シーケンスを単に「SQ」と記載する。
<G. Sequence diagram>
FIG. 8 is a sequence diagram showing a processing procedure when a request to start execution of control program 140 is received in this embodiment. In addition, below, a sequence is simply described as "SQ."

SQ102において、制御ユニット100は、制御プログラムの開始要求をセキュリティユニット200に向けて通知する。 In SQ102, the control unit 100 notifies the security unit 200 of a control program start request.

SQ104において、セキュリティユニット200は、識別情報40の収集を制御ユニット100に向けて要求する。 At SQ104, the security unit 200 requests the control unit 100 to collect the identification information 40. FIG.

SQ106において、制御ユニット100は、制御装置1を構成する各デバイスの識別情報40をセキュリティユニット200に向けて送る。 At SQ 106 , the control unit 100 sends the identification information 40 of each device that constitutes the control device 1 to the security unit 200 .

SQ108において、セキュリティユニット200は、セキュリティポリシーに従って、各デバイスについて識別情報40(SGTIN)および識別情報40の一部である識別情報42(GTIN)のうちの1つの識別情報を選択する。 At SQ108, the security unit 200 selects one identity among the identity 40 (SGTIN) and the identity 42 (GTIN) that is part of the identity 40 for each device according to the security policy.

SQ110において、セキュリティユニット200は、各デバイスについて選択された識別情報を用いて固有情報22(システムハッシュ値)を生成する。 At SQ110, the security unit 200 generates unique information 22 (system hash value) using the identification information selected for each device.

SQ112において、セキュリティユニット200は、生成された固有情報22と、管理情報30内の固有情報20(システムハッシュ値)とを照合して照合結果を得る。 In SQ112, the security unit 200 compares the generated unique information 22 with the unique information 20 (system hash value) in the management information 30 and obtains a matching result.

SQ114において、セキュリティユニット200は、SQ112によって得られる照合結果に基づいて、制御プログラムの実行の可否を判定する。具体的には、セキュリティユニット200は、照合結果が「一致」を示すことに応じて、制御プログラムの実行を許可する。一方、セキュリティユニット200は、照合結果が「不一致」を示すことに応じて、制御プログラムの実行を禁止する。 In SQ114, the security unit 200 determines whether or not the control program can be executed based on the verification result obtained in SQ112. Specifically, the security unit 200 permits execution of the control program when the collation result indicates "match". On the other hand, the security unit 200 prohibits execution of the control program in response to the collation result indicating "mismatch".

S116において、セキュリティユニット200は、制御ユニット100に向けて判定結果を通知する。 In S116, the security unit 200 notifies the control unit 100 of the determination result.

<H.変形例>
(h1.変形例1)
セキュリティエンジン230の保持部236は、他の装置との間で、分散型台帳の形式で管理情報30を保持してもよい。たとえば、管理情報30は、上位機器3との間で、分散型台帳の形式で保持される。この場合、管理情報30は、公知の分散型台帳技術を利用して制御装置1および上位機器3によって管理および共有される。あるいは、管理情報30は、他の制御装置1との間で、分散型台帳の形式で保持されてもよい。この場合、管理情報30は、公知の分散型台帳技術を利用して複数の制御装置1によって管理および共有される。あるいは、管理情報30は、クラウド上において、分散型台帳の形式で保持されてもよい。管理情報30は、分散型台帳の形式で保持されるため、改竄されにくくなる。
<H. Variation>
(h1. Modification 1)
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. For example, the management information 30 is held in the form of a distributed ledger with the host device 3 . In this case, the management information 30 is managed and shared by the control device 1 and the host device 3 using known distributed ledger technology. Alternatively, the management information 30 may be held in the form of a distributed ledger with other control devices 1 . In this case, the management information 30 is managed and shared by multiple control devices 1 using known distributed ledger technology. Alternatively, 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 less likely to be falsified.

図9は、分散型台帳の形式で保持される管理情報30の一例を示す図である。図9に示されるように、管理情報30は、ひと繋ぎの複数のブロック50で構成される。各ブロック50は、あるタイミングにおける制御装置1の構成から得られる固有情報20(システムハッシュ値)を少なくとも含む。ブロック50は、制御装置1を構成するデバイスに変更が生じた場合に生成される。各ブロック50内の情報は更新されることがなく、新たなブロック50は、最新のブロック50に関連して生成される。 FIG. 9 is a diagram showing an example of management information 30 held in the form of a distributed ledger. As shown in FIG. 9, the management information 30 is composed of a series of blocks 50 . Each block 50 includes at least unique information 20 (system hash value) obtained from the configuration of the control device 1 at certain timing. A block 50 is generated when a change occurs in the devices that make up the control device 1 . The information in each block 50 is never updated and new blocks 50 are generated relative to the latest block 50 .

具体的には、各ブロック50は、ブロックハッシュ値52と、システム構成情報54と、ナンス56とを含む。システム構成情報54は、セキュリティユニット200の識別情報40と、当該セキュリティユニット200を含む制御装置1の固有情報20(システムハッシュ値)とを含む。 Specifically, each block 50 includes a block hash value 52 , system configuration information 54 and a nonce 56 . The system configuration information 54 includes identification information 40 of the security unit 200 and unique information 20 (system hash value) of the control device 1 including the security unit 200 .

ブロックハッシュ値52は、前ブロックの情報を示すユニークな情報である。ブロックハッシュ値52は、たとえば、前ブロックの情報を引数とし、公知のハッシュ関数に従って得られた戻り値である。 The block hash value 52 is unique information indicating information of the previous block. The block hash value 52 is, for example, a return value obtained according to a known hash function with information on the previous block as an argument.

図9には、ブロック50-1から順にブロック50-nまでが管理情報30に含まれている状況で、制御装置1のデバイス構成に変更が生じ、新たなブロック50-n+1が管理情報30に追加されたときの管理情報30が示される。ブロック50-n+1は、ブロックハッシュ値52-nを含む。ブロックハッシュ値52-nは、ブロック50-nの情報を引数とし、公知のハッシュ関数に従って得られた戻り値である。 In FIG. 9, the management information 30 includes blocks 50-1 to 50-n in order. The management information 30 when added is shown. Block 50-n+1 contains block hash value 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.

ナンス56は、ブロック50を新たに生成する際に生成される数値であって、ブロック50が生成される度に生成される数値である。ナンス56は、ブロック50ごとにユニークな値となる。 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 .

図10は、新たなブロック50が生成される際に機能するセキュリティユニット200の機能構成を示す図である。なお、図7を参照して説明した機能については、再度の説明を省略する。また、図10には、ブロック50-nまで格納されており、制御装置1を構成するデバイスが変更されたことに基づいて、新たにブロック50-n+1が格納されるときのデータの流れが示されている。また、図10に示す例では、管理情報30は、上位機器3との間で分散型台帳の形式で保持される。 FIG. 10 is a diagram showing the functional configuration of the security unit 200 that functions when a new block 50 is generated. It should be noted that the functions described with reference to FIG. 7 will not be described again. Further, FIG. 10 shows the flow of data when block 50-n+1 is newly stored based on the fact that the devices up to block 50-n are changed, and the device constituting the control device 1 is changed. It is In addition, 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 .

上述のように、生成部234の収集要求部2342は、保持部236からの固有情報20(システムハッシュ値)の生成要求を受けて、制御ユニット100に対して識別情報40の収集を要求する。システムハッシュ値演算部2344は、制御ユニット100から送られた、制御装置1を構成する各デバイスの識別情報40に基づいて、固有情報20を生成する。 As described above, the collection requesting section 2342 of the generating section 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 section 236 . The system hash value calculation unit 2344 generates unique information 20 based on the identification information 40 of each device constituting the control device 1 sent from the control unit 100 .

保持部236の登録部2362は、配布部236Aと、マイニング部236Bと、ブロックハッシュ値演算部236Cとを含む。システムハッシュ値演算部2344は、生成した固有情報20を配布部236Aに送る。 Registration unit 2362 of holding unit 236 includes distribution unit 236A, mining unit 236B, and block hash value calculation unit 236C. The system hash value calculator 2344 sends the generated unique information 20 to the distributor 236A.

上位機器3は,マイニング部236Dと、ブロックハッシュ値演算部236Eと、管理情報30とを備える。 The host device 3 includes a mining unit 236D, a block hash value computing unit 236E, and management information 30.

配布部236Aは、固有情報20と、セキュリティユニット200の識別情報40とからシステム構成情報54を生成し、マイニング部236Bと上位機器3とに配布する。 The distribution unit 236A generates system configuration information 54 from the unique information 20 and the identification information 40 of the security unit 200, and distributes it to the mining unit 236B and the host device 3. FIG.

登録部2362のマイニング部236Bは、上位機器3のマイニング部236Dと協働してブロック50-n+1を生成する。 The mining unit 236B of the registration unit 2362 cooperates with the mining unit 236D of the host device 3 to generate block 50-n+1.

登録部2362のブロックハッシュ値演算部236Cは、管理情報30に最後に登録されたブロック50からブロックハッシュ値52を生成する。図8に示す例では、最後に登録されたブロック50は、ブロック50-nであるから、ブロック50-nに基づいてブロックハッシュ値52-nが生成される。同様に、上位機器3のブロックハッシュ値演算部236Eも、管理情報30に最後に登録されたブロック50からブロックハッシュ値52を生成する。 A block hash value calculation unit 236</b>C of the registration unit 2362 generates a block hash value 52 from the last block 50 registered in the management information 30 . In the example shown in FIG. 8, the last registered block 50 is block 50-n, so block hash value 52-n is generated based on block 50-n. Similarly, the block hash value calculation unit 236E of the host device 3 also generates the block hash value 52 from the last block 50 registered in the management information 30. FIG.

登録部2362のマイニング部236Bは、システム構成情報54およびブロックハッシュ値52-nに基づいて、生成するブロック50から得られる情報が所定の条件を満たすようにナンス56を設定してブロック50を生成する。なお、このように、ナンス56を設定して所定の条件を満たすブロック50を生成する処理は、マイニングと呼ばれる。上位機器3のマイニング部236Dもマイニングを行う。マイニング部236B,236Dのうち、最も早くに所定の条件を満たすナンス56を見つけたマイニング部が生成したブロック50が、制御装置1および上位機器3の各々の管理情報30に格納される。 Based on the system configuration information 54 and the block hash value 52-n, the mining unit 236B of the registration unit 2362 sets the nonce 56 so that the information obtained from the block 50 to be generated satisfies a predetermined condition, and generates the block 50. do. The process of setting the nonce 56 and generating the block 50 that satisfies a predetermined condition 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 that satisfies the predetermined condition earliest among the mining units 236B and 236D is stored in the management information 30 of each of the control device 1 and the host device 3 .

すなわち、システム構成情報54を生成した主体と、ブロック50を生成した主体とは、異なる場合がある。 That is, the entity that generated the system configuration information 54 and the entity that generated the block 50 may be different.

このように、ブロック50は、制御装置1および上位機器3の各々の管理情報30に格納される。すなわち、制御装置1および上位機器3の各々の管理情報30は、改ざんされない限り、共通している。 Thus, the block 50 is stored in the management information 30 of each of the control device 1 and the host device 3. FIG. That is, the management information 30 of each of the control device 1 and the host device 3 is common as long as it is not falsified.

管理情報30に含まれる各ブロック50は、前のブロック50に基づいて得られるブロックハッシュ値52を含む。すなわち、一つのブロック50を改ざんした場合に、連鎖的に他のブロック50も改ざんする必要が生じることとなり、管理情報30の改竄には、多くの労力を要する。すなわち、管理情報30は、改竄困難な情報であるといえる。このような改竄困難な管理情報30に含まれる固有情報20を照合対象とすることにより、制御プログラム140の不正な複製利用を抑制できる。 Each block 50 included in management information 30 includes a block hash value 52 derived from the previous block 50 . That is, when one block 50 is tampered with, it becomes necessary to tamper with the other blocks 50 in a chain reaction. That is, it can be said that the management information 30 is information that is difficult to falsify. By using the unique information 20 included in the management information 30 that is difficult to falsify as a collation target, it is possible to suppress illegal duplicate use of the control program 140 .

なお、一のブロック50を生成する方法は、図9および図10を参照して説明した方法に限られない。一のブロック50を生成する方法は、任意に設計されるものであってもよい。 The method for generating one block 50 is not limited to the method described with reference to FIGS. 9 and 10. FIG. The method of generating one block 50 may be arbitrarily designed.

たとえば、制御装置1のセキュリティレベルに応じて、ブロック50の生成方法は選択されてもよい。たとえば、制御装置1のセキュリティレベルが高い場合、ブロック50を生成する過程のセキュリティレベル(透明性、厳格性)を下げることができる。一方、制御装置1のセキュリティレベルが低い場合、ブロック50を生成する過程のセキュリティレベル(透明性、厳格性)を上げる必要がある。 For example, the method of generating block 50 may be selected according to the security level of control device 1 . For example, if the security level of the control device 1 is high, the security level (transparency, strictness) of the process of generating the block 50 can be lowered. On the other hand, if the security level of the control device 1 is low, it is necessary to raise the security level (transparency, strictness) of the process of generating the block 50 .

具体的には、プライベート型またはコンソーシアム型のブロックチェーン技術を利用して分散型台帳の形式で管理情報30が保持されている場合、合意形成のハードルを下げ、合意形成に要する時間、すなわち、一のブロック50を生成して管理情報30に格納するまでに要する時間を短くできる。一方、パブリック型のブロックチェーン技術を利用して分散型台帳の形式で管理情報30が保持されている場合、合意形成のハードルを上げる必要がある。 Specifically, when the management information 30 is held in the form of a distributed ledger using private or consortium blockchain technology, the hurdles for consensus building are lowered and the time required for consensus building, that is, one , and storing it in the management information 30 can be shortened. On the other hand, when the management information 30 is held in the form of a distributed ledger using public blockchain technology, it is necessary to raise the hurdles for consensus building.

図11は、変形例1における、制御プログラム140の実行開始要求を受けたときの処理手順を示すシーケンス図である。なお、図11において、図8と共通するSQ番号は、共通の処理であるものとする。以下、図8と異なる処理についてのみ説明する。すなわち、SQ102~SQ112,SQ116の処理は、図8と共通しており、追加されたSQ120~SQ126について説明する。 FIG. 11 is a sequence diagram showing a processing procedure when receiving a request to start execution of the control program 140 in Modification 1. As shown in FIG. In addition, in FIG. 11, the SQ number common to FIG. 8 shall be a common process. Only processing different from that in FIG. 8 will be described below. That is, the processes of SQ102 to SQ112 and SQ116 are common to those in FIG. 8, and the added SQ120 to SQ126 will be explained.

具体的には、SQ112のあとのSQ120において、セキュリティユニット200は、上位機器3に向けて、SQ110で生成した固有情報22(システムハッシュ値)を送信する。 Specifically, in SQ120 after SQ112, the security unit 200 transmits the unique information 22 (system hash value) generated in SQ110 to the higher-level device 3 .

SQ122において、上位機器3は、管理情報30内の最新のブロック50に含まれる固有情報20と固有情報22とを照合して照合結果を得る。 In SQ122, the host device 3 compares the unique information 20 and the unique information 22 included in the latest block 50 in the management information 30 and obtains a matching result.

SQ124において、上位機器3は、SQ122で得られた照合結果をセキュリティユニット200に向けて送信する。 In SQ124, the host device 3 transmits the collation result obtained in SQ122 to the security unit 200. FIG.

SQ126において、セキュリティユニット200は、SQ112の照合結果とSQ124で得られた照合結果とに基づいて、制御プログラムの実行の可否を判定する。具体的には、セキュリティユニット200は、2つの照合結果のいずれも「一致」を示すことに応じて、制御プログラムの実行を許可する。一方、セキュリティユニット200は、2つの照合結果の少なくとも一方が「不一致」を示すことに応じて、制御プログラムの実行を禁止する。 In SQ126, the security unit 200 determines whether or not the control program can be executed based on the verification result of SQ112 and the verification result obtained in SQ124. Specifically, the security unit 200 permits execution of the control program in response to both of the two verification results indicating "match". On the other hand, the security unit 200 prohibits execution of the control program in response to at least one of the two verification results indicating "mismatch".

たとえば、制御装置1を不正に模倣することにより別の制御装置が生成された場合に、当該別の制御装置が保持する管理情報30が改竄され、当該別の制御装置の固有情報20が管理情報30内に登録されたものとする。この場合に、当該別の制御装置のセキュリティプログラムは、自装置内の管理情報30だけでなく、上位機器3の管理情報30との間でも照合を行う。そのため、上位機器3の管理情報30についても改竄しなければ制御プログラムの実行が許可されないため、セキュリティレベルを上げることができる。 For example, when another control device is generated by illegally imitating the control device 1, the management information 30 held by the other control device is falsified, and the unique information 20 of the another control device is changed to the management information. It shall be registered within 30. In this case, the security program of the other control device checks not only the management information 30 within its own device, but also the management information 30 of the host device 3 . Therefore, unless the management information 30 of the host device 3 is also falsified, execution of the control program is not permitted, so the security level can be raised.

(h2.変形例2)
変形例2は、変形例1と同様に、管理情報30が他の装置(たとえば上位機器3)との間で分散型台帳の形式で保持される例であり、制御プログラム140の実行開始要求を受けたときの処理手順の点で異なる。
(h2. Modification 2)
Similar to Modification 1, Modification 2 is an example in which management information 30 is held in the form of a distributed ledger between other devices (for example, host device 3). It differs in the processing procedure when it is received.

図12は、変形例2における、制御プログラム140の実行開始要求を受けたときの処理手順の別の例を示すシーケンス図である。図12において、図11と共通するSQ番号は、共通の処理であるものとする。図12に示されるように、変形例2では、SQ112が省略され、SQ126の代わりにSQ128が実行される。 FIG. 12 is a sequence diagram showing another example of the processing procedure when a request to start execution of the control program 140 is received in Modification 2. As shown in FIG. In FIG. 12, SQ numbers common to those in FIG. 11 are common processes. As shown in FIG. 12, in modification 2, SQ112 is omitted and SQ128 is executed instead of SQ126.

SQ128では、セキュリティユニット200は、SQ124で得られた照合結果に基づいて、制御プログラムの実行の可否を判定する。具体的には、セキュリティユニット200は、照合結果が「一致」を示すことに応じて、制御プログラムの実行を許可する。一方、セキュリティユニット200は、照合結果が「不一致」を示すことに応じて、制御プログラムの実行を禁止する。 At SQ128, the security unit 200 determines whether or not the control program can be executed based on the verification result obtained at SQ124. Specifically, the security unit 200 permits execution of the control program when the collation result indicates "match". On the other hand, the security unit 200 prohibits execution of the control program in response to the collation result indicating "mismatch".

このように、変形例2によれば、照合結果は、制御装置1が保持している管理情報30内の固有情報20と照合することで得られるものではなく、他の装置(たとえば上位機器3)が保持している管理情報30内の固有情報20と照合することにより得られる。 Thus, according to Modification 2, 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 by another device (for example, the host device 3). ) is obtained by collating with the unique information 20 in the management information 30 held by .

制御装置1を不正に模倣することにより別の制御装置を設置する場合に、当該別の制御装置内のデータを改竄するよりも、上位機器3内のデータを改竄することの方が困難である。そのため、変形例2によれば、上位機器3の管理情報30についても改竄しなければ制御プログラムの実行が許可されないため、セキュリティレベルを上げることができる。 When another control device is installed by illegally imitating the control device 1, it is more difficult to falsify the data in the host device 3 than to falsify the data in the other control device. . Therefore, according to Modification 2, execution of the control program is not permitted unless the management information 30 of the host device 3 is also falsified, so the security level can be raised.

(h3.その他の変形例)
上記実施の形態において、制御プログラムを実行するプロセッサ102と、セキュリティプログラムを実行するプロセッサ202とは、互いに異なるデバイスが備えているものとした。なお、一のデバイスが、セキュリティプログラムを実行するプロセッサ202と、制御プログラムを実行するプロセッサ102とを備えていてもよい。
(h3. Other Modifications)
In the above embodiment, the processor 102 that executes the control program and the processor 202 that executes the security program are provided in different devices. Note that one device may include the processor 202 executing the security program and the processor 102 executing the control program.

§3.付記
以上のように、上記の実施の形態および変形例による開示は以下のような開示を含む。
§3. Additional Notes As described above, the disclosure according to the above embodiments and modifications includes the following disclosures.

<構成1>
1以上のデバイスを含む制御装置(1)であって、
制御プログラム(140)を実行する制御エンジン(142)と、
前記制御エンジンでの前記制御プログラムの実行可否を管理するセキュリティエンジン(230)とを備え、
前記セキュリティエンジンは、
前記1以上のデバイスの各々から取得された識別情報を用いて固有情報を生成する生成手段(234)と、
予め生成された第1の固有情報を保持する保持手段(236)と、
照合の要求に従って前記生成手段により生成される第2の固有情報と、前記第1の固有情報とを照合する照合手段(238)と、
前記制御プログラムの実行開始要求に応答して、前記照合の要求を行い、前記照合手段から得られる照合結果に基づいて、前記制御プログラムの実行可否を判定する許可手段(232)とを含み、
前記生成手段は、前記1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報(42)および当該デバイスを個別に識別する第2の識別情報(42)からセキュリティポリシーに応じて前記識別情報を選択する、制御装置。
<Configuration 1>
A controller (1) comprising one or more devices,
a control engine (142) that executes a control program (140);
a security engine (230) that manages whether or not the control program can be executed by the control engine;
The security engine is
generating means (234) for generating unique information using identification information obtained from each of said one or more devices;
holding means (236) for holding pre-generated first unique information;
collation means (238) for collating the first unique information with the second unique information generated by the generating means according to a collation request;
a permitting means (232) for making the verification request in response to the control program execution start request and determining whether or not the control program can be executed based on the verification result obtained from the verification means;
The generating means, for each of the one or more devices, according to a security policy from first identification information (42) for identifying the type of the device and second identification information (42) for individually identifying the device. to select the identification information.

<構成2>
前記セキュリティポリシーは、第1のポリシー、第2のポリシーおよび第3のポリシーの中から予め設定され、
前記第1のポリシーは、前記1以上のデバイスの各々について前記第1の識別情報を選択するポリシーであり、
前記第2のポリシーは、前記1以上のデバイスのうち第1のグループに属する第1のデバイスについて前記第1の識別情報を選択し、前記1以上のデバイスのうち、前記第1のグループよりもセキュリティ対策の優先度の高い第2のグループに属する第2のデバイスについて前記第2の識別情報を選択するポリシーであり、
前記第3のポリシーは、前記1以上のデバイスの各々について前記第2の識別情報を選択するポリシーである、構成1に記載の制御装置。
<Configuration 2>
the security policy is preset from among a first policy, a second policy and a 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 a first device belonging to a first group among the one or more devices, and selects the first identification information among the one or more devices than the first group. A policy for selecting the second identification information for a second device belonging to a second group having a high security measure priority;
The controller of configuration 1, wherein the third policy is a policy that selects the second identification information for each of the one or more devices.

<構成3>
前記1以上のデバイスの各々は、前記第2の識別情報を保持し、
前記第2の識別情報は、前記第1の識別情報と、前記第1の識別情報によって識別される種別のデバイスの個体に対してユニークに割り当てられる第3の識別情報(44)との組み合わせであり、
前記生成手段は、前記第2の識別情報から前記第1の識別情報を取得する、請求項1または2に記載の制御装置。
<Configuration 3>
each of the one or more devices holds the second identification information;
The second identification information is a combination of the first identification information and third identification information (44) uniquely assigned to an individual device of the type identified by the first identification information. can be,
3. The control device according to claim 1, wherein said generating means acquires said first identification information from said second identification information.

<構成4>
前記1以上のデバイスは、前記制御エンジンを有する制御デバイス(100)と、前記セキュリティエンジンを有するセキュリティデバイス(200)とを含む、構成1から3のいずれかに記載の制御装置。
<Configuration 4>
4. The controller of any of the configurations 1-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.

<構成5>
前記保持手段は、外部装置(3)との間で、分散型台帳の形式で前記第1の固有情報を保持する、構成1から4のいずれかに記載の制御装置。
<Configuration 5>
5. The control device according to any one of configurations 1 to 4, wherein said holding means holds said first unique information in the form of a distributed ledger with an external device (3).

<構成6>
前記照合手段は、前記第2の固有情報と前記外部装置が保持する前記第1の固有情報とをさらに照合する、構成5に記載の制御装置。
<Configuration 6>
The control device according to configuration 5, wherein the collation means further collates the second unique information and the first unique information held by the external device.

<構成7>
1以上のデバイスを含む制御装置(1)において実行される管理方法であって、
予め生成された第1の固有情報を保持するステップ(S1)と、
制御プログラム(140)の実行開始要求に応答して、前記1以上のデバイスの各々から取得された識別情報を用いて第2の固有情報を生成するステップ(S5,SQ108,SQ110)と、
前記第1の固有情報と前記第2の固有情報とを照合するステップ(S6,SQ112)と、
照合結果に基づいて、前記制御プログラムの実行可否を判定するステップ(S8,SQ114)とを備え、
前記生成するステップは、前記1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて前記識別情報を選択するステップ(SQ108)を含む、管理方法。
<Configuration 7>
A management method performed in a controller (1) comprising one or more devices, comprising:
a step of holding pre-generated first unique information (S1);
generating second unique information using identification information obtained from each of the one or more devices in response to a request to start execution of the control program (140) (S5, SQ108, SQ110);
a step of collating the first unique information and the second unique information (S6, SQ112);
A step (S8, SQ114) of determining whether the control program can be executed based on the collation result,
In the step of generating, for each of the one or more devices, the identification information is generated from first identification information identifying a type of the device and second identification information individually identifying the device according to a security policy. A management method including a step of selecting (SQ108).

<構成8>
1以上のデバイスを含む制御装置(1)において実行される管理方法をコンピュータに実行させるセキュリティプログラム(230)であって、
前記管理方法は、
予め生成された第1の固有情報を保持するステップ(S1)と、
制御プログラム(140)の実行開始要求に応答して、前記1以上のデバイスの各々から取得された識別情報を用いて第2の固有情報を生成するステップ(S5,SQ108,SQ110)と、
前記第1の固有情報と前記第2の固有情報とを照合するステップ(S6,SQ112)と、
照合結果に基づいて、前記制御プログラムの実行可否を判定するステップ(S8,SQ114)とを備え、
前記生成するステップは、前記1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて前記識別情報を選択するステップ(SQ108)を含む、セキュリティプログラム。
<Configuration 8>
A security program (230) for causing a computer to execute a management method executed in a controller (1) comprising one or more devices,
The management method is
a step of holding pre-generated first unique information (S1);
generating second unique information using identification information obtained from each of the one or more devices in response to a request to start execution of the control program (140) (S5, SQ108, SQ110);
a step of collating the first unique information and the second unique information (S6, SQ112);
A step (S8, SQ114) of determining whether the control program can be executed based on the collation result,
In the step of generating, for each of the one or more devices, the identification information is generated from first identification information identifying a type of the device and second identification information individually identifying the device according to a security policy. A security program including a selecting step (SQ108).

今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組み合わせても、実施することが意図される。 It should be considered that the embodiments disclosed this time are illustrative in all respects and not restrictive. The scope of the present invention is indicated by the scope of the claims rather than the above description, and is intended to include all modifications within the scope and meaning equivalent to the scope of the claims. Also, the inventions described in the embodiments and modifications are intended to be implemented independently or in combination as much as possible.

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 登録部。 1 control device, 2 information system network, 3 host device, 4 field network, 10 control system, 20 unique information (first unique information), 22 unique information (second unique information, 30 management information, 40 identification information ( second identification information), 42 identification information (first identification information), 44 serial number (third identification information), 50 block, 52 block hash value, 54 system configuration information, 56 nonce, 100 control unit, 102 , 202 processor, 104, 204 chipset, 106, 206 main storage device, 108, 208 secondary storage device, 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 determination 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, 236B, 236D mining unit, 236C, 236E block hash value calculation unit, 238 verification unit, 240 security program, 300 I/O unit, 400 communication coupler, 1082, 2082 system program, 2322 determination unit, 2324 collation request unit, 2342 collection request unit, 2344 system hash value calculation unit, 2362 registration unit.

Claims (8)

1以上のデバイスを含む制御装置であって、
制御プログラムを実行する制御エンジンと、
前記制御エンジンでの前記制御プログラムの実行可否を管理するセキュリティエンジンとを備え、
前記セキュリティエンジンは、
前記1以上のデバイスの各々から取得された識別情報を用いて固有情報を生成する生成手段と、
予め生成された第1の固有情報を保持する保持手段と、
照合の要求に従って前記生成手段により生成される第2の固有情報と、前記第1の固有情報とを照合する照合手段と、
前記制御プログラムの実行開始要求に応答して、前記照合の要求を行い、前記照合手段から得られる照合結果に基づいて、前記制御プログラムの実行可否を判定する許可手段とを含み、
前記生成手段は、前記1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて前記識別情報を選択する、制御装置。
A controller comprising one or more devices,
a control engine that executes a control program;
a security engine that manages whether or not the control program can be executed by the control engine;
The security engine is
generating means for generating unique information using identification information obtained from each of the one or more devices;
holding means for holding pre-generated first unique information;
collation means for collating the first unique information with the second unique information generated by the generating means according to a collation request;
a permitting means for requesting the collation in response to a request to start execution of the control program, and determining whether or not the control program can be executed based on the collation result obtained from the collation means;
The generating means selects, for each of the one or more devices, the identification information from first identification information identifying a type of the device and second identification information individually identifying the device according to a security policy. control device.
前記セキュリティポリシーは、第1のポリシー、第2のポリシーおよび第3のポリシーの中から予め設定され、
前記第1のポリシーは、前記1以上のデバイスの各々について前記第1の識別情報を選択するポリシーであり、
前記第2のポリシーは、前記1以上のデバイスのうち第1のグループに属する第1のデバイスについて前記第1の識別情報を選択し、前記1以上のデバイスのうち、前記第1のグループよりもセキュリティ対策の優先度の高い第2のグループに属する第2のデバイスについて前記第2の識別情報を選択するポリシーであり、
前記第3のポリシーは、前記1以上のデバイスの各々について前記第2の識別情報を選択するポリシーである、請求項1に記載の制御装置。
the security policy is preset from among a first policy, a second policy and a 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 a first device belonging to a first group among the one or more devices, and selects the first identification information among the one or more devices than the first group. A policy for selecting the second identification information for a second device belonging to a second group having a high security measure priority;
The control device according to claim 1, wherein said third policy is a policy for selecting said second identification information for each of said one or more devices.
前記1以上のデバイスの各々は、前記第2の識別情報を保持し、
前記第2の識別情報は、前記第1の識別情報と、前記第1の識別情報によって識別される種別のデバイスの個体に対してユニークに割り当てられる第3の識別情報との組み合わせであり、
前記生成手段は、前記第2の識別情報から前記第1の識別情報を取得する、請求項1または2に記載の制御装置。
each of the one or more devices holds the second identification information;
the second identification information is a combination of the first identification information and third identification information uniquely assigned to an individual device of the type identified by the first identification information;
3. The control device according to claim 1, wherein said generating means acquires said first identification information from said second identification information.
前記1以上のデバイスは、前記制御エンジンを有する制御デバイスと、前記セキュリティエンジンを有するセキュリティデバイスとを含む、請求項1から3のいずれか1項に記載の制御装置。 4. A controller according to any preceding claim, wherein the one or more devices comprise a control device with the control engine and a security device with the security engine. 前記保持手段は、外部装置との間で、分散型台帳の形式で前記第1の固有情報を保持する、請求項1から4のいずれか1項に記載の制御装置。 The control device according to any one of claims 1 to 4, wherein said holding means holds said first unique information in the form of a distributed ledger with an external device. 前記照合手段は、前記第2の固有情報と前記外部装置が保持する前記第1の固有情報とをさらに照合する、請求項5に記載の制御装置。 6. The control device according to claim 5, wherein said collating means further collates said second unique information with said first unique information held by said external device. 1以上のデバイスを含む制御装置において実行される管理方法であって、
予め生成された第1の固有情報を保持するステップと、
制御プログラムの実行開始要求に応答して、前記1以上のデバイスの各々から取得された識別情報を用いて第2の固有情報を生成するステップと、
前記第1の固有情報と前記第2の固有情報とを照合するステップと、
照合結果に基づいて、前記制御プログラムの実行可否を判定するステップとを備え、
前記生成するステップは、前記1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて前記識別情報を選択するステップを含む、管理方法。
A management method executed in a control device including one or more devices,
holding pre-generated first unique information;
generating second unique information using identification information obtained from each of the one or more devices in response to a control program execution start request;
matching the first unique information with the second unique information;
and determining whether or not the control program can be executed based on the collation result,
In the step of generating, for each of the one or more devices, the identification information is generated from first identification information identifying a type of the device and second identification information individually identifying the device according to a security policy. Management method, including steps to select.
1以上のデバイスを含む制御装置において実行される管理方法をコンピュータに実行させるセキュリティプログラムであって、
前記管理方法は、
予め生成された第1の固有情報を保持するステップと、
制御プログラムの実行開始要求に応答して、前記1以上のデバイスの各々から取得された識別情報を用いて第2の固有情報を生成するステップと、
前記第1の固有情報と前記第2の固有情報とを照合するステップと、
照合結果に基づいて、前記制御プログラムの実行可否を判定するステップとを備え、
前記生成するステップは、前記1以上のデバイスの各々について、当該デバイスの種別を識別する第1の識別情報および当該デバイスを個別に識別する第2の識別情報からセキュリティポリシーに応じて前記識別情報を選択するステップを含む、セキュリティプログラム。
A security program that causes a computer to execute a management method that is executed in a control device that includes one or more devices,
The management method is
holding pre-generated first unique information;
generating second unique information using identification information obtained from each of the one or more devices in response to a control program execution start request;
matching the first unique information with the second unique information;
and determining whether or not the control program can be executed based on the collation result,
In the step of generating, for each of the one or more devices, the identification information is generated from first identification information identifying a type of the device and second identification information individually identifying the device according to a security policy. Security program, including steps to select.
JP2021002808A 2021-01-12 2021-01-12 Control apparatus, management method and security program Pending JP2022108027A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021002808A JP2022108027A (en) 2021-01-12 2021-01-12 Control apparatus, management method and security program
PCT/JP2021/009558 WO2022153566A1 (en) 2021-01-12 2021-03-10 Control device, management method, and security program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021002808A JP2022108027A (en) 2021-01-12 2021-01-12 Control apparatus, management method and security program

Publications (1)

Publication Number Publication Date
JP2022108027A true JP2022108027A (en) 2022-07-25

Family

ID=82447086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021002808A Pending JP2022108027A (en) 2021-01-12 2021-01-12 Control apparatus, management method and security program

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023149402A1 (en) 2022-02-03 2023-08-10 東ソー株式会社 Water-soluble chelating polymer and method for producing same

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106462694A (en) * 2014-05-29 2017-02-22 三菱电机株式会社 Device control system, device controller, device control method, and program
JP7238632B2 (en) * 2019-06-26 2023-03-14 オムロン株式会社 Control system, control device and management method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023149402A1 (en) 2022-02-03 2023-08-10 東ソー株式会社 Water-soluble chelating polymer and method for producing same

Also Published As

Publication number Publication date
WO2022153566A1 (en) 2022-07-21

Similar Documents

Publication Publication Date Title
ES2869395T3 (en) Procedure and control system to control and/or supervise equipment
ES2869256T3 (en) Procedure and control system for the control and / or supervision of devices
CN109074579B (en) Method and system for protecting computer software using distributed hash table and blockchain
JP7162677B2 (en) Computer-implemented method for supplying data, especially for conformance tracking
CN105518687A (en) Secure data storage
US20190080059A1 (en) Information processing apparatus, information processing method, and computer program product
CN111492355B (en) Method and control system for controlling and/or monitoring a device
US11412047B2 (en) Method and control system for controlling and/or monitoring devices
JP7238632B2 (en) Control system, control device and management method
CN104252377B (en) Virtualized host ID keys are shared
US10108786B2 (en) Process and device for encoding of source files for secure delivery of source code
CN111602372B (en) Method and control system for controlling and/or monitoring a device
ES2937007T3 (en) Method to secure an automated system
WO2022153566A1 (en) Control device, management method, and security program
US20220043434A1 (en) Method for Managing a Production Process
US11231958B2 (en) Method and control system for controlling and/or monitoring devices
WO2020195348A1 (en) Control system, security device, and method
JP5797666B2 (en) Safe execution of computational resources
US20220114276A1 (en) Controlling a data network with respect to a use of a distributed database
US9361435B1 (en) Multi-tier digital supply chain management
JP7412835B1 (en) Arithmetic processing device, arithmetic processing system, arithmetic processing method, and arithmetic processing program
WO2020235172A1 (en) Control device, data disabling program and control system
JP7388707B2 (en) Information processing device, information processing system, information processing method, and program
EP3961529A1 (en) Method, device and system for managing asset data in an industrial plant
US20230185968A1 (en) Method and Secure Element for Detecting a Trusted Electronic Assembly

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240816