近年來,隨著互聯網、物聯網、云計算、大數據和人工智能為代表的新一代信息技術與傳統產業的加速融合,全球新一輪科技革命和產業革命正蓬勃興起,一系列新的生產方式、組織方式和商業模式不斷涌現,工業互聯網應運而生。
所謂工業互聯網,是指全球工業系統與高級計算、分析、感應技術以及互聯網連接融合的結果。它通過智能機器間的連接并最終將人機連接,結合軟件和大數據分析,重構全球工業、激發生產力。為了提供生產效率和效益,工業網絡會越來越開放,但是薄弱的防護,暴露了工業網絡安全領域的諸多問題。工業互聯網的安全作為一個工業信息安全當中的新挑戰,帶了問題和威脅有:
(1) 工業互聯網平臺的安全;
(2) 工業互聯網設備和控制層的安全問題;
(3) 工業大數據安全問題;
(4) 工業互聯網網絡的安全問題。
目前諸多領域應用了工業互聯網,包括市政供水供熱、能源管理、智能交通、智能家居、智能電網等,由于安全性問題,一旦被入侵,整個系統就會癱瘓。過去的網絡病毒也許只能控制一部手機,如今可以控制一家工廠,近年來,工業數據平臺被曝出的漏洞日益增多,且大量集中在裝備制造、交通、能源等重要領域。一些黑客正是利用這些漏洞,竊取了大量的工業信息。2007年,加拿大一個水利SCADA控制系統被攻擊者入侵,取水調度的控制計算機癱瘓;2008年,波蘭某城市地鐵系統被攻擊者入侵,攻擊者通過電視遙控器改變軌道扳道器,導致四節車廂脫軌;2012年,攻擊多個中東國家的惡意程序Flame火焰病毒,它能收集各行業的敏感信息;2016年,烏克蘭電力公司的網絡系統遭到黑客攻擊,導致大規模的停電。
從全球發展趨勢來看,工業互聯網和工業數據日益成為黑客攻擊的重點目標。
而工業區塊鏈DIPNET作為新型的網絡安全模式,應用到工業互聯網上能解決這些安全問題嗎?
工業區塊鏈DIPNET是一種基于區塊鏈技術所帶來的價值傳輸生產方式構建出的一個云鏈混合的分布式智能生產網絡,對制造業商業模式進行整體重構。工業區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式,其按照時間順序將數據區塊以鏈條的方式組合成特定數據結構,利用加密鏈式區塊結構來驗證與存儲數據、利用分布式節點共識算法來生成和更新數據、利用自動化腳本代碼(智能合約)來編程和操作數據。總的來說,工業區塊鏈具有去中心化、安全性、匿名性等特性,使得區塊鏈技術可以在工業互聯網各領域可以大有作為。
圖1 工業區塊鏈(DIPNET)分層圖(源自《工業區塊鏈(DIPNET)白皮書》)
為了更好保證工業網絡和數據安全,工業區塊鏈DIPNET在架構上采用分層模式,工業區塊鏈DIPNET主要分為網絡層、基礎服務層、合約層和接口層。其中,前三者與工業數據安全密切相關。
網絡層:
其基于以太坊 devp2p 協議(DPT、IPFS等),實現工業區塊鏈(DIPNET)底層網絡。devp2p 協議是以P2P協議為基礎,是對等網絡中節點間通信的網絡協議,節點支持任意數量的子協議,并處理子協議與子協議之間的協商,記錄單個連接上的消息。其主要特點是:1)分布式網絡,無中央服務器,非中心化;2)用戶之間互聯并分享文件;3)可擴展:全分布系統;4)健壯性:耐攻擊、高容錯;5)隱私保護;6)負載均衡;這些特點為工業區塊鏈保證工業數據安全提供了絕佳的網絡環境特性和通信協議。
基礎服務層:
其一,工業區塊鏈DIPNET采用股權授權證明(DPOS)共識的鏈式區塊結構。DPOS共識機制中,持有股份的用戶通過投票來選取超級節點,由選出的超級節點來產生區塊并記錄區塊鏈,保障系統安全運行。一旦超級節點作惡,例如出現宕機、延遲等情況,它就會被投票出局。DPOS要求21個超級節點的三分之二以上確認后,區塊才能生效。所以,一旦工業網絡中出現個別入侵者,就會被踢出系統網絡,從而保證系統網絡的安全。
其二,工業區塊鏈DIPNET使用ECDSA-secp256k1數字簽名方案,涉及一種橢圓曲線數字簽名加密技術,如圖為算法公式曲線,是不是看著有點詭異?
圖2 secp256k1算法曲線圖
加密算法一般分為對稱加密和公開密鑰加密。對稱加密就是使用同一密鑰進行數據的加密和解密;而DIPNET的加密方式選擇的ECDSA-secp256k1數字簽名為公開密鑰加密,公開密鑰加密也稱非對稱加密,即加密和解密使用不同的密鑰,分別是公開密鑰和私有密鑰,簡稱公鑰和私鑰。
非對稱加密算法實現機密信息交換的基本過程是:A用戶生成一對密鑰(公鑰和私鑰)并將其中的一把作為公鑰向其它方公開;得到該公鑰的B用戶使用該公鑰對機密信息進行加密后再發送給A用戶;A用戶再用自己保存的私鑰對加密后的信息進行解密。簡單地說,就是公鑰用于加密和認證,私鑰用于解密和簽名。
那么,我們來看看采用區塊鏈技術的公鑰是怎么產生的?
第一步,隨機選取一個32字節的數、大小介于1 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之間,作為私鑰。
18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725
第二步,使用橢圓曲線加密算法(ECDSA-secp256k1)計算私鑰所對應的非壓縮公鑰。 (共65字節, 1字節 0x04, 32字節為x坐標,32字節為y坐標)關于公鑰壓縮、非壓縮的問題不做詳解。
0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B 23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6
第三步,計算公鑰的 SHA-256 哈希值
600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408
第四步,取上一步結果,計算 RIPEMD-160 哈希值
010966776006953D5567439E5E39F86A0D273BEE
第五步,取上一步結果,前面加入地址版本號(比特幣主網版本號“0x00”)
00010966776006953D5567439E5E39F86A0D273BEE
第六步,取上一步結果,計算 SHA-256 哈希值
445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094
第七步,取上一步結果,再計算一下 SHA-256 哈希值(哈哈)
D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30
第八步,取上一步結果的前4個字節(8位十六進制)
D61967F6
第九步,把這4個字節加在第五步的結果后面,作為校驗(這就是比特幣地址的16進制形態)。
00010966776006953D5567439E5E39F86A0D273BEED61967F6
第十步,用base58表示法變換一下地址(這就是最常見的比特幣地址形態)。
1M8DPUBQXsVUNnNiXw5oFdRciguXctWpUD
如果你想破解,建議先算一下,用一臺較快的計算機,運行多久才能破解。
合約層:
工業區塊鏈DIPNET通過VM實現智能合約,智能合約是部署在區塊鏈上的一段可自動執行的程序,廣泛意義上的智能合約包含編程語言、編譯器、虛擬機、事件、狀態機、容錯機制等。其中,對應用程序開發影響較大的是編程語言以及智能合約的執行引擎,即虛擬機。虛擬機作為沙箱被封裝起來,整個執行環境都被完全隔離。虛擬機內部執行的智能合約不能接觸網絡、文件系統或者系統中的其他線程等系統資源。
工業區塊鏈DIPNET是全球首個分布式智能生產網絡,是全球最大的工業垂直公鏈,擁有全球最大的工業區塊鏈社區,應用于多方協同生產、供應鏈清結算,工業資產數字化等領域,具有去中心化、安全、高效等特點。在工業4.0、智能制造、智能生產的大趨勢下,工業區塊鏈DIPNET將是工業數據安全問題的一種良好的解決方案,應用到工業控制、工業數據、工業網絡系統的各個領域和行業中,相信工業區塊鏈DIPNET可以推動整個工業的轉型及新型模式的發展。