技術(shù)
導(dǎo)讀:這是最近LoRa聯(lián)盟官方發(fā)布的第6份白皮書,主題是安全,由GEMALTO、ACTILITY和SEMTECH一同提供,總體來(lái)說(shuō)技術(shù)性較強(qiáng),翻譯難免有不妥之處,還請(qǐng)大家見諒。
這是最近LoRa聯(lián)盟官方發(fā)布的第6份白皮書,主題是安全,由GEMALTO、ACTILITY和SEMTECH一同提供,總體來(lái)說(shuō)技術(shù)性較強(qiáng),翻譯難免有不妥之處,還請(qǐng)大家見諒。
介紹
LoRaWAN?是一種低功耗廣域網(wǎng)絡(luò)協(xié)議,可以為IoT、M2M、智慧城市和工業(yè)應(yīng)用等場(chǎng)景提供低功耗、可移動(dòng)、安全的雙向通信。LoRaWAN協(xié)議為低功耗進(jìn)行了優(yōu)化,并且為可支持?jǐn)?shù)以百萬(wàn)計(jì)設(shè)備的大型網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了特別設(shè)計(jì)。LoRaWAN的特點(diǎn)是可以支持冗余操作、定位、低成本和低功耗等應(yīng)用場(chǎng)景。
安全是所有應(yīng)用場(chǎng)景的基本前提,所以從一開始在LoRaWAN協(xié)議中就對(duì)安全性進(jìn)行了設(shè)計(jì)。然而安全包含眾多方面,尤其是LoRaWAN的加密機(jī)制需要特殊的解釋。所以此白皮書將會(huì)對(duì)當(dāng)前LoRaWAN協(xié)議的安全性進(jìn)行說(shuō)明。首先會(huì)針對(duì)協(xié)議中的安全屬性進(jìn)行闡述,然后呈現(xiàn)具體的實(shí)現(xiàn)細(xì)節(jié),最后對(duì)一些LoRaWAN安全性上的設(shè)計(jì)進(jìn)行解釋。
LoRaWAN?安全屬性
LoRaWAN的安全性設(shè)計(jì)原則要符合LoRaWAN的標(biāo)準(zhǔn)初衷,即低功耗、低復(fù)雜度、低成本和大擴(kuò)展性。由于設(shè)備在現(xiàn)場(chǎng)部署并持續(xù)的時(shí)間很長(zhǎng)(往往是數(shù)年時(shí)間),所以安全考慮一定要全面并且有前瞻性。LoRaWAN安全設(shè)計(jì)遵循先進(jìn)的原則:標(biāo)準(zhǔn)的采取,算法的審查,以及端到端的安全機(jī)制。接下來(lái)我們會(huì)對(duì)LoRaWAN安全性的基本特性進(jìn)行描述:包括雙向認(rèn)證、完整性校驗(yàn)和保密機(jī)制。
雙向認(rèn)證作為網(wǎng)絡(luò)連接的過(guò)程,發(fā)生在LoRaWAN終端節(jié)點(diǎn)與網(wǎng)絡(luò)之間。這確保只有真正的和已授權(quán)的設(shè)備才能與真實(shí)的網(wǎng)絡(luò)相連接。
LoRaWAN的MAC和應(yīng)用消息是“生來(lái)”經(jīng)過(guò)認(rèn)證、完整性保護(hù)和加密的。這種保護(hù)和雙向認(rèn)證一同確保了網(wǎng)絡(luò)流量沒有改變,是來(lái)自一個(gè)合法的設(shè)備,而不是“竊聽者”,或者“流氓”設(shè)備。
LoRaWAN安全性進(jìn)一步為終端設(shè)備和服務(wù)器之間的數(shù)據(jù)交換提供了端對(duì)端的加密機(jī)制。LoRaWAN是為數(shù)不多的支持端對(duì)端加密的IoT網(wǎng)絡(luò)技術(shù)。傳統(tǒng)的蜂窩網(wǎng)絡(luò)中,加密發(fā)生在空中接口處,但在運(yùn)營(yíng)商的核心網(wǎng)絡(luò)中只是把它當(dāng)做純文本來(lái)傳輸?shù)?。因此,終端用戶還要選擇、部署和管理一個(gè)額外的安全層(通常通過(guò)某種類型的VPN或應(yīng)用層加密如TLS來(lái)實(shí)現(xiàn))。但這種方法并不適合應(yīng)用在LPWAN技術(shù)中,因?yàn)檫@會(huì)額外地增加網(wǎng)絡(luò)功耗、復(fù)雜性和成本。
安全策略
之前提到的安全機(jī)制依賴于經(jīng)過(guò)完備測(cè)試和標(biāo)準(zhǔn)化的AES加密算法。加密社區(qū)已經(jīng)對(duì)這些算法進(jìn)行了多年的研究和分析,并且被美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所認(rèn)定為適用于節(jié)點(diǎn)和網(wǎng)絡(luò)之間最佳的安全算法。LoRaWAN使用AES加密語(yǔ)句,并結(jié)合多個(gè)操作模式:用于完整性保護(hù)的CMAC、用于加密的CTR。每一個(gè)LoRaWAN終端具有一個(gè)唯一識(shí)別的128位AES Key(稱為AppKey)和另外一個(gè)唯一標(biāo)識(shí)符(EUI-64-based DevEUI),二者都應(yīng)用于設(shè)備識(shí)別過(guò)程。EUI - 64標(biāo)識(shí)符的分配要求申請(qǐng)人從 IEEE 登記機(jī)關(guān)獲得組織唯一標(biāo)識(shí)符 (OUI)。同樣地,LoRaWAN網(wǎng)絡(luò)由LoRa 聯(lián)盟分配的24位全球惟一標(biāo)識(shí)符進(jìn)行標(biāo)定。
安全應(yīng)用的負(fù)載
LoRaWAN? 應(yīng)用負(fù)載的端對(duì)端加密發(fā)生在終端設(shè)備和服務(wù)器之間。完整性保護(hù)由跳頻來(lái)實(shí)現(xiàn): 空中跳頻通過(guò)LoRaWAN提供的完整性保護(hù),網(wǎng)絡(luò)和服務(wù)器之間的跳頻通過(guò)使用安全傳輸方案如HTTPS和VPNS來(lái)實(shí)現(xiàn)。
雙向認(rèn)證:
空中激活證明了終端設(shè)備和網(wǎng)絡(luò)都具有AppKey的概念。這通過(guò)將一個(gè)AES-CMAC(使用AppKey)裝載到設(shè)備的加入請(qǐng)求和后端接收器得到證明。兩個(gè)會(huì)話秘鑰接著進(jìn)行相互認(rèn)證,一個(gè)用來(lái)提供完整性保護(hù)和LoRaWAN MAC指令和應(yīng)用程序負(fù)載(NwkSKey)的加密,另一個(gè)用來(lái)提供端對(duì)端應(yīng)用負(fù)載(AppSKey)的加密。NwkSKey裝載在LoRaWAN網(wǎng)絡(luò)是為了驗(yàn)證數(shù)據(jù)包的真實(shí)性和完整性。從網(wǎng)絡(luò)運(yùn)營(yíng)商的角度AppKey和AppSKey可以被隱藏,所以破解應(yīng)用負(fù)載是不可能實(shí)現(xiàn)的。
數(shù)據(jù)完整性和隱私保護(hù):
LoRaWAN通信使用兩個(gè)會(huì)話秘鑰進(jìn)行保護(hù)。每個(gè)負(fù)載由AES-CTR加密,并且攜帶一個(gè)幀計(jì)數(shù)器(為了避免數(shù)據(jù)包回放),一個(gè)消息完整性代碼(MIC)和AES-CMAC(為了避免數(shù)據(jù)包被篡改)。下圖是LoRaWAN包結(jié)構(gòu)示意圖。
安全性事實(shí)與謬論
LoRaWAN?設(shè)備的物理安全:
AppKey和衍生而來(lái)的會(huì)話秘鑰會(huì)持續(xù)的保存在LoRaWAN設(shè)備中,它們的安全性依賴于設(shè)備的物理安全。一旦設(shè)備受到物理?yè)p害,這些秘鑰存在防篡改存儲(chǔ)器中從而受到保護(hù),并且很難提取。
密碼學(xué):
一些資料指出LoRaWAN?密碼只使用了XOR而并非AES。事實(shí)上,如之前所提到的,AES用在了標(biāo)準(zhǔn)化CTR模式,這利用了XOR加密操作(還有CBC等許多其他模式)。這通過(guò)給每個(gè)分組密碼分配一個(gè)惟一的AES碼強(qiáng)化了AES算法。
會(huì)話秘鑰分布:
由于AppSKey 和NwkSKey從同一個(gè)AppKey生成,可以說(shuō)如果LoRaWAN運(yùn)營(yíng)商獲得了AppKey,它能夠推導(dǎo)出AppSKey從而解碼網(wǎng)絡(luò)。所以為了避免這種情況的發(fā)生,服務(wù)器要對(duì)AppKey的存儲(chǔ)進(jìn)行管理,雙向認(rèn)證和密鑰推導(dǎo)的過(guò)程可以由運(yùn)營(yíng)商以外的實(shí)體進(jìn)行操作。為了給運(yùn)營(yíng)商額外的靈活性,LoRaWAN接下來(lái)的新版本協(xié)議(1.1)會(huì)定義兩個(gè)主秘鑰,一個(gè)用于網(wǎng)絡(luò)(NwkKey),一個(gè)用于應(yīng)用(AppKey)。
后端接口安全:
后端接口包括網(wǎng)絡(luò)和應(yīng)用程序服務(wù)器之間控制和數(shù)據(jù)信號(hào)。HTTPS和VPN技術(shù)用于保護(hù)這些關(guān)鍵的基礎(chǔ)設(shè)施元素之間溝通的安全性。
實(shí)現(xiàn)和部署安全:
LoRa聯(lián)盟一直在確保其協(xié)議和架構(gòu)規(guī)范的安全性,但是解決方案的總體安全性還要依賴于具體的實(shí)現(xiàn)和部署方式。所以安全問(wèn)題需要各個(gè)環(huán)節(jié)的配合,制造商、供應(yīng)商、運(yùn)營(yíng)商都需要參與當(dāng)中。
注解
1 AES – 一種高級(jí)加密標(biāo)準(zhǔn)。這是一個(gè)基于對(duì)稱密鑰的加密算法,允許消息加密和身份認(rèn)證。
2 CMAC - 基于暗碼的消息認(rèn)證碼。
3 CTR - 計(jì)數(shù)器模式加密標(biāo)準(zhǔn)。一種依賴于計(jì)數(shù)器的數(shù)據(jù)流加密AES算法的操作模式。
4 AES-CMAC - 基于暗碼的消息認(rèn)證碼,使用AES加密算法提供消息的完整性和真實(shí)性。
5 CBC是AES算法的一種操作模式,依靠一個(gè)初始化向量和前序的數(shù)據(jù)塊進(jìn)行數(shù)據(jù)流的加密。
最后這個(gè)圖是LoRa聯(lián)盟給出的全球部署情況圖,LoRa聯(lián)盟現(xiàn)階段有超過(guò)400個(gè)會(huì)員,全球有超過(guò)150個(gè)正在進(jìn)行的部署計(jì)劃,并且有34個(gè)運(yùn)營(yíng)商的加入?! ?/p>