這是最近LoRa聯盟官方發布的第6份白皮書,主題是安全,由GEMALTO、ACTILITY和SEMTECH一同提供,總體來說技術性較強,翻譯難免有不妥之處,還請大家見諒。最開始是由我翻譯,在我們的公眾號發布的,發布後也有很多人轉載到各處(當然有註明來源的,當然還有呵呵呵的),喜歡的可以關注我們,定期會有一些LPWAN的相關推送吧,公眾號在最後。

介紹

LoRaWAN?是一種低功耗廣域網路協議,可以為IoT、M2M、智慧城市和工業應用等場景提供低功耗、可移動、安全的雙向通信。LoRaWAN協議為低功耗進行了優化,並且為可支持數以百萬計設備的大型網路結構進行了特別設計。LoRaWAN的特點是可以支持冗餘操作、定位、低成本和低功耗等應用場景。

安全是所有應用場景的基本前提,所以從一開始在LoRaWAN協議中就對安全性進行了設計。然而安全包含眾多方面,尤其是LoRaWAN的加密機制需要特殊的解釋。所以此白皮書將會對當前LoRaWAN協議的安全性進行說明。首先會針對協議中的安全屬性進行闡述,然後呈現具體的實現細節,最後對一些LoRaWAN安全性上的設計進行解釋。

LoRaWAN?安全屬性

LoRaWAN的安全性設計原則要符合LoRaWAN的標準初衷,即低功耗、低複雜度、低成本和大擴展性。由於設備在現場部署並持續的時間很長(往往是數年時間),所以安全考慮一定要全面並且有前瞻性。LoRaWAN安全設計遵循先進的原則:標準的採取,演算法的審查,以及端到端的安全機制。接下來我們會對LoRaWAN安全性的基本特性進行描述:包括雙向認證、完整性校驗和保密機制。

雙向認證作為網路連接的過程,發生在LoRaWAN終端節點與網路之間。這確保只有真正的和已授權的設備才能與真實的網路相連接。

LoRaWAN的MAC和應用消息是「生來」經過認證、完整性保護和加密的。這種保護和雙向認證一同確保了網路流量沒有改變,是來自一個合法的設備,而不是「竊聽者」,或者「流氓」設備。

LoRaWAN安全性進一步為終端設備和伺服器之間的數據交換提供了端對端的加密機制。LoRaWAN是為數不多的支持端對端加密的IoT網路技術。傳統的蜂窩網路中,加密發生在空中介面處,但在運營商的核心網路中只是把它當做純文本來傳輸的。因此,終端用戶還要選擇、部署和管理一個額外的安全層(通常通過某種類型的VPN或應用層加密如TLS來實現)。但這種方法並不適合應用在LPWAN技術中,因為這會額外地增加網路功耗、複雜性和成本。

安全策略

之前提到的安全機制依賴於經過完備測試和標準化的AES加密演算法。加密社區已經對這些演算法進行了多年的研究和分析,並且被美國國家標準技術研究所認定為適用於節點和網路之間最佳的安全演算法。LoRaWAN使用AES加密語句,並結合多個操作模式:用於完整性保護的CMAC、用於加密的CTR。每一個LoRaWAN終端具有一個唯一識別的128位AES Key(稱為AppKey)和另外一個唯一標識符(EUI-64-based DevEUI),二者都應用於設備識別過程。EUI - 64標識符的分配要求申請人從 IEEE 登記機關獲得組織唯一標識符 (OUI)。同樣地,LoRaWAN網路由LoRa 聯盟分配的24位全球惟一標識符進行標定。

安全應用的負載

LoRaWAN? 應用負載的端對端加密發生在終端設備和伺服器之間。完整性保護由跳頻來實現: 空中跳頻通過LoRaWAN提供的完整性保護,網路和伺服器之間的跳頻通過使用安全傳輸方案如HTTPS和VPNS來實現。

雙向認證:

空中激活證明瞭終端設備和網路都具有AppKey的概念。這通過將一個AES-CMAC(使用AppKey)裝載到設備的加入請求和後端接收器得到證明。兩個會話祕鑰接著進行相互認證,一個用來提供完整性保護和LoRaWAN MAC指令和應用程序負載(NwkSKey)的加密,另一個用來提供端對端應用負載(AppSKey)的加密。NwkSKey裝載在LoRaWAN網路是為了驗證數據包的真實性和完整性。從網路運營商的角度AppKey和AppSKey可以被隱藏,所以破解應用負載是不可能實現的。

數據完整性和隱私保護:

LoRaWAN通信使用兩個會話祕鑰進行保護。每個負載由AES-CTR加密,並且攜帶一個幀計數器(為了避免數據包回放),一個消息完整性代碼(MIC)和AES-CMAC(為了避免數據包被篡改)。下圖是LoRaWAN包結構示意圖。

安全性事實與謬論

LoRaWAN?設備的物理安全

AppKey和衍生而來的會話祕鑰會持續的保存在LoRaWAN設備中,它們的安全性依賴於設備的物理安全。一旦設備受到物理損害,這些祕鑰存在防篡改存儲器中從而受到保護,並且很難提取。

密碼學:

一些資料指出LoRaWAN?密碼只使用了XOR而並非AES。事實上,如之前所提到的,AES用在了標準化CTR模式,這利用了XOR加密操作(還有CBC等許多其他模式)。這通過給每個分組密碼分配一個惟一的AES碼強化了AES演算法。

會話祕鑰分佈:

由於AppSKey 和NwkSKey從同一個AppKey生成,可以說如果LoRaWAN運營商獲得了AppKey,它能夠推導出AppSKey從而解碼網路。所以為了避免這種情況的發生,伺服器要對AppKey的存儲進行管理,雙向認證和密鑰推導的過程可以由運營商以外的實體進行操作。為了給運營商額外的靈活性,LoRaWAN接下來的新版本協議(1.1)會定義兩個主祕鑰,一個用於網路(NwkKey),一個用於應用(AppKey)。

後端介面安全:

後端介面包括網路和應用程序伺服器之間控制和數據信號。HTTPS和VPN技術用於保護這些關鍵的基礎設施元素之間溝通的安全性。

實現和部署安全:

LoRa聯盟一直在確保其協議和架構規範的安全性,但是解決方案的總體安全性還要依賴於具體的實現和部署方式。所以安全問題需要各個環節的配合,製造商、供應商、運營商都需要參與當中。

註解

1 AES – 一種高級加密標準。這是一個基於對稱密鑰的加密演算法,允許消息加密和身份認證。

2 CMAC - 基於暗碼的消息認證碼。

3 CTR - 計數器模式加密標準。一種依賴於計數器的數據流加密AES演算法的操作模式。

4 AES-CMAC - 基於暗碼的消息認證碼,使用AES加密演算法提供消息的完整性和真實性。

5 CBC是AES演算法的一種操作模式,依靠一個初始化向量和前序的數據塊進行數據流的加密。

最後這個圖是LoRa聯盟給出的全球部署情況圖,LoRa聯盟現階段有超過400個會員,全球有超過150個正在進行的部署計劃,並且有34個運營商的加入。

我們的公眾號:LPWAN產學研聯盟,微信號:LPWAN-NIOT,二維碼在下邊。我們廣州中國科學院計算機網路信息中心這邊今年也在部署LoRa網路,從南沙區起步,爭取17年覆蓋廣州,我們也會不定期的公佈我們的進度,大家可以持續的關注我們。

aHR0cDovL3dlaXhpbi5xcS5jb20vci9PRDk3WTdERXZ1M0JyZlFBOTJvcQ== (二維碼自動識別)


推薦閱讀:
相關文章