藍牙Mesh基礎知識

藍牙Mesh網絡是用於建立多對多(many:many)設備通信的低能耗藍牙(Bluetooth Low Energy,也稱爲Bluetooth LE)新的網絡拓撲。它允許您創建基於多個設備的大型網絡,網絡可以包含數十臺,數百甚至數千臺藍牙Mesh設備,這些設備之間可以相互進行信息的傳遞,無疑這樣一種應用形態爲樓宇自動化,無線傳感器網絡,資產跟蹤和其他解決方案提供了理想的選擇。
樓宇自動化
新的控制和自動化系統,無論是涉及照明、供暖/製冷,還是安全防護等相關係統,未來的發展趨勢都將是更加的智能。智能樓宇在佈設了藍牙Mesh網絡之後,使得樓宇內的數十個、數百個或是上千個無線設備都可以可靠、安全的彼此通信,傳輸信息。
無線傳感器網絡
無線傳感器網絡(Wireless Sensor Network, WSN)市場正在快速增長,特別是在工業領域,許多公司正在對現有的無線傳感器網絡進行顯着的成本優化和效率改進。藍牙Mesh網絡旨在滿足工業領域嚴格的可靠性,可擴展性和安全性要求。
資產跟蹤
低功耗藍牙的廣播模式(advertising mode)已經成爲有源RFID資產跟蹤的具有吸引力的替代方案。藍牙Mesh網絡的出現提升了之前低功耗藍牙廣播範圍的限制,併爲建立藍牙Mesh資產跟蹤解決方案的應用提供給了可能性。
部署藍牙Mesh
很多朋友都在關心市場上的存量設備,例如現有的低功耗藍牙手環、腕帶、球鞋等,是否可以通過固件升級的方式支持藍牙Mesh。藍牙Mesh網絡運行於低功耗藍牙之上並且與藍牙4.0及以上版本前向兼容, 因此市面上現有的低功耗藍牙產品都可能通過固件升級(尤其以OTA爲主)的方式升級爲具有藍牙Mesh功能的產品,但是否具有升級的可能性,還需要考量多個因素,例如程序存儲器(ROM)的容量,內存(RAM)的容量,是否具有OTA升級的功能,MCU的處理能力是否滿足Provisioning對於非對稱加密的運算需求等。
關於Flooding
藍牙Mesh採用flooding的方式進行信息的轉發,在這裏flooding可以解釋爲網絡泛洪,也就是通過廣播的方式,將信息從網絡當中的某一個節點轉發至目的節點。
大家聽到廣播已經網絡泛洪之後,第一感覺就是網絡會非常的繁忙、效率低下、耗電,但是藍牙Mesh採用的網絡泛洪是可控的,設備對於信息的轉發需要滿足多種限定條件。對於Mesh網絡,廣播不是“洪水猛獸”,無論是基於AODV路由方式的Mesh,還是與藍牙Mesh類似基於網絡泛洪的方式,都需要使用廣播。
採用網絡泛洪的方式,通過可控的泛洪消息傳遞,不需要創建和管理複雜的路由表、路由發現表等,節省了維護網絡運行的存儲器空間的開銷。同時,網絡泛洪消息傳播的本質是多路徑(Multi path)的,確保了信息可以通過多條路徑傳遞到目的節點,因此網絡中任何一個單點的故障也不會對網絡傳輸造成致命性的影響,這使得網絡高度可靠。
低功耗,Friendship
低功耗是藍牙技術的一大優點,這一優點在藍牙Mesh技術當中也得以繼承。在藍牙Mesh網絡中有一類節點支持低功耗特性(Low Power Feature),也可以稱爲低功耗節點。這一類節點可以通過減少射頻收發機(RF transceiver)開啓的佔空比來達到低功耗的目的,也就是說這一類節點只有在需要進行消息收發的時候纔會打開射頻收發器,其他時間都處於休眠狀態。
在藍牙Mesh網絡中還有一類節點是專門爲低功耗節點服務的,其具有Friend特性,也可以稱爲Friend節點。Friend節點與低功耗節點可以建立Friendship關係。建立此種關係之後,Friend節點可以暫存發往低功耗節點的信息,待低功耗節點退出休眠模式之後,再從Friend節點取回相關信息。
在實際應用中,Friend節點可以是燈泡、機頂盒、路由器,這些設備都是通過市電供電的,對於功耗不是很敏感;低功耗節點可以是由電池供電的設備,如傳感器、門鎖等。
手機如何接入到藍牙Mesh網絡
要開發與藍牙Mesh網絡產品一起使用的智能手機或平板電腦應用程序,也就是我們常說的App,您必須使用藍牙Mesh的代理(Proxy)協議,才能通過代理節點與網狀網絡進行通信。關於代理協議,在藍牙Mesh規範的第6章節有非常消息的介紹。在這裏,對於代理協議進行簡單的描述就是:代理協議可以在標準低功耗藍牙GAP和GATT API之上得以實現,應用程序實現預先定義的GATT服務(service)和特性(Characteristic),就可以與藍牙Mesh當中的代理節點進行通信,進而通過代理結點,與藍牙Mesh網絡進行互動。
關於安全性
藍牙Mesh網絡是一種真正的工業級解決方案,其安全特性包括:
• 使用經過驗證的安全算法對添加到網絡的設備進行配置(Provisioning)。這套安全機制通過橢圓曲線(Elliptic Curve)Diffie-Hallman非對稱加密和帶外認證的方式來保證安全地添加設備;
• 所有通信信息都需要使用128-bit AES-CCM進行加密和認證,藍牙Mesh網絡中的所有消息都需要進行加密和認證;
• 加密和認證應用於網絡層(Network layer)和應用層(Application layer)兩層,分別有兩組密鑰:網絡層密鑰(Network key)和應用層密鑰(Application key)。同一網絡中的節點間使用同一網絡層密鑰加密及解密。但是應用層的信息是否可以被解密取決於節點是否具有應用層密鑰。舉一個簡單的例子,家中的燈泡和門鎖處於同一個網絡,因此它們的網絡層密鑰相同,但是他們的應用層密鑰互爲不同,燈泡屬於照明系統,使用照明類的應用層密鑰;門鎖屬於安全系統,使用安全類的應用層密鑰。如果一條信息的目的節點是門鎖,家中的各個燈泡可以轉發這條信息至門鎖,因爲燈泡和門鎖同處於一個網絡;但是燈泡是無法解析這條信息的應用層內容,到底是開鎖還是閉鎖的動作,燈泡並不清楚,因爲燈泡沒有安全系統的應用層密鑰對應用層信息進行解密。這樣設計的好處是將網絡層加密與應用層加密隔離,加解密互爲操作,互不干擾,互不耦合。
• 通過在發送的每個消息上加入不同序列號(Sequence Number)來防止重放攻擊(Replay Attack);
• 在藍牙Mesh網絡中,可以通過既定的密鑰更新程序將mesh網絡中不授信的設備列入黑名單,這些不授信的設備將會被剔除到Mesh網絡之外;• 通過擾碼的方式對每條信息進行模糊(obfuscation)處理,這意味着即使您在走動的同時攜帶藍牙Mesh設備,身邊的“駭客”通過數據包嗅探器(packet sniffer)也無法跟蹤到您的行蹤,因爲所有的信息都進過了模糊處理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章