CN112910910B - Opcda协议报文处理方法、装置、设备以及存储介质 - Google Patents
Opcda协议报文处理方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN112910910B CN112910910B CN202110181387.5A CN202110181387A CN112910910B CN 112910910 B CN112910910 B CN 112910910B CN 202110181387 A CN202110181387 A CN 202110181387A CN 112910910 B CN112910910 B CN 112910910B
- Authority
- CN
- China
- Prior art keywords
- opcda
- client
- server
- tag name
- message
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种OPCDA协议报文处理方法、装置、设备以及存储介质,属于通信技术领域。本发明OPCDA协议报文处理方法包括以下步骤:接收OPCDA数据报文;解析OPCDA数据报文,以获得OPCDA数据报文的标签名;判断标签名是否在通行白名单内;若标签名在通行白名单内,将OPCDA数据报文发送出去。因此本发明技术方案通过判断接收到的OPCDA数据报文中携带的标签名TagName信息是否在通行白名单内,以对通过防火墙的OPCDA数据报文进行监控,从而实现在客户端与服务器之间的访问链接建立之后,监控客户端对服务器节点数据的读写等数据交互。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种OPCDA协议报文处理方法、装置、设备以及存储介质。
背景技术
OPCDA(ObjectLinking and Embedding for Process Control Data Access)规范旨在简化不同总线标准间的数据访问机制,为不同总线标准提供通过标准接口访问现场数据的基本方法。
但是防火墙对于基于OPCDA协议的报文监控限于目的端口和OPC服务器开放的新通讯端口的访问控制,而对客户端与服务器之间的访问链接建立之后,客户端对于服务器中数据的读写等操作并没有监控。
发明内容
本发明的主要目的是提供一种OPCDA协议报文处理方法、装置、设备以及存储介质,旨在解决现有技术中防火墙对客户端与服务器之间的访问链接建立之后,服务器与客户端之间读写等操作缺少监控的技术问题。
为实现上述目的,第一方面,本发明提出的一种OPCDA协议报文处理方法,使用于防护墙,方法包括:
接收OPCDA数据报文;
解析OPCDA数据报文,以获得OPCDA数据报文的标签名;
判断标签名是否在通行白名单内;
若标签名在通行白名单内,将OPCDA数据报文发送出去。
可选的,判断标签名是否在通行白名单内的步骤之后,方法还包括:
若标签名不在通行白名单内,将OPCDA数据报文丢弃。
可选的,接收OPCDA数据报文的步骤之前,方法包括:
在客户端与服务器基于OPCDA协议建立连接后,接收客户端发送的访问报文;
根据访问报文,获得客户端与服务器之间配置的访问标签名;
基于所述访问标签名,更新所述通行白名单。
可选的,解析OPCDA数据报文,以获得OPCDA数据报文的标签名的步骤包括:
解析OPCDA数据报文,以获得OPCDA数据报文的标签名、第一客户端句柄信息以及第一服务器句柄信息;
若标签名在防火墙预存的通行白名单内,将OPCDA数据报文发送出去的步骤,包括:
若标签名在通行白名单内,根据预存的标签名与句柄组合映射表,判断第一客户端句柄信息和第一服务器句柄信息的组合与标签名之间是否存在映射关系;其中,标签名与句柄组合映射表包括客户端句柄和服务器句柄两者的组合与标签名之间的映射关系;
若第一客户端句柄信息和第一服务器句柄信息的组合与标签名之间存在映射关系,将OPCDA数据报文发送出去。
可选的,判断第一客户端句柄信息和第一服务器句柄信息的组合与标签名之间是否存在映射关系的步骤之后,方法还包括:
若第一客户端句柄信息和第一服务器句柄信息的组合与标签名之间不存在映射关系,丢弃OPCDA数据报文。
可选的,接收OPCDA数据报文的步骤之前,方法还包括:
在客户端与服务器基于OPCDA协议建立连接后,接收客户端发送的访问报文;
根据访问报文,获得客户端与服务器之间配置的访问标签名、第二客户端句柄信息以及第二服务器句柄信息;
基于所述访问标签名,更新所述通行白名单;
根据访问标签名、第二客户端句柄信息以及第二服务器句柄信息,更新所述标签名与句柄组合映射表。
第二方面,本发明实施例还提供了一种OPCDA协议报文处理装置,包括:
报文接收模块,用于接收OPCDA数据报文;
报文解析模块,用于解析OPCDA数据报文,以获得OPCDA数据报文的标签名;
标签判断模块,用于判断标签名是否在通行白名单内;以及
动作执行模块,用于若标签名在通行白名单内,将OPCDA数据报文发送出去。
可选的,报文接收模块还用于在客户端与服务器基于OPCDA协议建立连接后,接收客户端发送的访问报文;
报文解析模块还用于根据访问报文,获得客户端与服务器之间配置的访问标签名、第二客户端句柄信息以及第二服务器句柄信息;
OPCDA协议报文处理装置还包括:
更新模块,用于基于访问标签名,更新通行白名单;根据访问标签名、第二客户端句柄信息以及第二服务器句柄信息,更新标签名与句柄组合映射表。
第三方面,本发明实施例还提供了一种OPCDA协议报文处理设备,设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的OPCDA协议报文处理程序,报文处理程序配置为实现上述的OPCDA协议报文处理方法的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有OPCDA协议报文处理程序,OPCDA协议报文处理程序被处理器执行时实现上述的OPCDA协议报文处理方法的步骤。
在客户端与服务器基于OPCDA协议建立链接后,服务器会重新分配一个通讯端口,用来进行后续OPCDA协议数据的交互,当OPCDA协议数据通道建立成功之后,防火墙可获取到该数据通道的访问标签名TagName等数据,从而可将该访问标签名TagName等数据建立防火墙的通行白名单。由于客户端对服务器节点数据的读写等数据交互通过OPCDA数据报文来实现,因此本发明技术方案通过判断接收到的OPCDA数据报文中携带的TagName信息是否在通行白名单内,以对通过防火墙的OPCDA数据报文进行监控,从而实现在客户端与服务器之间的访问链接建立之后,监控客户端对服务器节点数据的读写等数据交互。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明OPCDA协议报文处理设备一实施例的结构示意图;
图2为本发明OPCDA协议报文处理方法第一实施例的流程示意图;
图3为本发明OPCDA协议报文处理方法第二实施例的示意图;
图4为本发明OPCDA协议报文处理方法第三实施例的流程示意图;
图5为本发明OPCDA协议报文处理方法第四实施例的示意图;
图6为本发明OPCDA协议报文处理装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在对本发明的实施例做详细说明之前,首先说明本发明中所涉及的一些相关概念。
OPCDA协议以微软的COM(component object model)技术为基础,采用客户/服务器结构,应用程序为客户端(OPC Client),驱动程序部分为服务器端(OPC Server)。客户程序通过OPC接口对服务器上的数据进行访问与控制。每个OPC Client应用程序可以连接若干个OPC Server,每一个OPC Server也可以为若干个客户程序提供数据。不同的客户程序以及不同的服务器程序只要合乎OPC协议标准,都可以挂接在一起协同工作,从而形成一种软件总线结构。OPCDA协议报文开始是向服务器的135端口发起连接请求,在客户端与服务器基于OPCDA协议建立链接后,服务器会重新分配一个通讯端口,用来进行后续OPCDA协议数据的交互。防火墙设备的协议解析就能获取当前客户端请求访问的UUID操作接口、Opnum操作码、标签名TagName、server handle和client handle等数据信息。其中,UUID为客户端访问控制的操作接口。Opnum操作码为OPCDA客户端访问控制的操作码(包含读、写、TAG的创建删除和属性修改)。标签名TagName为服务器节点配置的Tag集合信息中的Tag名称。在OPCDA数据报文中,server handle为表示该TAG服务器句柄的一个字段,有时简写成hserver。client handle为TAG客户端句柄的一个字段,有时简写成hclient。在每次访问链接建立时,配置的server handle与client handle的值均为唯一值。特别是当多个客户端同时访问相同的服务器节点的时候,一个TagName对应多组server handle和clienthandle的组合,每一组server handle和client handle都代表建立连接时候服务器分配的句柄信息,并且该信息是唯一的。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的报文处理方法的推荐设备结构示意图。
该电子设备可以是个人电脑、平板电脑、智能手机、个人数字助理、工控计算机、台式终端等具有逻辑运算功能的电子设备。
通常,电子设备包括:至少一个处理器301、存储器302以及存储在存储器上并可在处理器上运行的报文处理程序,报文处理程序配置为实现报文处理方法的步骤。
处理器301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(CentralProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器301可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。
存储器302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器301所执行以实现本申请中方法实施例提供的报文处理方法。
在一些实施例中,设备还包括有:接收器303和发送器304,接收器303用于接收OPCDA数据报文以及访问报文,发送器304用于发送OPCDA数据报文以及访问报文。在本实施例中,发送器304与接收器303可以为网络接口。网络接口可以是有线接口,例如光纤分布式数据接口(Fiber Distributed Data Interface,简称FDDI)、千兆以太网(GigabitEthernet,简称GE)接口;网络接口也可以是无线接口。电子设备的各个硬件组件通过总线耦合在一起,其中总线除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
在一些实施例中,处理器301、存储器302和接收器303和发送器304被集成在同一芯片或电路板上;在一些其他实施例中,处理器301、存储器302和接收器303和发送器304中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
本领域技术人员可以理解,图1中示出的结构并不构成对报文处理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例提供了一种OPCDA协议报文处理方法,参照图2,图2为本发明OPCDA协议报文处理方法的第一实施例的流程示意图。
本实施例中,方法包括:
步骤S101、接收OPCDA数据报文。
在客户端与服务器基于OPCDA协议建立链接后,客户端与服务器可实现数据交互。此时防火墙设备可接收通过防火墙的所有报文,然后解析报文的报头信息。从而筛选出基于OPCDA协议交互的OPCDA数据报文。值得一提的是,OPCDA数据报文中携带有客户端的操作端口与操作码,从而客户端可通过OPCDA数据报文对服务器中的相应节点执行读写等操作。
步骤S102、解析OPCDA数据报文,以获得OPCDA数据报文的标签名TagName。
在客户端与服务器建立链接后,客户端可访问服务器中某一节点的数据。对应的,客户端与服务器中该节点之间的数据报文中携带有该节点配置的Tag信息集合,且在数据报文中通过标签名TagName来表示客户端访问的节点。从而本步骤中可从OPCDA数据报文解析得到该OPCDA数据报文与服务器中的哪一节点相关联。
步骤S103、判断标签名是否在通行白名单内。
步骤S104、若TagName在通行白名单内,将OPCDA数据报文发送出去。
服务器中可具有多个节点,每个节点均配置有一个标签Tag。而客户端与服务器建立链接后,仅访问其中的一个节点,即服务器仅仅与将其中一个节点配置给该客户端。后续数据交互中,客户端与服务器之前的数据交互报文携带有该节点的标签信息,如TagName。防火墙设备内预存有通行白名单,通行白名单内存储有允许通行的TagName。若防火墙接收到的OPCDA数据报文中携带的TagName在通信白名单内,则防火墙允许该OPCDA数据报文通过。若防火墙接收到的OPCDA数据报文中携带的TagName不在通行白名单内。
也即是,本实施例中,若服务器包括有1-10共10个节点,其中,通行白名单中存储有其中5、7以及8三个节点各自的TagName。防火墙设备通过OPCDA数据报文携带的TagName分辨出该OPCDA数据报文携带有与服务器节点5对应的TagName,因此可将该OPCDA数据报文发送出去。
此外,本实施例中,方法还包括:
步骤S105、若TagName不在通行白名单内,将OPCDA数据报文丢弃。
丢弃为防火墙的默认执行动作,该条OPCDA数据报文不能实现服务器与客户端之前的数据交互,从而使得不在通行白名单内的节点的数据不能于被客户端读写控制。
如防火墙设备通过OPCDA数据报文携带的TagName分辨出该OPCDA数据报文携带有与服务器节点1对应的TagName,由于防火墙设备中的通信白名单中没有包括服务器节点1对应的TagName,因此防火墙设备可执行默认动作,将该OPCDA数据报文丢弃,以使得服务器节点1中的数据不能于被客户端通过该条OPCDA数据报文读写控制。
容易理解的,工控互联网中,防火墙对于OPC服务器的安全防护在于客户端与服务器建立链接之间的控制,即对于基于OPCDA协议的报文监控限于目的端口和OPC服务器开放的新通讯端口的访问控制,而对客户端与服务器之间的访问链接建立之后,客户端对于服务器中各个节点的数据的读写并没有监控。
由于客户端对服务器节点数据的读写等数据交互通过OPCDA数据报文来实现,因此本发明技术方案通过判断接收到的OPCDA数据报文中携带的TagName信息是否在通行白名单内,以对通过防火墙的OPCDA数据报文进行监控,从而实现在客户端与服务器之间的访问链接建立之后,监控客户端对服务器节点数据的读写等数据交互。
进一步的,在本发明实施例的OPCDA协议报文处理方法第一实施例的基础上,提出本发明实施例的OPCDA协议报文处理方法的第二实施例。参阅图3,图3为本发明实施例的OPCDA协议报文处理方法第二实施例的示意图。
本实施例中,报文处理方法在步骤S100之前,还包括以下步骤:
步骤A10,在客户端与服务器基于OPCDA协议建立连接后,接收客户端发送的访问报文。
步骤A20,根据访问报文,获得客户端与服务器之间配置的访问标签名。
容易理解的,在客户端与服务器基于OPCDA协议建立链接、分配好端口后,客户端会向服务器发出访问报文。该访问报文携带有该客户端需要访问的服务器节点信息,即标签名TagName,以及server handle和client handle等数据信息。本实施例中的访问标签名为访问报文中携带的标签名。防火墙设备接收到该访问报文后,即可根据OPCDA协议解析该访问报文,然后获取该访问报文中携带的标签名TagName,以及server handle和clienthandle等数据信息。
步骤S30,基于所述访问标签名,更新所述通行白名单。
防火墙接收到该访问标签名等数据信息后,即可将该访问TagName添加至通行白名单内,从而防火墙在接收到具有该访问TagName的OPCDA数据报文后,即可将具有具有该访问TagName的OPCDA数据报文放行,而不具有该访问TagName的OPCDA数据报文则丢弃掉。
参阅图3,如客户端与服务器建立连接后,服务器会重新分配一个通讯端口B,客户端的端口C向服务器的端口B发出请求,如客户端首先发出一个SYN消息,服务器的通讯端口使用SYN ACK应答表示接收到了这个消息,最后客户端以ACK消息应答,从而两个端口之间成功建立OPCDA协议数据通道。OPCDA协议数据通道建立之后,端口C发出访问报文,该访问报文携带有端口C的操作码、访问TagName,以及server handle和client handle等数据信息。防火墙设备接收到该访问报文后,解析该访问报文,从而可获取到端口C和端口B之间数据交互的节点的TagName。即对该节点的数据交互是经过验证且可信的。将该TagName添加至通行白名单内后,即可对后续带有该TagName的OPCDA数据报文放行。而不在通行白名单中的TagName,可以认为没有经过验证且不可信的,因此可以丢弃掉。从而可以更好地对OPC服务器中的数据进行保护。
容易理解的,本实施例示出了一种通行白名单的构建方法。在其他实施例中,还可以通过用户直接修改防火墙设备里面的通行白名单进行修改或者更新。
进一步的,在本发明实施例的OPCDA协议报文处理方法第一实施例和第二实施例的基础上,提出本发明实施例的OPCDA协议报文处理方法的第三实施例。参阅图4,图4为本发明实施例的OPCDA协议报文处理方法第三实施例的流程示意图。
本实施例中,报文处理方法包括以下步骤:
步骤S201、接收OPCDA数据报文。
步骤S202、解析OPCDA数据报文,以获得OPCDA数据报文的标签名TagName、第一客户端句柄信息以及第一服务器句柄信息;
在客户端与服务器建立数据交互通道后,客户端可访问服务器中某一节点的数据。对应的,客户端与服务器中该节点之间的数据报文中携带有该节点配置的Tag信息集合,且在数据报文中通过标签名TagName来表示客户端访问的节点。同时,OPCDA数据报文中还携带有server handle,即表示服务器句柄的一个字段,也即是第一服务器句柄信息,以及OPCDA数据报文中还携带有client handle,即表示客户端句柄的一个字段,也即是第一客户端句柄信息。
步骤S203,判断标签名是否在通行白名单内。
步骤S204,若TagName在通行白名单内,根据预存的标签名与句柄组合映射表,判断第一客户端句柄信息和第一服务器句柄信息的组合与标签名之间是否存在映射关系。
步骤S205,若第一客户端句柄信息和第一服务器句柄信息的组合与标签名之间存在映射关系,将OPCDA数据报文发送出去。
步骤S206,若第一客户端句柄信息和第一服务器句柄信息的组合与agName之间不存在映射关系,丢弃OPCDA数据报文。
本实施例中,防火墙设备的通行白名单内还具有预存的标签名与句柄组合映射表。其中,标签名与句柄组合映射表包括所述客户端句柄和服务器句柄两者的组合与标签名之间的映射关系。标签名与句柄组合映射表中的TagName均在通行白名单内。且映射表中每个TagName下可以映射有多组客户端句柄和服务器句柄的组合。每组客户端句柄和服务器句柄组成的组合均是唯一的。若TagName在通行白名单内,且第一客户端句柄信息和第一服务器句柄信息组成的组合与TagName之间满足映射表中的映射关系,则表示携带有该第一客户端句柄信息以及第一服务器句柄信息的OPCDA数据报文的唯一连接主体符合防火墙规则,可以将OPCDA数据报文发送出去。而若TagName在通行白名单内,但是第一客户端句柄信息和第一服务器句柄信息组成的组合与TagName之间不满足映射表中的映射关系,则表示携带有该第一客户端句柄信息以及第一服务器句柄信息的OPCDA数据报文的唯一连接主体不符合防火墙规则,该访问连接是不可信任的,因此,可将该OPCDA数据报文丢弃。
具体而言,在客户端与服务器连接后,服务器的该节点还会提供一服务器句柄,以使得客户端可以通过句柄定位到该节点,同时客户端也会提供一客户端句柄。值得一提的是,在每次连接建立时,客户端句柄随机生成,每次都不一样,也即是每次连接建立时,每一组服务器句柄以及客户端句柄是唯一的。每次客户端与服务器连接后,客户端与服务器之间的连接虽然分配了相同的节点,即具有相同的TagName,但是由于分配的服务器句柄以及客户端句柄不同,每次连接主体均是唯一的。
值得一提的是,由于存在多个客户端访问同一个服务器节点的情况,此时,同一TagName可以映射有多组客户端句柄和服务器句柄的组合。
如,在一具体实施例中,客户端与服务器建立连接后,中间因为网络故障断开连接,后续网络恢复后建立的连接的第一服务器句柄以及第一客户端句柄与之前并不相同。因此,虽然网络断开连接前,OPCDA数据报文携带的第一服务器句柄以及第一客户端句柄的组合与TagName之间满足映射表中的映射关系,可以被发送出去。但是网络恢复后,虽然OPCDA数据报文仍然具有相同的TagName,即TagName在通行白名单内,但是新的OPCDA数据报文携带的第一服务器句柄以及第一客户端句柄已经发生变化,第一服务器句柄以及第一客户端句柄的组合与TagName之间不能满足映射表中的映射关系,此时,该OPCDA数据报文被丢弃。
本实施例中,除了基于OPCDA数据报文的TagName进行访问控制外,还基于OPCDA数据报文的第一客户端句柄信息以及第一服务器句柄信息进行访问控制,从而对于相同TagName的每个具体的数据交互连接主体均实现访问控制。
进一步的,在本发明方法第三实施例的基础上,提出本发明OPCDA协议报文处理方法的第四实施例。参阅图5,图5为本发明实施例的示意图。
本实施例中示出了客户端句柄和服务器句柄映射表中客户端句柄和服务器句柄映射关系的更新步骤。
本实施例中,在步骤S201之前,还包括以下步骤:
步骤B10,在客户端与服务器基于OPCDA协议建立连接后,接收客户端发送的访问报文。
步骤B20,根据访问报文,获得客户端与服务器之间配置的访问标签名、第二客户端句柄信息以及第二服务器句柄信息。
参阅图5,容易理解的,在客户端与服务器基于OPCDA协议建立链接服务器分配通讯端口,然后客户端首先发出一个SYN消息,服务器的通讯端口使用SYN ACK应答表示接收到了这个消息,最后客户端以ACK消息应答,从而两个端口之间成功建立OPCDA协议数据通道。此后客户端会向服务器发出访问报文。该访问报文携带有该客户端需要访问的服务器节点信息,即标签名TagName,以及server handle和client handle等数据信息。本实施例中的访问标签名为访问报文中携带的标签名。防火墙设备接收到该访问报文后,即可根据OPCDA协议解析该访问报文,然后获取该访问报文中携带的标签名TagName,以及serverhandle字段,即第二客户端句柄信息,以及client handle字段,即第二服务器句柄信息。
步骤B30,基于访问标签名,更新通行白名单。
步骤B40,根据访问标签名、第二客户端句柄信息以及第二服务器句柄信息,更新标签名与句柄组合映射表。
防火墙接收到该访问标签名等数据信息后,即可将该访问TagName添加至通行白名单内,从而防火墙在接收到具有该访问TagName的OPCDA数据报文后,即可将具有具有该访问TagName的OPCDA数据报文放行,而不具有该访问TagName的OPCDA数据报文则丢弃掉。同时,防火墙设备可根据server handle字段,即第二客户端句柄信息,以及client handle字段,即第二服务器句柄信息创建server handle字段和client handle字段的组合与该TagName之间的映射关系,也即是标签名与句柄组合映射表。
参照图6,图6为本发明OPCDA协议报文处理装置第一实施例的结构框图。本发明实施例还提供了一种OPCDA协议报文处理装置,包括:
报文接收模块10,用于接收OPCDA数据报文;
报文解析模块20,用于解析OPCDA数据报文,以获得OPCDA数据报文的标签名TagName;
标签判断模块30,用于判断标签名是否在通行白名单内;以及
动作执行模块40,用于若TagName在通行白名单内,将OPCDA数据报文发送出去。
由于客户端对服务器节点数据的读写等数据交互通过OPCDA数据报文来实现,因此本发明报文处理装置通过判断接收到的OPCDA数据报文中携带的TagName信息是否在通行白名单内,以对通过防火墙的OPCDA数据报文进行监控,从而实现在客户端与服务器之间的访问链接建立之后,监控客户端对服务器节点数据的读写等数据交互。
在本发明OPCDA协议报文处理装置第一实施例的基础上,本发明实施例还提供了本发明OPCDA协议报文处理装置第二实施例。
本实施例中,报文接收模块还用于在客户端与服务器基于OPCDA协议建立连接后,接收客户端发送的访问报文。报文解析模块还用于根据访问报文,获得客户端与服务器之间配置的访问标签名、第二客户端句柄信息以及第二服务器句柄信息。
且本实施例中,OPCDA协议报文处理装置还包括:
更新模块,用于基于访问标签名,更新通行白名单;根据访问标签名、第二客户端句柄信息以及第二服务器句柄信息,更新标签名与句柄组合映射表。
本发明OPCDA协议报文处理装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,计算机可读存储介质上存储有OPCDA协议报文处理程序,OPCDA协议报文处理程序被处理器执行时实现如上文所述的OPCDA协议报文处理方法的步骤。因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。确定为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
Claims (9)
1.一种OPCDA协议报文处理方法,其特征在于,使用于防护墙,所述方法包括:
接收OPCDA数据报文;
解析所述OPCDA数据报文,以获得所述OPCDA数据报文的标签名;
判断所述标签名是否在通行白名单内;
若所述标签名在所述通行白名单内,将所述OPCDA数据报文发送出去;
所述解析所述OPCDA数据报文,以获得所述OPCDA数据报文的标签名的步骤包括:
解析所述OPCDA数据报文,以获得所述OPCDA数据报文的标签名、第一客户端句柄信息以及第一服务器句柄信息;
所述若所述标签名在所述通行白名单内,将所述OPCDA数据报文发送出去的步骤,包括:
若所述标签名在所述通行白名单内,根据预存的标签名与句柄组合映射表,判断所述第一客户端句柄信息和第一服务器句柄信息的组合与所述标签名之间是否存在映射关系;其中,所述标签名与句柄组合映射表包括客户端句柄和服务器句柄两者的组合与标签名之间的映射关系;
若所述第一客户端句柄信息和所述第一服务器句柄信息的组合与所述标签名之间存在映射关系,将所述OPCDA数据报文发送出去;
其中,在客户端每次与服务器连接后,服务器的配置的节点还会提供所述第一服务器句柄信息,同时客户端也会提供所述第一客户端句柄信息。
2.根据权利要求1所述的OPCDA协议报文处理方法,其特征在于,所述判断所述标签名是否在通行白名单内的步骤之后,所述方法还包括:
若所述标签名不在所述通行白名单内,将所述OPCDA数据报文丢弃。
3.根据权利要求1所述的OPCDA协议报文处理方法,其特征在于,所述接收OPCDA数据报文的步骤之前,所述方法包括:
在客户端与服务器基于OPCDA协议建立连接后,接收所述客户端发送的访问报文;
根据所述访问报文,获得所述客户端与所述服务器之间配置的访问标签名;
基于所述访问标签名,更新所述通行白名单。
4.根据权利要求1所述的OPCDA协议报文处理方法,其特征在于,所述判断所述第一客户端句柄信息和所述第一服务器句柄信息的组合与所述标签名之间是否存在映射关系的步骤之后,所述方法还包括:
若所述第一客户端句柄信息和所述第一服务器句柄信息的组合与所述标签名之间不存在映射关系,丢弃所述OPCDA数据报文。
5.根据权利要求1所述的OPCDA协议报文处理方法,其特征在于,所述接收OPCDA数据报文的步骤之前,所述方法还包括:
在所述客户端与所述服务器基于OPCDA协议建立连接后,接收所述客户端发送的访问报文;
根据所述访问报文,获得所述客户端与所述服务器之间配置的访问标签名、第二客户端句柄信息以及第二服务器句柄信息;
根据所述访问标签名,更新所述通行白名单;
根据所述访问标签名、所述第二客户端句柄信息以及所述第二服务器句柄信息,更新所述标签名与句柄组合映射表。
6.一种OPCDA协议报文处理装置,其特征在于,包括:
报文接收模块,用于接收OPCDA数据报文;
报文解析模块,用于解析所述OPCDA数据报文,以获得所述OPCDA数据报文的标签名;
标签判断模块,用于判断所述标签名是否在通行白名单内;以及
动作执行模块,用于若所述标签名在所述通行白名单内,将所述OPCDA数据报文发送出去;
报文解析模块,还用于解析所述OPCDA数据报文,以获得所述OPCDA数据报文的标签名、第一客户端句柄信息以及第一服务器句柄信息;
动作执行模块,还用于若所述标签名在所述通行白名单内,根据预存的标签名与句柄组合映射表,判断所述第一客户端句柄信息和第一服务器句柄信息的组合与所述标签名之间是否存在映射关系;其中,所述标签名与句柄组合映射表包括客户端句柄和服务器句柄两者的组合与标签名之间的映射关系;
若所述第一客户端句柄信息和所述第一服务器句柄信息的组合与所述标签名之间存在映射关系,将所述OPCDA数据报文发送出去;
其中,在客户端每次与服务器连接后,服务器的配置的节点还会提供所述第一服务器句柄信息,同时客户端也会提供所述第一客户端句柄信息。
7.根据权利要求6所述的OPCDA协议报文处理装置,其特征在于:
所述报文接收模块还用于在所述客户端与所述服务器基于OPCDA协议建立连接后,接收所述客户端发送的访问报文;
所述报文解析模块还用于根据所述访问报文,获得所述客户端与所述服务器之间配置的访问标签名、第二客户端句柄信息以及第二服务器句柄信息;
所述OPCDA协议报文处理装置还包括:
更新模块,用于基于所述访问标签名,更新所述通行白名单;根据所述访问标签名、所述第二客户端句柄信息以及所述第二服务器句柄信息,更新所述标签名与句柄组合映射表。
8.一种OPCDA协议报文处理设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的OPCDA协议报文处理程序,所述OPCDA协议报文处理程序配置为实现如权利要求1至5中任一项所述的OPCDA协议报文处理方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有OPCDA协议报文处理程序,所述OPCDA协议报文处理程序被处理器执行时实现如权利要求1至5任一项所述的OPCDA协议报文处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110181387.5A CN112910910B (zh) | 2021-02-08 | 2021-02-08 | Opcda协议报文处理方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110181387.5A CN112910910B (zh) | 2021-02-08 | 2021-02-08 | Opcda协议报文处理方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112910910A CN112910910A (zh) | 2021-06-04 |
CN112910910B true CN112910910B (zh) | 2022-07-19 |
Family
ID=76123335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110181387.5A Active CN112910910B (zh) | 2021-02-08 | 2021-02-08 | Opcda协议报文处理方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112910910B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979064B (zh) * | 2022-08-01 | 2022-10-21 | 北京天融信网络安全技术有限公司 | Opcda报文处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104660593A (zh) * | 2015-02-09 | 2015-05-27 | 西北工业大学 | Opc安全网关数据包过滤方法 |
CN105704145A (zh) * | 2016-03-22 | 2016-06-22 | 英赛克科技(北京)有限公司 | 针对opc协议的安全防护方法和系统 |
CN109639701A (zh) * | 2018-12-25 | 2019-04-16 | 杭州迪普科技股份有限公司 | 基于opc协议的访问控制方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101393442B (zh) * | 2008-10-24 | 2010-06-23 | 南京分析仪器厂有限公司 | 一种基于opc通讯技术的cems监控方法 |
CN101963798B (zh) * | 2010-06-29 | 2012-10-31 | 东华大学 | 嵌入式轨道交通车站设备信息采集方法 |
CN108173948B (zh) * | 2017-12-29 | 2020-12-04 | 中国船舶重工集团公司第七一九研究所 | 一种分布式试验数据实时交换方法 |
-
2021
- 2021-02-08 CN CN202110181387.5A patent/CN112910910B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104660593A (zh) * | 2015-02-09 | 2015-05-27 | 西北工业大学 | Opc安全网关数据包过滤方法 |
CN105704145A (zh) * | 2016-03-22 | 2016-06-22 | 英赛克科技(北京)有限公司 | 针对opc协议的安全防护方法和系统 |
CN109639701A (zh) * | 2018-12-25 | 2019-04-16 | 杭州迪普科技股份有限公司 | 基于opc协议的访问控制方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112910910A (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108268328B (zh) | 数据处理装置及计算机 | |
US11960430B2 (en) | Remote mapping method, apparatus and device for computing resources, and storage medium | |
US9699276B2 (en) | Data distribution method and system and data receiving apparatus | |
CN105005471A (zh) | 修改bios的配置参数的方法、设备、服务器和系统 | |
US20130254361A1 (en) | Server system and management method thereof | |
CN113900982B (zh) | 一种分布式异构加速平台通信方法、系统、设备及介质 | |
WO2017032112A1 (zh) | 一种与无中央处理器单板通讯的方法及通讯设备 | |
CN113259479B (zh) | 一种数据处理方法以及设备 | |
US10621124B2 (en) | Method, device and computer program product for enabling SR-IOV functions in endpoint device | |
CN115102780B (zh) | 数据传输方法、相关装置、系统及计算机可读存储介质 | |
CN114124929A (zh) | 跨网络的数据处理方法和装置 | |
CN112910910B (zh) | Opcda协议报文处理方法、装置、设备以及存储介质 | |
CN109788251B (zh) | 视频处理方法、装置及存储介质 | |
CN109388388B (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
CN108881060A (zh) | 一种处理通信报文的方法及装置 | |
CN114793223A (zh) | Dns记录的存储方法、装置、存储介质及电子设备 | |
CN110430478B (zh) | 组网通信方法、装置、终端设备及存储介质 | |
CN115580497B (zh) | 容器环境下数据传输控制方法、设备及存储介质 | |
CN114915499B (zh) | 数据传输方法、相关装置、系统及计算机可读存储介质 | |
CN116032614A (zh) | 容器网络微隔离方法、装置、设备和介质 | |
CN113612643B (zh) | 云手机的网络配置方法、装置、设备以及存储介质 | |
CN113630300B (zh) | 用于报文传输的方法和节点 | |
CN116743587B (zh) | 一种基于异构计算加速卡的虚拟网络接口实现方法及装置 | |
CN109068170A (zh) | 一种弹幕消息的存储方法、装置、终端和存储介质 | |
TWI428765B (zh) | 可共享應用程式配置參數的電子系統及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |