張莉,王泰,姜啟升通信作者)
(1.山東省電子信息產品檢驗院,山東 濟南 250014;2.青島天納克富晟汽車零部件有限公司,山東 青島 266200;3.青島明思為科技有限公司,山東 青島 266041)
工業物聯網通過多源傳感器感知工業生產過程,采集關鍵制造信息,利用現代通信技術、智能分析技術使得工業生產智能化,從而提升制造效率及產品質量,降低整個供應鏈成本,實現客戶滿足度最大化[1]。工業物聯網設備層包括機床、控制器、機器人及傳感器等,制造裝備、主流品牌PLC的控制端接口及海量類型傳感器由獨立廠商生產,普遍存在通訊協議、接口不兼容等問題,形成了控制與信息化“孤島”,阻礙了現場關鍵數據的實時采集[2-4]。此外,工業物聯網設備信息數據包含企業敏感信息,在工業互聯網環境中信息傳輸可能會遭到攻擊、攔截,導致關鍵數據泄露。騰訊安全發布的《2020年公有云安全報告》中指出物聯網設備數據泄露、遭受攻擊已成為主流安全風險,現有的工業物聯網系統需解決好工業物聯網設備信息安全問題。物聯網網關采用高級加密標準算法可實現對網關操作系統和節點信息采集進行驗證加密,可實現設備信息的保護[5-7]。許韞韜等[8]人通過改進AES密鑰間的關聯性與初始密鑰的更換策略,基于STM32平臺驗證了改進算法的穩定性及運行效率。賈凡等[9]人基于MQTT框架,利用傳感器技術感知工業現場的多源異構數據,實現工業物聯網通信系統數據的交換、設備狀態的遠程監測。
基于對工業物聯網設備信息采集與保護,本文分析工業物聯網設備層各通信協議的特點,制定基于STM32單片機的工業物聯網設備信息統一采集標準。根據工業物聯網中設備信息數據實時性強,且響應要求高的特點,基于通用標準算法設計AES算法,實現工業物聯網設備信息敏捷安全加密。
高級加密標準AES(Advanced Encryption Standard)是對稱分組密碼算法,通常密鑰長度分別為128,192或256比特,其算法的加密輪數取決于密鑰的長度,密鑰長度越長,加密過程越復雜,算法安全性越高,破解難度越大。AES算法的數據預處理過程是將數據塊預先分組為128bit大小的數據單元,數據分組單元按先后順序填入狀態矩陣(4行4列)中,在上述狀態矩陣中通過多輪迭代實現算法的輪變換(字節替代、行移位、列混淆和輪密鑰加)。AES算法為消除加解密密鑰間的相關性,通過擴展算法將種子密鑰非線性擴展,形成每組的加密密鑰,常用的密鑰擴展算法有非線性變換、混合函數變換等算法,密鑰的長度取決于加密算法迭代次數。輪密鑰擴展使得算法加密每輪迭代使用不同的密鑰,提高AES算法安全性、高效性,能夠有效抵御不同的網絡侵入式攻擊。
AES算法的加解密效率取決于密鑰長度、加密輪數及數據明文長度,本文將在工業互聯網設備信息傳輸端進行加解密,要求時間響應快,因此選用AES-128方法,采用128bit分組,算法加密輪數為11。標準的AES算法有ECB、CBC、CTR、CFB、OFB 5種加密模式。其中CTR加密模式具有加密速度快、安全性高、不會出現傳輸誤差的特點,因此本文采用AES算法的CTR模式進行加密。
傳統的AES算法的分組密鑰是利用初始化密鑰擴展而成的,密鑰擴展后分組密碼存在相關性導致初始密鑰被攻破的可能性將增大,同時在數據存儲和傳輸過程中出現解密錯誤的幾率將增高,為此本文將采用偽隨機數實現密鑰的擴展,降低分組密碼的相關性,提高算法的擴展性。密鑰擴展的算法步驟為:①偽隨機序列生產,令a和b為算法選定的素數,則集合 表示為其中R為整數集合,假設則根據產生偽隨機序列作為初始密鑰,生產4*4密鑰矩陣。②根據加密輪次擴展密鑰,生成長度4*4*(10+1)的字節數組,W,W[0-15]的值等于初始密鑰4*4矩陣值,后續W[i]有W[i-4]與W[i-1]計算生成擴展密鑰矩陣。③將擴展密鑰矩陣W中W[0-15]用于初始輪密鑰操作,W[16-31]用于第一輪密鑰操作,依次類推。
基于AES算法的工業物聯網設備信息加密算法步驟為:①將獲取到的工業物聯網設備信息明文信息按照128bit拆分若干個明文塊。②基于偽隨機序列生成擴展密鑰矩陣,并將密鑰矩陣按輪次進行分配。③通過輪密鑰加過程進行初始輪加密。④根據輪次依次按照字節代替、行移位、列混淆、輪密鑰加過程循環加密,最終獲得密文,完成加密。
基于AES算法的工業物聯網設備信息解密算法步驟為:①獲取工業物聯網設備信息密文塊。②依照擴展密鑰矩陣W[40-43]值通過輪密鑰加過程進行初始輪解密。③根據擴展密鑰矩陣W[(40-i)-(43-i)]值(1<i<11,i為輪次),依次按照逆向行移位、逆向字節代替、輪密鑰加、逆列混淆過程循環解密,最終獲得明文塊。④將明文塊按序排列形成完整明文信息。
工業物聯網的設備層包括數控機床、機器人、PLC設備、RFID設備,數據采集傳感器等,設備間數據通信協議不同,設備信息數據格式多樣,形成了多源異構的數據模式,需要在數據分發前對其進行結構化數據處理以及加密。本文在分析工業物聯網設備層的設備通信協議及設備信息數據格式基礎上,設計了基于STM32單片機的工業物聯網設備信息加密系統,其架構如圖所示。系統架構分為設備層、數據適配層、業務應用層。

圖1 基于STM32單片機的工業物聯網設備信息加密系統架構
目前工業物聯網設備層中主流PLC設備均支持OPC協議,多源傳感器采用Modbus協議,其他設備多采用Ethernet、PROFINET等協議,針對上述多源、不同的復雜通信協議,本文開發的嵌入式信息系統設計了數據適配器,系統的數據適配器主要包括協議適配解析層、數據解析層、數據分發層三個模塊,協議適配解析層主要對現場設備通過各通訊協議得到的數據進行采集和緩存,由數據解析層對緩存中數據進一步加密處理和分解并存取至緩存,然后交由數據分發層進行數據分發。數據適配器在配置文件中進行參數設置,并設置監控服務監控各個層次關鍵參數(如緩存占用率、處理速度、線程數、接入業務應用數、接入采集設備數等),通過TELNET服務實現遠程監控,使得系統具有層次化、多線程并行處理、多緩沖區等特性。
工業生產過程中涉及多種采集設備,采集設備支持的傳輸協議也不同,系統數據適配層中的配置管理模塊根據接入協議,配置協議適配解析層的具體協議解析組件。配置方式為修改配置文件的協議配置參數,無需修改程序代碼。如果新增加了一種協議,只需要按照協議適配解析層接口要求開發新的協議組件,將新協議組件部署到協議組件文件夾,配置后即可實現新協議的解析,開發與測試柔性程度高,且提高了系統穩定性與擴展性。
工業物聯網中設備信息數據實時性強,且響應要求高,本文開發了基于STM32單片機開發的嵌入式信息處理系統,通過并行處理及代碼優化,實現了工業物聯網中設備信息的高效處理與加密。
系統采用經濟型STM32F407Z6T6型ARM芯片,帶有FPU的32位Cirtex-M4 高性能CPU,主頻高達168MHz,15個通信接口,可實現多個設備信息采集。將改進AES算法與數據適配器程序代碼(.hex程序文件)通過ISP軟件燒制單片機ROM。系統通過通信段監控設備,將采集到的信息送入STM32F407Z6T6型ARM芯片,進行數據處理與加密,并將其分發出去。
嵌入式信息處理系統監控界面利用Visual Studio 2015工具開發,通過串口通信偵聽數據收發,解析、加密操作。基于上述平臺搭建了測試平臺,串接5臺PLC控制器、2臺機器人、2臺數控機床及6套傳感器,采集設備狀態、電壓、功率、轉速等數據,通過系統數據適配器的解析,獲得了統一結構化的數據,并對其進行了AES算法加密(如圖所示),系統實時性好,明文長度為500bit時,系統加密時間約0.02ms。

圖2 監控系統界面
通過分析工業物聯網設備層不同裝備通信協議,設計開發了設備層數據適配器,實現了現場設備信息采集、數據結構化。針對設備層信息數據面臨的安全威脅,從保護數據機密性出發,設計了基于AES算法的工業物聯網設備信息加密算法。利用Visual Studio 2015工具開發了基于STM32單片機的工業物聯網設備信息加密系統,對算法進行了性能測試,實驗證明AES算法加密系統實時性好,穩定性高。