譚源泉,康紅娟,唐 博
(四川啟睿克科技有限公司 信息安全燈塔實驗室,四川 成都 610041)
自2012年通用電氣等五家美國企業組建工業互聯網聯盟并大力推廣“工業互聯網”概念[1]以來,全球各國陸續制定工業轉型升級規劃。我國在2018年中央經濟工作會議上將工業互聯網定義為“新型基礎設施建議”,會議提出大力發展先進制造業,各地大中型企業逐步將工業信息化、數字化、智能化發展納入各自戰略規劃之中。工業互聯網的主要目標是實現跨設備、跨系統、跨廠區、跨區域的生產要素互聯互通。傳統工業企業普遍存在工控系統封閉、數字化程度參差不齊、操作人員對信息技術難適應等問題,距離達成上述目標還有著很大的差距和困難。然而,隨著新一代通信技術的發展,人工智能、區塊鏈、云計算、大數據、物聯網等新興技術也被逐漸引入工業生產系統之中,為工業生產降本提質增效提供新的增長極,也為縮減上述差距、解決部分問題帶來了新的技術基礎和新的思路。
為實現工業數據的貫通,工業系統“云邊端”架構逐漸成熟,數據在多種系統間流轉。比如,云端業務和業務系統之間、云端業務和邊緣業務系統之間、邊緣業務系統與終端應用之間等。數據的可靠性保障是數據驅動的業務智能決策的前提,尤其是需要保障多方系統的數據交互一致性。由于新老系統數據交互協議、冗余信息處理、消息并發和處理機制不一致等因素,多方系統各自維護的數據無法對齊的情況時常出現,數據不一致的問題不容忽視,問題定位及修復費時費力,亟需建立自動化、靈活部署、可靠性高的工業數據交互可信驗證機制來保障跨系統數據交互的一致性。
傳統的工業系統交互數據驗證模式是兩兩系統之間以異步處理的方式各自生成業務記錄文件進行逐筆比對,并以事先約定的處理方式及流程處理差異。假設T為需做數據比對的日期,一般T+1日才能完成T+0日的數據比對度量。在實際業務場景中,存在安全性、隱私性以及性能效率方面的問題。因此,如何高效、安全、可靠地保障多系統數據交互的一致性是目前業界亟需解決的痛點。
目前業界已存在較為成熟的保障多系統數據交互一致性的方式方法。根據功能部署方式、信息存儲模式和信息記錄對比方式可分為兩類:原生系統消息驗證和集中式批量驗證。
原生系統消息驗證通過圍繞業務的兩個系統間自行約定的規則進行操作記錄日志交換,在各自本地進行操作記錄的分析比對,將比對結果進行溝通,以驗證結果的一致性。集中式批量驗證則通過建立可信第三方獨立系統的方式異步處理各業務系統收集到的日志記錄,并進行分析與配對,按照業務規定給出信息比對結果,并提供給業務人員可查看的業務系統訪問接口。
上述兩種數據交互一致性度量方式方法,雖然在業界使用居多、較為成熟,但是由于數據都是通過網絡傳輸實現異步數據對齊,隨著業務參與方增多,對于實際業務和實際場景中數據交互一致性度量實時性的訴求、度量結果是否具備公信力、可度量業務系統數量是否具備良好的可擴展性等不斷增加的需求,已經凸顯疲態,主要呈現以下三類問題無法妥善解決。
現有工業生產和執行系統以業務流為牽引進行業務數據交互,并在各自系統維護業務記錄文件。然而,由于各系統間采用異步處理的方式,且重復存放的數據未能及時進行同步檢查,偶發的網絡故障、系統故障,以及人為因素等原因,導致數據交互的不一致難以被發現,從而不能及時進行反饋。
同時,由于工業設備通常屬于重資產,更新換代較慢且代價不菲,導致工業系統異構化明顯,復雜度較高,牽一發而動全身,難以通過系統的優化和修改建立一致性檢查機制。
由于缺乏及時的一致性檢查機制,當發現多系統間存在數據不一致的情況時,通常已經是由多個錯誤疊加產生的結果。數據可能在系統之間往返流轉,在多個環節發生錯誤,產生疊加或者部分消弭,導致錯誤難以快速定位。通常需要導出所有業務數據后,由熟悉業務流程的管理人員根據個人經驗,針對異常的數據進行人工的篩選、排查、分析,定位系統發生錯誤的具體位置,最終對錯誤進行人工修復。
然而,人工進行對賬核算也會帶來不可忽視的成本和風險[2],比如耗費大量的時間(通常較自動化對賬多耗費42%~67%的時間),且這些時間大量耗費在等待他人了解對賬狀態上。除了為此投入的人力成本,還存在人為原因導致的數據可靠性風險,審計與合規性缺乏有力支撐,以及面臨人才流失的潛在風險等。
由于工業系統結構復雜,多系統的維護通常由多個技術廠商提供服務,系統間數據交互缺乏明確的追責機制,當出現數據不一致的情況時,容易出現相互推諉的情況,缺乏可信仲裁的角色去判定各方系統的數據是否準確,難以快速定責,無法及時聯絡對應人員進行數據修復。
同時,由于對賬過程中所采取的控制措施在多個地點和業務單元中分散且不同、解釋及輔助性文件欠缺,往往造成審計成本增加。在因為數據不一致造成生產效率下降或經濟損失時,或在關鍵數據審計時,由于缺乏對中間過程的跟蹤、對賬不全面、無法快速回答審計師的問題以及缺乏整體可見性,從而會增加審計的總體費用。
基于區塊鏈技術的多系統數據交互可信驗證方案是傳統多系統信息交互保障方案的技術優化,增強了數據從產生、交互到審計、溯源、修復全流程的可靠性。主要涉及分布式存儲、數據完整性保護以及數據一致性驗證等核心技術。目前國內外高校和科研機構已經在分布式存儲系統以及區塊鏈在數據完整性保護與驗證領域開展了研究和探索。一些對技術生態建設有需求的企業,也已聯合多家金融機構發起基于區塊鏈的機構對賬平臺,區塊鏈技術在數據交互可靠性保障領域的應用正在從傳統金融行業和場景向其他行業和場景中推廣。
區塊鏈技術可以為分布式場景提供有效的解決方案,能夠解決中心化場景下的單點失效問題。其中,最為核心的技術是通過分布式共識算法實現數據副本之間的一致性,從而提高在大規模應用中對數據服務高可用的要求。
基于區塊鏈的這種特性,將其視為分布式存儲的一種實現方式,需要確保其在功能和性能上不低于傳統的分布式數據庫。已有大量研究人員針對如何優化區塊鏈技術,尤其是在高效查詢、吞吐量和延遲等方面進行了深入的研究和探索。Muzammal等人[3]提出了一種優化區塊鏈的開源分布式數據庫,通過研發數據庫和應用程序之間的區塊鏈中間件,設計了一種區塊鏈數據庫ChainSQL系統,除了可以滿足數據庫基本的搜索查詢功能,還具備可抵抗惡意篡改、數據副本保持一致性等特點。該系統通過在鏈上記錄所有數據庫操作日志的方式,使新節點可通過鏈上記錄同步完整的數據庫存儲。El-Handi等人[4]設計了一種區塊鏈數據庫BlockchainDB,在區塊鏈的存儲層之上增加了數據庫層。數據庫層主要包括分片管理、交易管理和驗證管理等功能,通過靈活的分片技術,實現客戶端的讀寫和驗證等功能。通過靈活自定義的存儲層,引入了全節點和輕節點,從而在全局層面實現安全和效率的兼顧。焦通等人[5]提出了一種區塊鏈數據庫的概念,通過將傳統數據庫中的表分別存儲于多個存儲節點,所有節點均通過共識算法存儲含有數據記錄的區塊頭信息,可在各個節點進行查詢和驗證。同時,設計了一種基于哈希指針的索引,通過索引實現數據的查詢并保障索引本身的不可篡改,以此提高數據檢索效率。Wang等人[6]提出了一種專門設計用于為區塊鏈和可分叉應用程序提供有效支撐的存儲引擎ForkBase,引入了一種新穎的索引結構來有效識別與消除跨數據對象的重復副本。該系統在提供高性能的同時,也顯著降低了開發成本。其團隊成員Ruan等人[7]在此基礎上進一步研究,利用區塊鏈技術防御分叉攻擊,將云存儲操作的日志上鏈,保護關鍵目錄和操作日志服務器,實現了細粒度的、安全高效的區塊鏈數據回溯,為在線交易提供安全的數據變遷軌跡存證。
在數據交互過程中,被篡改、丟失也是引發數據不一致的主要原因。基于區塊鏈技術的鏈式數據結構特點,國內外學者在數據完整性驗證與區塊鏈相結合方面也做了深入研究。
傳統方法都是使用中心化的方式對存儲數據的完整性進行驗證,需要依賴可信第三方來完成驗證。但是依然存在第三方是否可信的問題。
魏艷等人[8]提出了一種在不被信任的環境下無需第三方審查機構,基于區塊鏈技術的去中心化時間戳的數據完整性驗證機制,同時利用以太坊智能合約建立數據完整性驗證的區塊鏈結構,完成小規模數據的驗證,為區塊鏈技術在數據完整性應用方面提出了理論證明。
日志是網絡設備、系統及服務程序等在運作時產生的事件記錄,這些記錄是信息系統的正常運維、故障恢復和錯誤排查的前提,更是維護信息安全的關鍵。日志數據對于實現網絡安全有非常重要的研究和分析價值,獲取有價值的日志需要系統和設備必須進行合適的設置以便記錄需要的數據,同時需要有合適的工具、具備良好培訓的人員和可用的資源來綜合分析收集到的數據。除了滿足上述需求之外,還迫切需要一種對日志可靠的、安全的存儲方式。
費禹等人[9]設計了基于公有鏈的日志系統,采用工作量證明(Proof of Work,PoW)算法實現共識層,該系統相比于傳統日志存儲形式,具有隱私性強、可控性高、數據分享安全便捷的優點。Sutton等人[10]設計的區塊鏈日志記錄系統能夠部署在現有的比特幣公有區塊鏈上,但存在成本高、效率低、可擴展性差的缺陷。日志數量越大所需交易數量越多,會在鏈上占據相當大的存儲空間。Shao等人[11]使用以太坊的智能合約實現日志數據的完整性和異常檢測,并結合機器學習允許智能合約本身能夠實現一定程度的自我更新。
國內某公司研發的機構間對賬平臺于2016年8月投產,是國內首個在生產環境中運行的多金融機構間的區塊鏈應用。通過區塊鏈技術,優化貸款業務中的機構間對賬流程,降低運營成本。平臺運行3年多記錄了真實交易筆數已達7000多萬筆的量級,上線以來保持零故障運行。
該應用主要通過區塊鏈和分布式賬本技術,優化貸款業務中的對賬流程,提升對賬效率,其對賬流程如圖1所示。交易數據秒級完成同步,并快速生成準確可信的賬目數據;T+0日準實時對賬。通過3年多時間的真實生產數據檢驗與零故障運行,該應用印證了區塊鏈底層技術的安全可控、穩定可信、健壯可用等優點,也為區塊鏈技術在金融領域的交易對賬場景提供了典型的應用案例。

圖1 機構間貸款業務對賬平臺流程
國外某公司研發的基于區塊鏈的支付網絡,可以轉賬任意一種貨幣,支付簡便易行快捷,交易速度快、交易費用低。截至2020年4月,已有60多個國家和850多家銀行或機構使用。依托該支付網絡,所有的跨境收付款人的信息都可以實現可信的支付和資金清結算。該支付網絡解決了跨境支付信任建立難的痛點,提升業務效率并降低成本,通過一定的技術妥協融入現有的金融支付結算體系,提供端到端的跨境支付解決方案。
為了解決傳統工業數據交互驗證方案中所遇到的一些瓶頸問題,本方案引入基于區塊鏈的基礎設施賦能于業務場景實際問題,以工業系統為區塊鏈節點,多方共識算法可確保多系統數據副本的一致性;智能合約是一種預寫入的邏輯代碼,通過部署業務智能合約可以實現秒級的自動化數據分析與比對,從而解決傳統數據對賬過程中不一致數據定位難的問題;基于分布式賬本技術,將對賬數據在鏈上進行存證,為事后審計提供支撐,解決多方系統定責難且缺乏自動審計追責機制的問題。
工業系統數據交互可信驗證方案主要由業務系統接入組件、具備可信驗證功能的區塊鏈節點和可視化管理查詢系統3個部分組成。
其中,具備可信驗證功能的區塊鏈節點為方案的核心部分,該節點可靈活部署于業務系統現有網絡結構中,業務系統通過公鑰(Public Key Infrastructure,PKI)機制實現聯盟鏈構建,業務數據通過鏡像的方式實現旁路上鏈,從而在不影響業務連續性的前提下實現數據的采集。然后,在區塊鏈節點部署數據自動化驗證的智能合約,實現自動化秒級對賬,同時提供信息訪問接口實現業務員查閱操作,其解決方案如圖2所示。

圖2 工業系統數據交互可信驗證方案
為保障區塊鏈節點的可信驗證功能運轉,需研究下述4項關鍵技術:
(1)分布式身份認證技術:通過智能合約編寫身份數據發布、認證以及撤銷相關規則,基于分布式賬本技術,利用區塊鏈共識機制,實現身份數據的可信存儲。通過智能合約提供的外部接口實現身份的可信驗證。
(2)智能合約一致性校驗技術:深入分析業務系統數據交互格式,提取關鍵參數,抽象為規則化的業務智能合約,實現數據流的自動解析與實時比對,并對結果進行鏈上存儲。
(3)基于身份標識的溯源技術:建立基于區塊鏈的全局唯一標識,支持鏈上可驗證。進一步研究Merkel樹機制,實現基于摘要的數據快速檢索機制,支持鏈上數據的有效輸出。
(4)分布式賬本客戶端:基于Java JNI規范,開發向下兼容的硬件算法接口,向上實現以交易形式的鏈上互通,與分布式身份認證技術相結合,實現數據的可信上鏈。
此外,為進一步確保從業務系統采集數據的可靠性,后續可利用區塊鏈硬件設備與本方案配合,進一步保障數據源頭的可信,該硬件需具備下述兩大功能特點:
(1)可信密鑰管理:建立基于硬件的密碼管理技術,通過統一口令實現硬件與用戶的綁定關系,用戶通過可變的單一口令即實現多重密碼安全使用。
(2)可信數據采集:建立設備/系統唯一身份標識與鏈上公鑰地址的對應關系,通過分布式賬本客戶端實現基于硬件算法的數據簽名,以交易形式提交數據,配合區塊鏈的驗簽機制,確保數據來源的可靠與防篡改。
工業系統數據交互可信驗證方案旨在引入區塊鏈基礎設施作為對賬驗證核心,對原有業務系統侵入性較小,整體系統實施架構由區塊鏈核心層、區塊鏈接入層及業務層3個關鍵層級組成,如圖3所示。

圖3 工業系統數據交互可信驗證整體架構
(1)區塊鏈核心層:基于區塊鏈基礎設施,實現業務型合約的編排、部署、可信執行。本方案采用國內主流的聯盟鏈,自主設計業務型合約,通過JSON RPC遠程調用協議實現與區塊鏈接入層的對接。其中業務型合約設計是本方案的核心,包括對賬、計算和存儲合約。根據實際度量的業務需求,定位需要比對的關鍵參數,包括但不限于消息ID、時間、地點、業務關鍵參數等需要對齊的數據內容,進行并行或者遞歸順序的比對。將上述流程實現自動化編碼,即完成業務合約的編碼,根據不同區塊鏈的技術要求完成合約部署。
(2)區塊鏈接入層:打通實體業務與鏈層服務的關鍵功能組件,也是本實施架構的核心模塊。根據業務系統的實際形態可提供3種實體業務對接模式。
①流量鏡像:對業務系統無侵入式對接模式,通過業務系統路由器的適當配置,獲取工業系統間的交互流量進行鏡像。主要難點在路由器的配置、流量的準確獲取和正確解析。
②HTTP接口:業務系統無需源碼修改,調用本方案的接口進行信息傳輸。本方案根據實際業務信息度量參數,設置業務系統與區塊鏈核心層的對接信息通信接口。主要工作在網絡接口參數設置與適當的消息反饋。
③區塊鏈客戶端:業務系統需要進行源碼層面的部分改動,集成分布式賬本客戶端集成接口,實現客戶端在原業務系統的集成與調試,保障業務“第一手”信息以交易的方式上鏈,在一定程度上規避被篡改的風險,符合區塊鏈信息上鏈安全性的高需求。在區塊鏈客戶端做了緩存處理,即使某筆交易發送失敗,也保障交易信息不丟失。分布式賬本客戶端承接信息解析與交易上鏈,實現數據在“第一公里”的時候就以簽名交易的方式上鏈,有力規避信息在傳輸過程中被篡改的可能,是目前最為可靠的信息上鏈方式。
值得注意的是,上述3種對接方式中,消息隊列作為“流量鏡像”與“HTTP接口”的信息緩存,保證信息不丟失,即使在鏈服務偶爾宕機的情況下,也可保障原始信息的備份。
(3)業務層:負責業務呈現,用戶交互功能與界面,提供用戶安全便捷的信息查閱途徑。涵蓋用戶管理、權限管理、業務數據庫3個主要功能模塊。其中,用戶管理與權限管理相配合,完成用戶的注冊、登錄及訪問信息庫的功能。業務數據庫主要是與度量功能相關的基礎信息,根據具體業務的不同而變化。
通過上述實施方案的部署,工業系統數據交互可信驗證系統的交互過程主要可分為“數據可信驗證”與“業務可視化”兩個流程,兩個流程之間通過鏈層的分布式賬本進行橋接,系統數據交互具體流程描述如下。
數據上鏈驗證流程:
①業務方根據自身系統強壯性、安全性與技術實現等方面評估,進行數據對接模式的定位,“流量鏡像”對原系統保護最好,“HTTP接口”數據獲取最方便,“區塊鏈客戶端”信息獲取最可靠;
②進行關鍵信息解析,將數據寫入消息隊列緩存;
③調用區塊鏈客戶端開放接口,實現數據的再次封裝與交易上鏈;
④通過區塊鏈客戶端實現待驗證原始數據的上鏈,并依次調用對賬、計算合約和存儲合約,實現數據度量與結果的鏈上存儲。至此完成數據的可信驗證流程。
業務可視化流程:
①根據業務方的實際需求,進行用戶管理與權限管理的配置,并且可兼容業務方原有的用戶體系;
②業務員通過可視化界面進行查詢參數的輸入;
③后臺調用信息解析模塊,實現從分布式賬本信息的讀取與展示。至此完成業務可視化流程。
本方案設計充分考慮系統可擴展性,基于數學組合理論分析如下:
條件:假設M個系統,N個度量指標參數,TPS為區塊鏈系統的每秒吞吐量。
目的:給出基于區塊鏈可信驗證系統的數學模型與性能分析。
思路:可信驗證系統的性能即為每秒能處理的最大系統數量與最大指標參數。
建模:可信驗證系統可表述為關于M、N變量的數學不等式函數:

進一步,驗證分析過程需要兩兩比對,任選兩個系統做排列組合,對賬參數數量N,不等式(1)轉換為:

分析:底層鏈采用FISCO-BCOS,可信區塊鏈測評給出其最新TPS可達20000。不等式(2)展開即為:

采用縮放法,對不等式(3)進行估值:

假設MN= ,則對賬系統每秒能完成34個系統,最多34個指標參數條件下的兩兩對賬。
以常見的工業信息化系統數據交互為例,假設需保證某生產企業的企業資源計劃系統ERP、制造執行系統MES和倉儲管理系統WMS中的某關鍵數據(如產品庫存)一致性。采用傳統方案的人工比對,數據一致性校驗只能通過兩兩系統之間進行比對,且需要人工去導出數據,定位異常,通常是在T+1日對T日的數據進行比對,并修復數據。整個過程需多系統多部門人員參與、復核、驗證,通常需要3人持續2至3小時才可完成,且仍有人為因素導致錯誤的可能。
根據上述假設的工業系統數據交互需求搭建了系統原型。首先,根據具體業務系統情況考慮對賬系統的區塊鏈節點部署。本次實驗部署了4個區塊鏈節點,由于MES系統、WMS系統、ERP系統部署在內網的不同子網,且相互之間數據交互頻度不一,系統原型部署3個區塊鏈節點在一個子網,部署1個區塊鏈節點在另一個子網。由于工業系統對于業務持續性要求較高,具體實施方案采用“流量鏡像”的方式,從上述各系統數據交互的核心交換機處引出流量鏡像進行數據的過濾和分析。
通過采集2021年9月1日至2021年10月31日的交互數據,我們在系統后臺對每日交互數據進行統計,如圖4所示。3個工業系統共計交互數據46萬余條,單日峰值交互數據12909條,日均交互數據7600余條,按每天平均工作10小時計算,平均每分鐘約13條交互消息。

圖4 系統原型采集交互數據量一覽
在上述規模的數據采集量情況下,系統原型可以實現自動定位異常,并可以在獲取交互數據1秒內準實時展示對賬結果,從而可實現T+0日秒級的數據比對目標,整個過程實時可查、可驗和可溯,使數據修復更加快速有效。
系統原型的前端頁面如圖5所示,該頁面涉及的部分生產信息已做脫敏處理,頁面展示的是MES系統和ERP系統的產品庫存數量對賬驗證,白色數據行表示該類型產品庫存數據無差異,紅色數據行表示該類型產品庫存數在MES系統和ERP系統中并不一致,業務人員可以通過查看日志的方式,進一步查看引發數據不一致的具體操作日志,從而快速判斷分析引發數據異常的系統和原因,協調相應人員進行數據修復。
在工業生產領域存在設備、系統、服務之間的數據交互,保障關鍵數據參數在交互始末的一致性非常重要,影響業務的多個方面。本文深入分析現有業務場景與解決方案,明確在現存數據交互過程中仍然存在的痛點,聚焦數據的可靠性驗證,提出工業場景下數據交互可信驗證的解決方案,并構建原型進行實驗驗證。通過實驗驗證的結果,可將該方案持續優化,構建模塊化的智能合約集,可以在類似的數據一致性需求場景中,如原材料庫存、供應鏈采購等場景,快速形成落地應用方案,利用區塊鏈技術解決工業場景中的具體問題,做到技術賦能真正落地。