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

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

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

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