专利名称:用于以太网接收的工业控制设备的网络安全模块的制作方法
技术领域:
本发明总地来说涉及用于控制机器和工业处理的工业控制器,并特别 地涉及对于使用普通以太网络相互连接的工业控制设备允许更高的安全 性的安全模块。
背景技术:
工业控制器用来控制和监视工业处理和机器i殳备。典型的工业控制器 包括专用计算机,该专用计算机执行存储的控制程序,从而基于该控制程 序的逻辑来从受控的处理读取输入以及将输出提供给该受控的处理。
工业控制器在三个方面与传统计算机不同。首先,工业控制器可被高 度地定制以适应受控制的特定工业处理的需求。通常,该定制通过如下才莫 块构造成为可能,该模块构造针对特定的应用提供可被添加到工业控制器 的不同的组件来扩展该工业控制器。更通常地,这些另外的组件是对致动
器提供模拟或数字信号的1/0(输^/输出)模块,或是从传感器接收模拟或 数字信号的1/0(输V输出)模块。其它普通组件包括显示器和电机驱动。
工业控制器和传统计算机的第二点区别在于工业控制器的组件可分 隔相当大的距离,例如分布在遍布工厂的网络通信上。 一些专属的高速控 制网络,皮用于该用途,这些网络包括例如ControlNet和DeviceNet、由多 行业联盟ODVA(www.odva.org)管理的开放标准。
第三,与传统计算机不同,工业控制器必须提供高度可预测和可信赖 的、可安全地控制物理装备的控制输出。在这点上,既迫切需要迅速地分 发输出和输入,也迫切需要确保该输出和输入实际上进行通信。不允许数 据通信的损坏或伪造的消息。
最近,在使用以太网协议的控制网络方面产生了浓厚兴趣。这种网络 使用容易获得且低成本的以太网硬件,并添加另外的协议以满足控制网络 的其它需求。这种控制网络协议包括以太网/IP(以太网工业协议)、同样由ODVA管理的开放标准、以及Modbus/TCP等。
对以太网兼容网络的使用允许控制系统使用还连接至其它非控制计 算机甚至连接至因特网的网络。这种连接增加了因恶意流量产生的熟悉的 因特网安全问题的风险。这种恶意流量在工业控制环境中会比在装备不受 控制的标准计算环境中造成更大破坏。因而,必须防止这种恶意流量。
限制恶意网络流量的影响的标准方法是使用防火墙和/或安全协i5C。 简单的防火墙检查在以太网上移动的分组,以基于从单个分组釆集的无状 态数据、例如表示分组的来源或表示分组所导向的端口的数据,来拒绝某 些分组。然而,更复杂的防火墙则从多个分组中提取状态数据,以更好地 (例如在通信协议的上下文中)辨别分组,并拒绝祐:认定为有害的分组。这 些更高级的防火墙利用执行软件的电子计算机来逻辑地处理从多个分组 形成的状态信息,并评定是否应转发该分组还是将该分组阻挡在防火墙 处。
作为防火墙的替代或补充,安全协议可通过在网络上通信的i史备来执 行,其中设备交换信息以建立例如发送设备的真实性。安全协议的一例是 用来实施安全HTTP(https)。
理想地,在工业控制环境中,各控制设M具有对来自所连接的以太 网络的有害流量进行阻挡的防火墙和/或安全协议。然而,这对于不支持
实施这些功能所需的成本或处理电力的旧设备或简单设备来说可能不现 实。另夕卜,复杂的因特网防火墙或安全协议会引入通信延迟和延迟中的变 化(抖动),这些对于控制环境中的高速控制信号是不可接受的。
发明内容
本发明提供一种适于用在工业控制环境中的高速网络安全模块,其中 在高速硬件组件和更慢但更复杂的软件组件之间划分安全任务。软件组件 可与》更件组件进行通信,以在由该软件组件从分组中提取的状态数据上形 成"允许列表"或"拒绝列表"。该允许列表和拒绝列表被硬件组件用来 迅速地评价分组,从而没有进一步的延迟地允许已知的高速分组通过。其 它分组被传给软件组件以被评价并或被允许或被拒绝。以这种方式,高速 流量可被由软件组件更新的硬件组件迅速地通过,同时可由软件组件来进 行分组的复杂状态分析。软件组件可作为替代或补充而执行安全协议并将 已认证的分组添加至授权列表。具体地,本发明提供一种增加工业控制系统的安全性的网络分流器。 网络分流器提供了可连接至网络的第 一端口 ,该网络携带利用工业控制协 议的工业控制数据,并提供可连接至控制设备的第二端口,该控制设备与 工业处理进行通信以对其进行控制。硬件安全组件接收数据分组并从该网 络分组中提取分组数据,以与数据表中的允许列表进行比较。接着,如果 分组数据在允许列表中,则多更件安全组件将网络分组传递到第二端口 ,否 则将该数据分组传递到软件安全组件。
软件安全组件包括电子计算机,该电子计算机执行所存储的程序,以
安全组件进一步(l)识别应拒绝的分组并不将那些应拒绝的分组发送至 第二端口而拒绝这些分组;(2)识别可允许的、需要高速处理的第一控制 数据分组,以允许那些第一控制数据分组被传递到第二端口并将分组数据 载入允许列表,该允许列表识别硬件组件的未来相似的第 一控制数据分 组;和(3)识别可允许的、不需要高速处理的第二数据分组,以允许在不 将分组数据载入允许列表的情况下使这些第二分组被传递到第二端口 。
因此本发明的实施例的一个目的是为工业控制应用提供极高速的防 火墙或安全代理服务器,而该极高速的防火墙或安全代理服务器能以复杂 方式响应于指示例如作为高速控制分组的分组在控制协"R内的重要性的 来自分组的状态数据。
第 一控制分组是用来实时地控制工业处理的输^/输出数据。
因此本发明的实施例的目的是为实时控制数据提供安全性。
分组数据可包括连接号,该连接号将分组识别到在网络上通信的预识 别的硬件组件之间的预配置的连接。
因此本发明的一个实施例的目的《il:供一种系统,该系统可与用于工 业控制的所连接的通信系统一起工作,并使用连接标识来允许控制分组的 快速检查。
分组数据包括指示该分组的源的源地址。
本发明的至少一个实施例的一个目的是允许由防火墙提供的传统的 源分组过滤。
硬件安全组件被制作为现场可编程门阵列和应用特定集成电路中的 至少一个。
7本发明的一个实施例的目的是通过使用专用硬件电路提供极快速分 组过滤。
第二端口是连接至接收控制设备的网络的网络端口 。
因此本发明的一个实施例的一个目的是提供一种系统,该系统可与旧 设备和具有有限计算资源的设备一起工作。
第二端口是合并了网络分流器的控制设备中的内部通信总线,且其中 电子计算机还用于该控制设备的操作。
因此本发明的 一个实施例的 一个目的是提供一种可与控制设备共享 已有的计算资源的设备。
软件安全组件通过在第一端口上通信的相应的设备来执行安全协i义, 以识别认证的连接,因此本发明的一个实施例的一个目的是对硬件安全组 件提供一种加密密钥,其中该石更件安全组件可从以安全密钥解密并与允许 列表比较的分组中提取该安全密钥。
本发明的一些实施例的另 一 目的是最初以能够进行复杂的状态处理 的软件组件来管理安全协议,同时再将该安全协议的施行卸载至硬件电路 上。
这些特定的目的和优点可仅应用于落入权利要求范围内的一些实施 例,因而并不限定本发明的范围。
图1是示出工业控制系统的例子的元件的框图,该工业控制系统使用 以太网络连接,并4吏用本发明既作为独立式的i殳备、也作为嵌入控制设备
的设备;
图2是可在源和目标设备之间通信的以太网分组的筒化呈现;
图3是示出互相合作的硬件和软件安全元件的、图1中所示的本发明 的独立式版本的才匡图4是与图3相似的、示出图1的本发明的嵌入式版本的图5是示出对于简单防火墙实施而在硬件和软件安全元件二者中执 行的本发明的步骤的流程图6是与图5相似的、示出对于简单安全代理服务器实施而在硬件和软件安全元件二者中执行的步骤的图7是与图3和4相似的、示出了图6的安全代理服务器的分组和硬 件表的图。
具体实施例方式
现在参照图1,适于提供工业处理11的实时控制的工业控制系统10 可包括例如中央控制器12,该中央控制器12执行所存储的程序,以通过 一个或更多输^/输出(I/O)模块14a和14b的机构来控制工业处理11。
中央控制器12可通过现有技术中公知类型的网络16来与I/O模块 14a和14b通信。为了以下说明的目的,假设网络16是以太网络,于是 它是本领域中目前常用的,其支持如可层叠在以太网协议上的 EtherNet/IP或Modbus/TCP等以太网兼容的工业控制协议。然而应当理 解本发明不限于该以太网络。
以太网络还可与其它控制设备通信,例如Ai^接口(HMI)19、到其它 网络的桥20、引向因特网24的因特网关22和对中央控制器12提供操作 员控制和程序的操作员终端26。
以太网络16至因特网24的连接带来了恶意流量的风险,该恶意流量 可被连接至以太网络16并经过短的以太网插桩(stub ) 28而与I/O模块 14a通信的防火墙18阻挡。作为替代,可将防火墙18'合并在I/O模块14b 中,以通过将要i兌明的内部总线结构而与其通信。
现在参照图2, 一般地,以太网络16准许在源设备32和目的地设备 34之间进行多个分组30的通信。如在本领域中所 i^P的,分组30可包 括多个协i义元件,该协议元件以逻辑方式提供对分组的源设备32进行识 别的源标识符36。可选地,源服务字段40和源对象字段42对于通信中 更细微的尺度粒度(scale granularity),可识别源设备32内的软件服务 44和一个或更多软件对象46。另外,分组可包括识别目的地i殳备34的目 的地字段38。可选地,目的地服务字段40'和目的地对象字段42,可识别 目的地设备34内的软件服务44和软件对象46。
为了实现应用程序之间的端对端通信,通常在以太网上层叠更高水平 的协议。在标准TCP/IP套件中的实例是FTP、 HTTP等。对于工业通信, 设计了特定的协议以对于工业通信为最优,如EtherNet/IP、 Modbus/TCP 等。这种工业控制协议可允许例如"连接的消息接发",其中例如通iW分组30预分配緩冲存储器并预分配足以确保可靠和可预测通信的网络带 宽来将网络和端设备资源预分配到特定"连接"。各连接是凭借连接对话 而建立的,在该连接对话中,在源设备32和目的地设备34之间交换消息, 以进行该分配。当完成该连接时,为该连接指派也嵌入在分组30内的连 接标识符48。
最后,分组30还包括旨在发送例如I/O数据的各点的值的数据50。
这些字段36、 38、 40、 40'、 42、 42'和48是"无状态"数据,意即 可以不参照由先前或以后的分组30所建立的状态而从单个分组30进行解 释。
现在参照图3,本发明的防火墙18(或18')可提供多个端口 52a、 52b 和52c。第一和第二端口 52a和52b连接至以太网络16的^h质。对于防 火墙18,端口 52c连接至仅引向相关联的I/0模块14a的以太网插桩28。 因此应理解此处仅作为例子说明I/O模块14,而本发明不限于使用I/O模 块。
如在本领域中所知,端口 52a、 52b和52c对以太网^h质^^供低级别 接口,并管理定时、电压电平、以及碰撞检测和响应。端口52a直接与端 口52b通信,从而以嵌入式开关的方式无修改地在其间传递数据。
端口 52a和52b 二者的数据可由硬件安全组件54来监视,该硬件安 全组件54具有将静态信息保持在"允许列表"中的数据表56,该允许列 表使分组30的一个或更多字段36、 38、 40、 42和48匹配。硬件安全组 件54对端口 52c提供物理连接58,从而可将分组从石更件安全组件54直 接发送至端口52c。可替代地,》更件安全组件54可经过连接60将分组传 递到软件安全组件62。
软件安全组件包括与存储器66进行通信的处理器64,该存储器66 保持所存储的防火墙程序68。处理器64可经过连接70与端口 52c通信, 以将分组传递到端口 52c并最终传递到I/O才莫块14a。
现在参照图4,在替代的实施例中,防火墙18可合并在I/O模块14b 中,并可共享用于控制I/0模块14b和防火墙18的处理器64,。这里,处 理器64'可与既保持防火墙程序68又保持I/O模块操作程序74的存储器 72通信。在这种情况下,处理器64'与I/O接口电路76连接,该I/O接 口电路76与工业处理11直接通信,以将数据发送至控制该处理的致动器 并从附着至该处理的传感器接收数据。在本实施例中,来自硬件安全的逻辑连接60和58都连接至处理器 64',逻辑连接60与首先作为执行防火墙程序68的防火墙18的一部分的 处理器64,通信,而逻辑连接58则与作为执行I/O模块操作程序74的I/O 才莫块14b的控制器的处理器64'通信。
现在在图3和4的两个实施例中参照图5,硬件安全组件54和软件 安全组件62先后工作,以提供高速控制数据的高效的防火墙处理。如判 断框80所示,最初由石更件安全组件54接收分组30,该*更件安全组件54 从各分组30中提取无状态数据,并企图使该无状态数据与数据表56中允 许列表中的相应数据匹配。更详细地说,还可使用需#道分组在协议中 的其它分组中的上下文的"状态数据"。最初,数据表56没有数据且不做 任何匹配;然而,如下面所述,该允许列表将被更新,从而在某些情况下 将会有匹配。在匹配的情况下,如处理框82所示,硬件安全组件54允许 分组被传递到I/O模块14 。
硬件安全组件54例如可以是现场可编程门阵列(FPGA)或应用特定 集成电路(ASIC),于是可按足以跟上高速控制数据的速度来进行该无状态 处理。因而判断框80的执行由专用电路而不是通用处理器来执行。
如果在分组30的无状态数据和表56的允许列表之间没有匹配,则如 判断框84所示,分组被传递到软件安全组件62。在判断框84处,软件 安全组件62判断被硬件安全组件54拒绝的分组是否满足在旨在阻挡恶意 软件或其它伪造分组的防火墙程序68中的一组基于软件的规则。防火墙 程序68在其最简单情况下,提供将各分组与本领域中公知的"黑名单" 或"白名单"做比较的分组过滤器,该"黑名单"或"白名单"可比硬件 安全组件54所使用的数据表56中的可接受表更广泛,而被硬件使用的后 者更简单。然而,优选地,防火墙程序68实施分组30的复杂状态分析, 其中,根据对正在执行的特定协议的知识而考虑分组的数据以及先前分组 的数据。于是,软件安全组件62可以不仅考虑字段36、 38、 40、 42和 48的无状态数据,还可考虑可由分组的序列建立的协议中的分组的意义。 在防火墙程序68在通用处理器64上执行的范围内,可容易地修改特定的 规则。
如果在判断框84处,分组没有通过判断框84的复杂的规则组,则如 处理框88所示拒绝该分组。
软件安全组件62不仅可识别"安全"分组(在判断框84处),还可识 别由工业控制协议所标识的需要高速处理的分组(根据判断框86)。具体地,在判断框84判断出分组可,皮接受的情况下,防火墙程序68移至判断 框86并判断分组中正在处理的特定数据是否是被认为是需要快速发送的 高速数据的数据的一部分。这会再次成为多个分组的复杂状态分析,其可 例如监视与连接的开口 (opening)相关联的分组,该连接的开口与这样 的高速数据相关联。
如果分组被判断框84认可,但不是高速数据(根据判断框86),则根 据处理框82直接i人可该分组。
如果根据判断框86分组是高速数据,则防火墙程序68进行至处理框 87并提取所认可的高速分组的无状态数据,使得可形成不需状态分析而 识别分组的"指紋"。然后将该指紋数据作为接受列表的一部分而载入硬 件组件的表56,使得以后在判断框80处,不需软件安全组件62的干预 而由硬件安全组件54直接传递相似的分组。
在根据处理框87进行该更新的结束处,如处理框82所示,可再次接 受分组。
防火墙程序68的规则可被灵活地实施和再编程,但其执行会比硬件 安全组件54的执行'l"曼得多,因而可能不适合于〗吏用实际可获得的处理器 来处理高速I/0数据。如前述,由于在硬件安全组件54中实施的防火墙 程序68中的改变仅需要改变表56的数据,因而可不改变该硬件安全组件 54而采用各种各样的不同的防火墙程序68。
现在参照图6和7,同样的系统可用来创建安全代理服务器18",其 中将工业协议的安全版本用来防止不管是恶意还是非故意的未授权通信。 优选地,安全协议建立安全的通信会话或关联(涉及根据本领域中公知的 方法对消息源和/或目的地的认证),接着在安全会话上确保消息的发送。 在安全协议下,必须检查消息以进行适当的授权,从而进行所请求的功能。
软件安全组件62负责初始安全M建立功能,这涉及认证JL^设备 或用户。软件安全组件62可当该软件安全组件62与发^^设备关联时启动 安全会话,或可在创建安全会话时与另一发起设^^作。安全协议提供在 源设备32和目的地设备34之间的、"认证"分组所需的通信。该认证可 例如通常是在连接处理期间确认(由其它手段建立的)设备序列号或其它 设备特征,以检验通信的各方。
建立安全会话的结果是生成安全令牌、口令等安全汪明书,以下将所 有这些称作识别和/或认证安全分组的"密钥"。 一旦建立了安全会话,则通常凭借其解密需要密钥的消息的全部或部分的某个形式的加密而在该 安全M上发出后续的消息。
因为加密和解密是资源密集的,所以石更件组件54的辅助可极大地改 善通信性能。作为安全会话建立的一部分,软件组件62凭借认证到来消 息和创建加密的外出安全消息所需的密钥来装载硬件安全组件54。接着 石更件组件54可处置所需的加密和解密。
在网络分流器在安全协议下接收分组的情况下,由硬件安全组件54 来接收分组,该硬件安全组件54在一般地对应于判断框80的判断框80' 处分析它们,以判断该分组是否代表预授权的安全分组。该预授权的安全 分组会包含通常凭借所有加密密钥来表示它们是安全的数据,该加密密钥 可由硬件安全组件54用于对其它分组数据的解密。在这种情况下,硬件 安全组件54'的数据表56,可包含连接标识(如前所述且用于识别安全分组) 和通过解密来认证安全分组的所述密钥。其它进行识别的分组数据也可包 含在表56中,该表56包括源和目的地信息。
如果给定的分组被认证为由(软件安全组件62预载入的)数据表56' 中的数据所建立,则如前述,硬件安全组件54'进行到在处理框82处接受 它。如果给定的分组未被认证,则将分组传递到分组可被拒绝的软件安全 组件62,或在处理框卯处可如上述那样实施安全协i5C的执行。
在网络分流器在安全协议下发起分组的情况下,由硬件安全组件54 来接收分组(例如从应用程序),并且当建立安全协i义时硬件安全组件54 才艮据由软件安全组件62先前形成的密钥来对它们进行加密。石更件安全组 件54存储该密钥并允许它识别与安全协议相关的连接的其它信息(例如会 话ID),从而它可独立地处置包括必要的加密的更低级别的安全协议。然 后在网络上发出该分组。
已根据优选实施例说明了本发明,且应认识到在权利要求的范围内除 了已经明确描述的等同物、替代和修改是可能的。
权利要求
1.一种为工业控制系统提供安全性的网络设备,包括可连接至网络的第一端口,所述网络携带利用工业控制协议的工业控制数据;可连接至控制设备的第二端口,所述控制设备与工业处理通信以对该工业处理进行控制;硬件安全组件,所述硬件安全组件接收网络数据分组并从所述网络分组中提取数据,以与数据表中的允许和拒绝列表进行比较,如果所述分组数据在所述允许列表中且不在所述拒绝列表中,则所述硬件安全组件将所述网络分组传递到所述第二端口,否则将所述网络分组传递到软件安全组件;所述软件安全组件包括电子计算机,所述电子计算机执行所存储的程序,以接收网络分组,并根据所述工业控制协议来从多个分组中提取状态数据,从而(1)识别可拒绝的分组,并不将所述可拒绝的分组发送至所述第二端口而拒绝所述可拒绝的分组,并将分组数据载入所述拒绝列表,所述拒绝列表对于所述硬件组件识别未来的相似的可拒绝的分组;(2)识别需要高速处理的可允许的第一控制数据分组,以允许所述第一控制数据分组被传递到所述第二端口并将分组数据载入所述允许列表,所述允许列表对于所述硬件组件识别未来的相似的第一控制分组;以及(3)识别不需要高速处理的可允许的第二数据分组,以允许在不将数据载入所述允许列表的情况下将所述第二分组传递到所述第二端口。
2. 根据权利要求l所述的网络设备,其中所述第一控制分组是用来 实时地控制工业处理的输>^/输出数据。
3. 根据权利要求l所述的网络设备,其中所述分组数据包括连接号, 所述连接号将所述分组识别到在网络上通信的预识别的硬件组件之间的 预配置的连接。
4. 根据权利要求3所述的网络设备,其中所述数据分组包括从以下 组中选择的分组数据所述组包括表示所述分组的源的源地址、表示接收 到所述分组的逻辑端口的端口号、以及分配给所述通信连接的连接标识 号。
5. 根据权利要求l所述的网络设备,其中所述硬件安全组件被制作 为现场可编程门阵列和应用特定集成电路中的至少 一种。
6. 根据权利要求l所述的网络设备,其中所述第二端口是通过网络 介质连接到接收控制设备的输入的网络的网络端口 。
7. 根据权利要求l所述的网络设备,其中所述第二端口是在合并了 网络设备的控制设备中的内部通信总线,并且其中电子计算机还用于所述 控制设备的操作。
8. 根据权利要求l所述的网络设备,其中所述软件安全组件以在所 述第一端口上进行通信的设备来执行安全协议,以识别已授权的连接,并 对所述硬件安全组件提供加密密钥,其中所述硬件安全组件从以所述加密 密钥解密并与允许列表比较的分组中提取安全密钥。
9. 根据权利要求1所述的网络设备,其中所述软件安全组件进一步执 行所存储的程序以(1) 在所述第一端口上以对应的设备执行安全协议,以认证所述第 一端口上的所述设备;(2) 与所M应的设备共享安全码;(3 )将所述安全码载入所述数据表中;安全码认证所述数据分组,JUL送编码的数据分组以使用来自所述数据表 的所述安全码通过远程i殳备进^i人证。
10.根据权利要求1所述的网络设备,其中所述软件安全组件进一步 执行所存储的程序以(1) 执行安全协议以建立与在所述第一端口上通信的设备的安全通 信,所述安全协i义导致生成密钥,所述密钥可解码所述网络分组以i人证该 网络分l且;以及(2) 将所述密钥添加到可由所述硬件组件访问的所述数据表;其中所述硬件安全组件从所述第 一端口接收网络数据分组,并且如果 可以以保持在所述数据表中的密钥认证所述网络分组,则将所述网络分组 传递到所述第二端口 ,否则将所述网络分组传递到所述软件安全组件,以 及其中所述硬件安全组件进一步从所述第二端口接收数据分组,并编码 该数据分组以在将该数据分组传递到所述第 一端口之前进行认证。
全文摘要
本发明提供一种用于以太网接收的工业控制设备的网络安全模块。一种用于网络连接的工业控制的高速安全设备以先后的硬件和软件安全组件来提供混和处理。软件安全组件建立识别需要高速处理的各分组的无状态数据,并将数据表载入硬件组件。然后硬件组件可允许与数据表的数据匹配的分组绕过软件组件,同时将其它不匹配的分组传递到软件组件以进行更复杂的状态分析。
文档编号H04L29/06GK101527716SQ20091000721
公开日2009年9月9日 申请日期2009年2月13日 优先权日2008年2月14日
发明者布赖恩·A·巴特克, 西瓦拉姆·巴拉苏布拉马尼安 申请人:洛克威尔自动控制技术股份有限公司