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.