Skip to content

Notes ·

Decrypting a Water Monitor’s Radio Signal

Paul Kendall published an excellent breakdown of how he intercepted and decrypted the radio traffic between a Flume water-meter sensor and its Wi-Fi bridge.

Using a software-defined radio, he identified the device’s frequency-hopping transmissions across the 915 MHz band, determined that they used 2-FSK modulation, reconstructed the message format and worked out the CRC parameters.

The payload was protected with AES-128, but AES itself was not broken. The weakness was in how the encryption key was created. A 64-bit source key was expanded using a fixed mapping, while information exposed in the unencrypted message header and other predictable values reduced the unknown portion to 44 bits.

He then searched the remaining key space with an ordinary GPU. An unoptimized Python program recovered the key in about a day for less than $10 in cloud-computing costs.

This is a great example of practical security research because every layer had to be understood before the encrypted data became useful. Finding the transmission was only the beginning. He still had to identify the modulation, remove the whitening, reconstruct the packet format, validate the checksum and recognize that the key-generation process provided far less security than AES-128 normally implies.

The conclusion is also refreshingly measured. The author does not describe the product as catastrophically insecure, and Flume was already working on improvements when contacted. The real lesson is that strong encryption cannot compensate for a weak key or predictable information surrounding it.

Read “Flume Water Monitor 915 MHz Signal Security: It’s Not Bad.”

All notes