唯传技术干货:影响LoRa网关容量的关键因素及扩容技术研究(一)

来源:唯传科技1.概述低功率广域网(LPWAN)是无线通信技术发展的新趋势。与传统网络系统不同,这些系统并不专注于为每个设备实现高数据速率。相反,为这些系统定义的关键性能指标是能效,可扩展性和覆盖率。今天的LPWAN通常被视为由终端节点设备(ED)和网关基站(BS)组成的蜂窝网络。 节点(ED)连接到基站(BS)并由其服务,从而在其周围形成星形拓扑网络。 Lora技术就是其中的典型代表。在本文中...了解详情

LoRa服务器项目概览

前言LoRaWAN 协议定义了系统拓扑,这是我们最常见的系统拓扑图。但当了解到LoRaServerProject时,这套系统拓扑有了更细致的展现,采用 MQTT 来实现 Gateway、NS、AS 的协议处理。深入到这个开源项目中,会体会到 MQTT 给这个系统架构所带来的高效率与灵活性。一、工程总体介绍Lora Server project 是一套开源应用软件,实现从 网关接收到节点数据 一直到 应用程序接收到数据 这一段链路的处理。The Lora Server project is an open-source set of applications that fill the gap between the gateways receiving messages from the nodes to just before the applications receiving the data. It provides mechanisms for managing the gateways on the LoRa network, the applications supported, and the devices associated with the applications.整个工程设计地非常灵活,这样可以用不同方式来使用它。例如 LoRa App Server 组件实现 应用服务器组件,为用户提供一套 Web UI 来访问和修改他们的网关、应用程序和节点,还可以通过 gRPC and JSON REST APIs 编程接口来访问系统。而且,API设计地也很灵活,子系统可以用其他相同接口的软件来替代。The project is designed so that it may be used in a very flexible manner. For example the LoRa App Server component implements the application-server component and offers a Web UI for users to access and modify their gateways, applications and nodes. The system can also be accessed via programmatic interfaces implemented in gRPC and JSON REST APIs. Further, the APIs are designed such that the subsystems may be replaced by other software implementing the same interfaces.二、系统架构LoRa nodesLoRa gateway网关从节点接收数据,实现包的转发。LoRa Gateway BridgeLoRa Gateway Bridge负责处理网关的通讯。将网关转发的UDP协议转化成MQTT上的JSON。它比直接用UDP来传输,有如下优点:调试容易下行数据时只要知道网关的相应MQTT主题,MQTT broker 会找到负责相应网关的LoRa Gateway Bridge。使得网关和NS直接可以使用更安全的连接(使用 MQTT over TLS )未来,不同的bridge版本可以处理不同的网关协议,因此其余设备只需要知道 MQTT格式上的JSON串。LoRa ServerLoRa Server组件能知道激活节点会话,当新节点加网时,它会向AS询问这个节点是否可以加入网络,如果准许的话,应该给这个节点采用何种设置。对于激活节点会话,它对接收到的数据包做去重,并且对日期做校正(避免转发攻击),它转发数据给AS,会询问AS是否有东西要回复。除了管理数据流,也可以通过所谓的MAC命令等来管理节点状态。LoRa Server 使用 gRPC API,以方便你建立自己的AS。LoRa App ServerLoRa App Server组件实现了一套对接 LoRa Server 的应用服务器。它提供了针对各个应用或者各个机构的节点管理,也提供了针对各个机构的网关管理。它还提供了用户管理以及针对不同机构、应用的用户的权限分配。它和应用的通讯是使用 JSON over MQTT,使用裸露的APIs。LoRa App Servers提供了一个WEB界面,用来管理网关和节点,也提供API端点,这样它可以集成到你的自有产品中。LoRa App Servers offers a web-interface that can be used for gateway, node and gateway management, but also offers API endpoints so that it can be integrated with your own products.Application应用则通过订阅MQTT主题来接收节点的数据,也能通过MQTT回传数据。如果需要,它可以用 gRPC or JSON REST api 来和AS进行交互。三、功能特性ISM bands满足 Regional Parameters 1.0 。Devices classes目前支持 LoRaWAN Class-A and Class-CAdaptive data-rate (ADR)Channel re-configuration标准只使用了一部分信道,而这边支持信道重配置。Web-interface提供了Web界面,它提供了针对各个应用或者各个机构的节点管理,也提供了针对各个机构的网关管理。它还提供了用户管理以及针对不同机构、应用的用户的权限分配。它和应用的通讯是使用 JSON over MQTT,使用裸露的APIs。APINS和AS都提供了API来集成到你的产品中。如果需要的话,也可以使用 LoRa Server API 来实现一套自己的节点管理系统,来完全替代掉 LoRa App Server 。Gateway management提供了网关管理功能,这样可以管理你的网关,及他们的GPS位置,以及一些他们的性能追踪。LoRa Server 功能设备类型(Device classes)Class ALoRa Server 全面支持 Class-A 设备。接收到的数据会做去重处理,然后转发给AS。当 接收窗口 打开时,LoRa Server 会向 AS poll 下行数据。通过 polling 这种方式,AS 可以按照 速率相应的最大载荷长度 的相关规定来安排下行数据。Class BTodoClass CLoRa Server 全面支持 Class-C 设备。它会记住上一次的接收参数(每个网关接收到的上行数据情况),因此可以判断出最近的那个网关,从而下发下行数据。下行数据可以调用 NetworkServer.PushDataDown API 来处理。带应答的上下行数据(Confirmed data up / down)带应答的上下行数据都是 LoRa Server 来处理,特别是下行数据, LoRa Server 会一直保存着它的序列号,直到等到节点的应答。终端加网(Node activation)LoRa Server 支持 ABP 和 OTAA 两种加网方式。在 ABP 方式中,AS 提供给 LoRa Server 一个 node-session 。在 OTAA 方式中,LoRa Server 会调用将接收到的 join-request 发给 AS,如果准许的话,它会发送 join-accept 给节点。速率自适应(实验阶段)(Adaptive data-rate (experimental))LoRa Server 支持 速率自适应(ADR)。LoRa Server has support for adaptive data-rate (ADR). In order to activate ADR, The node must have the ADR interval and installation margin configured. The first one contains the number of frames after which to re-calculate the ideal data-rate and TX power of the node, the latter one holds the installation margin of the network (the default recommended value is 5dB). From the node-side it is required that the ADR flag is set for each uplink transmission.Important: ADR is only suitable for static devices, thus devices that do not move!网关管理和统计(Gateway management and stats)Gateways can be created either automatically when LoRa Server receives statistics from the gateways or by using the API. Gateway statistics will be aggregated on the given intervals and are exposed through the api API. See also gateway management.接收窗口(Receive windows)Through OTAA and ABP, it is possible to configure which RX window to use for downlink transmissions. This also includes the parameters like data-rate (for RX2) and the delay to use.释放帧序号(Relax frame-counter)A problem with many ABP devices is that after a power-cycle, the frame-counter of the device is reset. Since this reset is not known by LoRa Server it means that all payloads with a frame-counter smaller or equal than the known counter get rejected. In order to work around this issue it is possible to enable the relax frame-counter mode. Important to know, this compromises security!ISM频段(ISM bands)As different regions have have different regulations regarding the license-free bands, you have to specify the ISM band to operate on when starting LoRa Server. At this moment the following ISM bands have been implemented:AS 923AU 915-928CN 470-510CN 779-787EU 433EU 863-870IN 865-867KR 920-923US 902-928了解详情

LoRa无线sx1278&LoraWan协议剖析

1、整体结构双向传输终端(Class A):Class A 的终端在每次上行后都会紧跟两个短暂的下行接收窗口,以此实现双向传输。传输时隙是由终端在有传输需要时安排,附加一定的随机延时(即ALOHA协议)。这种Class A 操作是最省电的,要求应用在终端上行传输后的很短时间内进行服务器的下行传输。服务器在其他任何时间进行的下行传输都得等终端的下一次上行。划定接收时隙的双向传输终端(Class B)...了解详情

SX1301吞吐量是SX1276/8的多少倍?

1 吞吐量,LoRa网关的重要性能从广义上讲,网关是连接2个不同网络的设备。如果一个设备,它能将LoRa无线网络和Internet连接起来,它就是一个LoRa网关。目前,大部分的LoRa网关采用SX1301基带芯片,也有部分使用SX1276/8单信道芯片。那么,SX1301的吞吐量是SX1276/8的多少倍呢?我们一起来探讨。2 误解1:SX1301 = 48个SX1276/有些行业朋友认为,S...了解详情

无线节点的空中唤醒技术解析

无线网络应用中,通常要求节点尽可能休眠,最大限度降低功耗,但又希望节点能尽可能及时地收发无线数据,这似乎是个不可调和的矛盾。但是有个神奇的功能,空中唤醒。节点即使处于休眠,当需要节点工作时可以直接通过无线手段唤醒该节点。很多人第一次听到,都觉得不可思议。希望看完今天这篇文章,你能搞明白这件事。本文首发于微信公众号twowinter,转载请注明作者http://blog.csdn.net/iotisan/点此进入公众号查看。一、介绍本尊贵为IoT小能手,物联网世界的什么东西没见过。(啊!吹个牛逼而已,用得着飞砖头过来吗!过分)这个牛逼功能的英文名是WOR(Wake On Radio)。它在很多上游芯片方案中已经有应用,TI系列的无线芯片中很多都带有这个功能,比如CC1310,以及我正在玩的LoRa芯片SX1276。它在很多网络协议中也已经有应用,B-MAC,X-MAC,甚至大家常见的ZigBee协议中也有一个很少人知道的概念“休眠路由”。它在很多物联网操作系统中也有应用,比如TinyOS,以及在我心中排名第一的Contiki,称之为“radio duty cycling mechanism”。二、基础原理原理简单说,就是在有效数据前头加一段较长的前导码,无线节点进行周期性地唤醒,监听下网络。一旦捕捉到前导码就进入正常的接收流程,若没有就立即休眠,等待下一次唤醒。为了让数据传输时,无线节点不会错过有效数据,机制上要保证前导码的持续时间要略长于节点的休眠时间。图片来源于LoRa官方AN文档《LoraLowEnergyDesign_STD.pdf》。上面是不带应答的情况,如果是单播方式需要应答的话,情况也差不多。三、深入学习好了,有了如上的初步解释,大家应该差不多明白了。接下去的内容会轻微烧脑,希望我的讲解没把大家绕晕。围绕这个基础原理,有一些人做了优化演绎,大致有这些情况。1.前导码变种Contiki的作者Adam Dunkels(假装对外国人很熟,是比较简单地一项装逼手段),他在2011年的论文中介绍了其空中唤醒机制,他将唤醒探针(也就是前导码)做了变化,与普通前导码0101的循环不同,它是将数据包做了多次循环发送。上面是不带应答的情况,而应答的空中唤醒示意图是这样:相同的做法也出现在TinyOS中。2.快速休眠多数据包的前导码方式额外带来了第二种优化方法,可以让节点更加的省电。通常空中唤醒最大难点是会被噪音误唤醒,因为监测前导码是采用信道监听,判断信道的RSSI是否大于某个阈值。一旦有噪音,则这次唤醒就白白耗了一个周期的电。但是噪音有一个特点是,无规则,持续性。由于多个数据包做的前导码中带有固定间隔的休息时间,因此这个休息时间可以用来将前导码和噪音有效区别开。如果不小心被噪音唤醒,节点在接下来没检测到静默周期,则可确认是噪音,那么就立即睡眠以省电。如图:Contiki由于是一个通用型系统,因此这种快速休眠处理方式是在软件层面的优化处理。LoRa的快速休眠方式则有所不同,由于调制技术优势使得其CAD能从噪声中判断有效前导码,所以在第一阶段就能避免误唤醒。另外还有一个优点是在硬件内部(如SX1276系列)就做了优化,可以在未收到完整数据包下就判断是否发给本地址,从而来节点更快做出应对处理。3.传输锁相用通俗的话来讲解深奥的内容一直是本尊的强项,且听我道来:节点A在与中心节点交互过一次之后,中心节点就记住了节点A的发送时刻(所谓的相)和周期。因此在下一次要唤醒节点A的时候,只需根据预估的节点A的唤醒时间点,准点去唤醒节点A就可以了。这一个优化,虽然没有给节点A带来功耗上的优化,却降低了整个网络的负载,提高了信道的利用率。四、展开来说到此为止,关于空中唤醒技术的原理性讲解基本结束。本文只是知识点科普,限于个人水平和精力还无法讲更多更深的东西。如果你是工程师,文中涉及一些概念希望能引起你的注意,抓住关键词去搜索延伸,你应该会得到更多。最直接的,空中唤醒技术在很多行业都是个刚需,可以为你负责的产品增加些卖点,也许你就因此升职加薪走向人生巅峰。其次,你会从一个更高的高度对其他厂家的空中唤醒技术有些认识。我给大家举个例子,限于行业身份,我就不公开说是哪家企业了。XX公司的唤醒算法1. 采用CAD侦听,让LoRa终端更节能;采用锁相同步唤醒技术,让LoRa通信带宽更佳利用;2. 采用快速地址匹配技术,使“非目标地址”LoRa终端快速休眠;3. 采用跳频技术,让唤醒和数据通信从频率是分开,减少干扰;举这个例子,想告诉大家,理解了技术原理后,你就可以看懂别人说的是什么,是否真的很厉害。当然不是说这家公司的产品不过尔尔,你可能理解了这个原理,但实现这些功能的背后肯定有很多付出和技术沉淀,要看到别人有哪些值得学习的地方,纸上谈兵永远是最简单的事情。五、最后在整理这些资料的时候,有一个感悟,虽然这个世界上的很多东西已经很难有大的创新了,但还是有很多优秀的人,踏实地利用自己才华贡献一点点小创新,帮助这个世界变地更美好。在此向Adam Dunkels等前辈致敬!这篇文章写地比较用心,从技术深度上和自我思考的深度上都是目前已产出的文章中比较靠前的。希望你也能喜欢,欢迎留言,收藏,甚至分享它。了解详情

基于Microchip LoRa 工业 IoT 设计中的低功耗、通信和安全性

功耗与安全性是嵌入式系统设计师的两大重要担忧,尤其是在 IoT 传感器命令和控制应用程序中。对于工业 IoT 设计而言,微控制器不仅要自身的平均功耗尽可能低,还要具备让设计的其余部分功耗降至最低的特性,这点非常重要。对于低功耗或仅由电池供电型应用,PIC24F 微控制器系列中采用的Microchip超低功耗 (XLP) 技术通过蓝牙® LE (BLE) 连接让 IoT 传感器实现了极低功耗的基本命令和控制通信,并通过集成硬件加密引擎增强了安全性。超低功耗由于更多电子应用程序要求低功耗或电池供电,节能成为首要问题。 目前的应用程序必须具有低功耗,并且在某些极端情况下,仅通过一块电池就可持续运行 20 年以上。 要实现诸如此类的应用程序,采用Microchip超低功耗 (XLP) 技术的产品可提供非常低的休眠电流,而超低功耗应用程序有 90-99% 的时间都处于该状态。 如图 1 所示,16 位 XLP 技术能让休眠电流降至 40 nA,运行电流降至 180 μA/MHz。
闪存和引脚最小休眠电流带 WDT 的最小休眠电流带 RTCC 的最小休眠电流
64-128 K28-44 引脚3.3 V 时 40 nA(典型值...
了解详情

认知计算、区块链IoT、物联网安全…看懂的人将控制未来

2016年是物联网令人兴奋的一年,几乎每个行业都在投资物联网。目前B2C消费产品占据物联网市场超过半壁江山,但是根据IDC的预测,到2020年,物联网市场的80%以上将用于B2B应用。当代世界,各种前沿科技层出不穷,形成了人工智能、虚拟现实、区块链等相互叠加的科技爆炸时代。借由这些新技术的应用,物联网将创造新的商业模式、新的工作流程、新的生产力引擎以便形成更好的成本控制和用户体验。硅谷知名投资人吴...了解详情

了解物联网安全-第2部分(2/3):物联网云的安全和生命周期管理

在本站已分析了“了解物联网安全”的第1部分(LoRa物联站),其中第一部分我们从设备和通信层的角度来看物联网的安全架构。在这篇文章中,分析“了解物联网安全”的第2部分:我们把重点转移到云计算和生命周期管理,提出完全不同挑战和风险。连世界各国的领导人也开始关注将数十亿互联网设备接入互联网的担忧。世界经济论坛最近委托了一份报告,以创建一套指导方针,专为董事会层面使用,解决在新兴市场基于超连接技术的网络...了解详情

七大LPWAN:NB-IoT/LTE-M/Sigfox/LoRa/RPMA/Weightless/HaLow技术之争

一场旷世的物联网大战拉开序幕无线通信技术已高速发展20多年,在完成了人与人之间的连接后,物联网为无线产业提供了持续发展的动力。由于LPWAN(低功耗广域物联网)技术相对难度不高,各种技术陆续推出,举目遥望,可谓是山头林立、遍地插旗。较受关注的是采用授权频谱的NB-IoT和LTE-M,主要由3GPP主导的运营商和电信设备商投入;以及采用非授权频谱的LoRaWAN、Sigfox、Weightless...了解详情

系统梳理与分析:NB-IoT与eMTC的十轮鏖战

伴随移动通信技术的不断发展,全球物联网即将迎来快速的发展。在国际运营商中, AT&T、Verizon、KDDI、KPN、Orange、NTT DoCoMo、Telefonica、Telstra、Telus都先后开展了eMTC的商用。在我国,电信率先起跑,在确立了800MHz组网能力之后,一口气要建成30万NB-IOT基站。联通与Jasper签订双排他协议,早早确定了NB-IOT作为发展方向。而最早...了解详情

LoRa定位技术

物联网应用对位置的需求越来越多,LoRa技术提供了另一种定位选择LoRa在LPWAN中是独一无二,提供原生免GPS定位技术。LoRa地理位置允许用户定位资产、跟踪设备和检测地理围栏知道某些东西在哪里。这种地理位置功能是LoRaWAN独有的,通过LoRa技术来实现。Machina Research预测,60%的物联网设备将会使用地理位置数据,其中三分之一的应用将严重地依赖于位置。Semtech早期就明确了低功率广域网地理位置的重要性,在地理定位技术方面投入了大量时间和精力,经过了三年多的开发,于2016年6月宣布增加此功能。地理位置有四个主要用处:定位、导航、管理和跟踪。定位:快速识别位置意味着节省时间并提高效率。 例如,通过了解事件的确切位置,用户可以快速做出反应并可能提高安全性。导航:即时的位置信息开启导航功能,帮助确定一个可靠的和有效的路线,并避免延迟和/或拥堵。管理:提供数据的位置关联性有助于增强其价值和实用性。 这对于温度和水位监测特别有用,可以改善自然灾害的反应时间,如火山爆发和洪水。跟踪:LoRa地理位置对跟踪资产和传感器特别有用。 通过访问地理标签的数据,用户可以对偏差做出反应,预测潜在的问题。各种不同的技术都提供了定位解决方案,需要对精度、设备价格、覆盖范围和功耗做个权衡取舍LoRa是唯一无二的,只要终端节点与网络通信,就可以得到地理位置数据。 对物料清单和功耗几乎没有任何影响。 基于LoRa的地理位置可以工作在室外和室内,精度取决于地形和基站密度。我们来看看地理位置的一些典型应用:智慧城市和交通监控:汽车应用中的地理位置功能可用于事故跟踪和通知,以及预测性维护需求。具体位置的数据有助于算法做出更好的预测。计量和物流:地理位置功能在物流中有各种应用。 一些例子包括垃圾桶、回收库、气罐或任何其他任何容器的填充率监测。 数据可用于自动优化收集路线并节省运营成本。 此外,地理位置可用于资产跟踪实现更有效的库存管理。农业:LoRa地理位置目前用于家畜跟踪。 通过跟踪牛并监测它们的健康,例如,你可以更快更容易地照料生病的牛。 在一个大牧场上,了解病畜的具体位置可以明显地提高反应时间。LoRa地理位置还应用在建筑、保险和消费行业等,用于跟踪高价值资产,如建筑材料、保险商品、宠物甚至人等!LoRa地理位置提供最低的功率、成本和环境影响。与地理位置相关的接收、传输或处理在传感器外面完成,因此不需要额外的硬件、电池或时间。介绍LoRa定位技术继续介绍LoRa地理位置,让我们来快速看一下基础的技术。目前,LoRa使用到达时间差(Time Difference of Arrival,TDOA)来实现地理定位。 要了解它是如何工作的,我们来看看从终端节点到服务器的数据传输步骤。开始,所有的基站或网关共享一个共同的时基,这是重要的。当任何LoRaWAN设备发送一个数据包时,该数据包被范围内的所有网关接收,并且每个报文都将报告给服务器。所有的网关都是一样的,它们一直在所有信道上接收所有数据速率的信号。 这意味着终端设备上没有开销,因为它们不必扫描和连接到特定的网关。 传感器简单地唤醒,发送数据包,范围内的所有网关都可以接收它。然后,所有网关都会将相同的数据包发回到服务器,使用内置在最新一代网关中的专用硬件和软件捕获高精度到达时间。 接下来,服务器端的算法比较到达时间、信号强度、信噪比和其他参数来计算终端节点的最可能位置。未来,我们期待混合数据融合技术和地图匹配增强来改善到达时间差,提高定位精度。为了使地理位置准确地工作,需要通过至少三个网关接收到数据包。更多网关的更密集网络会提高定位的精度和容量。这是因为当更多的网关接收到相同的数据包时,服务器算法会收到更多的信息,从而提高了地理位置精度。现在,我们来讨论一下硬件。 网关内部需要下一代的硬件来计算地理位置中使用的一些参数,如高精度的到达时间。Semtech于2016年初创建了网关参考设计,此后在许多网关中成功实现。 它包括了所需的高质量时间戳功能,并且适用于获得授权的网关合作伙伴。 这样确保了多个供应商的部署都能一致地工作,提供高质量的时间戳,从而实现最高质量的地理定位服务。需要重点注意的是,地理位置完全依靠网关和网络技术,因此一旦网关升级,地理位置功能就可用于所有设备。Semtech还提供了一个地理位置解算程序。通用的解算程序不是专用的应用程序,是与终端节点无关的,为LoRa地理定位服务提供了良好的起点。 另外,定义了一个API,允许系统集成商使用第三方可能提高可用位置精度的解算算法。通过这种开放的模式,Semtech鼓励解算技术的创新和发展,确保基于LoRaWAN的地理位置不断改进。当数据包到达网关时,它不知道数据包来自哪个终端设备。因此,网关给接每个接受到的数据包加上时间戳,并将其转发给服务器。由于访问地理位置服务是有价值的,所以这些时间戳在网关中通过加密来保护。时间戳被传输到网络服务器,Semtech授权解密功能给网络服务提供商。 网络服务器提供商可以根据订阅的服务级别对数据进行解密。要提供良好位置最大困难之一是减少多路径传输。如上图所示,一些数据包直接去了网关,有些数据包并没有但有一个反射信号,其他数据包两种情况都有。使用更多数据包传输来减少多路径传输,可以通过更多的信道、更多的网关、更多天线以及使用机器学习或统计技术。最后,我们来看看数据的可控参数。频率分集。通过在所有可用信道上重复发送一条消息,平均来看地理位置结果有50%的改善。 一个工作在8通道网络上的静态终端节点在8个不同信道上发送8个数据包后,那么其结果将提高50%。部署网关网格的形状。 网关部署网格的影响约为25%。 一个长的细网格将比一个方格网格差25%。 因此,网络部署应尽可能侧重于以方形模式部署网关。网关分集。 一般来说,接收信号的网关越多,结果越准确。 然而,超过6个网关,地理位置改善开始变得不明显。 3到4个网关,大概有25%的改善,超过4个网关地理位置改善开始减少。最后,天线分集。 天线分集对最弱的信号影响最大。因此,如果设备在3个网关上处于接收良好的位置,增加一个弱的第四个网关,天线分集通常会改变在第四个网关上接收到的数据包从不可用到可用。在这种情况下,它可以提供25%的地理位置改善。了解详情

深入解析8大关键技术,4大应用场景,看完秒懂5G

未来的网络将会面对:1000倍的数据容量增长,10到100倍的无线设备连接,10到100倍的用户速率需求,10倍长的电池续航时间需求等等。坦白的讲,4G网络无法满足这些需求,所以5G就必须登场。但是,5G不是一次革命。5G是4G的延续,我相信5G在核心网部分不会有太大的变动,5G的关键技术集中在无线部分。虽然5G最终将采用何种技术,目前还没有定论。不过,综合各大高端论坛讨论的焦点,我今天收集了8大...了解详情

LoRa联盟最新白皮书:LoRaWAN安全-可为IoT应用供应商提供完整的端对端加密

这是最近LoRa联盟官方发布的第6份白皮书,主题是安全,由GEMALTO、ACTILITY和SEMTECH一同提供,总体来说技术性较强,翻译难免有不妥之处,还请大家见谅。介绍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个运营商的加入。了解详情

LoRaWAN协议(七)–完整数据流程

以下的GW指Gatewa所用指令tcpdump -i lo -nn -x 'length>100入网流程OTAA入网流程,ABP方式入网则不需要NS ->AS ->NS ->AS ->NS->GW Join_accept messGW ->数据通讯流程GW->NS ->AS ->AS ->app.userdata.payload bas...了解详情

LoRaWAN协议(六)–OTAA KEY生成过程

前言通过OTAA方式入网的设备,通讯时使用的KEY需要通过服务器获得,在入网之间,设备无法通讯。相关的OTAA入网流程已经在上一章中讲解过了,有兴趣的可以去看看*LoRaWAN协议(五)__OTAA入网方式详述**这一章讲解的是OTAA中的密钥生成过程。其中使用到的库函数都是从semtech的官方库中来的,官方库代码链接:LoRaMac-node。详解设备在通讯时,会使用的密钥有NwkSKey 和AppSKey。生成的公式如下:NwkSKey = aes128_encrypt(AppKey, 0x01 | AppNonce | NetID | DevNonce | pad16)AppSKey = aes128_encrypt(AppKey, 0x02 | AppNonce | NetID | DevNonce | pad16)可以看到相关的参数一共有四个:1.AppNonce2.NetID3.DevNonce4.pad16其中AppNonce、NetID、pad16 是产生于服务器的,DevNonce产生于node设备本身。还是使用LoRaWAN协议(五)这篇文章中使用的包数据来进行分析。这里,我们调用官方库的接口,因为我们这里只是熟悉协议,并不是要研究Key的生成算法。如果不明白数据协议的,可以去看LoRaWAN协议(五)这篇文章提取DevNonce1.GW->NS JSON包,从中提取出来DevNonce,data为MAC层数据,为join_request message,其数据包格式为
MHDAPPEUDevEUDevNoncMI
1字节8字节8字节2字节4字节
base64解码得到的数据
字段内容
MHD\x0
AppEU\x01 \x00 \x00 \x20 \x00 \xc5 \x26 \x2
DevEU...
了解详情

LoRaWAN协议(五)–OTAA入网方式详述

前言OTAA(Over-The-Air Activation),是LoRaWAN的一种空中入网方式。当node在上电的时候处于非入网状态时,需要先入网才能和服务器进行通信。其操作就是node发送join_request message,请求入网,然后服务器同意入网,并且返回Join-accept message,node再对信息进行解析,获取通信参数,之后就可以和服务器通信了。顺便分享几个工具网站给大家...了解详情

LoRaWAN协议(四)–入网方式概述

前言在LoRaWAN中,node最终和服务器能够正常数据交互,需要先入网,入网的本质,也就是获得一些通信相关的参数,有以下几个NwkSKeAppSKeDevAddDevEu其中NwkSKey用于数据的校验,也就是说在MIC校验时会用到AppSKey用于负载的AES加密,也就是说在加密解密时会使用到DevAddr是node的短地址,在数据通讯时,使用的是node的短地址DevEUI 在AB...了解详情

LoRaWAN协议(三)–Server端数据协议

LoRaWAN Server 端架构LoRaWAN 的server包括 NS(Network server)、AS(application server)、CS(Custom server)....其中NS和AS是必不可少的,是完成LoRaWAN协议的重要组成部分NS 职责NS是直接与GW通信的服务器,也是AS和GW之间的桥梁我所知道的工作有如下几点验证数据的合法性(校验MIC从GW的信息中提取数据,整理成NS 的JSON数据包...了解详情