控制装置及控制装置系统的制作方法

文档序号:20708782发布日期:2020-05-12 16:50阅读:103来源:国知局
控制装置及控制装置系统的制作方法

本发明涉及对事件的发生履历进行管理的控制装置及控制装置系统。



背景技术:

当前,在可编程逻辑控制器(programmablelogiccontroller:plc)这样的装置中,记录了工作中所发生事件的发生履历的信息。事件是以针对工作中的装置从外部的装置进行的各种信息的通知的接收为代表的预先决定好的装置的处理。就plc中的事件而言,例示出从plc所控制的被控制装置对plc进行的被控制装置中的传感器值的变化的通知、被控制装置中的输出值的变化的通知、及被控制装置中的允许范围外的输入输出的发生的通知这样的被控制装置中的状态的变化的通知的接收处理。

就plc而言,能够使用的存储器容量与个人计算机(personalcomputer:pc)或云计算相比极其小。另外,就plc而言,事件的信息的数据容量也少,计算机在事件的信息的记录时消耗的存储器的使用容量及计算量这样的计算机资源也少。因此,存在能够容易地将从plc的外部经由网络记录于plc单体的信息篡改的可能性。

另一方面,使用了如下技术,即,针对各个在工作中发生的事件,将之前的事件的信息的哈希值包含在内,对当前的事件的哈希值进行计算,由此对装置所记录的事件的发生履历的数据是正确的这一点进行验证。

在专利文献1中公开了如下技术,即,通过针对各个发生的事件信息对哈希值进行创建,生成对创建出的哈希值和事件信息进行记录的哈希节点,将它们按照生成顺序进行链锁,从而生成哈希节点链。在专利文献1的技术中,在对事件信息进行验证时,使用哈希节点所记录的哈希值和事件信息而对哈希节点链的合法性进行评价,对作为验证对象的事件信息和与其相关联的哈希节点所记录的事件信息是否一致进行验证。

专利文献1:日本专利第4235193号公报



技术实现要素:

但是,根据上述专利文献1的技术,1个事件信息的哈希值在事件履历信息存储系统中仅存储于1个哈希节点链存储服务器。在该情况下,存在如下问题,即,在篡改了所存储的哈希值的情况下,变得不能够对在装置记录的事件履历的数据为正确的数据这一点进行验证。

因此,优选通过在多个地方对事件信息的哈希值进行保存,从而能够分散在所记录的事件信息的哈希值被篡改的情况下无法对事件履历的数据为正确的数据这一点进行验证的风险,使得能够对事件履历的数据为正确的数据这一点进行验证。但是,在上述专利文献1的技术中,没有公开这样的风险分散。

本发明就是鉴于上述而提出的,其目的在于得到即使在控制装置所存储的事件履历的哈希值被篡改的情况下也能够对事件履历的数据是否为正确的数据这一点进行验证的控制装置。

为了解决上述课题,达成目的,本发明涉及的控制装置对被控制装置进行控制,该控制装置的特征在于,具有:存储部,其对控制装置的工作中所发生的事件的事件履历数据进行记录;哈希值计算部,其基于事件履历数据对哈希值进行计算;以及通信部,其将哈希值发送至控制装置的外部的其它控制装置。

发明的效果

本发明涉及的控制装置具有下述效果,即,得到一种控制装置,其即使在控制装置所存储的事件履历的哈希值被篡改的情况下也能够对事件履历的数据是否为正确的数据进行验证。

附图说明

图1是表示本发明的实施方式1涉及的控制装置即第一可编程逻辑控制器的功能结构例的图。

图2是表示本发明的实施方式1涉及的第一plc中的事件记录处理的流程的流程图。

图3是表示本发明的实施方式1涉及的第一plc中的事件履历数据的创建方法的图。

图4是表示本发明的实施方式1涉及的第一plc中的第一哈希值接收处理的流程的流程图。

图5是表示本发明的实施方式1涉及的控制装置系统即plc系统的结构例的图。

图6是表示本发明的实施方式1涉及的plc系统中对事件履历数据进行存储的情况下的数据流的一个例子的图。

图7是表示本发明的实施方式1涉及的plc系统的结构的图。

图8是表示本发明的实施方式1涉及的第一plc中的接收可否判定处理的流程的流程图。

图9是表示本发明的实施方式1涉及的第一plc中的包含接收可否判定处理的第二哈希值接收处理的流程的流程图。

图10是表示本发明的实施方式1涉及的第一plc中的将时刻通知功能和哈希值的发送组合后的第三哈希值接收处理的流程的流程图。

图11是表示本发明的实施方式1涉及的第一plc中的包含哈希值的搜索请求的发送处理的流程的流程图。

图12是表示本发明的实施方式1涉及的第一plc中的包含哈希值的搜索请求的接收处理的流程的流程图。

图13是表示本发明的实施方式1涉及的第一plc中的搜索响应可否判定处理的流程的流程图。

图14是表示本发明的实施方式1涉及的第一plc中的搜索响应处理的流程的流程图。

图15是说明本发明的实施方式1涉及的事件履历服务器所收集到的在plc的事件履历存储部中存储的事件履历的一个例子的图。

图16是示意性地表示计算机装置的结构的一个例子的框图,该计算机装置实现作为实施方式1涉及的plc的功能。

具体实施方式

下面,基于附图,对本发明的实施方式涉及的控制装置及控制装置系统详细地进行说明。此外,本发明不受本实施方式限定。

实施方式1.

图1是表示本发明的实施方式1涉及的控制装置即第一可编程逻辑控制器1的功能结构例的图。下面,将可编程逻辑控制器记为plc。第一plc1是执行程序而对被控制装置60进行控制的控制装置。被控制装置60通过通信线70而与第一plc1连接,能够与第一plc1进行通信。而且,第一plc1具有对工作中第一plc1所发生的事件的发生履历的信息即事件履历数据进行记录的功能、将事件履历数据的哈希值发送至其它plc的功能、及对从其它plc发送的哈希值进行存储的功能。以下,对第一plc1的功能详细地进行说明。

第一plc1具有:第一存储部110,其对第一plc1的工作中所发生的事件的事件履历数据及各种信息进行记录;第一控制部120,其进行与关于第一plc1内发生的事件的事件履历数据及哈希值的创建及存储相关的动作的控制、第一plc1整体的动作的控制;以及第一通信部130,其进行与在第一plc1的外部配置的其它装置的通信。上述各结构部彼此能够对信息进行通信地连接。

第一存储部110具有:第一事件履历存储部111,其对事件履历数据进行存储;第一哈希值履历存储部112,其对哈希值进行存储;以及第一程序存储部113,其存储用于对被控制装置60进行控制的控制程序及用于对第一plc1内的处理进行全面控制的控制程序。

第一plc1所发生的事件是针对工作中的第一plc1的各种信息的通知的接收处理、或以来自工作中的第一plc1的各种信息的发送处理为代表的第一plc1中的预先决定好的处理。就第一plc1所发生的事件而言,例示出从被控制装置60或第一plc1的外部的装置对工作中的第一plc1进行的各种信息的通知的后述第一哈希值计算部121中的接收处理。这里,作为与事件相当的各种信息,举出表示被控制装置60中的传感器值产生了变化这一含义的传感器值的变化信息、表示来自被控制装置60的输出值产生了变化这一含义的输出值的变化信息、由于被控制装置60处的允许范围外的输入输出而引起的警报信息这样的被控制装置60的状态的变化的信息、从第一plc1的外部的plc发送来的哈希值、时刻通知及搜索请求。

事件数据示出事件的内容,是与从在第一plc1的外部配置的装置向第一plc1进行的数据的发送的内容相关联的代码。另外,事件也可以构成为包含从第一plc1之外的装置接收到的信息。

事件履历数据是针对各个工作中的第一plc1所发生的事件由第一plc1创建出的表示事件的发生履历的数据。事件履历数据是针对各个在第一plc1发生的事件,将前一次由第一plc1创建出的哈希值、基于本次第一plc1所发生的事件创建出的本次的事件数据结合后的结合数据。

第一plc1对第一plc1工作中所发生的事件的信息进行收集,作为事件履历数据对收集到的数据进行存储。即,第一plc1对包含第一plc1工作中所发生的事件的事件数据的事件履历数据进行存储。

每当在第一plc1发生事件,第一事件履历存储部111对最新的事件履历数据进行存储。第一事件履历存储部111在存储有事件履历数据的状态下对新的事件履历数据进行存储的情况下,将已存储的事件履历数据删除。从第一事件履历存储部111删除的事件履历数据存储于用于收集事件履历的事件履历服务器这样的在第一plc1的外部设置的履历收集用存储装置10。履历收集用存储装置10通过通信线20而与第一plc1连接,能够与第一plc1进行通信。此外,履历收集用存储装置10与第一plc1的通信也可以是无线通信。针对第一事件履历存储部111的事件履历数据的存储处理、事件履历数据的删除处理、及向履历收集用存储装置10的事件履历数据的存储处理是通过后述的第一哈希值计算部121的控制进行的。

此外,第一事件履历存储部111也可以对预先设定好的既定个数的事件履历数据进行存储。在该情况下,第一事件履历存储部111在存储有既定个数的事件履历数据的状态下对新的事件履历数据进行存储时,将存储的时间早的事件履历数据删除。

哈希值是基于事件履历数据由第一哈希值计算部121计算出的事件履历数据的哈希值。

每当在第一plc1发生事件,第一哈希值履历存储部112对最新的事件履历数据的哈希值进行存储。第一哈希值履历存储部112在存储有哈希值的状态下对新的哈希值进行存储的情况下,将已存储的哈希值删除。从第一哈希值履历存储部112删除的哈希值被存储于用于收集哈希值的哈希值履历服务器这样的在第一plc1的外部设置的履历收集用存储装置10。针对第一哈希值履历存储部112的哈希值的存储处理、哈希值的删除处理、及向履历收集用存储装置10的哈希值的存储处理是通过后述的第一哈希值计算部121的控制进行的。

此外,第一哈希值履历存储部112也可以对预先设定好的既定个数的哈希值进行存储。在该情况下,第一哈希值履历存储部112在存储有既定个数的哈希值的状态下对新的哈希值进行存储时,将存储的时间早的哈希值删除。

第一控制部120通过执行在第一程序存储部113存储的程序,从而进行与事件履历数据及哈希值的创建及存储相关的动作的控制、包含针对被控制装置60的控制在内的第一plc1整体的动作的控制。第一控制部120具有第一哈希值计算部121、第一异常检测部122。

第一哈希值计算部121针对各个在第一plc1内发生的事件,对事件的事件数据进行创建,进而基于事件数据对哈希值进行计算。第一哈希值计算部121经由第一通信部130从第一plc1的外部对各种信息进行接收。另外,第一哈希值计算部121经由第一通信部130将各种信息发送至第一plc1的外部。

第一异常检测部122在将存储于第一事件履历存储部111的事件履历数据发送至事件履历服务器这样的履历收集用存储装置10时,对事件履历数据的哈希值进行重新计算,对重新计算出的哈希值的异常进行检测。

第一异常检测部122读出在第一事件履历存储部111存储的事件履历数据,对读出的事件履历数据的哈希值进行重新计算。在存储于第一哈希值履历存储部112的哈希值被篡改的情况下,在第一哈希值履历存储部112存储的哈希值与重新计算出的哈希值为不同的值。另外,在存储于第一事件履历存储部111的事件履历数据被篡改的情况下,在第一哈希值履历存储部112存储的哈希值与重新计算出的哈希值也为不同的值。因此,第一异常检测部122通过对进行了哈希值的重新计算的事件履历数据的在第一哈希值履历存储部112存储的哈希值,与重新计算出的哈希值进行比较,从而能够对重新计算出的哈希值的异常进行检测。

即,第一异常检测部122在存储于第一哈希值履历存储部112的哈希值与重新计算出的哈希值不同的情况下,判定为重新计算出的哈希值是异常的,在第一哈希值履历存储部112存储的哈希值或在第一事件履历存储部111存储的事件履历数据已被篡改。另外,第一异常检测部122在存储于第一哈希值履历存储部112的哈希值与重新计算出的哈希值为相同值的情况下,判定为重新计算出的哈希值是正常的,在第一哈希值履历存储部112存储的哈希值及在第一事件履历存储部111存储的事件履历数据的事件数据是通过第一plc1中的事件记录处理记录的正确的数据。

第一异常检测部122在检测出重新计算出的哈希值的异常的情况下,将在第一事件履历存储部111存储的事件履历数据废弃。因此,不从第一哈希值履历存储部112将检测出重新计算出的哈希值的异常的事件履历数据发送至外部的履历收集用存储装置10而是将其废弃。此外,第一异常检测部122进行重新计算的定时(timing)并不限于将事件履历数据发送至履历收集用存储装置10时,第一异常检测部122能够在任意的定时进行重新计算。

第一通信部130与包含履历收集用存储装置10及其它控制装置30的在第一plc1的外部配置的其它装置进行通信。第一通信部130通过第一哈希值计算部121的控制而与事件关联地将哈希值发送至其它控制装置30。这里,其它控制装置30是用于对第一plc1所发生的事件的事件履历数据的哈希值进行存储而与第一plc1进行信息共享的装置,是配置于第一plc1的外部的其它控制装置。其它控制装置30通过通信线40而与第一plc1连接,能够与第一通信部130进行通信。此外,其它控制装置30与第一通信部130的通信也可以是无线通信。

另外,第一通信部130从配置于第一plc1的外部的其它装置对成为事件的各种信息进行接收,发送至第一哈希值计算部121。作为成为事件的各种信息的例子,例示出其它plc所发生的事件的事件履历数据的哈希值。另外,作为成为事件的各种信息的其它例子,例示出从被控制装置60发送来的被控制装置60中的传感器值的变化信息、来自被控制装置60的输出值的变化信息、由于被控制装置60处的允许范围外的输入输出而引起的警报信息这样的信息。其它装置与第一通信部130之间的通信手段没有特别限制。

接着,对本实施方式1涉及的第一plc1中的基本的事件记录处理进行说明。图2是表示本发明的实施方式1涉及的第一plc1中的事件记录处理的流程的流程图。图3是表示本发明的实施方式1涉及的第一plc1中的事件履历数据的创建方法的图。

在第一plc1启动后,如果在第一plc1中发生了事件,则开始事件记录处理。在事件记录处理中,首先,在步骤s10中第一哈希值计算部121取得在第一哈希值履历存储部112存储的哈希值中的最新哈希值即“前一次的哈希值”。此外,将“前一次的事件的事件履历数据的哈希值”单纯地改称为“前一次的哈希值”。

接着,在步骤s20中第一哈希值计算部121如图3所示,将本次的事件数据与前一次的哈希值结合而如图3所示对事件履历数据进行创建。这里,第一哈希值计算部121在开始步骤s20时已经创建了本次的事件数据的情况下,使用已经创建的本次的事件数据而对事件履历数据进行创建。另外,第一哈希值计算部121在开始步骤s20时还没有创建本次的事件数据的情况下,基于本次第一plc1所发生的事件对本次的事件数据进行创建。然后,第一哈希值计算部121使用创建出的事件数据而对事件履历数据进行创建。

接着,在步骤s30中第一事件履历存储部111对事件履历数据进行存储。即,第一哈希值计算部121使创建出的事件履历数据存储于第一事件履历存储部111。另外,也可以将第一plc1所保存的当前时刻赋予给事件履历数据而记录于事件履历。

接着,在步骤s40中第一哈希值计算部121如图3所示,对将本次的事件数据与前一次的哈希值结合后的结合数据的哈希值,即事件履历数据的哈希值进行计算。然后,在步骤s40中计算出的哈希值为本次的哈希值。此外,将“本次的事件的事件履历数据的哈希值”单纯地改称为“本次的哈希值”。

接着,在步骤s50中第一哈希值履历存储部112对本次的哈希值进行存储。即,第一哈希值计算部121使计算出的本次的哈希值存储于第一哈希值履历存储部112。

接着,在步骤s60中第一哈希值计算部121对是否将计算出的本次的哈希值发送至既定的发送目标的其它plc进行判定。是否发送本次的哈希值是基于以几次中发送1次的频率将计算出的哈希值发送至其它装置这样的判定条件而决定的。判定条件是预先决定而存储于第一哈希值计算部121的。此外,判定条件也可以存储于第一plc1中的第一哈希值计算部121之外的结构部。

在判定为不发送本次的哈希值的情况下,即,在步骤s60中为no的情况下,结束一系列的事件记录处理。

在判定为发送本次的哈希值的情况下,即,在步骤s60中为yes的情况下,在步骤s70中第一哈希值计算部121将本次的事件的哈希值发送给既定的作为发送目标的其它plc,一系列的事件记录处理结束。通过进行以上处理而实施第一plc1中的事件记录处理。此外,对本次的事件的哈希值进行发送的作为发送目标的其它plc的数量没有限制。然后,在步骤s70中被发送了哈希值的其它plc对哈希值进行接收而存储。

然后,第一plc1的第一异常检测部122在上述事件记录处理后,读出在第一事件履历存储部111存储的事件履历数据,对读出的事件履历数据的哈希值进行重新计算。然后,第一异常检测部122通过对进行了哈希值的重新计算的事件履历数据的在第一哈希值履历存储部112存储的哈希值,与重新计算出的哈希值进行比较,从而对重新计算出的哈希值的异常进行检测。

如上所述,就第一plc1而言,第一哈希值计算部121具有将第一plc1所发生的事件的事件履历数据的哈希值发送至其它plc的功能。因此,将与第一plc1所发生的1个事件对应的哈希值存储于第一plc1和其它plc这多个装置。由此,在与第一plc1和其它plc分开设置的验证装置中,通过对在第一plc1和其它plc存储的2个哈希值进行比较,能够对在第一plc1存储的哈希值是否为由第一plc1的事件记录处理记录的正确的哈希值进行验证。即,第一plc1在存储于第一plc1和其它plc的1个事件所对应的哈希值为不同的值的情况下,能够对在第一plc1存储的哈希值的篡改进行检测。因此,第一plc1通过将在第一plc1存储的第一plc1的事件的哈希值与在第一plc1存储的哈希值进行比较,能够容易地对在第一plc1存储的事件的哈希值的篡改进行检测。

另外,如上所述,第一异常检测部122能够对重新计算出的哈希值是正常还是异常进行判定,能够对在第一哈希值履历存储部112存储的哈希值及在第一事件履历存储部111存储的事件履历数据是否为正确的数据进行验证。

接着,对在第一plc1从其它plc接收到哈希值的情况下的第一plc1中的事件记录处理进行说明。其它plc具有与第一plc1相同的功能。图4是表示本发明的实施方式1涉及的第一plc1中的第一哈希值接收处理的流程的流程图。

在第一plc1启动后,在既定的定时开始第一哈希值接收处理。首先,在步骤s110中第一哈希值计算部121对是否从其它plc接收了哈希值进行判定。第一通信部130在从其它plc接收到包含哈希值的通信信息的情况下,将包含哈希值的通信信息发送至第一哈希值计算部121。因此,第一哈希值计算部121能够根据是否从第一通信部130接收了包含哈希值的通信信息,对是否从其它plc接收了哈希值进行判定。

在判定为没有从其它plc接收哈希值的情况下,即,在步骤s110中为no的情况下,一系列的事件记录处理结束。

在判定为从其它plc接收了哈希值的情况下,即,在步骤s110中为yes的情况下,在步骤s120中第一哈希值计算部121从包含哈希值的通信信息读出接收到的哈希值。

接着,在步骤s130中第一哈希值计算部121基于读出的哈希值,对包含读出的哈希值的事件数据进行创建。而且,在步骤s130中创建出的事件数据成为以其它plc的哈希值的接收作为事件的事件数据。

接着,在步骤s140中第一哈希值计算部121进行图2所示的事件记录处理。通过进行以上处理,从而第一plc1实施从其它plc接收到哈希值的情况下的事件记录处理。第一哈希值接收处理可以以固定周期执行,也可以在第一plc1每次对事件履历数据进行保存时执行,能够以在第一plc1设定的任意的定时及任意的频度执行。

如上所述,就第一plc1而言,第一哈希值计算部121除了具有将第一plc1所发生的事件的事件履历数据的哈希值发送至其它plc的功能之外,还具有使从其它plc发送的哈希值包含于事件履历数据而存储于第一事件履历存储部111的功能。而且,第一plc1通过进行上述第一哈希值接收处理,能够对其它plc的事件的事件履历数据的哈希值进行接收而存储于第一plc1。

由此,将与第一plc1所发生的事件对应的哈希值存储于第一plc1和其它plc这多个装置。第一plc1通过由与第一plc1和其它plc分开设置的验证装置,对在第一plc1和其它plc存储的1个事件所对应的2个哈希值进行比较,能够对在第一plc1存储的哈希值是否为由第一plc1的事件记录处理记录的正确的哈希值进行验证。即,第一plc1在存储于第一plc1和其它plc的1个事件所对应的哈希值为不同的值的情况下,能够对在第一plc1存储的哈希值的篡改进行检测。

另外,将与其它plc所发生的1个事件对应的哈希值存储于第一plc1和其它plc这多个装置。在该情况下,通过由验证装置对在第一plc1和其它plc存储的1个事件所对应的2个哈希值进行比较,能够对在其它plc存储的哈希值是否为由其它plc中的事件记录处理记录的正确的哈希值进行验证。即,其它plc在存储于第一plc1和其它plc的1个事件所对应的哈希值为不同的值的情况下,能够对在其它plc存储的哈希值的篡改进行检测。因此,其它plc即使在存储于其它plc的事件的哈希值被进行了篡改的情况下,通过对在其它plc存储的事件的哈希值与在第一plc1存储的其它plc的事件的哈希值进行比较,也能够容易地对在其它plc存储的事件的哈希值的篡改进行检测。

在1台第一plc1中执行图2及图4所示的处理。将具有该第一plc1的功能的2台plc组合后的结构成为能够彼此对其它plc的哈希值进行存储的最小plc系统的结构。下面示出在这样的plc系统的结构中对各plc中的哈希值进行存储的情况下的数据流。

图5是表示本发明的实施方式1涉及的控制装置系统即plc系统300的结构例的图。图5所示的plc系统300是第一plc1和第二plc2能够通过网络50进行通信,在第一plc1和第二plc2之间能够彼此对哈希值进行存储的最小的plc系统。在该情况下,第一plc1和第二plc2中的一个plc具有作为在另一个plc的外部配置的其它控制装置30的功能。

第二plc2具有与第一plc1同样的结构及功能。即,第二plc2具有第二存储部210、第二控制部220、第二通信部230。上述各结构部彼此以能够对信息进行通信的方式连接。第二存储部210与第一存储部110对应,第二控制部220与第一控制部120对应,第二通信部230与第一通信部130对应。

第二存储部210具有第二事件履历存储部211、第二哈希值履历存储部212、第二程序存储部213。第二事件履历存储部211与第一事件履历存储部111对应,第二哈希值履历存储部212与第一哈希值履历存储部112对应,第二程序存储部213与第一程序存储部113对应。

第二控制部220具有第二哈希值计算部221、第二异常检测部222。第二哈希值计算部221与第一哈希值计算部121对应,第二异常检测部222与第一异常检测部122对应。

第一plc1和第二plc2彼此通过周期通信对各plc所发生的最新的事件的事件履历的哈希值进行发送。接收到最新的事件履历的哈希值的plc将接收到的哈希值存储为事件履历数据,对该事件履历数据的哈希值进行计算、存储。第一plc1基于从第二plc2接收到的哈希值对事件数据进行创建,进而根据该事件数据和第一plc1中的前一次的哈希值对事件履历数据进行创建、存储。第二plc2基于从第一plc1接收到的哈希值对事件数据进行创建,进而根据该事件数据和第二plc2中的前一次的哈希值对事件履历数据进行创建、存储。即,通过第一plc1和第二plc2彼此进行事件履历的哈希值的收发,从而在所存储的事件履历中包含另一个plc的事件履历的哈希值,因此形成第一plc1和第二plc2这两者的事件履历数据的哈希链。

此外,在plc系统300中,能够彼此存储其它plc的哈希值,但并非必须彼此交换哈希值,也能够设为将一个plc的哈希值发送至另一个plc而进行存储的结构。

图6是表示本发明的实施方式1涉及的plc系统300中对事件履历数据进行存储的情况下的数据流的一个例子的图。此外,下面,在不区分第一plc1和第二plc2的情况下,有时单纯称为plc。

在图6所示的例子中,在第一plc1中,第一哈希值计算部121对由第一plc1内所发生的事件的事件数据即事件数据a1和前一次的事件的哈希值ha1构成的事件履历数据进行创建,进而对创建出的事件履历数据的哈希值ha2进行计算。第一哈希值计算部121使创建出的事件履历数据存储于第一事件履历存储部111,使创建出的哈希值ha2存储于第一哈希值履历存储部112。另外,第一哈希值计算部121将创建出的哈希值ha2发送至第二plc2。

接着,第一哈希值计算部121对由第一plc1内所发生的事件的事件数据即事件数据a2和前一次的事件的哈希值ha2构成的事件履历数据进行创建,进而对创建出的事件履历数据的哈希值ha3进行计算。第一哈希值计算部121使创建出的事件履历数据存储于第一事件履历存储部111,使创建出的哈希值ha3存储于第一哈希值履历存储部112。

接着,第一哈希值计算部121对由从第二plc2发送来的哈希值hb4的事件数据即事件数据a3和前一次的事件的哈希值ha3构成的事件履历数据进行创建,进而对创建出的事件履历数据的哈希值ha4进行计算。这里,事件数据a3构成为包含从第二plc2发送来的哈希值hb4。

另一方面,在图6所示的例子中,在第二plc2中,第二哈希值计算部221对由第二plc2内所发生的事件的事件数据即事件数据b1和前一次的事件的哈希值hb1构成的事件履历数据进行创建,进而对创建出的事件履历数据的哈希值hb2进行计算。第二哈希值计算部221使创建出的事件履历数据存储于第二事件履历存储部211,使创建出的哈希值hb2存储于第二哈希值履历存储部212。

接着,第二哈希值计算部221对由从第二plc2发送来的哈希值ha2的事件数据即事件数据b2和前一次的事件的哈希值hb2构成的事件履历数据进行创建,进而对创建出的事件履历数据的哈希值hb3进行计算。第二哈希值计算部221使创建出的事件履历数据存储于第二事件履历存储部211,使创建出的哈希值hb3存储于第二哈希值履历存储部212。这里,事件数据b2构成为包含从第一plc1发送来的哈希值ha2。

接着,第二哈希值计算部221对由第二plc2内所发生的事件的事件数据即事件数据b3和前一次的事件的哈希值hb3构成的事件履历数据进行创建,进而对创建出的事件履历数据的哈希值hb4进行计算。第二哈希值计算部221使创建出的事件履历数据存储于第二事件履历存储部211,使创建出的哈希值hb4存储于第二哈希值履历存储部212。另外,第二哈希值计算部221将创建出的哈希值hb4发送至第一plc1。

第一plc1和第二plc2中的事件履历的哈希值的发送的定时没有特别限制。哈希值的发送的定时除了如上所述在各plc中在每次对事件履历数据进行记录时进行的方式之外,也可以在所存储的事件履历的哈希值积攒了既定的数量的情况下间歇地进行发送。但是,以对在各plc中存储的事件履历的正确的哈希值进行发送,存储于另一个plc的观点出发,优选在各plc中在每次对事件履历数据进行记录时进行的方式。

另外,在对发送来的哈希值进行接收的接收侧的plc中,不需要每次对发送来的哈希值进行接收而存储,只要与接收侧的plc的使用条件相匹配地对哈希值进行接收而存储即可。在对发送来的哈希值进行接收的接收侧的plc中,即使存在丢失哈希值而未能存储的情况也没关系。即,接收侧的动作也可以并未可靠地执行,只要在能够接收的范围内进行存储处理即可。由此,在电池驱动等的无线通信网络中,能够对进行收发处理的动作的频度进行抑制而对电力消耗进行抑制。

如上所述,就plc系统300而言,第一plc1和第二plc2这2台plc彼此实施图6所示的处理。由此,2台plc通过彼此对哈希值进行发送而彼此对对方侧的plc的哈希值进行存储,因此在2台plc中对一个plc所发生的相同事件的事件履历数据的哈希值进行存储。因此,plc系统300即使在2台plc中的一个所存储的事件的哈希值被进行了篡改的情况下,也能够通过对在2台plc存储的哈希值进行比较,容易地对哈希值的篡改进行检测。另外,能够构成具有与第一plc1相同功能的大于或等于3台的多个plc彼此可通信地连接的plc系统。各plc对由哈希值计算部计算出的哈希值、plc系统中的其它多个plc中的至少1个plc的哈希值进行存储。即,各plc能够通过与其它plc之间对哈希值进行发送而彼此对对方侧的plc的哈希值进行存储。

此外,在plc系统300中作为用于使1个事件的哈希值存储于其它装置而进行信息共享的其它控制装置30使用了plc,但作为其它控制装置30,能够使用对当前的时刻进行管理的当前时刻管理服务器、对事件数据进行存储的事件履历存储服务器。在将当前时刻管理服务器用作其它控制装置30的情况下,将plc所发生的事件的事件履历数据的哈希值存储于plc和当前时刻管理服务器。在将事件履历存储服务器用作其它控制装置30的情况下,将plc所发生的事件的事件履历数据的哈希值存储于plc和事件履历存储服务器。

另外,当设想为在plc系统300中将以一定频率发生发送出的数据的消失、发送数据的乱码、接收数据的丢失的不可靠的网络用作网络50的情况下,会发生不能够接收应该接收的哈希值的状况。对于这样的不可靠的网络,发送侧的plc也可以在对哈希值进行发送时将事件履历数据的实际数据和本次的哈希值发送至接收侧的plc。即,发送侧的plc也可以对前一次的事件的哈希值、本次的事件数据、本次的事件的哈希值进行发送。由此,将与事件关联的哈希值发送至其它控制装置30即接收侧的plc。

接收侧的plc将事件履历数据的实际数据和哈希值一起进行存储。在该情况下,接收侧的plc通过由异常检测部即第一异常检测部122或第二异常检测部222使用事件履历数据的实际数据而对哈希值进行重新计算,能够对接收到的事件履历数据的实际数据及哈希值是正确的这一点进行验证。另外,在重新计算的结果是,事件履历数据的实际数据及哈希值不正确,检测出这些数据破损的情况下,将接收数据废弃。就接收侧的plc而言,进行上述重新计算的定时没有限制,可以在接收到哈希值和事件履历数据的实际数据时进行,也可以在其它定时进行。

另外,哈希值的发送侧的plc也可以将向不可靠的网络发送了哈希值这一点存储于事件履历存储部即第一事件履历存储部111或第二事件履历存储部211。在对表示发送了哈希值的事件履历数据进行创建而存储于事件履历存储部的情况下,通过从哈希值的发送侧的plc和哈希值的接收侧的plc读出事件履历数据而进行验证,能够对在发送侧的plc保存的哈希值、发送侧的plc原本应该接收的哈希值之间存在差异进行检测。此外,即使接收侧的plc丢失了接收到的哈希值,读出的那部分的哈希值是能够进行验证的,能够根据发送侧的plc所发送出的哈希值的履历对丢失的程度进行计算。因此,根据这些信息,能够定量地对网络的不可靠度、及接收而存储的哈希值的可靠度进行计算。

接着,说明并非无限制、无条件地对从其它plc发送的哈希值进行存储,而是限制性地进行存储的情况。图7是表示本发明的实施方式1涉及的plc系统400的结构的图。plc系统400是通过网络50将具有与第一plc1相同的功能的很多台plc连接而构成,能够通过其它的多台plc对1台plc所发生的事件的事件履历数据的哈希值进行存储的plc系统。下面,针对plc系统400,说明包含对是否能够接收从其它plc发送的哈希值进行判定的接收可否判定处理的第二哈希值接收处理。plc系统400构成为包含第一plc1及第二plc2的具有与第一plc1相同的功能的n台plc彼此能够进行通信。此外,下面,对第一plc1中的处理进行说明,但由于构成plc系统400的plc具有与第一plc1相同的功能,因此在构成plc系统400的全部plc中,能够进行如下所示的处理。

首先,说明对第一plc1是否能够接收从其它plc发送的哈希值进行判定的接收可否判定处理。图8是表示本发明的实施方式1涉及的第一plc1中的接收可否判定处理的流程的流程图。

在第一plc1启动后,如果从plc系统400中的其它plc向第一通信部130发送了包含哈希值的通信信息,则开始接收可否判定处理。首先,在步骤s210中第一plc1的第一通信部130对从plc系统400中的其它plc发送来的包含哈希值的通信信息是否为从哈希值的登记控制装置即哈希值的登记plc发送来的通信信息进行判定。哈希值的登记plc是在从plc系统400中的其它plc发送了包含哈希值的通信信息的情况下,plc系统400中的其它plc中的在第一plc1中被登记为允许哈希值的接收的plc的plc。作为哈希值的登记plc的信息,例示出发送源plc的ip(internetprotocol)地址或端口编号这样的信息,被预先决定而登记于第一通信部130。此外,允许接收的plc的信息也可以存储于第一plc1中的第一通信部130之外的结构部。

在从其它plc发送来的包含哈希值的通信信息不是从登记plc发送来的通信信息的情况下,即,在步骤s210中为no的情况下,在步骤s250中第一通信部130判定为不接收包含哈希值的通信信息。

另一方面,在从其它plc发送来的包含哈希值的通信信息是从登记plc发送来的通信信息的情况下,即,在步骤s210中为yes的情况下,第一通信部130进入步骤s220。在步骤s220中第一通信部130对从其它plc发送来的包含哈希值的通信信息所包含的认证信息,与向允许哈希值的接收的控制装置即plc赋予的认证信息是否一致进行判定。向允许哈希值的接收的plc赋予的认证信息被预先决定而登记于第一通信部130。此外,允许哈希值的接收的plc的信息也可以存储于第一plc1中的第一通信部130之外的结构部。

在从其它plc发送来的包含哈希值的通信信息所包含的认证信息与向允许哈希值的接收的plc赋予的认证信息不一致的情况下,即,在步骤s220中为no的情况下,在步骤s250中第一通信部130判定为不接收包含哈希值的通信信息。

另一方面,在从其它plc发送来的包含哈希值的通信信息所包含的认证信息与向允许哈希值的接收的plc赋予的认证信息一致的情况下,即,在步骤s220中为yes的情况下,第一通信部130进入步骤s230。在步骤s230中第一通信部130判定从来自该登记plc的包含哈希值的通信信息的前一次接收算起,是否经过了既定时间以上。既定时间是从来自登记plc的包含哈希值的通信信息的前一次接收起的接收后经过时间,针对登记plc预先决定而登记于第一通信部130。此外,既定时间的信息也可以存储于第一plc1中的第一通信部130之外的结构部。

在没有经过既定时间以上的情况下,即,在步骤s230中为no的情况下,在步骤s250中第一通信部130判定为不接收包含哈希值的通信信息。

另一方面,在经过了既定时间以上的情况下,即,在步骤s230中为yes的情况下,在步骤s240中第一通信部130判定为接收包含哈希值的通信信息。

接着,对包含上述接收可否判定处理的第二哈希值接收处理进行说明。图9是表示本发明的实施方式1涉及的第一plc1中的包含接收可否判定处理的第二哈希值接收处理的流程的流程图。

在第一plc1启动后,如果从plc系统400中的其它plc向第一通信部130发送了包含哈希值的通信信息,则开始第二哈希值接收处理。首先,在步骤s310中第一通信部130进行图8所示的接收可否判定处理。

接着,在步骤s320中第一通信部130基于接收可否判定处理的判定结果决定是否对从其它plc发送来的哈希值进行接收。

在基于接收可否判定处理的判定结果,决定为不对从其它plc发送来的哈希值进行接收的情况下,即,在步骤s320中为no的情况下,一系列的第二哈希值接收处理结束。

另一方面,在基于接收可否判定处理的判定结果,决定为对从其它plc发送来的哈希值进行接收的情况下,即,在步骤s320中为yes的情况下,在步骤s330中第一通信部130对从其它plc发送来的哈希值进行接收。

接着,在步骤s340中第一哈希值计算部121进行图4所示的第一哈希值接收处理,一系列的第二哈希值接收处理结束。

上述接收可否判定处理进行如下判定处理,该判定处理针对是否对从其它plc发送来的包含哈希值的通信信息进行接收,将登记plc、认证信息及接收后经过时间用作可否接收的判定条件。即,第一plc1所实施的接收可否判定处理为由发送了包含哈希值的通信信息的其它plc与第一plc1之间的相互认证得到的哈希值的滤波功能。

因此,第一plc1通过实施包含接收可否判定处理的第二哈希值接收处理,能够仅在满足既定条件的情况下,对以哈希值的接收作为事件的事件履历数据进行存储。由此,第一plc1会作为降低由于dos(denialofserviceattack)攻击、由欺诈造成的数据篡改、单纯的处理遗漏、及丢失这样的损害而遭受的损失的对策发挥效果。另外,在plc系统400中在多个plc间进行哈希值的收发的情况下,由于1台plc中的哈希值的接收处理变多,因此在接收时哈希值的丢失有可能增加。第一plc1通过使用上述第二哈希值接收处理,从而能够进行哈希值的选择,能够降低哈希值的接收的丢失。

此外,在上述中,将登记plc、认证信息及接收后经过时间用作可否接收的判定条件,但上述可否接收的判定条件并不限于这些。因此,接收可否判定处理并不限于上述处理。

就第一plc1而言,发送哈希值的命令也可以不是独立的命令,而是由与其它命令组合后的命令实现的。特别地,作为将其它功能的命令用于哈希值的发送的方式,存在将哈希值包含于对当前时刻进行通知的时刻通知功能所使用的通信、或对其它plc进行搜索的搜索功能所使用的通信这样的定期执行的通信而进行发送的方式。

首先,说明将对当前时刻进行通知的时刻通知功能所使用的通信用于哈希值的发送。即,对plc系统400中的第一plc1将哈希值的发送与第一plc1所具有的时刻通知功能组合而执行的情况下的哈希值接收处理进行说明。

这里,第一plc1具有将由第一控制部120所具有的时钟功能进行计数的当前的时刻信息报知给其它plc的时刻通知功能。而且,在图2的步骤s70中第一plc1能够使第一plc1中的事件的哈希值包含于对plc系统400中的其它plc通知当前的时刻信息的时刻通知而向其它plc发送。另外,plc系统400中的第一plc1之外的plc也同样如此。

图10是表示本发明的实施方式1涉及的第一plc1中的将时刻通知功能和哈希值的发送组合后的第三哈希值接收处理的流程的流程图。在第一plc1启动后,如果从plc系统400中的其它plc向第一通信部130发送了时刻通知,则开始第三哈希值接收处理。首先,在步骤s410中第一通信部130对从plc系统400中的其它plc发送来的时刻通知是否包含有哈希值进行判定。

在时刻通知包含有哈希值的情况下,即,在步骤s410中为yes的情况下,在步骤s420中第一通信部130针对哈希值进行图8所示的接收可否判定处理。

接着,在步骤s430中第一通信部130基于接收可否判定处理的判定结果决定是否对哈希值进行接收。

在基于接收可否判定处理的判定结果,决定为对哈希值进行接收的情况下,即,在步骤s430中为yes的情况下,在步骤s440中第一通信部130对时刻通知和哈希值进行接收。然后,第一通信部130将哈希值及时刻通知发送至第一哈希值计算部121。

接着,在步骤s450中第一哈希值计算部121进行图4所示的第一哈希值接收处理。

接着,在步骤s460中第一哈希值计算部121判定是否对时刻通知进行记录。第一哈希值计算部121基于预先决定而存储于第一哈希值计算部121的判定基准,判定是否对时刻通知进行记录。

在判定为对时刻通知进行记录的情况下,即,在步骤s460中为yes的情况下,在步骤s470中第一哈希值计算部121基于接收到的时刻通知对事件数据进行创建。即,第一哈希值计算部121对以时刻通知的接收作为事件的事件数据进行创建。

接着,在步骤s480中第一哈希值计算部121进行图2所示的事件记录处理,一系列的第三哈希值接收处理结束。

返回到步骤s410,在时刻通知不包含哈希值的情况下,即,在步骤s410中为no的情况下,第一通信部130对时刻通知进行接收而发送至第一哈希值计算部121,进入步骤s460。

返回到步骤s430,在基于接收可否判定处理的判定结果,决定为不对哈希值进行接收的情况下,即,在步骤s430中为no的情况下,第一通信部130不对哈希值进行接收,仅对时刻通知进行接收而发送至第一哈希值计算部121,进入步骤s460。

返回到步骤s460,在判定为不对时刻通知进行记录的情况下,即,在步骤s460中为no的情况下,一系列的第三哈希值接收处理结束。

第一plc1通过实施图10所示的第三哈希值接收处理,能够对包含于时刻通知而从其它plc发送来的哈希值进行存储。而且,第一plc1通过参照基于时刻通知而存储的事件履历,还能够通过在哈希链之外对基于时刻通知存储的事件履历进行比较来判定已由其它plc开始记录plc系统400中的任意plc处出现的哈希值。此外,上述处理为将时刻通知的接收和哈希值的接收合为1个的情况下的处理的一个例子,将时刻通知的接收和哈希值的接收合为1个的情况下的处理并不限于上述流程。

接着,对将搜索其它plc的搜索功能所使用的通信用于哈希值的发送的情况进行说明。将plc的搜索功能所使用的通信用于哈希值的发送的情况下的第一plc1的哈希值的接收动作也为与利用了上述plc的时刻通知功能的情况同样的处理。但是,在该情况下,由于在不存在发送搜索请求的发送目标plc的信息的状态下进行搜索请求的发送,因此需要进行广播发送。另外,搜索请求的接收侧的plc需要针对搜索请求而返回响应。

首先,对搜索请求的发送处理进行说明。图11是表示本发明的实施方式1涉及的第一plc1中的包含哈希值的搜索请求的发送处理的流程的流程图。在第一plc1启动后,在既定的定时开始包含哈希值的搜索请求的发送处理。首先,在步骤s510中第一哈希值计算部121取得存储于第一哈希值履历存储部112的哈希值。

接着,在步骤s520中第一哈希值计算部121将哈希值包含在搜索请求内对搜索请求的数据进行创建。

接着,在步骤s530中第一哈希值计算部121通过广播发送将包含哈希值的搜索请求发送至plc系统400中的全部plc。

接着,对由第一plc1进行搜索请求接收处理的情况进行说明,该搜索请求接收处理对通过图11的流程图所示的处理而广播发送来的包含哈希值的搜索请求进行接收。图12是表示本发明的实施方式1涉及的第一plc1中的包含哈希值的搜索请求的接收处理的流程的流程图。在第一plc1启动后,如果从plc系统400中的其它plc向第一通信部130发送了搜索请求,则开始包含哈希值的搜索请求的接收处理。首先,在步骤s610中第一通信部130对从plc系统400中的其它plc发送来的搜索请求是否包含有哈希值进行判定。

在搜索请求包含有哈希值的情况下,即,在步骤s610中为yes的情况下,在步骤s620中第一通信部130针对哈希值进行图8所示的接收可否判定处理。

接着,在步骤s630中第一通信部130基于接收可否判定处理的判定结果决定是否对哈希值进行接收。

在基于接收可否判定处理的判定结果,决定为对哈希值进行接收的情况下,即,在步骤s630中为yes的情况下,在步骤s640中第一通信部130对搜索请求和哈希值进行接收。然后,第一通信部130将哈希值及搜索请求发送至第一哈希值计算部121。

接着,在步骤s650中第一哈希值计算部121进行图4所示的第一哈希值接收处理。

接着,在步骤s660中第一哈希值计算部121实施搜索响应可否判定处理,在该搜索响应可否判定处理中判定可否对搜索请求进行响应。后面对搜索响应可否判定处理进行叙述。

接着,在步骤s670中第一哈希值计算部121基于搜索响应可否判定处理的判定结果,决定是否对搜索请求进行响应。第一哈希值计算部121基于预先决定而存储于第一哈希值计算部121的判定基准,判定是否对搜索请求进行响应。

在基于搜索响应可否判定处理的判定结果决定为对搜索请求进行响应的情况下,即,在步骤s670中为yes的情况下,在步骤s680中第一哈希值计算部121进行对搜索请求作出响应的搜索响应处理,一系列的搜索请求接收处理结束。

返回到步骤s610,在搜索请求不包含哈希值的情况下,即,在步骤s610中为no的情况下,第一通信部130对搜索请求进行接收而发送至第一哈希值计算部121,进入步骤s660。

返回到步骤s630,在基于接收可否判定处理的判定结果,决定为不对哈希值进行接收的情况下,即,在步骤s630中为no的情况下,第一通信部130不对哈希值进行接收,仅对搜索请求进行接收而发送至第一哈希值计算部121,进入步骤s660。

返回到步骤s670,在不对搜索请求进行响应的情况下,即,在步骤s670中为no的情况下,一系列的搜索请求接收处理结束。

接着,对第一plc1进行搜索响应可否判定处理的情况进行说明。图13是表示本发明的实施方式1涉及的第一plc1中的搜索响应可否判定处理的流程的流程图。

首先,在步骤s710中第一plc1的第一哈希值计算部121判定从plc系统400中的其它plc发送来的搜索请求是否为从对搜索请求的响应的登记控制装置即对搜索请求的响应的登记plc发送来的搜索请求。对搜索请求的响应的登记plc是作为在从plc系统400中的其它plc发送了搜索请求的情况下,允许对搜索请求的响应的plc登记的plc。对搜索请求的响应的登记plc的信息被预先决定而登记于第一通信部130。此外,登记plc的信息也可以存储于第一plc1中的第一通信部130之外的结构部。

在搜索请求不是从登记plc发送来的通信信息的情况下,即,在步骤s710中为no的情况下,在步骤s750中第一哈希值计算部121判定为不对搜索请求进行响应。

另一方面,在搜索请求为从登记plc发送来的搜索请求的情况下,即,在步骤s710中为yes的情况下,第一哈希值计算部121进入步骤s720。在步骤s720中第一哈希值计算部121对搜索请求所包含的认证信息与赋予给登记plc的认证信息是否一致进行判定。赋予给登记plc的认证信息被预先决定而登记于第一哈希值计算部121。此外,赋予给登记plc的认证信息也可以存储于第一plc1中的第一哈希值计算部121之外的结构部。

在搜索请求所包含的认证信息与赋予给登记plc的认证信息不一致的情况下,即,在步骤s720中为no的情况下,在步骤s750中第一哈希值计算部121判定为不对搜索请求进行响应。

另一方面,在搜索请求所包含的认证信息与赋予给登记plc的认证信息一致的情况下,即,在步骤s720中为yes的情况下,第一哈希值计算部121进入步骤s730。在步骤s730中第一哈希值计算部121判定从来自发送了该搜索请求的登记plc的前一次的搜索请求的接收算起,是否经过了既定时间以上。既定时间是从由登记plc发送来的前一次的搜索请求的接收算起的接收后经过时间,登记plc被预先决定而登记于第一哈希值计算部121。此外,既定时间的信息也可以存储于第一plc1中的第一哈希值计算部121之外的结构部。

在没有经过既定时间以上的情况下,即,在步骤s730中为no的情况下,在步骤s750中第一哈希值计算部121判定为不对搜索请求进行响应。

另一方面,在经过了既定时间以上的情况下,即,在步骤s730中为yes的情况下,在步骤s740中第一哈希值计算部121判定为对搜索请求进行响应。

接着,对第一plc1进行搜索响应处理的情况进行说明。图14是表示本发明的实施方式1涉及的第一plc1中的搜索响应处理的流程的流程图。

首先,在步骤s810中第一哈希值计算部121对是否将哈希值发送至作为搜索请求的发送源的plc进行判定。是否发送哈希值是基于既定的判定条件决定的。判定条件被预先决定而存储于第一哈希值计算部121。此外,判定条件也可以存储于第一plc1中的第一哈希值计算部121之外的结构部。

在判定为将哈希值发送至作为搜索请求的发送源的plc的情况下,即,在步骤s810中为yes的情况下,在步骤s820中第一哈希值计算部121取得存储于第一哈希值履历存储部112的哈希值。

接着,在步骤s830中第一哈希值计算部121作为对搜索请求的响应,对包含哈希值的搜索响应的数据进行创建。

接着,在步骤s840中第一哈希值计算部121将包含哈希值的搜索响应发送至作为搜索请求的发送源的plc,一系列的搜索响应处理结束。

返回到步骤s810,在判定为不将哈希值发送至作为搜索请求的发送源的plc的情况下,即,在步骤s810中为no的情况下,在步骤s850中第一哈希值计算部121作为对搜索请求的响应,对不包含哈希值的搜索响应的数据进行创建。然后,实施步骤s840,一系列的搜索响应处理结束。

第一plc1通过实施图12所示的搜索请求的接收处理,能够对包含于搜索请求而从其它plc发送来的哈希值进行存储。另外,第一plc1也可以与图10所示的第三哈希值接收处理的情况同样地,基于搜索请求对事件履历进行存储。通过参照基于搜索请求而存储的事件履历,还能够通过在哈希链之外对基于搜索请求存储的事件履历进行比较,判定已由其它plc开始记录plc系统400中的任意plc处出现的哈希值。

此外,在图12中,在搜索请求的响应之前进行哈希值的接收处理,但也可以设为仅在对搜索请求进行了响应的情况下进行哈希值的接收处理的处理。此外,上述处理为将搜索请求的接收和哈希值的接收合为1个的情况下的处理的一个例子,将搜索请求的接收和哈希值的接收合为1个的情况下的处理并不限于上述流程。

另外,广播通信成为对网络的负荷大幅加重的原因。因此,在通过接收搜索响应而使得作为通信目标的plc变得明确的情况下,也可以对通信方式进行变更。这里,相对于广播,通过采用由接收侧的具有空闲的plc进行响应,确立收发的关系的方式,能够针对各个plc对通信的相邻关系进行构建。而且,发送侧的plc通过进行将哈希值发送至相邻关系的邻近的plc的处理,能够不增加网络的负荷地对哈希值进行收发。即,也可以分别构成通常的通信中的数据的通信路径、哈希值的通信路径。

另外,在上述中,作为发送哈希值的方法,示出了一对一的关系的通信及广播,但作为发送哈希值的方式也可以使发送是单向的。根据网络的不同,周期通信有时不是可靠地进行接收的方法。在这样的周期通信中,也可以采用如下结构,即,作为公开始终持续对数据进行更新的状态的发送侧plc的数据,持续发送当前的最新的哈希值。另外,也可以依次将哈希值发送至能够期待可靠地进行接收的预先登记的地址或通过搜索而检测出的1个或多个地址。

接着,说明将在plc系统400中的多个plc即第一plc1、第二plc2、第三plc3、…第nplcn的各事件履历存储部存储的事件履历收集到1处时的事件履历的例子。

图15是说明本发明的实施方式1涉及的事件履历服务器500所收集到的在plc的事件履历存储部中存储的事件履历的一个例子的图。事件履历服务器500为上述履历收集用存储装置10,是对plc系统400中的多个plc的各事件履历存储部所存储的事件履历进行收集而存储的事件履历的存储服务器。在图15中,在图中的各plc的下方示出在各plc存储的事件的详情。这里,示出能够在各plc存储6个事件履历的情况。

在第一plc1的事件履历存储部中,存储有事件履历数据ea1、事件履历数据ea2、事件履历数据ea3、事件履历数据ea4、事件履历数据ea5及事件履历数据ea6,这些事件履历数据被复制而发送至事件履历服务器500。

在第二plc2的事件履历存储部中,存储有事件履历数据eb1、事件履历数据eb2、事件履历数据eb3、事件履历数据eb4、事件履历数据eb5及事件履历数据eb6,这些事件履历数据被复制而发送至事件履历服务器500。

在第三plc3的事件履历存储部中,存储有事件履历数据ec1、事件履历数据ec2、事件履历数据ec3、事件履历数据ec4及事件履历数据ec5,这些事件履历数据被复制而发送至事件履历服务器500。

在第nplcn的事件履历存储部中,存储有事件履历数据en1、事件履历数据en2、事件履历数据en3、事件履历数据en4、事件履历数据en5及事件履历数据en6,这些事件履历数据被复制而发送至事件履历服务器500。

在图15中,将事件履历数据彼此连接的实线示出事件履历数据彼此通过哈希链而具有关系。另外,在图15中,将事件履历数据彼此连接的箭头线示出将事件履历数据的哈希值发送至其它plc。

通过对由事件履历服务器500收集到的事件履历进行验证,能够检测出第一plc1已将事件履历数据ea1的哈希值发送至第二plc2、第三plc3、…、第nplcn。在接收到事件履历数据ea1的哈希值的各plc中,以事件履历数据ea1的哈希值的接收作为事件创建了事件数据。但是,关于第三plc3,推测为与第二plc2及第nplcn同样地,在事件履历数据ec1之后接收了事件履历数据ea1的哈希值。但是,就第三plc3而言,能够检测出,由于事件履历数据ea1的哈希值消失或破损,因此没有创建、存储以事件履历数据ea1的哈希值的接收作为事件的事件数据。

另外,通过对由事件履历服务器500收集到的事件履历进行验证,从而能够检测出第一plc1已将事件履历数据ea5的哈希值发送至第二plc2、第三plc3、…、第nplcn。另外,能够检测出第一plc1已将事件履历数据ea5的哈希值和事件履历数据ea1的哈希值发送至第二plc2、第三plc3、…、第nplcn。在接收到事件履历数据ea5的哈希值的各plc中,以事件履历数据ea5及事件履历数据ea1的哈希值的接收作为事件而创建了事件数据。

另外,通过对第三plc3的事件履历数据ec5进行验证,能够检测出在第三plc3中,未接收事件履历数据ea1的哈希值。

因此,通过从plc系统400中的多个plc将事件履历数据收集于事件履历服务器500而进行验证,能够对plc系统400整体消失了哪个事件履历数据进行确定。另外,能够定量地对plc系统400整体消失了多少量的事件履历数据进行检测,还能够定量地对plc系统400整体的可靠度进行计算。

另外,关于第一plc1的事件履历数据,通过从事件履历数据ea1起依次对哈希值进行重新计算而进行验证,从而能够通过哈希链确认在第一plc1存储的事件履历数据彼此是被正确地存储的。第二plc2、第三plc3、…、第nplcn也同样如此。由此,能够确认在第一plc1、第二plc2、第三plc3、…、第nplcn存储的事件履历数据是在各plc中存储的正确的数据。

另外,在plc系统400中,如第一plc1中的事件履历数据ea5的哈希值及事件履历数据ea1的哈希值的发送所例示的那样,在将事件履历数据的哈希值发送至其它plc时能够对多个事件履历数据的哈希值进行发送。即,在plc系统400中,在对最新的事件履历数据的哈希值进行发送时,能够包含以前发送的1个或多个事件履历数据的哈希值而进行发送。由此,如上所述,通过对第三plc3的事件履历数据ec5进行验证,在第三plc3中,能够检测出未接收事件履历数据ea1的哈希值,能够对未接收的事件履历数据的哈希值进行存储。

图16是示意性地表示计算机装置600的结构的一个例子的框图,该计算机装置600实现作为上述实施方式1涉及的plc的功能。能够通过将在上述实施方式1涉及的plc中执行的处理构成为储存有该处理流程的程序,由图16所示具有cpu、存储装置这些结构的计算机装置执行该程序而实现。

如图16所示,计算机装置600具有经由总线609连接以下部件的结构,即,lcd(liquidcrystaldisplay)这样的显示装置601、简易的键盘这样的输入装置602、进行运算的cpu603、rom(readonlymemory)这样的非易失性存储器604、ram(randomaccessmemory)这样的易失性存储器605、对显示于显示装置601的显示画面进行存储的显示用存储器606、与闪存这样的可拆装的外部存储器之间的接口即外部存储器接口607、与外部设备之间进行通信的通信接口608等。此外,也可以设为不包含显示装置601、输入装置602及显示用存储器606的结构。

上述第一存储部110由非易失性存储器604实现。而且,通过将在非易失性存储器604储存的记述有上述plc的处理流程的程序载入至易失性存储器605,由cpu603执行,从而实现第一控制部120及第一通信部130。该程序可以记录于硬盘、cd(compactdisk)-rom(readonlymemory)、mo(magneto-opticaldisk)、dvd(digitalversatiledisc)所例示出的可以由计算机装置600读取的记录介质,或者也可以经由互联网等网络对该程序进行分发。在该情况下,将程序从经由通信接口608连接的信息处理终端储存于非易失性存储器604上。

如上所述,本实施方式1涉及的第一plc1具有将事件履历数据的哈希值发送至其它控制装置30的功能。即,由于第一plc1能够使与第一plc1所发生的事件对应的哈希值存储于其它控制装置30,因此能够在多个装置间对与第一plc1所发生的事件对应的哈希值进行信息共享。由此,在第一plc1中,通过使用验证装置对在第一plc1和其它控制装置30存储的1个事件所对应的2个哈希值进行比较,能够对在第一plc1存储的哈希值是否为由第一plc1的记录处理记录的正确的哈希值进行验证。

即,使用验证装置,对在多个其它控制装置30存储的哈希值和在第一plc1存储的哈希值进行比较,在多个其它控制装置30所存储的哈希值相同,多个其它控制装置30所存储的哈希值与第一plc1所存储的哈希值不同的情况下,能够将在其它控制装置30存储的哈希值作为正确的哈希值来处理。

另外,在第一plc1中,通过使用验证装置,对在第一plc1存储的事件履历数据的哈希值进行重新计算,对重新计算出的哈希值和与该事件履历数据对应的哈希值即在其它控制装置30存储的哈希值进行比较,能够对在第一plc1存储的事件履历数据是否为由第一plc1的记录处理记录的正确的事件履历数据进行验证。即,在重新计算出的哈希值和与该事件履历数据对应的哈希值即在其它控制装置30存储的哈希值相同的情况下,在第一plc1存储的事件履历数据为由第一plc1的记录处理记录的正确的事件履历数据。

另外,第一plc1在每次将哈希值发送至其它控制装置30时,能够对前一次的事件的哈希值、本次的事件数据、本次的事件的哈希值进行发送。而且,在其它控制装置30中,通过使用事件履历数据的实际数据对哈希值进行重新计算,能够对接收到的事件履历数据的实际数据及哈希值是正确的这一点进行验证。

而且,在检测出第一plc1所存储的哈希值不是由第一plc1的记录处理记录的正确的哈希值的情况下,在验证装置中,能够将在其它控制装置30存储的哈希值用作正确的哈希值,对在第一plc1存储的事件履历数据的哈希值进行重新计算。而且,在验证装置中,通过对重新计算出的哈希值和与该事件履历数据对应的哈希值即在其它控制装置30存储的正确的哈希值进行比较,能够对在第一plc1存储的事件履历数据是否为由第一plc1的记录处理记录的正确的事件履历数据进行验证。由此,即使在第一plc1存储的哈希值被篡改的情况下,也能够对在第一plc1存储的事件履历数据是否为由第一plc1的记录处理记录的正确的事件履历数据进行验证。在该情况下,在重新计算出的哈希值与其它控制装置30所存储的哈希值不同的情况下,在第一plc1存储的事件履历数据不是由第一plc1的记录处理记录的正确的事件履历数据,已被篡改。

此外,上述验证装置能够由具有图16所示的结构的计算机装置600实现。即,通过将记述有上述重新计算、哈希值的比较处理这些处理的处理流程的程序载入至易失性存储器605,由cpu603执行,能够实现验证装置的功能。

另外,本实施方式1涉及的第一plc1具有将从其它plc发送的哈希值包含于事件履历数据而进行存储的功能。即,第一plc1能够对与其它plc所发生的事件对应的哈希值进行存储,因此能够在多个装置间对与其它plc所发生的事件对应的哈希值进行信息共享。由此,第一plc1能够发挥作为对于其它plc来说的其它控制装置30的作用。

通过使用上述第一plc1而构成plc系统,能够实现即使在其它plc所存储的事件的哈希值被篡改的情况下,也可以容易地对哈希值的篡改进行检测的plc系统。而且,通过使用上述第一plc1而构成plc系统,能够实现可以对在第一plc1存储的事件履历数据是否为由第一plc1的记录处理记录的正确的事件履历数据进行验证的plc系统。即,通过在plc系统内彼此对事件履历数据的哈希值进行保存,从而能够在plc系统整体对事件履历数据的哈希值的链进行共享,对哈希值及事件履历数据的合法性进行验证,能够实现抗哈希值篡改的数据保护。由此,不需要哈希值的加密这样的复杂的处理及计算机资源的消耗。

另外,通过将在上述中说明过的各种功能组合,能够几乎不消耗各个plc的计算机资源即存储器及计算量地通过由不可靠的网络构成的系统整体对数据可靠性高的事件履历数据进行收集。

以上的实施方式所示的结构表示的是本发明的内容的一个例子,也可以与其它的公知的技术组合,也可以在不脱离本发明的主旨的范围对结构的一部分进行省略、变更。

标号的说明

1第一plc,2第二plc,3第三plc,10履历收集用存储装置,20、40、70通信线,30其它控制装置,50网络,60被控制装置,110第一存储部,111第一事件履历存储部,112第一哈希值履历存储部,113第一程序存储部,120第一控制部,121第一哈希值计算部,122第一异常检测部,130第一通信部,210第二存储部,211第二事件履历存储部,212第二哈希值履历存储部,213第二程序存储部,220第二控制部,221第二哈希值计算部,222第二异常检测部,230第二通信部,300、400plc系统,500事件履历服务器,600计算机装置,601显示装置,602输入装置,603cpu,604非易失性存储器,605易失性存储器,606显示用存储器,607外部存储器接口,608通信接口,609总线,n第nplc。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1