陳 琳,宋 震,張志勇,王志搏,閆國星,鄭明慧,朱佳文,陳 都
(中國船舶集團有限公司第七一四研究所,北京100101)
物聯網的發展無疑加速了數字化車間時代的到來,工業物聯網控制已成為一個熱門問題。工業物聯網在遠程監控,信息收集和減少人力[1]等方面具有巨大優勢。因此,它已被廣泛應用于智能電網[2],智能工廠[3]等物聯網控制情景中。工業物聯網控制系統實現了遠程設備與控制端之間的雙向通信,可以對分散式基礎設施進行集中監控。
不同的工業物聯網系統具有不同的角色和功能。例如,監督控制和數據采集(SCADA)系統已被廣泛應用于智能電網和數字油田[4]。然而,在諸如數字化智能工廠的場景中,海量數據和復雜的管理邏輯使得數據通常由第三方云進行初步分析和處理,然后轉發給相應的企業或用戶[5]。
分散的基礎架構和多樣化的應用程序需求明顯增加了工業物聯網系統中數據泄露的風險。然而,工業企業和工業數據通信協議的設計者并未對潛在的安全問題給予足夠的重視[6]。工業物聯網是典型的高風險行業,許多數據管理和消息傳輸模塊卻遭受內部人員或外部人員的密集攻擊[7]。常見工業物聯網協議,如Modbus,BACnet,MQTT[8],并非為數據安全性而設計,通常存在缺少身份驗證,數據機密性、數據完整性檢查和其他問題,這使得工業通信數據容易受到竊聽,身份欺詐和其他攻擊。Zolanvari等[9]專門分析了工業物聯網場景下主流協議的脆弱性和可能引起的攻擊。
面對脆弱的工業物聯網協議,業內已經做出了一些努力,提出了新協議來保護硬件安全性或保證數據完整性,但這仍然不足以解決問題。與智能家居和其他物聯網平臺不同,太多的應用場景和通信協議加劇了工業物聯網平臺中嚴重且廣泛的安全風險。提出的一些方案通過采用加密策略來實現物聯網平臺中的隱私保護和需求聚合[10],但是通常是根據特定的場景設計的,這使得這些解決方案主要是孤立和分散的。很少有工作能夠大規模解決工業物聯網平臺的常見數據安全問題,這意味著定制的安全要求大大提高了不同平臺的部署成本和難度。因此,本文提出一種可以廣泛解決不同工業物聯網平臺所面臨的數據安全風險的解決方案。
本文對不同類型的工業物聯網控制場景進行深入分析,設計了一種通用的安全方案來保護工業物聯網控制中的數據安全。首先分析工業物聯網場景所面臨的風險,包括工業物聯網協議的不安全性,弱密碼安全配置,內部攻擊的可能性,不安全的遠程支持以及云的不可靠性。然后針對上述攻擊,將不同的工業通信場景抽象為一個通用模型,并提出了在該模型下應達到的安全要求。最后,使用基于身份的可分組條件代理重新加密技術[11],構造一個通用安全技術方案。結果表明,該方案能夠以較低的開銷實現智能控制的數據安全性。本文研究總結如下:
1)新模型。
將不同的通信模型抽象為一個統一的通用模型。工業物聯網平臺的安全性取決于環境、協議、設備,這使得保護數據安全性的現有努力通常僅限于特定情況。這不能滿足工業物聯網平臺復雜和廣泛使用環境的需求。本文的工作使設計技術方案來保護各種工業物聯網平臺的數據安全成為可能。
2)全面的風險分析。
從內到外探索導致大多數工業物聯網平臺的數據泄露風險。協議風險:通信協議漏洞。用戶使用:弱密碼和內部攻擊造成的安全風險。外部風險:第三方平臺和基礎架構脆弱的外部接口的安全風險。
3)新技術方案。
提出一種通用安全技術方案,該技術方案可以實現身份認證,數據機密性和數據的細粒度分布,滿足當前的工業控制安全需求。本文評估了該方案在實際場景中的性能,結果表明額外增加的開銷可以忽略不計。
由于覆蓋范圍廣、安全性較低,工業物聯網控制系統在遭受攻擊后通常會造成巨大的損失。Pollet等[12]對SCADA,EMS,DCS,AM I和智能電網系統進行了100多次安全評估,其中SCADA相關安全事件的主要原因是企業IT網絡流量和第三方網絡互連。首次引入工業物聯網協議時,工業物聯網系統的安全性不是問題。結果,諸如MODBUS,Ethernet / IP,DNP 317和iso-tsap之類的通用協議在運行時不提供機密性、身份驗證或數據完整性,從而使其容易受到各種攻擊[13]。為了解決工業物聯網控制系統中的安全問題,已經提出了許多解決方案。Sun等[14]開發了一種網絡物理監視系統(CPMS),用于檢測智能電表入侵和不良數據注入攻擊。Celik等[15]引入了SAINT,這是一種用于物聯網應用程序的靜態污染分析工具,用于評估物聯網設備的安全性和隱私風險,但不能保證鏈接上數據的安全性。Mahmood等[16]提出一種基于Diffie-Hellman的混合輕量級認證方案,并確保了消息的完整性,但沒有考慮中間節點的安全性。Lin等[17]提出了一種基于區塊鏈的安全雙向認證系統BSeIn來實現細粒度的訪問控制策略,但是BSeIn的開銷在大多數工業物聯網控制系統中都不能忽略。Saxena等[18]提出了一種智能電網的認證和授權方案,可以有效地防止對不同設備的各種內部和外部攻擊。但是,由于弱口令攻擊和其他問題,該方案無法有效識別受攻擊的惡意設備。
大量工業物聯網系統根據功能需求和場景使用專有的通信協議。有數十種常見的工業物聯網協議,適用于不同的工業物聯網控制場景。常見的工業物聯網控制系統可以大致分為兩類:一類是以智能電網和數字油田為代表的SCADA系統;另一類是以智能工廠為代表的基于云平臺的工業物聯網控制系統。
通常,SCADA系統中有2個主要角色,即中心和外圍設備。外圍設備是數據持有者,通常是基礎結構。在數字油田的情況下,外圍設備是油井。為了確保油井的正常運行,在油井中分布了大量傳感器,用于感測現場數據。此外,采集現場的每個基礎設施還配備有PLC和RTU,用于將電信號轉換為數字信號,處理數據和控制設備。中心是數據請求者或命令啟動器??刂破骱捅O控中心之間的數據交互通常通過無線網絡傳輸。通常情況下,監控中心對監控工作進行統一管理,權限分配給不同的運營商,對不同地區的基礎設施進行監督。圖1為SCADA系統的體系結構。
圖1 SCADA系統的體系結構Fig.1 SCADA System Architecture
智能工廠和智能家居設備的運行是典型的基于云的工業物聯網控制系統。智能工廠利用物聯網技術和設備監控技術來加強信息管理和服務,實現車間的無人管理。如圖2所示,不同車間中的每條裝配線都配備有車間控制器,負責發布車間生產條件并接收指令。因為有許多從事工業生產的公司,無法實現集中管理。因此,車間控制器連接到云,而云連接到公司網絡。云執行數據的初步處理和分析,并將數據交付給相應的公司和車間進一步處理。
圖2 基于云的工業物聯網控制系統的架構Fig. 2 Cloud-based industrial IoT control system architecture
SCADA系統中的基礎設備通常較弱,并且需要在現場配備數據采集和控制設備。但是,基于云的工業物聯網控制系統增加了云,從而將一些計算任務轉移到云中,從而減輕了監控中心的負擔。
大多數工業物聯網協議僅設計為考慮不同的應用場景、功能要求和運營效率,而沒有考慮安全問題。作為行業標準協議,Modbus還存在以下問題:
1)缺乏身份證明。這意味著攻擊者只需找到有效地址即可建立Modbus會話。
2)缺少授權。這意味著用戶之間沒有分類,用戶權限也沒有劃分,這大大增加了內部攻擊的可能性。
3)缺乏數據加密機制。數據以純文本格式傳輸,因此攻擊者很容易攔截和解析數據。
由于工業物聯網協議太多,無法通過統一的協議修改方式來解決這些安全問題。
由于缺乏網絡安全意識,各個行業中的設備普遍存在弱密碼配置,大部分路由器、網關和設備都配置有默認密碼和空密碼[19]。
在具有大量基礎設施、工業控制路由器、PLC、RTU、HM I應用軟件等的工業物聯網控制系統中,此問題更為嚴重。由于這些設備分散且無法在物理級別受到保護,因此這意味著弱密碼問題無疑是工業物聯網控制系統中的漏洞[20]。本文實際調查了采用工業物聯網控制系統的6家公司的23種設備和應用,其中18種設備使用弱密碼或空密碼,結果如表1所示。
表1 弱密碼設備的統計信息Tab.1 Statistics of weak password devices
數據流經無線網絡并到達公司的局域網后,將其堆積在數據的臨時存儲區中,等待相應的監視器提取并處理。但是,如圖3所示,現有的工業物聯網協議沒有設置用戶權限的劃分,并且很少有公司網絡預先劃分數據,這意味著局域網中的所有用戶都可以訪問任何基礎設施信息。
實際上,不同組的操作員處理來自不同區域的設備的消息。未經授權,不得訪問其他設備信息。另外,由于內部網絡中存在打印機和路由器等低安全性設備,攻擊者也可以通過攻擊低安全性設備來讀取內部網絡的數據。
圖3 內部攻擊模式。Fig.3 Internal attack model
許多工業物聯網控制系統利用云來進行初步的數據分析,并傳輸到相應的設備和用戶,以實現高效的數據管理。但是,工業物聯網控制系統中的數據未加密,這意味著在云中存儲和處理的數據是明文。因此,作為第三方平臺,云可以獲取流經它的所有私有數據。由云數據泄露引起的企業損失案件數量逐年增加,已逐漸成為網絡社區關注的關鍵安全問題之一。
設計目標是抵御上文定義的4種可能的攻擊,而又不影響系統的功能和性能。由于工業物聯網控制系統通?;诓煌膮f議,因此本文方案不能基于特定的通信協議。設計目標如下:
1)抵抗竊聽攻擊。在數據通信過程中,可以防止攻擊者從信道竊聽并竊取任何明文信息。
2)認證。可以實現通信雙方的身份認證,并確保通信雙方都是合法的設備或用戶。
3)細粒度的訪問控制??梢詫Σ煌脩舻脑L問權限進行細化劃分(例如配置者,不同操作員的權限等),以確保不同操作員在未經授權的情況下無法獲取其他設備的隱私信息。
4)基于不受信任的云。云可以完成數據的基本處理和轉發,但不能窺探任何明文信息。
5)保證性能。安全方案不會產生過多的性能和時間開銷。
為了設計適用于各種工業物聯網控制系統的通用方案,將這些應用場景抽象為一個統一的模型,該模型分為設備層,數據轉發層和數據處理層,如圖4所示。
1)設備層。
圖4 工業物聯網控制系統的通用模型。Fig. 4 Universal control system model of industrial IoT
在SCADA系統(數據采集與監視控制系統)或基于云的工業物聯網控制系統中,某些基礎設施無法獨立處理消息,因此需要PLC(可編程邏輯控制器)和RTU(遠程終端控制系統)分析數據包或轉換信號。其他基礎架構可以自己完成此操作。因此,將采集或控制設備及基礎設施統一到設備層中,該層負責響應來自數據請求者的消息。
2)數據轉發層。
在SCADA系統中,數據通過網絡通信到達上位計算機,然后傳遞到監視中心。在基于云的工業物聯網控制系統中,云負責將數據從不同的車間轉發到不同的公司。將負責這些工作的角色定義為數據轉發層。
3)數據處理層。
在任何系統中,都有向基礎結構發出控制命令的數據請求者或用戶,但是這些用戶的身份在不同情況下是不同的。具有高權限的用戶可以讀取所有數據,并具有對所有設備的控制權限。不同類型的運營商對不同區域或不同類型的基礎結構具有控制權。將這些具有不同權限的用戶定義為數據處理層。
1)初始化。
特權最高的用戶H首先將密鑰作為可信用戶分發給運營商和基礎架構。具體來說,H首先運行 Setup功能來生成系統公鑰PK和主密鑰MK?;诿總€基礎架構和用戶的ID,使用 KeyGen為其生成私鑰SK,并通知每個基礎架構和用戶SK和PK。在這一點上,每個用戶和基礎結構都有其自己的公鑰-私鑰對。
由于不同區域的基礎架構由不同的操作組管理,因此H在初始化階段需要為不同區域的基礎架構配置訪問控制權限。具體地,以A組為例,H首先為A組定義條件集CA={t,IDA},以限制A組成員可以訪問XA的 時間。將條件集簽名并加密為IDXA[σH(CA),PK],然后將其發送到基礎結構 XA?;A結構XA使用私鑰解密和驗證簽名以獲得條件集CA, 該條件集CA被設置為加密默認條件集。同時,H使用組A和組A中所有用戶的身份信息執行I BE.ReKeyGen1和 IBE.ReKeyGen1,并為組A和組A的每個成員生成重加密密鑰RK,然后加密并發送到數據轉發層。數據轉發層解密并記錄RK。H對所有基礎結構進行類似處理后,即可完成初始化。
2)運行。
在實施該方案時,本文需要考慮將基礎結構發送數據到一個組,臨時用戶申請對基礎結構的訪問等。分3類總結實施該計劃可能發生的情況。
1)運營商A1訪問/控制基礎結構XA。本文記錄來自操作員A1的訪問請求或控制命令為m。A1首先用他的私鑰S KA1簽 名m,以獲得 σA1(m),然后在消息中添加標識IDA1,再使用基礎結構的公鑰對消息進行加密。已獲取并發送給XA。XA收到消息后,首先使用其私鑰解密消息,如果有錯誤,則輸出錯誤符號。之后,XA用IDA1驗證簽名,并證明該消息來自合法的操作員A1,并且如果簽名驗證成功,則接收指令/數據請求消息m。本文記錄XA返回給運算符A1的數據M。XA使用 IBE.Enc函數對其進行加密。由于A1來自默認組,因此條件集采用默認條件集CA。該ID設置為IDA1, {CTIBE,A1,XA}被發送到消息轉發層。消息轉發層調用 IBE.ReEnc1,并根據目標用戶A1查詢對應的RK。如果可以成功生成CT′IBE,則表示重新加密成功,并且 {CT′IBE,A1,XA}發送到A1。當A1收到密文時,它將調用I BE.Dec2 以從XA獲取消息M。
2)操作組A訪問/控制基礎結構XA。與第一種情況類似,不同之處在于消息轉發層中使用了IBE.ReEnc2函數來生成信息 CT′IBBE,A組的所有成員都可以解密該信息。A組的任何成員在解密時都調用 IBBE.Dec2以恢復明文。
3)操作員B1訪問/控制基礎結構XA。為了實現靈活的權限控制,本文需要在工業物聯網控制過程中考慮對用戶的臨時授權。本文的方案在這種情況下工作,如圖5所示。
圖5 臨時授權用戶控制接口Fig.5 Temporarily authorized user infrastructure
操作員B1本 人無權訪問XA,這是在初始化期間設置好的。因此,當B1需要訪問或控制XA時,他首先需要向最高授權用戶H提出請求。本文將m定義為B1申 請XA的控制權限的信息,m中包括控制時間,控制設備,控制范圍等。B1對m進行簽名和加密,并將IDH[σB1(m),IDB1]發送給H。在H解密并驗證信息源之后,如果H同意此授權,那么他將根據申請信息m,為用戶B1生 成條件集CB和控制權限L。條件集CB包含B1設 備訪問的時間和范圍。H對CB和L進行簽名和加密,然后將IDB1[σH(CB,L),IDH] 返回給B1。然后,H需要重新調用I BE.ReKeyGen1, 將ID'設置為IDB1,將C設置為CB,生成RK,并將其發送到消息轉發層進行簽名后進行存儲。B1通過解密接收到的授權密文以獲 得 σH(CB,L) 。在B1得 到 授 權之后,操作 員B1的訪問請求或控制指令將記錄為m。B1用 他的私鑰S KB1簽名m以獲得 σB1(m) 并在消息中 添 加IDB1,CB。然后B1使用XA的公鑰加密消息,獲得σH(CB,L),IDH],XA} 并將其發送到XA。收到消息后,XA使 用私鑰對其進行解密。如果解密成功,則XA使用IDH和IDB1來驗證簽名。如果所有身份驗證均成功,則證明該消息確實來自新授權的用戶B1。若m是控制命令,則XA查看控制權限L以確定控制命令是否在權限中。若m是訪問指令,則使用IBE.Enc函數對訪問結果m進行加密。由于B1是新授權的用戶,因此將條件集設置為CB,將目標用戶設置為B1。XA將 {CTIBE,B1,XA} 發送到消息轉發層。消息轉發層根據B1對應的RK調 用 IBE.ReEnc1 。如 果可以成 功 生 成 CT′IBE,則說明重新加密成功,同時說明 {CT′IBE,B1,XA}也已經成功發送給B1。 B1收 到密文后,將調用 IBE.Dec2以從XA獲取消息M。
1)安全的初始化環境?;A架構和方案的初始化安全性非常重要。本文應該確保在初始化階段安全地傳輸密鑰信息和身份信息。許多情況下都假定安全初始化過程是安全的,但這不是事實,這就是對稱密鑰不能直接應用于密鑰協商情況的原因。如果初始化不安全,則不能保證系統運行時安全性。
2)基礎架構不應在本地存儲太多數據?;A架構分布在遙遠的外圍,因此很難統一維護和管理。每個基礎結構被破壞的可能性取決于環境,與外部網絡的連接性等,因此無法輕松保證其安全性。如果基礎設施長時間存儲數據或存儲大量關鍵信息,則可以獲得更多的隱私信息,這對于工業物聯網控制系統是不利的。
3)不同的安全等級。不同的工業物聯網控制系統對安全性有不同的要求。可以考慮使用校驗碼來檢查數據完整性,并增強基礎結構本身的安全性,以滿足不同的安全性要求。另外,對于計算能力較弱的基礎架構,還可以使用混合加密來增加對稱加密在總加密時間內的比例,以減輕基礎架構的負擔。還可以考慮可選的安全級別。本文根據實際需要選擇不同的加密算法,以實現安全性和性能之間的平衡。
本文討論了不同類型的工業物聯網控制系統及其面臨的挑戰,并詳細分析工業物聯網控制系統的安全威脅。由于工業物聯網控制系統的多樣性以及所使用協議的復雜性,現有工作無法為其提供通用的安全機制。因此,本文將不同的工業物聯網控制系統抽象為一個通用模型,并定義了工業物聯網控制系統應滿足的安全要求。基于此通用模型和基于身份的可分組條件代理重新加密,設計一種安全高效的方案來保護工業物聯網控制系統中的數據。從理論上證明了本文方案可以有效地防止本文定義的4種攻擊。在評估性能時,本文方案僅引入了最小的開銷。本文總結了用戶的經驗和方案設計思想,為探索安全高效的工業物聯網控制系統方案提供了啟發。