LoRa 是LPWAN通信技術中的一種,是美國Semtech公司采用和推廣的一種基于擴頻技術的超遠距離無線傳輸方案。這一方案改變了以往關于傳輸距離與功耗的折衷考慮方式,為用戶提供一種簡單的能實現遠距離、長電池壽命、大容量的系統,進而擴展傳感網絡。目前,LoRa 主要在全球免費頻段運行,包括433、868、915 MHz等。
再深入了解LoRa之前,我們先從LoRa聯盟最新白皮書開始,聊聊LoRa那些事
LoRa聯盟最新白皮書:為IoT應用供應商提供完整的端對端加密
安全是所有應用場景的基本前提,所以從一開始在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個運營商的加入。
關于Lora問答的31個問答清單
1.) 什么是LoRa調制?LoRa (Long Range,遠距離)是一種調制技術,與同類技術相比,提供更長的通信距離。調制是基于擴頻技術,線性調制擴頻(CSS)的一個變種,具有前向糾錯(FEC)。
LoRa顯著地提高了接受靈敏度,與其他擴頻技術一樣,使用了整個信道帶寬廣播一個信號,從而使信道噪聲和由于使用低成本晶振而引起頻率偏移的不敏感性更健壯。
LoRa可以調制信號19.5dB低于底噪聲,而大多數頻移鍵控(FSK)在底噪聲上需要一個8-10dB的信號功率才可以正確調制。LoRa調制是物理層(PHY),可為不同協議和不同網絡架構所用-Mesh、Star、點對點等等。
2.) 什么是LoRaWAN?LoRa調制是PHY,LoRaWAN是MAC協議,用于大容量遠距離低功耗的星型網絡,LoRa聯盟正在對低功耗廣域網(LPWAN)進行標準化。
LoRaWAN協議針對低功耗、電池供電的傳感器進行了優化,包括了不同級別的終端節點以優化網絡延遲和電池壽命間的平衡關系。它是完全雙向的,由安全專家構建確保了可靠性和安全性。
LoRaWAN架構還可輕松定位移動目標用于資產跟蹤,這是物聯網增長量最快的應用。主要的電信運營商正在將LoRaWAN部署為全國網絡,LoRa聯盟正在標準化LoRaWAN以確保不同的國家網絡是可以互操作的。
3.) 什么是LoRa網關?LoRa網關設計用于遠距離星型架構,并運用在LoRaWAN系統中。他們是多信道、多調制收發、可多信道同時解調、由于LoRa的特性甚至可以同一信道上同時多信號解調。網關使用不同于終端節點的RF器件,具有更高的容量,作為一個透明橋在終端設備和中心網絡服務器間中繼消息。
網關通過標準IP連接連接到網絡服務器,終端設備使用單跳的無線通信到一個或多個網關。所有終端節點的通信一般都是雙向的,但還支持如組播功能操作,軟件升級,無線傳輸或其他大批量發布消息,這樣就減少了無線通信時間。根據要求的容量和安裝位置(家庭或塔),有不同的網關版本。
4) LoRaWAN數據速率是多少?對于LoRa來說,LoRaWAN數據速率范圍在0.3kbps到11kbps之間,歐洲地區GFSK數據速率是50kbps。在北美地區,由于FCC限制最小數據速率是0.9kbps。為使終端設備的電池壽命和總體網絡容量最大化,LoRaWAN網絡服務器通過自適應數據速率(ADR)算法對每個終端設備數據速率和RF輸出分別進行管理。
ADR對于高性能網絡是至關重要的,具有了可擴展性。在基礎設施方面,以最小的投資部署一個網絡,當需要增加容量時,就部署更多的網關,ADR將會使數據速率更高,可將網絡容量擴展6到8倍。
5.) LoRa技術與SIGFOX,NWave的區別在哪里?總的來說,LoRa技術采用的是一種擴頻技術;SIGFOX公司使用窄帶BPSK調制技術;NWave公司使用Weightless標準,與SIGFOX公司使用的技術較為相似。想要了解詳細參數,可在菜單干貨數據欄查看“LPWAN技術比較”。
目前使用超窄帶技術的公司可供選擇的收發器芯片較多,而LoRa僅能使用Semtech提供的芯片。
6. LoRa集中器是什么?網關和集中器這兩個術語都有在使用,但在LoRa系統中他們是等效的部件。在其他行業里,網關和集中器的定義意味著不同的部件。
7. LoRa處理干擾怎么樣?LoRa調制解調器對同信道GMSK干擾抑制可達19.5dB,或換句話說,它可以接受低于干擾信號或底噪聲的信號19.5dB。因為擁有這么強的抗干擾性,所以LoRaTM調制系統不僅可以用于頻譜使用率較高的頻段,也可以用于混合通訊網絡,以便在網絡中原有的調制方案失敗時擴大覆蓋范圍。
8.LoRa數據數率是多少?LoRaWAN定義了一組特定的數據速率,但終端芯片或PHY是可以有多種選項。SX1272支持數據速率從0.3到37.5kbps,SX1276支持0.018到37.5kbps。
9. 什么是LoRa終端節點或點?LoRa終端節點是LoRa網絡的部分,進行感應或控制。他們在遠程電池供電。這些終端節點使用LoRaWAN網絡協議與LoRa網關(集中器或基站)建立通信。
10.什么是自適應數據速率(ADR)?ADR是一種方法,改變實際的數據速率以確保可靠的數據包傳送,最優的網絡性能,容量的規模。例如,靠近于網關的節點使用較高的數據速率(縮短傳輸時間)和較低的輸出功率。只有在鏈路預算非常邊緣的節點才使用最低的數據速率和最大的輸出功率。
ADR方法可以適應網絡基礎設施的變化,支持變化的路徑損耗。為使終端設備的電池壽命和總體網絡容量最大化,LoRa網絡基礎設施通過實現ADR對每個終端設備的數據速率和RF輸出分別進行管理。
11.LoRa設備天線上可以達到的實際Tx功率是多少?在芯片引腳輸出的功率是+20dBm,經過匹配/濾波損耗后在天線后,在天線上功率是+19dBm +/-0.5dB。最大輸出功率在不同的地區有不同的規定,LoRaWAN規范定義了不同地區不同的輸出功率使鏈路預算最大化。
12.LoRa解決方案的價格是多少?LoRa設備(如SX1272或SX1276)使用了一個較低成本的晶振。在窄帶技術里,RX/TX收發期間需要一個昂貴的溫度控制的晶體振蕩器以減少頻率漂移。根據量和功能,一個完整終端節點典型的材料清單成本是$2~$5美元。
長的傳輸距離意味著簡化了網絡基礎設施,因不需要中繼部署成本較低。較低的功耗意味著使用較低成本的電池和網絡維護。13. LoRa信道活動檢測(CAD)模式的過程是怎樣的?CAD用于檢測LoRa信號的存在,而不是使用一個接受信號強度(RSSI)的方法來識別是否有信號存在。它能夠把噪音和需要的LoRa信號區分出來。CAD過程需要兩個符號,如果被CAD檢測到,CAD_Detected中斷變為有效,設備處于RX模式接受數據有效載荷。14. 為什么我的LoRa設備或模塊輸出功率達不到20dBm?+20dBm規格是對芯片引腳輸出功率而言。在任何的RF系統中,帶通濾波器和RF開關都有插入損耗的特性,在匹配濾波后天線上典型性能可達到+19dBm。
15. 可以頻繁地在FSK和LoRa調制之間改變模式?
是的,沒有問題。LoRa設備通過簡單的SPI寄存器寫入可以從FSK切換到LoRa(反過來也一樣)。對設備的性能和可靠性沒有影響。LoRa設備按照數據手冊規定的可以配置或重新配置為任意參數。
16.如果不能達到+20dBm,如何解決輸出功率問題?
1.) 請確認你連接到正確的引腳(PA_Boost)設置,20dBm輸出的引腳。每個頻段有兩個輸出端口。一個是高功率端口稱為PA_boost,另一個是高效端口稱為RFO。
2.) 然后,檢測軟件配置。應該正確地配置好三個寄存器:RegPaConfig、RegOcp 和 RegPaDac。這意味著你在軟件中應選擇正確的引腳做相應的輸出,再依據你需要的功耗級別設置正確的值。
3.) 確認他們與Semtech參考設計相一致以便設計一個好的PCB布局。這對于可能達到最大的輸出功率來說是重要的。
17. LoRa系統如何實現批量生產測試?
在批量生產中要測試的有三個重要參數:頻率容限、輸出功率、靈敏度。頻率和輸出功率使用頻譜分析儀容易測試。如果你的信號發生器不能產生一個LoRa信號,強烈建議使用FSK模式測試靈敏度。芯片里僅有一個RF鏈路,FSK和LoRa都在數字域調制。
RF路徑有可能會裝配錯誤(如虛焊),因此驗證是重要的。芯片LoRa和FSK調制的數字部分不受裝配影響,因此對于驗證生產測試性能測試FSK靈敏度就足夠了。
18. 如何為LoRa設備選擇正確的晶振?
正常地,對于大多數設計,帶寬62.5kHz或更高,一個+/-10ppm的XTAL就足夠了。帶寬小于62.5kHz,強烈推薦使用TCXO。
有關晶振規格更多的詳細信息,請參考數據手冊以及LoRa調制解調器計算器工具和應用筆記 – AN1200.14_XO_Gidance_LoRa_Modulation_STD”。
19. 對于LoRa帶寬信號,你如何在LoRa模式中測量頻率精度?
如果僅是為了測量,你可以使用頻率合成器TX(FSTX)模式,如在LoRa寄存器表里中所列,基于LoRa配置產生一個CW信號音。
20.信號帶寬(BW)、符號速率(Rs)和數據速率(DR)間的關系是什么?
理論上, Rs=BW/(2^SF)、DR= SF*( BW/2^SF)*CR,但我們建議你使用Semtech LoRa調制解調器計算器按照不同的配置選型評估數據速率和傳輸時間。21. 如何選擇LoRa信號帶寬(BW)、擴頻因子(SF)和編碼率(CR)?
LoRaWAN主要使用了125kHz信號帶寬設置,但其他專用協議可以利用其他的信號帶寬(BW)設置。
改變BW、SF和CR也就改變了鏈路預算和傳輸時間,需要在電池壽命和距離上做個權衡。請使用LoRa調制解調器計算器評估權衡。
22. 當兩個不同制造商的SX127x模塊不能相互通信時,故障檢測的步驟是什么?
首先,在兩個設備間檢查由晶振引起的頻率偏移。帶寬(BW)、中心頻率和數據速率這些都源自晶振頻率。其次,檢查在兩邊的軟件/固件設置,確保頻率、帶寬、擴頻因子、編碼率和數據包結構是一致的。
23. 在LoRa模式,當循環冗余校驗(CRC)使能時,怎樣可能接受到一個錯誤的數據包?
在LoRa模式,即使CRC是錯誤的,有效載荷也會添加到FIFO。在取得有效載荷前必須檢查位PayloadCrcError知道它完整性。在顯式報頭(Explicit Header)模式,有一個小的可能性一個假檢測產生一個“克隆”數據包。
要么錯誤的報頭打開CrcOn位,那么有效載荷將會是錯誤的,調制解調器將會將它標記作為一個PayloadCrcError條件,因此數據包容易被過濾掉;要么錯誤的報頭禁止CrcOn位,這種情況該模式認為數據包是好的。這些偶然的壞包會有一個隨機的長度(從錯誤報頭信息中提取),容易通過主機過濾掉,例如看到異常的尺寸大小。
24. 我可以用LoRa設備發送或接受一個無限長度的有效載荷數據包?
不可以,在LoRa模式中最大數據包長度是256個字節。
25.在LoRa模式中如何使用DIOx引腳?所有DIOx引腳都要連接到MCU嗎?
當你開始設計時,在LoRa和FSK兩種模式中檢查DIO映射。你可以在SX127x LoRa數據手冊中找到DIO映射信息。DIO沒有像通常(典型)MCU GPIO那樣的功能。有一些特殊的中斷信息(或時鐘輸出)指示事件或芯片狀態,這使得你的固件設計更易于實現。
理論上,你可能不連接DIO引腳,那么就輪詢相關的寄存器知道狀態結果。當然,我們建議連接DIO盡可能多地用作外部中斷功能,節省MCU的資源負載,可以很低功耗工作模式(當打包發送或接受數據包時,MCU睡眠)。
26. 在LoRa模式中為什么有兩個RSSI寄存器?有什么區別?
在LoRa模式中,RegPktRssiValue和RegRssiValue 兩個寄存器都是有用的。RegPktRssiValue指的是數據包RSSI水平,RegRssiValue與在FSK模式(非LoRa模式)中的RSSI相似。
如你所知,LoRa可以解調低于底噪聲(PktRssi 結果)的數據包,那么CurrentRssi等于或大于底噪聲。關于如何計算這兩個RSSI的值更多信息,請參考Semtech API或最新的LoRa數據手冊。
27.如何計算LoRa系統的實際位速率和傳輸時間?
下面列出了步驟(i-V):通過使用LoRa計算器計算是容易的,可以從Semtech網站下載(下面的連接)。http://www.semtech.com/apps/filedown/down.php?file=SX1272LoRaCalculatorSetup1%271.zip
28.LoRa模式的有效載荷長度可以用任意數據速率配置為256字節
SX127x LoRa設備在LoRa模式中有一個256字節的FIFO。理論上,所有的256字節都可以用于TX或RX。然而,用低數據速率配置,256字節有效載荷的傳輸時間將會很長(幾秒或更長),這對于抗衰落和高干擾環境是不好的。
在大多數環境中這不是一個健壯的配置,因此建議如果想要一個使用低數據速率長的有效載荷,那么數據包可以分成幾個短的數據包。
29.LoRa是mesh網絡,點對點傳,或者是一個網絡?
LoRa本身是一個PHY,可用于所有網絡拓撲。mesh網絡擴展了網絡的范圍,但會是以降低網絡容量、同步開銷和電池壽命減少為代價,由于同步和跳數的緣故。LoRa網關和模塊間以星形網方式組網,而LoRa模塊間理論上可以以點對點輪詢的方式組網,當然點對點輪詢效率要遠遠低于星形網。
隨著LoRa的鏈路預算和距離范圍的增加,沒有必要用mesh網絡架構擴展距離,因此LoRaWAN選擇星型架構可以優化網絡容量、電池壽命,安裝容易。
30. LoRa可以使用IPv6和6LoWPAN?
是的,LoRa是與IPv6和6LoWPAN兼容的。Actility(LoRa合作伙伴)和其他合作伙伴在LoRaWAN上面實現了6LoWPAN。
31. LoRa網關的容量是多少? 一個網關可以連接多少個節點?
首先最重要的是,容量是在一定時間內節接受數據包數量的一個結果。一個SX1301有8個通道,使用LoRaWAN協議每天可以接受接近150萬包數據。因此,如果你的應用每小時發送一個包,那么一個SX1301網關就可以處理大約62500個終端設備。
據了解,LoRa聯盟與NB-IoT聯盟正在火熱搶奪物聯網市場,由于二者技術特性、適用場景不同,難以一站式滿足客戶需求。目前,協成智慧有落地成功案例與豐富行業解決方案,又是CLAA(LoRa聯盟)與中國NB-IoT產業聯盟成員,提供一站式LoRa解決方案(兼容NB-IoT),包含LoRa模組、NB-IoT模組+物聯網基站+管理平臺軟件開源+數據供應等,可定制可開發,市場首選。
-
LoRa
+關注
關注
349文章
1689瀏覽量
231910
原文標題:31個深度問答,揭開LoRa背后那些事兒
文章出處:【微信號:Hardware_10W,微信公眾號:硬件十萬個為什么】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論