版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
工業(yè)控制系統(tǒng)應用與安全防護技術第3章
工業(yè)控制系統(tǒng)網(wǎng)絡協(xié)議工業(yè)控制協(xié)議是溝通ICS組件之間的橋梁,其安全性和穩(wěn)定性關系到整個ICS系統(tǒng)的安全。工業(yè)控制協(xié)議基于高可靠性和高效率進行設計,互聯(lián)網(wǎng)通信協(xié)議不一定適用于工業(yè)控制系統(tǒng)。在眾多工控協(xié)議中大致可以分為三類:(1)標準協(xié)議。例如Modbus協(xié)議等,這類協(xié)議是國際標準或者被國際所公認的協(xié)議。(2)私有但公開協(xié)議。例如三菱的Melsec協(xié)議等,這類協(xié)議一般由廠商提供協(xié)議的官方文檔。(3)私有不公開協(xié)議。例如西門子的S7協(xié)議等。相對于標準協(xié)議和私有公開協(xié)議,其受到的威脅會有所降低。但對于一些私有協(xié)議,同樣也會被破解。因此私有協(xié)議也無法確保安全。工控協(xié)議的安全性也在影響著ICS系統(tǒng)安全。3.1Modbus協(xié)議由于Modbus協(xié)議具有消息幀格式簡單緊湊、協(xié)議標準公開免費、支持多種電氣接口以及基于Modbus進行通信程序開發(fā)方便快捷等特點,它已經(jīng)成為工業(yè)自動化領域應用最為廣泛的通信協(xié)議。經(jīng)過多年的發(fā)展,Modbus又陸續(xù)推出多個版本:用于串行鏈路中的ModbusRTU和ModbusASCII,MODICON公司專有的經(jīng)過擴展的ModbusPlus版本,以及用于以太網(wǎng)通信的ModbusTCP等。3.1.1ModbusTCP協(xié)議概述Modbus協(xié)議由MODICON公司在1979年開發(fā),是全世界首個真正用于工業(yè)現(xiàn)場的總線協(xié)議。Modbus協(xié)議能夠讓不同的工控設備實現(xiàn)在多種網(wǎng)絡體系結構中進行數(shù)據(jù)交互通信的功能,例如:PLC、HMI、輸入/輸出等多種設備,使用Modbus協(xié)議進行通信,實現(xiàn)遠程控制操作。在Modbus串行鏈路版本中,Modbus采用主/從架構,或者說是單客戶端/多服務器端架構。而在ModbusTCP版本中則演變成多客戶端/多服務器端架構,即可以有多個主站或者從站??蛻舳讼喈斢谥?從架構下的主設備,而服務器端相當于從設備。作為主設備的客戶端向作為從設備的服務器端發(fā)送請求報文,服務器端在收到請求報文后會處理報文并執(zhí)行相關命令,隨后給客戶端發(fā)送響應報文,響應報文中包含命令是否執(zhí)行成功或者客戶端所請求的數(shù)據(jù)等信息。按照數(shù)據(jù)包是否為請求報文進行劃分,ModbusTCP數(shù)據(jù)報文可以分成三種類型:請求報文、正常響應報文、異常響應報文。ModbusTCP的請求報文和正常響應報文具有相似的幀格式。一次正常的Modbus事務處理過程:ModbusTCP異常響應報文幀格式:一次異常的事務處理過程:Modbus功能碼是Modbus數(shù)據(jù)報文中最重要的信息,它表示從站設備要執(zhí)行何種操作等。功能碼在報文中占1字節(jié),它能表示的數(shù)據(jù)范圍為[1,255]。由于Modbus事務處理發(fā)生異常時,返回的響應報文中功能碼等于正常功能碼與0x80之和,因此[128,255]的功能碼不會使用,它僅出現(xiàn)在異常響應報文中。有效功能碼范圍為[1,127],又可分成3種類別:公共功能碼、用戶自定義功能碼和保留功能碼。公共功能碼的范圍為[1,64]∪[73,99]∪[111,127],它們具有唯一性,所表示的功能定義明確。公共功能碼主要用于完成線圈/寄存器/離散量的讀寫、設備診斷和異常響應等功能。用戶自定義功能碼的范圍為[65,72]∪[100,110]。用戶根據(jù)自己需要自定義功能碼的功能,這些功能碼不具有唯一性,具體含義取決于使用的用戶。保留功能碼是一些公司對一些歷史產(chǎn)品使用的功能碼,不作為公共碼使用。Modbus協(xié)議中的數(shù)據(jù)類型可以分成4種:線圈、離散量輸入、保持寄存器、輸入寄存器。表3-4描述了這4種數(shù)據(jù)類型的特性。3.1.2ModbusTCP協(xié)議安全性分析ModbusTCP協(xié)議設計缺陷包括如下5個方面。(1)報文缺乏加密機制,Modbus數(shù)據(jù)報文采用明文傳輸,攻擊者只要捕獲到數(shù)據(jù)包就能夠輕松解析和篡改報文信息。(2)缺乏認證機制,認證主要用來確保接收到的數(shù)據(jù)來自被認證的合法用戶,服務器不會響應未被認證的用戶發(fā)送的數(shù)據(jù)。(3)缺乏授權機制,
Modbus沒有實現(xiàn)基于角色的訪問控制機制,所有用戶具有相同的權限,甚至能夠執(zhí)行重要操作。攻擊者只要進入到Modbus網(wǎng)絡內,就能夠執(zhí)行任意危險的指令,例如重啟Modbus服務器等。(4)功能碼濫用,ModbusPDU的關鍵組成部分就是功能碼,功能碼指示接收報文的設備應當執(zhí)行何種操作。這使得攻擊者可以濫用功能碼從而構造各類數(shù)據(jù)報文,再去實現(xiàn)拒絕服務攻擊或者竊取系統(tǒng)關鍵信息等。(5)TCP協(xié)議存在自身設計上的缺點,攻擊者可以利用這些缺點去構造洪泛攻擊等拒絕服務攻擊。Modbus協(xié)議受到的攻擊主要分為4類:信息掃描攻擊、響應注入攻擊、命令注入攻擊、拒絕服務攻擊等。信息掃描攻擊是黑客實施更危險復雜的攻擊前的準備階段,它旨在收集工控系統(tǒng)中的各種網(wǎng)絡信息,識別工控設備的各種關鍵屬性,如設備廠商、型號、支持的工控協(xié)議、系統(tǒng)合法地址和內存映射等,基于這些信息去尋找邊界突破的方法以獲取生產(chǎn)環(huán)境訪問權限。具體的實現(xiàn)細節(jié)如下所述:(1)向所有合法的Modbus地址發(fā)送請求,通過Modbus服務器端發(fā)送的響應報文判斷有效的設備地址;(2)構造各種功能碼的請求報文,如果Modbus服務器端收到不支持的功能碼報文,則會收到一個異常響應數(shù)據(jù)包,通過這樣的方法,掃描出哪些Modbus功能碼是可用的;(3)通過Modbus協(xié)議中內置的讀設備標識函數(shù)來獲取設備信息,然后繼續(xù)去匹配可用的漏洞;(4)當對Modbus線圈、寄存器進行讀寫時,如果地址不合法,則Modbus客戶端會收到一個異常響應數(shù)據(jù)包,從而掃描出被攻擊設備線圈和寄存器的可用地址范圍。響應注入攻擊是指通過捕獲工控系統(tǒng)內的Modbus響應數(shù)據(jù)包,然后惡意篡改數(shù)據(jù)包內容(例如使系統(tǒng)測量值為非法數(shù)據(jù)類型或者超出合法范圍等),再注入到工控系統(tǒng)的一種攻擊方式。這種攻擊方式可以欺騙系統(tǒng)操作員或者導致工控系統(tǒng)做出錯誤的反應。命令注入攻擊是指向工控系統(tǒng)中注入錯誤控制或配置指令。例如利用工控系統(tǒng)漏洞注入惡意命令,破壞從設備的工作狀態(tài),使其由正常工作狀態(tài)轉變成危險的臨界狀態(tài)。注入惡意參數(shù)命令以修改工控系統(tǒng)內的某些關鍵參數(shù),這些參數(shù)可以是水箱水位、管道壓強等,從而使工控系統(tǒng)或從設備工作異常。注入惡意功能碼,控制工控系統(tǒng)去執(zhí)行某些特定操作,從而導致Modbus服務器重啟、或者停止傳輸消息等,以此達到攻擊目的。拒絕服務攻擊是指通過大量合法或者偽造的請求去占用被攻擊設備的帶寬或者系統(tǒng)資源,使得其無法正常工作的一種攻擊方式。對于ModbusTCP來說,主要包括TCPFIN洪泛攻擊、TCPRST洪泛攻擊、TCP連接池耗盡等。3.1.3ModbusTCP協(xié)議安全防護技術為了針對性地解決Modbus通信協(xié)議中的安全威脅,需從協(xié)議設計階段、開發(fā)階段、測試與部署階段分段實施Modbus安全防護。例如,在協(xié)議設計階段,可融入異常行為預警功能。該功能可對工控系統(tǒng)的每次操作行為子屬性進行掃描分析,并綜合各子屬性的安全等級,最終通過子決策融合實現(xiàn)單次操作行為的綜合判定。對于異常行為,可采用報警觸發(fā)或實例記錄等手段,實現(xiàn)安全威脅預警。在線下階段,可利用每次預警的實例記錄組建綜合的異常操作數(shù)據(jù)庫,對數(shù)據(jù)庫中單次操作進行深度解碼分析,輸出預警系統(tǒng)的虛警率、漏警率、預警率。這些綜合指標可反映預警安全防護系統(tǒng)的性能,同時可反向地指導預警安全防護系統(tǒng)檢測標準的改進。利用該協(xié)議操作數(shù)據(jù)庫可使得工控系統(tǒng)中發(fā)生的安全事件具有可追查性。深度包檢測技術是一種基于應用層的流量檢測和控制技術,當IP數(shù)據(jù)包、TCP或UDP數(shù)據(jù)流通過基于該技術的帶寬管理系統(tǒng)時,該系統(tǒng)會深入讀取IP包載荷的內容,對OSI七層協(xié)議中的應用層信息進行重組,從而得到整個應用程序的內容,然后按照系統(tǒng)定義的管理策略對流量進行整形操作。為了保障ModbusTCP協(xié)議在工業(yè)控制網(wǎng)絡中數(shù)據(jù)傳輸?shù)陌踩?,可建立基于深度包檢測技術的防護模型。防護模型包括身份合法性檢測、協(xié)議完整性檢測、功能碼使用安全性檢測等組成模塊。其中,身份合法性檢測模塊通過對訪問地址的解析判斷訪問者身份的合法性;協(xié)議完整性檢測模塊則通過對ModbusTCP協(xié)議特征的解析判斷數(shù)據(jù)包的規(guī)范性;功能碼使用安全性檢測基于對ModbusTCP數(shù)據(jù)報文中功能碼和數(shù)據(jù)的解析,以及對應用戶授權的操作行為判斷操作的合法性。身份合法性檢測的功能主要包括數(shù)據(jù)鏈路層檢測和網(wǎng)絡層檢測。數(shù)據(jù)鏈路層檢測通過對數(shù)據(jù)包源MAC地址和目的MAC地址的解析和過濾可以阻斷非法設備的訪問,網(wǎng)絡層檢測則通過解析數(shù)據(jù)包中的源IP和目的IP以保護合法的IP訪問順利進行。協(xié)議完整性檢測的功能主要包括端口檢測、協(xié)議標識符檢測和超長數(shù)據(jù)報文檢測。端口檢測通過解析數(shù)據(jù)報文的源端口和目的端口是否為502來識別ModbusTCP報文,協(xié)議標識符檢測則通過解析協(xié)議標識符是否為0X0000判斷ModbusTCP數(shù)據(jù),同時對數(shù)據(jù)報文的長度進行檢測,若數(shù)據(jù)載荷過長則判斷報文為惡意構造的數(shù)據(jù)包。在功能碼的使用安全性檢測中,可以設置訪問控制規(guī)則,允許符合規(guī)則的ModbusTCP數(shù)據(jù)報文通過,不符合的數(shù)據(jù)報文則丟棄。其內容應包括功能碼、地址范圍、閾值范圍,并且是基于白名單的工作機制,以限制主站對從站的訪問。例如:白名單規(guī)則:Pass[功能碼:15][地址范圍:5-9][閾值范圍:50-100],默認規(guī)則:全部禁止。3.2PROFINET協(xié)議PROFINET是由PROFIBUS國際組織在2000年提出并于4年后構建起來的一套全面的標準,包含安裝技術、實時通信、分布式現(xiàn)場設備、分布式智能以及運動控制等。依據(jù)應用場景不同,PROFINET應用可分為兩種類型:PROFINETIO,用于集成分布式IO,支持分布式現(xiàn)場設備直接接入以太網(wǎng);PROFINETCBA,用于在分布式自動化中創(chuàng)建模塊化設備系統(tǒng)。PROFINET通信分為三個等級,可以在一根電纜上提供適應各種類型設備的3種通信信道:TCP/IP、實時通信(Real-Time,RT)和等時同步實時通信(IsochronousReal-Time,IRT)。3.2.1PROFINET-RT1.協(xié)議概述實時,表示系統(tǒng)在一個確定的時間內處理外部事件。確定性,表示系統(tǒng)有一個可預知的響應。因此,實時通信的一般要求是確定性的響應和標準應用的響應時間小于等于5ms。使用標準的通信協(xié)議TCP/IP或UDP/IP是實現(xiàn)實時通信的一種方法,然而使用它們會存在相應的缺點:當幀過載時,幀的長度會增加,從而引起線路上傳輸時間的增加。此外,由于標準通信協(xié)議分層較多,占用處理器的計算時間會相對較長,從而導致發(fā)送周期增加。PROFINET使用優(yōu)化的通道進行實時通信,該通道基于ISO/OSI參考模型的第二層。此外,數(shù)據(jù)包使用接收設備的MAC地址進行尋址,在放棄了路由功能的代價下保證了工業(yè)控制系統(tǒng)網(wǎng)絡中的不同站點能夠在可預見的時間間隔內傳輸時間要求嚴格的數(shù)據(jù)。2.通信流程在PROFINETIO應用中,實時信號主要分為周期I/O數(shù)據(jù)和警報信號(非周期)。系統(tǒng)啟動之后,己配置好的IO控制器和IO設備之間開始周期性的數(shù)據(jù)交換。每條I/O數(shù)據(jù)(RTC:實時周期)都包含兩種屬性:IO供應者狀態(tài)(IOProviderStatus,IOPS)和IO消費者狀態(tài)(IOConsumerStatus,IOCS)。IO控制器和IO設備依次評估傳輸?shù)馁|量。3.協(xié)議結構PROFINET-RT通信協(xié)議是在EthernetII標準報文的基礎上,加入了IEEE802.1Q標簽頭以及PROFINET-RT專有數(shù)據(jù)。PRE表示前導碼,代表數(shù)據(jù)包的開始部分,由7個字節(jié)的1和0交替的二進制序列構成,用于接收器同步。SFD表示幀開始定界符。DST和SRC分別代表目的MAC地址和源MAC地址,MAC地址中前三字節(jié)用于標識制造商。VLAN包括4部分。其中TPID為一個特定的值0x8100,表明緊隨其后的是VLAN標簽協(xié)議標識符。Priority占用3位,代表幀的優(yōu)先級,此優(yōu)先級可以設置0x00至0x07的優(yōu)先級別,數(shù)值越大代表的優(yōu)先級越高,PROFINET-RT幀結構的優(yōu)先級一般為0x06;CFI占用1位,值為0說明是規(guī)范格式,1為非規(guī)范格式;VID是一個12位的域,指明VLAN的ID,每個支持802.1Q協(xié)議的交換機發(fā)送出來的數(shù)據(jù)包都會包含這個域。EthType代表以太網(wǎng)類型,PROFINET實時數(shù)據(jù)釆用0x8892。Data部分在PROFINETIO中表示I/O數(shù)據(jù),如果實時幀的長度小于64Byte,則PROFINET實時數(shù)據(jù)的長度必須擴展到最少40Byte,最長為1440Byte。APDU表示PROFINET實時數(shù)據(jù)幀的狀態(tài),由三部分組成。具體的取值及含義如表3-6所示。CycleCount表示周期計數(shù)器,每經(jīng)過一個發(fā)送周期,計數(shù)器的值增加1。DataStatus代表傳輸?shù)臄?shù)據(jù)狀態(tài),每一位都有其固定含義,例如標識通道、數(shù)據(jù)有效性、問題指示器等。TransferStatus代表傳輸狀態(tài),取值為固定值0。FCS為幀檢驗序列。3.2.2PROFINET-DCP1.協(xié)議概述
PROFINET-DCP為發(fā)現(xiàn)和基本配置協(xié)議,由PROFINET協(xié)議簇定義,協(xié)議結構與PROFINET-RT相似,尋址方式、EtherType取值和PROFINET-RT信號相同,但在PROFINETIO中被分類為標準數(shù)據(jù)。PROFINET-DCP是以太網(wǎng)鏈路層協(xié)議并提供多種服務。它用來發(fā)現(xiàn)、識別和配置設備信息,例如PROFINET設備名稱和IP地址。每個PROFINET設備分配一個唯一的基于域名系統(tǒng)(DNS)命名約定的設備名稱和一個IP地址。2.通信流程發(fā)現(xiàn)和基本配置協(xié)議PROFINET-DCP是系統(tǒng)初始化時的重要協(xié)議之一,主要負責分配設備名稱、IP地址。1)給IO設備分配名稱在系統(tǒng)開始工作之前,IO設備必須被分配名稱,分配名稱過程一般由IO監(jiān)視器完成。在運行期間名稱是IO設備的標識,且可以由用戶按一定規(guī)則選擇。名稱也可以由IO控制器給IO設備分配。分配設備名稱分為三個階段:
(1)識別請求:IO監(jiān)視器或IO控制器以名稱為標識搜索設備。
(2)設置請求:當檢測設備名稱但無回應時,向IO設備寫入設備名稱。
(3)設置響應:對設置請求的確認。使用PROFINET-DCP分配設備名稱的序列:2)給IO設備分配IP地址
在系統(tǒng)啟動階段,IO控制器為IO設備分配一個IP地址,分配設備地址分為五個階段:
(1)識別請求:IO控制器或IO監(jiān)視器依據(jù)設備名稱搜索設備。
(2)請求響應:表示己搜索到設備。
(3)地址解析請求:確認IP地址與設備MAC地址的對應關系。
(4)設置請求:向IO設備寫入IP地址、網(wǎng)關地址等。
(5)設置響應:設置請求的確認。使用PROFINET-DCP分配設備IP的序列如圖3-12所示。在DCP_Set正確接收之后,IO控制器與IO設備之間建立應用關系(ApplicationRelations,AR),建立成功后開始傳輸IO數(shù)據(jù)。3.協(xié)議結構PROFINET-DCP的幀結構(不包括前導碼和幀開始標志):圖中DST和SRC分別代表目的MAC地址和源MAC地址。與PROFINET實時信號相同,EtherType字段取值為0x8892。FrameID代表傳輸?shù)膶崟r數(shù)據(jù)幀的類型,對于PROFINET-DCP,F(xiàn)rameID取值處于0xFEFD~0xFEFF之間。對于一些有優(yōu)先級要求的數(shù)據(jù)報文,源地址SRC和以太網(wǎng)類型EtherType字段之間,按照IEEE802.1Q規(guī)范被分配傳輸優(yōu)先級,存儲在VLAN標簽中。Xid代表交換標識,為一個4字節(jié)的隨機數(shù),一般情況下請求和響應的Xid相同。Reversed代表保留位,取值為0。Vlen代表其后Block的長度。ServiceID和ServiceType以及Block決定了報文的具體操作內容。與PROFINET-RT信號相比,取消了末尾的APDU和FCS字段。4.字段詳解PROFINET-DCP協(xié)議的大部分字段都有固定取值范圍和意義。DCPGet即ServiceID取值為0x03,為單播的一種報文,用來從設備中讀取相關信息。例如通過配置或診斷工具可以讀取設備名稱、設備IP、設備制造商信息以及供應商ID、設備ID、設備角色(控制器或設備)等等。DCPSet即ServiceID取值為0x04,為單播的一種報文,用來設置設備名稱或設備IP。設備名稱可以設置為保持型名稱或臨時型名稱。保持型名稱在設備斷電后依然保留(默認情況下為保持型);臨時型名稱在設備斷電后即返回到默認值。DCPIdentify即ServiceID取值為0x05,為多播的一種報文,用來使用特定的設備名稱以便在網(wǎng)絡上尋找對應的設備。DCPHello即ServiceID取值為0x06,為多播的一種報文。當在設備上使用并啟用快速啟動時,可以使用DCPHello服務。它不是使設備在斷電重啟后等待控制器找到它,而是通知控制器此設備已重新在線,從而縮短啟動時間。ServiceID代表服務類型,ServiceType代表報文的狀態(tài),例如請求或響應成功以及響應失敗。Block中保存著數(shù)據(jù)報文傳輸?shù)木唧w信息,每一個報文可以包含多個Block,每個Block中可以包含多個選項Option和子選項Suboption,每一對都有其具體含義。1)IP相關信息(0x01)Option取值為0x01時表示傳輸IP相關信息。2)設備相關信息(0x02)
當Option取值為0x02時,表示傳輸?shù)氖窃O備相關信息,包括工廠自定義信息、設備ID、設備角色(控制端或被控制端)等。Suboption取值及其對應關系如表3-10所示。3)動態(tài)主機相關信息(0x03)Option取值為0x03時代表傳輸?shù)氖莿討B(tài)主機配置相關信息,包括主機名、供應商信息、服務端標識、請求參數(shù)列表等。4)控制相關信息(0x05)Option取值為0x05時代表傳輸?shù)氖强刂葡嚓P信息,包括啟動傳輸、終止傳輸、重置到出廠設定、信號標識、響應信息等。
5)設備主動發(fā)起信息(0x06)
Option取值為0x06時代表傳輸?shù)氖窃O備主動傳輸?shù)男畔?,Suboption只開放了0x01。
6)所有信息(0xff)
Option取值為0xff代表獲取設備的所有信息,此時Suboption取值也為0xff。3.2.3PROFINET安全性分析一般早期工業(yè)控制系統(tǒng)都是與IT網(wǎng)絡相互隔離,因此大部分應用于工控系統(tǒng)的協(xié)議都沒有考慮安全性問題。與其他應用在工業(yè)控制系統(tǒng)中的通信協(xié)議一樣,PROFINET協(xié)議缺乏認證、授權和加密等安全機制。除了工控協(xié)議的常見安全問題之外,PROFINET-DCP協(xié)議中的服務ID與服務類型成為主要的攻擊目標。ServiceID和ServiceType是PROFINET-DCP的重要組成部分,在使用過程中,ServiceID和ServiceType雖然僅開放了其中的一小部分,但仍具有一定的潛在脆弱性。對于PROFINET應用系統(tǒng)中常見的異常行為總結下:3.2.4PROFINET安全防護技術PROFINET的一個重要特征就是可以同時傳遞實時數(shù)據(jù)和標準的TCP/IP數(shù)據(jù)。在其傳遞TCP/IP數(shù)據(jù)的公共通道中,各種經(jīng)過驗證的IT技術都可以使用(如HTTP、HTML、SNMP、DHCP和XML等)。在使用PROFINET的時候,可以通過使用這些IT標準服務加強對整個網(wǎng)絡的管理和維護,這有利于在調試和維護中節(jié)省成本。PROFINET實現(xiàn)了從現(xiàn)場級到管理層的縱向通訊集成。一方面,方便管理層獲取現(xiàn)場級的數(shù)據(jù),另一方面,原本在管理層存在的數(shù)據(jù)安全性問題也延伸到了現(xiàn)場級。為了保證現(xiàn)場級控制數(shù)據(jù)的安全,PROFINET提供了特有的安全機制,通過使用專用的安全模塊,可以保護自動化控制系統(tǒng),使自動化通訊網(wǎng)絡的安全風險最小化。PROFIsafe是由PROFIBUS國際組織提出的加載在PROFIBUS和PROFINET通信協(xié)議基礎上的功能安全通信行規(guī),符合IEC61508(《電氣/電子/可編程電子安全相關系統(tǒng)的功能安全》)功能安全國際標準,滿足SIL3等級的故障安全,很好地保證了整個系統(tǒng)的安全。PROFIsafe使標準現(xiàn)場總線技術和故障安全技術合為一個系統(tǒng),即故障安全通信和標準通信在同一根電纜上共存,安全通信不通過冗余電纜來實現(xiàn)。這不僅在布線上和品種多樣性方面可以節(jié)約成本,而且也方便日后系統(tǒng)的改造。采用PROFIsafe既可使用單總線結構也可根據(jù)要求采用標準總線和安全總線分開的結構。與標準ROFIBUS相比,標準通信部件,如電纜、專用芯片、堆棧軟件等等,無任何變化;簡化了設備、工程設計和安裝成本,既可用于低能耗的過程自動化,又可用于反應迅速的制造業(yè)自動化。此外,PROFIsafe還采用了SIL-Monitor專利技術,借助SIL-Monitor,系統(tǒng)能夠在故障率超過一定限度之前即采取有效的安全保護措施,從而避免系統(tǒng)出現(xiàn)危險故障。PROFIsafe通過一系列的現(xiàn)場案例證明系統(tǒng)的靈活性,同時可滿足工業(yè)4.0中的柔性化生產(chǎn)需求。3.3SiemensS7協(xié)議西門子PLC使用私有協(xié)議進行通信,端口為102。西門子PLC協(xié)議有3個版本:S7Comm協(xié)議、早期S7Comm-Plus協(xié)議和最新的S7Comm-Plus協(xié)議。S7-200、S7-300、S7-400系列的PLC采用早期的西門子私有協(xié)議S7comm進行通信,S7-1200系列v3.0版本之前的通信協(xié)議采用早期S7Comm-Plus協(xié)議,S7-1200系列v4.0版本、S7-1500系列采用了最新的S7Comm-Plus協(xié)議,最新的S7Comm-Plus協(xié)議引入了會話ID來防止重放攻擊,且對關鍵流量有加密處理。3.3.1SiemensS7協(xié)議概述S7comm通信協(xié)議是西門子的私有協(xié)議,主要應用于西門子S7系列的PLC設備上,幫助西門子設備之間交換數(shù)據(jù)。S7comm是一個主從協(xié)議,現(xiàn)場PLC設備一般作為從站,裝有上位機軟件的PC是作為主站,主站向從站發(fā)送請求數(shù)據(jù)。S7comm協(xié)議也是根據(jù)TCP/IP協(xié)議棧實現(xiàn)的,屬于OSI七層模型中的應用層協(xié)議。其中,低四層主要完成底層驅動程序。第五層TPKT層,是用來在第四層和第六層之間建立紐帶作用的應用數(shù)據(jù)傳輸服務協(xié)議。第六層是COTP層,是位于TCP之上的協(xié)議,以“包”為基本單位傳輸數(shù)據(jù),使得接收方獲得和發(fā)送方具有相同邊界的數(shù)據(jù)。第七層S7communication層對應于應用層,該層主要封裝用戶執(zhí)行操作的數(shù)據(jù)。S7通信協(xié)議包前面封裝COTP頭,再接著封裝TPKT頭,數(shù)據(jù)包打包完成后通過TCP建立連接進行傳輸。S7comm是私有協(xié)議,可以使用Wireshark抓包工具來分析S7comm報文的格式及通信過程。Wireshark是一款網(wǎng)絡分析工具,可以抓取網(wǎng)絡中的通信流量,并能顯示出最為詳細的網(wǎng)絡封包信息。1)TPKT協(xié)議格式分析S7comm協(xié)議在通信傳輸過程中是被封裝在COTP協(xié)議中的,而COTP協(xié)議又被封裝在TPKT(ISOtransportservicesontopoftheTCP)協(xié)議中。2)COTP協(xié)議格式分析COTP協(xié)議數(shù)據(jù)包包括ConnectionPacket和FunctionPacket兩種形式。其中,ConnectionPacket又分為ConnectionRequestionPacket和ConnectionConfirmPacket兩種。在COTP數(shù)據(jù)包中Payload和Trailer部分均可能為0,并且只有在Type字段為0xf0時,OPT字段才存在,Type字段的含義如表3-15所示。通過對數(shù)據(jù)報文的分析得出COTP協(xié)議的ConnectionPacket和FunctionPacket報文格式如下。3.3.2SiemensS7協(xié)議脆弱性分析目前存在針對西門子工業(yè)控制系統(tǒng)的攻擊方式主要包括:IP欺騙、服務拒絕(DoS)攻擊、TCPSYNFlood攻擊、Land攻擊、ICMPSmurf攻擊、PingofDeath攻擊、UDPFlood攻擊、Teardrop攻擊、中間人攻擊、重放攻擊等。中間人攻擊和重放攻擊是兩種常見的攻擊方式。1.中間人攻擊中間人攻擊(Man-in-the-MiddleAttack,簡稱MITM攻擊)是一種間接的入侵攻擊,這種攻擊模式是通過各種技術手段將受入侵者控制的一臺計算機虛擬放置在網(wǎng)絡連接中的兩臺通信計算機之間,這臺計算機就稱為“中間人”。中間人攻擊中有兩個受害者,分別為上位機和PLC。中間人在雙方都不知情的情況下實施攻擊,攻擊對象是經(jīng)過中間人傳送的上位機和PLC的傳輸內容。傳輸內容被中間人截獲,如果截獲信息中有用戶名和密碼,危害就會更大,而且中間人攻擊不會損害兩者之間的通訊。2.重放攻擊重放攻擊(ReplayAttacks)又稱重播攻擊、回放攻擊,是指攻擊者發(fā)送一個目的主機已接收過的包,來達到欺騙系統(tǒng)的目的,主要用于身份認證過程,破壞認證的正確性。在工控系統(tǒng)中的重放攻擊利用了S7協(xié)議缺乏認證的脆弱性問題,將上位機軟件編譯好的程序重新下裝到PLC機器中。把以前竊聽到的數(shù)據(jù)原封不動地重新發(fā)送給接收方。很多時候,網(wǎng)絡上傳輸?shù)臄?shù)據(jù)是加密過的,此時竊聽者無法得到數(shù)據(jù)的準確意義。但如果知道這些數(shù)據(jù)的作用,就可以在不知道數(shù)據(jù)內容的情況下通過再次發(fā)送這些數(shù)據(jù)達到欺騙接收端的目的。3.3.3SiemensS7協(xié)議安全防護技術在目前工控系統(tǒng)網(wǎng)絡安全形勢下,加強安全防護顯得更為重要。通過對工控網(wǎng)絡流量、工控主機狀態(tài)等進行監(jiān)控,收集并分析工控網(wǎng)絡數(shù)據(jù)及軟件運行狀態(tài),建立工控系統(tǒng)正常工作環(huán)境下的安全狀態(tài)基線和模型,全面構筑工控安全技術體系,進而保障西門子工業(yè)控制系統(tǒng)的穩(wěn)定運行。進一步加強工控系統(tǒng)安全防護措施如下:1)區(qū)域邊界訪問控制在生產(chǎn)網(wǎng)上位機與PLC設備之間部署工業(yè)防火墻,實現(xiàn)S7等工業(yè)控制協(xié)議的識別與深度解析,實時攔截非法指令和惡意指令下發(fā)等不法行為。在工業(yè)現(xiàn)場生產(chǎn)業(yè)務固化后,通過工業(yè)防火墻智能學習功能固化安全防護策略,使之更加符合生產(chǎn)業(yè)務需求。結合工業(yè)防火墻硬件級安全策略寫保護特性功能,實現(xiàn)安全策略只讀權限的物理級控制。強化對西門子工業(yè)控制系統(tǒng)的邊界隔離與防護,確??刂葡到y(tǒng)的持續(xù)穩(wěn)定運行。2)工控主機安全防護與加固在生產(chǎn)網(wǎng)工控主機上部署工控安全防護軟件,通過白名單技術、漏洞防御、安全基線及外設管控等技術措施實現(xiàn)對工控主機的安全防護與加固,杜絕重放攻擊、中間人攻擊等攻擊手段危害生產(chǎn)業(yè)務安全。3)生產(chǎn)網(wǎng)絡流量監(jiān)測及預警在生產(chǎn)網(wǎng)內部關鍵網(wǎng)絡節(jié)點處旁路部署工控安全監(jiān)測與審計系統(tǒng),實時檢測針對S7協(xié)議的網(wǎng)絡攻擊、用戶誤操作、用戶違規(guī)操作、非法設備接入以及蠕蟲、病毒等惡意軟件的傳播并實時報警,同時有效記錄一切網(wǎng)絡通信行為。4)統(tǒng)一安全管控構建安全管理中心并部署統(tǒng)一安全管理平臺,對生產(chǎn)網(wǎng)絡中部署的工業(yè)防火墻、工控安全防護軟件、工控安全監(jiān)測與審計系統(tǒng)等工控安全設備進行集中管控;同時統(tǒng)一安全管理平臺兼?zhèn)浠谫Y產(chǎn)的集中管理功能,有效幫助運維人員提升網(wǎng)絡安全運維工作效率,降低安全運維成本。3.4DNP3協(xié)議DNP(DistributedNetworkProtocol,分布式網(wǎng)絡協(xié)議)是一種應用于自動化組件之間的通訊協(xié)議,常見于電力、水處理等行業(yè)。DNP協(xié)議標準主要為了解決SCADA行業(yè)中協(xié)議混雜、沒有公認標準的問題。SCADA可以使用DNP協(xié)議與主站、RTU及IED進行通訊。DNP協(xié)議有一定的可靠性,這種可靠性可以用來對抗惡劣環(huán)境中產(chǎn)生的電磁干擾、元件老化等信號失真現(xiàn)象,但不保證在黑客的攻擊下、或者惡意破壞控制系統(tǒng)的情況下的可靠性。DNP協(xié)議提供了對數(shù)據(jù)的分片、重組、數(shù)據(jù)校驗、鏈路控制、優(yōu)先級等一系列的服務,在協(xié)議中大量使用了CRC校驗來保證數(shù)據(jù)的準確性。3.4.1DNP3協(xié)議概述DNP3協(xié)議層是基于IEC60870-5標準的增強型性能架構(EPA)。但是,DNP3協(xié)議引入了一個稱為“偽傳輸層”的“透明”層,作為現(xiàn)有EPA結構的附加層。因此,DNP3協(xié)議由應用層、偽傳輸層、數(shù)據(jù)鏈路層和物理層組成。各層功能如下:(1)應用層:該層主要負責為用戶提供訪問應用進程的服務,其報文形式參考IEC60870標準定義的數(shù)據(jù)報文格式。(2)偽傳輸層:該層的主要功能是對應用層數(shù)據(jù)包進行處理,將輸入的數(shù)據(jù)分解,以數(shù)據(jù)塊為單位傳送給鏈路層。(3)數(shù)據(jù)鏈路層:該層主要負責將應用層數(shù)據(jù)分成多個有序的傳輸數(shù)據(jù)單元,并將每個數(shù)據(jù)單元傳送到鏈路充當鏈路層數(shù)據(jù)。(4)物理層:為鏈路層提供基本服務以及相應的接口。DNP3可以通過TCP/UDP進行封裝,以便在以太網(wǎng)上運行,支持DNP3協(xié)議的從設備會開放TCP的20000端口用于通信。DNP3在主站會話上需要約定目的地址、源地址,而從設備收到后需要驗證目的地址,再進行處理,如果目的地址不相同則會根據(jù)在協(xié)議棧實現(xiàn)的處理來決定是否不響應和關閉連接,或者返回異常功能報文等。1.應用層結構應用層數(shù)據(jù)單元APDU包含了報文頭、對象標題和數(shù)據(jù),其結構如表3-16所示。報文頭:表示了報文的目的,其中包含了應用協(xié)議控制信息(APCI),可分為請求報文頭和響應報文頭;對象標題:表示隨后的數(shù)據(jù)對象;數(shù)據(jù):表示對象標題指定的數(shù)據(jù)對象類型。1)應用層報文頭在應用層中,應用層報頭APCI包含請求報文和響應報文。APCI負責主從站之間傳輸報文的順序與流向,以及控制應用服務數(shù)據(jù)單元(ASDU)。在APCI部分,從站響應報文包含了2個字節(jié)的內部信號標志(InternalIndications,IIN),而主站請求報文沒有此標志。
應用控制字節(jié)(AC)包含1個字節(jié),它表示構造分段報文的基本信息。FIN:尾包標志,值為1時,表示整個報文的最后一個分段;FIR:首包標志,值為1時,表示整個報文的第一個分段;CON:確認標志,值為1時,需要接收方給予確認;序號:表示分段序號。應用層功能碼(FC)包含1個字節(jié),它表示請求/響應報文的目的。2)應用層對象標題(ObjectHeader)DNP3應用層對象標題表示報文中的數(shù)據(jù),具體的含義要取決于報文中的功能碼字段。無論是請求報文還是響應報文,對象標題的格式?jīng)]有變化。對象:包含2個字節(jié),表示指定對象以及后面對象的變化。限定詞:包含1個字節(jié),規(guī)定后面變程的意義。變程:包含0-8個字節(jié),表示對象的數(shù)量。2.偽傳輸層結構偽傳輸層的功能是將應用層數(shù)據(jù)分成多個有序的傳輸數(shù)據(jù)單元(TPDU),并將每個TPDU送到鏈路層充當鏈路層數(shù)據(jù)。偽傳輸層對于數(shù)據(jù)鏈路層來說執(zhí)行了傳輸功能,如圖3-21所示。TH:包含1個字節(jié),傳輸控制字;UserData:包含1-249個字節(jié),用戶數(shù)據(jù)塊。應用層數(shù)據(jù)的大小是可變的,當應用層發(fā)送的數(shù)據(jù)大于249字節(jié)時,偽傳輸層的功能是將大于249字節(jié)的數(shù)據(jù)分成多個數(shù)據(jù)塊進行傳送,并在每個數(shù)據(jù)塊前面加入1個字節(jié)的傳輸層報文頭(TH)。其中傳輸報文頭部分結構包含1個字節(jié),結構由以下三段組成:FIN:尾包標志,值為1時,表示數(shù)據(jù)塊為最后一幀;FIR:首包標志,值為1時,表示數(shù)據(jù)塊為第一幀;序號:表示第幾幀數(shù)據(jù),范圍為0-63。3.數(shù)據(jù)鏈路層結構DNP3協(xié)議數(shù)據(jù)鏈路層數(shù)據(jù)單元(LPDU)長度不超過292字節(jié),采用一種可變幀長格式FT3,如圖3-22所示。起始字:包含2字節(jié),0x0564;長度:包含1字節(jié),表示用戶數(shù)據(jù)、源地址、目的地址和控制字本身之和,長度在5-255字節(jié)之間;
控制字:包含1字節(jié),表示幀傳輸方向和類型;目的地址:包含2字節(jié),表示到達地址;源地址:包含2字節(jié),表示發(fā)送地址;用戶數(shù)據(jù):包含1-16字節(jié),跟在鏈路層報文頭之后的用戶數(shù)據(jù)塊;CRC:包含2字節(jié),校驗數(shù)據(jù),在每個數(shù)據(jù)塊之后。其中鏈路層控制字部分為1個字節(jié),結構為:DIR:表示方位,1代表主站發(fā)出,0代表發(fā)向主站;PRM:表示原發(fā)標志,1表示報文來自通信發(fā)起站,0表示報文來自通信應答站;FCB:表示幀的計數(shù)位;FCV:表示幀計數(shù)有效位,它可使FCB位生效;RES:表示保留;DFC:表示數(shù)據(jù)流控制,用于防止從站緩存溢出,如果主站送入的數(shù)據(jù)導致從站數(shù)據(jù)溢出,則相應消息中包含這個標示位,需要主站通過查詢鏈路狀態(tài)進行恢復;FC:鏈路層功能碼,表示幀的類型。3.4.2DNP3協(xié)議脆弱性分析DNP3協(xié)議雖然具有一定的可靠性,但由于其公有的協(xié)議規(guī)約進而導致協(xié)議結構和數(shù)據(jù)格式都是對外開放的,在本質上與ModbusTCP協(xié)議存在的脆弱性較為相似,都是具備固有的安全問題。其主要面臨著如下幾方面的問題:該協(xié)議由于對主和外站所采用的判別方法過于簡單,根據(jù)DIR標志位的0-1狀態(tài)很容易判斷當前報文發(fā)送方向,這相比于其他協(xié)議更容易遭受中間人攻擊,從而導致SCADA系統(tǒng)發(fā)生異常。
從DNP3協(xié)議本身來看,存在如下問題。(1)認證機制缺失,導致入侵者能夠非法建立DNP3通信會話,擾亂控制系統(tǒng)正常運轉。在標準DNP3協(xié)議中,通過觀察數(shù)據(jù)鏈路層的數(shù)據(jù)包格式可以發(fā)現(xiàn),通過鏈路層控制字部分中的DIR標識來表示主從站,鏈路層傳輸單元中并不包含任何認證信息,這樣就無法判斷信息發(fā)送者的身份是否合法。在這種情況下,攻擊者通過篡改傳輸數(shù)據(jù)和功能碼字段等方式來達到干擾通信和惡意指令傳達、設備控制等目的,從而威脅通信系統(tǒng)的安全。(2)加密機制缺失,在該協(xié)議中,用戶數(shù)據(jù)和控制指令都是以明文形式進行傳輸,在這種情況下,攻擊者可以通過監(jiān)聽、嗅探、假冒等手段達到竊取、修改用戶數(shù)據(jù)等目的。(3)完整性保護缺失,雖然在標準DNP3協(xié)議中,每個數(shù)據(jù)鏈路層報文中都包含一個CRC校驗碼,它能夠校驗傳輸數(shù)據(jù)的正確性和完整性,但是并不能達到保護數(shù)據(jù)不被篡改的目的。DNP3協(xié)議在通信過程中也存在一定問題。在實時通信過程中的報文極易被截獲和惡意篡改,從而導致安全隱患的發(fā)生。其主要存在被攻擊的行為有竊聽、中間人攻擊等。(1)無法抵抗竊聽攻擊,當所有的用戶數(shù)據(jù)和控制指令都是通過明文形式進行傳輸?shù)臅r候,攻擊者很容易獲取有效的通信地址,并且對系統(tǒng)中傳輸?shù)男畔⑦M行竊聽,從而獲取相應的報文信息。(2)無法抵抗中間人攻擊,該協(xié)議由于對主和外站所采用的判別方法過于簡單,根據(jù)DIR標志位的0-1狀態(tài)很容易判斷當前報文發(fā)送方向,這相比于其他協(xié)議更容易實施遭受中間人攻擊,從而引發(fā)導致SCADA系統(tǒng)發(fā)生異常。另外,當入侵者模擬外站向主站發(fā)送非請求報文時,不需要主站給予權限便能夠上傳數(shù)據(jù),因此攻擊者還可利用這一漏洞發(fā)動拒絕服務攻擊等。3.4.3DNP3協(xié)議安全防護技術為了彌補DNP3協(xié)議中存在的不足,認證和加密機制相繼被引入其中,SecureDNP3和DNPSec是具有代表性的解決方案。SecureDNP3是針對標準DNP3協(xié)議的改進,通過修改其應用層報文結構,同時引入認證技術,保證數(shù)據(jù)的真實性和完整性,但是該方案缺乏加密機制,傳輸?shù)臄?shù)據(jù)仍舊是明文形式,所以攻擊者能夠通過監(jiān)聽等收到收集系統(tǒng)數(shù)據(jù)。DNPSec安全機制修改的對象則是數(shù)據(jù)鏈路層,通過添加必要的字段實現(xiàn)認證和加密功能,但是這種方案對設備的計算能力和存儲能力要求較高,在實際中使用并不廣泛。目前,一些SCADA系統(tǒng)中針對DNP3協(xié)議實現(xiàn)安全通信采用的手段仍然是通過防火墻結合SSL和入侵檢測實現(xiàn)的。通過釆取傳輸層協(xié)議安全措施,如使用傳輸層安全協(xié)議(TLS)等,即將DNP3數(shù)據(jù)流視為機密信息,盡量使用各種TCP/IP安全手段進行保護。在實際工程部署中,DNP3主控站與子站往往被隔離到只包含授權設備的唯一分區(qū)中,因此可以通過防火墻、IDS等設備部署,對DNP3鏈路上的數(shù)據(jù)類型、數(shù)據(jù)源及其目的地址進行嚴格控制,實現(xiàn)分區(qū)全面的安全加固。3.5OPC協(xié)議1990年微軟提出了動態(tài)數(shù)據(jù)互換技術,到了1992年對象鏈接與嵌入技術2.0相對成熟,推出了面向對象的設計和編程,包括COM/DCOM技術用于不同對象間的數(shù)據(jù)交換,1996年OPC基金會正式成立并發(fā)布了OPCDA1.0,之后陸續(xù)發(fā)布了DA2.0、DA3.0,以及OPCUA即OPC統(tǒng)一架構。OPC是OLEforProcessControl的縮寫,即用于過程控制的OLE。我們所熟知的OPC規(guī)范一般是指OPCClassic,被廣泛應用于各個行業(yè),包括制造業(yè)、樓宇自動化、石油和天然氣、可再生能源和公用事業(yè)等領域。3.5.1OPC協(xié)議概述OPC出現(xiàn)的目的是為不同的供應商設備與應用程序之間的接口標準化從而使之間的數(shù)據(jù)交換更加簡單,這樣可以使開發(fā)者不依靠于特定開發(fā)語言和開發(fā)環(huán)境的過程控制軟件。OPC標準是把PLC特定的協(xié)議(如Modbus、Profibus等)抽象成為標準化的接口,作為“中間人”的角色把通用的OPC“讀寫”請求轉換成具體的設備協(xié)議來與HMI/SCADA系統(tǒng)直接對接,反之亦然。由此出現(xiàn)了一個完整的產(chǎn)品行業(yè),終端用戶可以借助其來最優(yōu)化產(chǎn)品,通過OPC協(xié)議來實現(xiàn)系統(tǒng)的無縫交互。OPC是一項應用于自動化行業(yè)及其他行業(yè)的數(shù)據(jù)安全交換可互操作性標準。它獨立于平臺,并確保來自多個廠商的設備之間信息的無縫傳輸,OPC基金會負責該標準的開發(fā)和維護。OPC標準是由行業(yè)供應商、終端用戶和軟件開發(fā)者共同制定的一系列規(guī)范。這些規(guī)范定義了客戶端與服務器之間以及服務器與服務器之間的接口,比如訪問實早期的過程監(jiān)控中硬件和軟件的設置主要利用驅動器進行系統(tǒng)連接。各種應用軟件都必須提供設備的驅動程序,即需要若干個驅動程序維持系統(tǒng)的正常運行,而且各軟件間不能相互通信。因為各個軟件來自不同的開發(fā)商,具有對同一設備不同的相互獨立的驅動程序,所以多個軟件也不能同時對同一個設備存取數(shù)據(jù),否則可能造成系統(tǒng)的癱瘓。同時,某一個設備的升級要求該設備的所有驅動程序升級,否則會具有嚴重的隱患。這樣的一個系統(tǒng)要想要長期維護,工作量是非常大的。為了避免驅動器連接的不足,可以采用OPC控制進行系統(tǒng)連接,這樣大大優(yōu)化了系統(tǒng)間的通信,變得更加簡便快捷。OPC技術包含一系列的標準規(guī)范如DA、HDA、A&E等。這些訪問規(guī)范都是由OPC基金會創(chuàng)建、發(fā)行并維護,基金會創(chuàng)建的這些標準和維護從根本上保證了OPC技術的兼容性。隨著在制造系統(tǒng)以服務為導向架構的引入,如何重新定義架構來確保數(shù)據(jù)的安全性,這給OPC帶來了新的挑戰(zhàn),也促使OPC基金會創(chuàng)立了新的架構——OPCUA,以滿足這些需求。與此同時,OPCUA也為新的開發(fā)和拓展提供了一個功能豐富的開放式技術平臺。OPC協(xié)議采用客戶端/服務器模式,在客戶端和服務器端都各自定義了統(tǒng)一的符合OPC標準的接口,此接口具有不變特性。當OPC客戶端與服務器在同一臺計算機上時,客戶端通過COM進行本地過程調用(LPC)服務;當客戶端與服務器不在同一臺計算機上時,客戶端通過DCOM進行遠程過程調用(RPC)服務與服務器進行通信。OPC服務器通常支持兩種類型的訪問接口,它們分別為不同的編程語言環(huán)境提供訪問機制。OPC規(guī)范了接口函數(shù),不管現(xiàn)場設備以何種形式存在,客戶都以統(tǒng)一的方式去訪問,從而保證軟件對客戶的透明性,使得用戶完全從低層的開發(fā)中脫離出來。對于軟件開發(fā)商而言,不再專注于開發(fā)各種硬件設備的驅動程序,而是把焦點集中在增加和完善軟件的功能上,使自己的軟件更易被用戶接受和使用。對于硬件設備制造商,再也不必擔心自己的產(chǎn)品因為沒有為某些軟件提供驅動程序而被用戶所忽視或放棄。一次編寫的驅動程序(OPC服務器)可以被所有的應用軟件所用。不僅節(jié)省了各種I/O驅動程序的開發(fā)費用,而且可以讓制造商集中精力生產(chǎn)更易于用戶使用的、功能完善的硬件。1.OPC邏輯對象模型OPC服務中有三類對象:OPCServer對象、OPCGroup對象、OPCItem對象,每一類對象都包含一系列的接口。OPCServer對象主要是功能創(chuàng)建和管理OPCGroup對象、管理服務器內部的狀態(tài)信息。OPCGroup對象主要管理該對象的內容狀態(tài)信息、創(chuàng)建和管理Item對象以及服務器內部的實時數(shù)據(jù)的存取服務(同步與異步),通常分為私有組和公有組。公有組有多個客戶共享、私有組只屬于某個客戶,大多數(shù)的服務器均未實現(xiàn)公有組。OPCItem對象主要用來描述實時數(shù)據(jù),一個Item對象不能單獨被OPC客戶端訪問,所有的對象的訪問必須通過OPCGroup訪問。2.OPC通信方式(1)同步通信:OPC客戶端對OPC服務端進行讀取操作時,OPC客戶端必須等到OPC服務器端完成對應操作后才能返回,在此期間OPC客戶端處于一直等待的狀態(tài)。(2)異步通信:OPC客戶端對OPC服務器端進行讀取操作時,OPC客戶端發(fā)送請求后立即返回,不用等待服務器端,當OPC服務器端完成操作后再通知客戶端程序。(3)訂閱:需要服務器端支持OPCAE規(guī)范,由客戶端設定數(shù)據(jù)的變化限度,如果數(shù)據(jù)源的實時數(shù)據(jù)變化超過了該限度,服務器則通過回調返回數(shù)據(jù)給客戶端。3.OPC系列規(guī)范OPC
Classic規(guī)范基于MicrosoftWindows技術,使用COM/DCOM(分布式組件對象模型)在軟件組件之間交換數(shù)據(jù)。規(guī)范為訪問過程數(shù)據(jù)、報警和歷史數(shù)據(jù)提供了單獨的定義。(1)OPCDataAccess(OPCDA)OPC數(shù)據(jù)訪問規(guī)范:定義了數(shù)據(jù)交換,包括值、時間和質量信息。(2)OPCAlarms&Events(OPCA&E)OPC報警和事件規(guī)范:定義了報警和事件類型信息的交換,以及變量狀態(tài)和狀態(tài)管理。(3)OPCHistoricalDataAccess(OPCHDA)OPCHDA規(guī)范定義了可應用于歷史數(shù)據(jù)、時間數(shù)據(jù)的查詢和分析的方法。OPC經(jīng)典規(guī)范已經(jīng)很好地服務于工業(yè)企業(yè)。然而隨著技術的發(fā)展,企業(yè)對OPC規(guī)范的需求也在增長。OPC基金會發(fā)布的OPC統(tǒng)一架構(OPCUA)是一個獨立于平臺的面向服務的架構,集成了OPCClassic規(guī)范的所有功能,并且兼容OPCClassic。1.OPCUA規(guī)范OPCUA規(guī)范包含核心規(guī)范部分與存取類型規(guī)范部分,其中核心規(guī)范部分包括OPCUADataAccess、OPCUAAlarmsandConditions、OPCUAPrograms以及OPCUAHistoricalAccess規(guī)范;存取規(guī)范部分包括OPCUASecurityModel、OPCUAAddressSpaceModel、OPCUAServices、OPCUAInformationModel、OPCUAServiceMappings和OPCUAProfiles等。在生產(chǎn)管理軟件的不斷發(fā)展過程中,標準的采用也在不斷更新,為適應應用需求的發(fā)展,
OPCUA規(guī)范為企業(yè)軟件架構的建立指明了新的方向。
OPCUA具備以下特點:
1)
功能方面
OPCUA不僅支持傳統(tǒng)OPC的所有功能,更支持更多新的功能:網(wǎng)絡發(fā)現(xiàn):自動查詢本PC機中與當前網(wǎng)絡中可用的OPCServer。地址空間優(yōu)化:所有的數(shù)據(jù)都可以分級結構定義,使得OPCClient不僅能夠讀取并利用簡單數(shù)據(jù),也能訪問復雜的結構體?;ピL認證:所有的讀寫數(shù)據(jù)/消息行為,都必須有訪問許可。數(shù)據(jù)訂閱:針對OPCClient不同的配置與標準,提供數(shù)據(jù)/消息的監(jiān)控,以及數(shù)值變化時的變化報告。方案功能:OPCUA中定義了通過在OPCServer中定義方案,以便讓OPCClient執(zhí)行特定的程序。復雜數(shù)據(jù)內置:在數(shù)據(jù)獲取標準OPCDA中增加了復雜數(shù)據(jù)規(guī)范。增強的命名空間:在目前的
OPC規(guī)范中支持將數(shù)據(jù)組織成層次結構,OPCUA更支持無限的節(jié)點命名和無限的關系設定,同時每個節(jié)點均可以對其他節(jié)點有無限的關系設定。大量的服務功能:OPCUA規(guī)范定義了大量的通用服務。采用UA二進制編碼,使數(shù)據(jù)快速編碼和解碼,提高了數(shù)據(jù)的傳輸速度。它還能集成現(xiàn)有的基于COM/DCOM技術開發(fā)的OPC服務器(DA、HDA、A&E),使它們很容易通過OPCUA映射和使用。2)平臺支持方面OPCUA標準解決了跨越微軟系統(tǒng)平臺,實現(xiàn)了多平臺的互操作性,提供了更多的可支持的硬件或軟件平臺。硬件平臺:傳統(tǒng)PC硬件、云服務器、PLC、微控制器(ARM等)操作系統(tǒng):MicrosoftWindows、AppleOSX、Android或任何Linux發(fā)行版本等OPCUA為企業(yè)之間的互操作性提供必要的M2M、M2E及兩者之間的基礎架構。3)安全性方面集成的OPCUA數(shù)據(jù)加密功能符合國際安全標準,為Internet及各企業(yè)網(wǎng)絡內的遠程訪問和數(shù)據(jù)共享、客戶端和服務器之間的安全通訊提供了保障。最大的變化是OPCUA可以通過任何單一端口(經(jīng)管理員開放后)進行通信,這使得OPC通信不再會由于防火墻受到大量的限制。和現(xiàn)行OPC一樣,OPCUA系統(tǒng)結構包括OPCUA服務器和客戶端兩個部分,每個系統(tǒng)允
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《民生期貨梁立恒》課件
- 2025年長治貨運考試
- 2025年怒江如何考貨運從業(yè)資格證
- 2025年白山貨運資格證模擬考試題庫下載
- 研究生考試考研歷史學專業(yè)基礎(313)試題及解答參考
- 汽車租賃車型協(xié)議
- 深圳市施工期限規(guī)范實施細則
- 鞋業(yè)公司醫(yī)生招聘合同
- 宅基地贈與合同范本
- 電商運營兼職合作協(xié)議
- 《水產(chǎn)動物營養(yǎng)與飼料學》課件第1課-蛋白質營養(yǎng)
- 三卡方分布上側分位數(shù)表
- 工程項目資料歸檔管理表(全)
- 機械加工設備清單及參考價格
- 國電智深DCS系統(tǒng)培訓PPT課件
- XX系實驗室安全隱患自查臺賬
- 腫瘤科護理工作計劃
- 醫(yī)療器械質量工作記錄管理制度
- 護理實習生帶教計劃工作表
- 架空輸電線路桿塔位移計算
- 公司章程范本_公司章程獨資
評論
0/150
提交評論