OPC是通讯协议吗安全性

news2024/11/19 17:29:18

目录

1 安全防护

1.1 防火墙

1.2 网闸

2 OPC是通讯协议吗

2.1 什么通讯协议

2.2 那么OPC又是什么?


OPC官方说明文档

1 安全防护

本文阐述了控制网络以OPC接口接入信息网络应当采用的安全防护。

1.1 防火墙

防火墙是大家熟知的网络安全产品,并被用作控制网络与信息网络的安全隔离。实际上,这样的方案是不合适的。

http://api1.wangxinzhihui.com:88/upload/2555592a-1a76-11ee/3dedd81d0c23ea84f88f.png

      这是由于防火墙由于其自身机理的原因,存在很多先天不足,主要包括:

1)   由于防火墙本身是基于TCP/IP协议体系实现的,所以它无法解决TCP/IP协议体系中存在的漏洞。

2)   防火墙只是一个策略执行机构,它并不区分所执行政策的对错,更无法判别出一条合法政策是否真是管理员的本意。从这点上看,防火墙一旦被攻击者控制,由它保护的整个网络就无安全可言了。

3)   防火墙无法从流量上判别哪些是正常的,哪些是异常的,因此容易受到流量攻击。

4)   防火墙的安全性与其速度和多功能成反比。防火墙的安全性要求越高,需要对数据包检查的项目(即防火墙的功能)就越多越细,对CPU和内存的消耗也就越大,从而导致防火墙的性能下降,处理速度减慢。

5)   防火墙准许某项服务,却不能保证该服务的安全性,它需要由应用安全来解决。

 

从实际应用来看,防火墙较为明显的局限性包括以下几方面:

1)   OPC基于DCOM机制,无法穿透防火墙

2)   防火墙不能阻止感染病毒的程序和文件的传输。就是防火墙只能做网络四层以下的控制,对于应用层内的病毒、蠕虫都没有办法。

3)   防火墙不能防范全新的威胁,更不能防止可接触的人为或自然的破坏。

4)   防火墙不能防止由自身安全漏洞引起的威胁。

5)   防火墙对用户不完全透明,非专业用户难于管理和配置,易造成安全漏洞。

6)   防火墙很难为用户在防火墙内外提供一致的安全策略,不能防止利用标准网络协议中的缺陷进行的攻击,也不能防止利用服务器系统漏洞所进行的攻击。

7)   由于防火墙设置在内网与外网通信的信道上,并执行规定的安全策略,所以防火墙在提供安全防护的同时,也变成了网络通信的瓶颈,增加了网络传输延时,如果防火墙出现问题,那么内部网络就会受到严重威胁。

8)   防火墙仅提供粗粒度的访问控制能力。它不能防止数据驱动式的攻击。

防火墙正是由于这些缺陷与不足,以防火墙为核心的安全防御体系未能有效地防止工业控制网络攻击。

1.2 网闸

在防火墙的发展过程中,人们最终意识到防火墙在安全方面的局限性。高性能、高安全性、易用性方面的矛盾没有很好地解决。防火墙体系架构在高安全性方面的缺陷,驱使人们追求更高安全性的解决方案,人们期望更安全的技术手段,网闸应运而生。

网闸的指导思想与防火墙也有很大的不同,体现在防火墙的思路是在保障互联互通的前提下,尽可能安全;而网络隔离的思路是在必须保证安全的前提下,尽可能支持数据交换,如果不安全则断开。

网闸主要目标是解决目前信息安全中的各种漏洞:操作系统漏洞、TCP/IP漏洞、应用协议漏洞、链路连接漏洞、安全策略漏洞等,网络隔离是目前唯一能解决上述问题的安全技术。

网闸主要的技术原理是从OSI模型的七层上全面断开网络连接,同时采用“2+1”的三模块架构,即内置有两个主机系统,和一个用于建立安全通道可交换数据的隔离单元。这种架构可以实现连接到外网和内网的两主机之间是完全网络断开的,从物理上进行了网络隔离,消除了数据链路的通信协议,剥离了TCP/IP协议,剥离了应用协议,在安全交换后进行了协议的恢复和重建。通过TCP/IP协议剥离和重建技术消除了TCP/IP协议的漏洞。在应用层对应用协议进行剥离和重建,消除了应用协议漏洞,并可针对应用协议实现一些细粒度的访问控制。从TCP/IP的OSI数据模型的所有七层断开后,就可以消除目前TCP/IP存在的所有攻击。

http://api1.wangxinzhihui.com:88/upload/2555592a-1a76-11ee/d04a90587fb6d83ff045.png

   网闸的应用同防火墙,部署于控制网络与信息网络之间,实现过程控制系统和管理信息系统之间进行单向物理隔离并传输过程数据。

http://api1.wangxinzhihui.com:88/upload/2555592a-1a76-11ee/c111ad429d5c61cbc2fc.png

2 OPC是通讯协议吗

2.1 什么通讯协议

OPC是当前工业互联常用的通讯技术,我们经常会说OPC通讯协议,那OPC是通讯协议吗?严格地说,OPC不是通讯协议,而是一种通讯规范,是一种通讯接口标准

首先,来看什么是通讯协议?通讯协议就是两个(或多个)设备之间通信必须要遵循的一种协议。通过通信信道互连起来的多个数据通信系统,要实现协同信息交换,它们之间必须具有共同的约定,约定信息在哪条通道间交流,什么时间交流,交流什么信息,信息怎样交流。这个约定就是通信协议。

不同的通信协议虽然具有不同的特点和功能,但它们都包含了三个基本要素:

语法:定义了数据传输的格式和结构,以确保发送方和接收方都能正确地解释数据内容。

语义:定义了数据的意义和目的,以确保通信双方在数据传输过程中能够理解对方的意图。

定时:定义了数据的传输速率和时间,以确保通信的有效性和流畅性。

通信中的数据往往以数据包的形式进行传送的,我们把这样的一个数据包称作为一帧数据。比较可靠的通信协议往往包含有以下几个组成部分:帧头、地址信息、数据类型、数据长度、数据块、校验码、帧尾。这些组成部分构成了语法,其中数据代表的意义就是语义。

比如:以下是Modbus协议读取线圈的报文。

其中,报文格式就是语法,其语义为:读取服务器1号从站输出线圈,起始地址为0x13=19,对应地址为00020,线圈数量为0x1B=27,即读取1号从站输出线圈,地址从00020-00046,共27个线圈的状态值。

2.2 那么OPC又是什么?

OPC是英文“OLE for Process Control”的缩写,是工业自动化领域中的一种工业通信标准。它通过定义一些在不同平台上具有通用性的规范,实现了各种设备、不同制造厂商及不同代表的设备可互联互通。

经典OPC是第一代OPC技术, 英文全称为:OLE for Process Control。OLE技术是基于微软公司的COM/DCOM技术,因此经典OPC本质上是基于COM/DCOM的过程控制技术。经典OPC提供了一整套过程控制中数据交换的软件标准和接口,包括:

1)OPC DA(OPC Data Access):OPC数据访问接口,这是最常用到的接口,接口定义了数据交换的规范,包括:过程值、更新时间、数据品质等信息。目前OPC DA经历1.0版本(1997年)、2.0版本(2002年)、3.0版本(2003年)。

2) OPC AE (OPC Alarms & Events):OPC报警与事件接口,接口定义了报警、事件消息、变量的状态及如何管理。

3) OPC HDA(OPC Historical Data Access): OPC历史数据访问接口,接口定义了访问及分析历史数据的方法。

4) OPC XML-DA:XML数据访问,脱离Windows COM/DCOM技术,提供基于XML、SOAP、HTTP的数据交换。

5) OPC DX(Data eXchange):提供在OPC服务器之间交换数据的功能,该标准的主要目的是为来自不同制造商的设备和程序之间的数据交换创建网关。

可以看出,OPC一整套过程控制中数据交换的软件标准和接口规范,定义了服务器和客户端双方通讯接口的要求。以OPC DA为例。

OPC Server必须提供OPCServer对象接口,OPCGroup对象接口,OPCItem对象接口,OPCClient通过调用这些接口与OPC服务器实现数据交换,而不用去关心通讯报文的语法、语义。

所以,严格地说,OPC不是通讯协议,是通讯规范。用形象的比喻来说,OPC更像描述插头、插座的规范,而通讯协议则更像是描述邮件如何传输,信封如何封装。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1011277.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

laravel8框架-语言包的安装和配置

1, 查找 laravel框架语言包地址: \根目录\resources\lang\ 默认有个 en 语言包 2,下载 和 安装 下载地址:https://packagist.org/ 搜索 laravel/lang 参考网址:https://packagist.org/packages/overtrue/laravel-lang 选择你…

ARM Linux DIY(十一)板子名称、开机 logo、LCD 控制台、console 免登录、命令提示符、文件系统大小

文章目录 前言板子名称uboot Modelkernel 欢迎词、主机名 开机 logoLCD 控制台console 免登录命令提示符文件系统大小 前言 经过前面十篇文章的介绍,硬件部分调试基本完毕,接下来的文章开始介绍软件的个性化开发。 板子名称 uboot Model 既然是自己的…

Games101作业0(vscode连接VB虚拟机)

作业0 配置环境: 基本配置在pa0中都有,下面介绍使用vscode连接VB虚拟机快捷开发 vscode连接VB虚拟机 1.用户名 可以看到Username为cs18并非为css180 2.密钥 在window主机生成密钥 ssh-keygen #一路回车3.VB虚拟机配置ssh sshd_config配置 cd /etc/ssh/ vim sshd_confi…

丰田工厂停产竟然因为磁盘...

丰田因磁盘空间不足关闭14家工厂 在如今的信息时代,无论是生活还是工作,我们都离不开计算机和网络。然而,令人惊讶的是,一家全球知名的汽车制造商——丰田,却因为磁盘空间不足的问题,被迫关闭了14家工厂。…

DP专题2 爬楼梯|

题目: 思路: 根据题意,我们先找到对应的 n 阶台阶的方案数是多少。 n 1 f(n) 1 n 2 f(n) 2 n 3 f(n) 3 n 4 f(n) 5 n 5 f(n) 8 ...... ...... n n f(n) f(n - 2) f(n - 1…

读高性能MySQL(第4版)笔记09_创建高性能索引(下)

1. 覆盖索引 1.1. 设计优秀的索引应该考虑到整个查询,而不单是WHERE条件部分 1.2. 如果一个索引包含(或者说覆盖)所有需要查询的字段的值,我们就称之为覆盖索引 1.3. 只有B-tree索引可以用于覆盖索引 1.4. 如果查询只需要扫描…

用Python实现链式调用

嗨喽,大家好呀~这里是爱看美女的茜茜呐 我们在使用Django的models查询数据库时,可以看到有这种写法: form app.models import XXX query XXX.objects.all() query query.filter(name123, age456).filter(salary999)在这种写法里面&#xf…

matlab根轨迹绘制

绘制根轨迹目的就是改变系统的闭环极点,使得系统由不稳定变为稳定或者使得稳定的系统变得更加稳定。 在使用PID控制器的时候,首先要确定的参数是Kp,画成框图的形式如下: 也就是想要知道Kp对系统性能有哪些影响,此时就…

go 包的引入

本文介绍下下go包的管理,以linux平台为例。 先看下目录结构: test目录下的test.go test2目录下的test.go 主函数的调用 此时执行会报错,需要用mod进行包的管理,执行下面命令 go mod init godir 生成go.mod文件 执行结果:

【MySQL】mysql中有哪几种类型的备份技术?它们各自有什么优缺点?

为什么要备份?备份类型(从类型的角度)备份技术(从技术手段的角度)不同备份方法的比较感谢 💖 为什么要备份? 数据库或它所在的平台可能会出现问题,这时候数据库中的数据可能就遭到了…

春秋云镜 CVE-2014-4577

春秋云镜 CVE-2014-4577 wordpress插件 wp-amasin-the-amazon-affiliate-shop < 0.97 LFI 靶标介绍 wordpress插件 wp-amasin-the-amazon-affiliate-shop < 0.97 存在路径穿越漏洞&#xff0c;使得可以读取任意文件。 启动场景 漏洞利用 exp http://url/wp-content/…

【Transformer系列】深入浅出理解Embedding(词嵌入)

一、参考资料 一文读懂Embedding的概念&#xff0c;以及它和深度学习的关系 论文 [1] Attention is All you Need 二、Embedding相关介绍 Embedding&#xff0c;直译是词嵌入、嵌入层。 1. 引言 2. one-hot编码 假设&#xff0c;中文有10个字 “星 巴 克 喜 欢 瑞 幸 的…

LinuxFTP云盘-文件服务系统

目录 1.项目介绍 2.项目运行展示 3.实现思路 服务端&#xff1a; 客户端&#xff1a; 4.相关调用函数 socket()&#xff1a;创建一个网络通信端点原型&#xff1a;int socket(int domain, int type, int protocol); atoi()&#xff1a;将字符串转变成整型数据原型&…

【C刷题】day2

一、选择题 1、以下程序段的输出结果是&#xff08; &#xff09; #include<stdio.h> int main() { char s[] "\\123456\123456\t"; printf("%d\n", strlen(s)); return 0; } A: 12 B: 13 C: 16 D: 以上都不对【答案】&#xff1a; A 【解析】…

黑马JVM总结(八)

&#xff08;1&#xff09;StringTable面试题 1.8 1.6时 &#xff08;2&#xff09;StringTable的位置 jvm1.6时StringTable是常量池的一部分&#xff0c;它随着常量池存储在永久代当中&#xff0c;在1.7、1.8中从永久代变成了堆中&#xff0c;为什么做这个更改呢&#xff1f…

c语言每日一练(15)

前言&#xff1a;每日一练系列&#xff0c;每一期都包含5道选择题&#xff0c;2道编程题&#xff0c;博主会尽可能详细地进行讲解&#xff0c;令初学者也能听的清晰。每日一练系列会持续更新&#xff0c;上学期间将看学业情况更新。 五道选择题&#xff1a; 1、程序运行的结果…

家政服务接单小程序开发源码 家政保洁上门服务小程序源码 开源完整版

分享一个家政服务接单小程序开发源码&#xff0c;家政保洁上门服务小程序源码&#xff0c;一整套完整源码开源&#xff0c;可二开&#xff0c;含完整的前端后端和详细的安装部署教程&#xff0c;让你轻松搭建家政类的小程序。家政服务接单小程序开发源码为家政服务行业带来了诸…

【数据在内存中的储存】

1.整数在内存中的存储&#x1f4bb; 在讲解操作符的时候&#xff0c;我们就讲过了下⾯的内容&#xff1a; 整数的2进制表⽰⽅法有三种&#xff0c;即原码、反码和补码 三种表⽰⽅法均有符号位和数值位两部分&#xff0c;符号位都是⽤0表⽰“正”&#xff0c;⽤1表⽰“负”&…

C# Onnx Yolov8 Fire Detect 火焰识别,火灾检测

效果 项目 代码 using Microsoft.ML.OnnxRuntime.Tensors; using Microsoft.ML.OnnxRuntime; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Syste…

HBS 家庭总线驱动和接收芯片MS1192,应用于电话及相关设备、空调设备、安全设备、AV 装置

MS1192 是适用于 HBS 总线规范&#xff08;日本电子工业协会&#xff09; 的适配器芯片&#xff0c;具备发送、接收数据的功能。在发送接收 单元中&#xff0c;采用 AMI 编码方式&#xff0c;可使用双绞线进行互联&#xff0c;信 号传输采用差分方式。 芯片采用单电源…