工业控制系统中安全组态工程保护技术实现

在工控系统中,为了防止核心的工艺代码的泄露,技术人员往往会对组态工程文件加上密码。当打开一个有密码保护的组态工程文件时会需要输入安全密码。但是由于组态软件的设计问题,导致组态工程加密措施并不安全,有些形同虚设,非法的操作者甚至能直接绕过所需的密码直接打开组态工程文件。

不安全的设计

在前一段时间,对市面上的常见的组态软件(包括三菱,组态王,施耐德,西门子等上位机软件)进行安全测试时发现不仅国内的组态软件存在组态工程密码绕过问题,一些国外的大厂也存在类似的问题,包括硬编码的密码,组态工程密码没有作为密钥加密组态工程文件,不安全的算法实现等。

对于硬编码密码的漏洞(如CNVD-2019-30119),厂商快速完成了修复,移除了硬编码密码,但是组态工程文件没有得到“真正”的保护。大多数存在漏洞的组态软件仅仅将用户输入的密码与真正的密码(或者密码hash)进行对比,而没有使用输入的密码加解密组态工程文件,这就导致无论输入什么密码,都可以通过逆向手段找到关键的跳转语句,修改指令让校验流程始终走向正确的分支(如下图所示)。对于这类的安全问题,解决方法只能是花费大量的时间和精力重新设计加密机制,并且需要敦促用户使用更新补丁。这便造成了很多厂商认为这类问题无关紧要,不愿花更多资源投入到漏洞的修复当中。

更安全的工程加密机制

毫无疑问,组态工程文件加密的算法实现一定是需要让组态工程密码参与到数据的加解密运算中,否则使用密码的任何加密存储形式(sha1 ,md5,sha256等hash算法)都是没有作用的。在设计组态工程加密的机制要考虑以下原则:

加密算法必须保证非常可靠,能够防止攻击者从加密的密文反向推出明文或者密钥。在这里,可以选择AES(Advanced Encryption Standard)这类非常成熟的加密算法。

足够长度的salt是必须的,将salt值附加到密码后面作为加解密密钥以此来保证密钥强度,这样可以有效抵御字典暴力攻击。

考虑到用户如果忘记密码,软件生产商必须有能力从用户的组态工程文件中恢复密码(当然留下后门密码肯定是不可取的),所以必须将正确的加密密钥通过非对称算法(如RSA2048)加密存到工程文件中,一旦证明了该组态工程文件是该用户所有的,软件生产厂商可以使用拥有的私钥去解密密文从而恢复密码。

算法选择应该尽量选择现成加密库的算法,例如OpenSSL,减少开发商编写代码的成本。

加密流程如下图所示:

一旦存在有些粗心的用户忘记了自己的组态工程密码,只要能证明该组态工程文件为自己所有,那么用户就可以通过开发商找回密码。具体找回密码流程如下图所示:

工程密码保护

对于组态工程密码来说,当用户输入正确的组态工程密码后,上位机软件会用该密码解密组态工程文件,并需要将密码一直存在于内存中,直到用户关闭组态工程文件才会将内存中保存的工程密码(期间用户可能修改密码)作为密钥加密组态工程文件并进行保存。整个生命周期如下图所示:

可以看出,正确的密码一直保存在内存中,直到工程被关闭。所以,对于内存中的密钥也需要一定的保护措施,防止其他恶意软件在组态工程文件打开的情况下通过读取进程内存空间的方法窃取到敏感的密钥信息。Windows系统已经内置了一些的函数保护敏感的内存信息(如CryptProtectMemory/CryptUnProtectMemory),Linux平台上的开发者也可以选择开源的第三方安全组件实现内存敏感信息加密。

总结

组态工程加解密实现的方法有很多种,本文提供的方法只是一个简单的例子,读者可以举一反三,探索出适合自己的加解密方式。工业控制系统安全不仅需要用户提高安全意识,同时也需要软硬件生产厂商高度重视,为用户提供更好的服务。

【本文是IDC.NET专栏作者“绿盟科技博客”的原创稿件,转载请通过IDC.NET联系原作者获取授权】

戳这里,看该作者更多好文

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/130317.html<

(0)
管理的头像管理
上一篇2025-02-26 00:51
下一篇 2025-02-26 00:52

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注