OPC協(xié)議在自動(dòng)控制網(wǎng)絡(luò)系統(tǒng)中的應(yīng)用

文:劉秀花 長(zhǎng)春橡膠輪胎有限公司2018年第六期

    摘要:OPC(OLEforProcessControl,用于過(guò)程控制的對(duì)象鏈接與嵌入)是一個(gè)工業(yè)標(biāo)準(zhǔn),它是許多世界領(lǐng)先的自動(dòng)化軟、硬件公司與微軟公司合作的結(jié)晶。它由一系列用于過(guò)程控制和制造業(yè)自動(dòng)化應(yīng)用領(lǐng)域的標(biāo)準(zhǔn)接口、屬性以及方法組成。對(duì)于生產(chǎn)現(xiàn)場(chǎng)有OPC協(xié)議的企業(yè)來(lái)講,綜合自身實(shí)力選擇適合自己的安全防護(hù)產(chǎn)品顯得越來(lái)越重要。而對(duì)OPC協(xié)議的解析到指令級(jí)還不夠,后續(xù)還需要深度解析到OPC協(xié)議操作指令所操作的對(duì)象是否在安全范圍內(nèi)。

    關(guān)鍵詞:自動(dòng)控制網(wǎng)絡(luò);OPC協(xié)議;安全性

中途分類(lèi)號(hào):TP9文獻(xiàn)標(biāo)識(shí)碼:B

前言

    OPC全稱是OLEforProcessControl,它的出現(xiàn)為基于Windows的應(yīng)用程序和現(xiàn)場(chǎng)過(guò)程控制應(yīng)用建立了橋梁。在過(guò)去,為了存取現(xiàn)場(chǎng)設(shè)備的數(shù)據(jù)信息,每一個(gè)應(yīng)用軟件開(kāi)發(fā)商都需要編寫(xiě)專(zhuān)用的接口函數(shù)。由于現(xiàn)場(chǎng)設(shè)備的種類(lèi)繁多,且產(chǎn)品的不斷升級(jí),往往給用戶和軟件開(kāi)發(fā)商帶來(lái)了巨大的工作負(fù)擔(dān)。通常這樣也不能滿足工作的實(shí)際需要,系統(tǒng)集成商和開(kāi)發(fā)商急切需要一種具有高效性、可靠性、開(kāi)放性、可互操作性的即插即用的設(shè)備驅(qū)動(dòng)程序。在這種情況下,OPC標(biāo)準(zhǔn)應(yīng)運(yùn)而生。OPC標(biāo)準(zhǔn)以微軟公司的OLE技術(shù)為基礎(chǔ),它的制定是通過(guò)提供一套標(biāo)準(zhǔn)的OLE/COM接口完成的,在OPC技術(shù)中使用的是OLE2技術(shù),OLE標(biāo)準(zhǔn)允許多臺(tái)微機(jī)之間交換文檔、圖形等對(duì)象。

    一些與微軟公司合作的自動(dòng)化硬件和軟件供應(yīng)商聯(lián)合制定了一套稱為OPC規(guī)范的OLE/COM接口協(xié)議,以此來(lái)提高過(guò)程控制工業(yè)中的自動(dòng)化/控制應(yīng)用程序,現(xiàn)場(chǎng)系統(tǒng)/設(shè)備以及辦公室應(yīng)用程序之間的互操作性??梢哉f(shuō)OPC是工業(yè)監(jiān)控軟件的現(xiàn)場(chǎng)總線,其基本思想是:每個(gè)硬件供應(yīng)商為其設(shè)備開(kāi)發(fā)一個(gè)通用的數(shù)據(jù)接口(即OPCServer),供其它系統(tǒng)讀寫(xiě)信息,客戶應(yīng)用軟件也可以通過(guò)OPC規(guī)范的接口來(lái)讀寫(xiě)硬件設(shè)備的信息(作為OPCClient)。由于硬件供應(yīng)商通常將硬件驅(qū)動(dòng)程序封裝成OPCServer單獨(dú)出售,這樣作為OPC數(shù)據(jù)客戶端的上層應(yīng)用,可以不包含任何通訊接口程序,不必關(guān)心底層硬件內(nèi)部的具體細(xì)節(jié),只需遵循OPC數(shù)據(jù)接口協(xié)議,就能夠從不同的硬件供應(yīng)商提供的OPC數(shù)據(jù)服務(wù)器中取得數(shù)據(jù)。

    目前OPC協(xié)議有兩個(gè)大類(lèi),一種是基于微軟COM/DCOM技術(shù)的“Classic”,另一種是基于Webservice的OPCUA。前者在DCOM協(xié)議之上,誕生較早,已廣泛應(yīng)用在各種工業(yè)控制系統(tǒng)現(xiàn)場(chǎng),成為工業(yè)自動(dòng)化領(lǐng)域的事實(shí)標(biāo)準(zhǔn)。后者與前者比出生較晚,但在設(shè)計(jì)時(shí)考慮了安全因素,有了加密機(jī)制,不過(guò)目前應(yīng)用范圍較小。本文主要討論的是前者在工控系統(tǒng)中的防護(hù)。

    微軟的DCOM協(xié)議是在網(wǎng)絡(luò)安全問(wèn)題被廣泛認(rèn)識(shí)之前設(shè)計(jì)的,而基于DCOM協(xié)議的OPCClassic基本沒(méi)有增加任何安全相關(guān)的特性,幾乎所有著名的工業(yè)自動(dòng)化軟件(包括HMI軟件、先進(jìn)控制與優(yōu)化軟件、監(jiān)控平臺(tái)軟件、綜合集成軟件等)都是基于windows平臺(tái)開(kāi)發(fā),都采用或部分采用了OPC技術(shù),所以對(duì)使用OPC協(xié)議進(jìn)行通信的工控系統(tǒng)進(jìn)行防護(hù)也變得復(fù)雜和困難。

1  服務(wù)器動(dòng)態(tài)端口

    OPC服務(wù)器是根據(jù)各個(gè)供應(yīng)廠商的硬件所開(kāi)發(fā)的,使之可以消除各個(gè)供應(yīng)廠商硬件和系統(tǒng)的差異,從而實(shí)現(xiàn)不依存于硬件的系統(tǒng)構(gòu)成。同時(shí)利用一種叫Variant的數(shù)據(jù)類(lèi)型,可以不依存于硬件中固有的數(shù)據(jù)類(lèi)型,按照應(yīng)用程序的要求提供數(shù)據(jù)格式。

    OPC可以稱為“軟件總線”,應(yīng)用程序只知道如何讀取OPC數(shù)據(jù)源,從而可以更加容易、通用、簡(jiǎn)單。設(shè)備驅(qū)動(dòng)端(OPCServer)只知道如何將現(xiàn)場(chǎng)數(shù)據(jù)轉(zhuǎn)換為OPC統(tǒng)一格式的數(shù)據(jù)。

高速的數(shù)據(jù)傳輸性能。

    基于分布式COM的安全性管理機(jī)制。開(kāi)發(fā)成本的降低。系統(tǒng)界限明確,能降低故障診斷和維護(hù)費(fèi)用與大多數(shù)應(yīng)用層協(xié)議不同,OPC的基礎(chǔ)協(xié)議DCOM協(xié)議使用動(dòng)態(tài)端口機(jī)制,在真正建立數(shù)據(jù)連接之前通訊雙方還需要協(xié)商需要使用的端口。

    OPC客戶端使用5568作為源端口首先向OPC服務(wù)器的135端口發(fā)起連接,連接成功后再經(jīng)過(guò)OPC服務(wù)器分配新端口1118,并通過(guò)接口ISystemActivator的方法RemoteCreateInstance的應(yīng)答報(bào)文返回給客戶端,之后客戶端使用5569作為源端口向服務(wù)器的1118端口發(fā)起新的連接用來(lái)后面的真正數(shù)據(jù)的傳輸。

面臨的安全威脅

    基于OPC協(xié)議的工控網(wǎng)絡(luò)系統(tǒng)面臨各種各樣的威脅。在“兩網(wǎng)”融合的大背景下,工業(yè)控制系統(tǒng)的隔離性被打破,面臨來(lái)自網(wǎng)絡(luò)的威脅空前加劇。無(wú)用端口的開(kāi)放、工業(yè)軟件依賴的操作系統(tǒng)本身存在的安全漏洞、工業(yè)協(xié)議本身安全性的缺失等等都將給工業(yè)控制網(wǎng)絡(luò)帶來(lái)巨大的安全隱患。在真正接入到企業(yè)管理網(wǎng)、互聯(lián)網(wǎng)之前,基于OPC協(xié)議的工業(yè)控制系統(tǒng)必須加入相應(yīng)的安全設(shè)備進(jìn)行防護(hù),才能提高自身網(wǎng)絡(luò)的安全。由于OPC協(xié)議不同與傳統(tǒng)的IT應(yīng)用層協(xié)議,對(duì)OPC協(xié)議的解析深度決定了安全產(chǎn)品在工業(yè)控制系統(tǒng)安全防護(hù)中的真正作用。

2  安全防護(hù)方案比較

2.1傳統(tǒng)IT系統(tǒng)防火墻

    如果在基于OPC協(xié)議的工業(yè)控制系統(tǒng)中安裝傳統(tǒng)IT系統(tǒng)防火墻(以下簡(jiǎn)稱:傳統(tǒng)防火墻)進(jìn)行防護(hù),由于傳統(tǒng)防火墻不支持OPC協(xié)議的任何解析,為了能夠保證OPC業(yè)務(wù)的正常使用,不得不開(kāi)放OPC服務(wù)器的所有可開(kāi)放端口,而OPC服務(wù)器可以分配的端口號(hào)范圍很廣-如果OPC服務(wù)器安裝在WindowsServer2008,超過(guò)16000個(gè)端口號(hào)都可能被使用,早期的Windows版本則超過(guò)了48000個(gè)端口號(hào)。

傳統(tǒng)防火墻部署示意圖

    上圖中傳統(tǒng)防火墻安裝在企業(yè)管理網(wǎng)和生產(chǎn)控制網(wǎng)的邊界進(jìn)行防護(hù),由于OPC服務(wù)器可能使用任何可使用的端口來(lái)進(jìn)行真正的數(shù)據(jù)連接,而具體使用的端口號(hào)在響應(yīng)客戶端請(qǐng)求的應(yīng)答報(bào)文中。傳統(tǒng)防火墻無(wú)法識(shí)別出OPC服務(wù)器具體使用的端口號(hào),為確保OPC客戶端可以正常連接OPC服務(wù)器,防火墻需要配置全部端口可訪問(wèn),這樣的傳統(tǒng)防火墻形同虛設(shè),生產(chǎn)控制網(wǎng)的門(mén)口大開(kāi),幾乎安全暴露在攻擊者面前。

2.2端口防護(hù)工業(yè)防火墻

    區(qū)別與傳統(tǒng)防火墻,近年來(lái)發(fā)展起來(lái)的專(zhuān)門(mén)用于防護(hù)工業(yè)控制現(xiàn)場(chǎng)的工業(yè)級(jí)防火墻基本支持了OPC的深度解析,但依據(jù)解析深度的不同,在OPC協(xié)議為基礎(chǔ)的網(wǎng)絡(luò)中,工業(yè)防火墻的防護(hù)能力也有所不同。

    對(duì)OPC進(jìn)行簡(jiǎn)單解析的工業(yè)防火墻可以跟蹤OPC連接建立的動(dòng)態(tài)端口,最小化的開(kāi)放工業(yè)控制網(wǎng)絡(luò)的端口。如下圖:

端口防護(hù)級(jí)工業(yè)防火墻部署示意圖

    端口防護(hù)級(jí)工業(yè)防火墻同樣部署在企業(yè)生產(chǎn)網(wǎng)和生產(chǎn)控制網(wǎng)的邊界,此時(shí)配置策略只需要配置開(kāi)放OPC服務(wù)器的135端口,當(dāng)OPC客戶端與服務(wù)器建立連接時(shí),端口防護(hù)級(jí)防火墻跟蹤并解析OPC服務(wù)器與OPC客戶端協(xié)商出來(lái)的動(dòng)態(tài)端口,然后自動(dòng)將動(dòng)態(tài)端口加入到防火墻的開(kāi)放端口中,從而最小化開(kāi)放生產(chǎn)控制網(wǎng)的端口,與傳統(tǒng)防火墻相比,防護(hù)能力有了進(jìn)一步提升。

2.3指令防護(hù)工業(yè)防火墻

    端口防護(hù)工業(yè)防火墻相比傳統(tǒng)防火墻雖然提升了防護(hù)能力,但攻擊者仍然可以通過(guò)建立的數(shù)據(jù)通道發(fā)送惡意的OPC操作指令,所以僅僅做到動(dòng)態(tài)端口跟蹤還無(wú)法保證基于OPC協(xié)議的工業(yè)控制系統(tǒng)的安全。所以對(duì)OPC協(xié)議的進(jìn)一步解析,催生了指令級(jí)防護(hù)工業(yè)防火墻,這也是目前市面上主流的工業(yè)防火墻。OPC協(xié)議的深度解析要求也加入到了工業(yè)防火墻國(guó)家標(biāo)準(zhǔn)的草稿中(此標(biāo)準(zhǔn)尚未正式發(fā)布)。部署在企業(yè)管理網(wǎng)和生產(chǎn)控制網(wǎng)邊界處的指令級(jí)工業(yè)防火墻,深度解析OPC協(xié)議到指令級(jí)別,不僅可以跟蹤OPC服務(wù)器和OPC客戶端之間協(xié)商的動(dòng)態(tài)端口,最小化開(kāi)放生產(chǎn)控制網(wǎng)的端口,還對(duì)OPC客戶端與OPC服務(wù)器之間傳輸?shù)闹噶钫?qǐng)求進(jìn)行實(shí)時(shí)檢測(cè),對(duì)于不符合安全要求的操作指令進(jìn)行攔截和報(bào)警,極大提升了基于OPC協(xié)議的工業(yè)控制系統(tǒng)的網(wǎng)絡(luò)安全。

    除了做到指令防護(hù)外,還有更人性化一點(diǎn)的工業(yè)防火墻內(nèi)置只讀模板,滿足使用OPC協(xié)議的大部分業(yè)務(wù)場(chǎng)景,因?yàn)槭褂肙PC協(xié)議的工業(yè)控制現(xiàn)場(chǎng)一般只是用來(lái)采集數(shù)據(jù),使用只讀模板來(lái)防護(hù)完全滿足現(xiàn)場(chǎng)安全要求。工業(yè)防火墻內(nèi)置的只讀模板一鍵部署,安全、方便,降低管理員維護(hù)成本,有效保障工業(yè)控制系統(tǒng)數(shù)據(jù)不被惡意篡改。

3  OPC數(shù)據(jù)采集方案比對(duì)

    OPC服務(wù)器通常支持兩種類(lèi)型的訪問(wèn)接口,它們分別為不同的編程語(yǔ)言環(huán)境提供訪問(wèn)機(jī)制。這兩種接口是:自動(dòng)化接口(Automationinterface);自定義接口(Custominterface)。自動(dòng)化接口通常是為基于腳本編程語(yǔ)言而定義的標(biāo)準(zhǔn)接口,可以使用VisualBasic、Delphi、PowerBuilder等編程語(yǔ)言開(kāi)發(fā)OPC服務(wù)器的客戶應(yīng)用。而自定義接口是專(zhuān)門(mén)為C++等高級(jí)編程語(yǔ)言而制定的標(biāo)準(zhǔn)接口。目前OPC數(shù)據(jù)采集方案主要分為兩大類(lèi):驅(qū)動(dòng)程序法(Drive)和動(dòng)態(tài)數(shù)據(jù)交換法(DDE)

3.1驅(qū)動(dòng)程序法(Drive)

    驅(qū)動(dòng)程序法(Drive)是針對(duì)不同的設(shè)備,通過(guò)編寫(xiě)定制一對(duì)一的的驅(qū)動(dòng)程序和接口程序的方法來(lái)進(jìn)行數(shù)據(jù)采集。

    1、盡管可以編寫(xiě)定制的驅(qū)動(dòng)程序和接口程序,但因?yàn)槎喾N不同類(lèi)型的控制設(shè)備和軟件包需要通信,使得程序的種類(lèi)迅速的增長(zhǎng)。不同設(shè)備供應(yīng)商的驅(qū)動(dòng)程序之間的不一致、硬件性能不能得到廣泛支持、驅(qū)動(dòng)程序不能適應(yīng)升級(jí)后的硬件以及發(fā)生的存取沖突(兩個(gè)應(yīng)用程序因?yàn)槭褂孟嗷オ?dú)立的驅(qū)動(dòng)程序,因而不能同時(shí)訪問(wèn)同一設(shè)備)。

     2、對(duì)于開(kāi)發(fā)監(jiān)控程序軟件的技術(shù)人員來(lái)說(shuō),有20~30%的時(shí)間是用于編寫(xiě)通信驅(qū)動(dòng)程序。應(yīng)用軟件的提供者花費(fèi)太多的資金開(kāi)發(fā)和維護(hù)專(zhuān)用接口,這不僅增加了用戶的負(fù)擔(dān),而且在實(shí)際上并不能解決不同系統(tǒng)的互操作性,在某種意義上,用戶被他們的軟件提供者所控制。

3.2動(dòng)態(tài)數(shù)據(jù)交換法(DDE)

    DDE即動(dòng)態(tài)數(shù)據(jù)交換(DynamicDataExchange),是OLE技術(shù)的前身,是在微軟的Win32應(yīng)用程序接口(API)上所開(kāi)發(fā)的應(yīng)用程序之間動(dòng)態(tài)地移動(dòng)數(shù)據(jù)的一種方法。DDE協(xié)議在應(yīng)用程序間傳送信息,使得應(yīng)用程序共享數(shù)據(jù)和采用共享的內(nèi)存交換數(shù)據(jù)。

動(dòng)態(tài)數(shù)據(jù)交換法(DDE)的缺點(diǎn)

    硬件制造商盡管認(rèn)識(shí)到需要開(kāi)發(fā)軟件程序以連接他們的硬件,但受限制于他們開(kāi)發(fā)通信驅(qū)動(dòng)程序的能力,因而程序開(kāi)發(fā)的選擇范圍只能局限在DDE和一個(gè)專(zhuān)用的DDE導(dǎo)出表之間。選擇任何一個(gè)DDE進(jìn)行程序開(kāi)發(fā),都有可能要么限制用戶對(duì)軟件的選擇,要么妨礙用戶對(duì)硬件的接受。且由于DDE是基于Windows的消息(Message)傳遞而建立的技術(shù),所以DDE技術(shù)存在以下的問(wèn)題:(1)數(shù)據(jù)的傳送速度較慢。(2)沒(méi)有安全性的管理機(jī)制。(3)開(kāi)發(fā)難度大。(4)功能缺乏柔韌性。(5)可靠性也難以令人滿意。

4  結(jié)論

    今天的工業(yè)數(shù)據(jù)通訊,主要是按照自動(dòng)化系統(tǒng)金字塔來(lái)組織的:在塔頂?shù)挠?jì)算機(jī)層,使用標(biāo)準(zhǔn)的IT協(xié)議(互聯(lián)網(wǎng)協(xié)議)。對(duì)于機(jī)器間和過(guò)程通訊(分布式控制器層)而言,相較傳統(tǒng)的基于以太網(wǎng)的M2M現(xiàn)場(chǎng)總線系統(tǒng)(例如:PROFINET、EtherNet/IP、EtherCAT、Modbus/TCP、CC-LinkIE、POWERLINK、SERCOSIII),而OPCUA(IEC625412)的重要性正在迅速提高。對(duì)于生產(chǎn)現(xiàn)場(chǎng)有OPC協(xié)議的企業(yè)來(lái)講,綜合自身實(shí)力選擇適合自己的安全防護(hù)產(chǎn)品顯得越來(lái)越重要。而對(duì)OPC協(xié)議的解析到指令級(jí)還不夠,后續(xù)還需要深度解析到OPC協(xié)議操作指令所操作的對(duì)象是否在安全范圍內(nèi),對(duì)操作對(duì)象的值進(jìn)行安全檢測(cè),確保OPC協(xié)議發(fā)送的每一個(gè)字節(jié)都是可識(shí)別、可控制、安全無(wú)害的。

中傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:

凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

伺服與運(yùn)動(dòng)控制

關(guān)注伺服與運(yùn)動(dòng)控制公眾號(hào)獲取更多資訊

直驅(qū)與傳動(dòng)

關(guān)注直驅(qū)與傳動(dòng)公眾號(hào)獲取更多資訊

中國(guó)傳動(dòng)網(wǎng)

關(guān)注中國(guó)傳動(dòng)網(wǎng)公眾號(hào)獲取更多資訊

2018年第六期

2018年第六期

圖片閱讀

掃碼關(guān)注小程序

時(shí)刻關(guān)注行業(yè)動(dòng)態(tài)

雜志訂閱

填寫(xiě)郵件地址,訂閱更多資訊:

撥打電話咨詢:13751143319 余女士
郵箱:chuandong@chuandong.cn

熱搜詞
  • 運(yùn)動(dòng)控制
  • 伺服系統(tǒng)
  • 機(jī)器視覺(jué)
  • 機(jī)械傳動(dòng)
  • 編碼器
  • 直驅(qū)系統(tǒng)
  • 工業(yè)電源
  • 電力電子
  • 工業(yè)互聯(lián)
  • 高壓變頻器
  • 中低壓變頻器
  • 傳感器
  • 人機(jī)界面
  • PLC
  • 電氣聯(lián)接
  • 工業(yè)機(jī)器人
  • 低壓電器
  • 機(jī)柜
回頂部
點(diǎn)贊 0
取消 0
往期雜志
  • 2024年第四期

    2024年第四期

    伺服與運(yùn)動(dòng)控制

    2024年第四期

  • 2024年第三期

    2024年第三期

    伺服與運(yùn)動(dòng)控制

    2024年第三期

  • 2024年第二期

    2024年第二期

    伺服與運(yùn)動(dòng)控制

    2024年第二期

  • 2024年第一期

    2024年第一期

    伺服與運(yùn)動(dòng)控制

    2024年第一期

  • 2023年第六期

    2023年第六期

    伺服與運(yùn)動(dòng)控制

    2023年第六期