本發(fā)明涉及mqtt,尤其涉及一種基于多因素身份驗證的mqtt消息遠(yuǎn)程控制安卓設(shè)備方法。
背景技術(shù):
1、現(xiàn)有技術(shù)中,安卓設(shè)備的遠(yuǎn)程控制主要依賴于常見的http和https通信協(xié)議,http和https通信協(xié)議雖然在網(wǎng)絡(luò)連接良好的環(huán)境下能夠提供穩(wěn)定的通信,但在帶寬有限、延遲高的環(huán)境中,遠(yuǎn)程控制的性能表現(xiàn)常常不盡如人意,此外,現(xiàn)有的遠(yuǎn)程控制方法通常僅依賴單一身份驗證方式來保護(hù)系統(tǒng)安全,容易受到攻擊者的針對性破解,尤其在物聯(lián)網(wǎng)領(lǐng)域,許多安卓設(shè)備部署在網(wǎng)絡(luò)條件不穩(wěn)定的區(qū)域,如偏遠(yuǎn)地區(qū)或受限網(wǎng)絡(luò)環(huán)境下,傳統(tǒng)遠(yuǎn)程控制方案在這些場景下面臨著明顯的局限性。
2、具體來說,傳統(tǒng)的遠(yuǎn)程控制方法存在以下幾方面的不足:第一,現(xiàn)有技術(shù)大多采用較為復(fù)雜的通信協(xié)議,傳輸效率較低,無法很好地適應(yīng)受限網(wǎng)絡(luò)環(huán)境,http和https協(xié)議雖然具有較強(qiáng)的通用性和安全性,但在低帶寬和高延遲網(wǎng)絡(luò)中,消息傳輸?shù)男屎涂煽啃暂^差,導(dǎo)致遠(yuǎn)程控制指令無法及時或準(zhǔn)確傳達(dá)到安卓設(shè)備上,第二,現(xiàn)有的安全機(jī)制通常采用單因素身份驗證(靜態(tài)密碼或設(shè)備證書),雖然一定程度上提升了安全性,但隨著安全威脅的多樣化,單一驗證方式容易受到中間人攻擊、密碼暴力破解等多種攻擊手段的威脅,難以充分保護(hù)設(shè)備免受未經(jīng)授權(quán)的訪問,第三,在設(shè)備端的安全驗證方面,現(xiàn)有技術(shù)多僅依賴簡單的證書驗證或ip地址過濾,這些驗證方式雖然可以阻止部分非法訪問,但仍然存在被攻擊者繞過的風(fēng)險,在復(fù)雜網(wǎng)絡(luò)環(huán)境中,服務(wù)器的身份驗證手段亟待增強(qiáng)。
技術(shù)實現(xiàn)思路
1、本發(fā)明的一個目的在于提出一種基于多因素身份驗證的mqtt消息遠(yuǎn)程控制安卓設(shè)備方法,本發(fā)明通過引入多因素身份驗證和mqtt協(xié)議,實現(xiàn)了對安卓設(shè)備的安全高效遠(yuǎn)程控制。
2、根據(jù)本發(fā)明實施例的一種基于多因素身份驗證的mqtt消息遠(yuǎn)程控制安卓設(shè)備方法,包括如下步驟:
3、s1、在遠(yuǎn)程控制服務(wù)器中配置雙向多因素身份驗證系統(tǒng),包括用戶多因素驗證和安卓設(shè)備多因素驗證,用戶多因素驗證包括密碼驗證、生物識別驗證以及動態(tài)驗證碼驗證,安卓設(shè)備多因素驗證包括驗證服務(wù)器證書和檢查服務(wù)器ip白名單驗證;
4、s2、在安卓設(shè)備上部署支持mqtt協(xié)議的客戶端應(yīng)用程序,客戶端應(yīng)用程序用于接收和處理從遠(yuǎn)程控制服務(wù)器發(fā)送的控制指令,并通過安卓設(shè)備的操作系統(tǒng)接口執(zhí)行相應(yīng)操作;
5、s3、遠(yuǎn)程控制服務(wù)器通過mqtt協(xié)議發(fā)布應(yīng)用程序的啟動或關(guān)閉指令、系統(tǒng)設(shè)置的修改指令以及特定任務(wù)的執(zhí)行指令至目標(biāo)安卓設(shè)備;
6、s4、在遠(yuǎn)程控制服務(wù)器發(fā)布控制指令之前,遠(yuǎn)程控制服務(wù)器啟動多因素身份驗證系統(tǒng)對用戶身份進(jìn)行驗證,依次進(jìn)行各個身份驗證方式的驗證操作,且只有在所有驗證方式均通過的情況下,遠(yuǎn)程控制服務(wù)器才允許發(fā)布控制指令;
7、s5、在安卓設(shè)備接收到控制指令后,通過多因素驗證系統(tǒng)對遠(yuǎn)程控制服務(wù)器的身份進(jìn)行驗證,檢查服務(wù)器的數(shù)字證書和驗證服務(wù)器ip地址是否在預(yù)設(shè)的白名單中,只有在通過所有驗證的情況下,安卓設(shè)備才會接收并執(zhí)行控制指令;
8、s6、遠(yuǎn)程控制服務(wù)器在發(fā)布控制指令的同時,控制指令通過加密算法進(jìn)行加密處理,防止未經(jīng)授權(quán)的訪問和篡改;
9、s7、安卓設(shè)備在通過服務(wù)器身份驗證并接收到控制指令后,通過mqtt客戶端應(yīng)用程序?qū)刂浦噶钸M(jìn)行解密,并根據(jù)控制指令的內(nèi)容調(diào)用安卓操作系統(tǒng)的接口執(zhí)行相應(yīng)操作;
10、s8、安卓設(shè)備在執(zhí)行完控制指令后,將操作結(jié)果通過mqtt協(xié)議以消息形式反饋至遠(yuǎn)程控制服務(wù)器,反饋信息包括操作執(zhí)行狀態(tài)、設(shè)備當(dāng)前狀態(tài)信息以及可能的錯誤信息;
11、s9、遠(yuǎn)程控制服務(wù)器接收到安卓設(shè)備反饋的操作結(jié)果后,將反饋的操作結(jié)果記錄在服務(wù)器日志中。
12、可選的,所述s1包括以下子步驟:
13、s11、配置用戶多因素驗證系統(tǒng),用戶多因素驗證系統(tǒng)包括以下三種驗證方式:
14、密碼驗證,通過用戶設(shè)置的靜態(tài)密碼進(jìn)行身份驗證,靜態(tài)密碼在遠(yuǎn)程控制服務(wù)器中經(jīng)過加密處理后存儲;
15、生物識別驗證,通過用戶設(shè)備內(nèi)的生物識別傳感器獲取指紋和面部特征,并生成相應(yīng)的生物識別數(shù)據(jù),用于身份確認(rèn);
16、動態(tài)驗證碼驗證,通過遠(yuǎn)程控制服務(wù)器生成并發(fā)送基于時間或事件的動態(tài)驗證碼,用戶通過輸入動態(tài)驗證碼完成驗證,動態(tài)驗證碼在指定時間內(nèi)有效。
17、s12、配置安卓設(shè)備多因素驗證系統(tǒng),所述系統(tǒng)包括以下兩種驗證方式:
18、驗證服務(wù)器證書:安卓設(shè)備通過驗證服務(wù)器發(fā)送的數(shù)字證書確認(rèn)遠(yuǎn)程控制服務(wù)器的合法性,包括檢查服務(wù)器證書是否有效以及驗證服務(wù)器證書簽名是否正確;
19、檢查服務(wù)器ip白名單驗證,安卓設(shè)備在接收到遠(yuǎn)程控制服務(wù)器的控制指令時,檢查服務(wù)器的ip地址是否存在于預(yù)設(shè)的ip白名單中,只有當(dāng)服務(wù)器ip地址位于白名單內(nèi),安卓設(shè)備才允許執(zhí)行控制指令。
20、可選的,所述s2包括以下子步驟:
21、s21、在安卓設(shè)備上安裝并運行支持mqtt協(xié)議的客戶端應(yīng)用程序,所述客戶端應(yīng)用程序接收遠(yuǎn)程控制服務(wù)器通過mqtt協(xié)議發(fā)布的控制指令;
22、s22、客戶端應(yīng)用程序通過訂閱mqtt主題接收來自遠(yuǎn)程控制服務(wù)器的控制消息,包括應(yīng)用程序啟動或關(guān)閉、系統(tǒng)設(shè)置修改以及特定任務(wù)執(zhí)行的指令;
23、s23、客戶端應(yīng)用程序解析接收到的控制指令,并根據(jù)控制指令的類型調(diào)用安卓操作系統(tǒng)提供的相關(guān)接口執(zhí)行啟動應(yīng)用、調(diào)整系統(tǒng)配置和訪問設(shè)備資源;
24、s24、客戶端應(yīng)用程序通過本地日志記錄控制操作的執(zhí)行結(jié)果,并通過安卓設(shè)備的操作系統(tǒng)接口監(jiān)控電池狀態(tài)、網(wǎng)絡(luò)連接狀態(tài)和當(dāng)前正在運行的應(yīng)用程序;
25、s25、客戶端應(yīng)用程序通過mqtt協(xié)議將執(zhí)行結(jié)果和設(shè)備狀態(tài)以消息的形式反饋給遠(yuǎn)程控制服務(wù)器。
26、可選的,所述s3步驟包括以下子步驟:
27、s31、遠(yuǎn)程控制服務(wù)器通過mqtt協(xié)議向目標(biāo)安卓設(shè)備發(fā)布應(yīng)用程序的啟動指令、關(guān)閉指令、系統(tǒng)設(shè)置的修改指令以及特定任務(wù)的執(zhí)行指令:
28、
29、其中,ccmd為發(fā)布的控制指令,αi和βi分別代表指令中不同模塊的權(quán)重系數(shù),取決于任務(wù)優(yōu)先級,f(ti,ai)表示目標(biāo)設(shè)備中應(yīng)用程序的啟動或關(guān)閉操作,ti為任務(wù)類型,ai為應(yīng)用程序狀態(tài),g(ui,si)表示系統(tǒng)設(shè)置的修改操作或特定任務(wù)的執(zhí)行指令,ui為用戶輸入,si為設(shè)備狀態(tài)反饋;
30、s32、遠(yuǎn)程控制服務(wù)器通過mqtt協(xié)議中的發(fā)布機(jī)制將控制指令以消息形式發(fā)布至安卓設(shè)備所訂閱的mqtt主題,mqtt主題根據(jù)安卓設(shè)備的唯一標(biāo)識符配置:
31、
32、其中,mpub為發(fā)布到mqtt主題的消息,tttl表示消息的存活時間,ccmd(t)為時間t時發(fā)布的控制指令,λ為消息遞送衰減系數(shù),表明消息的有效傳輸范圍與時間相關(guān),t0為消息生成的初始時間;
33、s33、遠(yuǎn)程控制服務(wù)器為每個控制指令生成唯一的消息標(biāo)識符,消息標(biāo)識符與控制指令一起發(fā)送,避免重復(fù)執(zhí)行或指令丟失:
34、
35、其中,mid為消息標(biāo)識符,h(ccmd)為控制指令ccmd的哈希值,tdev(i)為設(shè)備i的唯一標(biāo)識符,γi為設(shè)備優(yōu)先級權(quán)重系數(shù),mod264確保標(biāo)識符在64位長度內(nèi)唯一;
36、s34、遠(yuǎn)程控制服務(wù)器根據(jù)設(shè)備的當(dāng)前網(wǎng)絡(luò)狀態(tài)選擇消息的qos級別,qos級別包括:
37、qos?0:消息最多傳輸一次,不保證到達(dá);
38、qos1:消息至少傳輸一次,確保到達(dá)但可能重復(fù);
39、qos2:消息僅傳輸一次,確保到達(dá)且不重復(fù);
40、s35、遠(yuǎn)程控制服務(wù)器在發(fā)送控制指令時通過加密算法對控制消息進(jìn)行加密,遠(yuǎn)程控制服務(wù)器根據(jù)安卓設(shè)備的反饋信息,確認(rèn)指令執(zhí)行狀態(tài),并記錄指令的執(zhí)行結(jié)果。
41、可選的,所述s4步驟包括以下子步驟:
42、s41、遠(yuǎn)程控制服務(wù)器在發(fā)布控制指令之前,啟動多因素身份驗證系統(tǒng),對用戶的身份進(jìn)行驗證,身份驗證系統(tǒng)包括密碼驗證、生物識別驗證和動態(tài)驗證碼驗證,只有所有驗證方式均通過的情況下才能發(fā)布控制指令;
43、s42、密碼驗證步驟:通過對用戶輸入的靜態(tài)密碼puser進(jìn)行哈希處理,生成哈希值h(puser),并將其與存儲在遠(yuǎn)程控制服務(wù)器中的參考哈希值href(puser)進(jìn)行匹配,只有當(dāng)h(puser)=href(puser)時,密碼驗證成功;
44、s43、生物識別驗證步驟:通過設(shè)備中的生物識別傳感器獲取用戶的生物信息特征buser,并與服務(wù)器中存儲的參考生物特征bref(user)進(jìn)行匹配,若buser=bref(user),則生物識別驗證通過;
45、s44、動態(tài)驗證碼驗證步驟:遠(yuǎn)程控制服務(wù)器生成基于時間的動態(tài)驗證碼totp(t),其中t為當(dāng)前時間戳,用戶需要輸入對應(yīng)的動態(tài)驗證碼totpuser(t),若totpuser(t)=totpserver(t),則動態(tài)驗證碼驗證成功;
46、s45、所有驗證方式均通過后,遠(yuǎn)程控制服務(wù)器生成驗證通過的標(biāo)志位vpass,若vpass=1,則允許發(fā)布控制指令,若任一驗證方式失敗,則vpass=0,控制指令將不會被發(fā)布;
47、s46、遠(yuǎn)程控制服務(wù)器將驗證結(jié)果記錄在日志中,包括用戶身份驗證的時間戳tlog和每個驗證步驟的執(zhí)行狀態(tài)。
48、可選的,所述s5步驟包括以下子步驟:
49、s51、在安卓設(shè)備接收到遠(yuǎn)程控制服務(wù)器發(fā)布的控制指令后,通過多因素驗證系統(tǒng)對服務(wù)器的身份進(jìn)行驗證,驗證系統(tǒng)包括服務(wù)器的數(shù)字證書驗證和ip地址白名單驗證;
50、s52、數(shù)字證書驗證步驟:安卓設(shè)備從接收到的控制消息中提取服務(wù)器的數(shù)字證書certsrv,通過預(yù)設(shè)的根證書頒發(fā)機(jī)構(gòu)公鑰kca對證書進(jìn)行驗證,若驗證通過則表示該服務(wù)器身份合法,驗證條件為vcert(certsrv,kca)=1,否則拒絕執(zhí)行控制指令;
51、s53、ip地址白名單驗證步驟:安卓設(shè)備從接收到的控制消息中獲取服務(wù)器的ip地址ipsrv,并將其與安卓設(shè)備中預(yù)設(shè)的ip白名單wip進(jìn)行比對,當(dāng)ipsrv∈wip時驗證通過,否則拒絕執(zhí)行控制指令;
52、s54、若數(shù)字證書驗證和ip地址白名單驗證均通過,安卓設(shè)備生成驗證通過標(biāo)志位vpass_srv=1,并繼續(xù)執(zhí)行控制指令,否則生成驗證失敗標(biāo)志位vpass_srv=0,并中斷控制指令的執(zhí)行;
53、s55、在驗證通過后,安卓設(shè)備記錄驗證過程的時間戳tcert和ip地址匹配狀態(tài)ipmatch,安卓設(shè)備根據(jù)驗證通過的狀態(tài),執(zhí)行相應(yīng)的控制指令,并通過mqtt協(xié)議向遠(yuǎn)程控制服務(wù)器反饋執(zhí)行結(jié)果。
54、可選的,所述s7步驟包括以下子步驟:
55、s71、在安卓設(shè)備通過服務(wù)器身份驗證并接收到加密的控制指令后,安卓設(shè)備通過mqtt客戶端應(yīng)用程序?qū)刂浦噶罾脤ΨQ密鑰加密算法進(jìn)行解密:
56、dcmd=deckey(cenc);
57、其中,dcmd為解密后的控制指令,deckey為解密函數(shù),cenc為接收到的加密控制指令,key為預(yù)共享的對稱密鑰;
58、s72、解密完成后,安卓設(shè)備通過mqtt客戶端解析控制指令的內(nèi)容,識別應(yīng)用程序啟動或關(guān)閉、系統(tǒng)設(shè)置修改或特定任務(wù)執(zhí)行的操作指令;
59、s73、根據(jù)解析后的控制指令調(diào)用安卓操作系統(tǒng)的api接口執(zhí)行相應(yīng)操作:
60、若指令涉及應(yīng)用程序的啟動或關(guān)閉,則調(diào)用安卓操作系統(tǒng)的應(yīng)用管理接口;
61、若指令涉及系統(tǒng)設(shè)置修改,則調(diào)用安卓系統(tǒng)的設(shè)置管理接口;
62、若指令涉及特定任務(wù)執(zhí)行,則調(diào)用相應(yīng)的任務(wù)管理接口,使任務(wù)在安卓設(shè)備上正確執(zhí)行;
63、s74、安卓設(shè)備在執(zhí)行控制指令的過程中,實時監(jiān)控執(zhí)行狀態(tài),并將執(zhí)行過程中的反饋信息通過mqtt協(xié)議發(fā)送回遠(yuǎn)程控制服務(wù)器,反饋信息包括執(zhí)行結(jié)果、執(zhí)行時的設(shè)備狀態(tài)及任何錯誤信息;
64、s75、控制指令執(zhí)行完成后,安卓設(shè)備將所有操作日志記錄在本地日志文件中,并更新設(shè)備的當(dāng)前狀態(tài)。
65、本發(fā)明的有益效果是:
66、(1)本發(fā)明通過采用輕量級的mqtt協(xié)議進(jìn)行消息傳輸,提升了在帶寬有限、延遲高的網(wǎng)絡(luò)環(huán)境中的通信效率,mqtt協(xié)議相較于傳統(tǒng)的http和https協(xié)議,能夠以最少的網(wǎng)絡(luò)資源和較低的帶寬需求實現(xiàn)穩(wěn)定的消息傳輸,在客戶端應(yīng)用程序和服務(wù)器間的消息交互,使用了基于消息服務(wù)質(zhì)量控制的策略,確保了不同網(wǎng)絡(luò)狀態(tài)下的指令傳輸可靠性,通過設(shè)定合適的qos級別即便在網(wǎng)絡(luò)狀況不佳時,仍然能夠有效避免消息丟失或重復(fù)執(zhí)行,提高了遠(yuǎn)程控制的穩(wěn)定性和效率。
67、(2)本發(fā)明在遠(yuǎn)程控制操作前后引入了雙向多因素身份驗證機(jī)制,在服務(wù)器和客戶端之間均要求通過多重驗證,確保了遠(yuǎn)程控制操作的合法性,用戶多因素驗證和設(shè)備端的雙向驗證機(jī)制,在每個控制指令傳輸前后,進(jìn)一步提高了系統(tǒng)的安全性,與傳統(tǒng)的單一身份驗證方式相比,本發(fā)明有效防止了中間人攻擊、重放攻擊和惡意篡改多種安全威脅,使得系統(tǒng)能夠在復(fù)雜的網(wǎng)絡(luò)環(huán)境下安全運行。
68、(3)本發(fā)明的控制指令生成與執(zhí)行過程通過使用mqtt協(xié)議結(jié)合多層次的驗證機(jī)制,在安卓設(shè)備端能夠精確解析并執(zhí)行控制指令,通過引入對稱密鑰加密和唯一消息標(biāo)識符的設(shè)計,每個指令都經(jīng)過嚴(yán)格的加密和身份驗證,與此同時,安卓設(shè)備在執(zhí)行完指令后,實時將執(zhí)行結(jié)果和設(shè)備狀態(tài)反饋給遠(yuǎn)程控制服務(wù)器,通過mqtt協(xié)議回傳執(zhí)行日志信息,進(jìn)一步保證了系統(tǒng)的可靠性。