Security Prone to Misconfiguration

Security - related stories pop up almost every day. Some are benign while other are more serious, touching fundamental design decisions that are difficult to change. This story on LoRaWAN has caught my attention recently.

It is interesting, as it underlines the fact the LoRa protocol itself is not insecure. But because the standard lacks proper means of generating unique, high-entropy keys, relying on humans to do so, it is effectively vulnerable. Yes, humans are a weak link when it comes to security. So it is better to design things in a way that does not rely on human actions. IOW something, that is secure, no matter how little people dealing with it care.

We took that approach when designing Bluetooth mesh. All keys are generated without any human input. They rely on high entropy random number generators present in today's chips. So forget trying to brute-force the keys with a help of a dictionary table. There is no human element in mesh security.

Bluetooth mesh devices may carry QR codes, but the codes  do not contain any secret information. They contain public keys used for authentication. A public key is - as the name implies - public, so it is perfectly fine if somebody unauthorized read that code. There is no way to use that public key to do any harm.

Chips, which store the keys that are generated when provisioning a mesh device on a network, cannot be read. That protects the sensitive information when someone may have physical access to the devices. And in the extreme situation when an attacker gets hold of a device to brute force their way into the chip memory, the keys may be securely refreshed, so even if the key is extracted from a stolen device, it is useless - the network is already using a new key.

Security is one of the strongest points of Bluetooth mesh. It took us quite a while to do it right. And the best ting about this design is that it is completely open - anyone can analyze the protocol. Many have been doing this already, confirming it is as good as it gets.

Comments