I am studying the security of LoRaWAN. Here is a simplified architecture of the network:


As you can see, there are two keys:

  • one for the network security (no mitm, no modificatiof the messages). It uses an AES 128 bits key to generate a MIC (Message Integrity Code) for each message.

  • one for the end-to-end (application to application) ciphering of the payload. This is also an AES 128 bits key.

So there are two static keys which are stored in the device and in the gateway. I guess that the security is pretty good, but only until one of the key is compromised. With a device that is not under surveillance (for example in the customer home), it could be easy to duplicate the key.

Another problem is that in case of a compromission, it is impossible to change the AES keys on the device (considering there is no secure out of band channel).

Is my analyze correct? Are there other security flaws I haven't seen? (probably yes) And what could be an amelioration for a developper (like integrate an and-to-end asymmetric ciphering)?

In case, here are the spec of LoRaWAN.

  • In its current form, a LoRaWAN is only suitable for devices where the security and confidentiality is trivial. mainly due to the fact you can not change them. So anything you make using LoRaWan should only transmit information that is not security or privacy sensetive, like outside temperature ot solar input or such. and not things like inside temperature (leaks if someone is home [privacy]) , condition of lamps (same)
    – LvB
    Jun 14, 2016 at 9:48
  • Thank you for your comment. So I was right thinking that it is not really secure. By chance, do you have any source or study to link? For example, the main security flaw is that the keys are static, but if an attacker can't find them it's ok. Is there a study showing the risks of static keys in IoT devices?
    – Shan-x
    Jun 14, 2016 at 11:31
  • All i can do is refer to a hackaton which had LoRaWAN devices AEChack My information comes from talking to the 2 guys there and discussing the problem.
    – LvB
    Jun 14, 2016 at 11:37

1 Answer 1


You are correct that once the session keys are compromised, security will be ineffective. This the case in any system. However, there are number of good practices to improve security in LoRaWAN. It's too involved of a topic for a short answer, but here are some good practices:

  • Use OTAA provisioning where the keys/certificates are dynamically negotiated between a device and the Network and Application Servers for each session. Then, force network rejoin in the device periodically to change session keys. This is in contrast to ABP provisioning method which permanently sets both session keys, leading to vulnerability you pointed out.
  • If using ABP method, make session keys unique to each device. If one gets compromised, others are unaffected
  • Use a secure hardware element in a device to store the security credentials. This will make it very hard to reverse-engineer the keys by scanning device memories. Additionally, use secure boot to ensure integrity of device firmware.
  • Add additional layer of encryption and authentication at the application layer. You could use asymmetric keys which can be very effective.
  • Always enable uplink/downlink message counter checks in the Network Server to prevent replay attacks
  • You can use your own private network server and/or application server with own gateways to prevent unauthorized access at the cloud level

If you follow the best practices, you can achieve a system that is very hard to hack. LoRaWAN was designed for hardware-constrained devices, so it had to balance many tradeoffs. Also, keep in mind that most applications are for sending data from distributed sensors to the cloud, not for controlling ATM cash dispensers. For typical applications, it's an easy to use, cheap, and effectively secure solution.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .