一種基於Hilscher的可信數據採集系統和方法與流程
2023-12-02 19:56:41 3

本發明涉及數據處理技術領域,特別是指一種基於Hilscher的可信數據採集系統和方法。
背景技術:
隨著計算機和網絡技術的發展,工業化與信息化的深度融合成為科技發展的必然趨勢。現有的發展趨勢主要表現在物聯網的快速發展,以及工控產品越來越多的與通用協議、通用軟硬體結合等方面,但是帶來了發展機遇的同時,也為工業控制系統數據安全造成了隱患。據統計,工業控制系統公開的漏洞主要涉及的廠商包括西門子、艾默生、施耐德、通用電氣,其中SCADA佔40%,PLC佔30%,引發了一系列工業控制系統安全事件,工業控制系統安全面臨嚴重挑戰。然而,工業控制系統安全目前處於「外熱內冷」的局面,相比國外,國內人力、物力投入水平遠低於國外,造成這一現象的原因主要是重視程度不夠。
由於上位機資料庫穩定可靠運行也是工業控制系統安全的重要環節之一,因此部分工業廠商採取了一定的安全防護措施,如安裝工業防火牆、入侵檢測系統;但由於工業控制系統的複雜性和廣泛性等實際情況,且沒有採取針對性措施,導致防護效果有限。此外,採集到的數據經過數據傳輸後無法保證其可信度,即使數據傳輸時被篡改也無法及時察覺。再者,上位機主要依賴的安防措施依然是信息安全技術,對具有工業控制系統特徵的攻擊無法採取特定措施,這是很大的安全隱患。
技術實現要素:
基於上述缺陷,本發明實施例的目的是提出一種基於Hilscher的可信數據採集系統和方法。
為了達到上述目的,本發明實施例提出了一種基於Hilscher的可信數據採集系統,包括:DP主站模塊、協議轉換模塊、數據加密模塊、上位機;
其中所述DP主站模塊包括:Hilscher晶片、至少一個用於連接PLC從站的Profibus-DP接口、Hilscher主從站通信接口;其中所述Hilscher晶片通過Profibus-DP接口連接至少一個PLC從站設備以採集PLC從站設備的Profibus總線上的基於Profibus協議的數據,並通過Hilscher主從站通信接口發送到協議轉換模塊;
所述協議轉換模塊包括:處理器、通訊接口組件、VPC3+C從站協議晶片;其中所述處理器通過通訊接口組件連接所述DP主站模塊以從所述DP主站模塊接收基於Profibus協議的數據,並通過VPC3+C從站協議晶片將基於Profibus協議的數據轉換為基於Modbus協議和/或TCP/IP協議的數據,並發送到所述數據加密模塊;
所述數據加密模塊包括:用於接收協議轉換模塊發送來的數據的接收數據處理模塊、用於對數據進行加密並將加密數據發送到上位機的加密發送數據處理模塊;
上位機包括:解密USBKEY模塊、雙冗餘實時資料庫;其中所述解密USBKEY模塊內設有內置解密程序的解密晶片,所述解密USBKEY模塊通過USB接口連接上位機,以將數據加密模塊發送來的加密數據進行解密;其中所述雙冗餘實時資料庫包括冗餘備份配置的AicDataHub工業實時庫和Agilor工業實時庫,以存儲解密後的數據。
進一步的,所述上位機還包括snort入侵檢測模塊,所述snort入侵檢測模塊監聽所述雙冗餘實時資料庫的數據採集埠以將雙冗餘實時資料庫的數據特徵與預設的snort規則庫特徵進行對比以判斷是否有入侵行為。
進一步的,所述上位機還包括連接雙冗餘實時資料庫的數據管理界面,以通過所述數據管理界面實現用戶管權限理、遠程訪問、數據查詢、數據分析、數據篩選等功能。
進一步的,所述DP主站模塊的Hilscher晶片接收到基於Profibus協議的數據,判斷是否是首次與所述PLC從站進行數據傳輸,如果是執行以下的初始化過程以顯式建立連接:
步驟1、DP主站模塊發送Initiate-REQ-PDU報文至到PLC從站的特定服務訪問點;
步驟2、PLC從站判斷是否有可用服務訪問點,如果有則跳轉到步驟3;如果沒有則繼續等待下一次命令,步驟結束;
步驟3、PLC從站發送RM-REQ-PDU報文至DP主站模塊,所述RM-REQ-PDU報文中包括可用服務訪問點;DP主站模塊保存可用服務訪問點信息,同時以輪詢方式向PLC從站發送連接報文並等待PLC從站的應答;
步驟4、PLC從站向PLC從站應用程式發送初始化報文,並接收PLC從站應用程式的應答報文並轉發到DP主站模塊;
步驟5、DP主站模塊解析所述應答報文,如果所述應答報文為同意建立連接,則DP主站模塊與PLC從站建立連接後進行數據交換,並在完成數據交換後顯式斷開連接,完成數據的採集;如果所述應答報文為拒絕建立連接,則步驟結束。
進一步的,所述協議轉換模塊具體包括:處理器、VPC3+C從站協議晶片、電源模塊、RS-232接口、RS-485接口、乙太網口、JTAG模塊;
處理器為LPC1788FDB208晶片,且所述LPC1788FDB208晶片連接有12MHz晶振;
VPC3+C從站協議晶片連接所述協議轉換模塊的Hilscher晶片通信和處理器,所述VPC3+C從站協議晶片的波特率為115200bps;且所述VPC3+C從站協議晶片連接有48MHz晶振;
其中所述電源模塊的輸入電壓為24V,且電源模塊的輸出端分別連接LM2576晶片和LM1117-3.3/SOT223晶片提供5V和3.3V的輸出電壓;
RS-232接口用於連接外接計算機,以使計算機與處理器通信;
RS-485接口設有ADM2486電流隔離器以為Modbus協議接口以發送Modbus協議數據;
乙太網口設有DP83848控制器以將輸出信號轉換為TCP/IP協議數據,並通過HR911103A接口連接所述數據加密模塊;
JTAG模塊用於連接外部調試設備。
進一步的,所述數據加密模塊包括:數據接收網口、接收數據處理模塊、加密發送數據處理模塊、數據發送網口;
其中所述數據接收網口連接所述協議轉換模塊以接收數據,並通過接收數據處理模塊對數據進行處理;其中所述接收數據處理模塊為STM32F107晶片;
其中所述數據發送網口連接上位機,以將接收數據處理模塊處理後的數據通過加密發送數據處理模塊進行加密後發送到上位機;其中所述加密發送數據處理模塊包括STM32F107晶片和加密晶片;
其中數據接收網口和數據發送網口都連接有DP83848乙太網物理層控制器,且所述接收數據模塊和加密發送數據處理模塊之間通過高速SPI串口通信。
進一步的,所述數據加密模塊還包括電源模塊、兩個SWD接口、USB接口;其中所述兩個SWD接口分別連接所述接收數據處理模塊的STM32F107晶片和加密發送數據處理模塊的STM32F107晶片以進行程序下載,且USB接口連接所述加密發送數據處理模塊以進行加密程序下載;所述。
其中所述電源模塊的輸入電壓為24V,且電源模塊的輸出端分別連接LM2576晶片和LM1117-3.3/SOT223晶片提供5V和3.3V的輸出電壓。
同時,本發明實施例還提出了一種利用如前任一項所述的基於Hilscher的可信數據採集系統進行可信數據採集的方法,包括:
通過DP主站模塊從連接PLC從站設備的Profibus總線上採集基於Profibus協議的數據;
通過協議轉換模塊將所述基於Profibus協議的數據轉換為基於Modbus協議和/或TCP/IP協議的數據;
通過數據加密模塊對協議轉換模塊的數據進行加密並發送到上位機;
上位機通過解密USBKEY模塊對接收到的加密數據進行入侵檢測並解密後,存儲到雙冗餘實時資料庫。
本發明的上述技術方案的有益效果如下:上述技術方案中。
附圖說明
圖1為本發明實施例的基於Hilscher的可信數據採集系統的結構框圖;
圖2為本發明實施例的協議轉換模塊的系統結構框圖;
圖3為本發明實施例的協議轉換模塊的顯式建立連接的初始化過程的流程圖;
圖4為本發明實施例的數據加密模塊的系統結構框圖;
圖5為本發明實施例的數據加密的流程圖;
圖6為本發明實施例的上位機的系統結構框圖;
圖7為本發明實施例的snort入侵檢測的流程圖;
圖8為本發明實施例的雙冗餘實時資料庫結構框圖。
具體實施方式
為使本發明要解決的技術問題、技術方案和優點更加清楚,下面將結合附圖及具體實例進行詳細描述。
為實現Profibus-DP可信數據採集,提高數據傳輸、存儲安全性,同時確保系統穩定可靠運行,本發明提出了一種包含數據採集、傳輸、存儲等多種技術融合的可信數據採集系統,該系統能夠將Profibus-DP協議數據轉換成多種數據格式供上位機完成數據採集。
本發明實施例的原理是利用LPC1788FBD208晶片控制Profibus協議晶片VPC3+C將Hilscher採集的Profibus-DP總線數據轉換為TCP/IP協議從網口輸出,輸出數據由數據加密模塊加密後發送到PC端進行解密,並通過雙冗餘實時資料庫完成數據採集,從而實現獲取可信數據,最後SCADA端對數據進行管理和展示操作。同時,本發明實施例在上位機端設計了snort入侵檢測,以進一步確保數據安全。
本發明實施例提出的基於Hilscher的可信數據採集系統,包括DP主站模塊、協議轉換模塊、數據加密模塊、解密USBKEY模塊、雙冗餘實時資料庫、snort入侵檢測模塊、數據管理界面。
在工作時,DP主站模塊從至少一個PLC從站設備接受數據,然後經協議轉換模塊通過TCP/IP協議將數據發至數據加密模塊的數據接收網口,然後數據加密模塊對數據進行加密處理後生成密文,然後將密文發送給PC端。
具體的:DP主站模塊採用DPV1 Class 2通訊模式,包括Profibus-DP接口、Hilscher晶片、至少一個Hilscher主從站通信接口;其中Hilscher晶片通過Hilscher主從站通信接口連接至少一個PLC從站設備,以採集總線數據並存儲在雙埠寄存器中,然後通過Profibus-DP接口與協議轉換模塊進行數據通訊。
協議轉換模塊包括電源模塊、處理器、兩個RS-232接口、1個RS-485接口、1個乙太網口、VPC3+C從站協議晶片、JTAG模塊。協議轉換模塊作為DP從站,其中處理器通過控制VPC3+C從站協議晶片實現與Hilscher晶片通信,並將數據由Profibus協議轉換為Modbus協議和TCP/IP協議,然後通過數據發送至所述數據加密模塊。
如圖2所示,所述協議轉換模塊具體包括:
電源模塊的輸入電壓為24V,分別通過LM2576晶片和LM1117-3.3/SOT223晶片提供5V和3.3V的輸出電壓;
處理器為LPC1788FDB208晶片,該LPC1788FDB208晶片是基於ARMCortex-M3的微控制器,具有高度集成和低功耗通的特點;
RS-232接口連接計算機,以使計算機與處理器通信;
RS-485接口為Modbus協議接口,用於發送Modbus協議數據,該接口連接有ADM2486電流隔離器;
乙太網口用於與DP83848控制器連接,用於將輸出信號轉換為TCP/IP協議數據;
VPC3+C從站協議晶片用於與所述協議轉換模塊的Hilscher晶片通信,進而實現智能從站的開發。VPC3+C從站協議晶片能夠自適應9.6Kbps到12Mbps的波特率,本發明實施例中採用波特率為115200bps。
其中,作為處理器的LPC1788FDB208晶片和VPC3+C從站協議晶片的工作電壓均為3.3V,相較於5V供電可取得較好的抗幹擾性。LPC1788FDB208晶片和VPC3+C從站協議晶片分別連接12M、48MHz晶振。
協議轉換模塊實現由Profibus協議轉換為Modbus協議和TCP/IP協議,Modbus協議數據經過隔離型半雙工的ADM2486電流隔離器處理後由所述RS-485接口11輸出;TCP/IP協議數據經過DP83848乙太網物理層控制器晶片處理後由所述乙太網口12的HR911103A接口輸出到數據加密模塊。其中,2個RS-232接口10用於調試過程中計算機通過電平轉換晶片MAX232與作為處理器的LPC1788FDB208晶片進行通訊。
利用所述協議轉換模塊的VPC3+C從站協議晶片,從DP主站模塊的Hilscher晶片獲取數據後,進行如圖3所示的以下操作:
判斷是否是首次進行數據傳輸,如果是則需要執行初始化過程以顯式建立連接,建立流程包括:
步驟1、DP主站模塊發送Initiate-REQ-PDU報文至到PLC從站的特定服務訪問點;
步驟2、PLC從站判斷是否有可用服務訪問點,如果有則跳轉到步驟3;如果沒有則繼續等待下一次命令,步驟結束;
步驟3、PLC從站發送RM-REQ-PDU報文至DP主站模塊,所述RM-REQ-PDU報文中包括可用服務訪問點;DP主站模塊保存可用服務訪問點信息,同時以輪詢方式向PLC從站發送連接報文並等待PLC從站的應答;
步驟4、PLC從站向PLC從站應用程式發送初始化報文,並接收PLC從站應用程式的應答報文並轉發到DP主站模塊;
步驟5、DP主站模塊解析所述應答報文,如果所述應答報文為同意建立連接,則DP主站模塊與PLC從站建立連接後進行數據「讀(Read)」、「寫(Write)」、「數據交換(Data Transport)」操作,並在完成數據交換後顯式斷開連接,完成數據的採集;如果所述應答報文為拒絕建立連接,則步驟結束。
如圖4所示,數據加密模塊包括電源模塊、數據接收網口、接收數據處理模塊、加密發送數據處理模塊、數據發送網口、運行狀態指示燈、2個SWD接口、1個USB接口。其中接收數據處理模塊可以為STM32F107晶片。加密發送數據模塊可以為STM32F107晶片和加密晶片。
具體的:電源模塊為數據加密模塊供電,協議轉換模塊(2)通過TCP/IP協議將數據發至數據接收網口,接收數據處理模塊由STM32F107晶片實現,再將數據交給加密發送數據處理模塊,加密發送數據模塊由STM32F107和加密晶片實現,通過加密處理後密文通過數據發送網口發送給PC端。其中,電源模塊提供5V和3.3V供電;數據接收網口和數據發送網口均有DP83848乙太網物理層控制器支持;接收數據模塊和加密發送數據處理模塊數據交換採用高速SPI串口通信;運行狀態指示燈顯示數據加密模塊(3)運行情況;兩個SWD接口分別用於兩塊STM32F107晶片程序下載,USB接口用於加密晶片程序下載。
如圖1所示的,還包括連接數據加密模塊的上位機,該上位機包括解密USBKEY模塊、雙冗餘實時資料庫、snort入侵檢測模塊、數據管理界面。
其中,解密USBKEY模塊,包括運行指示燈、解密晶片。其中經過數據加密模塊進行加密的數據,需要在雙冗餘實時資料庫的驅動層完成解密,並將數據以通道的形式發到實時資料庫進行後續操作。解密USBKEY模塊的供電由上位機提供,解密USBKEY模塊連接上位機的USB接口,解密程序固化在解密晶片中以對數據進行解密,而指示燈用於指示所處運行狀態。
在本發明實施例中,雙冗餘實時資料庫基於Visual Studio 2012程序開發,其採取冗餘配置的AicDataHub工業實時庫和Agilor工業實時庫,目的是實現失效轉移。當AicDataHub工業實時庫運行出現故障時,就會自動啟用Agilor工業實時庫以代替實現數據存儲管理功能,整個過程用戶察覺不到。
snort入侵檢測模塊能夠實現snort入侵檢測,以監控應用層服務、網絡流量、日誌、用戶行為、重要文件是否被改動等行為監控。snort入侵檢測主要是監聽實時資料庫數據採集埠,將數據特徵與snort規則庫特徵比對判斷是否有入侵行為,如果發現有入侵行為時則發出警報,以實現具有特定工業控制系統攻擊特徵的防護。
數據管理界面提供人機互動界面,以實現用戶管權限理、遠程訪問、數據查詢、數據分析、數據篩選等功能。用戶可以通過數據管理界面連接雙冗餘實時資料庫以獲得數據,實現人機互動、實時監控工業控制。
如圖1所示,基於Hilscher的可信數據採集系統包括DP主站模塊(1)、協議轉換模塊(2)、數據加密模塊(3)、上位機(4)。所述DP主站模塊(1)包括Profibus從站設備接口(5)、Hilscher(6)、主從站通信接口(7);所述協議轉換模塊(2)主要包括處理器(8)、Profibus通訊協議晶片(9)、2個RS232接口(10)、1個RS485接口(11)、1個網口(12);所述數據加密模塊(3)主要由接收數據處理模塊(13)、發送數據處理模塊(14)、加密晶片(15)組成;所述上位機(4)主要由入侵檢測模塊(16)、解密USBKEY(17)、雙冗餘實時資料庫(18)、數據管理界面(19)組成。
如圖2所示,所述協議轉換模塊輸入電壓為24V,電壓模塊分別通過LM2576和LM1117-3.3/SOT223輸出5V、3.3V;所述處理器(8)為單片機LPC1788FDB208,是基於ARM Cortex-M3的微控制器,具有高度集成和低功耗通的特點,本例採用單片機控制所述Profibus通訊協議晶片(9)VPC3+C實現與所述Hilscher(6)通信,進而實現智能從站的開發,VPC3+C能夠自適應9.6Kbps到12Mbps的波特率,本例採用波特率為115200bps。單片機LPC1788FDB208和晶片VPC3+C供電均為3.3V,相較於5V供電可取得較好的抗幹擾性。單片機和VPC3+C分別接12M、48MHz晶振。協議轉換實現由Profibus協議轉換為Modbus協議和TCP/IP協議,Modbus協議數據經過隔離型半雙工RS-485接收器ADM2486後由所述RS-485接口(11)輸出;TCP/IP協議數據經過乙太網物理層控制器晶片DP83848後由所述網口(12)HR911103A輸出到加密模塊。所述2個RS-232接口(10)用於調試過程中電腦與單片機通信,其電平轉換晶片為MAX232。
如圖3所示,利用所述通訊協議晶片(9)VPC3+C開發的智能從站與所述Hilscher(6)主站通信獲取數據。進行主站從站組態,首先判斷是否是首次進行數據傳輸,如果是則需要執行初始化過程以顯式建立連接,建立連接的流程如下:1)主站發送Initiate-REQ-PDU至從站特定服務訪問點;2)從站判斷是否有可用服務訪問點,有則將該點返回給主站,同時發送初始化報文至從站應用程式,如果沒有則繼續等待下一次命令;3)從站發送RM-REQ-PDU報文至主站;4)主站保存服務點信息,同時發送預連接報文並以輪詢方式等待從站的應答;5)從站接收從站應用程式的應答報文,並發給主站,若為肯定應答則建立連接,否則建立連接失敗。建立連接後便可進行數據「Read」、「Write」、「Data Transport」服務,完成數據交換後顯式斷開連接,主從站通信結束,完成數據的採集。
如圖4所示,所述數據加密模塊(3)系統結構基本對稱,所述接收數據處理模塊(13)主要由網口、DP83848乙太網物理層控制晶片、ARM系列STM32F107晶片組成,數據通過網口採集到晶片;所述發送數據處理模塊(14)系統結構與所述接收數據處理模塊(13)相同,所述發送數據處理模塊(14)與所述加密晶片(15)通信將獲得的數據加密後發送給上位機,兩塊晶片數據交換通過直連的高速SPI口。其中,兩塊STM32F107晶片配有復位按鈕和SWD程序下載口,SWD接口在高速模式下更加穩定,晶片晶振頻率25MHz;加密晶片配有USB程序下載口,晶振頻率為4MHz,運行指示燈可顯示加密晶片所處工作狀態為閒時或者忙碌。
如圖5所示,所述發送數據處理模塊(14)的STM32F107晶片與所述加密晶片(15)進行數據加密流程為:首先發送加密測試數據,若加密晶片處於忙狀態則進入延時等待後再次發送加密測試數據,直到加密晶片處於空閒狀態時驗證加密晶片是否正常工作,若正常則發送預加密數據後延時,然後再次判斷晶片工作狀態,直到為空閒狀態時讀取密文,完成數據加密,而後進入下一次數據空閒狀態判斷和數據加密。整個過程中,測試加密數據只在第一次加密前執行。
如圖6所示,所述上位機(4)系統結構圖包括所述入侵檢測模塊(16)、所述解密USBKEY(17)、所述雙冗餘實時資料庫(18)、所述數據管理界面(19)。由所述數據加密模塊(3)提供的數據在埠處進行snort入侵檢測,檢測基於入侵檢測規則庫,然後在資料庫驅動層利用所述解密USBKEY(17)解密數據,並將數據發送給所述雙冗餘實時資料庫(18),所述數據管理界面(19)完成數據管理功能,主要包括用戶管理、遠程訪問、數據分析、數據查詢和數據篩選功能,實現人機互動。
如圖7所示,snort入侵檢測流程:調用ParseCmdLine解析命令行參數、初始化變量結構和檢測引擎例程。調用OpenPcap打開數據包截獲埠,根據埠類型設置底層鏈路層協議解析例程。初始化插件主要完成關鍵字與初始化程序對應,然後調用CreateDfaultRules進行初始化框架建設,本發明用snort 2.9.8.0版本,可實現規則快速匹配優化例程並實現報警規則設置。接下來進入檢測環節,調用ProcessPacket進行數據包解碼,調用PreProcess可利用預處理器處理數據,然後根據規則庫進行匹配,並依據設置的報警規則採取相應措施,如果繼續檢測則循環檢測環節,否則終止程序。
如圖8所示,雙冗餘實時資料庫結構圖:採用AicDataHub為主實時資料庫、Agilor為備實時資料庫確保數據同步,用戶登錄後實時監控,當主實時庫故障立即切換到備實時庫工作,確保系統穩定。
綜上,本發明所述一種基於Hilscher的可信數據採集系統在工業控制系統總線Profibus-DP數據採集過程中通過協議轉換、入侵檢測、數據加密-傳輸-解密、雙冗餘實時資料庫等安全措施,有效提高數據安全性和可信度。
本發明的有益效果在於:
1)克服Profibus-DP協議不對外開放給用戶造成的困難,提高Profibus-DP總線數據使用便利性。通過主從站通信,將主站Hilscher獲取的Profibus-DP總線數據轉換為Modbus和TCP/IP公開協議,基於LPC1788FDB208和VPC3+C設計的智能從站具有自動識別功能。
2)採用密文傳輸,確保了數據傳輸安全性和可信度:兩套STM32F107和DP83848分別實現數據採集和發送,之間通過高速SPI口直連,發送端配合解密USBKEY實現數據加密和解密,數據傳輸採用嚴格的通信機制,確保了數據加密傳輸的安全性和可靠性,USBKEY硬體解密減少了PC計算負擔。
3)雙冗餘實時資料庫有效提高了系統運行穩定性:以雙冗餘實時資料庫為支撐的上位機數據管理界面穩定運行必須確保資料庫有效運行,雙冗餘機制能夠實現當其中一個實時庫出現故障時自動啟動另一個實時庫,實現失效轉移,大大減小了資料庫障礙的可能性,整個切換過程對用戶不可見。
4)snort入侵檢測更有針對性的提供安全保護:工業控制系統數據安全防護以其特徵為採取措施的依據,採用snort入侵可以監聽埠、特徵比對、報警,其中特徵庫可以結合實際情況進行有效改善和優化,當檢測到有入侵行為時採取相應的報警措施。
5)上位機數據管理界面可實現用戶權限管理、遠程訪問、數據查詢、篩選、分析等功能,為用戶提供可信數據和決策依據,達到實時監控工業控制系統運行狀態的目的。
以上所述是本發明的優選實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明所述原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護範圍。