APP下载

国产PLC系统与OPC UA通信过程的身份认证机制优化*

2018-12-25赵悦琪闵晓霜

网络安全与数据管理 2018年12期
关键词:客户端证书身份

赵悦琪,闵晓霜

(中国电子信息产业集团有限公司第六研究所,北京 102209)

0 引言

可编程逻辑控制器(PLC) 在工控领域的应用逐渐广泛,它的核心控制地位也逐渐提升。尽管市场上许多国外的PLC设备已经可以实现安全稳定的通信,但国产化是独立发展民族经济的重要措施,对国家有特别重要的意义,因此将软硬件纯国产的PLC系统投入市场使用有着极为重要和特别的意义,那么基于国产 PLC 进行标准化通信协议的开发就显得很有价值。OPC统一架构(OPC UA)体系是一个基于网络服务的不依赖于平台的新标准,借助这样一个标准,各种各样的系统和设备能在不同网络中以“客户端/服务器”模式进行通信,它通过确认客户端与服务器的身份和自动抵御攻击来支持安全可靠的通信,大大提高了数据采集和处理的安全性和效率[1]。OPC UA借助其优势,在国产PLC系统中的应用十分广泛,但是通信过程中的安全问题还处在比较薄弱的阶段,因此提供安全可靠的通信方案显得尤为重要。OPC UA基金会提供了一个基本的安全模型,为客户端和服务器之间的信息交换提供了保障,但是面对复杂的网络环境和恶意的外部攻击时还会暴露出基本模型存在的不足[2]。其中身份认证是在任何一次通信对话过程中都不可避免的环节,如果身份认证机制不够安全,将会遭受诸如中间人攻击、消息欺骗、口令窃听等攻击,使信息泄露甚至影响系统整体运行。本文针对国产化PLC系统与OPC UA通信过程的身份认证机制进行优化,以提高通信系统的安全性。

1 OPC UA 身份认证方式及存在的不足

身份认证技术是信息安全的核心技术之一,它的发展直接决定了信息技术产业的发展,它是一种证实被认证对象是否属实或有效的过程和技术,其基本思想是通过验证被认证对象的属性来达到证实其是否真实有效的目的[3],对于保证信息只被合法授权用户获取和访问起着重要作用。本文在已有的身份认证手段基础之上,基于安全模型的不足提出了一种双向身份认证机制,对安全模型进行优化,使之在身份认证环节的安全性大大提高。

1.1 OPC UA的身份认证和授权机制

OPC UA基金会给用户提供了一个基本的安全模型,这是一个允许在不同的应用环境中实现功能的通用的安全模型。OPC UA安全模型被构建在传输层之上的应用层和通信层中,定义描述了一个分层的方法,每一层都有对于安全问题的具体职责。文献 [4]描述了基本安全模型的工作机制,其结构如图1所示。

图1 OPC UA 安全模型

OPC UA的身份认证和授权包含几个不同的层面,分别是应用程序认证和授权、产品认证和授权、用户认证和授权。其中,应用程序认证和授权使服务器可以验证一个应用实例证书属于某个OPC UA 客户端,可否允许客户端建立安全通道;用户认证和授权是指OPC UA服务器可以验证准备从服务器获取数据的用户确实是其所声称的用户;产品认证和授权以及用户认证和授权过程均是在会话建立期间进行的。

由于认证级别不同、传输凭据的类型不同,服务器将执行不同任务以验证用户身份。以应用程序认证和授权为例,图2显示了应用程序的认证过程。

具体地,客户端用签名的“打开安全通道请求”来证明其对证书关联的私钥的所有权,经过服务器用客户端证书的公钥来验证客户端身份,验证后服务器端用私钥对“打开安全通道请求”进行带有自己的签名的回应,客户端也可以验证从服务器接收的证书是服务器的证书以验证其身份,最终达到建立安全通道的目的[4]。

图2 应用程序认证过程

1.2 现有身份认证机制存在的问题

传统的安全模型虽然一定程度上可以满足安全需求,但是在国产化PLC 系统的应用当中却面临着种种问题。首先,无法防止冒充,一旦对话被黑客攻击窃取到过程信息,就可以进行身份冒充,欺骗客户端给出错误的数据或者欺骗服务器非法读取数据;其次,无法防止重放攻击,同一用户或者服务器在进行认证时都提供相同的签名和数字证书,极易被中间人拦截进行重放攻击,从而获取私密工业数据;此外,整个认证授权过程对于双方的身份确认和隐私保护过程较为简单,安全防护等级较低,无法应对工业控制领域中复杂的环境和来自外部的刻意攻击,面临着诸如消息欺骗、窃听、会话劫持、用户凭证泄密等威胁[5]。鉴于这些风险,提供一个双向的、安全的身份认证模型对于安全通信十分重要。

2 基于双向身份认证的模型优化

2.1 系统概述

基于上文提出的问题,本文设计了一种增强的双向身份认证机制以提高安全性能,为了实现双向的身份认证,本文使用审计系统作为权威第三方,以公钥基础设施(Public Key Infrastructure, PKI)技术作为认证过程中的基础技术,通过证书和公私密钥对来验证用户身份的合法性。增加了USBKey防护,USBKey是一种芯片级操作系统,所有读写和加密运算都在芯片内部完成,它自身所具备的存储器可以用来存储一些个人信息或证书,用来标识用户身份,具有很高的安全性[6]。

优化后的系统主要包括如下几部分。

(1)OPC UA客户端和USBKey:OPC UA 客户端主要实现系统和客户的管理,为终端用户提供一个简洁、可操作的交互界面;系统对客户端的每一个用户都分发一个USBKey,当中存有用户证书、用户密码口令和服务器公钥。在USBKey与服务器连接成功后,OPC UA 的服务器可以从这里调用用户的证书信息并进行加解密工作。

(2)控制代理器:它是客户端和服务器进行信息交流的中介,主要用于接收用户从客户端发出的访问请求和提交的认证信息,并将这些信息转发给服务器端。在用户认证成功后,它成为用户访问资源数据库的代理服务器。

(3)OPC UA服务器端和用户信息数据库:OPC UA服务器主要是接收由控制代理转发来的用户信息,接收后与用户信息数据库中的信息进行对照,完成对客户端的认证工作。

(4)审计系统:包括审计服务器和审计数据库,其中数据库用于存储用户名和OPC UA服务器生成的随机序列码,审计服务器负责对数据库中的内容进行数字签名。

设计的身份认证系统逻辑结构如图3所示。

图3 双向身份认证系统

2.2 双向身份认证过程

上述系统的具体认证过程步骤如图4所示。

图4 双向身份认证流程

(1)客户端的用户将自己的USBKey插入PC的USB接口,输入用户名和口令,如果口令正确,控制代理器与USBKey建立连接,否则失败。

(2)连接成功后,控制代理器会从USBKey中调用用户证书,并转发给OPC UA服务器端。

(3)服务器收到证书后会提取其中的用户名、用户公钥和证书序列号S,并根据用户名在用户信息数据库中查找,如果存在,认证过程继续,否则认证失败。

(4)如果在数据库中找到了用户信息,服务器会根据该信息在轻量目录访问协议服务器(Lightweight Directory Access Protocol,LDAP)中找到用户证书序列号S,并与上一步骤中获取的证书序列号S比对,如果相等则验证成功,否则失败,OPC UA服务器会将验证结果进行签名后存到审计数据库中;

(5)在步骤(3)中,OPC UA服务器提取了证书的用户名信息,此时会产生一个随机的序列码M,M和用户名绑定形成UserM,服务器调用自己的私钥KS和用户的公钥KU分别对这组信息加密,得到KS(UserM)和KU(UserM),KS(UserM)通过控制代理器存入USBKey中,KU(UserM)通过审计服务器存入到设计数据库中。

(6)OPC UA客户端收到KS(UserM)后,利用OPC UA 服务器的公钥PS进行解密PS(KS(UserM)),得到UserM,再利用用户的公钥KU进行加密得到KU(UserM),结果发送到审计服务器。

(7)审计服务器把步骤(6)得到的KU(UserM)和步骤(5)得到KU(UserM)的进行比对,如果结果一致则认证成功,否则失败。

(8)只有在步骤(4)和步骤(7)中的认证都成功时,控制代理器才会将OPC UA客户端和服务器接通,用户可以访问服务器中的过程数据,否则连接失败。

这样的认证过程就实现了安全的双向身份认证,步骤(1)~(4) 是OPC UA服务器对用户身份的验证,步骤(5)~(8)则实现了用户对服务器身份的认证,当双向认证成功后即可以建立资源访问。认证的结果同时被详细地记录在审计数据库中,已备日后在发生纠纷时作为第三方对通信双方进行仲裁[7]。

3 在国产PLC系统当中应用的安全分析

本文是基于国产自主可控 PLC系统与 OPC UA 通信过程的优化设计,整个过程要通过建立起带有 OPC UA 客户端和服务器的PC与PLC之间的连接,进行 OPC UA 数据交互,实现控制 PLC 运行、读取现场工业数据、读取PLC 控制器数据等功能,OPC UA 的应用环境十分复杂,可能发生在控制网络层、操作网络层、企业网络层甚至连接到互联网,具体使用环境如图5所示。

图5 国产PLC系统中的OPC UA

由图5可知OPC UA 客户端和服务器的交互既可能发生在公司内部网络的各个层面,也可能发生在互联网层面之中,安全问题会随着网络层级的提升而愈发复杂,在身份认证的环节更是有可能遭受到各种攻击。而优化后的安全模型利用PKI技术,既保障了服务器不被非法访问,也可以防止黑客干扰客户端的信息访问,在面对复杂的网络环境的情况下显现出了以下几个方面的优势。

(1)用户信息保密:安全套接层(Secure Sockets Layer,SSL)是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密,本文方案用户信息选择通过SSL协议进行传输,可以防止网络监听。

(2)防止重放攻击:每次认证时服务器会向客户端发送一个随机序列码,因此即使信息被黑客截获也无法重放。

(3)防止冒充:只有用户同时拿到USBKey并知道密码口令才能进行认证,而服务器也具有自己的私钥防止了中间人伪装。

(4)提供详细的审计记录:每次认证都会把双方的认证结果记录到审计数据库中,以备日后需要时查看。

在完整的PLC通信系统中并不是每个身份认证的环节都需要用到复杂的认证方式,因为算法和方式的复杂会增加系统消耗的时间,在PLC底层数据采集的过程中建立简单的安全模型即可,当更上一级的客户端(如HMI系统、SCADA系统中的客户端)访问数据时,尤其是在互联网的环境下,面临的风险也增加,所以此处选择更为完善的身份认证机制更为可靠,也为后续的数据交互提供保障[8]。

4 结论

本文结合国产化PLC系统的安全需求,从OPC UA 的安全模型出发,以身份认证技术为切入点,分析传统安全模型安全性能的不足之处,对身份认证环节进行了双向验证的优化设计,完善了安全模型的功能。同时,在应用环境中对其安全性进行分析,在实现双向认证功能的基础上能达到用户信息保密、防止重放攻击、防止冒充等安全目标,同时还可以提供详细的审计记录以备使用。

在国产PLC系统的不同网络层级可以采取不同的安全策略,以在保证整个系统安全的基础之上提高运行效率,体现出OPC UA系统的灵活性。但除了身份认证环节外,OPC UA客户端和服务器的交互过程中还有很多要解决的问题,安全模型还应该从不同角度进行优化,使其更加适用于国产化PLC系统的使用环境。这也是接下来要研究的重点内容。

猜你喜欢

客户端证书身份
WJCI 收录证书
CSCD收录证书
收录证书
收录证书
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
跟踪导练(三)(5)
妈妈的N种身份