一种基于国密算法的工控编程平台安全通信方法及系统技术方案

技术编号:38672463 阅读:7 留言:0更新日期:2023-09-02 22:49
本发明专利技术涉及一种基于国密算法的工控编程平台安全通信方法,设计IDE编程软件与控制器中安全RTE之间的程序安全加载方法,经工程师身份认证、双向身份认证、以及控制程序可信验证,执行控制程序到控制器中安全RTE的下载与更新;设计IDE组态监控软件与安全RTE之间的安全数据通信方法,经双向身份认证,执行彼此间通信过程中的数据安全保护;进一步相应系统,通过对工程师站、操作员站、控制器分别进行模块化设计,提高模块间的通信效率,进而高效执行安全通信方法,进一步提高对控制器运行过程监控的安全性;整个方案在实际应用中,能够覆盖工控系统研发、部署、运行、更新等各环节,可实现工控系统全生命周期的安全通信保护。实现工控系统全生命周期的安全通信保护。实现工控系统全生命周期的安全通信保护。

【技术实现步骤摘要】
一种基于国密算法的工控编程平台安全通信方法及系统


[0001]本专利技术涉及一种基于国密算法的工控编程平台安全通信方法及系统,属于工控平台安全加密通信控制


技术介绍

[0002]目前,工控系统已在我国电力、燃气、供热、交通、制造等涉及国计民生的关键领域广泛应用。工控编程平台是工控系统的核心组件,包括上位机组态与编程环境IDE和下位机运行时环境RTE;IDE包括编程软件和组态监控软件,编程软件部署于工程师站,组态监控软件部署于操作员站,RTE部署于PLC、DCS等工业控制器。
[0003]工控编程平台的通信分为两类:一类是IDE编程软件与控制器间的通信,工程师使用编程软件编写控制程序、配置运行参数,下装或更新到控制器的RTE中,控制器按照控制程序的逻辑,周期性地通过输入口采集现场设备的运行数据,并通过输出口发送给操作员站的组态监控软件。另一类是IDE组件监控软件与控制器间的通信,操作员通过组态监控软件,根据现场设备的类型和连接方式,在软件上画出和现场设备执行顺序一直的界面,形象地实时监控现场设备的运行状况,并可根据需要向控制器发送控制指令调整现场设备的运行。可见,IDE功能强大,权限很高,控制IDE就可以对控制器植入病毒、木马、后门等恶意代码,任意控制现场设备的运行,甚至对工控系统造成毁灭性的破坏。因此,确保IDE与RTE间的安全通信至关重要。
[0004]IDE与RTE间主要采用底层基于TCP/IP协议的客户端/服务器网络通信方式,IDE为客户端,主动向控制器RTE发起连接请求。编程软件与控制器间上层通常采用各厂商自定义的私有协议,组态监控软件与控制器间采用标准的工业以太网协议,典型的如Profinet、Ethernet/IP、Modbus等。由于以前工控系统运行环境相对封闭,且对可用性、实时性的要求强于安全性,因此各厂商在设计协议时基本未考虑安全通信机制,普遍存在以下问题:(1)IDE编程软件向控制器下装或更新控制程序时未对工程师进行身份认证,且与RTE通信时也未进行相互的身份认证,攻击者可以冒充合法的IDE与RTE通信,随意访问控制器并植入恶意代码。
[0005](2)IDE组件监控软件与控制器RTE采用明文通信,对传输的数据未采用加密、完整性等保护机制,数据易被篡改、伪造。
[0006]由于IDE编程软件与控制器间的通信属于短连接通信(称为第一类通信),编程软件下装或更新完控制器程序即断开连接,而IDE组态监控软件一直与控制器RTE间保持长连接通信(称为第二类通信)。因此,现有的解决方案主要针对第二类通信协议进行改进,增加简易挑战/应答认证机制或基于密码学的安全通信机制,其中,简易挑战/应答认证机制是指用户在访问系统时,系统随机产生一个消息作为挑战值发送给用户,用户在对挑战值进行简单的运算处理后,将计算结果作为登录口令返回给系统,如果系统收到正确的应答,则验证通过。基于密码学的安全通信机制则采用对称、非对称、HASH等密码算法实现身份认证、数据加密、数据完整性保护等,实现通信安全。
[0007]现有技术虽然在一定程度上提高了IDE和RTE通信的安全性,但是仍存在如下不足:(1)未对第一类通信进行安全保护,工程师操作IDE向RTE下装程序时未对用户身份和程序完整性进行校验,无法保证当前用户为合法用户,也无法保证程序没有被植入恶意代码;(2)第二类通信采用的简易挑战/应答认证机制只进行了身份认证,且安全强度较弱,极易破解,无法保证数据不被篡改或伪造;(3)第二类通信采用的基于密码学的安全通信机制主要采用RSA、DES、SHA等国际密码算法,一方面算法、通信机制复杂,占用计算资源较多,通信效率较低,另一方面也存在潜在安全风险。

技术实现思路

[0008]本专利技术所要解决的技术问题是提供一种基于国密算法的工控编程平台安全通信方法,针对IDE编程软件、IDE组态监控软件分别与控制器中安全RTE之间的通信,设计全新安全通信机制,在对控制器运行过程实现监控的同时,提高整个通信的安全性。
[0009]本专利技术为了解决上述技术问题采用以下技术方案:本专利技术设计了一种基于国密算法的工控编程平台安全通信方法,基于工程师应用IDE编程软件执行程序安全加载方法,实现控制程序到控制器中安全RTE的下载与更新,进而应用IDE组态监控软件执行安全数据通信方法,实现IDE组态监控软件对控制器运行过程的安全监控;其中,程序安全加载方法包括基于依次执行工程师应用IDE编程软件向控制器中安全RTE发起网络连接请求时的工程师身份认证、控制程序下载与更新前IDE编程软件与安全RTE间的双向身份认证、以及控制程序可信验证,进而执行控制程序到控制器中安全RTE的下载与更新。
[0010]作为本专利技术的一种优选技术方案:工程师应用IDE编程软件按如下步骤a至步骤j,执行程序安全加载方法,实现控制程序到控制器中安全RTE的下载与更新;步骤a.工程师应用IDE编程软件向控制器中安全RTE发起网络连接请求,并进入步骤b;步骤b.安全RTE判断网络连接请求中是否检测到IDE编程软件的硬件身份模块,是则进入步骤c;否则进入步骤j;步骤c.安全RTE验证硬件身份模块中工程师数字证书是否合法,是在待IDE编程软件接收工程师输入的二次认证口令,并转发至安全RTE,再进入步骤d;否则进入步骤j;步骤d.安全RTE判断来自IDE编程软件的二次认证口令是否正确,是则进入步骤e;否则进入步骤j;步骤e.由IDE编程软件应用其公私钥对控制程序进行签名和完整性保护,并下载至安全RTE,再进入步骤f;步骤f.安全RTE验证IDE编程软件的数字证书是否合法,是则针对验证结果进行签名和完整性保护,并返回至IDE编程软件,再进入步骤g;否则进入步骤j;步骤g.IDE编程软件验证安全RTE的数字证书是否合法,是则回复验证通过结果至安全RTE,再进入步骤h;否则进入步骤j;
步骤h. 安全RTE验证控制程序的完整性是否一致,是则进入步骤i;否则进入步骤j;步骤i. 安全RTE验证控制程序签名是否通过,是则由安全RTE安装控制程序,然后结束IDE编程软件与安全RTE之间的通信;否则直接结束IDE编程软件与安全RTE之间的通信;步骤j. 返回结果至IDE编程软件,结束IDE编程软件与安全RTE之间的网络连接。
[0011]作为本专利技术的一种优选技术方案:安全数据通信方法包括IDE组态监控软件与控制器中安全RTE之间的双向身份认证、以及彼此间通信过程中的数据安全保护,其中,IDE组态监控软件与控制器中安全RTE之间的双向身份认证采用基于SM2签名数字证书的双向认证方式,数据安全保护分为两种情况,一种是针对IDE组态监控软件下发至控制器中安全RTE的控制指令,采用基于SM3和SM4算法的加密和完整性保护;另一种是控制器中安全RTE向IDE组态监控软件上报的业务数据或运行状态数据,采用基于SM3的完整性保护。
[0012]作为本专利技术的一种优选技术方案:基于SM2数字证书及公私钥对预置到IDE组态监控软件和控制器的安全RTE中,以及硬件安全模块安全存储本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于国密算法的工控编程平台安全通信方法,其特征在于:基于工程师应用IDE编程软件执行程序安全加载方法,实现控制程序到控制器中安全RTE的下载与更新,进而应用IDE组态监控软件执行安全数据通信方法,实现IDE组态监控软件对控制器运行过程的安全监控;其中,程序安全加载方法包括基于依次执行工程师应用IDE编程软件向控制器中安全RTE发起网络连接请求时的工程师身份认证、控制程序下载与更新前IDE编程软件与安全RTE间的双向身份认证、以及控制程序可信验证,进而执行控制程序到控制器中安全RTE的下载与更新。2.根据权利要求1所述一种基于国密算法的工控编程平台安全通信方法,其特征在于:工程师应用IDE编程软件按如下步骤a至步骤j,执行程序安全加载方法,实现控制程序到控制器中安全RTE的下载与更新;步骤a. 工程师应用IDE编程软件向控制器中安全RTE发起网络连接请求,并进入步骤b;步骤b. 安全RTE判断网络连接请求中是否检测到IDE编程软件的硬件身份模块,是则进入步骤c;否则进入步骤j;步骤c. 安全RTE验证硬件身份模块中工程师数字证书是否合法,是在待IDE编程软件接收工程师输入的二次认证口令,并转发至安全RTE,再进入步骤d;否则进入步骤j;步骤d. 安全RTE判断来自IDE编程软件的二次认证口令是否正确,是则进入步骤e;否则进入步骤j;步骤e. 由IDE编程软件应用其公私钥对控制程序进行签名和完整性保护,并下载至安全RTE,再进入步骤f;步骤f. 安全RTE验证IDE编程软件的数字证书是否合法,是则针对验证结果进行签名和完整性保护,并返回至IDE编程软件,再进入步骤g;否则进入步骤j;步骤g.IDE编程软件验证安全RTE的数字证书是否合法,是则回复验证通过结果至安全RTE,再进入步骤h;否则进入步骤j;步骤h. 安全RTE验证控制程序的完整性是否一致,是则进入步骤i;否则进入步骤j;步骤i. 安全RTE验证控制程序签名是否通过,是则由安全RTE安装控制程序,然后结束IDE编程软件与安全RTE之间的通信;否则直接结束IDE编程软件与安全RTE之间的通信;步骤j. 返回结果至IDE编程软件,结束IDE编程软件与安全RTE之间的网络连接。3.根据权利要求1所述一种基于国密算法的工控编程平台安全通信方法,其特征在于:安全数据通信方法包括IDE组态监控软件与控制器中安全RTE之间的双向身份认证、以及彼此间通信过程中的数据安全保护,其中,IDE组态监控软件与控制器中安全RTE之间的双向身份认证采用基于SM2签名数字证书的双向认证方式,数据安全保护分为两种情况,一种是针对IDE组态监控软件下发至控制器中安全RTE的控制指令,采用基于SM3和SM4算法的加密和完整性保护;另一种是控制器中安全RTE向IDE组态监控软件上报的业务数据或运行状态数据,采用基于SM3的完整性保护。4.根据权利要求3所述一种基于国密算法的工控编程平台安全通信方法,其特征在于:基于SM2数字证书及公私钥对预置到IDE组态监控软件和控制器的安全RTE中,以及硬件安全模块安全存储,应用IDE组态监控软件按如下步骤I至步骤VIII,执行安全数据通信方法,
实现IDE组态监控软件对控制器运行过程的安全监控;步骤I. IDE组态监控软件向控制器的安全RTE发起网络连接请求,并进入步骤II;步骤II. IDE组态监控软件先生成随机数R
n
,并采用安全RTE的公钥D
c
对随机数R
n
进行加密,再对随机生成的通信序列号SN、以及加密后的随机数,应用SM3算法生成散列,接着应用IDE组态监控软件的私钥P
e
针对散列进行签名,并发送至安全RTE请求身份验证,然后进入步骤III;步骤III. 安全RTE验证IDE组态监控软件的数字证书是否合法,是则采用安全RTE私钥P
c
解密获得随机数R
n
,并进入步骤IV;否则向IDE组态监控软件返回验证结果,结束IDE组态监控软件与安全RTE之间的网络连接;步骤IV. 安全RTE获得随机数R
n
按位非运算的结果,并采用SM3算法计算对应HASH值,再采用IDE组态监控软件公钥D
e
进行加密、安全RTE私钥P
c
进行签名,并返回至IDE组态监控软件,进入步骤V;步骤V. IDE组态监控软件验证安全RTE的数字证书是否合法,是则采用私钥P
e
解密获得对应HASH值,并进入步骤VI;否则向安全RTE返回验证结果,结束IDE组态监控软件与安全RTE之间的网络连接;步骤VI. IDE组态监控软件针对随机数R
n
按位非运算的结果,采用SM3算法计算HASH值,并判断是否与来自安全RTE的HASH值一致,是则将随机数R
n
作为会话密钥,进而开启IDE组态监控软件与安全RTE之间的通信,并进入步骤VII;否则向安全RTE返回验证结果,结束IDE组态监控软件与安全RTE之间的网络连接;步骤VII. 安全RTE检查是否收到来自IDE组态监控软件的控制指令,是则安全RTE应用会话密钥R
n
进行解密、并执行相应指令,然后返回步骤I;否则进入步骤VIII;步骤VIII. 控制器按预设周期性,采集其所设现场设备运行数据...

【专利技术属性】
技术研发人员:陈飞胡静张胜
申请(专利权)人:信联科技南京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1