6. S7-1500 OPC UA的安全通信介绍
S7-1500 OPC UA的安全通信主要涉及两个方面:第一是有选择的可信客户端,只有信任的客户端才能与服务器进行通信;第二是传送的报文加密,不能从中间截获的报文中得到通信的数据,例如上一篇介绍的非安全通信,使用WireShark抓包软件可以看到报文的信息和实际的数据,如图10所示。
图10
图10标示的报文是写请求,被写的变量是“A.C”,内容是“Write test”,所有的通信数据都是透明的。图11是加密的报文,报文没有信息,报文中的数据不能查看。
图11
S7-1500 OPC UA使用证书进行加密通信,证书中可以包含公钥和私钥(通常私钥自己留下,发送的是公钥)。私钥只有一把,公钥可以有多个,公钥加密的报文只能使用对应的私钥解密,同样,私钥加密的报文也只能使用对应的公钥解密。使用证书加密的通信也可以确保通信双方的唯一性。通信双方在通信建立时需要相互交换公钥并确认公钥是否可信,通信建立后双方都使用对方的公钥对发送报文进行加密,然后使用私钥解密报文,这样的方式是异步加密。也可以产生随机数,然后根据随机数产出秘钥,通过对方的公钥加密传送秘钥,对方使用私钥解密得到秘钥,这样双方使用同一把秘钥进行加密和解密,这样的方式是同步加密,例如S7 -1500 PLC TCP加密通信就是使用这样的方式。S7-1500 OPC UA具体使用哪一种方式对我们其实并不重要,因为这是一个标准,加密解密的方式也是确定的。这里需要注意的是证书的存储与传递方式,关于证书的介绍,网络上的文章也非常多,感兴趣的工程师可以查询,这里不再赘述。
7. S7-1500 OPC UA证书的传递方式
在S7-1500 CPU V2.9之前,只能通过硬件的下载传送证书,这些证书包括S7-1500 CPU的服务器证书和受信任客户端的证书。如果需要添加新的客户端或者由于证书到期进行更新以及吊销不再使用客户端的证书,都需要重新下载CPU的硬件配置,造成停产。在V2.9即以后的版本中,使用全球发现服务器 GDS(Global Discovery Server)管理证书,使用GDS的推送管理功能可以在 CPU 处于STOP和RUN操作状态时传送更新后的证书和信任列表,这样可以随时增加和吊销OPC UA的客户端。这两种证书传送的方式如图12所示。
图12
CPU 处于STOP模式时,通过TIA博途加载硬件配置更新证书,证书是硬件配置的组成部分。CPU处于 RUN 或STOP模式时,通过GDS客户端使用OPC UA 客户端的推送功能来更新证书(这里可能有点绕,证书可以通过邮件或者复制得到,推送是通过OPC UA客户端实现的,CPU支持GDS推送功能,)。两种方式不能同时使用,下载或者推送的证书都存储于SMC(SIEMENS Memory Card)中,但是位置不同,如果选择GDS推送方式 ,TIA博途下载硬件不会覆盖卡中推送的证书。下面分别以硬件下载方式和GDS推送方式介绍S7-1500 OPC UA的安全通信。
8. 安全通信方式访问S7-1500 OPC UA服务器-硬件下载传送证书方式
OPC UA的安全通信使用证书的方式对通信数据加密和通信双方进行认证。下面以示例的方式介绍S7-1500 OPC UA服务器的安全通信。示例中还是以客户端UaExpert为例连接S7-1500 CPU OPC UA服务器。操作步骤如下:
1) 在CPU属性“防护与安全”->“证书管理器”栏中使能“使用证书管理器的全局安全设置”选项。
2) 在项目树下选择“安全设置”->“设置”,点击项目保护标签,设置项目的用户名和口令。
3) 再次打开CPU属性中的“证书管理器”,在设备证书表格中点击添加新的证书,如图13所示,选择“由证书颁发机构签发”的证书类型,并选择CA名称。证书用途选择“OPC UA客户端/服务器”,其它参数保持缺省设置,点击确认后新的证书生成。
图13
4) 打开OPC UA客户端软件UaExpert,点击“Setting”->“Manage Certificates”打开证书管理界面,如图14所示,然后将UaExpert的证书复制到本地硬盘中。
图14
5) 在项目树下选择“安全设置”->“安全特性”,双击“证书管理器”进入全局证书管理界面,在“设备证书”栏中鼠标右键选择“导入”,然后浏览到UaExpert的设备证书并导入到全局证书管理器中。在TIA博途V17中,导入的证书出现在“证书颁发机构(CA)标签栏中”
6) 在CPU的属性中选择“OPC UA”->“服务器”,在“常规”栏中使能OPC UA服务器。
7) 打开“Security”->“Secure Channel”栏,配置安全通道参数如图15所示。
图15
首先选择生成的服务器证书,然后选择安全策略例如“Basic256 - 签名和加密”,去使能没有使用的安全策略。
注意:
不能选择“无安全设置”,否则为非安全通信。如果选择只有“签名”而没有“加密”功能,通过证书,OPC UA服务器只能识别可信任客户端,建立通信后,通信的报文并没有加密。可以使能多个安全策略对应不同安全需求的客户端。
8) 在可信客户端列表中添加UaExpert的设备证书并去使能“运行过程中自动接受客户端证书”选项,如图16所示。
图16
注:
所有需要连接S7-1500 OPC UA服务器的客服端必须将证书存放到“可信客户端”,否则通信不能建立。
9) 在“用户身份认证”栏中可以设置不同的用户和密码同时去使能“启用访客认证”选项,如图17所示。
图17
注:
如果不使能“启用用户名和密码认证”而使用“启用访客认证”,则通信建立时不需要输入用户名和密码,两种方式必须选择一项。
10) 在“运行系统许可证”栏中选择购买的许可证(参考OPC UA非安全通信)。其它参数保持缺省设置,编译无错后将配置文件下传到CPU中。
11) 打开UaExpert客户端软件,添加服务器,选择在服务器上设置的安全策略、输入用户名和密码并使能“Connect Automatically”选项,点击“OK”按钮建立通信连接,如图18所示。
图18
12) 在弹出的证书验证对话框中选择临时接受服务器证书后,点击“Continue”按钮连接到OPC UA的服务器,变量的监控操作和设置与非安全通信是一样的,这里不再介绍。
从上面的配置过程中可以看到,OPC UA 服务器证书以及客户端证书都存储于硬件配置中,如果添加新的客户端证书则需要重新下载CPU的硬件配置。
注:
证书是有时效性的,开始时间即为证书创建的时间,所以为了保证证书有效性,需要调整CPU的时间为当前时钟。
【声明:本文/视频版权归西门子1847工业学习平台所有,未经允许,不得转载。】