Z-Wave is a communications protocol that wirelessly connects many Internet of Things (IoT) devices as an alternative to the shorter range Bluetooth protocol.
As of April, there were 2,400 products that used the 900 Mhz system, according to Wikipedia.
However, Pen Test Partners showed a way that pairing of two of these devices can be made insecure through an attack that they call Z-Shave.
Security for the system is done through a shared network key. And that key is what drives the attack. Pen Test showed that the current S2 protocol can be driven so it reverts to the older, far less secure S0 protocol that was in use before 2013. The key-exchange now uses Diffie-Hellman encryption in S2 and can also involve authentication by entry of a five-digit code into the controller.
S0 used an fixed key consisting of all zeroes.
Pen Test researchers found that that an active attacker, present at the time of device pairing, can downgrade an S2 pairing to S0, which allows them to intercept the key and then intercept and inject S0 traffic on the Z-Wave network.
Since Z-Wave devices are designed to be backwards compatible, an S2 device will pair as S0 if the controller only supports S0. An S0 device will also pair with no encryption if the controller does not support S0. A network can support a mixture of devices, although encrypted traffic cannot move from S0 to S2 during use.
Pen Test researchers proposed three attacks methods for Z-Shave.
The first finds that the node info for the unpaired node, which has data that is needed for a spoofed pairing. This can be sniffed by an attacker, modified, and then sent to the controller. Boom -- pairing on the attackers terms is performed.
The second method uses the node information sent when a battery is inserted into a device in the same way, with the same result.
The third method is trickier. As Pen Test notes:
An attacker can continuously listen for the node info from the genuine node. As soon as the home ID has been obtained, they can actively jam the rest of the packet, preventing the node info from being received. […] The jamming needs to occur mid-way through the transmission of a packet and the current tools available are only capable of waiting until the end of a packet.
Silicon Labs, the company behind the Z-Wave protocol has pooh-poohed the issue. The company's main retort to the Z-Shave attack is that an attacker has a very short time window to execute the attack.
Which is true, but the attack could be carried out by battery-operated hardware left in the vicinity that is sniffing for the right opportunity, so that criticism is not entirely relevant.
Worse, Silicon Labs noted that a S2 downgrade should make the user aware that it has occurred with a message from the S2 controller. Pen Test showed in a YouTube video that this does not always happen, and the end-user may be unaware of the change in security. Perhaps a manufacturer did not fully implement S2 in their product.
Silicon Labs announced that they are changing the specs so that the user will have to acknowledge the alert if it occurs.
In an email to Security Now, Silicon Labs noted that the Pen Test researchers in their YouTube video made use of a developer tool, not a consumer rated software product, which was not designed to notify the user of security level changes.
Manufacturers need to implement the latest level of security in their products. When a simple attack can throw it all for a loop, especially in products like locks, the burden becomes even more important.
Editor's Note: This article was updated to include a comment from Silicon Labs.
— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.