OPC協(xié)議在自動控制網(wǎng)絡系統(tǒng)中的應用
文:劉秀花 長春橡膠輪胎有限公司2018年第六期
導語:
摘要:OPC(OLEforProcessControl,用于過程控制的對象鏈接與嵌入)是一個工業(yè)標準,它是許多世界領先的自動化軟、硬件公司與微軟公司合作的結晶。它由一系列用于過程控制和制造業(yè)自動化應用領域的標準接口、屬性以及方法組成。對于生產(chǎn)現(xiàn)場有OPC協(xié)議的企業(yè)來講,綜合自身實力選擇適合自己的安全防護產(chǎn)品顯得越來越重要。而對OPC協(xié)議的解析到指令級還不夠,后續(xù)還需要深度解析到OPC協(xié)議操作指令所操作的對象是否在安全范圍內(nèi)。
關鍵詞:自動控制網(wǎng)絡;OPC協(xié)議;安全性
中途分類號:TP9文獻標識碼:B
前言
OPC全稱是OLEforProcessControl,它的出現(xiàn)為基于Windows的應用程序和現(xiàn)場過程控制應用建立了橋梁。在過去,為了存取現(xiàn)場設備的數(shù)據(jù)信息,每一個應用軟件開發(fā)商都需要編寫專用的接口函數(shù)。由于現(xiàn)場設備的種類繁多,且產(chǎn)品的不斷升級,往往給用戶和軟件開發(fā)商帶來了巨大的工作負擔。通常這樣也不能滿足工作的實際需要,系統(tǒng)集成商和開發(fā)商急切需要一種具有高效性、可靠性、開放性、可互操作性的即插即用的設備驅動程序。在這種情況下,OPC標準應運而生。OPC標準以微軟公司的OLE技術為基礎,它的制定是通過提供一套標準的OLE/COM接口完成的,在OPC技術中使用的是OLE2技術,OLE標準允許多臺微機之間交換文檔、圖形等對象。
一些與微軟公司合作的自動化硬件和軟件供應商聯(lián)合制定了一套稱為OPC規(guī)范的OLE/COM接口協(xié)議,以此來提高過程控制工業(yè)中的自動化/控制應用程序,現(xiàn)場系統(tǒng)/設備以及辦公室應用程序之間的互操作性。可以說OPC是工業(yè)監(jiān)控軟件的現(xiàn)場總線,其基本思想是:每個硬件供應商為其設備開發(fā)一個通用的數(shù)據(jù)接口(即OPCServer),供其它系統(tǒng)讀寫信息,客戶應用軟件也可以通過OPC規(guī)范的接口來讀寫硬件設備的信息(作為OPCClient)。由于硬件供應商通常將硬件驅動程序封裝成OPCServer單獨出售,這樣作為OPC數(shù)據(jù)客戶端的上層應用,可以不包含任何通訊接口程序,不必關心底層硬件內(nèi)部的具體細節(jié),只需遵循OPC數(shù)據(jù)接口協(xié)議,就能夠從不同的硬件供應商提供的OPC數(shù)據(jù)服務器中取得數(shù)據(jù)。
目前OPC協(xié)議有兩個大類,一種是基于微軟COM/DCOM技術的“Classic”,另一種是基于Webservice的OPCUA。前者在DCOM協(xié)議之上,誕生較早,已廣泛應用在各種工業(yè)控制系統(tǒng)現(xiàn)場,成為工業(yè)自動化領域的事實標準。后者與前者比出生較晚,但在設計時考慮了安全因素,有了加密機制,不過目前應用范圍較小。本文主要討論的是前者在工控系統(tǒng)中的防護。
微軟的DCOM協(xié)議是在網(wǎng)絡安全問題被廣泛認識之前設計的,而基于DCOM協(xié)議的OPCClassic基本沒有增加任何安全相關的特性,幾乎所有著名的工業(yè)自動化軟件(包括HMI軟件、先進控制與優(yōu)化軟件、監(jiān)控平臺軟件、綜合集成軟件等)都是基于windows平臺開發(fā),都采用或部分采用了OPC技術,所以對使用OPC協(xié)議進行通信的工控系統(tǒng)進行防護也變得復雜和困難。
1 服務器動態(tài)端口
OPC服務器是根據(jù)各個供應廠商的硬件所開發(fā)的,使之可以消除各個供應廠商硬件和系統(tǒng)的差異,從而實現(xiàn)不依存于硬件的系統(tǒng)構成。同時利用一種叫Variant的數(shù)據(jù)類型,可以不依存于硬件中固有的數(shù)據(jù)類型,按照應用程序的要求提供數(shù)據(jù)格式。
OPC可以稱為“軟件總線”,應用程序只知道如何讀取OPC數(shù)據(jù)源,從而可以更加容易、通用、簡單。設備驅動端(OPCServer)只知道如何將現(xiàn)場數(shù)據(jù)轉換為OPC統(tǒng)一格式的數(shù)據(jù)。
高速的數(shù)據(jù)傳輸性能。
基于分布式COM的安全性管理機制。開發(fā)成本的降低。系統(tǒng)界限明確,能降低故障診斷和維護費用與大多數(shù)應用層協(xié)議不同,OPC的基礎協(xié)議DCOM協(xié)議使用動態(tài)端口機制,在真正建立數(shù)據(jù)連接之前通訊雙方還需要協(xié)商需要使用的端口。
OPC客戶端使用5568作為源端口首先向OPC服務器的135端口發(fā)起連接,連接成功后再經(jīng)過OPC服務器分配新端口1118,并通過接口ISystemActivator的方法RemoteCreateInstance的應答報文返回給客戶端,之后客戶端使用5569作為源端口向服務器的1118端口發(fā)起新的連接用來后面的真正數(shù)據(jù)的傳輸。
面臨的安全威脅
基于OPC協(xié)議的工控網(wǎng)絡系統(tǒng)面臨各種各樣的威脅。在“兩網(wǎng)”融合的大背景下,工業(yè)控制系統(tǒng)的隔離性被打破,面臨來自網(wǎng)絡的威脅空前加劇。無用端口的開放、工業(yè)軟件依賴的操作系統(tǒng)本身存在的安全漏洞、工業(yè)協(xié)議本身安全性的缺失等等都將給工業(yè)控制網(wǎng)絡帶來巨大的安全隱患。在真正接入到企業(yè)管理網(wǎng)、互聯(lián)網(wǎng)之前,基于OPC協(xié)議的工業(yè)控制系統(tǒng)必須加入相應的安全設備進行防護,才能提高自身網(wǎng)絡的安全。由于OPC協(xié)議不同與傳統(tǒng)的IT應用層協(xié)議,對OPC協(xié)議的解析深度決定了安全產(chǎn)品在工業(yè)控制系統(tǒng)安全防護中的真正作用。
2 安全防護方案比較
2.1傳統(tǒng)IT系統(tǒng)防火墻
如果在基于OPC協(xié)議的工業(yè)控制系統(tǒng)中安裝傳統(tǒng)IT系統(tǒng)防火墻(以下簡稱:傳統(tǒng)防火墻)進行防護,由于傳統(tǒng)防火墻不支持OPC協(xié)議的任何解析,為了能夠保證OPC業(yè)務的正常使用,不得不開放OPC服務器的所有可開放端口,而OPC服務器可以分配的端口號范圍很廣-如果OPC服務器安裝在WindowsServer2008,超過16000個端口號都可能被使用,早期的Windows版本則超過了48000個端口號。
傳統(tǒng)防火墻部署示意圖
上圖中傳統(tǒng)防火墻安裝在企業(yè)管理網(wǎng)和生產(chǎn)控制網(wǎng)的邊界進行防護,由于OPC服務器可能使用任何可使用的端口來進行真正的數(shù)據(jù)連接,而具體使用的端口號在響應客戶端請求的應答報文中。傳統(tǒng)防火墻無法識別出OPC服務器具體使用的端口號,為確保OPC客戶端可以正常連接OPC服務器,防火墻需要配置全部端口可訪問,這樣的傳統(tǒng)防火墻形同虛設,生產(chǎn)控制網(wǎng)的門口大開,幾乎安全暴露在攻擊者面前。
2.2端口防護工業(yè)防火墻
區(qū)別與傳統(tǒng)防火墻,近年來發(fā)展起來的專門用于防護工業(yè)控制現(xiàn)場的工業(yè)級防火墻基本支持了OPC的深度解析,但依據(jù)解析深度的不同,在OPC協(xié)議為基礎的網(wǎng)絡中,工業(yè)防火墻的防護能力也有所不同。
對OPC進行簡單解析的工業(yè)防火墻可以跟蹤OPC連接建立的動態(tài)端口,最小化的開放工業(yè)控制網(wǎng)絡的端口。如下圖:
端口防護級工業(yè)防火墻部署示意圖
端口防護級工業(yè)防火墻同樣部署在企業(yè)生產(chǎn)網(wǎng)和生產(chǎn)控制網(wǎng)的邊界,此時配置策略只需要配置開放OPC服務器的135端口,當OPC客戶端與服務器建立連接時,端口防護級防火墻跟蹤并解析OPC服務器與OPC客戶端協(xié)商出來的動態(tài)端口,然后自動將動態(tài)端口加入到防火墻的開放端口中,從而最小化開放生產(chǎn)控制網(wǎng)的端口,與傳統(tǒng)防火墻相比,防護能力有了進一步提升。
2.3指令防護工業(yè)防火墻
端口防護工業(yè)防火墻相比傳統(tǒng)防火墻雖然提升了防護能力,但攻擊者仍然可以通過建立的數(shù)據(jù)通道發(fā)送惡意的OPC操作指令,所以僅僅做到動態(tài)端口跟蹤還無法保證基于OPC協(xié)議的工業(yè)控制系統(tǒng)的安全。所以對OPC協(xié)議的進一步解析,催生了指令級防護工業(yè)防火墻,這也是目前市面上主流的工業(yè)防火墻。OPC協(xié)議的深度解析要求也加入到了工業(yè)防火墻國家標準的草稿中(此標準尚未正式發(fā)布)。部署在企業(yè)管理網(wǎng)和生產(chǎn)控制網(wǎng)邊界處的指令級工業(yè)防火墻,深度解析OPC協(xié)議到指令級別,不僅可以跟蹤OPC服務器和OPC客戶端之間協(xié)商的動態(tài)端口,最小化開放生產(chǎn)控制網(wǎng)的端口,還對OPC客戶端與OPC服務器之間傳輸?shù)闹噶钫埱筮M行實時檢測,對于不符合安全要求的操作指令進行攔截和報警,極大提升了基于OPC協(xié)議的工業(yè)控制系統(tǒng)的網(wǎng)絡安全。
除了做到指令防護外,還有更人性化一點的工業(yè)防火墻內(nèi)置只讀模板,滿足使用OPC協(xié)議的大部分業(yè)務場景,因為使用OPC協(xié)議的工業(yè)控制現(xiàn)場一般只是用來采集數(shù)據(jù),使用只讀模板來防護完全滿足現(xiàn)場安全要求。工業(yè)防火墻內(nèi)置的只讀模板一鍵部署,安全、方便,降低管理員維護成本,有效保障工業(yè)控制系統(tǒng)數(shù)據(jù)不被惡意篡改。
3 OPC數(shù)據(jù)采集方案比對
OPC服務器通常支持兩種類型的訪問接口,它們分別為不同的編程語言環(huán)境提供訪問機制。這兩種接口是:自動化接口(Automationinterface);自定義接口(Custominterface)。自動化接口通常是為基于腳本編程語言而定義的標準接口,可以使用VisualBasic、Delphi、PowerBuilder等編程語言開發(fā)OPC服務器的客戶應用。而自定義接口是專門為C++等高級編程語言而制定的標準接口。目前OPC數(shù)據(jù)采集方案主要分為兩大類:驅動程序法(Drive)和動態(tài)數(shù)據(jù)交換法(DDE)
3.1驅動程序法(Drive)
驅動程序法(Drive)是針對不同的設備,通過編寫定制一對一的的驅動程序和接口程序的方法來進行數(shù)據(jù)采集。
1、盡管可以編寫定制的驅動程序和接口程序,但因為多種不同類型的控制設備和軟件包需要通信,使得程序的種類迅速的增長。不同設備供應商的驅動程序之間的不一致、硬件性能不能得到廣泛支持、驅動程序不能適應升級后的硬件以及發(fā)生的存取沖突(兩個應用程序因為使用相互獨立的驅動程序,因而不能同時訪問同一設備)。
2、對于開發(fā)監(jiān)控程序軟件的技術人員來說,有20~30%的時間是用于編寫通信驅動程序。應用軟件的提供者花費太多的資金開發(fā)和維護專用接口,這不僅增加了用戶的負擔,而且在實際上并不能解決不同系統(tǒng)的互操作性,在某種意義上,用戶被他們的軟件提供者所控制。
3.2動態(tài)數(shù)據(jù)交換法(DDE)
DDE即動態(tài)數(shù)據(jù)交換(DynamicDataExchange),是OLE技術的前身,是在微軟的Win32應用程序接口(API)上所開發(fā)的應用程序之間動態(tài)地移動數(shù)據(jù)的一種方法。DDE協(xié)議在應用程序間傳送信息,使得應用程序共享數(shù)據(jù)和采用共享的內(nèi)存交換數(shù)據(jù)。
動態(tài)數(shù)據(jù)交換法(DDE)的缺點
硬件制造商盡管認識到需要開發(fā)軟件程序以連接他們的硬件,但受限制于他們開發(fā)通信驅動程序的能力,因而程序開發(fā)的選擇范圍只能局限在DDE和一個專用的DDE導出表之間。選擇任何一個DDE進行程序開發(fā),都有可能要么限制用戶對軟件的選擇,要么妨礙用戶對硬件的接受。且由于DDE是基于Windows的消息(Message)傳遞而建立的技術,所以DDE技術存在以下的問題:(1)數(shù)據(jù)的傳送速度較慢。(2)沒有安全性的管理機制。(3)開發(fā)難度大。(4)功能缺乏柔韌性。(5)可靠性也難以令人滿意。
4 結論
今天的工業(yè)數(shù)據(jù)通訊,主要是按照自動化系統(tǒng)金字塔來組織的:在塔頂?shù)挠嬎銠C層,使用標準的IT協(xié)議(互聯(lián)網(wǎng)協(xié)議)。對于機器間和過程通訊(分布式控制器層)而言,相較傳統(tǒng)的基于以太網(wǎng)的M2M現(xiàn)場總線系統(tǒng)(例如:PROFINET、EtherNet/IP、EtherCAT、Modbus/TCP、CC-LinkIE、POWERLINK、SERCOSIII),而OPCUA(IEC625412)的重要性正在迅速提高。對于生產(chǎn)現(xiàn)場有OPC協(xié)議的企業(yè)來講,綜合自身實力選擇適合自己的安全防護產(chǎn)品顯得越來越重要。而對OPC協(xié)議的解析到指令級還不夠,后續(xù)還需要深度解析到OPC協(xié)議操作指令所操作的對象是否在安全范圍內(nèi),對操作對象的值進行安全檢測,確保OPC協(xié)議發(fā)送的每一個字節(jié)都是可識別、可控制、安全無害的。
中傳動網(wǎng)版權與免責聲明:
凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(wǎng)(www.wangxinlc.cn)獨家所有。如需轉載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。
本網(wǎng)轉載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
如涉及作品內(nèi)容、版權等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關權利。

關注伺服與運動控制公眾號獲取更多資訊

關注直驅與傳動公眾號獲取更多資訊

關注中國傳動網(wǎng)公眾號獲取更多資訊
- 運動控制
- 伺服系統(tǒng)
- 機器視覺
- 機械傳動
- 編碼器
- 直驅系統(tǒng)
- 工業(yè)電源
- 電力電子
- 工業(yè)互聯(lián)
- 高壓變頻器
- 中低壓變頻器
- 傳感器
- 人機界面
- PLC
- 電氣聯(lián)接
- 工業(yè)機器人
- 低壓電器
- 機柜