CN112929166B - 一种基于Modbus-TCP协议的主站、从站及数据传输系统 - Google Patents
一种基于Modbus-TCP协议的主站、从站及数据传输系统 Download PDFInfo
- Publication number
- CN112929166B CN112929166B CN202110146695.4A CN202110146695A CN112929166B CN 112929166 B CN112929166 B CN 112929166B CN 202110146695 A CN202110146695 A CN 202110146695A CN 112929166 B CN112929166 B CN 112929166B
- Authority
- CN
- China
- Prior art keywords
- slave station
- data frame
- key
- public key
- master station
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于Modbus‑TCP协议的主站、从站及数据传输系统,从modbus协议本身出发进行有限的改写,既保留了modbus协议通用性和高效性的特点,又能有效地利用国密SM2非对称算法实现数据的加密。就这个协议本身而言,就是在标准协议的基础上改进的,当功能码设为公共码时,就运行在标准状态下,当功能码设为自定义的号码时,就运行在加密传输的协议下,设备的兼容性良好,只需经过简单的改进,就可以实现系统的升级换代。
Description
技术领域
本发明涉及数据加密传输系统,具体涉及一种基于Modbus-TCP协议的主站、从站及数据传输系统。
背景技术
随着物联网的发展,越来越多的企业需要将生产及运营的设备接入网络并对其进行远程实时监控,大量的设备监控数据往往需要通过互联网传输到远处的监控中心。但是,由于互联网的开放性,一旦监控数据被截获并被用于破坏活动,其带来的损失将会非常严重。因此,工业数据传输的安全性问题亟待解决。
在串行链路中,Modbus-TCP使用一种简单的主从协议(客户机/服务器协议)进行通信。客户机作为主站,向服务器发送请求;服务器(从站)接到请求后,对请求进行分析并作出应答。Modbus-TCP的通信帧被称为应用数据单元(ApplicationDataUnit,ADU),它包括通信地址段、功能代码段、数据段和校验段。
现有的Modbus-TCP常用标准功能码都是采用明文传输,在当今这个万物互联的时代,工控系统不再是一个封闭的系统极易受到安全威胁,影响系统的稳定运行。
发明内容
本发明的目的在于提供一种基于Modbus-TCP协议的主站、从站及数据传输系统,用以解决现有技术中的数据传输系统容易受到攻击,安全性不高的问题。
为了实现上述任务,本发明采用以下技术方案:
一种基于Modbus-TCP协议的主站,所述的主站中存储有第一计算机程序,所述的第一计算机程序被处理器执行时实现以下步骤:
步骤A、与从站建立通信连接;
步骤B、生成主站随机密钥,所述的主站随机密钥包括主站公钥和主站私钥;
步骤C、将所述的主站公钥发送给从站后,获得数据加密从站的从站公钥;
步骤D、获得待传输消息;
步骤E、判断当前是否需要进行加密传输,若需要,则执行步骤F,否则将待传输消息加入至传输数据帧后发送至加密从站;
步骤F、利用步骤C获得的从站公钥对所述的待传输消息进行加密,获得加密数据帧,所述的加密数据帧包括功能码;
步骤G、将所述的功能码设置为加密模式后,获得传输数据帧;将所述的传输数据帧发送至加密从站。
进一步地,所述的步骤B按照以下步骤执行:
步骤1、获得从站的地址;
步骤2、主站确定密钥生成算法,每种密钥生成算法对应一个算法编码;
步骤3、将所述的从站地址与算法编码相乘后作为密钥算法数据位;
步骤4、将所述的功能码设置为密钥生成方式后,获得密钥生成数据帧,所述的密钥生成数据帧中的数据位为步骤3中获得的密钥算法数据位;
步骤5、将所述的密钥生成数据帧发送给从站;
步骤6、利用步骤2中确定的密钥生成算法生成主站随机密钥,所述的主站随机密钥包括主站公钥和主站私钥。
进一步地,所述的步骤C具体包括:
步骤a、将所述的主站公钥作为数据位加入至数据帧中,获得主站公钥数据帧;
步骤b、将所述的主站公钥数据帧发送至加密从站;
步骤c、获得从站公钥数据帧,所述的从站公钥数据帧由主站公钥加密获得,所述的从站公钥数据帧包括从站公钥;
步骤d、利用主站私钥解密所述的从站公钥数据帧,获得从站公钥。
一种基于Modbus-TCP协议的从站,所述的从站中存储有第二计算机程序,所述的第二计算机程序被处理器执行时实现以下步骤:
步骤I、与主站建立通信连接;
步骤II、生成从站随机密钥,所述的从站随机密钥包括从站公钥和从站私钥;
步骤III、获得主站的主站公钥后,将所述的从站公钥发送给主站;
步骤IV、获得传输数据帧;
步骤V、判断所述的传输数据帧的功能码是否为加密模式,若是,则执行步骤VI,否则将所述的传输数据帧进行解析,获得待传输消息;
步骤VI、对所述的传输数据帧进行解析后,获得加密数据位;
步骤VII、利用从站私钥对所述的加密数据位进行解密,获得待传输消息。
进一步地,所述的步骤II按照以下步骤执行:
步骤II.I、获得主站发送的密钥生成数据帧;
步骤II.II、将密钥生成数据帧中的数据位除以当前从站的地址,获得密钥生成算法对应的算法编码;
步骤II.III、利用步骤II.II获得的算法编码对应的密钥生成算法生成从站随机密钥,所述的从站随机密钥包括从站公钥和从站私钥。
进一步地,所述的步骤III具体包括:
步骤i、获得主站公钥数据帧;
步骤ii、对所述的主站公钥数据帧进行解析,获得主站公钥;
步骤iii、利用所述的主站公钥将从站公钥进行加密后作为数据位加入数据帧中,获得从站公钥数据帧;
步骤iv、将所述的从站公钥数据帧发送给数据加密主站。
一种基于Modbus-TCP协议的数据传输系统,所述的系统包括基于Modbus-TCP协议的主站以及基于Modbus-TCP协议的从站;所述的主站中存储有第一计算机程序,所述的第一计算机程序被处理器执行时实现以下步骤:
步骤A、与从站建立通信连接;
步骤B、生成主站随机密钥,所述的主站随机密钥包括主站公钥和主站私钥;
步骤C、将所述的主站公钥发送给从站后,获得数据加密从站的从站公钥;
步骤D、获得待传输消息;
步骤E、判断当前是否需要进行加密传输,若需要,则执行步骤F,否则将待传输消息加入至传输数据帧后发送至加密从站;
步骤F、利用步骤C获得的从站公钥对所述的待传输消息进行加密,获得加密数据帧,所述的加密数据帧包括功能码;
步骤G、将所述的功能码设置为加密模式后,获得传输数据帧;将所述的传输数据帧发送至加密从站。
所述的从站中存储有第二计算机程序,所述的第二计算机程序被处理器执行时实现以下步骤:
步骤I、与主站建立通信连接;
步骤II、生成从站随机密钥,所述的从站随机密钥包括从站公钥和从站私钥;
步骤III、获得主站的主站公钥后,将所述的从站公钥发送给主站;
步骤IV、获得传输数据帧;
步骤V、判断所述的传输数据帧的功能码是否为加密模式,若是,则执行步骤VI,否则将所述的传输数据帧进行解析,获得待传输消息;
步骤VI、对所述的传输数据帧进行解析后,获得加密数据位;
步骤VII、利用从站私钥对所述的加密数据位进行解密,获得待传输消息。
进一步地,所述的步骤B按照以下步骤执行:
步骤1、获得从站的地址;
步骤2、主站确定密钥生成算法,每种密钥生成算法对应一个算法编码;
步骤3、将所述的从站地址与算法编码相乘后作为密钥算法数据位;
步骤4、将所述的功能码设置为密钥生成方式后,获得密钥生成数据帧,所述的密钥生成数据帧中的数据位为步骤3中获得的密钥算法数据位;
步骤5、将所述的密钥生成数据帧发送给从站;
步骤6、利用步骤2中确定的密钥生成算法生成主站随机密钥,所述的主站随机密钥包括主站公钥和主站私钥;
所述的步骤II按照以下步骤执行:
步骤II.I、获得主站发送的密钥生成数据帧;
步骤II.II、将密钥生成数据帧中的数据位除以当前从站的地址,获得密钥生成算法对应的算法编码;
步骤II.III、利用步骤II.II获得的算法编码对应的密钥生成算法生成从站随机密钥,所述的从站随机密钥包括从站公钥和从站私钥。
进一步地,所述的步骤C具体包括:
步骤a、将所述的主站公钥作为数据位加入至数据帧中,获得主站公钥数据帧;
步骤b、将所述的主站公钥数据帧发送至加密从站;
步骤c、获得从站公钥数据帧,所述的从站公钥数据帧由主站公钥加密获得,所述的从站公钥数据帧包括从站公钥;
步骤d、利用主站私钥解密所述的从站公钥数据帧,获得从站公钥。
所述的步骤III具体包括:
步骤i、获得主站公钥数据帧;
步骤ii、对所述的主站公钥数据帧进行解析,获得主站公钥;
步骤iii、利用所述的主站公钥将从站公钥进行加密后作为数据位加入数据帧中,获得从站公钥数据帧;
步骤iv、将所述的从站公钥数据帧发送给数据加密主站。
本发明与现有技术相比具有以下技术效果:
1、本发明提供的一种基于Modbus-TCP协议的主站、从站及数据传输系统改变了现有的密钥传输方式,主站与每一个从站之前提前约定好密钥的生成方式,提高了密钥生成的保密性;
2、本发明提供的一种基于Modbus-TCP协议的主站、从站及数据传输系统改变了原有的Modbus-TCP定义的数据帧的格式,在原有的数据帧的功能码基础上增加了加密信息,在改变了数据帧结构的基础上,还进一步地改进了原有的Modbus-TCP协议的数据发送流程,以增强网络的安全性,保证了数据传输的稳定性;
3、本发明提供的一种基于Modbus-TCP协议的主站、从站及数据传输系统从modbus协议本身出发进行有限的改写,既保留了modbus协议通用性和高效性的特点,又能有效地利用国密SM2非对称算法实现数据的加密。就这个协议本身而言,就是在标准协议的基础上改进的,当功能码设为公共码时,就运行在标准状态下,当功能码设为自定义的号码时,就运行在加密传输的协议下,设备的兼容性良好,只需经过简单的改进,就可以实现系统的升级换代。
附图说明
图1为本发明提供的数据传输过程示意图;
图2为本发明的一个实施例中提供的通信准备过程示意图;
图3为本发明的一个实施例中提供的加密传输过程示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细说明。以便本领域的技术人员更好的理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
以下对本发明涉及的定义或概念内涵做以说明:
SM2算法:椭圆曲线公钥密码算法,首先产生随机数计算出曲线点C1,2个32byte的BigInteger大数,即为SM2加密结果的第1部分。第2部分则是真正的密文,是对明文的加密结果,长度和明文一样。第3部分是杂凑值,用来效验数据。
Modbus-TCP协议:Modbus由MODICON公司于1979年开发,是一种工业现场总线协议标准。Modbus-TCP的数据帧可分为两部分:MBAP+PDU。
实施例一
如图1-3所示,在本实施例中提供了一种数据加密主站,所述的主站中存储有第一计算机程序,所述的第一计算机程序被处理器执行时实现以下步骤:
步骤A、与数据加密从站建立通信连接;
在本实施例中,主站与从站通过三次握手信号建立通信连接。
(1)首先由主站向从站的502端口发起连接请求,发出SYN数据包。
(2)从站使用TCP的502端口对Modbus服务进行侦听,收到SYN数据包后,发出包含SYN+ACK信息数据包。
(3)主站检查acknumber是否正确,即第一次发送的X+1,若正确,主站会再发送acknumber=(Y+1),从站收到后确认ACK值则连接建立成功。
步骤B、生成主站随机密钥,所述的主站随机密钥包括主站公钥和主站私钥;
在本实施例中,步骤B按照以下步骤执行:
步骤1、获得从站的地址;
步骤2、主站确定密钥生成算法,每种密钥生成算法对应一个算法编码;
在本实施例中密码生成算法可以是sm2、RSA、md5、SHA1、SHA256等哈希编码方法,也可以是CRC编码。
在本实施例中,考虑到数据量的大小节省处理器的资源占用,选用SM2、RSA算法编码。
SM2加解密算法首先随机生成一个长度为32字节SM2私钥。由SM2非对称加密算法原理可知,公钥是SM2曲线上的一个长度为64字节的曲线坐标点,由横坐标和纵坐标(x,y)两个分量来表示;在X.509证书中,SM2公钥表示为04标记开始的2个32byte的BigInteger。随机生成的私钥以及对应的公钥后,Modbus-TCP报文应用层数据域作为采用SM2非对称加密的明文,产生对应的密文,以此来提高系统信息传输的安全性。
RSA算法通常是先生成一对RSA密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要
步骤3、将所述的从站地址与算法编码相乘后作为密钥算法数据位;
在本步骤中,为了进一步地提高数据的保密性,主站与从站提前约定好算法编码,例如1表示SM2算法,2表示RSA算法,主站和从站用同一种密码生成方式生成密钥对,后期进行数据传输时,主站仅需确定是哪一个从站后,就可以选择相应的密钥生成方式。
步骤4、将所述的功能码设置为密钥生成方式后,获得密钥生成数据帧,所述的密钥生成数据帧中的数据位为步骤3中获得的密钥算法数据位;
在本实施例中,如表1所示的数据帧格式,在现有技术中,功能码一般为:
0x01 读线圈
0x05 写单个线圈
0x0F 写多个线圈
0x02 读离散量输入
0x04 读输入寄存器
0x03 读保持寄存器
0x06 写单个保持寄存器
0x10 写多个保持寄存器
在本实施例中,功能码设置为现有的功能码以外的一个数字以代表为密钥生成方式(例如为101H),当从站接收到该数据帧后,通过功能码就可以判断当前数据帧是用来传输密钥生成方式的。
步骤5、将所述的密钥生成数据帧发送给从站;
表1密钥生成数据帧格式
事务处理标识 | 协议标识 | 长度 | 单元标识符 | 功能码 | 密钥算法数据位 |
2字节 | 2字节 | 2字节 | 1字节 | 1字节 | 从站地址*算法编码 |
步骤6、利用步骤2中确定的密钥生成算法生成主站随机密钥,所述的主站随机密钥包括主站公钥和主站私钥。
步骤C、将所述的主站公钥发送给数据加密从站后,获得数据加密从站的从站公钥;
在本实施例中,通过数据帧传输密钥。
可选地,步骤C具体包括:
步骤a、将所述的主站公钥作为数据位加入至数据帧中,获得主站公钥数据帧;
步骤b、将所述的主站公钥数据帧发送至加密从站;
步骤c、获得从站公钥数据帧,所述的从站公钥数据帧由主站公钥加密获得,所述的从站公钥数据帧包括从站公钥;
步骤d、利用主站私钥解密所述的从站公钥数据帧,获得从站公钥。
在本实施例中,数据帧格式如表2所示:
表2数据帧格式
事务处理标识 | 协议标识 | 长度 | 单元标识符 | 功能码 | 数据位(公钥/密文) |
2字节 | 2字节 | 2字节 | 1字节 | 1字节 | 64字节/n字节 |
在本实施例中,密钥为64位,将主站公钥作为数据位进行编码,获得主站公钥数据帧。
将主站公钥数据帧发送给从站后,从站解析数据帧,将数据位中的数据解析出来后,就能得到主站公钥。在本步骤中,从站只需解析数据帧,无需解密。
从站利用主站公钥对自己的从站公钥进行加密后再作为数据位打包成从站公钥数据帧,此时主站对从站公钥数据帧进行解析后,将数据位上的数据利用自己的主站私钥进行解密,从而获得接受装置公钥。
经过以上步骤,主站获得从站公钥,从站获得主站公钥。
步骤D、获得待传输消息,所述的待传输消息包括待读取的线圈号和数量;
步骤E、判断当前是否需要进行加密传输,若需要,则执行步骤F,否则将待传输消息加入至传输数据帧后发送至加密从站;
在本实施例中,提供了两种数据传输方式,若需要加密传输时,进行步骤F-G;若不需要进行加密传输,直接按照现有技术中的Modbus-TCP帧格式进行传输。
步骤F、利用步骤C获得的从站公钥对所述的待传输消息进行加密,获得加密数据帧,所述的加密数据帧包括功能码;
在本实施例中,设置一种新的功能码表示加密状态,主站和从站均约定好当功能码为加密状态时,表示当前为加密传输方式。例如设置功能码为100H。
步骤G、将所述的功能码设置为加密模式后,获得传输数据帧;将所述的传输数据帧发送至加密从站。
在本实施例中,由于Modbus-TCP传输协议中,主站向从站发送消息指令后,例如主站向从站发送查询待读取的线圈号和数量的消息后,等待加密从站的反馈。
此时加密从站查询完毕之后,将查询结果利用主站公钥进行加密后作为数据位编码成反馈消息数据帧;
因此在本实施例中,第二计算机程序还包括以下步骤:
步骤H、获得反馈消息数据帧;
步骤I、主站对反馈消息数据帧进行解析后,获得加密后的数据位;
步骤J、利用从站公钥对加密后的数据位进行解密,从而获得反馈数据。
在本实施例中,反馈数据为待读取的线圈号和数量的反馈值。
实施例二
如图1-3所示,在本实施例中提供了一种基于Modbus-TCP协议的从站,所述的从站中存储有第二计算机程序,所述的第二计算机程序被处理器执行时实现以下步骤:
步骤I、与主站建立通信连接;
在本实施例中,从站与主站具有相似的处理流程,采用三次握手协议建立通信连接。
步骤II、生成从站随机密钥,所述的从站随机密钥包括从站公钥和从站私钥;
所述的步骤II按照以下步骤执行:
步骤II.I、获得主站发送的密钥生成数据帧;
步骤II.II、将密钥生成数据帧中的数据位除以当前从站的地址,获得密钥生成算法对应的算法编码;
步骤II.III、利用步骤II.II获得的算法编码对应的密钥生成算法生成从站随机密钥,所述的从站随机密钥包括从站公钥和从站私钥。
在本实施例中,根据表1的密钥生成数据帧,首先判断功能码是否为密钥生成方式,与实施例一对应判断功能码是否为101H,如果是的话,利用密钥算法数据位除以自己的地址获得算法编码,由于从站和主站之前均约定好每一种算法编码对应的密钥生成算法,与实施例一对应1表示SM2算法,2表示RSA算法,如果算法编码为2,此时从站就利用RSA算法生成从站随机密钥。
表1密钥生成数据帧格式
事务处理标识 | 协议标识 | 长度 | 单元标识符 | 功能码 | 密钥算法数据位 |
2字节 | 2字节 | 2字节 | 1字节 | 1字节 | 从站地址*算法编码 |
步骤III、获得数据加密主站的主站公钥后,将所述的从站公钥发送给数据加密主站;
可选地,步骤III具体包括:
步骤i、获得主站公钥数据帧;
步骤ii、对所述的主站公钥数据帧进行解析,获得主站公钥;
步骤iii、利用所述的主站公钥将从站公钥进行加密后作为数据位加入数据帧中,获得从站公钥数据帧;
步骤iv、将所述的从站公钥数据帧发送给数据加密主站。
在本实施例中,从站解析主站公钥数据帧后获得到主站公钥;
从站利用主站公钥加密从站公钥并嵌入Modbus-TCP数据帧中,获得从站公钥数据帧;
从站公钥数据帧经modbus-tcp协议传输到主站;
主站解析从站公钥数据帧后利用主站私钥解秘,获得从站公钥。
经过步骤III,主站获得从站的从站公钥,从站获得主站的主站公钥。
步骤IV、获得传输数据帧;
步骤V、判断所述的传输数据帧的功能码是否为加密模式,若是,则执行步骤VI,否则将所述的传输数据帧进行解析,获得待传输消息;
在本实施例中,与实施例一中对应,若功能码为100H,则为加密模式。
步骤VI、对所述的传输数据帧进行解析后,获得加密数据位;
步骤VII、利用从站私钥对所述的加密数据位进行解密,获得待传输消息。
若为加密模式,则先对数据帧进行解析后,再解密,从而获得待传输消息。
在本实施例中,第三计算机程序还包括以下步骤:
步骤VIII、根据待传输的消息,查询待读取的线圈号和数量后,获得反馈数据;
步骤IX、利用主站公钥对反馈数据进行加密后作为数据位加入至数据帧中,获得反馈消息数据帧;
步骤X、将反馈消息数据帧发送给数据加密主站。
本实施例中提供的从站,从modbus协议本身出发进行有限的改写,既保留了modbus协议通用性和高效性的特点,又能有效地利用国密SM2非对称算法实现数据的加密。就这个协议本身而言,就是在标准协议的基础上改进的,当功能码设为公共码时,就运行在标准状态下,当功能码设为自定义的号码时,就运行在加密传输的协议下,设备的兼容性良好,只需经过简单的改进,就可以实现系统的升级换代,保证数据传输的安全性。
实施例三
如图1-3所示,在本实施例中公开了一种基于Modbus-TCP协议的数据传输系统,所述的系统包括基于Modbus-TCP协议的主站以及基于Modbus-TCP协议的从站;所述的主站中存储有第一计算机程序,所述的第一计算机程序被处理器执行时实现以下步骤:
步骤A、与从站建立通信连接;
步骤B、生成主站随机密钥,所述的主站随机密钥包括主站公钥和主站私钥;
步骤C、将所述的主站公钥发送给从站后,获得数据加密从站的从站公钥;
步骤D、获得待传输消息;
步骤E、判断当前是否需要进行加密传输,若需要,则执行步骤F,否则将待传输消息加入至传输数据帧后发送至加密从站;
步骤F、利用步骤C获得的从站公钥对所述的待传输消息进行加密,获得加密数据帧,所述的加密数据帧包括功能码;
步骤G、将所述的功能码设置为加密模式后,获得传输数据帧;将所述的传输数据帧发送至加密从站。
可选地,所述的步骤C具体包括:
步骤a、将所述的主站公钥作为数据位加入至数据帧中,获得主站公钥数据帧;
步骤b、将所述的主站公钥数据帧发送至加密从站;
步骤c、获得从站公钥数据帧,所述的从站公钥数据帧由主站公钥加密获得,所述的从站公钥数据帧包括从站公钥;
步骤d、利用主站私钥解密所述的从站公钥数据帧,获得从站公钥。
因此在本实施例中,第一计算机程序还包括以下步骤:
步骤H、获得反馈消息数据帧;
步骤I、主站对反馈消息数据帧进行解析后,获得加密后的数据位;利用从站公钥对加密后的数据位进行解密,从而获得待读取的线圈号和数量的反馈值。
所述的从站中存储有第二计算机程序,所述的第二计算机程序被处理器执行时实现以下步骤:
步骤I、与主站建立通信连接;
步骤II、生成从站随机密钥,所述的从站随机密钥包括从站公钥和从站私钥;
步骤III、获得主站的主站公钥后,将所述的从站公钥发送给主站;
步骤IV、获得传输数据帧;
步骤V、判断所述的传输数据帧的功能码是否为加密模式,若是,则执行步骤VI,否则将所述的传输数据帧进行解析,获得待传输消息;
步骤VI、对所述的传输数据帧进行解析后,获得加密数据位;
步骤VII、利用从站私钥对所述的加密数据位进行解密,获得待传输消息。
可选地,所述的步骤A按照以下步骤执行:
步骤1、获得从站的地址;
步骤2、主站确定密钥生成算法,所述的密钥生成算法包括SM2算法、SM3算法或SM4算法,每种密钥生成算法对应一个算法编码;
步骤3、将所述的从站地址与算法编码相乘后作为密钥算法数据位;
步骤4、将所述的功能码设置为密钥生成方式后,获得密钥生成数据帧,所述的密钥生成数据帧中的数据位为步骤3中获得的密钥算法数据位;
步骤5、将所述的密钥生成数据帧发送给从站;
步骤6、利用步骤2中确定的密钥生成算法生成主站随机密钥,所述的主站随机密钥包括主站公钥和主站私钥;
可选地,所述的步骤II按照以下步骤执行:
步骤II.I、获得主站发送的密钥生成数据帧;
步骤II.II、将密钥生成数据帧中的数据位除以当前从站的地址,获得密钥生成算法对应的算法编码;
步骤II.III、利用步骤II.II获得的算法编码对应的密钥生成算法生成从站随机密钥,所述的从站随机密钥包括从站公钥和从站私钥。
可选地,所述的步骤III具体包括:
步骤i、获得主站公钥数据帧;
步骤ii、对所述的主站公钥数据帧进行解析,获得主站公钥;
步骤iii、利用所述的主站公钥将从站公钥进行加密后作为数据位加入数据帧中,获得从站公钥数据帧;
步骤iv、将所述的从站公钥数据帧发送给数据加密主站。
在本实施例中,第三计算机程序还包括以下步骤:
步骤VIII、根据待传输的消息,查询待读取的线圈号和数量后,获得查询结果;
步骤IX、利用主站公钥对查询结果进行加密后作为数据位加入至数据帧中,获得反馈消息数据帧;
步骤X、将反馈消息数据帧发送给数据加密主站。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
Claims (3)
1.一种基于Modbus-TCP协议的主站,其特征在于,所述的主站中存储有第一计算机程序,所述的第一计算机程序被处理器执行时实现以下步骤:
步骤A、与从站建立通信连接;
步骤B、生成主站随机密钥,所述的主站随机密钥包括主站公钥和主站私钥;
步骤C、将所述的主站公钥发送给从站后,获得数据加密从站的从站公钥;
步骤D、获得待传输消息;
步骤E、判断当前是否需要进行加密传输,若需要,则执行步骤F,否则将待传输消息加入至传输数据帧后发送至加密从站;
步骤F、利用步骤C获得的从站公钥对所述的待传输消息进行加密,获得加密数据帧,所述的加密数据帧包括功能码;
步骤G、将所述的功能码设置为加密模式后,获得传输数据帧;将所述的传输数据帧发送至加密从站;
所述的步骤B按照以下步骤执行:
步骤1、获得从站的地址;
步骤2、主站确定密钥生成算法,每种密钥生成算法对应一个算法编码;
步骤3、将所述的从站地址与算法编码相乘后作为密钥算法数据位;
步骤4、将所述的功能码设置为密钥生成方式后,获得密钥生成数据帧,所述的密钥生成数据帧中的数据位为步骤3中获得的密钥算法数据位;
步骤5、将所述的密钥生成数据帧发送给从站;
步骤6、利用步骤2中确定的密钥生成算法生成主站随机密钥,所述的主站随机密钥包括主站公钥和主站私钥;
所述的步骤C具体包括:
步骤a、将所述的主站公钥作为数据位加入至数据帧中,获得主站公钥数据帧;
步骤b、将所述的主站公钥数据帧发送至加密从站;
步骤c、获得从站公钥数据帧,所述的从站公钥数据帧由主站公钥加密获得,所述的从站公钥数据帧包括从站公钥;
步骤d、利用主站私钥解密所述的从站公钥数据帧,获得从站公钥。
2.一种基于Modbus-TCP协议的从站,其特征在于,所述的从站中存储有第二计算机程序,所述的第二计算机程序被处理器执行时实现以下步骤:
步骤I、与主站建立通信连接;
步骤II、生成从站随机密钥,所述的从站随机密钥包括从站公钥和从站私钥;
步骤III、获得主站的主站公钥后,将所述的从站公钥发送给主站;
步骤IV、获得传输数据帧;
步骤V、判断所述的传输数据帧的功能码是否为加密模式,若是,则执行步骤VI,否则将所述的传输数据帧进行解析,获得待传输消息;
步骤VI、对所述的传输数据帧进行解析后,获得加密数据位;
步骤VII、利用从站私钥对所述的加密数据位进行解密,获得待传输消息;
所述的步骤II按照以下步骤执行:
步骤II.I、获得主站发送的密钥生成数据帧;
步骤II.II、将密钥生成数据帧中的数据位除以当前从站的地址,获得密钥生成算法对应的算法编码;
步骤II.III、利用步骤II.II获得的算法编码对应的密钥生成算法生成从站随机密钥,所述的从站随机密钥包括从站公钥和从站私钥;
所述的步骤III具体包括:
步骤i、获得主站公钥数据帧;
步骤ii、对所述的主站公钥数据帧进行解析,获得主站公钥;
步骤iii、利用所述的主站公钥将从站公钥进行加密后作为数据位加入数据帧中,获得从站公钥数据帧;
步骤iv、将所述的从站公钥数据帧发送给数据加密主站。
3.一种基于Modbus-TCP协议的数据传输系统,所述的系统包括基于Modbus-TCP协议的主站以及基于Modbus-TCP协议的从站;其特征在于,所述的主站中存储有第一计算机程序,所述的第一计算机程序被处理器执行时实现以下步骤:
步骤A、与从站建立通信连接;
步骤B、生成主站随机密钥,所述的主站随机密钥包括主站公钥和主站私钥;
步骤C、将所述的主站公钥发送给从站后,获得数据加密从站的从站公钥;
步骤D、获得待传输消息;
步骤E、判断当前是否需要进行加密传输,若需要,则执行步骤F,否则将待传输消息加入至传输数据帧后发送至加密从站;
步骤F、利用步骤C获得的从站公钥对所述的待传输消息进行加密,获得加密数据帧,所述的加密数据帧包括功能码;
步骤G、将所述的功能码设置为加密模式后,获得传输数据帧;将所述的传输数据帧发送至加密从站;
所述的从站中存储有第二计算机程序,所述的第二计算机程序被处理器执行时实现以下步骤:
步骤I、与主站建立通信连接;
步骤II、生成从站随机密钥,所述的从站随机密钥包括从站公钥和从站私钥;
步骤III、获得主站的主站公钥后,将所述的从站公钥发送给主站;
步骤IV、获得传输数据帧;
步骤V、判断所述的传输数据帧的功能码是否为加密模式,若是,则执行步骤VI,否则将所述的传输数据帧进行解析,获得待传输消息;
步骤VI、对所述的传输数据帧进行解析后,获得加密数据位;
步骤VII、利用从站私钥对所述的加密数据位进行解密,获得待传输消息;
所述的步骤B按照以下步骤执行:
步骤1、获得从站的地址;
步骤2、主站确定密钥生成算法,所述的密钥生成算法包括SM2算法、SM3算法或SM4算法,每种密钥生成算法对应一个算法编码;
步骤3、将所述的从站地址与算法编码相乘后作为密钥算法数据位;
步骤4、将所述的功能码设置为密钥生成方式后,获得密钥生成数据帧,所述的密钥生成数据帧中的数据位为步骤3中获得的密钥算法数据位;
步骤5、将所述的密钥生成数据帧发送给从站;
步骤6、利用步骤2中确定的密钥生成算法生成主站随机密钥,所述的主站随机密钥包括主站公钥和主站私钥;
所述的步骤II按照以下步骤执行:
步骤II.I、获得主站发送的密钥生成数据帧;
步骤II.II、将密钥生成数据帧中的数据位除以当前从站的地址,获得密钥生成算法对应的算法编码;
步骤II.III、利用步骤II.II获得的算法编码对应的密钥生成算法生成从站随机密钥,所述的从站随机密钥包括从站公钥和从站私钥;
所述的步骤C具体包括:
步骤a、将所述的主站公钥作为数据位加入至数据帧中,获得主站公钥数据帧;
步骤b、将所述的主站公钥数据帧发送至加密从站;
步骤c、获得从站公钥数据帧,所述的从站公钥数据帧由主站公钥加密获得,所述的从站公钥数据帧包括从站公钥;
步骤d、利用主站私钥解密所述的从站公钥数据帧,获得从站公钥;
所述的步骤III具体包括:
步骤i、获得主站公钥数据帧;
步骤ii、对所述的主站公钥数据帧进行解析,获得主站公钥;
步骤iii、利用所述的主站公钥将从站公钥进行加密后作为数据位加入数据帧中,获得从站公钥数据帧;
步骤iv、将所述的从站公钥数据帧发送给数据加密主站。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110146695.4A CN112929166B (zh) | 2021-02-03 | 2021-02-03 | 一种基于Modbus-TCP协议的主站、从站及数据传输系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110146695.4A CN112929166B (zh) | 2021-02-03 | 2021-02-03 | 一种基于Modbus-TCP协议的主站、从站及数据传输系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112929166A CN112929166A (zh) | 2021-06-08 |
CN112929166B true CN112929166B (zh) | 2022-10-04 |
Family
ID=76167866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110146695.4A Active CN112929166B (zh) | 2021-02-03 | 2021-02-03 | 一种基于Modbus-TCP协议的主站、从站及数据传输系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112929166B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150143B (zh) * | 2022-06-24 | 2024-03-12 | 国家石油天然气管网集团有限公司 | 工控设备入网认证方法、装置、设备和存储介质 |
CN115273428A (zh) * | 2022-07-29 | 2022-11-01 | 广东浦尔顿科技有限公司 | 一种汽车充电桩充电检测报警系统 |
CN116436595B (zh) * | 2023-02-06 | 2024-07-16 | 祎智量芯(江苏)电子科技有限公司 | 一种基于modbus通信协议的通信方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018076365A1 (zh) * | 2016-10-31 | 2018-05-03 | 美的智慧家居科技有限公司 | 密钥协商方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106470345B (zh) * | 2015-08-21 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 视频加密传输方法和解密方法、装置及系统 |
CN109450852B (zh) * | 2018-10-09 | 2020-09-29 | 中国科学院信息工程研究所 | 网络通信加密解密方法及电子设备 |
CN110048850A (zh) * | 2019-03-26 | 2019-07-23 | 重庆邮电大学 | 一种基于改进ssl/tls协议的车联网数据安全传输技术 |
-
2021
- 2021-02-03 CN CN202110146695.4A patent/CN112929166B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018076365A1 (zh) * | 2016-10-31 | 2018-05-03 | 美的智慧家居科技有限公司 | 密钥协商方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112929166A (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112929166B (zh) | 一种基于Modbus-TCP协议的主站、从站及数据传输系统 | |
US7305548B2 (en) | Using atomic messaging to increase the security of transferring data across a network | |
Li et al. | Anonymity enhancement on robust and efficient password-authenticated key agreement using smart cards | |
CN110995414B (zh) | 基于国密算法在tls1_3协议中建立通道的方法 | |
CN108650227A (zh) | 基于数据报安全传输协议的握手方法及系统 | |
CN105376261B (zh) | 一种用于即时通讯消息的加密方法及系统 | |
JP2020532928A (ja) | デジタル署名方法、装置及びシステム | |
CN116132043B (zh) | 会话密钥协商方法、装置及设备 | |
WO2023151479A1 (zh) | 数据处理方法及设备 | |
CN113890730A (zh) | 数据传输方法及系统 | |
CN115001758B (zh) | 一种基于量子加密的短字节消息安全加密方法 | |
CN115150067A (zh) | 一种基于网络隐蔽通道的tls协议构建方法及系统 | |
CN114615054A (zh) | 一种基于码表的动态加密传输方法 | |
CN113765900A (zh) | 协议交互信息输出传输方法、适配器装置及存储介质 | |
CN113810779A (zh) | 码流验签方法、装置、电子设备和计算机可读介质 | |
CN108809632B (zh) | 一种量子安全套接层装置及系统 | |
Joaquim et al. | Vulnerability-tolerant transport layer security | |
CN110532787A (zh) | 一种用于强化集群中的保密资源的安全性的方法和装置 | |
CN110855628A (zh) | 一种数据传输方法及系统 | |
CN113364756B (zh) | 一种智能电子设备数据传输方法、装置、系统及介质 | |
AlJanah et al. | A Multi-Factor Homomorphic Encryption based Method for Authenticated Access to IoT Devices | |
CN112333204B (zh) | 基于tcp ip协议乱序特征码的5g网络传输保密装置 | |
CN118101340B (zh) | 数据安全传输方法、装置和电子设备 | |
CN115549946A (zh) | 密钥的算法种类确定方法、装置、设备及存储介质 | |
CN117201000A (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 |