LoRa协议的安全机制主要通过以下几个方面来保障其安全性:
- 数据加密:LoRa协议采用AES-128加密算法对数据进行加密,以确保无线通信的安全性。这种加密技术能够有效保护数据传输过程中的安全,防止数据被未授权的第三方截获或篡改。
- 设备身份验证:在LoRa网络中,设备在接入网络时需要进行身份验证。这一过程依赖于器件和Join服务器之间的相互身份验证,确保任何试图连接网络的设备均经正确注册且未被入侵。
- 消息完整性校验:为了确保数据的完整性和防止重放攻击,LoRa协议还提供了消息完整性校验机制。这可以有效检测并防止恶意报文的注入。
- 重放攻击防护:LoRa协议设计了专门的机制来防护重放攻击,即防止恶意用户重复发送之前的数据包以欺骗系统。
- 物理层安全特性:LoRa技术具有较好的隐蔽性和抗干扰特性,使得普通设备很难检测和干扰LoRa信号。这种物理层的安全特性进一步增强了LoRa网络的整体安全性。
- 端到端加密:LoRaWAN支持端到端加密,这意味着从终端设备到应用服务器的数据交换都经过加密处理,从而提供了更高的安全保障。
- 密钥管理:LoRa协议强调密钥的安全管理,包括密钥的随机分配和一次使用的密码(随机数)等措施,以防止密钥泄露带来的安全风险。
LoRa协议通过综合运用多种安全技术和机制,如数据加密、设备身份验证、消息完整性校验、重放攻击防护以及物理层安全特性等,构建了一个相对安全的物联网通信环境。这些措施共同作用,确保了LoRa网络在实际应用中的可靠性和安全性。
一、 LoRa协议中AES-128加密算法的具体实现方式
LoRa协议中AES-128加密算法的具体实现方式如下:
- 密钥生成:首先需要生成一个128位的密钥,用于加密和解密数据。
- 数据分块:将待加密的数据按照128位(16字节)为一组进行分块处理。算法定义了一个块序列Ai,i从1到k,k = ceil ( len ( FRMPayload) / 16 ),ceil为向上取整函数。
- 初始轮密钥加:对每个数据块进行初始轮密钥加操作。
- 加密过程:使用AES128加密算法对每个块进行加密。LoRaWAN层为所有FPort的数据默认情况下进行加密/解密,如果应用层方便的话,也可以在LoRaWAN层的上层对除了FPort为0的数据加解密。采用AES128_ECB加密模式。
- 负载加密和解密:通过将pld | pad16与S进行异或运算来完成负载的加密和解密。载荷数据需要进行加密,这里并不是直接对载荷数据进行加密,而是加密事先定义好的数据块,最后利用算出来的数据块与载荷数据异或来实现加/解密。
- 消息完整性代码(MIC) :计算消息完整性代码(MIC),用于校验消息的完整性。
二、 LoRa网络中的设备身份验证机制
LoRa网络中的设备身份验证机制主要通过以下几种方式实现:
- 射频指纹识别:根据,LoRa设备可以利用其固有的射频指纹进行唯一身份识别。射频指纹是基于无线发射机的内在硬件特性,如瞬时载波频率偏移(CFO)漂移等,来区分不同的LoRa设备。这种方法依赖于深度学习技术来提高识别的准确性。
- 安全密钥配置:提到Microchip与The Things Industries推出的LoRa安全解决方案,该方案结合了ATECC608A-MAHTN-T CryptoAuthentication器件和The Things Industries的托管连接服务器及Microchip的安全配置服务,为LoRaWAN设备提供基于硬件的安全性,简化了设备的配置并解决了身份验证密钥管理的问题。
- 密码和公钥验证:指出,在LoRa网络中,每个设备应具备唯一的身份标识,并通过密码、公钥等方式进行验证,以防止身份伪装攻击。
- LoRaWAN协议下的入网流程:详细描述了LoRaWAN协议下的设备入网流程,包括空中激活(OTAA)和本地激活(ABP)。在入网成功后,终端设备会被分配一个唯一地址(DevAddr),并生成加密密钥NwkSKey和AppSKey,用于后续通信命令的加密和校验。
三、 LoRa协议如何实现消息完整性校验以防止重放攻击?
LoRa协议通过多种机制实现消息完整性校验以防止重放攻击。首先,LoRa协议采用了数据加密和设备身份验证等安全机制。在具体实现上,LoRa协议使用了fCnt计数器来确保每个消息的独特性,防止数据被篡改。此外,LoRa通信还采用了AES加密、消息完整性校验(MIC)和网络密钥管理等安全机制。
在LoRaWAN 1.0.3规范中,DevNonce是一个随机值,用于防止重放攻击。网络服务器会跟踪每个端设备过去使用的DevNonce值数量,并忽略具有这些DevNonce值的加入请求。加入接受消息包含应用程序非词(AppNonce)、网络标识符(NetID)、端点地址(DevAddr)、TX和RX延迟(RxDelay)等字段,这些都是为了确保消息的完整性和防止重放攻击。
LoRaWAN v1.1版本引入了DevNonce随机生成功能,并对重放攻击进行了改进。上行消息的负载的完整性校验由CRC来保证。此外,LoRa节点发送的数据可能会被攻击者进行重放攻击,可以采用帧计数器技术防止重放攻击,同时可以采用时间戳技术对数据进行时间戳标记,防止数据被重放。
四、 LoRa技术中的物理层安全特性具体包括哪些措施?
LoRa技术中的物理层安全特性主要体现在以下几个方面:
- 隐蔽性和抗干扰特性:LoRa技术具有较好的隐蔽性和抗干扰特性,这使得其信号难以被普通设备检测和干扰。这种隐蔽性也被称为低概率截获(LPI—Low Probability of Interception),即不容易被侦破。
- 物理层加密:虽然物理层加密无法完全代替数据加密,但LoRa的安全框架足以应对重放攻击等潜在威胁,从而保护用户的隐私和数据的完整性。
- 基于射频指纹的身份认证和接入安全:LoRa技术采用基于射频指纹的方案来解决终端的身份认证和接入安全问题。这种方案能够单独运行实现终端的安全接入,也能够配合上层的安全策略实现安全加固。从落地角度而言,该方案只需要改造网关设备,不需要改造大量的终端设备,为增强LoRa网络安全提供了全新的应用模式和技术手段。
LoRa技术在物理层的安全特性主要包括隐蔽性和抗干扰特性、物理层加密以及基于射频指纹的身份认证和接入安全措施。
五、 LoRaWAN端到端加密的技术细节和安全性
LoRaWAN端到端加密的技术细节和安全性评估如下:
1. 技术细节
LoRaWAN协议采用双重AES-128加密机制,以确保数据的保密性、完整性和可用性。这种双重加密机制包括网络层安全和应用层安全两个层面。
密钥管理:
- NwkSKey(网络会话密钥) :用于计算和验证所有数据帧的消息完整性码(MIC),并确保数据的完整性。它还用于加密和解密MAC仅数据帧的有效负载字段。
- AppSKey(应用程序会话密钥) :用于加密和解密应用程序特定数据帧的有效负载字段。应用程序有效载荷应在终端设备和应用程序服务器之间进行端到端加密,但在空中传输时仅受保护。
网关在LoRaWAN中仅作为数据的透传节点,加解密工作由节点和服务器分别完成。这意味着网络服务器可能可以在传输过程中修改数据帧的加密内容(但无法读取原始内容)。
2. 安全性评估
LoRaWAN的设计本身非常注重安全性,认证和加密是强制性的。然而,如果安全密钥没有得到妥善保管,或者随机化不跨设备进行,或者一次性使用的加密数字(nonces)被重复使用,则网络和设备可能会受到威胁。
在基于OTAA激活模式的加入程序中存在不同的安全问题,这些可能在请求加入和接受阶段被利用。
尽管LoRaWAN规范提供了基本的安全措施,但建议希望实现端到端保密性和完整性保护的应用程序使用额外的端到端安全解决方案,如VPN和IPsec来进一步保护LoRaWAN网关的流量及其后端链路上的网络管理和运营。
与传统的蜂窝网络相比,LoRaWAN支持端到端加密,这使得其在数据交换过程中提供了更高的安全保障。
LoRaWAN通过双重AES-128加密机制和严格的密钥管理实现了较高的安全性,但仍需注意密钥管理和一次性使用的加密数字的正确使用,以避免潜在的安全风险。