![控制系统、控制装置以及管理方法与流程](http://img.xjishu.com/img/zl/2022/1/14/zir6gq9oa.jpg)
1.本发明涉及具有构成为能够相互通信的多个控制装置的控制系统、该控制系统所包含的控制装置以及在该控制系统中执行的管理方法。
背景技术:2.在各种制造现场,导入有plc(programmable logic controller:可编程逻辑控制器)等控制装置。这样的控制装置是一种计算机,执行根据制造装置或制造设备等而设计的控制程序。
3.近年来,产生如下问题:从已经有制造现场中的运转实际结果的控制装置中抽取控制程序,在另一制造现场内制作新的控制装置,并利用所抽取的控制程序。
4.日本特开2008-065678号公报(专利文献1)公开了一种应对这样的问题的方法。具体而言,专利文献1公开了如下方法:plc判断对控制程序进行加密后的程序是否是机器设备固有的程序,如果是机器设备固有的程序,则根据该程序对控制程序进行解密,执行控制程序来控制机器设备。
5.现有技术文献
6.专利文献
7.专利文献1:日本特开2008-065678号公报
技术实现要素:8.发明所要解决的课题
9.在专利文献1所示的方法中,在如用于执行控制程序的固有的机器设备那样机器设备的信息被篡改的情况下,控制程序的利用被许可。即,如果篡改将控制程序作为对象的机器设备的信息,则能够利用控制程序,比较容易实现控制程序的利用。即,在专利文献1所示的方法中,在实现控制程序这样的知识产权的保护方面存在改善的余地。
10.本发明的一个目的在于实现控制程序这样的知识产权的保护。
11.用于解决课题的手段
12.根据本公开的一例,提供一种控制系统,其具有构成为能够相互通信的多个控制装置,其中,控制装置分别包含:控制引擎,其执行用于对控制对象进行控制的控制程序;以及安全防护引擎,其管理控制引擎中的控制程序的能否执行。安全防护引擎分别包含:生成单元,其生成表示构成自身控制装置的1个或多个设备的结构的固有信息;保持单元,其与其他控制装置之间,以分布式总账的形式保持共享信息,所述共享信息至少包含按每个控制装置预先生成的第1固有信息;对照单元,其将由自身控制装置按照对照的请求而生成的第2固有信息、与各安全防护引擎所保持的共享信息中的至少一个共享信息所包含的自身控制装置的第1固有信息进行对照;以及许可单元,其响应于控制程序的执行开始请求,对2个以上的对照单元分别进行对照的请求,并基于从2个以上的对照单元分别得到的对照结果,决定控制程序的能否执行。
13.根据该结构,安全防护引擎将预先生成的第1固有信息包含在以分布式总账的形式保持的难以篡改的共享信息中进行管理。各安全防护引擎以被管理的第1固有信息为基准,对照响应于控制程序的执行开始请求而生成的第2固有信息,根据其对照结果判定控制程序的能否执行。因此,通过安全防护引擎,能够防止在与通过保持共享信息而被管理的环境下不同的环境下的控制程序的启动。另外,安全防护引擎基于分别来自2个以上的对照单元的对照结果来判定控制程序的能否执行,因此,除非不仅模仿用于执行控制程序的执行环境而且模仿相邻的控制装置的结构,否则无法执行控制程序。其结果,能够实现控制程序这样的知识产权的保护。
14.在上述公开中,保持单元也可以将使第1固有信息、与能够确定生成了第1固有信息的安全防护引擎的标识符对应起来的信息作为一个事务来处理。
15.根据本公开,将包含第1固有信息的信息设为一个事务,因此在对照单元进行对照时,能够容易地参照第1固有信息。
16.在上述公开中,对照单元也可以将由自身控制装置生成的第2固有信息、与自身控制装置的安全防护引擎所保持的共享信息进行对照。
17.在对照单元间产生第2固有信息的交换的情况下,有可能对第2固有信息进行篡改而许可控制程序的执行,但根据本公开,对照单元无需对其他控制装置的对照单元发送第2固有信息,因此可提高对固有信息的安全防护。
18.在上述公开中,也可以是,对照单元将由自身控制装置生成的第2固有信息、与2个以上的安全防护引擎分别保持的各共享信息进行对照,并基于与各共享信息进行对照后的结果,得到对照结果。
19.根据本公开,由于将多个共享信息作为对照目标,因此能够获得可靠性高的对照结果。
20.在上述公开中,控制装置也可以由多个设备构成。多个设备可以包含具有控制引擎的控制设备、和具有安全防护引擎的安全防护设备。
21.根据本公开,通过利用互不相同的设备来实现需要满足针对控制程序的变更自由度的控制引擎、和在安全防护方面不优选有变更的自由度的安全防护引擎,能够进行与各引擎的特性相应的设备设计。
22.在上述公开中,安全防护设备包含实现安全防护设备的基本功能的系统程序。安全防护引擎也可以是通过系统程序的执行而实现的功能。
23.根据本公开,当复制安全防护设备的功能时,也一并复制安全防护程序的功能。其结果,所保持的共享信息也一并被复制,能够防止在执行安全防护程序的环境以外执行控制程序。
24.在上述公开中,许可单元也可以响应于控制程序的执行开始请求,在对自身控制装置的对照单元进行对照的请求而得到的对照结果满足预先确定的条件的情况下,对其他安全防护引擎所包含的对照单元进行对照的请求。
25.根据本公开,无需朝向其他控制装置过度地进行对照请求,因此作为控制系统的整体,处理被简化。
26.根据本公开的另一例,提供一种与其他控制装置之间构成控制系统的控制装置。控制装置包含:控制引擎,其执行用于对控制对象进行控制的控制程序;以及安全防护引
擎,其管理控制引擎中的控制程序的能否执行。安全防护引擎包含:生成单元,其生成表示构成自身控制装置的1个或多个设备的结构的固有信息;保持单元,其与其他控制装置之间,以分布式总账的形式保持共享信息,所述共享信息至少包含按每个控制装置预先生成的第1固有信息;对照单元,其将由自身控制装置按照对照的请求而生成的第2固有信息、与各安全防护引擎所保持的共享信息中的至少一个共享信息所包含的自身控制装置的第1固有信息进行对照;以及许可单元,其响应于控制程序的执行开始请求,对2个以上的对照单元分别进行对照的请求,并基于从2个以上的对照单元分别得到的对照结果,决定控制程序的能否执行。
27.根据本公开,安全防护引擎将预先生成的第1固有信息包含在以分布式总账的形式保持的难以篡改的共享信息中来进行管理。安全防护引擎以被管理的第1固有信息为基准,对照响应于控制程序的执行开始请求而生成的第2固有信息,根据其对照结果判定控制程序的能否执行。因此,通过安全防护引擎,能够防止在与通过保持共享信息而被管理的环境下不同的环境下的控制程序的启动。另外,安全防护引擎基于分别来自2个以上的对照单元的对照结果来判定控制程序的能否执行,因此,除非不仅模仿用于执行控制程序的执行环境而且模仿相邻的控制装置的结构,否则无法执行控制程序。其结果,能够实现控制程序这样的知识产权的保护。
28.根据本公开的又一例,提供一种管理方法,其在具有构成为能够相互通信的多个控制装置的控制系统中执行。该管理方法包含以下步骤:在多个控制装置中,分别生成表示构成自身控制装置的1个或多个设备的结构的第1固有信息;在多个控制装置之间,以分布式总账的形式保持共享信息,所述共享信息至少包含由各控制装置生成的第1固有信息;在接收到用于对控制对象进行控制的控制程序的执行开始请求的控制装置中,向保持共享信息的2个以上的控制装置进行对照的请求;在接收到对照的请求的各个控制装置中,生成表示构成自身控制装置的1个或多个设备的结构的第2固有信息;在接收到对照的请求的各个控制装置中,将由自身控制装置生成的第2固有信息、与各控制装置所保持的共享信息中的至少一个共享信息所包含的自身控制装置的第1固有信息进行对照;以及在从接收到对照的请求的各个控制装置得到的对照结果满足规定的条件的情况下,许可控制程序的执行。
29.根据该结构,将预先生成的第1固有信息包含在以分布式总账的形式保持的难以篡改的共享信息中进行管理。响应于控制程序的执行开始请求而生成的第2固有信息以被管理的第1固有信息为基准进行对照。控制程序的能否执行根据对照结果来判定。因此,能够防止在与通过保持共享信息而被管理的环境下不同的环境下的控制程序的启动。另外,基于分别来自2个以上的对照单元的对照结果来判定控制程序的能否执行,因此,除非不仅模仿用于执行控制程序的执行环境而且模仿相邻的控制装置的结构,否则无法执行控制程序。其结果,能够实现控制程序这样的知识产权的保护。
30.发明的效果
31.根据本发明,能够实现控制程序这样的知识产权的保护。
附图说明
32.图1是表示应用了一个实施方式的控制系统1x的场景的一例的图。
33.图2是表示控制系统1的整体结构的示意图。
34.图3是表示构成本实施方式的控制装置10的控制单元100的硬件结构例的示意图。
35.图4是表示构成本实施方式的控制装置10的安全防护单元200的硬件结构例的示意图。
36.图5是表示控制程序140的能否执行的判断方法流程的图。
37.图6是表示控制单元100和安全防护单元200的功能结构的一例的框图。
38.图7是表示共享信息30的图。
39.图8是表示在生成新的块40时发挥功能的安全防护单元200的功能结构的图。
40.图9是表示接收到控制程序的执行开始请求时的处理过程的序列图。
41.图10是表示许可执行控制程序的状况的一例的图。
42.图11是表示不许可执行控制程序的状况的一例的图。
43.图12是表示接收到控制程序的执行开始请求时的处理过程的变形例的序列图。
44.图13是表示系统哈希值的对照方法的变形例1的处理过程的图。
45.图14是表示系统哈希值的对照方法的变形例2的处理过程的图。
具体实施方式
46.以下,参照附图说明本发明的各实施方式。在以下的说明中,对相同的部件和结构要素标注相同标号。它们的名称和功能也相同。因此,不重复对它们的详细说明。另外,以下说明的各实施方式以及各变形例也可以适当地选择性地组合。
47.§
1.应用例
48.对本实施方式的控制系统的概略进行说明。图1是表示应用了一个实施方式的控制系统1x的场景的一例的图。参照图1,控制系统1x包含构成为能够相互通信的多个控制装置10x(a)、10x(b)。以下,也将控制装置10x(a)和控制装置10x(b)统称为控制装置10x。在图1中,标注有(a)的标号是指控制装置10x(a)所具有的结构。标注有(b)的标号是指控制装置10x(b)所具有的结构。
49.控制装置10x包含:控制引擎142x,其执行用于对控制对象进行控制的控制程序140x;以及安全防护引擎230x,其管理能否由控制引擎142x执行控制程序140x。
50.控制装置10x由多个设备构成,通过执行控制程序140x来控制各设备,通过控制各设备来控制作为控制对象的制造设备等。
51.安全防护引擎230x包含许可部232x、生成部234x、保持部236x以及对照部238x。
52.许可部232x从控制引擎142x接收控制程序140x的开始请求,判断能否执行该控制程序140x。
53.生成部234x生成表示构成控制装置10x的1个或多个设备的结构的固有信息。固有信息是由构成控制装置10x的设备规定的信息,根据控制装置10x的结构变化而变化。结构由设备的种类和设备的连接方法中的至少一方来定义。在设备的种类的分类方法中,可以包含基于设备的功能的分类方法、基于型号的不同的分类方法、以及基于序列号的分类方法。
54.保持部236x与其他控制装置10x之间以分布式总账的形式保持至少包含按每个控制装置10x预先生成的固有信息的共享信息30x。例如,若着眼于保持部236x(a),则保持部236x(a)与控制装置10x(b)之间以分布式总账的形式保持包含对每个控制装置10x(a)、10x
(b)预先生成的固有信息(a)以及固有信息(b)的共享信息30x。
55.即,控制装置10x(a)以及控制装置10x(b)分别保持公共的共享信息30x。共享信息30x以分布式总账的形式被保持,因此难以篡改。
56.对照部238x将按照对照的请求而生成的一个控制装置10x的固有信息、和共享信息30x所包含的与该控制装置10x对应的固有信息进行对照。例如,当着眼于控制装置10x(a)时,对照部238x(a)将在进行了对照的请求的定时生成的固有信息(a)与共享信息30x所包含的固有信息(a)进行对照。对照是指判定是否一致。
57.接着,从图1所示的(1)起依次对在控制系统1x中执行的控制程序的能否执行的管理方法进行说明。
58.(1)生成部234x(a)预先生成自身控制装置10x(a)的固有信息(a)。保持部236x(a)与保持部236x(b)之间保持包含预先生成的固有信息(a)的共享信息30x。
59.同样地,生成部234x(b)预先生成自身控制装置10x(b)的固有信息(b)。保持部236x(b)与保持部236x(a)之间保持包含预先生成的固有信息(b)的共享信息30x。
60.(2)许可部232x(a)接收控制程序140x(a)的开始请求。此外,在图1所示的例子中,控制引擎142x进行开始请求,但安全防护引擎230x也可以具有受理开始请求的受理部。
61.(3)许可部232x(a)向对照部238x(a)以及对照部238x(b)分别进行对照的请求。此外,在控制系统由3个以上的控制装置构成的情况下,许可部无需对全部控制装置进行对照的请求,只要对至少保持有共享信息的2个以上的控制装置进行对照的请求即可。另外,在2个以上的控制装置中,不一定需要包含自身控制装置。
62.(4)对照部238x(a)接收对照的请求,对生成部234x(a)请求生成固有信息(a)。同样地,对照部238x(b)接收对照的请求,对生成部234x(b)请求生成固有信息(b)。
63.(5)生成部234x(a)接收生成的请求,生成控制装置10x(a)的固有信息(a),并提供给对照部238x(a)。同样地,生成部234x(b)接收生成的请求,生成控制装置10x(b)的固有信息(b),并提供给对照部238x(b)。即,生成部234x在接收到对照的请求的定时也生成固有信息。
64.(6)对照部238x(a)将共享信息30x中包含的、预先生成的固有信息(a)与在(5)中生成部234x(a)接收到对照的请求的定时生成的固有信息(a)进行对照,得到对照结果。同样地,对照部238x(b)将共享信息30x所包含的预先生成的固有信息(b)与在(5)中生成部234x(b)在接收到对照的请求的定时生成的固有信息(b)进行对照,得到对照结果。
65.(7)对照部238x(a)以及对照部238x(b)分别将得到的对照结果提供给许可部232x(a)。许可部232x(a)基于所提供的来自各对照部238x(a)、238x(b)的对照结果,在该对照结果满足规定的条件的情况下许可控制程序140x(a)的执行。此外,规定的条件例如能够任意地设计为全部对照结果示出一致、全部对照结果中的规定比例的对照结果示出一致、从特定的控制装置得到的对照结果示出一致等。
66.(8)许可部232x(a)向控制引擎142x(a)提供基于对照结果进行判定后的结果(许可或禁止)。控制引擎142x(a)按照许可部232x(a)的判定结果,对控制程序140x(a)进行控制。
67.如上所述,在本实施方式中,各安全防护引擎230x将预先生成的固有信息包含在以分布式总账的形式保持的难以篡改的共享信息30x中进行管理。各安全防护引擎230x以
被管理的固有信息为基准,对照在启动控制程序时生成的固有信息,根据其对照结果判定控制程序的能否执行。因此,能够防止在与由安全防护引擎230x管理的环境下不同的环境下的控制程序的启动。
68.另外,在本实施方式中,不仅是自身控制装置的结构,以能够通信的方式连接的其他控制装置的结构也作为对照对象。因此例如,在恶意者想要模仿控制程序的执行环境的情况下,不仅需要复制自身控制装置的硬件和软件双方,还需要复制以能够通信的方式连接的其他控制装置的硬件和软件双方。其结果,能够保护控制程序这样的知识产权。
69.§
2.具体例
70.<a.控制系统>
71.图2是表示控制系统1的整体结构的示意图。参照图2,控制系统1具有控制装置10a、10b、10c。以下,在不需要相互区分控制装置10a、10b、10c的情况下,控制装置10a、10b、10c也简称为控制装置10。另外,对于控制单元100a、100b、100c、安全防护单元200a、200b、200c、i/o单元300a、300b、300c以及通信耦合器400a、400b、400c中的每一个,在不需要相互区分的情况下,也简称为控制单元100、安全防护单元200、i/o单元300以及通信耦合器400。
72.此外,图2所示的控制系统1由3个控制装置10构成,但也可以由2个控制装置10构成,还可以由4个以上的控制装置10构成。
73.各控制装置10对控制对象进行控制。控制对象包含用于使生产工序自动化的各种工业用设备,包含对制造装置、生产线等(以下,也统称为“现场”。)提供某种物理性的作用的装置、和与现场之间交换信息的输入输出装置。此外,也可以将生产线整体作为控制对象。
74.各控制装置10彼此经由信息系统网络2以能够通信的方式连接。信息系统网络2例如是ethernet(注册商标)、或遵循能够不依赖于供应商或os(operating system:操作系统)的种类等而实现数据交换的opc ua(object linking and embedding for process control unified architecture:用于过程控制统一架构的对象链接和嵌入)等通信标准的网络。
75.控制装置10由多个设备构成。在图2所示的例子中,控制装置10由控制单元100、安全防护单元200、i/o(input/output:输入/输出)单元300、通信耦合器400等构成。另外以下,也将构成控制装置10的各单元及通信耦合器统称为“设备”。
76.控制单元100是构成控制装置10的控制设备的一例,执行用于对控制对象进行控制的控制程序,在控制装置10中执行中心处理。
77.安全防护单元200是构成控制装置10的安全防护设备的一例,对控制单元100中的控制程序的能否执行进行管理。控制程序的能否执行的管理方法将在后面叙述。
78.控制单元100与安全防护单元200之间例如经由任意的数据传输路径(例如,pci express或ethernet(注册商标)等)连接。
79.i/o单元300是构成控制装置10的设备的一例,是与通常的输入输出处理相关的单元。i/o单元300从包含各种传感器、各种开关、编码器等的io设备收集检测值。
80.控制单元100和i/o单元300经由内部总线可通信地连接。控制单元100使用由i/o单元300收集到的检测值来执行控制程序的运算,并将运算结果的值输出至i/o单元300。
81.通信耦合器400经由现场网络4而与控制单元100可通信地连接。通信耦合器400进
行现场网络4中的数据传输所涉及的处理。通信耦合器400例如经由内部总线与1个或多个i/o单元300可通信地连接。由连接于通信耦合器400的1个或多个i/o单元300各自收集的检测值经由现场网络4而输出至控制单元100。
82.作为现场网络4,典型地能够使用各种工业用ethernet(注册商标)。作为工业用ethernet(注册商标),例如已知ethercat(注册商标)、profinet irt、mechatrolink(注册商标)-iii、powerlink、sercos(注册商标)-iii、cip motion等,可以采用它们中的任意一种。并且,也可以使用工业用ethernet(注册商标)以外的现场网络。例如,如果是不进行动作控制的情况,则也可以使用devicenet、componet/ip(注册商标)等。
83.构成控制装置10的各设备具有识别数据id。典型地,识别数据id是型号、序列号等,是按每个设备预先设定的信息。
84.此外,构成控制装置10的设备不限于图2所示的设备。构成控制装置10的设备例如可包含供给电源的电源单元、具有i/o单元300不支持的功能的特殊单元、提供用于防止人的安全被设备或机械等威胁的安全功能的安全单元等。另外,构成控制装置10的设备例如可包含hmi(human machine interface:人机界面),所述hmi将通过控制单元100或其他单元中的控制运算而获得的各种信息提示给操作员,并且根据来自操作员的操作,对控制单元100或其他单元生成内部命令等。
85.<b.硬件结构>
86.对构成本实施方式的控制装置10的主要设备的硬件结构例进行说明。
87.(b1.控制单元)
88.图3是表示构成本实施方式的控制装置10的控制单元100的硬件结构例的示意图。参照图3,作为主要的组件,控制单元100包含cpu(central processing unit:中央处理单元)或gpu(graphical processing unit:图形处理单元)等处理器102、芯片组104、主存储装置106、二次存储装置108、通信控制器110、usb控制器112、存储卡接口114、现场网络控制器116、内部总线控制器118和信息系统网络控制器120。
89.处理器102读出保存在二次存储装置108或存储卡115中的各种程序,并在主存储装置106中展开并执行,由此实现用于对控制对象进行控制的控制运算、以及如后所述的控制程序140的执行开始请求所涉及的处理。
90.主存储装置106由dram(dynamic random access memory:动态随机存取存储器)或sram(static random access memory:静态随机存取存储器)等易失性存储装置等构成。二次存储装置108例如由hdd(hard disc drive:硬盘驱动器)或ssd(solid state drive:固态硬盘)等非易失性存储装置等构成。
91.芯片组104通过对处理器102与各组件之间的数据交换进行中介,来实现作为控制单元100整体的处理。
92.在二次存储装置108中,除了用于实现控制单元100的基本功能的系统程序1082以外,还存储有根据设备或机械等控制对象而创建的控制程序140、及用于识别控制单元100的识别数据id。
93.在系统程序1082中编入有认证程序130。认证程序130是在启动控制程序140时执行的程序,是用于向安全防护单元200请求许可所启动的控制程序140的执行的程序。另外,系统程序1082提供作为执行控制程序140的控制引擎的功能。
94.控制程序140例如是基本的算法由程序开发公司创建的知识产权。例如,用户根据控制装置10来设定参数,由此准备好可执行由程序开发公司提供的控制程序140的环境。
95.通信控制器110负责与安全防护单元200之间的数据交换。作为通信控制器110,例如能够采用与pci express或者ethernet(注册商标)等对应的通信芯片。
96.usb控制器112经由usb连接负责与任意的信息处理装置之间的数据交换。任意的信息处理装置例如包含向用户提供控制程序140的创建或编辑、调试、各种参数的设定等功能的支持装置等。
97.存储卡接口114构成为能够拆装作为存储介质的一例的存储卡115。存储卡接口114能够对存储卡115写入控制程序140、各种设定等数据,或者从存储卡115读出控制程序140、各种设定等数据。
98.现场网络控制器116控制经由现场网络4的与其他装置之间的数据交换。
99.内部总线控制器118控制经由内部总线的与其他装置(i/o单元300等)之间的数据交换。内部总线可以使用厂商固有的通信协议,也可以使用与任意的工业用网络协议相同或遵循任意的工业用网络协议的通信协议。
100.信息系统网络控制器120控制经由信息系统网络2的与其他控制装置10之间的数据交换。
101.在图3中,示出了通过处理器102执行程序而提供所需的功能的结构例,但也可以使用专用的硬件电路(例如asic或fpga等)来安装这些所提供的功能的一部分或全部。或者,也可以使用遵循通用架构的硬件(例如以通用个人计算机为基础的工业用个人计算机)来实现控制单元100的主要部分。在该情况下,也可以使用虚拟化技术并行地执行用途不同的多个os,并且在各os上执行所需的应用程序。
102.(b2.安全防护单元)
103.图4是表示构成本实施方式的控制装置10的安全防护单元200的硬件结构例的示意图。参照图4,作为主要的组件,安全防护单元200包含cpu或gpu等处理器202、芯片组204、主存储装置206、二次存储装置208、通信控制器210、usb控制器212、存储卡接口214和信息系统网络控制器220。
104.处理器202读出保存在二次存储装置208或存储卡215中的各种程序,并在主存储装置206中展开并执行,由此实现对控制单元100中的控制程序的能否执行进行管理的功能。主存储装置206由dram或sram等易失性存储装置等构成。二次存储装置208例如由hdd或ssd等非易失性存储装置等构成。
105.芯片组204通过对处理器202与各组件之间的数据交换进行中介,来实现作为安全防护单元200整体的处理。
106.在二次存储装置208中,除了用于实现安全防护单元200的基本功能的系统程序2082以外,还保存有识别数据id以及共享信息30。
107.在系统程序2084中编入有安全防护程序230。安全防护程序230是用于管理能否执行在控制装置10中执行的控制程序140的程序。即,安全防护程序230提供作为管理控制程序140的能否执行的安全防护引擎的功能。
108.共享信息30是用于管理固有信息的信息,该固有信息表示构成控制系统1所包含的各控制装置10的多个设备的结构。共享信息30利用公知的分布式总账技术由构成控制系
统1的各控制装置10管理及共享。共享信息30是由于利用了分布式总账技术而难以被篡改的信息。共享信息30被用作决定是否许可控制程序140的执行时的基准信息。关于共享信息30以及表示构成控制装置10的多个设备的结构的固有信息,将在后面叙述。
109.通信控制器210负责与控制单元100之间的数据交换。作为通信控制器210,与控制单元100中的通信控制器210同样地,例如能够采用与pci express或者ethernet(注册商标)等对应的通信芯片。
110.usb控制器212经由usb连接负责与任意的信息处理装置之间的数据交换。任意的信息处理装置例如包含向用户提供安全防护程序230的设定等功能的支持装置等。
111.存储卡接口214构成为能够拆装作为存储介质的一例的存储卡215。存储卡接口214能够对存储卡215写入程序、各种设定等数据,或者从存储卡215读出程序、各种设定等数据。
112.信息系统网络控制器220控制经由信息系统网络2的与其他控制装置10之间的数据交换。信息系统网络控制器220也可以采用ethernet(注册商标)等通用的网络协议。
113.在图4中,示出了通过处理器202执行程序而提供所需的功能的结构例,但也可以使用专用的硬件电路(例如asic或fpga等)来安装这些所提供的功能的一部分或全部。或者,也可以使用遵循通用架构的硬件(例如以通用个人计算机为基础的工业用个人计算机)来实现安全防护单元200的主要部分。在该情况下,也可以使用虚拟化技术并行地执行用途不同的多个os,并且在各os上执行所需的应用程序。
114.此外,参照图3以及图4,控制装置10可以经由控制单元100的信息系统网络控制器120与信息系统网络2连接,另外,也可以经由安全防护单元200的信息系统网络控制器2200与信息系统网络2连接。在本实施方式中,对控制装置10经由安全防护单元200的信息系统网络控制器220连接的情况进行说明。
115.<c.控制程序的能否执行的判断方法概略>
116.参照图5,对控制程序140的能否执行的判断方法概略进行说明。图5是表示控制程序140的能否执行的判断方法流程的图。此外,在图5所示的例子中,为了简化附图,省略了构成各控制装置10的控制单元100和安全防护单元200以外的单元(i/o单元300、通信耦合器400等)的记载。
117.在图5所示的例子中,例如设为控制单元100a要开始控制程序140的执行。在该情况下,控制单元100a首先向安全防护单元200a请求控制程序140的能否执行判定(图中的(1))。
118.接收来自控制单元100a的判定请求,对照由共享信息30管理的控制系统1内的各控制装置10的固有信息与由当前的各控制装置10生成的固有信息是否一致。
119.具体而言,安全防护单元200a进行识别数据id的收集(图中的(2)),基于收集到的识别数据id生成系统哈希值作为固有信息(图中的(3))。系统哈希值是以构成控制装置10的设备中的、除了安全防护单元200以外的其他设备的识别数据id为自变量,通过利用公知的哈希函数而得到的。
120.固有信息是由构成控制装置10的设备规定的信息,只要是能够确定控制装置10的结构发生了变化的信息即可,不限于利用识别数据id得到的系统哈希值。例如,固有信息也可以是表示规定了控制装置10内的设备的连接关系的网络拓扑的信息。
121.安全防护单元200a将从识别数据id得到的固有信息(系统哈希值)与共享信息30进行对照(图中的(4))。具体而言,安全防护单元200a将根据在(2)中收集到的识别数据id生成的控制装置10a的固有信息、与由共享信息30管理的控制装置10a的固有信息进行对照,判定是否一致。
122.在图中的(4)中,将新生成的固有信息与由共享信息30管理的固有信息进行对照,在一致的情况下,保证控制装置10a是被正规地管理的控制装置10。另一方面,在不一致的情况下,控制装置10a有可能是未由共享信息30管理的控制装置。
123.接着,安全防护单元200a向控制系统1所包含的各控制装置10b、10c请求对照(图中的(5))。具体而言,安全防护单元200a生成从当前的控制装置10得到的固有信息(系统哈希值),并且请求将所生成的固有信息(系统哈希值)和由共享信息30管理的固有信息进行对照来对照是否一致。
124.控制装置10b的安全防护单元200b接收对照的请求,进行识别数据id的收集(图中的(1b)),基于收集到的识别数据id生成系统哈希值(图中的(2b))。然后,控制装置10b的安全防护单元200b将生成的控制装置10b的系统哈希值与共享信息30进行对照(图中的(3b))。同样地,控制装置10c的安全防护单元200c执行图中的(1c)~(3c)的处理。
125.安全防护单元200a从各控制装置10b、10c取得对照结果(图中的(6))。
126.安全防护单元200a基于在(4)的处理中得到的针对控制装置10a的对照结果、以及在(5)和(6)的处理中得到的针对控制装置10b、10c的对照结果,进行在(1)中请求的控制程序的能否执行判定(图中的(7))。安全防护单元200a在这些对照结果满足规定的条件的情况下,许可控制程序的执行。作为规定的条件,例如能够任意地设计为控制装置10a~10c各自的对照结果一致的情况、或者规定比例一致的情况等。
127.安全防护单元200a向控制单元100a通知表示能否执行控制程序的判定结果(图中的(8))。
128.<d.功能结构>
129.图6是表示控制单元100和安全防护单元200的功能结构的一例的框图。在图6中,虚线的箭头表示与指示相关的流程。实线的箭头表示信息的流动。
130.参照图6,控制单元100包含控制程序执行部142和认证部132。这各个功能通过控制单元100的处理器102执行系统程序1082来实现。
131.控制程序执行部142发挥功能以执行控制程序140。控制程序执行部142接收控制程序140的执行开始请求,对认证部132请求控制程序140的认证。认证是指,认证控制程序140的执行环境是否是由控制系统1的各控制装置10所保持的共享信息30管理的环境,且认证是否是可以执行控制程序140的环境。
132.认证部132包含判定请求部134、识别数据发送部136和识别数据收集部138。当从控制程序执行部142接收到认证的请求时,判定请求部134对安全防护单元200的许可部232请求控制程序140的能否执行判定。
133.识别数据发送部136将识别数据收集部138收集到的构成控制装置10的各设备的识别数据id发送至安全防护单元200。
134.识别数据收集部138接收来自安全防护单元200的生成部234的请求,收集构成控制装置10的各设备的识别数据id。识别数据收集部138除了在判定控制程序140的能否执行
时之外,在将新的固有信息(系统哈希值)登记到共享信息30时,也被安全防护单元200请求识别数据id的收集。此外,在本实施方式中,识别数据收集部138从构成控制装置10的设备中的除了安全防护单元200以外的设备分别收集识别数据id。另外,在作为固有信息的系统哈希值的生成所使用的识别数据id中,也可以包含安全防护单元200的识别数据id。
135.认证部132在被控制程序执行部142请求了控制程序140的认证后,从安全防护单元200的许可部232接收控制程序140的能否执行的判定结果。认证部132进行按照从安全防护单元200接收到的判定结果的处理。认证部132在得到了表示能够许可执行的判定结果的情况下,向控制程序执行部142通知开始控制程序140的执行。另一方面,认证部132在得到了表示不能许可执行的判定结果的情况下,向控制程序执行部142指示禁止控制程序140的执行。
136.安全防护单元200包含许可部232、生成部234、保持部236以及对照部238。这各个功能通过安全防护单元200的处理器202执行安全防护程序230来实现。
137.许可部232包含判定部2322和对照请求部2324。判定部2322基于从包含判定部2322的安全防护单元200的对照部238以及其他安全防护单元200的对照部238得到的对照结果,判定是否许可控制程序140的执行,并将判定结果通知给控制单元100的认证部132。
138.对照请求部2324请求对照部238对照固有信息。对照请求部2324除了请求包含对照请求部2324的安全防护单元200的对照部238对照固有信息以外,还对其他控制装置10的对照部238请求对照固有信息。此外,对照请求部2324只要对2个以上的对照部238请求固有信息的对照即可,也可以不对控制系统1所包含的所有控制装置10所包含的对照部238请求固有信息的对照。另外,在被请求固有信息的对照的2个以上的对照部238中,不一定需要包含包括对照请求部2324的对照部238。
139.生成部234生成作为固有信息的系统哈希值。生成部234包含收集请求部2342和系统哈希值运算部2344。
140.收集请求部2342在被对照部238或者保持部236请求生成系统哈希值时发挥功能。对照部238在开始对照时请求生成系统哈希值。保持部236例如在控制装置10被变更为正规的情况下等,在构成控制装置10的设备被变更而将变更后的控制装置10的固有信息新登记到共享信息30时,请求系统哈希值的生成。收集请求部2342对控制单元100的识别数据收集部138请求识别数据id的收集。
141.系统哈希值运算部2344根据从识别数据发送部136发送的各设备的识别数据id,生成系统哈希值。系统哈希值运算部2344典型地利用公知的哈希函数所使用的算法来生成系统哈希值。系统哈希值运算部2344在被对照部238请求生成系统哈希值的情况下,向对照部238发送所生成的系统哈希值。另外,系统哈希值运算部2344在被保持部236请求生成系统哈希值的情况下,向保持部236发送所生成的系统哈希值。
142.保持部236与其他控制装置10之间,以分布式总账的形式保持共享信息30,共享信息30至少包含控制系统1中包含的各控制装置10的生成部234所生成的固有信息(系统哈希值)。保持部236具有登记部2362和检索部2364。
143.登记部2362在构成控制系统1所包含的多个控制装置10中的任意的控制装置10的设备被变更,而将变更后的控制装置10的固有信息新登记到共享信息30内,并开始该固有信息的管理时发挥功能。登记部2362按照公知的分布式总账技术,开始新的固有信息的管
理。
144.另外,登记部2362在构成包括含有登记部2362的安全防护单元200的控制装置10的设备被变更,而开始变更后的控制装置10的固有信息的管理时,向生成部234请求生成固有信息。在与各控制装置10的保持部236之间,利用分布式总账技术将生成部234接收登记部2362的请求而生成的固有信息作为共享信息30来进行管理。
145.检索部2364基于来自对照部238的请求,从共享信息30中检索作为对照对象的控制装置10的固有信息,并将共享信息30中包含的固有信息发送到对照部238。
146.对照部238接收对照请求部2324的请求,对生成部234请求生成固有信息。另外,对照部238接收对照请求部2324的请求,对检索部2364请求包含在共享信息30中的固有信息的发送。对照部238将从系统哈希值运算部2344发送的固有信息、和从检索部2364发送的共享信息30中包含的固有信息进行对照,并将对照的结果发送到判定部2322。
147.即,对照部238对预先生成并登记在共享信息30中的固有信息、和按照对照的请求而生成的固有信息进行对照。此外,在本实施方式中,将按照对照的请求而生成的固有信息的对照目标设为自身控制装置10的保持部236所保持的共享信息30,但对照目标也可以是其他控制装置10所保持的共享信息30。另外,对照部238也可以将2个以上的共享信息30分别作为按照对照的请求而生成的固有信息的对照目标。
148.<e.共享信息>
149.参照图7和图8,对共享信息30进行说明。图7是表示共享信息30的图。图8是表示在生成新的块40时发挥功能的安全防护单元200的功能结构的图。
150.参照图7,共享信息30由连在一起的多个块40构成。各块40至少包含从某定时的控制措施10的结构得到的系统哈希值48。块40是在构成控制装置10的设备发生变更、或者新的控制装置10连接于控制系统1的情况下生成的。各块40内的信息不被更新,新的块40与最新的块40相关联地生成。
151.具体而言,每个块40包含块哈希值42、系统结构信息44和随机数46。系统结构信息44包含安全防护单元200的识别数据id、和包含该安全防护单元200的控制装置10的系统哈希值48。
152.块哈希值42是表示前一个块的信息的唯一的信息。块哈希值42例如是以前一个块的信息为自变量,按照公知的哈希函数得到的返回值。
153.在图7所示的例子中,考虑在共享信息30中依次包含从块40-1到块40-n的状况下,控制装置10的设备结构发生变更,新的块40-n+1被追加到共享信息30中。块40-n+1包含块哈希值42-n。块哈希值42-n是以块40-n的信息为自变量,按照公知的哈希函数得到的返回值。
154.随机数46是在新生成块40时生成的数值,是每当生成块40时生成的数值。随机数46是针对每个块40唯一的值。
155.参照图8,对在生成新的块40时发挥功能的安全防护单元200的功能进行说明。另外,关于已参照图6说明的功能,省略再次的说明。另外,在图8中,示出了在共享信息30内保存有块40-n,基于构成控制装置10a的设备被变更,新保存块40-n+1的例子。
156.如上所述,生成部234的收集请求部2342接收来自保持部236的系统哈希值48的生成请求,对控制单元100a请求识别数据id的收集。系统哈希值运算部2344根据从控制单元
100a发送的、构成控制装置10a的各设备的识别数据id,生成系统哈希值48。
157.保持部236的登记部2362包含分发部236a、挖掘(mining)部236b和块哈希值运算部236c。系统哈希值运算部2344将生成的系统哈希值48发送到分发部236a。
158.分发部236a根据系统哈希值48和安全防护单元200a的识别数据id生成系统结构信息44,并分发到安全防护单元200a、200b、200c的各挖掘部236b。
159.挖掘部236b与其他安全防护单元200b、200c的挖掘部236b协作而生成块40-n+1。
160.块哈希值运算部236c根据共享信息30,基于最后登记的块40生成块哈希值42。在图8所示的例子中,最后登记的块40是块40-n,因此基于块40-n生成块哈希值42-n。
161.挖掘部236b基于系统结构信息44和块哈希值42-n,以从生成的块40得到的信息满足规定的条件的方式设定随机数46来生成块40。另外,将这样设定随机数46而生成满足规定条件的块40的处理称为挖掘。各安全防护单元200的挖掘部236b进行挖掘,将最早找到满足规定条件的随机数46的挖掘部236b所生成的块40保存到共享信息30中。
162.即,生成了系统结构信息44的主体与生成了块40的主体有时会不同。
163.块40被保存在各安全防护单元200的共享信息30中。即,各安全防护单元200的共享信息30只要不被篡改,则是公共的。
164.如参照图7和图8所说明的那样,共享信息30中包含的各个块40包含基于先前一个块40获得的块哈希值42。即,在篡改了一个块40的情况下,需要连锁地篡改其他块40,共享信息30的篡改需要付出较多努力。即,共享信息30可以说是难以篡改的信息。
165.在本实施方式中,将这样的难以篡改的共享信息30中包含的系统哈希值48作为对照对象。
166.此外,只要能够在多个控制装置10之间以分布式总账的形式保持共享信息30即可,生成一个块40的方法不限于参照图7以及图8说明的方法。生成一个块40的方法也可以针对每个控制系统1任意地设计。
167.例如,也可根据使新的控制装置10参加控制系统1时的安全防护等级来选择块40的生成方法。例如,在使新的控制装置10参加控制系统1时的安全防护等级高的情况下,能够降低生成块40的过程的安全防护等级(透明性、严格性)。另一方面,在提高使新的控制装置10参加控制系统1的自由度的情况下,需要提高生成块40的过程的安全防护等级(透明性、严格性)。
168.具体而言,在利用私有型或者联盟型的区块链技术以分布式总账的形式保持共享信息30的情况下,能够降低达成共识的障碍,缩短达成共识所需的时间、即生成一个块40并保存到共享信息30所需的时间。另一方面,在利用公共型的区块链技术以分布式总账的形式保持有共享信息30的情况下,使新的控制装置10参加控制系统1的自由度高,因此需要提高达成共识的障碍。
169.<f.序列图>
170.图9是表示接收到控制程序的执行开始请求时的处理过程的序列图。另外以下,将序列简单地记载为“sq”。此外,在图9中,设为控制单元100a进行了控制程序140的执行开始请求来进行说明。
171.在sq102中,控制单元100a向安全防护单元200a通知控制程序的开始请求。
172.在sq104中,安全防护单元200a向控制装置10b通知对照请求。对照是指将根据当
前的控制装置10的结构生成的系统哈希值48、与预先保存在共享信息30中的系统哈希值48进行对照,也称为“系统哈希值的对照”。
173.在sq106中,安全防护单元200a向控制装置10c通知对照请求。
174.构成控制系统1的各控制装置10a、10b、10c进行系统哈希值的对照(sq108)。具体而言,在sq108a中,控制装置10a进行系统哈希值的对照。在sq108b中,控制装置10b进行系统哈希值的对照。在sq108c中,控制装置10c进行系统哈希值的对照。
175.以控制装置10a为例,对系统哈希值的对照方法进行说明。在sq108a-1中,安全防护单元200a向控制单元100a请求识别数据id的收集。
176.在sq108a-2中,控制单元100a将构成控制装置10a的各设备的识别数据id向安全防护单元200a发送。
177.在sq108a-3中,安全防护单元200a根据构成控制装置10a的各设备的识别数据id,生成系统哈希值48。
178.在sq108a-4中,安全防护单元200a将其与共享信息30内的系统哈希值48进行对照。具体而言,安全防护单元200a从共享信息30内的最新的块起依次检索保存有安全防护单元200a的识别数据id的块40,取得保存有安全防护单元200a的识别数据id的、块40内的系统哈希值48。安全防护单元200a将在sq108a-3中生成的系统哈希值48与从共享信息30内取得的系统哈希值48进行对照而得到对照结果。
179.此外,在图9中,控制装置10b执行的系统哈希值的对照(sq108b)以及控制装置10c执行的系统哈希值的对照(sq108c)均与控制装置10a执行的系统哈希值的对照(sq108a)相同,因此省略记载。
180.具体而言,控制装置10b的安全防护单元200b向控制单元100b请求识别数据id的收集。控制单元100b将构成控制装置10b的各设备的识别数据id向安全防护单元200b发送。安全防护单元200b基于构成控制装置10b的各设备的识别数据id,生成系统哈希值48。安全防护单元200b从共享信息30内的最新的块起,依次检索保存有安全防护单元200b的识别数据id的块40,取得保存有安全防护单元200b的识别数据id的块40内的系统哈希值48。安全防护单元200b将按照根据控制程序的开始请求生成的对照请求而生成的系统哈希值48与从共享信息30内取得的系统哈希值48进行对照而得到对照结果。
181.同样地,控制装置10c按照与控制程序的开始请求对应的对照请求,收集构成控制装置10c的各设备的识别数据id,基于收集到的识别数据id生成系统哈希值48。控制装置10c的安全防护单元200c从共享信息30内,取得保存有安全防护单元200c的识别数据id的块40内的系统哈希值48。安全防护单元200c将按照根据控制程序的开始请求生成的对照请求而生成的系统哈希值48与从共享信息30内取得的系统哈希值48进行对照而得到对照结果。
182.在sq110中,控制装置10b向安全防护单元200a发送对照结果。
183.在sq112中,控制装置10c向安全防护单元200a发送对照结果。
184.在sq114中,安全防护单元200a判定控制程序的能否执行。具体而言,安全防护单元200a基于由sq108a得到的对照结果、在sq110中得到的对照结果以及在sq112中得到的对照结果,在这些对照结果满足规定的条件的情况下,许可控制程序的执行。另一方面,安全防护单元200a在这些对照结果不满足规定的条件的情况下,不许可控制程序的执行。
由与控制装置10b相同的设备构成。
202.控制装置10a’的安全防护单元200a’的识别数据id被篡改为与安全防护单元200a的识别数据id相同。另外,控制装置10b’的安全防护单元200b’的识别数据id被篡改为与安全防护单元200b的识别数据id相同。
203.假设安全防护单元200以外的设备(控制单元100a’、100b’、i/o单元300a’、300b’等)的识别数据id未被篡改。
204.在该情况下,当控制单元100a’请求控制程序的执行开始时,安全防护单元200a’执行图9所示的与系统哈希值48的对照相关的处理。具体而言,安全防护单元200a’生成控制装置10a’的系统哈希值48,将所生成的系统哈希值48、与共享信息30所保存的安全防护单元200的识别数据为“2a2”的系统哈希值48进行比较。
205.在图11所示的例子中,安全防护单元200a’以外的设备的识别数据id未被篡改,与控制装置10a所包含的各设备的识别数据id不同。因此,控制装置10a’的系统哈希值48为“1bcde”,与预先生成的共享信息30中保存的、安全防护单元200的识别数据为“2a2”的系统哈希值48“abcde”不一致。
206.另外,安全防护单元200a’对安全防护单元200b’请求系统哈希值的对照。安全防护单元200b’生成控制装置10b’的系统哈希值48,将生成的系统哈希值48与共享信息30所保存的、安全防护单元200的识别数据为“2b2”的系统哈希值48进行比较。
207.在图11所示的例子中,安全防护单元200b’以外的设备的识别数据id未被篡改,与控制装置10b所包含的各设备的识别数据id不同。因此,控制装置10b’的系统哈希值48为“a2cde”,与预先生成的共享信息30中保存的、安全防护单元200的识别数据为“2b2”的系统哈希值48“abcde”不一致。
208.安全防护单元200a’由于控制装置10a’及控制装置10b’均不一致的结果,禁止控制程序的执行。
209.另外,关于共享信息30内的控制装置10c,安全防护单元200a’也可以根据不被返回对照请求的结果,得到不一致的结果。
210.用于实现由控制装置10a管理的环境的控制程序的开发有时也由与利用控制装置10a的公司不同的公司进行。在这样的情况下,如果容易模仿控制程序以及能够利用控制程序的环境,则无法充分地保护开发控制程序的公司的知识产权。
211.在本实施方式中,除了构成控制装置10a的各设备的识别数据的复制以外,还需要模仿包含控制装置10a的控制系统1整体。另外,在模仿控制系统1整体的情况下,需要篡改到构成各控制装置10的设备的识别数据。
212.构成控制装置10的设备有时为几十个,在这种情况下,对全部的几十个设备篡改该设备的识别数据。另外,需要对控制系统所包含的各控制装置进行该作业。因此,为了模仿由控制程序管理的1个控制装置,需要付出较多努力。
213.即,在本实施方式的控制系统1中,无法容易地模仿能够利用控制程序的环境,因此能够保护控制程序这样的知识产权。
214.<i.变形例>
215.(i1.接收到控制程序的执行开始请求时的处理过程的变形例)
216.图12是表示接收到控制程序的执行开始请求时的处理过程的变形例的序列图。另
外,在图12中,与图9相同的sq编号是相同的处理。
217.在上述实施方式中,在有控制程序的开始请求的情况下,向各控制装置10进行了对照请求。此外,也可以进行自身控制装置的对照,以一致为条件向其他控制装置10进行对照请求。
218.具体而言,安全防护单元200a在接收到控制程序的开始请求时(sq102),进行控制措施10a的系统哈希值的对照(sq104a),在系统哈希值48一致的情况下(sq106a中为“是”),向各控制装置10b、10c进行对照请求。另外,sq104a的处理内容与图9所示的sq108a的处理内容(sq108-1~sq108a-4)相同。
219.在sq106a中,在系统哈希值48不一致的情况下(在sq106a中为“否”),安全防护单元200a不对各控制装置10b、10c进行对照请求,而判定控制程序的能否执行(sq114)。在该情况下,由于系统哈希值48不一致,所以决定不许可控制程序的执行。
220.如上所述,进行自身控制装置10的对照,以一致为条件向其他控制装置10进行对照请求,由此不需要向其他控制装置10过度进行对照请求,因此作为控制系统1的整体简化处理。
221.此外,也可以对管理者设定控制系统1内的控制装置10中的一部分控制装置,基于来自该管理者的对照结果来决定控制程序的能否执行。当构成控制系统1的控制装置10的数量较多时,对照可能会耗费时间,因此通过基于来自一部分管理者的对照结果来决定控制程序的能否执行,能够缩短对照所需的时间。此外,管理者不一定需要包含执行作为能否执行的判定对象的控制程序的控制装置10。另外,只要对管理者设定2个以上的控制装置即可。
222.(i2.系统哈希值的对照方法的变形例1)
223.图13是表示系统哈希值的对照方法的变形例1的处理过程的图。另外,图13所示的处理过程是图9所示的sq108a的变形例。另外,在图13中,与图9相同的sq编号是相同的处理。以下,仅对与图9不同的处理进行说明。即,sq108-1~sq108a-4的处理与图9相同,从sq108a-5以后进行说明。
224.在图9中,仅与自身控制装置10所保持的共享信息30之间进行自身控制装置10的系统哈希值48的对照。此外,也可以与其他控制装置10所保持的共享信息30之间进行自身控制装置10的系统哈希值48的对照。
225.具体而言,安全防护单元200a在sq108a-5中,向控制装置10b发送在sq108a-3中生成的系统哈希值48。
226.在sq108a-6中,控制装置10b将其与共享信息30内的系统哈希值进行对照。具体而言,控制装置10b的安全防护单元200b从共享信息30内的最新的块起依次检索保存有安全防护单元200a的识别数据id的块40,取得保存有安全防护单元200a的识别数据id的块40内的系统哈希值48。安全防护单元200b将在sq108a-5中发送的在sq108a-3中由安全防护单元200a生成的系统哈希值48与从控制装置10b保持的共享信息30内取得的系统哈希值48进行对照,得到对照结果。
227.在sq108a-7中,控制装置10b将在sq108a-6中得到的对照结果向安全防护单元200a发送。
228.在sq108a-8中,安全防护单元200a向控制装置10c发送在sq108a-3中生成的系统
哈希值48。
229.在sq108a-9中,控制装置10c将其与共享信息30内的系统哈希值进行对照。具体而言,控制装置10c的安全防护单元200c将在sq108a-8中发送的在sq108a-3中安全防护单元200a生成的系统哈希值48与控制装置10c所保持的共享信息30内的控制装置10a的系统哈希值48进行对照,得到对照结果。
230.在sq108a-10中,控制装置10c向安全防护单元200a发送在sq108a-9中得到的对照结果。
231.即,在对照自身控制装置10的系统哈希值48的情况下,除了与自身控制装置10保持的共享信息10内的系统哈希值48之间进行对照以外,也可以进行与其他控制装置10保持的共享信息10内的系统哈希值48之间是否一致的对照。
232.例如,假设在控制装置10a被不正当地模仿而生成了控制装置10a’的情况下,控制装置10a’所保持的共享信息30被篡改,控制装置10a’的系统哈希值48被登记在共享信息30内。在该情况下,控制装置10a’的安全防护程序不仅与自身控制装置10a’的共享信息30之间进行对照,而且与其他控制装置10之间也进行对照,由此,如果不对其他控制装置10的共享信息30也进行篡改,则控制程序的执行不会被许可,因此能够提高安全防护等级。
233.(i3.系统哈希值的对照方法的变形例2)
234.图14是表示系统哈希值的对照方法的变形例2的处理过程的图。另外,图14所示的处理过程是图9所示的sq108a的变形例。另外,在图14中,与图9相同的sq编号是相同的处理。以下,仅对与图9不同的处理进行说明。即,sq108-1~sq108a-3的处理与图9相同,从sq108a-4’以后进行说明。
235.具体而言,安全防护单元200a在sq108a-4’中,向控制装置10b发送在sq108a-3中生成的系统哈希值48。
236.在sq108a-5’中,控制装置10b将其与共享信息30内的系统哈希值进行对照。具体而言,控制装置10b的安全防护单元200b从共享信息30内的最新的块起依次检索保存有安全防护单元200a的识别数据id的块40,取得保存有安全防护单元200a的识别数据id的块40内的系统哈希值48。安全防护单元200b将在sq108a-4’中发送的在sq108a-3中安全防护单元200a生成的系统哈希值48与从控制装置10b保持的共享信息30内取得的系统哈希值48进行对照,得到对照结果。
237.在sq108a-6’中,控制装置10b将在sq108a-5’中得到的对照结果向安全防护单元200a发送。
238.在sq108a-7’中,安全防护单元200a向控制装置10c发送在sq108a-3中生成的系统哈希值48。
239.在sq108a-8’中,控制装置10c将其与共享信息30内的系统哈希值进行对照。具体而言,控制装置10c的安全防护单元200c将在sq108a-7’中发送的在sq108a-3中安全防护单元200a生成的系统哈希值48与控制装置10c所保持的共享信息30内的控制装置10a的系统哈希值48进行对照,得到对照结果。
240.在sq108a-9’中,控制装置10c将在sq108a-8’中得到的对照结果向安全防护单元200a发送。
241.即,对照结果不限于通过与自身控制装置10所保持的共享信息30内的系统哈希值
48进行对照而得到的结果,只要是与控制系统1内的安全防护单元200中的至少一个安全防护单元200所保持的共享信息30内的系统哈希值48进行对照而得到的结果即可。
242.(i4.其他变形例)
243.在上述实施方式中,执行控制程序的处理器102和执行安全防护程序的处理器202是相互不同的设备所具有的处理器。另外,也可以是由一个设备具有执行安全防护程序的处理器202和执行控制程序的处理器102。
244.在上述实施方式中,示出了控制系统1仅由多个控制装置10构成的例子。此外,控制系统1除了多个控制装置10之外,还可以包含数据库系统、制造执行系统(mes:manufacturing execution system)、或者从各控制装置10取得信息来进行宏观或微观分析的分析系统等中央管理装置。另外,也可以在信息系统网络2上连接hmi。
245.§
3.附记
246.如上所述,基于上述的实施方式和变形例的公开包含如下的公开。
247.<结构1>
248.一种控制系统(1x、1),其具有构成为能够相互通信的多个控制装置(10x、10),其中,
249.所述控制装置分别具有:
250.控制引擎(142x、1082),其执行用于对控制对象进行控制的控制程序;以及
251.安全防护引擎(230x、230),其管理所述控制引擎中的所述控制程序的能否执行,
252.所述安全防护引擎分别具有:
253.生成单元(234x、234),其生成表示构成自身控制装置的1个或多个设备的结构的固有信息;
254.保持单元(236x、236),其与其他控制装置之间,以分布式总账的形式保持共享信息(30x、30),所述共享信息(30x、30)至少包含按每个所述控制装置预先生成的第1固有信息(48);
255.对照单元(238x、238),其将由自身控制装置按照对照的请求而生成的第2固有信息(48)、与各安全防护引擎所保持的所述共享信息中的至少一个共享信息所包含的自身控制装置的所述第1固有信息进行对照;以及
256.许可单元(232x、232),其响应于所述控制程序的执行开始请求,对2个以上的对照单元分别进行所述对照的请求,并基于从所述2个以上的对照单元分别得到的对照结果,决定该控制程序的能否执行。
257.<结构2>
258.在结构1所记载的控制系统中,
259.所述保持单元将使所述第1固有信息、与能够确定生成了该第1固有信息的安全防护引擎的标识符(id)对应起来的信息(44)作为一个事务来处理。
260.<结构3>
261.在结构1或2所记载的控制系统中,
262.所述对照单元将由自身控制装置生成的所述第2固有信息、与自身控制装置的安全防护引擎所保持的所述共享信息进行对照(sq108a、sq104a)。
263.<结构4>
264.在结构1或2所记载的控制系统中,
265.所述对照单元将由自身控制装置生成的所述第2固有信息、与2个以上的安全防护引擎分别保持的各共享信息进行对照,并基于与各共享信息进行对照后的结果,得到对照结果(sq108a-4~sq108-10、sq108a-4’~sq108a-9’)。
266.<结构5>
267.在结构1~4中的任意一项所记载的控制系统中,
268.所述控制装置由多个设备(100、200、300、400)构成,
269.所述多个设备包含具有所述控制引擎的控制设备(100)、和具有所述安全防护引擎的安全防护设备(200)。
270.<结构6>
271.在结构5所记载的控制系统中,
272.所述安全防护设备具有实现该安全防护设备的基本功能的系统程序(2082),
273.所述安全防护引擎是通过所述系统程序的执行而实现的功能。
274.<结构7>
275.在结构1~6中的任意一项所记载的控制系统中,
276.所述许可单元响应于所述控制程序的执行开始请求,在对自身控制装置的所述对照单元进行所述对照的请求而得到的所述对照结果满足预先确定的条件的情况下,对其他所述安全防护引擎所包含的所述对照单元进行所述对照的请求(sq104a、sq106a)。
277.<结构8>
278.一种控制装置(10x、10),其与其他控制装置之间构成控制系统,其中,该控制装置(10x、10)具有:
279.控制引擎(142x、1082),其执行用于对控制对象进行控制的控制程序;以及
280.安全防护引擎(230x、230),其管理所述控制引擎中的所述控制程序的能否执行,
281.所述安全防护引擎具有:
282.生成单元(234x、234),其生成表示构成自身控制装置的1个或多个设备的结构的固有信息;
283.保持单元(236x、236),其与其他控制装置之间,以分布式总账的形式保持共享信息(30x、30),所述共享信息(30x、30)至少包含按每个所述控制装置预先生成的第1固有信息(48);
284.对照单元(238x、238),其将由自身控制装置按照对照的请求而生成的第2固有信息(48)、与各安全防护引擎所保持的所述共享信息中的至少一个共享信息所包含的自身控制装置的所述第1固有信息进行对照;以及
285.许可单元(232x、232),其响应于所述控制程序的执行开始请求,对2个以上的对照单元分别进行所述对照的请求,并基于从所述2个以上的对照单元分别得到的对照结果,决定该控制程序的能否执行。
286.<结构9>
287.一种管理方法,其在具有构成为能够相互通信的多个控制装置(10x、10)的控制系统(1x、1)中执行,其中,该管理方法具有:
288.步骤((1)),在多个所述控制装置中,分别生成表示构成自身控制装置的1个或多
个设备的结构的第1固有信息;
289.步骤((1)),在多个所述控制装置之间,以分布式总账的形式保持共享信息,所述共享信息至少包含由各控制装置生成的所述第1固有信息;
290.步骤((2)、(3)),在接收到用于对控制对象进行控制的控制程序的执行开始请求的控制装置中,向保持所述共享信息的2个以上的控制装置进行对照的请求;
291.步骤((4)、(5)),在接收到所述对照的请求的各个控制装置中,生成表示构成自身控制装置的1个或多个设备的结构的第2固有信息;
292.步骤((6)),在接收到所述对照的请求的各个控制装置中,将由自身控制装置生成的所述第2固有信息、与各控制装置所保持的所述共享信息中的至少一个共享信息所包含的自身控制装置的所述第1固有信息进行对照;以及
293.步骤((7)、(8)),在从接收到所述对照的请求的各个控制装置得到的对照结果满足规定的条件的情况下,许可所述控制程序的执行。
294.应该认为本次公开的实施方式在所有方面都是例示而不是限制性的。本发明的范围由权利要求书、而不由上述的说明来表示,意在包含与权利要求书等同的意思以及范围内的所有变更。另外,在实施方式以及各变形例中说明的发明只要可能,可以单独也可以组合实施。
295.标号说明
296.1、1x、1a:控制系统;2:信息系统网络;4:现场网络;10、10x:控制措施;30、30x:共享信息;40:块;42:块哈希值;44:系统结构信息;46:随机数;48:系统哈希值;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、140x:控制程序;142:控制程序执行部;142x:控制引擎;200:安全防护单元;230:安全防护程序;230x:安全防护引擎;232、232x:许可部;234、234x:生成部;236、236x:保持部;236a:分发部;236b:挖掘部;236c:块哈希值运算部;238、238x:对照部;300:i/o单元;400:通信耦合器;1082、2082:系统程序;2322:判定部;2324:对照请求部;2342:收集请求部;2344:系统散列值运算部;2362:登记部;2364:检索部;id:识别数据。