用于工业厂房的安全PLC的安全网络的制作方法

专利2022-05-09  40


用于工业厂房的安全plc的安全网络
1.相关申请的交叉引用
2.本专利申请要求享有于2019年12月31日提交的标题为“secure network of safety plcs for industrial plants”的美国临时申请no.62/955,776的优先权,并通过引用将其并入本文。
技术领域
3.本公开涉及用于工业厂房的安全系统,更具体地,涉及用于实施提供针对网络攻击和其他网络安全威胁的改进保护的、工业厂房的安全plc的网络的方法和系统。


背景技术:

4.现代工业厂房采用自动化过程来提高效率和可靠性,并出于安全原因限制工厂人员与过程机械和装备之间的交互。后者在处理危险材料的工厂(诸如石油和天然气精炼厂、化工厂、核电站等)中尤其重要。过程自动化通常采取用于监视和控制厂房机械和装备以及相关过程的plc(可编程逻辑控制器)等形式。
5.除了过程plc之外,许多现代工业厂房还采用安全系统作为在过程plc故障或失灵的事件中的增加的保护层。安全系统通常不控制任何工厂过程,而是在过程plc发生故障或不再能正确控制过程时运行以确保执行一些安全措施,诸如切断电源、排放气体、激活洒水器等。这种安全系统不仅有助于保护工厂人员,还有助于保护环境和工厂本身免受灾难性损害。
6.大多数工业安全系统采用与过程plc相同或相似类型作为过程plc,只是安全plc被编程为执行特定的安全功能,而不是过程控制功能。这些安全plc,像过程plc一样,可以根据需要由授权的编程应用不时地用新的程序代码来重新编程或更新。然而,如果恶意应用能够(例如,经由中间人攻击或其他类型的网络攻击)访问安全plc,则恶意应用可能会改变安全plc的编程。受损的安全plc将不再能够按照最初的意图进行响应,从而使工厂面临事故或其他工业灾难的危险或风险显著增加。
7.因此,虽然在工业安全系统中已经取得了许多发展,但是很容易理解,仍然需要不断的改进。


技术实现要素:

8.本公开涉及用于实施用于工业厂房的安全plc的安全网络的系统和方法。安全plc的网络在允许应用对安全网络上的任何安全plc重新编程之前,采用编程应用的多plc验证。安全网络上的每个安全plc都配备有认证能力,认证能力检测对安全plc重新编程的尝试,并发出要求编程应用处理或以其他方式解决工作证明(proof

of

work,pow)的认证挑战。然后,安全plc向安全网络上的其他安全plc发送认证挑战以及由编程应用出于验证目的而提供的响应。其他安全plc处理认证挑战,并检查来自编程应用的响应的可接受性。如果安全网络上的大多数安全plc确定来自编程应用的响应是正确的,则编程应用被验证并
被允许进行重新编程。这种组认证(group authentication)将迫使恶意应用在安全网络上同时劫持多个安全plc(这最多是低可行性事件),以便对任何一个安全plc重新编程。
9.总的来说,一方面,本公开的实施例涉及一种用于工业厂房的安全系统。该系统尤其包括工业厂房中的安全网络和多个安全可编程逻辑控制器(programmable logic controller,plc),多个安全plc被耦合以通过安全网络彼此通信,每个安全plc可操作以执行与工业厂房中的装备相关的一个或多个安全功能。每个安全plc可操作以响应于编程应用的将plc编程下载到安全plc的请求来启动编程应用的多plc认证。
10.根据任何一个或多个前述实施例,每个安全plc可操作以通过以下步骤来启动多plc认证:向编程应用发出认证挑战,从编程应用接收对认证挑战的响应,向被耦合以通过安全网络通信的其他安全plc提供认证挑战和来自编程应用的响应以进行验证,从被耦合以通过安全网络通信的其他安全plc接收验证结果,以及如果耦合以通过安全网络通信的最小数量的安全plc已经验证来自编程应用的响应是可接受的,则允许编程应用将plc编程下载到安全plc。
11.根据任何一个或多个前述实施例,最小数量的安全plc是被耦合以通过安全网络通信的安全plc中的大多数安全plc。
12.根据任何一个或多个前述实施例,每个安全plc还可操作以验证来自编程应用的、对认证挑战的响应,并且向被耦合以通过安全网络通信的其他安全plc提供验证结果。
13.根据任何一个或多个前述实施例,认证挑战采取与编程应用的功能相关的pow的形式,并且每个安全plc还可操作以从存储在每个安全plc中的编程应用的预定义pow列表中选择pow。
14.总的来说,在另一方面,本公开的实施例涉及一种用于工业厂房的安全plc。该安全plc尤其包括处理器和连接到处理器的网络接口,网络接口允许安全plc通过安全网络与工业厂房中的其他安全plc通信。安全plc还包括连接到处理器的存储设备,该存储设备在其上存储计算机可读指令,当该计算机可读指令由处理器执行时,使得处理器响应于编程应用的将plc编程下载到安全plc的请求来启动编程应用的多plc认证。
15.根据任何一个或多个前述实施例,计算机可读指令使得处理器通过以下步骤来启动多plc认证:向编程应用发出认证挑战,从编程应用接收对认证挑战的响应,通过安全网络向其他安全plc提供认证挑战和来自编程应用的响应以进行验证,通过安全网络从其他安全plc接收验证结果,以及如果最小数量的安全plc已经通过安全网络传达来自编程应用的响应是可接受的,则允许编程应用将plc编程下载到安全plc。
16.根据任何一个或多个前述实施例,安全plc是主安全plc,并且计算机可读指令还使得处理器对从其他安全plc接收的验证结果进行计数,并且如果最小数量的安全plc已经通过安全网络传达来自编程应用的响应是可接受的,则通过安全网络发出接受命令。
17.根据任何一个或多个前述实施例,最小数量的安全plc是被耦合以通过安全网络通信的安全plc中的大多数安全plc。
18.根据任何一个或多个前述实施例,计算机可读指令还使得处理器验证来自编程应用的、对认证挑战的响应,并且通过安全网络向其他安全plc提供验证结果。
19.根据任何一个或多个前述实施例,认证挑战采取与编程应用的功能相关的pow的形式,并且计算机可读指令还使得处理器从存储在安全plc中的编程应用的预定义pow列表
中选择pow。
20.总的来说,在另一方面,本公开的实施例涉及一种保护工业厂房的安全网络的方法。该方法尤其包括:提供被耦合以通过安全网络彼此通信的多个安全plc;以及响应于从编程应用接收到的将plc编程下载到多个安全plc中的安全plc的请求,启动编程应用的多plc认证,其中启动多plc认证包括向编程应用发出认证挑战。
21.根据任何一个或多个前述实施例,启动多plc认证还包括:从编程应用接收对认证挑战的响应,通过安全网络向其他安全plc提供认证挑战和来自编程应用的响应以进行验证,通过安全网络从其他安全plc接收验证结果,以及如果最小数量的安全plc已经通过安全网络传达来自编程应用的响应是可接受的,则允许编程应用将plc编程下载到安全plc。
22.根据任何一个或多个前述实施例,安全plc是主安全plc,该方法还包括对从其他安全plc接收的验证结果进行计数,并且如果最小数量的安全plc已经通过安全网络传达来自编程应用的响应是可接受的,则通过安全网络发出接受命令。
23.根据任何一个或多个前述实施例,最小数量的安全plc是被耦合以通过安全网络通信的安全plc中的大多数安全plc。
24.根据任何一个或多个前述实施例,启动多plc认证包括验证来自编程应用的、对认证挑战的响应,并且通过安全网络向其他安全plc提供验证结果。
25.根据任何一个或多个前述实施例,认证挑战采取与编程应用的功能相关的pow的形式,并且启动多plc认证还包括从存储在安全plc中的编程应用的预定义pow列表中选择pow。
附图说明
26.上文简要概述的本公开的更详细描述可通过参考各种实施例来获得,其中一些实施例在附图中示出。虽然附图示出了本公开的选定实施例,但是这些附图不应被认为是对其范围的限制,因为本公开可以允许其他同等有效的实施例。
27.图1是示出根据本公开的实施例的具有安全plc的安全网络的工业厂房的示意图;
28.图2是示出根据本公开的实施例的安全plc的示例性架构的框图;
29.图3是示出根据本公开的实施例的由目标安全plc认证编程应用的方法的流程图;
30.图4是示出根据本公开的实施例的由另一安全plc认证编程应用的方法的流程图;以及
31.图5是示出根据本公开的实施例的由主安全plc认证编程应用的方法的流程图。
32.在可能的情况下,使用相同的附图标记来表示附图共用的相同的元素。然而,在一个实施例中公开的元素可以有益地用于其他实施例,而无需具体叙述。
具体实施方式
33.现在参考图1,根据本公开的实施例,示出了其中具有安全系统101的示例性工业厂房100的框图。可以看出,示例性工业厂房100具有至少两个设备通信网络,包括过程控制网络102和安全网络104。这些网络102、104可以是有线网络(例如,以太网、hart等)、无线网络(例如,wi

fi,蓝牙等)、或有线和无线网络的组合。总的来说,过程控制网络102用于监视和控制工厂机械和装备,并且可以由被授权这样做的任何设备访问,而安全网络104通常仅
可由安全设备访问,并且通常出于安全目的与非安全设备物理隔离(通过“气隙(air gap)”)或逻辑隔离,或者两者兼有。
34.多个过程plc(为了经济起见,这里仅在106处示出其中一个过程plc)可以直接地或作为监督控制和数据采集(supervisory control and data acquisition,scada)系统108的一部分连接到过程控制网络102。多个安全plc 110(为了经济起见,这里仅在110

1、110

2和110

n处示出其中三个安全plc)同样可以连接到过程控制网络102以及安全网络104。安全plc 110中的每一个在过程控制网络102和安全网络104上具有唯一标识,诸如安全plc

1、安全plc

2、安全plc

n等,这些标识对每个其他安全plc 110是已知的(例如,存储在每个其他安全plc 100内)。这些安全plc 110和安全网络104一起构成了工业厂房100的安全系统101的至少一部分。还要注意,虽然在本示例中工业厂房100使用plc,但是其他类型的基于微处理器的控制设备(诸如远程终端单元(remote terminal units,rtu))也可以与本公开的实施例一起使用。
35.在一般操作中,每个过程plc 106监视工业厂房100中的某些装备(诸如锅炉112)的一个或多个操作参数。操作参数由安装在装备上或装备附近的一个或多个传感器(诸如温度传感器114和压力传感器116)提供给每个过程plc 106。基于这些操作参数,每个过程plc 106可以改变或调整装备的某些操作方面,诸如打开或关闭流入阀(inflow valve),从而减少或增加去往或来自装备的流体流量等,以实现或保持某些过程目标。
36.安全plc 110还监视工业厂房100中某些装备的一个或多个操作参数,但是是为了安全目标而不是过程目标。在图1的示例中,安全plc

1经由安装在锅炉112上或锅炉112附近的温度传感器118和压力传感器120监视锅炉112的一个或多个操作参数。基于这些操作参数,安全plc

1可以为锅炉112执行某些安全功能,诸如关闭或打开流出阀(outflow valve),从而减少或增加去往或来自锅炉112的流体流量等,以防止锅炉失灵。
37.其他安全plc 110相对于工业厂房100中的其他装备以与安全plc

1类似的方式操作。有时,这些安全plc 110可能出于各种原因而需要更新它们的编程。为此,在过程控制网络102上提供其上具有plc编程应用124的plc编程系统122。plc编程应用124包括用于更新安全plc 110的编程的编程协议和特定功能。例如,编程应用124可以包括特定的编译器,该编译器可以将程序代码编译成可执行逻辑,以用于专门在安全plc 110上运行。编程应用124还可以包括能够运行被下载到安全plc 110并由安全plc 110运行的相同可执行逻辑的过程。在本公开的范围内,这些协议和功能可以是商业现成的组件,或者它们可以是为特定的工厂安全系统应用专门开发的。编程应用124然后可以用于手动和/或自动地编译并下载可执行逻辑到安全plc110,以根据需要更新其编程。
38.根据本公开的实施例,每个安全plc 110都配备有认证能力,认证能力在从plc编程应用124接受可执行逻辑之前检查plc编程应用124。更具体地,每个安全plc 110要求编程应用124在指定时间段内处理或以其他方式解决认证挑战,以便安全plc 110从编程应用124接受可执行逻辑。然后,安全plc 110向安全网络104上的其他安全plc 110发送认证挑战以及由编程应用124提供的响应以进行验证。此后,其他安全plc 110处理认证挑战并检查来自编程应用124的响应。如果安全网络104上的大多数安全plc 110确定来自编程应用124的响应是正确的或可接受的,则编程应用被验证,并且安全plc 110接受可执行逻辑。
39.认证挑战可以采取本领域技术人员已知的、可以用于认证编程应用124的任何形
式。例如,认证挑战可以涉及编程应用124上的合法功能,诸如编译某段程序代码,或执行合法编程应用124将能够执行的某段计算处理,并且提供其结果或输出。在一些实施例中,认证挑战可以采取对工作证明(pow)的请求的形式,工作证明是一段计算处理,其通常难以完成,但是一旦完成,就相对容易通过从结果或输出的反向工作来验证。
40.在一些实施例中,大多数(majority)是通过将安全网络104上的安全plc110的总数除以2并加1来确定的。也就是说,m=n/2 1,其中m是大多数,并且n是安全网络104上的安全plc 110的总数。如果安全plc 110的总数n是奇数,则商可以被向上取整到下一整数。以这种方式,在可执行逻辑可以被下载到任何一个安全plc 110之前,恶意应用将需要在安全网络104上同时劫持多个安全plc 110。在一些实施例中,如果安全网络104上的安全plc 110未能在指定时间段内提供验证或以其他方式做出响应,则该安全plc在确定大多数时不被计算在内(即,从安全plc 110的总数n中减去无响应的安全plc)。在其他实施例中,无响应的安全plc 110在确定大多数时被作为负值进行计算(即,来自编程应用124的、对认证挑战的响应被认为是不正确的或不可接受的)。
41.在一些实施例中,虽然每个安全plc 110从安全网络104上的其他安全plc 110接收验证结果,但是出于对验证结果进行计数的目的,安全plc 110之一可以被随机指名为主安全plc。随机指名可以定期发生,或者可以在每次检测到对安全网络104上的任何安全plc 110编程或重新编程的尝试时发生。然后,所指名的主安全plc对来自安全网络104上的所有安全plc 110的验证结果进行计数,并且向安全网络104上的所有安全plc 110发出接受命令或拒绝命令。然后,安全网络104上的安全plc 110相应地接受或拒绝重新编程尝试。
42.图2是示出根据本公开的实施例的示例性安全plc 110的框图。在一个实施例中,安全plc 110包括总线202或用于在控制系统内传送数据的其他通信路径以及cpu 204,cpu 204可以是与总线202耦合以用于处理信息的任何合适的微处理器或微控制器。安全plc 110还可以包括主存储器206,诸如随机存取存储器(ram)或耦合到总线202以用于存储将由cpu 204执行的计算机可读指令的其他动态存储设备。主存储器206还可以用于在由cpu 204执行的指令的执行期间存储临时变量或其他中间信息。
43.安全plc 110还可以包括只读存储器(rom)208或耦合到总线202以用于为cpu 204存储静态信息和指令的其他静态存储设备。计算机可读存储设备210(诸如非易失性存储器(例如,闪存)或磁盘)可以耦合到总线202,以用于为cpu 204存储信息和指令。cpu 204还可以经由总线202耦合到装备接口212,以用于允许安全plc 110与连接到其上的工厂装备(例如,锅炉112)通信。传感器接口214可以耦合到总线202,以用于允许安全plc 110与安装在工厂装备上或工厂装备附近的各种工厂传感器(例如,传感器118、120)通信。网络接口216可以耦合到总线202,以用于允许安全plc 110与工厂网络(例如,网络102、104)通信等。
44.上面使用的术语“计算机可读指令”是指可以由cpu 204和/或其他组件执行的任何指令。类似地,术语“计算机可读介质”是指可用于存储计算机可读指令的任何存储介质。这种介质可以采取多种形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质可以包括例如闪存、光盘或磁盘,诸如存储设备210。易失性介质可以包括动态存储器,诸如主存储器206。传输介质可以包括同轴电缆、铜线和光纤,包括总线202的导线。传输本身可以采取电磁波、声波或光波的形式,诸如在射频(rf)和红外(ir)数据通信期间生成的那些。计算机可读介质的常见形式可以包括,例如,磁介质、光介质、存储器芯片以及设备
可以读取的任何其他介质。
45.安全功能220或其计算机可读指令也可以驻留在存储设备210上或下载到存储设备210。安全功能220然后可以由cpu 204和其他组件执行,以自动地检测工厂装备(例如,锅炉112)的异常操作参数并启动一个或多个安全动作。为了保护安全功能220不被恶意应用改变,应用认证模块222或其计算机可读指令也可以驻留在存储设备210上或下载到存储设备210。应用认证模块222检测对安全plc 110编程或重新编程的尝试,并且应用多plc验证来检查编程应用。这种应用认证模块222可以使用任何合适的软件开发环境、以本领域技术人员已知的任何合适的计算机编程语言来编写。合适的编程语言的示例包括iec61131

3、c、c 、c#、python、java、perl等。
46.应用认证模块222可以包括或有权访问一个或多个认证挑战,如224所示,以用于测试编程应用。在一些实施例中,认证挑战224可以采取要求编程应用执行一些计算挑战的工作证明(pow)请求的形式。如前所述,这种pow请求通常很难解决,但是一旦被解决,就相对容易通过反向工作来验证。合适的工作证明可以使用iec61131

3功能框图或结构化文本(它们是为可编程逻辑控制器指定的标准编程语言)来开发。出于说明目的,示例性工作证明在图2中被指定为功能a、功能b、功能c等,以及每个工作证明的输入。
47.应用认证模块222还可以包括或有权访问来自安全网络104上的每个安全plc 110的验证结果。如前所述,应用认证模块222采用多plc验证来测试编程应用。这需要应用认证模块222向安全网络104上的每个安全plc 110发送工作证明以及来自编程应用的响应以进行验证。每个安全plc 110对照来自编程应用的响应来处理工作证明,并且将结果发送到安全网络104上的其他安全plc 110。在图2的示例中,根据每个安全plc的唯一标识以及安全plc是否确定来自编程应用的响应是可接受的,来列出验证结果。
48.现在参考图3,根据本公开的实施例,示出方法300的流程图可以与安全plc一起使用,以用于检查plc编程应用。该方法通常从框302开始,此时安全plc检测到编程应用下载plc编程的请求或尝试,通常以可执行逻辑的形式,即安全plc。在框304,安全plc选择并向编程应用发送认证挑战(诸如工作证明请求)以及处理认证挑战所需的任何信息(诸如工作证明的输入)。在框306,安全plc从编程应用接收对认证挑战的响应,并且在框308,安全plc验证对认证挑战的响应。
49.在框310,安全plc与安全网络上的其他安全plc共享认证挑战和它执行的验证。在一些实施例中,安全plc可以通过向安全网络上的其他安全plc发送用于认证挑战的标识符(诸如参考号)以及处理认证挑战所需的任何信息来共享认证挑战。在框312,出于验证目的,安全plc还共享从编程应用接收的、对认证挑战的响应。在框314,安全plc从安全网络上的其他安全plc接收验证结果,并且在框316,安全plc对验证结果进行计数,并且与安全网络上的其他安全plc共享该计数。
50.在框318,确定来自框316的计数是否显示可接受结果的数量大于或等于最小阈值。在一些实施例中,最小阈值是安全网络上的安全plc的数量的大多数。在一些实施例中,最小阈值是安全网络上在指定时间段内做出响应的安全plc中的大多数。如果确定为否,则在框320,安全plc拒绝来自编程应用的plc编程。如果确定为是,则在框322,安全plc从编程应用接受plc编程。
51.在一些实施例中,安全plc可以等待随机指名的主安全plc执行计数,并且向安全
plc发送接受命令或拒绝命令,而不是在框316执行计数并在框318评估计数结果。如前所述,主安全plc的随机指名可以定期发生,或者可以在每次尝试对安全网络上的任何安全plc编程或重新编程时发生。
52.注意,图3中的方法300从旨在重新编程的安全plc的角度进行。现在来看图4,它是示出根据本公开的实施例的方法400的流程图,方法400可以与安全网络上的其他非目标安全plc一起使用,以用于检查plc编程应用。方法400通常从框402开始,在框402,这些其他安全plc从安全网络上的目标安全plc接收认证挑战或识别认证挑战的信息以及其验证结果。在一些实施例中,该认证挑战采取如上所述的工作证明的形式。在框404,安全plc还从目标安全plc接收由编程应用提供的对认证挑战的响应。在框406,安全plc处理认证挑战并验证编程应用的响应,并且在框408,每个安全plc与安全网络上的其他安全plc共享其验证结果。
53.图5是示出根据本公开的实施例的方法500的流程图,方法500可以与安全网络上的主安全plc一起使用,以用于检查plc编程应用。方法500类似于图4中的方法400,因为它通常从框502开始,在框502,安全plc安全地从安全网络上的目标安全plc接收认证挑战或识别认证挑战的信息以及其验证结果。同样,该认证挑战可以采取如上所述的工作证明的形式。在框504,主安全plc还从目标安全plc接收由编程应用提供的对认证挑战的响应。在框506,主安全plc处理认证挑战并验证编程应用的响应,并且在框508,主安全plc与安全网络上的其他安全plc共享其验证结果。
54.在一些实施例中,目标安全plc也可以被指名为主安全plc。在这种实施例中,目标主安全plc可以组合地使用图3的方法300和图5的方法500。
55.除了上述内容之外,在框510,主安全plc还对来自安全网络上的安全plc的验证结果进行计数。此后,主安全plc在框512确定计数是否显示可接受结果的数量大于或等于最小阈值。在一些实施例中,最小阈值是安全网络上的安全plc的数量的大多数。在一些实施例中,最小阈值是安全网络上在指定时间段内做出响应的安全plc中的大多数。如果确定为否,则在框514,主安全plc向安全网络上的所有安全plc发出命令,拒绝来自编程应用的plc编程。如果确定为是,则在框516,主安全plc向安全网络上的所有安全plc发出命令,接受来自编程应用的plc编程。
56.在前述内容中,参考了各种实施例。然而,本公开的范围不限于具体描述的实施例。相反,所描述的特征和元素的任何组合,无论是否与不同的实施例相关,都被设想来实施和实践所设想的实施例。此外,虽然实施例可以实现优于其他可能的解决方案或现有技术的优点,但是特定的优点是否由给定的实施例实现并不限制本公开的范围。因此,前述的方面、特征、实施例和优点仅仅是说明性的,并且不被认为是所附权利要求的要素或限制,除非在权利要求中明确陈述。
57.本文公开的各种实施例可以被实施为系统、方法或计算机程序产品。因此,各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或结合软件方面和硬件方面的实施例(其在本文中通常被统称为“电路”、“模块”或“系统”)的形式。此外,各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有在其上所体现的计算机可读程序代码。
58.可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是非暂时
性计算机可读介质。非暂时性计算机可读介质可以是例如但不限于电子、磁、光、电磁、红外或半导体系统、装置或设备,或前述的任何合适的组合。非暂时性计算机可读介质的更具体的示例(非穷举列表)可以包括以下各项:具有一条或多条导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、光纤、便携式光盘只读存储器(cd

rom)、光存储设备、磁存储设备,或前述的任何合适的组合。体现在计算机可读介质上的程序代码可以使用任何适当的介质来传输,包括但不限于无线、有线、光纤电缆、rf等,或前述的任何合适的组合。
59.用于执行本公开各方面的操作的计算机程序代码可以用一种或多种编程语言的任意组合来编写。此外,这种计算机程序代码可以使用单个计算机系统或通过彼此通信的多个计算机系统来执行,例如,使用局域网(lan)、广域网(wan)、互联网等。虽然前述内容中的各种特征是参照流程图图示和/或框图描述的,但是本领域普通技术人员将理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由计算机逻辑(例如,计算机程序指令、硬件逻辑、两者的组合等)来实施。通常,计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的(多个)处理器。此外,使用(多个)处理器执行这样的计算机程序指令产生了能够执行流程图和/或框图的一个或多个框中指定的(多个)功能或(多个)行为的机器。
60.附图中的流程图和框图示出了本公开的各种实施例的可能实施方式的架构、功能和/或操作。在这点上,流程图或框图中的每个框可以表示模块、代码段或代码部分,这些模块、代码段或代码部分包括用于实施(多个)指定逻辑功能的一个或多个可执行指令。还应当注意,在一些替代实施方式中,框中提到的功能可以不按图中提到的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的次序执行,这取决于所涉及的功能。还将注意到,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或行为的基于专用硬件的系统或者专用硬件和计算机指令的组合来实施。
61.应当理解,以上描述是说明性而非限制性的。通过阅读和理解以上描述,许多其他实施例是显而易见的。虽然本公开描述了具体示例,但是应当认识到,本公开的系统和方法不限于本文描述的示例,而是可以利用在所附权利要求的范围内进行的修改来实践。因此,说明书和附图被认为是说明性的,而不是限制性的。因此,本公开的范围应当参照所附权利要求以及这些权利要求所赋予的等同物的全部范围来确定。

技术特征:
1.一种用于工业厂房的安全系统,包括:所述工业厂房中的安全网络;多个安全可编程逻辑控制器plc,其被耦合以通过所述安全网络彼此通信,每个安全plc可操作以执行与所述工业厂房中的装备相关的一个或多个安全功能;其中,每个安全plc可操作以响应于编程应用的将plc编程下载到安全plc的请求来启动所述编程应用的多plc认证。2.根据权利要求1所述的安全系统,其中,每个安全plc可操作以通过以下步骤来启动多plc认证:向所述编程应用发出认证挑战;从所述编程应用接收对所述认证挑战的响应;向被耦合以通过所述安全网络通信的其他安全plc提供所述认证挑战和来自所述编程应用的响应以进行验证;从被耦合以通过所述安全网络通信的所述其他安全plc接收验证结果;以及如果被耦合以通过所述安全网络通信的最小数量的安全plc已经验证来自所述编程应用的响应是可接受的,则允许所述编程应用将所述plc编程下载到安全plc。3.根据权利要求2所述的安全系统,其中,所述最小数量的安全plc是被耦合以通过所述安全网络通信的安全plc中的大多数安全plc。4.根据权利要求2所述的安全系统,其中,每个安全plc还可操作以验证来自所述编程应用的、对所述认证挑战的响应,并且向被耦合以通过所述安全网络通信的所述其他安全plc提供验证结果。5.根据权利要求1所述的安全系统,其中,所述认证挑战采取与所述编程应用的功能相关的工作证明pow的形式。6.根据权利要求5所述的安全系统,其中,每个安全plc还可操作以从存储在每个安全plc中的所述编程应用的预定义pow列表中选择pow。7.一种用于工业厂房的安全plc,包括:处理器;连接到所述处理器的网络接口,所述网络接口允许所述安全plc通过安全网络与所述工业厂房中的其他安全plc通信;以及连接到所述处理器的存储设备,所述存储设备在其上存储计算机可读指令,当所述计算机可读指令被所述处理器执行时,使得所述处理器响应于编程应用的将plc编程下载到所述安全plc的请求来启动所述编程应用的多plc认证。8.根据权利要求7所述的安全plc,其中,所述计算机可读指令使得所述处理器通过以下步骤来启动多plc认证:向所述编程应用发出认证挑战;从所述编程应用接收对所述认证挑战的响应;通过所述安全网络向其他安全plc提供所述认证挑战和来自所述编程应用的响应以进行验证;通过所述安全网络从所述其他安全plc接收验证结果;以及如果最小数量的安全plc已经通过所述安全网络传达来自所述编程应用的响应是可接
受的,则允许所述编程应用将所述plc编程下载到安全plc。9.根据权利要求8所述的安全plc,其中,所述安全plc是主安全plc,并且所述计算机可读指令还使得所述处理器对从所述其他安全plc接收的验证结果进行计数,并且如果最小数量的安全plc已经通过所述安全网络传达来自所述编程应用的响应是可接受的,则通过所述安全网络发出接受命令。10.根据权利要求8所述的安全plc,其中,所述最小数量的安全plc是被耦合以通过所述安全网络通信的安全plc中的大多数安全plc。11.根据权利要求8所述的安全plc,其中,所述计算机可读指令还使得所述处理器验证来自所述编程应用的、对所述认证挑战的响应,并且通过所述安全网络向所述其他安全plc提供验证结果。12.根据权利要求7所述的安全plc,其中,所述认证挑战采取与所述编程应用的功能相关的工作证明pow的形式。13.根据权利要求12所述的安全plc,其中,所述计算机可读指令还使得所述处理器从存储在所述安全plc中的所述编程应用的预定义pow列表中选择pow。14.一种保护工业厂房的安全网络的方法,包括:提供被耦合以通过所述安全网络彼此通信的多个安全plc;以及响应于从编程应用接收到将plc编程下载到所述多个安全plc中的安全plc的请求,启动所述编程应用的多plc认证;其中,启动多plc认证包括向所述编程应用发出认证挑战。15.根据权利要求14所述的方法,其中,启动多plc认证还包括:从所述编程应用接收对所述认证挑战的响应;通过所述安全网络向其他安全plc提供所述认证挑战和来自所述编程应用的响应以进行验证;通过所述安全网络从所述其他安全plc接收验证结果;以及如果最小数量的安全plc已经通过所述安全网络传达来自所述编程应用的响应是可接受的,则允许所述编程应用将所述plc编程下载到安全plc。16.根据权利要求15所述的方法,其中,所述安全plc是主安全plc,所述方法还包括对从所述其他安全plc接收的验证结果进行计数,并且如果最小数量的安全plc已经通过所述安全网络传达来自所述编程应用的响应是可接受的,则通过所述安全网络发出接受命令。17.根据权利要求15所述的方法,其中,所述最小数量的安全plc是被耦合以通过所述安全网络通信的安全plc中的大多数安全plc。18.根据权利要求15所述的方法,其中,启动多plc认证包括验证来自所述编程应用的、对所述认证挑战的响应,并且通过所述安全网络向其他安全plc提供验证结果。19.根据权利要求14所述的方法,其中,所述认证挑战采取与所述编程应用的功能相关的工作证明pow的形式。20.根据权利要求19所述的方法,其中,启动多plc认证还包括从存储在安全plc中的所述编程应用的预定义pow列表中选择pow。
技术总结
安全PLC网络在允许应用对安全网络上的任何PLC重新编程之前对编程应用采用多PLC验证。安全网络上的每个PLC都配备有认证能力,认证能力检测对PLC重新编程的尝试,并发出要求编程应用处理工作证明的认证挑战。出于验证目的,认证挑战还与来自编程应用的响应一起被发送到安全网络上的其他PLC。其他PLC处理认证挑战,并检查来自编程应用的响应的可接受性。如果安全网络上的大多数PLC确定来自编程应用的响应是正确的,则编程应用被验证并且可以继续重新编程。这种组认证要求恶意应用在对任何PLC重新编程之前在安全网络上同时劫持多个PLC,这是高度不可能的结果。这是高度不可能的结果。这是高度不可能的结果。


技术研发人员:A.米什拉 D.伊万诺夫 E.班奇克
受保护的技术使用者:施耐德电子系统美国股份有限公司
技术研发日:2020.12.29
技术公布日:2021/7/15

转载请注明原文地址:https://doc.8miu.com/read-650324.html

最新回复(0)