工业信息安全中提及了一些风险存在的可能。比方说上位和控制器之间的通讯,抓包软件一下就获取了所有数据;再例如对于一些关键参数的修改完全没有用户等级权限的限制;原始文件与加密文件的应用。
所以这个课程帮大家罗列了一下在TwinCAT3工程建立和编写过程中,有哪些方法可以减少乃至规避信息安全上的风险。在TwinCAT HMI中,我们可以通过UserManagement来配置不同等级的组别以及各自的用户。这些组可以设定mapping变量的读写权限、TwinCAT HMI Server 处理文件或者文件夹的读写权限。每一个独立控件的属性中可以设定每一个等级是否可操作控件,是否可见控件。
具体可以参考TwinCAT HMI教程:TwinCAT HMI入门使用V1.0
顺便说明一下,TwinCAT3 PLC-HMI中也有用户管理的功能,可以参考入门教程:TwinCAT3入门教程V4.13使用OEM KEY会要求用户建立自己的用户等级库,可以对查看代码、修改代码、激活下载这些功能的使用进行选择性限制。在打开工程的时候使用不同的用户名密码,就可以获得各自的权限。
具体使用方法详见:TwinCAT3 Software Protection使用指南V2.0
TwinCAT3自定义的库文件保存格式选择有两种,默认为library格式,以此格式保存用户双击后可以看到源码,是不做任何加密处理的。
compiled-library格式以二进制格式编译后再保存的。以此格式保存用户在调用的库中双击功能块看不到源码。
具体库文件使用及保存请看入门教程:
那么说到少使用未加密的原始文件,还可以注意,例如做配方数据的时候,默认选择为txt格式,可以勾选为bintxt,这样就是编译以二进制格式存储的。
良好的属性应用可以帮助我们隐藏关键变量。
比如第一种attribute_hide,对于添加了这样属性的变量,在外部调用的时候依然可以通过功能块名.变量名的方式进行调用,但是点索引的时候不会罗列出这些变量。
而例如attribute_tc_no_symbol,可以使得变量无法在ADS通讯过程中被直接获取到,避免轻易被抓包软件获取。具体使用可以参考OOP教程:
同时可以注意的还有FB创建时候的属性也是可以选择的,选择不同的属性决定了这个功能块后续是否可以被继承,或者封装以后是否可以被调用。具体设置可以参考OOP教程:TwinCAT3 OOP教程