作者:张毅
工业化和信息化的发展,以及“两化融合”的趋势,促使工业企业中的IT系统与工业自动化系统不断融合,特别是制造执行系统( MES)使生产控制系统与过程控制系统不断融合。因此,传统IT系统面临的威胁,不断地延伸到工业控制系统中。来自互联网或内网的安全威胁,无论影响到管理网还是生产网,都会对工业控制系统造成实质性影响。在这种背景下,基于密码的信息安全技术将发挥重要作用,这类密码技术通常用于银行系统、财务结算及办公自动化等数据网络业务环境中。
1 工业控制系统安全威胁现状
传统工业自动控制系统一般与互联网络隔离,但现代远程控制系统越来越多地需要与互联网连接,固有的生产控制网络与互联网络的边界已经被打破,工业控制系统遭受网络攻击的问题日趋严峻。2013年度ICS - CERT公开报告处理的安全事件就达256件,近4年来ICS - CERT公开报告处理的安全事件已达632件。2014年6月出现了专门针对工业控制系统的新型攻击病毒——“Havex”,这些攻击事件多分布在能源、关键制造业、市政、交通等涉及国家安全和国计民生的关键基础行业,工业控制系统的信息安全研究已经十分迫切。因此,在重要的工业控制系统如工业监视控制与数据采集系统(SCADA系统)、集散控制系统(DCS系统)、可编程逻辑控制器(PLC)中使用加密技术的需求日趋明显。一般认为,在此类工业实时控制系统中部署加密技术面临很多困难,原因在于加密过程需要一定的计算资源,工业控制系统设备中的计算资源在有些情况下不可能重新分配,或者消耗额外的计算资源将导致自动化控制系统不可接受的延迟。但是,最近的一些研究结果表明,加密技术可以成功用于计算能力较低、通信交互能力较差、资源受限的环境中,如传感器网络。
本论文主要讨论在工业远程自动化控制环境中使用加密技术的问题,提出两种简单高效的、基于加密算法的保护控制中心和远程受控设备之间通信信道的应用模型。这两种方法不需要耗费太多计算资源和存储空间。
2工业控制系统信息安全目标
不同的网络信息系统有不同的信息安全目标,一般情况下存在两种截然不同的信息安全目标:通用安全目标和特殊安全目标。
通用安全目标是不同领域的多数信息系统都需要达到的基本要求,通用安全目标如下。
①机密性——确保信息只能被授权实体访问。机密性是加密技术的最初目标,目前信息安全界已经设计出一系列加密算法支撑实现机密性。
②完整性——确保信息在传输过程中未被篡改。完整性机制意味着接收端可以及时地发现入侵者非法更改传输信息的行为。
③鉴别性——分为实体鉴别和数据鉴别两类。实体鉴别或识别指的是参与通信会话的实体可以证明其身份的真实性和合法性。数据鉴别是指数据接收方可以验证数据或信息是由正确的发送方发送的,事实上数据鉴别性也可以提供完整性保护。
④抗抵赖性——防止实体否认其曾经发生过的行为。当会话过程中的一方否认曾经发送过特殊信息给另一方,双方因此发生冲突时,接收方可以向任何中立的第三方证明此特殊信息确实是由刚才否认发送行为的发送方发送的。
特殊安全目标仅针对一些特殊的应用系统,下列两类信息安全目标只会出现在工业自动控制系统中,原因是工业自动控制系统通常是实时控制系统。
①可用性——当用户提出需求时,系统可以及时提供相应服务。在工业自动控制过程中,可用性表现为自动控制系统中的控制功能运行正常,并正确完成设计功能。
②数据更新——确保接收到的信息是持续更新的。目前有两种方法实现数据持续更新能力:以周期方式发布信息数据;以一定顺序接收信息数据包,例如工业控制中心站点按照固定不变的顺序发送控制指令。
3 工业控制加密算法模型
提出并分析两种加密算法模型:对称加密算法模型和单向链密码算法模型在具体的工业控制系统环境中的应用。
3.1应用环境
工业远程自动化控制环境主要指一个控制中心站点向多个远程受控终端系统发送控制指令(可以是过程控制、流程控制、逻辑控制、运动控制等)的情形。定义控制中心站点为C,远程受控终端系统为R,(i=l,n)。远程受控终端系统可以是可编程逻辑控制器( PLC),人机界面(HMI),图形显示终端,智能仪器/仪表,以及任何可以接受、解释和执行控制指令的终端设备。
根据第2节讨论的信息安全目标,工业控制系统中的远程受控终端系统Ri.需要确保下列几方面的信息安全。
①控制中心站点和目标受控终端系统之间传输的控制指令的机密性。
②控制指令本身是可以鉴别的,即控制中心站点确保产生针对特定的受控终端系统的控制指令,该机制也可以确保控制指令的完整性。
③控制指令的生命周期的合规性,指的是入侵者不能随意改变控制指令接收的顺序。此处讨论的网络安全问题主要来源于恶意攻击者非法改变控制指令的正确接收顺序,进而引起对工业生产运转的破坏。值得注意的是,在该类工业控制环境中,有可能发生另外一些实时通信中的非正常运行问题,但不在本论文的讨论范围内。
控制中心站点C必须确保其所发的指令能被正确的远程受控终端系统Ri正确接收。实现这个安全目标相对容易些,因为Ri可以向C发送一条鉴别确认信息。这种工业控制系统的通信环境如图l所示,控制中心站点和远程受控终端系统之间的下行通信信道是可信和机密的,但远程受控终端系统和控制中心站点间的上行通信信道(如图1中虚线所示)只能确保可鉴别性,因为远程受控终端系统在接收到控制指令后可以向控制中心站点发送一条鉴别确认信息。
3.2模型涉及密码概念定义
理论上有很多种密码技术可以用来实现上述信息安全目标,但是大多数成熟的密码技术都基于非对称加密算法,或称公钥加密一私钥解密算法,并在加密和解密阶段使用不同的密钥。这类密码算法比一般的对称加密算法需要更多的计算资源和更多的存储空间,直接应用于计算资源、存储空间或通信能力受限的工业控制系统环境将会遇到很多问题。与此相反的情况是,对称加密算法使用相同的密钥进行加密和解密,不需要太多的计算资源和存储空间,但它的安全性依赖于共享密钥的强度。在诸如传感器网络等资源受限的自动化环境中使用对称加密技术,更容易实现信息安全目标。
此外,为实现低计算资源和存储空间,模型中讨论的技术主要基于对称算法模型。讨论利用模型实现上述章节提到的信息安全目标时,将会涉及下列对称加密算法中的基本概念。
①使用密钥k对消息x进行对称加密。高级加密标准( advanced encryption standard,AES)算法是目前众多的对称加密算法中较为常用的算法。
②H(x)对消息x进行哈希运算。哈希运算是一种单向运算过程,该运算过程可以对任意长度的消息报文进行运算,生成一个固定长度的数值,但对该数值进行逆运算却不能恢复原始消息。哈希运算主要用于确保数据完整性,最常用的哈希运算是安全哈希算法
(secure hash algorithm,SHA)。
③MACR(X)使用密钥k对消息x进行鉴别运算,运算结果形成基本的对称加密算法安全因子,该安全因子可以提供消息的身份鉴别能力。有很多方法可以对消息进行MAC运算,最简单的方法是对消息进行哈希运算时伴随使用一个密钥,但是为增加安全性,需要使用更复杂的算法并迭代哈希运算过程。
3.3对称加密算法模型
对称加密算法模型是应用对称加密算法为工业控制过程中的实体提供机密性和可鉴别性保护,该部分将讨论在第3.1节描述的工业远程自动化控制环境中使用上述讨论的密码学基本概念确保工业控制过程的机密性和鉴别性。假设控制中心站点C与每个远程受控终端系统Ri(i=1,n)共享一个秘密密钥KC,Ri(i=1,n)。每个系统将需要两个密钥,一个密钥KEC,Ri用于加密,另一个密钥KMC,Ri用于计算消息鉴别码。KEC,Ri和Kcm,Ri都可以从主密钥K。,Ri计算得出,但计算过程必须不可逆;否则,当攻击者破解和中的任何一个时,就有可能恢复出主密钥Kc,Ri。而如果计算过程本身是不可逆的.当攻击者破解KEC,Ri和KMC,Ri中的任何一个时,另一个是安全的。例如,可以使用随机数ro、ri,通过运算函数从主密钥分别计算出加密密钥:
典型的运算函数可以是MAC运算。
另一方面,该模型要求控制中心站点C为每个远程受控终端系统Ri维系一个计数器θC,Ri,每个远程受控终端系统Ri与控制中心站点完成信息交换后,θC,Ri累加1。每个远程受控终端系统Ri也独立地保持一个计算器,每次正确接收控制指令后,计数器自动
累加。
为保证向远程受控终端系统Ri发送控制指令的机密性和可鉴别性,控制中心站点C应用程序需要完成下列过程。
远程受控终端系统接收到该消息后需要进行如下操作。
①基于数值i验证该消息的正确性,如果发生校验错误则忽略该消息,并等待传输下一组消息。
②更新计数器数值,以确保新接收消息报文的计数器数值大于上一次接收到的消息报文的计数器数值,否则将丢弃该消息报文,并等待传输新的消息报文。
③对已加密的消息报文进行MAC运算,以此确保消息报文和计数器的可鉴别性。如果鉴别失败,则丢弃该消息报文并等待消息重传。
④使用新接收的数值θc,Ri更新计数器。
⑤解密接收的消息报文并进行使用。
⑥更新计数器值θc,Ri,同时用计数器值和更新过的计数器值进行MAC运算。
利用MAC运算的结果应答控制中心站点。
控制中心站点端也将等待应答报文,并通过检查计数器数值和进行报文MAC计算的方法,检验该应答报文的正确性。如果检验结果正确,则表明已正常接收控制指令,控制中心站点的计数器进行同步更新;反之表示控制指令未被正常接收需要进行重传。对称加密算法模型的特点是控制中心与远程受控终端系统共享的因素较少,仅几个少量字节的报文交互就可以完成整个加密过程,占用的计算资源和存储空间不大且可控。
3.4单向链密码算法模型
单向链密码算法模型是指在工业控制系统中应用单向链密码技术,即使用单向陷门函数。
3. 4.1 工业控制单向链的构建
本节讨论工业控制系统网络实体的鉴别或识别问题,通常情况下基于可以证明一个实体身份的某项秘密特征来实现鉴别过程。基于密码的鉴别是最普遍的鉴别技术,但缺点是仅能提供较弱的安全防护等级,因为密码有可能会在其存储的系统中被窃取,或在并不安全的会话通信信道中泄漏。但是在那些计算时间特别受限的重要工业控制系统中,基于密码的鉴别技术优势很突出,而在一些不能占用太多计算资源的场合可以使用一次性密码。
一次性密码技术指的是每次鉴别认证过程都使用不同的密码,其最大的优点是及时放弃已经使用过一次的密码,并保证不会被第二次使用,确保用户不会遭受重放攻击。
Lamport等人在1981年开展的一次性密码研究计划中,曾经提出仅将秘密信息存储在会话双方中的一方,从会话双方传输密码的过程中截获密码将不会导致系统遭受重放攻击,因为在该系统中同一个密码不会被使用两次。Lamport的鉴别认证过程要求需要进行鉴别的实体计算序列{x,F(x),Fl(x),F2(x)….,FNA(x)},其中x为实体选择的随机数并确保是秘密不公开的,NA是需要进行鉴别的次数,F是已知的单向函数也称为单向链,且F具有交换性,或F本身是单向陷门函数(本论文中讨论的单向函数F均指F具有交换性,或F是单向陷门函数)。
单向链在工业控制系统中的具体应用实例是:利用F的交换性或单向陷门函数特性,实体A将FN(x)运算结果作为初始运算因子,当其他实体B需要与A进行第一次(i=1)鉴别过程时,B将把FNA-i+1(x)运算的结果作为一次性密码,该一次性密码的真实性可以通过F[FNA-i+1(x)]=FNA-i+1(x)运算进行确认。当运算结果证明这种可逆性和真实性后,FN(x)将被FN-I(x)替换。更一般的情形是,在第i次(i=1,n)鉴别过程中,任意一个实体C可以向另一个实体D发送FN1(石)运算结果,实体D可以通过简单的运算F[ FNA-i+1(x)]验证其真实性,并校验F[FMl(x)]=FNA-i+1(x),此时FNA-i+1(x)是初始一次性密码,如果校验运算的结果正确,FNA-i+1(x)则可以被FNA-I(x)替换。
工业远程受控终端系统(如PLC等)的运算速度和资源往往非常受限,构建上述单向链一般可以有两种较为实用有效的解决方案,但各有优缺点,需要根据实际情况进行选择。
①基于对称加密算法构建单向链。hash运算是一种典型的对称加密算法,其运算速度很快。但在国外一些密码研究计划中曾报道过该方案存在的明显缺陷。单向链的长度固定,如果将所有的原始数据用于单向链进行hash运算,则这些数据将变得不可再利用,因为单向链本身是不可逆的。如果将单向链的存储空间设置得过长,则单向链运算将需要更多的计算资源,如果设置得过短,则很快就会占满存储空间‘刚。
②基于非对称算法构建单向链。使用公开密钥作为初始加密密钥,以及支持多个整型变量的加密算法作为单向链计算方法。优点在于单向链的长度可以是任意的并且单项链不存在存储空间被占满的问题。但是,公开密钥算法带来更灵活的安全性的同时却需要消耗更多的计算资源‘IO]。
单向链密码算法模型最大的特点在于一次性密码的使用不仅确保了信息安全能力,而且降低了工程实现上的难度,使用更灵活。
3.4.2工控单向链的应用分析
在如图1所示的点对多点或网络化的工业控制系绕通信网络环境中,为向所有的远程受控终端系统证明控制中心站点是在线运行的、并可信的,控制中心站点需要向每个远程受控终端系统发送一条身份鉴别信息,也就是控制中心站点C需要同时向所有的远程受控终端系统Ri(i=1,n)鉴别身份。因此,控制中心站点需要为每个远程受控终端系统计算出一个MA值和鉴别报文,共计n个MAC值和n条鉴别报文。而在控制中心站点和远程受控终端系统中使用单向链,可以更高效地实现这种鉴别,并且仅需要一条鉴别报文。
于是在第3.3节讨论的鉴别应用中使用单向链的过程可以是:在控制中心站点C和每个远程受控终端系统80wc之间重新维持一个新的基于单向链的计数器θowc,而不是简单的累加计数器θc,Ri。控制中心站点生成鉴别计算函数实体序列{X,F(x),F1(X),F2(x)…,Fj(x)…,Fm(x)},其中n的值足够大,且x是随机的。在最初阶段,C与R。共享OoWc=P(x),鉴别计算实体序列中的任一个函数实体都可以作为基于单向链的计数器,并且是鉴别计数器。
在工业生产控制现场,为确保控制中心站点向每个远程受控终端系统发送控制指令的机密性和可鉴别性,控制中心站点需要进行下列运算。
①将控制指令表示为M。
②将控制指令加密为EKEC,Ri
③使用单向链函数计算出新的数值。
④组合使用EKf,R/(M)和Fj(x)进行MAC计算,得到消息M的鉴别码。
从控制中心站点发往远程受控终端系统的消息报文结构如下所示。
c→Ri{i,Fi(x),Ekcf(M),MACm,Ri(EKfc(M))||F(x)}(6)
该消息报文可以向所有远程受控终端系统发送,但是只有当远程受控终端系统的MAC计算结果与消息报文中的MAC值一致时,Ri才能解密消息报文并还原出正确的控制指令。
每个远程受控终端系统接收到该消息报文后需要进行如下操作。
①进行F[F(x)]运算,如果结果是预先共享的,则表明控制中心站点一直在线并可信。如果结果是其他值,则该消息报文将被丢弃,远程受控终端系统等待接收下一个消息报文。
②使用接收到消息报文与预先共享的Oowc进行MAC运算。当运算计算结果与接收到的值一致时,完成消息的鉴别性计算;否则,丢弃该消息报文,等待接收下一个消息报文。
③解密该消息报文并还原控制指令。
④接收正确的控制指令报文并还原出控制指令的远程受控终端系统,需要向控制中心站点发送的应答报文为:
报文应答交互过程中可能发生的突出问题是:如果在网络传输过程中丢失一个应答消息报文,那么控制中心站点将无法进行单向运算F[F(x)],进而无法确认控制指令得到执行,于是将向网络中重复发送同一个控制指令,直到接收远程受控终端系统发送的应答报文为止,远程受控终端系统一侧也将重复接收到同一个控制指令,形成“循环”。
解决“循环”问题的办法是,当远程受控终端系统重复接收到控制指令报文时,进行函数迭代运算:
式中:k为丢失的应答报文数量。
将θowc值随应答报文一起发往控制中心站点,一旦控制中心站点接收到应答报文,控制中心站点将通过计算MAC值的方法完成远程受控终端系统身份鉴别。为确保控制中心站点的可用性,建议在发生“循环”问题时,控制中心站点在重复发送同一个控制指令的消息报文时,尽可能避免使用同一个OoWc值。
在工程化应用阶段,上述对称加密算法或单向链算法的软硬件实现载体,主要有三种形式:密码芯片、软件模块、独立的外设。其中,密码芯片和软件模块可以与原有的控制中心站点设备和远程受控终端系统融为一体,而独立的外设将以串接或并接的方式接入到原有工业控制通信网络环境中,因而应根据具体的使用环境和条件灵活选择。
4结束语
研究工业自动控制系统中的控制中心站点与远程受控终端系统之间的安全通信问题,在当前的网络安全形势下非常有意义。本论文提出两种基于密码的解决方案及应用模型,确保控制中心站点能向其控制网络中的每个远程受控终端系统发送机密的、可鉴别的控制指令,并保证工业控制会话双方的可用性。这两种应用模型能够较好地适应工业控制系统中计算和存储资源受限条件,以及克服信息安全技术对工业控制系统实时性的影响问题,具有一定的应用价值。
5摘要:
在工业控制系统面临的网络攻击活动日益频繁的形势下,将基于密码的信息安全技术用于工业远程实时控制系统中是一项意义重大的技术创新。先讨论目前工业控制系统面临的安全威胁,指出了工业控制系统的信息安全目标,然后分析如何应用基于密码的信息安全技术防护这些威胁。同时,提出两种在控制站和受控设备之间建立可靠、可信的控制通信信道的加密模型,其实际应用为密码技术在工业控制系统信息安全中的应用提供了参考。
下一篇: 提升工业嵌入式设备防范入侵水平的新方法