本發(fā)明涉及智能終端關管理,特別指一種基于mqtt的路由器、onu、網(wǎng)關告警信息獲取方法。
背景技術:
1、隨著物聯(lián)網(wǎng)(i?ot)技術的迅猛發(fā)展,路由器、onu、網(wǎng)關等智能終端作為連接物聯(lián)網(wǎng)設備和云服務器的關鍵節(jié)點,在數(shù)據(jù)傳輸和管理中起著至關重要的作用。智能終端運行過程中難免會產生告警信息,通常采用snmp協(xié)議(simp?l?enetwork?management?protocol)或者sys?l?og協(xié)議獲取網(wǎng)關的告警信息,但存在如下缺點:
2、1、snmp協(xié)議需要周期性的輪詢智能終端,消耗大量網(wǎng)絡資源、效率低下,且存在較大的時間延遲,無法實時反映智能終端的最新告警信息;2、sys?l?og協(xié)議雖然能實現(xiàn)實時傳輸,但缺乏靈活性和可擴展性,無法滿足復雜網(wǎng)絡環(huán)境下的需求;3、告警信息在傳輸過程中未進行加密,存在被明文竊取和篡改的風險。
3、因此,如何提供一種基于mqtt的路由器、onu、網(wǎng)關告警信息獲取方法,實現(xiàn)提升告警信息獲取的及時性、靈活性以及安全性,成為一個亟待解決的技術問題。
技術實現(xiàn)思路
1、本發(fā)明要解決的技術問題,在于提供一種基于mqtt的路由器、onu、網(wǎng)關告警信息獲取方法,實現(xiàn)提升告警信息獲取的及時性、靈活性以及安全性。
2、本發(fā)明是這樣實現(xiàn)的:一種基于mqtt的路由器、onu、網(wǎng)關告警信息獲取方法,包括如下步驟:
3、步驟s1、智能終端與mqtt服務器協(xié)商定義告警信息規(guī)范;所述智能終端為路由器、onu或者網(wǎng)關;
4、步驟s2、智能終端啟動后,創(chuàng)建一mqtt客戶端;
5、步驟s3、智能終端啟動所述mqtt客戶端與mqtt服務器保持長連接,mqtt服務器向mqtt客戶端訂閱用于獲取告警信息的mqtt主題;
6、步驟s4、智能終端基于所述告警信息規(guī)范檢測到告警事件時,將所述告警事件對應的告警信息以json格式發(fā)布到mqtt主題,將所述mqtt主題加密為加密主題后,將所述加密主題推送給訂閱的mqtt服務器;
7、步驟s5、mqtt服務器解密接收的所述加密主題得到mqtt主題,使用cjson庫解析所述mqtt主題,得到所述告警信息;
8、步驟s6、mqtt服務器對所述告警信息進行展示和分析處理;
9、步驟s7、mqtt服務器對所述告警信息進行加密得到加密信息,對所述加密信息進行存儲備份。
10、進一步的,所述步驟s1中,所述告警信息規(guī)范至少包括告警名稱、告警編號、告警級別以及觸發(fā)條件。
11、進一步的,所述步驟s2具體為:
12、智能終端啟動后,通過c語言調用mosqu?itto庫以創(chuàng)建一mqtt客戶端。
13、進一步的,所述步驟s3具體為:
14、智能終端啟動所述mqtt客戶端,通過所述mqtt客戶端調用mosqu?itto_l?i?b_i?nit函數(shù)初始化mosqu?itto庫,接著調用所述mosqu?itto庫的mosqu?itto_new函數(shù)創(chuàng)建mosqu?itto對象,再調用所述mosqu?itto庫的mosqu?itto_message_ca?l?l?back_set函數(shù)創(chuàng)建broker消息處理回調函數(shù),再調用所述mosqu?i?tto庫的mosqu?itto_t?l?s_set函數(shù)開啟t?l?s認證,然后調用所述mosqu?itto庫的mosqu?itto_connect函數(shù)連接mqtt服務器,連接成功后調用所述mosqu?itto庫的mosqu?i?tto_l?oop_forever函數(shù)保持長連接,mqtt服務器向mqtt客戶端訂閱用于獲取告警信息的mqtt主題。
15、進一步的,所述步驟s4具體為:
16、智能終端基于所述告警信息規(guī)范檢測到告警事件時,將所述告警事件對應的告警信息以json格式發(fā)布到mqtt主題;
17、網(wǎng)關對所述mqtt主題進行mac計算得到mac值,通過hkdf算法生成一隨機數(shù)作為對稱密鑰的種子,通過chacha20算法和所述種子生成一對稱密鑰,通過所述chacha20算法和對稱密鑰對mqtt主題進行加密得到密文數(shù)據(jù),通過aes-gcm算法對所述對稱密鑰進行封裝,通過rsa算法對封裝后的所述對稱密鑰進行加密得到加密密鑰,通過aes-kw算法對所述密文數(shù)據(jù)、加密密鑰以及mac值進行加密得到加密主題,將所述加密主題實時推送給訂閱的mqtt服務器。
18、進一步的,所述步驟s4中,所述mqtt主題為utf-8編碼的字符串。
19、進一步的,所述步驟s5具體為:
20、mqtt服務器接收所述加密主題,通過aes-kw算法解密所述加密主題得到密文數(shù)據(jù)、加密密鑰以及mac值,通過rsa算法對所述加密密鑰進行解密得到封裝后的對稱密鑰,通過aes-gcm算法對封裝后的所述對稱密鑰進行解封,通過解封后的所述對稱密鑰和chacha20算法對密文數(shù)據(jù)進行解密得到mqtt主題,通過所述mac值對mqtt主題進行完整性校驗,使用cjson庫解析所述mqtt主題,得到所述告警信息。
21、進一步的,所述步驟s6具體為:
22、mqtt服務器通過可視化界面,以圖表的形式對所述告警信息進行展示,通過大數(shù)據(jù)技術對所述告警信息進行分析處理。
23、進一步的,所述步驟s7具體為:
24、mqtt服務器通過sha-3算法對所述告警信息進行哈希計算得到哈希值,獲取當前的時間戳,通過aes-256算法對所述告警信息、哈希值以及時間戳進行加密得到第一加密字符串,基于預設的位移量對所述第一加密字符串中的各字符進行向右位移得到第二加密字符串,將所述第二加密字符串等分為第三加密字符串和第四加密字符串,通過rsa算法對所述第三加密字符串進行加密得到第五加密字符串,通過aes算法對所述第四加密字符串進行加密得到第六加密字符串,通過ecdsa算法對所述第五加密字符串以及第六加密字符串進行加密得到加密信息,對所述加密信息進行存儲和分布式備份。
25、進一步的,所述步驟s7還包括:
26、mqtt服務器將所述加密信息實時推送給預先關聯(lián)并身份認證的管理終端。
27、本發(fā)明的優(yōu)點在于:
28、1、通過智能終端與mqtt服務器協(xié)商定義告警信息規(guī)范,智能終端啟動后創(chuàng)建mqtt客戶端,啟動mqtt客戶端與mqtt服務器保持長連接,mqtt服務器向mqtt客戶端訂閱用于獲取告警信息的mqtt主題;智能終端基于告警信息規(guī)范檢測到告警事件時,將告警事件對應的告警信息以json格式發(fā)布到mqtt主題,將mqtt主題加密為加密主題推送給訂閱的mqtt服務器;接著mqtt服務器解密加密主題得到mqtt主題,使用cjson庫解析mqtt主題得到告警信息,對所述告警信息進行展示和分析處理,對告警信息進行加密得到加密信息,并對加密信息進行存儲備份;即通過在智能終端創(chuàng)建的mqtt客戶端與mqtt服務器保持長連接,智能終端的mqtt客戶端通過mqtt主題將告警信息遠程發(fā)送給mqtt服務器,以遠程自動獲取告警信息,無需像傳統(tǒng)上周期性的輪詢智能終端,而mqtt協(xié)議具有較高的靈活性和可擴展性,能夠滿足復雜網(wǎng)絡環(huán)境下的需求,輕量級的mqtt協(xié)議可減少網(wǎng)絡帶寬和網(wǎng)關資源的消耗,且mqtt主題傳輸和告警信息存儲的過程中均進行加密,避免被明文竊取和篡改,最終極大的提升了告警信息獲取的及時性、靈活性以及安全性。
29、2、通過對mqtt主題進行mac計算得到mac值,通過hkdf算法生成一隨機數(shù)作為對稱密鑰的種子,通過chacha20算法和種子生成一對稱密鑰,通過chacha20算法和對稱密鑰對mqtt主題進行加密得到密文數(shù)據(jù),通過aes-gcm算法對對稱密鑰進行封裝,通過rsa算法對封裝后的對稱密鑰進行加密得到加密密鑰,通過aes-kw算法對密文數(shù)據(jù)、加密密鑰以及mac值進行加密得到加密主題,將加密主題實時推送給訂閱的mqtt服務器;由于mac計算基于帶秘密密鑰的hash函數(shù),相對于普通的哈希計算安全性更高,對稱密鑰基于hkdf算法和chacha20算法生成,有效提升對稱密鑰的復雜度,且對稱密鑰經(jīng)過多重加密避免明文泄露,前后采取至少六重安全措施(mac計算、hkdf算法、chacha20算法、aes-gcm算法、rsa算法、aes-kw算法),極大的提升了mqtt主題傳輸?shù)陌踩浴?/p>
30、3、通過sha-3算法對告警信息進行哈希計算得到哈希值,獲取當前的時間戳,通過aes-256算法對告警信息、哈希值以及時間戳進行加密得到第一加密字符串,基于預設的位移量對第一加密字符串中的各字符進行向右位移得到第二加密字符串,將第二加密字符串等分為第三加密字符串和第四加密字符串,通過rsa算法對第三加密字符串進行加密得到第五加密字符串,通過aes算法對第四加密字符串進行加密得到第六加密字符串,通過ecdsa算法對第五加密字符串以及第六加密字符串進行加密得到加密信息,對加密信息進行存儲和分布式備份;后續(xù)可通過哈希值進行完整性校驗,通過時間戳進行時效校驗,且加密的數(shù)據(jù)經(jīng)過變換和分塊加密,前后采取了至少九重安全措施(sha-3算法、時間戳、aes-256算法、位移、等分、rsa算法、aes算法、ecdsa算法、分布式備份),極大的提升了告警信息存儲備份的安全性。
31、4、通過設定告警信息規(guī)范至少包括告警名稱、告警編號、告警級別、觸發(fā)條件,便于網(wǎng)關產生報警事件時,合理的對報警事件進行定性和記錄,并便于后期溯源。
32、5、通過將加密信息實時推送給預先關聯(lián)的管理終端,便于對智能終端進行遠程管理,并提升管理的實時性。