基于OPC协议的访问控制方法、装置、设备及存储介质与流程

文档序号:17429700发布日期:2019-04-17 03:19阅读:370来源:国知局
基于OPC协议的访问控制方法、装置、设备及存储介质与流程

本发明涉及通信技术领域,尤其涉及一种基于opc协议的访问控制方法、装置、设备及计算机可读存储介质。



背景技术:

随着工业过程自动化的发展,自动化系统集成厂商希望能够快速集成不同厂家的各种软硬件产品,在不同设备、系统之间实现互操作。opcclassic的出现解决了控制系统突破“信息孤岛”的瓶颈问题。opcclassic技术建立了一组符合工业控制要求的接口规范,其包括opcda、opchda、opca&e、opcdx等子协议。opcclassic将现场信号按照统一的标准与scada,hmi等软件无缝连接起来,同时将硬件和应用软件有效地分离开。只要硬件开发商提供带有opcclassic接口的服务器,任何支持opcclassic接口的客户程序均可采用统一的方式对不同硬件厂商的设备数据进行存取,无须重复开发驱动程序。这样大大提高了控制系统的互操作性和适应性。

大部分tcp、udp协议使用单一的固定端口号,例如modbustcp默认使用502端口。客户端与服务器的502端口建立连接,然后发送数据请求到服务器,或者接受来自服务器的响应数据。使用防火墙来保护这些服务器比较简单,只需设置防火墙仅允许指定端口的报文进行通讯,阻止其它端口通讯即可,但opcclassic协议使用动态随机端口,建立opcclassic连接需要以下两步:(1)客户端通过135端口向服务器请求以获取通讯所需的tcp端口号,服务器返回一个动态随机端口;(2)客户端使用服务器返回的动态随机端口连接到服务器,进行数据通讯。其中,opc服务器返回的是一个动态随机端口,因此无法预知服务器返回给客户端的端口号,如果使用传统防火墙来保护opc服务器,将不得不允许opc客户端连接opc服务器的任意端口,此种情况下,防火墙提供的安全防护将降至最低。因此,目前绝大多数的opc服务器都运行在没有任何防火墙保护的环境中,因而很容易受到一些恶意软件的攻击。

对此,现有技术的中对于opc服务器以及opc客户端的安全防护方案通常是跟踪在服务器返回opc应答信息中包括服务器端通过一个虚拟随机序列动态分配的tcp端口号,对合法的tcp端口分配交互过程进行授权,对经过tcp端口授权的交互通信信息的放行,并对该交互通信信息的传输过程进行访问控制防护,阻止未经tcp端口授权的数据传输及控制命令传送。

但是,在实现本发明的过程中,发明人发现:现有技术中仅对动态端口进行跟踪,进行端口级别的访问控制,但黑客可利用动态端口构造格式正确的opc数据包篡改服务器数据,进行非授权的操作,从而使得opc服务器以及opc客户端通讯双方受到一些恶意软件的攻击。



技术实现要素:

有鉴于此,本发明提供一种基于opc协议的访问控制方法、装置、设备及计算机可读存储介质。

根据本发明实施例的第一方面,提供一种基于opc协议的访问控制方法,所述方法包括:

获取opc客户端向opc服务器发送的opc请求报文;

在确定所述opc请求报文的端口合法性之后,从所述opc请求报文的报头获取语义标识符以及操作数;

根据所述语义标识符以及预先建立的绑定信息链表确定opc接口;其中,所述绑定信息链表用于存储语义标识符与opc接口的绑定关系;

基于所述opc接口以及所述操作数,确定所述opc请求报文的操作指令;

基于所述操作指令以及预先设置的访问规则,确定是否放行所述opc请求报文。

优选地,所述确定所述opc请求报文的端口合法性,包括:

获取所述opc请求报文对应的目的端口、源端口、目的ip地址以及源ip地址,并基于预先建立的动态端口链表进行合法性判断;其中,所述动态端口链表用于存储至少一个opc会话以及其所包括的opc服务器分配的动态目的端口、以及目的ip地址、opc客户端的源端口以及源ip地址。

优选地,所述绑定信息链表挂载在所述动态端口链表中对应的opc会话的节点上。

优选地,所述绑定信息链表具体用于存储语义标识符与opc接口唯一对应的uuid的绑定关系;

则所述根据所述语义标识符以及预先建立的绑定信息链表确定opc接口,具体为:

根据所述语义标识符以及预先建立的绑定信息链表确定用于唯一标识opc接口的uuid;

则所述基于所述opc接口以及所述操作数,确定所述opc请求报文的操作指令,具体为:

基于所述uuid、所述操作数以及预先建立的opc指令操作库,确定所述opc请求报文的操作指令;所述opc指令操作库用于存储opc接口的uuid、所述opc接口所包括的操作数以及对应的操作指令。

优选地,所述opc操作指令库还存储有所述uuid对应的索引值;

则所述基于所述uuid、所述操作数以及预先建立的opc指令操作库,确定所述opc请求报文的操作指令,包括:

基于所述uuid,获取所述uuid对应的索引值;

根据所述uuid对应的索引值以及所述操作数,从所述opc操作指令库中确定所述opc请求报文的操作指令。

优选地,还包括:

当检测到所述opc请求报文为绑定请求报文时,从所述绑定请求报文中获取语义标识符与uuid的绑定信息,并缓存所述绑定信息;

当接收到所述服务器基于所述绑定请求报文返回的确认绑定的响应报文时,将所述绑定信息存储到所述绑定信息链表新增的节点上。

优选地,还包括:

当检测到所述opc请求报文为更改绑定请求报文时,从所述更改绑定请求报文中获取语义标识符与uuid的绑定关系更改信息,并缓存所述绑定关系更改信息;

当接收到所述服务器基于所述更改绑定请求报文返回的确认更改绑定的响应报文时,基于所述语义标识符在所述绑定信息链表上查找对应的节点,然后根据所述绑定关系更改信息更新所述节点中存储的内容。

优选地,还包括:

当检测到启动指令时,将所有的绑定信息链表挂载到全局链表头上;

当检测到所述动态端口链表上新增了opc会话的节点之后,将与新增的opc会话对应的绑定信息链表挂载到所述新增的opc会话的节点上;所述绑定信息链表还存储有先前对应挂载的opc会话所包括的opc服务器分配的动态目的端口、以及目的ip地址以及opc客户端的源ip地址。

根据本发明实施例的第二方面,提供一种基于opc协议的访问控制装置,所述装置包括:

第一获取模块,用于获取opc客户端向opc服务器发送的opc请求报文;

第二获取模块,用于在确定所述opc请求报文的端口合法性之后,从所述opc请求报文的报头获取语义标识符以及操作数;

opc接口确定模块,用于根据所述语义标识符以及预先建立的绑定信息链表确定opc接口;其中,所述绑定信息链表用于存储语义标识符与opc接口的绑定关系;

操作指令确定模块,用于基于所述opc接口以及所述操作数,确定所述opc请求报文的操作指令;

访问控制模块,用于基于所述操作指令,以及预先设置的访问规则确定是否放行所述opc请求报文。

根据本发明实施例的第三方面,提供一种电子设备,所述电子设备包括处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

获取opc客户端向opc服务器发送的opc请求报文;

在确定所述opc请求报文的端口合法性之后,从所述opc请求报文的报头获取语义标识符以及操作数;

根据所述语义标识符以及预先建立的绑定信息链表确定opc接口;其中,所述绑定信息链表用于存储语义标识符与opc接口的绑定关系;

基于所述opc接口以及所述操作数,确定所述opc请求报文的操作指令;

基于所述操作指令以及预先设置的访问规则,确定是否放行所述opc请求报文。

根据本发明实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现本发明实施例的第一方面中任一所述方法的步骤。

本发明实施例具有如下有益效果:

通过获取opc客户端向opc服务器发送的opc请求报文,在确定所述opc请求报文的端口合法性之后,从所述opc请求报文的报头获取语义标识符以及操作数,然后根据所述语义标识符以及预先建立的绑定信息链表确定opc接口,所述绑定信息链表用于存储语义标识符与opc接口的绑定关系,再基于所述opc接口以及所述操作数,确定所述opc请求报文的操作指令,最后基于所述操作指令以及预先设置的访问规则确定是否放行所述opc请求报文,实现对于opc报文的指令级的访问控制,基于操作指令确定opc请求报文是否通过验证,从而禁止非法篡改的指令的通过,为opc通信过程提供更高的安全保证。

附图说明

图1为本发明根据一示例性实施例示出的一种基于opc协议的访问控制方法的实施例流程图;

图2为本发明根据一示例性实施例示出的基于opc协议的访问控制流程的一种结构示意图;

图3是本发明根据一示例性实施例示出的动态端口链表的一种示意图;

图4为本发明根据一示例性实施例示出的绑定关系链表与动态端口链表的挂载关系的一种示意图;

图5为本发明根据一示例性实施例示出的opc操作指令库其中一个opc接口的存储结构的一种示意图;

图6为本发明根据一示例性实施例示出的opc操作指令库其中一个opc接口的存储结构的另一种示意图;

图7为本发明根据一示例性实施例示出的基于opc协议的访问控制流程的另一种结构示意图;

图8为本发明根据一示例性实施例示出的另一种基于opc协议的访问控制方法的实施例流程图;

图9为本发明根据一示例性实施例示出的一种基于opc协议的访问控制装置的实施例结构图;

图10为本发明根据一示例性实施例示出的一种电子设备的硬件结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

现有技术中仅对opc(oleforprocesscontrol,用于过程控制的ole)通讯过程中服务器分配的动态端口进行跟踪,进行端口级别的访问控制,但黑客可利用动态端口构造格式正确的opc数据包篡改服务器数据,进行非授权的操作,从而使得opc服务器以及opc客户端通讯双方受到一些恶意软件的攻击,对此,本发明提供了一种基于opc协议的访问控制方法,其可由一电子设备来执行,如图1所示,所述方法包括:

s101,获取opc客户端向opc服务器发送的opc请求报文。

s102,在确定所述opc请求报文的端口合法性之后,从所述opc请求报文的报头获取语义标识符以及操作数。

s103,根据所述语义标识符以及预先建立的绑定信息链表确定opc接口;其中,所述绑定信息链表用于存储语义标识符与opc接口的绑定关系。

s104,基于所述opc接口以及所述操作数,确定所述opc请求报文的操作指令。

s105,基于所述操作指令以及预先设置的访问规则,确定是否放行所述opc请求报文。

在一实施例中,所述基于opc协议的访问控制方法可集成于一电子设备中,由电子设备来执行,其中,所述电子设备可以是桌上型计算机、笔记本、掌上电脑、智能平板、手机以及云端服务器等计算设备,本发明对此不做任何限制,如图2所示,所述电子设备设置在opc客户端与opc服务器之间,为opc客户端与opc服务器之间的opc通讯过程建立安全防护。

在一实施例中,所述opc客户端若想实现与所述opc服务器的opc通讯过程,首先,所述opc客户端通过135目的端口向opc服务器发送opc连接请求报文,然后所述opc服务器基于所述opc连接请求报文返回的确认连接的opc响应报文,所述opc响应报文中包括有所述opc服务器通过一个虚拟随机序列动态分配的一个tcp目的端口,最后所述opc客户端基于分配的动态tcp目的端口与所述服务器建立opc通讯,其中,所述电子设备在获取到所述opc服务器基于所述opc连接请求报文返回的确认连接的opc响应报文时,如图3所示,在预先建立的动态端口链表上对应新增一个opc会话的节点,所述opc会话的节点用于表征所述opc客户端与所述服务器之间的opc通讯过程,然后在节点上保存所述opc会话对应包括的opc服务器分配的动态tcp目的端口以及目的ip地址、opc客户端的源端口以及源ip地址,所述电子设备周期性的更新维护所述动态端口链表,若检测到存在opc会话中的opc服务器分配的动态tcp端口号超时或者长时间未使用,则关闭对应的动态tcp端口号,并删除相应的opc会话。

在步骤s101中,在所述opc客户端接收到所述opc服务器基于所述opc连接请求报文返回的确认连接的opc响应报文之后,所述opc客户端基于所述opc服务器分配的动态tcp目的端口,向所述opc服务器发送opc请求报文,所述电子设备获取所述opc客户端向opc服务器发送的opc请求报文,对所述opc请求报文进行安全验证。

在步骤s102中,首先,所述电子设备对所述opc请求报文进行端口合法性验证,具体地,所述电子设备获取所述opc请求报文对应的目的端口、源端口、目的ip地址以及源ip地址,然后基于预先建立的动态端口链表进行合法性判断,所述动态端口链表用于存储至少一个opc会话以及其所包括的opc服务器分配的动态目的端口、以及目的ip地址、opc客户端的源端口以及源ip地址,所述电子设备将所述opc请求报文对应的目的端口、源端口、目的ip地址以及源ip地址分别与所述动态端口链表中存储的opc会话的opc服务器分配的动态目的端口、以及目的ip地址、opc客户端的源端口以及源ip地址一一进行匹配,若匹配不一致,确认所述opc请求报文不属于所述动态端口链表中的任何一个opc会话,则所述opc请求报文为非法报文,所述电子设备禁止所述opc请求报文通过;若存在匹配一致的opc会话,确认所述opc请求报文属于所述动态端口链表中的所述opc会话时,则确认所述opc请求报文的端口合法,然后所述电子设备从所述opc请求报文的报头获取语义标识符(contextid)以及操作数(operationnum,简称opnum),其中,语义标识符(contextid)表示某一特定的接口,操作数表示对被调用接口的一种操作指令,由于opc协议的报文需要根据上下文报文才能判断出当前报文正在执行的操作,相同的语义标识符和操作数在不同时刻可能代表不同的操作指令,因此仅仅通过语义标识符和操作数无法判断当前opc请求报文的操作指令;需要说明的是,所述动态端口链表可以是单向链表、双向链表或者循环链表等等。

在步骤103中,所述电子设备根据所述语义标识符以及预先建立的绑定信息链表确定所述语义标识符绑定的opc接口,所述绑定信息链表用于存储语义标识符与opc接口的绑定关系,需要说明的是,每个opc接口对应一个通用唯一识别码uuid(universallyuniqueidentifier),由32个16进制数字所构成,其用于标识opc接口,则所述绑定信息链表具体用于存储语义标识符与opc接口唯一对应的uuid的绑定关系,所述电子设备根据所述语义标识符以及预先建立的绑定信息链表确定用于唯一标识opc接口的uuid,若根据所述语义标识符找不到对应的绑定关系,则所述opc请求报文为非法报文,所述电子设备禁止所述opc请求报文通过,需要说明的是,请参阅图4,所述绑定信息链表挂载在所述动态端口链表中对应的opc会话的节点上,用于表征对应opc会话的绑定接口信息,所述绑定信息链表可以是单向链表、双向链表或者循环链表等等,本发明对此不做任何限制。

在步骤104中,所述电子设备在确定了绑定的opc接口,即确定了唯一标识opc接口的uuid之后,基于唯一标识opc接口的uuid以及所述操作数,确定所述opc请求报文的操作指令,具体地,所述电子设备基于所述uuid、所述操作数以及预先建立的opc指令操作库,确定所述opc请求报文的操作指令;请参阅图5,图5为opc指令操作库的其中一个opc接口的存储结构的示意图,所述opc指令操作库用于存储基于opc协议规范的opc接口的uuid、所述opc接口所包括的操作数以及对应的操作指令。

在一实施例中,请参阅图6,图6为opc指令操作库的其中一个opc接口的存储结构的另一种示意图,所述opc操作指令库还存储有所述uuid对应的索引值,所述索引值为哈希索引值,所述索引值根据所述uuid计算所得,与所述uuid一一对应,则所述电子设备在确定了唯一标识opc接口的uuid之后,基于所述uuid,计算获取所述uuid对应的索引值,然后根据所述uuid对应的索引值以及所述操作数,从所述opc操作指令库中确定所述opc请求报文的操作指令;本实施例中在确定opc接口的uuid之后获取所述uuid的索引值,基于所述uuid的索引值和所述操作数在所述opc操作指令库中查找匹配操作指令,可以加快匹配速度,提高程序运行效率。

在一实施例中,当根据所述操作指令确定所述opc请求报文为绑定请求报文时,例如bind类型报文,所述电子设备从所述绑定请求报文中获取语义标识符与uuid的绑定信息,并缓存所述绑定信息,然后放行所述绑定请求报文,当所述电子设备接收到所述服务器基于所述绑定请求报文返回的确认绑定的响应报文时,例如bind_ack类型报文且其报文结果为acceptance,则将所述绑定信息存储到所述绑定信息链表的新增的节点上,实现对所述绑定信息链表的实时更新维护。

在一实施例中,当根据所述操作指令确定所述opc请求为更改绑定请求报文时,例如alter_context报文,所述电子设备从所述更改绑定请求报文中获取语义标识符与uuid的绑定关系更改信息,并缓存所述绑定关系更改信息,然后放行所述绑定请求报文,当接收到所述服务器基于所述更改绑定请求报文返回的确认更改绑定的响应报文时,例如alter_context_response类型报文且其报文结果为acceptance,所述电子设备基于所述语义标识符在所述绑定信息链表上查找对应的节点,然后根据所述绑定关系更改信息更新所述节点中存储的内容,实现对绑定信息链表的实时更新维护。

在步骤104中,当根据所述操作指令确定所述opc请求并非绑定请求报文或者更改绑定请求报文时,如图7所示,所述电子设备基于所述操作指令以及预先设置的访问规则,确定是否放行所述opc请求报文,从而实现对opc报文的指令级跟踪解析和控制,提高opc通讯的安全等级,其中,所述预先设置的访问规则可以是基于白名单的防护机制或者是基于黑名单的防护机制,本发明对此不做任何限制。

本发明通过获取opc客户端向opc服务器发送的opc请求报文,在确定所述opc请求报文的端口合法性之后,从所述opc请求报文的报头获取语义标识符以及操作数,然后根据所述语义标识符以及预先建立的绑定信息链表确定opc接口,所述绑定信息链表用于存储语义标识符与opc接口的绑定关系,再基于所述opc接口以及所述操作数,确定所述opc请求报文的操作指令,最后基于所述操作指令以及预先设置的访问规则确定是否放行所述opc请求报文,实现对于opc报文的指令级的访问控制,基于操作指令确定opc请求报文是否通过验证,从而禁止非法篡改的指令的通过,为opc通信过程提供更高的安全保证。

本发明提供另一种基于opc协议的访问控制方法,如图8所示,所述方法包括:

s201,获取opc客户端向opc服务器发送的opc请求报文。与附图1所示的步骤s101类似,此处不再赘述。

s202,在确定所述opc请求报文的端口合法性之后,从所述opc请求报文的报头获取语义标识符以及操作数。与附图1所示的步骤s102类似,此处不再赘述。

s203,根据所述语义标识符以及预先建立的绑定信息链表确定opc接口;其中,所述绑定信息链表用于存储语义标识符与opc接口的绑定关系。与附图1所示的步骤s103类似,此处不再赘述。

s204,基于所述opc接口以及所述操作数,确定所述opc请求报文的操作指令。与附图1所示的步骤s104类似,此处不再赘述。

s205,基于所述操作指令以及预先设置的访问规则,确定是否放行所述opc请求报文。与附图1所示的步骤s105类似,此处不再赘述。

s206,当检测到启动指令时,将所有的绑定信息链表挂载到全局链表头上。

s207,当检测到所述动态端口链表上新增了opc会话的节点之后,将与新增的opc会话对应的绑定信息链表挂载到所述新增的opc会话的节点上;所述绑定信息链表还存储有先前对应挂载的opc会话所包括的opc服务器分配的动态目的端口、以及目的ip地址以及opc客户端的源ip地址。

在步骤206中,由于在设备关闭然后重启后,若绑定信息链表在关闭之后相应删除,没有了opc接口与语义标识符的绑定信息,设备将无法解析opc报文指令,此时必须重启opc客户端或opc服务器,使opc客户端与服务器重新建立连接,重新协商绑定接口信息,重新建立绑定信息链表才能正确解析后续opc报文的操作指令,需要进行opc客户端或opc服务器的重启操作以及重新建立绑定信息链表的操作,操作重复且繁琐;因此,本申请在所述电子设备关闭后,所述动态端口链表上存储的opc会话被清除,但与所述opc会话对应的绑定信息链表被保存下来,且所述绑定信息表中还存储有先前对应挂载的opc会话所包括的opc服务器分配的动态目的端口、以及目的ip地址以及opc客户端的源ip地址,在所述电子设备重启之后,所述电子设备设置定时器开始计时,将所有的绑定信息链表挂载到全局链表头上,如图3或者图4所示的全局链表头bindlisthead。

在步骤207中,所述电子设备基于从opc客户端向opc服务器发送的opc请求连接报文、以及opc服务器基于opc请求连接报文返回的确认连接的opc响应报文,在动态端口链表上相应地新增opc会话的节点,且在检测到存在有绑定信息链表中存储的opc服务器分配的动态目的端口、以及目的ip地址以及opc客户端的源ip地址与所述新增的opc会话所包括的opc服务器分配的动态目的端口、以及目的ip地址以及opc客户端的源ip地址一一对应时,将所述绑定信息链表重新挂载到所述新增的opc会话的节点上,从而避免每一次的opc客户端与opc服务器之间进行opc通讯时需要重复协商绑定接口信息的过程,使得opc客户端与opc服务器在初次建立绑定关系之后,在之后的再次进行opc通讯的过程可以基于之前的绑定关系直接进行指令级的访问控制,而无需重复协商绑定接口信息的过程,提高程序运行效率;需要说明的是,所述电子设备在检测到所述定时器超时的时候,所述电子设备删除挂载在全局链表头上的所有剩余的无效的绑定关系链表,并关闭定时器。

与本申请基于opc协议的访问控制方法的实施例相对应,本申请还提供了基于opc协议的访问控制装置、电子设备以及计算机可读存储介质的实施例。

请参阅图9,为本申请基于opc协议的访问控制装置的一个实施例框图,该装置包括:

第一获取模块11,用于获取opc客户端向opc服务器发送的opc请求报文。

第二获取模块12,用于在确定所述opc请求报文的端口合法性之后,从所述opc请求报文的报头获取语义标识符以及操作数。

opc接口确定模块13,用于根据所述语义标识符以及预先建立的绑定信息链表确定opc接口;其中,所述绑定信息链表用于存储语义标识符与opc接口的绑定关系。

操作指令确定模块14,用于基于所述opc接口以及所述操作数,确定所述opc请求报文的操作指令。

访问控制模块15,用于基于所述操作指令以及预先设置的访问规则,确定是否放行所述opc请求报文。

优选地,所述第二获取模块12包括:

端口合法性判断单元,用于获取所述opc请求报文对应的目的端口、源端口、目的ip地址以及源ip地址,并基于预先建立的动态端口链表进行合法性判断;其中,所述动态端口链表用于存储至少一个opc会话以及其所包括的opc服务器分配的动态目的端口、以及目的ip地址、opc客户端的源端口以及源ip地址。

获取单元,用于从所述opc请求报文的报头获取语义标识符以及操作数。

优选地,所述绑定信息链表挂载在所述动态端口链表中对应的opc会话的节点上。

优选地,所述绑定信息链表具体用于存储语义标识符与opc接口唯一对应的uuid的绑定关系。

则所述opc接口确定模块13,包括:

根据所述语义标识符以及预先建立的绑定信息链表确定用于唯一标识opc接口的uuid。

则所述操作指令确定模块14,包括:

基于所述uuid、所述操作数以及预先建立的opc指令操作库,确定所述opc请求报文的操作指令;所述opc指令操作库用于存储opc接口的uuid、所述opc接口所包括的操作数以及对应的操作指令。

优选地,所述opc操作指令库还存储有所述uuid对应的索引值。

则所述操作指令确定模块14,包括:

基于所述uuid,获取所述uuid对应的索引值。

根据所述uuid对应的索引值以及所述操作数,从所述opc操作指令库中确定所述opc请求报文的操作指令。

优选地,还包括:

绑定信息获取模块,用于当检测到所述opc请求报文为绑定请求报文时,从所述绑定请求报文中获取语义标识符与uuid的绑定信息,并缓存所述绑定信息。

绑定信息存储模块,用于当接收到所述服务器基于所述绑定请求报文返回的确认绑定的响应报文时,将所述绑定信息存储到所述绑定信息链表新增的节点上。

优选地,还包括:

绑定关系更改信息获取模块,用于当检测到所述opc请求报文为更改绑定请求报文时,从所述更改绑定请求报文中获取语义标识符与uuid的绑定关系更改信息,并缓存所述绑定关系更改信息。

绑定关系更改信息存储模块,用于当接收到所述服务器基于所述更改绑定请求报文返回的确认更改绑定的响应报文时,基于所述语义标识符在所述绑定信息链表上查找对应的节点,然后根据所述绑定关系更改信息更新所述节点中存储的内容。

优选地,还包括:

挂载模块,用于当检测到启动指令时,将所有的绑定信息链表挂载到全局链表头上。

更改挂载模块,用于当检测到所述动态端口链表上新增了opc会话的节点之后,将与新增的opc会话对应的绑定信息链表挂载到所述新增的opc会话的节点上;所述绑定信息链表还存储有先前对应挂载的opc会话所包括的opc服务器分配的动态目的端口、以及目的ip地址以及opc客户端的源ip地址。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

相应的,如图10所示本发明还提供一种电子设备30,包括有处理器31;用于存储可执行指令的存储器32,所述存储器32包括计算机程序33;其中,处理器31被配置为:

获取opc客户端向opc服务器发送的opc请求报文;

在确定所述opc请求报文的端口合法性之后,从所述opc请求报文的报头获取语义标识符以及操作数;

根据所述语义标识符以及预先建立的绑定信息链表确定opc接口;其中,所述绑定信息链表用于存储语义标识符与opc接口的绑定关系;

基于所述opc接口以及所述操作数,确定所述opc请求报文的操作指令;

基于所述操作指令以及预先设置的访问规则,确定是否放行所述opc请求报文。

所述处理器31执行所述存储器32中包括的计算机程序33,所述处理器31可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器32存储所述基于opc协议的访问控制方法的计算机程序,所述存储器32可以包括至少一种类型的存储介质,存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等等。而且,设备可以与通过网络连接执行存储器的存储功能的网络存储装置协作。存储器32可以是设备30的内部存储单元,例如设备30的硬盘或内存。存储器32也可以是设备30的外部存储设备,例如设备30上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器32还可以既包括设备30的内部存储单元也包括外部存储设备。存储器32用于存储计算机程序33以及设备所需的其他程序和数据。存储器32还可以用于暂时地存储已经输出或者将要输出的数据。

这里描述的各种实施方式可以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(asic)、数字信号处理器(dsp)、数字信号处理装置(dspd)、可编程逻辑装置(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器中并且由控制器执行。

电子设备30可以是桌上型计算机、笔记本、掌上电脑、云端服务器及手机等计算设备。设备可包括,但不仅限于,处理器31、存储器32。本领域技术人员可以理解,图10仅仅是电子设备30的示例,并不构成对电子设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如设备还可以包括输入输出设备、网络接入设备、总线等。

上述设备中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

一种非临时性计算机可读存储介质,当存储介质中的指令由终端的处理器执行时,使得终端能够执行上述方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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