張 宇
(中國電子科技集團公司第十研究所,成都 610036)
自動化和過程控制在工業(yè)中扮演著重要的角色。隨著信息化的提升,工業(yè)自動化系統(tǒng)不能被看作是“孤島”,它本身是封閉的,但必須允許各設備之間的互連、通信和監(jiān)控。工業(yè)自動化控制網(wǎng)絡(以下簡稱“工業(yè)網(wǎng)絡”)涉及現(xiàn)場設備、數(shù)字化控制器、各種軟件,以及外部系統(tǒng)之間通信協(xié)議的實施。
工業(yè)網(wǎng)絡覆蓋了一個國家多個關鍵基礎設施的領域,如制造業(yè)和發(fā)電行業(yè)。它們是高度專業(yè)化的,并利用各種定制化的協(xié)議,以達到對物理設備實時控制的目的。由于工業(yè)現(xiàn)場環(huán)境對自動化的依賴程度不斷提高,工業(yè)網(wǎng)絡的應用層面不斷拓寬。工業(yè)網(wǎng)絡與互聯(lián)網(wǎng)等傳統(tǒng)技術也進一步融合,工業(yè)網(wǎng)絡技術在各個方面取得了巨大的發(fā)展,不斷地有新的解決方案、新的標準、新的概念被提出,例如工業(yè)實時以太網(wǎng)的技術、工業(yè)無線傳輸技術、工業(yè)網(wǎng)絡信息安全保障技術等。
工業(yè)的發(fā)展依賴于自動化控制技術,工業(yè)自動化在能源、軌道交通等領域發(fā)揮著重要的作用,通過分析生產流程的環(huán)節(jié),設定準確的運行參數(shù),可以保證工業(yè)系統(tǒng)安全穩(wěn)定運行,同時還具備部分故障自動診斷、檢修、快速應急響應及恢復的功能。傳統(tǒng)工業(yè)自動化逐漸融入計算機技術,慢慢呈現(xiàn)出智能化的特征,而背后的通信網(wǎng)絡技術也在相應的不斷發(fā)展。
互聯(lián)網(wǎng)絡為大家眾所周知,而工業(yè)網(wǎng)絡則更加行業(yè)化。盡管隨著工業(yè)網(wǎng)絡的發(fā)展,如與以太網(wǎng)技術的結合,已經開始模糊工業(yè)網(wǎng)絡和傳統(tǒng)互聯(lián)網(wǎng)絡之間的界限,但在其核心,它們面向的對象不同,有著不同的需求。最本質的區(qū)別是,工業(yè)網(wǎng)絡以某種形式連接到物理設備,并用于控制和監(jiān)控實體設備的行為和執(zhí)行條件[1]。這導致了對一套不同于互聯(lián)網(wǎng)網(wǎng)絡的服務質量(QoS)的要求,比如對強確定性和實時數(shù)據(jù)傳輸?shù)囊?。參考相關資料,總結了工業(yè)網(wǎng)絡與傳統(tǒng)以太網(wǎng)的多方面要求及典型差異[2]。具體見表1,下面將詳細分析介紹。
表1 工業(yè)網(wǎng)絡和傳統(tǒng)網(wǎng)絡之間的典型差異Table 1 Typical differences between industrial networks and traditional networks
在應用方面,工業(yè)網(wǎng)絡應用于許多工業(yè)領域,包括制造、電力、能源等,幾乎在每一種需要對實體設備進行監(jiān)視和控制的情況下,都會以某種形式安裝工業(yè)網(wǎng)絡。每個行業(yè)都有自己的一套稍有不同但通常相似的需求,可以大致分為以下幾個領域:離散制造、過程控制、運輸和嵌入式系統(tǒng)[3]。
在架構方面,工業(yè)網(wǎng)絡通常比傳統(tǒng)互聯(lián)網(wǎng)絡具有更深層次的架構。例如,一個企業(yè)的互聯(lián)網(wǎng)絡由局域網(wǎng)組成,局域網(wǎng)絡由主干網(wǎng)或廣域網(wǎng)對外連接。然而,一個小型工業(yè)網(wǎng)絡也傾向于有3層或4層乃至更多的層次結構,包括儀器儀表設備現(xiàn)場層、儀器與控制器連接、控制器互連的控制層,人機接口(HMI)和過程監(jiān)控的監(jiān)控層,生產管理網(wǎng)絡的生產管理層,企業(yè)進行管理網(wǎng)絡的企業(yè)管理層等。不同的協(xié)議和物理介質經常在每一層中使用,彼此之間采用網(wǎng)關設備來實現(xiàn)通信。工業(yè)網(wǎng)絡協(xié)議和技術的改進,導致了典型工業(yè)層次結構的一些扁平化,重點包括在較高層的組合中。然而,為了保持與被控制設備的功能層次結構的相關獨立性,網(wǎng)絡架構通常不會盡可能地扁平化。例如,發(fā)電設施內的“電力設備孤島”將保留獨立的控制網(wǎng)絡,以便在機械和控制水平上保持單元序列之間的邏輯分離。
在故障嚴重程度方面,由于工業(yè)控制網(wǎng)絡與物理設備相連,系統(tǒng)故障的影響要比互聯(lián)網(wǎng)領域嚴重得多。工業(yè)網(wǎng)絡故障的各種影響,包括設備損壞、生產損失、環(huán)境破壞、聲譽損失,甚至生命損失[1]。
在實時性方面,流程和設備運行的速度要求數(shù)據(jù)傳輸、處理和響應盡可能接近、及時。一般的規(guī)則是響應時間應該小于收集數(shù)據(jù)的采樣時間,特別是在閉環(huán)系統(tǒng)的情況下,信息傳遞的延遲會嚴重影響控制回路的性能?;ヂ?lián)網(wǎng)絡往往沒有任何響應時間要求,即使有,通常也在幾十毫秒或更確切地說是幾秒的范圍內[4,5]。工業(yè)自動化網(wǎng)絡的層次越高,對時間的要求就越低,在最高層次上就開始類似于互聯(lián)網(wǎng)絡。
在確定性方面,在工業(yè)網(wǎng)絡的最底層使用的數(shù)據(jù)不僅必須實時傳輸,而且必須以可預測的或確定性的方式進行。為了使網(wǎng)絡具有確定性,它必須能夠預測何時會收到對傳輸?shù)膽?。這意味著信號的延遲必須是有界的,并且具有低方差信號。響應時間的變化通常稱為時間抖動,由于時間上的變化對控制回路有負面影響,因而高實時、高可靠控制網(wǎng)絡需要低抖動。
在數(shù)據(jù)量方面,工業(yè)網(wǎng)絡中傳輸?shù)男畔⒍x為控制信息、診斷信息和安全信息[6]。控制信息在儀表和控制器之間發(fā)送,是控制器中實現(xiàn)的控制回路的輸入或輸出,如包括執(zhí)行器位置、流體流量及驅動速度。診斷信息是由控制系統(tǒng)進行自我收集反饋,這種信息通常用于監(jiān)測工廠設備的健康狀況,例如設備負荷率、溫度。安全信息用于實現(xiàn)關鍵功能,如設備的安全關閉和保護電路的運行。在工業(yè)級傳輸?shù)臄?shù)據(jù)包通常非常小,特別是在低級別的架構,可能只需要傳輸一個模擬量值或開關量值,以及一些系統(tǒng)開銷信息。這樣的傳輸通常只有幾個字節(jié)大小,例如單個二進制狀態(tài)或16位值的傳輸。另一方面,互聯(lián)網(wǎng)絡經常傳輸千字節(jié)或更多的數(shù)據(jù),數(shù)據(jù)包大小至少從64字節(jié)開始。這種差異需要在網(wǎng)絡協(xié)議棧中使用不同的協(xié)議,主要集中在較小數(shù)據(jù)包的傳輸上。
在周期性方面,工業(yè)網(wǎng)絡既需要周期性采樣數(shù)據(jù)的傳輸,也需要非周期性事件的傳輸,如狀態(tài)或報警條件的變化。如上所述,這些信號必須在設定的時間段內傳輸。根據(jù)控制要求,不同設備采集和傳輸數(shù)據(jù)的采樣周期可能不同。針對隨時可能出現(xiàn)非周期性數(shù)據(jù),為了方便此類傳輸,在工業(yè)網(wǎng)絡協(xié)議中較低的層次上研制了基于時鐘和總線競爭的通信協(xié)議,以確保所有數(shù)據(jù)都能及時傳輸,而在互聯(lián)網(wǎng)絡中不存在這樣的考慮。在傳統(tǒng)互聯(lián)網(wǎng)絡中,數(shù)據(jù)傳輸是“盡最大努力”實現(xiàn)的,在數(shù)據(jù)傳輸之前可能涉及隨機延遲。
在一致性方面,在工業(yè)網(wǎng)絡中,需要確定傳輸發(fā)生的時間和網(wǎng)絡中事件的順序,特別是在非周期性傳輸?shù)那闆r下。通常這是通過使用時間戳和同步時鐘實現(xiàn)的,而不是采用通用協(xié)議實現(xiàn)的。
工業(yè)網(wǎng)絡由專門的組件和應用程序組成,如可編程邏輯控制器(PLC)、監(jiān)控和數(shù)據(jù)采集系統(tǒng)(SCADA)和分布式控制系統(tǒng)(DCS)。工業(yè)網(wǎng)絡主要關心的是這些組件和系統(tǒng)內部以及它們之間的通信。工業(yè)網(wǎng)絡的核心由現(xiàn)場總線協(xié)議組成,在IEC61158中定義為“用于與工業(yè)控制和儀表設備(包括但不限于傳感器、執(zhí)行器和本地控制器)通信的數(shù)字、串行、多點、數(shù)據(jù)總線”。工業(yè)控制網(wǎng)絡可以分為3代不同的、具有不同兼容性水平的網(wǎng)絡[7]。第一種是傳統(tǒng)的基于串行的現(xiàn)場總線協(xié)議,這類總線協(xié)議種類繁多,由諸多研究機構自研,具備特定的應用范圍等;第二種是基于以太網(wǎng)的協(xié)議;最新一代已經開始包含無線通信技術。以太網(wǎng)技術的結合,使得曾經截然不同的現(xiàn)場總線和互聯(lián)網(wǎng)技術越來越相似。這就產生了新的術語,如工業(yè)控制網(wǎng)絡,它不僅包括傳統(tǒng)現(xiàn)場總線的功能和要求,而且還包括基于以太網(wǎng)系統(tǒng)提供的附加功能和要求。
現(xiàn)場總線系統(tǒng)的幾個前身早在20世紀70年代就開始研制,許多現(xiàn)場總線是并行開發(fā)的,分布于科研機構和不同的控制系統(tǒng)供應商,以滿足不同行業(yè)的不同用戶定義的需求。后來私有總線協(xié)議逐漸被開放協(xié)議所取代,協(xié)議的標準化提高了總線協(xié)議的可靠性和穩(wěn)定性。
IEC最終公布了IEC61158中所有現(xiàn)有的標準,由于該標準繁雜冗余,緊接著推出IEC61784做出了說明。其中,唯一由IEC開發(fā)的部分是61158-2,它定義了物理層,并被大多數(shù)提供安全設計的現(xiàn)場總線所采用。以
太網(wǎng)作為TCP/IP和用戶數(shù)據(jù)報文協(xié)議(UDP)棧的一部分,最初在工業(yè)領域沒有得到太多人的接受。隨著以太網(wǎng)技術的發(fā)展,使其更適合于工業(yè)用途,特別是新的以太網(wǎng)標準(如802.3u快速以太網(wǎng))增加的數(shù)據(jù)速率使創(chuàng)建實時以太網(wǎng)協(xié)議變得更容易。根本原由在于傳輸和重傳時間大大縮短,實時需求可以通過多種方法來實現(xiàn)[8]。于是誕生了許多現(xiàn)場總線技術,包括CAN、HAPT、PROFIBUS、Ethernet/IP、基 金 會 現(xiàn) 場 總 線FF、MODBUS/TCP、EtherCAT等諸多現(xiàn)場總線。
工業(yè)通信協(xié)議的發(fā)展是由于終端用戶的要求,以及適應工業(yè)環(huán)境的新技術的出現(xiàn)而開始的,由國際標準組織(ISO)創(chuàng)建的開放系統(tǒng)互連(OSI)7層模型,包括物理層、鏈路層、網(wǎng)絡層、傳輸層、表示層、會話層和應用層。每一層都描述了將信息從一個應用程序發(fā)送到另一個應用程序所需的服務,以及層之間的接口,幫助定義和創(chuàng)建了通信協(xié)議和服務,實現(xiàn)標準的互連。常用的通信協(xié)議如下:
1)CANopen
CANopen是用于自動化的CAN的高水平擴展,被移交給自動化組織,該組織現(xiàn)在管理該協(xié)議。CANopen在歐洲EN50325標準和其他基于CAN的協(xié)議中被定義,CANopen標準為特定的實現(xiàn),定義了廣泛的應用配置文件,如運動控制等。
2)EtherNet/IP
該協(xié)議是在TCP/IP之上,結合通用工業(yè)協(xié)議(Common Industrial Protocol, 簡 稱CIP) 作 為應用層實現(xiàn),是面向工業(yè)自動化應用的工業(yè)應用層協(xié)議,在IEC61784-1中被定義。它最初由羅克韋爾自動化開發(fā),由開放式設備網(wǎng)絡供應商協(xié)會(Open DeviceNet Vendor Association,簡 稱ODVA)和 其 他CIP現(xiàn) 場總線維護。CIP應用層的使用允許3個現(xiàn)場總線之間的緊密集成,并且可以通過網(wǎng)關設備實現(xiàn)它們之間的通信。盡管不是嚴格的確定性,Ethernet/IP通過使用優(yōu)先消息和使用IEEE1588協(xié)議的時鐘同步提供實時性能。這些考慮與全雙工交換體系結構相結合,可以防止由于沖突造成的延遲,網(wǎng)絡中的操作基于計劃的計時而不是實際的計時,以抵消在網(wǎng)絡棧中遇到的延遲[8]。
3)PROFIBUS
由于西門子對PROFIBUS的認可,PROFIBUS可以說是最著名和應用最廣泛的現(xiàn)場總線之一。PROFIBUS由多個德國公司和機構聯(lián)合開發(fā)而成,是最早創(chuàng)建的現(xiàn)場總線之一。最初由不同的區(qū)域組織管理,這些組織聯(lián)合起來組成了PROFIBUS國際組織,現(xiàn)在負責維護EN 50170、IEC 61158和IEC 61784中定義的標準。在PROFIBUS中,定義了不同的配置文件,每個配置文件適用于不同的應用程序。
4)其他現(xiàn)場總線協(xié)議
目前,被IEC采納并被添加到61158和61784標準中的總線協(xié)議越來越多,工業(yè)領域較為知名的協(xié)議包括:Ethernet Powerlink(EPL)、EtherNet/IP、Profinet、EtherCAT、EPA等工業(yè)實時以太網(wǎng)協(xié)議[9]。
從工業(yè)網(wǎng)絡技術特征和發(fā)展歷程不難看出,重點是針對工業(yè)應用場景的需求,實現(xiàn)與保障現(xiàn)場業(yè)務系統(tǒng)之間的通信與數(shù)據(jù)傳輸,而針對工業(yè)網(wǎng)絡和業(yè)務數(shù)據(jù)的安全性,在設計之初并未重點考慮。
隨著工業(yè)4.0、工業(yè)互聯(lián)網(wǎng)和智能制造等概念的提出,現(xiàn)場工業(yè)系統(tǒng)也逐漸融合工業(yè)控制技術和信息通信技術。針對不同的工業(yè)應用場景需求,新的技術理念不斷出現(xiàn),但是出現(xiàn)信息泄露與篡改的風險也越來越大。而國家頒布的等保2.0、關鍵基礎設施保護條例等標準法規(guī)逐漸落地,工業(yè)領域作為國家關鍵基礎設施領域,其對應的信息安全防護水平也應隨之提高。
由于工業(yè)網(wǎng)絡中使用的技術越來越多的重疊,因而工業(yè)網(wǎng)絡中的安全與互聯(lián)網(wǎng)絡中的安全非常相似。雖然這兩個網(wǎng)絡都存在許多相同的威脅,但工業(yè)網(wǎng)絡的額外需求和考慮因素意味著安全性可能往往更難以實現(xiàn)。網(wǎng)絡安全的目標是提供機密性、信息的完整性、可用性、身份驗證、授權、可審核性、不可公開性,以及來自第三方保護[11]。這些特性的缺失或丟失,可能會導致網(wǎng)絡出現(xiàn)故障。
前文已述,工業(yè)網(wǎng)絡的故障會產生嚴重的影響。這種故障可能是偶然的,也可能是由惡意造成的,這些故障的預防分別由可靠性和安全性來提供。如果網(wǎng)絡本身不能或沒有通過其自身的可靠性考慮來解決這些缺陷,則必須采取額外的措施來防止訪問這些缺陷,并提高系統(tǒng)的安全性,確保工業(yè)網(wǎng)絡安全已成為確保國家關鍵基礎設施安全的先決條件。
隨著中國國密算法推出及逐漸得到國際認可,采用國家商用密碼算法(如SM系列)是互聯(lián)網(wǎng)絡中保護通信安全的核心部分,因為它們可以提供數(shù)據(jù)保密性、完整性和身份驗證功能。傳統(tǒng)網(wǎng)絡設備的使用,意味著許多已建立的技術,如IPsec和SSL協(xié)議,可以在更高的層次上使用。然而,控制設備的性質使得在較低級別實現(xiàn)安全特性存在實施困難的問題。工業(yè)設備的生命周期通常比企業(yè)網(wǎng)絡長得多,對可靠性的要求也高得多。因此,工業(yè)網(wǎng)絡設備中使用的技術通常必須是成熟的,經過了多層次驗證后的。此外,底層工業(yè)協(xié)議的局限性設計也給安全的實現(xiàn)帶來了困難。許多協(xié)議的低數(shù)據(jù)傳輸速率,意味著它們將受到安全通信所需的額外開銷的不利影響。傳統(tǒng)的安全協(xié)議,如IP sec、SSL和VPN,在工業(yè)自動化網(wǎng)終中并不實用,因為它們缺乏對多播和廣播傳輸?shù)闹С諿12]。在工業(yè)網(wǎng)絡中使用密碼算法時,密鑰分發(fā)也存在問題,因為成千上萬的設備可能需要密鑰。許多密鑰分配方法的設想都涉及到設備調試期間的人工干預,而沒有考慮密鑰的壽命。密鑰的長度和使用的算法決定了解密敏感信息所需的時間長度,這兩者通常與要保護的數(shù)據(jù)的預期生存周期相匹配。
分析國家商用密碼算法使用標準要求,總結SM2/3/4算法主要應用側重點如圖1所示。在底層使用密碼算法與通信協(xié)議進行融合,針對數(shù)據(jù)保密性、數(shù)據(jù)防篡改、身份鑒別等方面的信息安全要求,采用SM3+SM4實現(xiàn)數(shù)據(jù)保密性要求,SM2+SM4實現(xiàn)他方身份鑒別功能要求,SM2+SM3實現(xiàn)數(shù)據(jù)防篡改的功能要求?;谝陨希瑯嫿ㄡ槍I(yè)控制系統(tǒng)安全通信網(wǎng)絡的主動防御技術框架,保障整個通信網(wǎng)絡的可信性。針對實時性問題,一方面可以采用現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array,簡稱FPGA)并行技術代替CPU進行對稱密碼算法運算,實現(xiàn)數(shù)據(jù)硬件快速加解密。同時,在滿足系統(tǒng)功耗、內存余量的前提下,可以考慮將對稱密碼算法的運算步驟進行提前運算,將每步運算結果提前存儲于控制器內存中,綜合生成表格,在運算時只需查表即可,從而減少時延。通過以上兩方面技術的結合,可大幅度減少密碼算法帶來的時延,提高密碼算法在通信技術的適用性。
圖1 國密算法應用Fig.1 National secret algorithm application
密鑰管理這塊,可以采取關鍵區(qū)域密碼分發(fā)更新策略,設備彼此根據(jù)預定的策略通過交互完成密鑰生成、更新。針對非關鍵設備,密鑰可以在設計之初將密鑰分散存儲于固件內,在運維的周期內考慮不更新或長周期交互更新操作。
目前,備受關注的研究領域是現(xiàn)有協(xié)議和設備的漏洞識別,以及分析現(xiàn)有網(wǎng)絡以檢測和減少漏洞的方法[13,14]。這種分析對于制定有效的安全政策是至關重要的,而這往往是成功地確保網(wǎng)絡安全的最困難的方面之一,安全策略的創(chuàng)建不僅需要對設備和協(xié)議進行仔細的分析,解決已識別的漏洞的方法,也必須與執(zhí)行的成本和實用性相平衡,同時建立相關設備漏洞庫也是必要的。
通用通信協(xié)議并未重點考慮信息安全問題,如MODBUS/TCP端口固定、功能碼固定、明文傳輸?shù)?,因此在工控系統(tǒng)設計之初,可以采用基于“白名單”思想,為控制系統(tǒng)中的通信收發(fā)方設定“白名單”,彼此只需響應名單中的內容,名單內容包含IP地址白名單、功能碼白名單、IP/MAC綁定等內容,同時旁路設定網(wǎng)絡流量監(jiān)測設備,防御如拒絕服務類似的信息安全攻擊。
針對通信設備的固有漏洞,考慮到優(yōu)先保障功能安全,信息安全設計不占用太多的系統(tǒng)資源,低層級的控制設備的內生安全技術是未來保障設備和通信網(wǎng)絡信息安全的基石,而國內提出的可信計算3.0技術有助于解決此類問題[15-25]。具體如圖2所示,基于硬件可信根(TCM),實現(xiàn)從系統(tǒng)引導程序到操作系統(tǒng)內核,最后到應用層的主動完整性度量,保障通信設備的可信性,有效避免系統(tǒng)漏洞威脅。
圖2 主動可信度量Fig.2 Active credibility measurement
最后,信息安全實現(xiàn)不應該干擾人員或設備的運行操作。在信息安全保障過程中,需要平衡功能安全與信息安全(簡稱“兩安”)在資源占用、措施沖突、實時響應時間這一系列層面的沖突問題,進行“兩安”協(xié)同設計,保障工業(yè)業(yè)務系統(tǒng)的正常運行。
工業(yè)網(wǎng)絡對控制現(xiàn)場物理設備的工業(yè)運作至關重要。自從第一個現(xiàn)場總線協(xié)議出現(xiàn)以來,工業(yè)網(wǎng)絡已經得到廣泛實施與運用,并在更大程度上被用于滿足各種各樣的控制、安全和工廠監(jiān)控要求。
這里對工業(yè)網(wǎng)絡技術進行了系統(tǒng)性的綜述。首先,對比了傳統(tǒng)互聯(lián)網(wǎng)絡的特點,重點分析了工業(yè)通信網(wǎng)絡的特征;然后,介紹了主流的現(xiàn)場總線和通信協(xié)議相關內容;最后,就工業(yè)網(wǎng)絡發(fā)展趨勢中的工業(yè)網(wǎng)絡信息安全問題進行了探討,指出了對應的痛點,提出了對應的解決技術點。