一種網關通訊方法及系統與流程
2023-10-11 22:05:34 1

本發明涉及智能終端技術領域,特別涉及一種網關通訊方法及系統。
背景技術:
隨著物聯網技術的興起,智能家居系統已經成為研究和發展的熱點。智能家居系統中的智能家居通過網關設備接入雲端設備,網關設備可以通過區域網與智能家居設備通訊,通過有可以通過廣域網將接收到的通訊信息發送至雲端設備,從而實現智能家居設備與雲端設備的通訊。也就是說,所述網關設備是一種充當轉換重任的計算機系統或設備,實現智能家居和雲端設備的通訊。但是,在所述網關設備充當翻譯器的同時,所述網關設備的安全性也成為人們關注的焦點。但是,智能家居的通訊信息在通過網關設備發送這雲端伺服器時並不安全,用戶家中的智能設備一旦接入網際網路,就存在被黑客控制的風險,尤其是用戶家中的視頻監控器或電子門鎖,一旦被黑客控制,個人隱私及家居安全問題都將面臨嚴峻的挑戰。
因而現有技術還有待改進和提高。
技術實現要素:
本發明的目的是要提供一種網關通訊方法及系統。
為了實現上述目的,本發明所採用的技術方案如下:
一種網關通訊方法,其包括:
當雲端設備接收到網關設備的註冊請求時,所述雲端設備為所述網關設備分配第一密鑰對,其中,所述第一密鑰對包括廣域網通訊密鑰和區域網通訊密鑰;
所述網關設備採用所述廣域網通訊密鑰加密註冊得到的帳號及密碼得到加密密文,並將所述加密密文發送至雲端設備;
所述雲端設備採用所述網關設備對應的廣域網通訊密鑰解密所述密文,並對解密得到的帳號及密碼進行認證;以及
在認證成功時為所述網關設備配置會話密鑰,並在所述網關設備與雲端設備通訊時,對每條通信協議利用所述會話密鑰對協議包進行加密。
所述網關通訊方法,其中,所述當雲端設備接收到網關設備的註冊請求時,所述雲端設備為所述網關設備分配第一密鑰對之前包括:
APP端連接所述網關設備的AP熱點,並通過UDP廣播獲取所述網關設備的設備信息;以及
根據所述網關設備的設備信息與所述網關設備建立TCP連接;
所述網關設備將其可連接的路由器的SSID列表發送至APP端;
所述APP端將所述SSID列表展示給用戶,並將用戶選取的路由器的SSID及密碼通過採用協商密鑰加密的通訊協議發送至所述網關設備,以使得所述網關設備連接所述路由器。
所述網關通訊方法,其中,所述APP端連接所述網關設備的AP熱點,並通過UDP廣播獲取所述網關設備的設備信息具體包括:
所述APP端與所述網關設備的AP熱點,並向所述網關設備發送獲取其設備信息的UDP廣播,其中,所述UDP廣播攜帶所述APP端自身攜帶的第一公鑰;
所述網關設備接收所述UDP廣播,並將自身攜帶的第二私鑰與所述APP端的第一公鑰進行ECDH協商得到協商密鑰,其中,所述協商密鑰與所述APP端採用自身攜帶的第一私鑰與所述網關設備的第二公鑰通過ECDH協商得到的協商密鑰相同;以及
採用協商密鑰對其自身的設備信息進行加密,並將加密後的設備信息反饋至所述APP端,其中,所述反饋攜帶所述網關設備自身攜帶的第二公鑰。
所述網關通訊方法,其中,所述第一公鑰和第一私鑰為所述APP端預先存儲的第二密鑰對,所述第二公鑰和第二私鑰為所述網關設備預先存儲的第三密鑰對。
所述網關通訊方法,其中,所述當雲端設備接收到網關設備的註冊請求時,所述雲端設備為所述網關設備分配第一密鑰對具體包括:
所述APP端向所述雲端設備發送註冊請求,其中,所述註冊請求攜帶所述網關設備的設備信息;
所述雲端設備根據所述註冊請求為所述網關設備分配註冊信息並將其反饋至所述APP端,其中,所述註冊信息包括註冊帳號、密碼以及第一密鑰對;
所述APP端採用所述協商密鑰對所述註冊信息進行加密得到第二密文,並將所述第二密文發送至網關設備;
所述網關設備解密所述第二密文得到所述註冊信息。
所述網關通訊方法,其中,所述雲端設備採用所述網關設備對應的廣域網通訊密鑰解密所述密文,並對解密得到的帳號和密碼進行認證具體包括:
當雲端設備接收到所述密文時,查找所述網關設備對應的廣域網通訊密鑰;
當查找到所述廣域網通訊密鑰時,採用所述廣域網通訊密鑰解密所述密文,並對解密得到的帳號和密碼進行認證。
所述網關通訊方法,其中,所述當認證成功時,為所述網關設備配置會話密鑰,並在所述網關設備與雲端設備通訊時,對每條通信協議利用所述會話密鑰對協議包進行加密之後還包括:
所述網關設備下屬的子設備通過APP端向雲端註冊以得到子設備的所述第一密鑰對,並在所述網關設備與所述子設備進行本地通訊時,對每條通信協議利用所述區域網通訊密鑰對協議包進行加密。
所述網關通訊方法,其中,所述在認證成功時為所述網關設備配置會話密鑰,並在所述網關設備與雲端設備通訊時,對每條通信協議利用所述會話密鑰對協議包進行加密具體包括:
在認證成功時,隨機生成一會話密鑰並將所述會話密鑰分配給所述網關設備;
所述網關設備與所述雲端設備通訊時,對每條通信協議利用所述會話密鑰對協議包進行加密;
當網關設備註銷與雲端設備認證時,所述雲端設備失效所述會話密鑰。
一種網關通訊系統,其包括:網關設備以及雲端設備;
所述雲端設備包括:分配模塊,認證模塊以及配置模塊;
所述分配模塊,用於當雲端設備接收到網關設備的註冊請求時,所述雲端設備為所述網關設備分配第一密鑰對,其中,所述第一密鑰對包括廣域網通訊密鑰和區域網通訊密鑰;
所述網關設備用於採用所述廣域網通訊密鑰加密註冊得到的帳號及密碼得到加密密文,並將所述加密密文發送至雲端設備;
所述認證模塊,用於採用所述網關設備對應的廣域網通訊密鑰解密所述密文,並對解密得到的帳號和密碼進行認證;以及
所述配置模塊,用於在認證成功時為所述網關設備配置會話密鑰,其中,所述會話密鑰用於對所述網關設備與雲端設備的每條通信協議的協議包加密。
所述網關通訊系統,其還包括APP端;
所述APP端包括:獲取模塊、建立模塊以及發送模塊;
所述獲取模塊,用於連接所述網關設備的AP熱點,並通過UDP廣播獲取所述網關設備的設備信息;
所述建立模塊,用於根據所述網關設備的設備信息與所述網關設備建立TCP連接,並通過所述TCP連接獲取所述網關設備可連接的路由器的SSID列表;
所述發送模塊,用於將所述SSID列表展示給用戶,並將用戶選取的路由器的SSID和密碼通過採用協商密鑰加密的通訊協議發送至所述網關設備,以使得所述網關設備連接所述路由器。
有益效果:與現有技術相比,本發明提供了一種網關通訊方法及系統,所述方法包括:當雲端設備接收到網關設備的註冊請求時,所述雲端設備為所述網關設備分配第一密鑰對,所述網關設備採用所述廣域網通訊密鑰加密註冊得到的帳號及密碼得到加密密文,並將所述加密密文發送至雲端設備;所述雲端設備採用所述網關設備對應的廣域網通訊密鑰解密所述密文,並對解密得到的帳號和密碼進行認證;以及在認證成功時為所述網關設備配置會話密鑰,並在所述網關設備與雲端設備通訊時,對每條通信協議利用所述會話密鑰對協議包進行加密。本發明通過在認證成功後為網關設備與雲端設備此次會話動態配置會話密鑰,以提高網關設備與雲端設備之間通訊的安全性。
附圖說明
圖1為本發明提供的網關通訊方法較佳實施的流程圖。
圖2為本發明提供的網關通訊方法的實施例一的流程圖。
圖3為本發明提供的網關通訊方法的實施例一的時序圖。
圖4為本發明提供的網關通訊系統的結構原理圖。
圖5為本發明提供的網關通訊系統的一個實施例的結構原理圖。
具體實施方式
本發明提供一種網關通訊方法及系統,為使本發明的目的、技術方案及效果更加清楚、明確,以下參照附圖並舉實施例對本發明進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,並不用於限定本發明。
本發明中,使用用於表示元件的諸如「模塊」、「部件」或「單元」的後綴僅為了有利於本發明的說明,其本身並沒有特定的意義。因此,「模塊」、「部件」或「單元」可以混合地使用。
終端設備可以以各種形式來實施。例如,本發明中描述的終端可以包括諸如行動電話、智慧型電話、筆記本電腦、數字廣播接收器、PDA(個人數字助理)、PAD(平板電腦)、PMP(可攜式多媒體播放器)、導航裝置等等的移動終端以及諸如數字TV、臺式計算機等等的固定終端。然而,本領域技術人員將理解的是,除了特別用於移動目的的元件之外,根據本發明的實施方式的構造也能夠應用於固定類型的終端。
下面結合附圖,通過對實施例的描述,對發明內容作進一步說明。
請參照圖1,圖1為本發明提供的網關通訊系統方法的較佳實施例的流程圖。所述方法包括:
S100、當雲端設備接收到網關設備的註冊請求時,所述雲端設備為所述網關設備分配第一密鑰對,其中,所述第一密鑰對包括廣域網通訊密鑰和區域網通訊密鑰。
具體地,所述雲端設備通過通信網絡收到網關設備發送的註冊請求,該註冊請求中攜帶本次請求接入雲端設備的網關設備的設備信息。所述通信網絡可以是2G網絡、3G網絡、4G網絡、Wi-Fi、或者有線網線等。其中,網關設備的標識可以是在設備出廠前由廠家為其唯一設定的設備序列碼(類似乙太網的MAC地址)等。
所述第一密鑰對包括廣域網通訊密鑰和區域網通訊密鑰,所述廣域網通訊密鑰用戶網關設備得到雲端設備認證之前與雲端設備通信使用,所述區域網通訊密鑰用戶網關設備和與其處於同一區域網內的子設備通信使用。這樣將廣域網和區域網的密鑰分開,可以提高通信的安全行。
在本實施例中,所述網關設備的accesskey和localkey的第一密鑰對夠可以在後臺配置效期,如,一年。在第一密鑰對過期後由APP端替網關設備重新註冊以更換第一密鑰對。在實際應用中,當所述第一密鑰對密鑰快過期前預設時間(如15天)提示。也就是說,雲端設備會提前15天讓所述網關設備的相關聯的APP端提示用戶是否更改密鑰。當用戶選擇是時,發起重新註冊。在第一密鑰對過期後,雲端設備讓APP端提示用戶所述第一密鑰對到期需重新註冊而雲端設備在處理重新註冊時,要生成新的第一密鑰對(accesskey、localkey)。當然,也可以預設設置網關設備的服務有效期(如,兩年),並採用與有效期相同的辦法進行提示,這裡就不再贅述。
進一步,為了網關設備與雲端設備通信的安全行,可以通過已知所述網關設備的其他設備(記為APP端)代為網關設備想雲端設備註冊,並將註冊得到的認證信息發送至網關設備,網關設備在根據所述認證信息進行後續的認證步驟。相應的,在所述當雲端設備接收到網關設備的註冊請求時,所述雲端設備為所述網關設備分配第一密鑰對,其中,所述第一密鑰對包括廣域網通訊密鑰和區域網通訊密鑰之前還可以APP端獲取網關設備的設備信息的過程,所述過程具體可以包括:
S1、APP端連接所述網關設備的AP熱點,並通過UDP廣播獲取所述網關設備的設備信息;
S2、根據所述網關設備的設備信息與所述網關設備建立TCP連接;
S3、所述網關設備將其可連接的路由器的SSID列表發送至APP端;
S4、所述APP端將所述SSID列表展示給用戶,並將用戶選取的路由路由器的SSID及密碼通過採用協商密鑰加密的通訊協議發送至所述網關設備,以使得所述網關設備連接所述路由器。
具體的來說,在所述步驟S1中,所述網關設備啟動並作為一個AP熱點,所述APP端連接所述網關設備的AP熱點。所述網關設備的AP熱點可以採用二維碼形式,並且所述二維碼包含所述網關設備的MAC地址。所述APP端通過掃描所述二維碼與所述網關設備建立連接。
示例性的,所述APP端連接所述網關設備的AP熱點,並通過採用協商密鑰進行加密的UDP廣播獲取所述網關設備的設備信息具體包括:
S11、所述APP端與所述網關設備的AP熱點,並向所述網關設備發送獲取其設備信息的UDP廣播,其中,所述UDP廣播攜帶所述APP端自身攜帶的第一公鑰。
具體地,所述APP預先存儲的一密鑰對,記為第二密鑰對內,所述第二密鑰對包含第一私鑰和第一公鑰。同樣的,所述網關設備也預先存儲一個密鑰對,記為第三密鑰對,所述第三密鑰對包含第二私鑰和第二公鑰。在實際應用中,所述第二密鑰對可以是APP端啟動時自動生成,並且APP端每次啟動時生成的第二密鑰對可以是不同。相應的,所述第三密鑰對也可以是所述網關設備啟動時自動生成的,並且每次啟動時生成的第三密鑰對也可以是不同的。值得說明的,所述第二密鑰對和第三密鑰對保護的私鑰只有其對應的設備自身知道,而另外設備僅能獲知第二密鑰對和第三密鑰對的公鑰,這樣在保證兩個設備正常通訊的前提下,也提高了通訊的安全性。
所述APP端通過所述UDP廣播通道向所網關設備發送一個獲取網關設備的設備信息的UDP廣播。所述UDP廣播的通訊協議可以包括分負載區和數據區,所述負載區為APP端的第一公鑰public key,所述數據區為獲取所述網關設備的設備信息的搜索命令,如searchDevice。所述設備信息可以網關設備的IP位址、埠port3、是否入網、產品參數(如MAC地址、SN碼)等。
S12、所述網關設備接收所述UDP廣播,並將自身攜帶的第二私鑰與所述APP端的第一公鑰進行ECDH協商得到協商密鑰,其中,所述協商密鑰與所述APP端採用自身攜帶的第一私鑰與所述網關設備的第二公鑰通過ECDH協商得到的協商密鑰相同。
具體地,所述ECDH是基於ECC(Elliptic Curve Cryptosystems,橢圓曲線密碼體制)的DH(Diffie-Hellman)密鑰交換算法,通過所述ECDH算法可以在兩個設備不共享各種私鑰的情況下協商出一協商密鑰agreekey,並可以通過所述協商密鑰進行加密和解密。從而,在本實施例中,所述APP端與網關設備之間採用ECDH算法根據第一私鑰和第二公鑰協商出協商密鑰。
所述數據區採用所述協商密鑰agreekey進行加密。所述加密方式可以AES128(算法/模式/填充:AES/CBC/PKCS5Padding)加密,例如,
KEY_ALGORITHM = "AES";CIPHER_ALGORITHM_CBC = "AES/CBC/PKCS5Padding";加密和解密方法分別為:
String encrypt(String content, String key) //加密方法
String decrypt(String data, String key) //解密方法
其中,content表示內容,key表示密鑰。
例如,key = "kvCMU5EerVjVIFk66dUZdSnttLyWCSbv"
假設數據加密前為:
1042029;
加密後為:
QFoulV0EugD2rKN10aLgCqqrVtrJ6pfzAWFTrGfOXRUWmNuC1LMu9Srml3iR01aCEZqfm+TarW9OtJLSfGRzsTY7ivAHgTHRG6M6cNINYLLFcdUtbIk0dipqoxjExUnHRJjTzYZ+xbOBnVG2TJvBai92NCHnmkGmnirugVqio1TP+KK6W9n4C4R9JTk141wA;
解密後為:
1042029。
S13、採用協商密鑰對其自身的設備信息進行加密,並將加密後的設備信息反饋至所述APP端,其中,所述反饋攜帶所述網關設備自身攜帶的第二公鑰。
具體地,所述網關設備接收所述請求信息,獲取所述請求信息攜帶的APP端的第一公鑰,採用ECDH算法根據所述第一公鑰和其自身攜帶的第二私鑰協商得到所述協商密鑰agreekey。當然,採用ECDH算法根據第一私鑰和第二公鑰也可以得到所述協商密鑰agreekey。在實際應用中,所述網關設備監聽約定埠port1的UDP包,當收到該UDP廣播後,獲取所述UDP廣播負載區攜帶的第一公鑰,根據所述第一公鑰和其自身的第二私鑰進行ECDH協商得到所述協商密鑰,以用於對反饋信息進行加密。
進一步,所述網關設備根據所述獲取的請求信息獲取其自身的設備信息,並在獲取到其自身的設備信息後,採用所述協商密鑰對所述設備信息進行AES128加密。再將加密後的設備信息反饋至所述APP端,所述反饋信息中攜帶所述網關設備的第二公鑰。在實際應用中,網關設備在獲取到設備信息(deviceInfo信息)後,採用協商密鑰agreekey對設備信息進行AES128加密,再將所述加密後設備信息放入數據區,網關設備的第二公鑰public key放入負載區形成UDP廣播,並向該網段(如255.255.255.0)和另一個埠port2(如10072)發出所述UDP廣播。
在所述步驟S2中,所述APP端獲取所述網關設備的設備信息後,向網關設備的IP和port3發起TCP連接(即創建TCP socket)。在創建好TCP socket後,網關設備將它搜索到的所有路由器WiFi熱點列表(SSID)放入數據區,並通過所述TCP socket發給APP端。
在所述步驟S3中,在建立TCP連接後,所述網關設備搜索其可以連接的路由器,並將所有可連接的路由器的SSID形成SSID列表,並將所述SSID列表發送至APP端,以供用戶為所述網關設備選取可以連接的路由器。
在所述步驟S4中,所述APP端接收所述SSID列表,並接收用戶為網關設備選擇的需連接的路由器(SSID)以及輸入該路由器(router)的密碼PWD。再將所述SSID+PWD用agreekey進行AES128加密放入TCP socket數據區,通過所述TCP socket發給網關設備。這樣為網關端可以根據SSID+PWD接入所述路由器而配置入網。
在實施例中,所述步驟S100、當雲端設備接收到網關設備的註冊請求時,所述雲端設備為所述網關設備分配第一密鑰對,其中,所述第一密鑰對包括廣域網通訊密鑰和區域網通訊密鑰具體可以包括:
S101、所述APP端向所述雲端設備發送註冊請求,其中,所述註冊請求攜帶所述網關設備的設備信息。
具體地,所述APP端在網關設備配置入網後,所述APP端重新連接路由器,並啟用startTLS以替所述網關設備在雲端設備上註冊用戶。相應的,所述APP端向所述雲端設備為所述網關設備發送註冊請求,並且所述註冊請求中攜帶所述網關設備的設備信息。所述設備信息可以包括網關設備的IP位址、埠port3、是否入網、產品參數(如MAC地址、SN碼)等。
S102、所述雲端設備根據所述註冊請求為所述設備信息分配註冊信息並將其至所述APP端,其中,所述註冊信息包括註冊帳號以及第一密鑰對。
具體地,雲端設備根據所述請求信息為所述網關設備註冊帳號tid,並為所述網關設備分配第一密鑰對,所述第一密鑰對包含即廣域網通訊密鑰accesskey和區域網通訊密鑰localkey,將由tid,accesskey,localkey構成的註冊信息反饋給APP端。
S103、所述APP端採用所述協商密鑰對所述註冊信息進行加密得到第二密文,並將所述第二密文發送至網關設備。
具體地,所述APP端將所述註冊信息(tid,accesskey,localkey)用agreekey進行AES128加密,並將加密後的註冊信息放入TCP協議包的數據區發送至網關設備。
S104、所述網關設備解密所述第二密文得到所述註冊信息。
具體,所述網關設備用agreekey進行對數據區進行AES128解密,得到所述註冊信息,並將所述註冊信息(tid、accesskey、localkey)在本地。
S200、所述網關設備採用所述廣域網通訊密鑰加密註冊得到的帳號及密碼得到加密密文,並將所述加密密文發送至雲端設備。
具體地,所述網關設備獲取到所述註冊信息後,獲取所述註冊信息的帳號以及接收到用戶輸入的所述帳號對應的密碼,並用accesskey對所述帳號及密碼(tid,password)進行AES128加密的加密密文發送至雲端設備。
S300、所述雲端設備採用所述網關設備對應的廣域網通訊密鑰解密所述密文,並對解密得到的帳號及密碼進行認證。
具體地,所述雲端設備接收到加密密文後,查找所述網關設備對應的accesskey,並採用查找到accesskey對所述密文進行AES128解密得到帳號信息,並對所帳號信息進行認證。
示例性的,所述雲端設備採用所述網關設備對應的廣域網通訊密鑰解密所述密文,並對解密得到的帳號和密碼進行認證具體包括:
S301、當雲端設備接收到所述密文時,查找所述網關設備對應的廣域網通訊密鑰;
S302、當查找到所述廣域網通訊密鑰時,採用所述廣域網通訊密鑰解密所述密文,並對解密得到的帳號和密碼進行認證。
S400、在認證成功時為所述網關設備配置會話密鑰,並在所述網關設備與雲端設備通訊時,對每條通信協議利用所述會話密鑰對協議包進行加密。
具體地,在認證成功時為所述網關設備的當前會話分配一會話密鑰sessionkey。所述sessionkey是動態生成的,併網關設備每次認證登錄時都不一樣。所述在所述網關設備與雲端設備通訊時,對每條通信協議利用所述會話密鑰對協議包進行加密指的是網關設備端發往雲端的所有協議包,均用sessionkey進行AES加密;雲端查找該設備的sessionkey,解密密文形成明文協議,對該協議進行處理,若該協議有回包,雲端也用sessionkey對回包進行AES加密;網關設備端利用存儲的sessionkey進行解密。
示例性的,所述在認證成功時為所述網關設備配置會話密鑰,並在所述網關設備與雲端設備通訊時,對每條通信協議利用所述會話密鑰對協議包進行加密具體包括:
S401、在認證成功時,隨機生成一會話密鑰並將所述會話密鑰分配給所述網關設備;
S402、所述網關設備與所述雲端設備通訊時,對每條通信協議利用所述會話密鑰對協議包進行加密;
S403、當網關設備註銷與雲端設備認證時,所述雲端設備失效所述會話密鑰。
在本發明的另一個實施例中,所述網關通訊方法還包括:
S500、所述網關設備的子設備向雲端註冊以得到所述第一密鑰對,並在所述網關設備與所述子設備進行通訊時,對每條通信協議利用所述區域網通訊密鑰對協議包進行加密。
具體地,所述通過網關設備連接雲端的子設備也獲取所述第一密鑰對,並在子設備與網關設備通訊時採用區域網通訊密鑰進行加密,這樣子設備與網關設備通訊和網關設備與雲端設備通訊採用不同的密鑰進行加密,這樣可以進一步保證子設備與雲端設備通訊的安全行。當然,所述子設備也可以通過APP端代為註冊的方式獲取所述第一密鑰對。對於APP端代為註冊的過程網關設備獲取第一密鑰對時已經詳細說明,在這裡就不再一一陳述。
為了進一步理解本發明提供的網關通訊方法,下面結合具體實施例加以說明。
實施例一
本實施例提供一種網關通訊方法,如圖2所示,其具體包括:
H10、APP端預先配置第二密鑰對,所述網關設備預先配置第三密鑰對,其中,所述第二密鑰對和第三密鑰對均包括公鑰public key和私鑰private key;
H20、所述APP端掃描所述網關設備預先設置的二維碼形式的AP熱點,其中,所述二維碼包括所述網關設備的MAC地址;
H30、所述APP端連接所述網關設備的AP熱點,並向所述網關設備發送UDP廣播,其中,所述UDP廣播的通訊協議分負載區和數據區,所述負載區為APP端的public key,所述數據區為採用由第一私鑰和第二公鑰通過ECDH攜帶得到的agreekey進行加密的搜索命令;
H4、所述網關設備監聽到該UDP廣播時,採用由第二私鑰和第一公鑰通過ECDH攜帶得到的agreekey進行解密以得到搜索指令,並根據所述搜索指令將所述APP端發送反饋UDP廣播,其中,所述反饋UDP廣播的數據區為採用agreekey加密的設備信息,負載區為網關設備的public key;
H50、APP端接收所述反饋UDP廣播,並用agreekey進行解密得到網關設備的設備信息,並根據所述設備信息與所述網關設建立TCP連接;
H60、網關設備將其搜索到的所有路由器WiFi熱點的SSID列表通過TCP socket發給APP端;
H70、APP端將所述SSID列表顯示給用戶,並根據用戶的選擇確定網關設備需連接的路由器,並將所述路由器的SSID及密鑰採用agreekey後通過TCP socket發給網關設備,以使得網關設備連接所述路由器;
H80、APP端重新連接路由器,並啟用startTLS;
H90、APP端向雲端設備發送註冊請求,所述註冊請求攜帶所述網關設備的設備標識;
H100、所述雲端設備為所述設備標識分別註冊信息,所述註冊信息包括註冊帳號以及廣域網通訊密鑰accesskey和區域網通訊密鑰localkey構成的第一密鑰對;
H110、所述APP端採用所述agreekey對所述註冊信息進行加密得到第二密文,並所述第二密文發送至網關設備;
H120、所述網關設備解密所述第二密文得到所述註冊信息,並將所述註冊信息保存至本地;
H130、網關設備向所述雲端設備發送登錄認證請求,其中,所述登錄認證請求保護用accesskey加密註冊帳號密碼;
H140、雲端設備查找所述網關設備的accesskey,並採用accesskey解密登錄認證請求,並所述登錄認證請求進行用戶認證;
H150、若認證通過,則為所述網關設備的當前會話分配會話密鑰sessionkey,其中,所述sessionkey是動態生成其每次登錄不同;
H160、網關設備與雲端進行通訊,並對每條通信協議利用所述會話密鑰對協議包進行加密。
實施例二
本實施例提供了一種網關通訊方法,如圖3所示,其包括:
APP端預先存儲由第一公鑰public key和第一私鑰private key構成的第二密鑰對;
網關設備預先存儲由第二公鑰public key和第二私鑰private key構成的第三密鑰對;
所述APP端向雲端設備發送登錄請求,其中,所述登錄請求攜帶所述APP端的設備標識;
所述雲端設備認證登錄,並為所述APP端分配一隨機數,以及將所述隨機數保存到當前會話內;
當認證登錄成功時,所述雲端設備將所述認證結果以及所述隨機數反饋至所述APP端;
網關設備監聽到用戶手工復位時,檢測是否與雲端設備正常通信;
當通訊正常時,網關設備向雲端設備發送復位解綁協議請求;
所述雲端設備根據所述請求解除所述網關設備的所有綁定關係;
所述雲端設備將復位解綁結果反饋至網關設備;
所述網關設備進入softap模式;
所述APP端連接所述網關設備的AP熱點,其中,所述AP熱點包含SSID(品牌+『_』+ 品類+『_』)+MAC地址後3bytes;
所述APP端向所述網關設備發送UDP廣播,所述UDP廣播的數據區配置searchDevice命令(帶該設備MAC、隨機數A),負載區配置第第一公鑰public key;
網關設備向APP端發送反饋UDP廣播,其中,所述反饋UDP廣播的數據區配置用第一公鑰和第二私鑰通過ECDH協商的得到的會話密鑰加密的設備信息deviceInfo(含mac、uuid、復位標識resetFlag、hash值),負載區為第二公鑰;
所述APP端採用自身攜帶的第一私鑰和接收到的第二公鑰進行ECDH協商得到所述協商密鑰,並採用所述協商密鑰解析所述設備信息;以及
根據所述設備信息與所述網關設備建立TCP連接;
所述網關設備通過所述TCP連接將其搜索到的SSID列表發送至所述APP端;
所述APP端將接收的SSID列表展示給用戶,並將用戶選取的SSID以及輸入的密碼採用所述協商密鑰加密後發送至所述網關設備;
所述網關設備採用所述SSID及密碼連接路由器;
所述APP端替網關設備向雲端設備註冊用戶(帶mac、uuid及sn);
所述雲端設備根據所述APP端的請求為所述網關設備註冊用戶,同時為所述網關設備分配第一密鑰對,其中,所述第一密鑰對包括廣域網通訊密鑰accesskey和區域網通訊密鑰localkey;以及
在註冊成功時,將所述網關設備對應的帳號tid、密碼password、accesskey及localkey反饋至APP端;
所述APP端採用ECDH協商出的協商密鑰進行AES加密tid、password、 accesskey及localkey生成加密密文,並將所述加密密文發送至網關設備;
所述網關設備解密所述密文,並存儲解密得到的tid、password、accesskey和localkey;
所述網關設備向雲端設備發送登錄認證請求,其中,所述登錄認證請求攜帶採用accesskey加密tid和password;
所述雲端設備查找所述網關設備的accesskey並登錄認證請求,以及對所述網關設備進行用戶認證,若認證通過為所述網關設備的當前會話分配會話密鑰sessionkey;
所述雲端設備向網關設備發送認證成功反饋,所述反饋攜帶所述會話密鑰sessionkey;
所述網關設備接收所述反饋並存儲sessionkey,並才用sessionkey加密任一發包(例如,遠程控制命令);
所述雲端設備查找所述網關設備的sessionkey,並解密所述發包;
解密成功時,所述雲端設備用sessionkey加密任何回包發送至網關設備;
所述網關設備利用存儲的sessionkey解密所述回包;
所述APP端向雲端設備發起網關設備綁定(帶tid、hash值)驗證;
所述雲端設備檢測所述tid是否存在以及所述hash值是否合法,其中,所述Hash為設備驗證碼+隨機數;
當tid存在和hash值合法時,檢測所述合併是否被人綁定;如果否,則執行綁定成為主人;如果是,則返回已被別人綁定;
所述APP端根據所述反饋結果顯示不同界面,如,連接成功、連接失敗、設備已被綁定。
本發明還提供了一種網關通訊系統,如圖4所示,其包括:網關設備100以及雲端設備200;
所述雲端設備200包括:分配模塊201,認證模塊202以及配置模塊203;
所述分配模塊201,用於當雲端設備接收到網關設備的註冊請求時,所述雲端設備為所述網關設備分配第一密鑰對,其中,所述第一密鑰對包括廣域網密鑰和區域網密鑰;
所述網關設備100用於採用所述廣域網密鑰加密註冊得到的帳號和密碼得到加密密文,並將所述加密密文發送至雲端設備;
所述認證模塊202,用於採用所述網關設備對應的廣域網密鑰解密所述密文,並對解密得到的帳號和密碼進行認證;以及
所述通訊模塊203,用於在認證成功時為所述網關設備配置會話密鑰,其中,所述會話密鑰用於在所述網關設備與雲端設備時對每條通信協議的協議包加密。
所述網關通訊系統,如圖5所示,其還包括APP端300;
所述APP端300包括:獲取模塊301、建立模塊302以及發送模塊303;
所述獲取模塊301,用於用於連接所述網關設備的AP熱點,並通過UDP廣播獲取所述網關設備的設備信息;
所述建立模塊302,用於根據所述網關設備的設備信息與所述網關設備建立TCP連接,並通過所述TCP連接獲取所述網關設備可連接的路由器的SSID列表;
所述發送模塊303,用於將所述SSID列表展示給用戶,並將用戶選取的路由路由器的SSID即密碼通過採用協商密鑰加密的通訊協議發送至所述網關設備,以使得所述網關設備連接所述路由器。
上述網關通訊系統的各個模塊在上述方法中已經詳細說明,在這裡就不再一一陳述。
在本發明所提供的實施例中,應該理解到,所揭露的系統和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用硬體加軟體功能單元的形式實現。
上述以軟體功能單元的形式實現的集成的單元,可以存儲在一個計算機可讀取存儲介質中。上述軟體功能單元存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)或處理器(processor)執行本發明各個實施例所述方法的部分步驟。而前述的存儲介質包括:U盤、移動硬碟、只讀存儲器(Read-Only Memory,ROM)、隨機存取存儲器(Random Access Memory,RAM)、磁碟或者光碟等各種可以存儲程序代碼的介質。
最後應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的精神和範圍。