Kuboid
Open Luck·Kuboid.in

Mobile Mesh RF Network Exploitation: Getting the Tea from goTenna

DEFCONConference1,119 views43:19over 1 year ago

This talk demonstrates the reverse engineering and exploitation of goTenna mobile mesh network devices to intercept and decrypt communications. The researchers analyze the device's RF protocols, identify vulnerabilities in the encryption implementation, and successfully perform live decryption of broadcast and point-to-point traffic. The presentation highlights the risks of using static initialization vectors and improper key management in IoT devices. The researchers also provide a custom decoding script and demonstrate how to spoof messages using software-defined radio.

How to Decrypt "Secure" Mesh Networks with $100 of SDR Hardware

TLDR: Researchers at DEF CON 2024 demonstrated that goTenna mesh devices, often marketed for secure off-grid communication, suffer from critical cryptographic failures including static initialization vectors and predictable key management. By reverse engineering the device's firmware and protocol, the team successfully intercepted and decrypted both broadcast and point-to-point traffic using low-cost software-defined radio. This research proves that even when encryption is present, poor implementation and configuration can render it entirely ineffective against a motivated attacker.

Mesh networking is the darling of the "secure comms" crowd, promising resilient, encrypted, and private communication when cellular networks fail or are compromised. But as we see time and again, the gap between a marketing claim of "military-grade encryption" and the reality of an implementation is often where the most interesting research happens. The recent work on goTenna devices presented at DEF CON 2024 is a masterclass in why you should never trust a black-box protocol, regardless of the encryption algorithm it claims to use.

The Reality of "Secure" RF Protocols

The researchers focused on the goTenna V1, Mesh, and Pro/X2 devices. These units rely on mobile mesh technology to extend range and facilitate communication between devices. The core issue here is not the encryption algorithm itself—AES-256 is perfectly fine—but the surrounding implementation. The team found that the devices were using static initialization vectors (IVs) and, in some cases, transmitting sensitive identifiers like the goTenna Identifier (GID) in the clear.

When you have a protocol that transmits unencrypted header data, you have already lost the battle for privacy. The researchers discovered that by capturing the RF signal using a HackRF One, they could easily identify the GID and other metadata. This allows an attacker to track users across time and space, effectively deanonymizing them even if the payload itself is encrypted.

Reverse Engineering the Protocol

The most impressive part of this research was the transition from raw RF capture to full protocol decryption. The team used GNU Radio to capture the signal and then moved to reverse engineering the Android application to understand the underlying protocol buffers. By decompiling the app, they found the firmware and source code were largely un-obfuscated.

The team identified that the devices were using a custom header and a specific data-whitening process. Data whitening is a technique used in RF transmissions to ensure there are no long sequences of zeros that can cause drops in communication. The researchers realized that this process was essentially an XOR operation with a static key derived from a polynomial. Once they identified the Linear Feedback Shift Register (LFSR) polynomial, they could effectively "de-whiten" the data.

Here is the logic they used to identify the whitening key:

# Simplified logic for identifying the whitening key
def decode_gid(data):
    gid = 0
    for i, b in enumerate(data):
        gid |= (b & 0b1111111) << (i * 7)
    return gid

By applying this logic, they could extract the GID and other fields from the broadcast traffic. The use of Protocol Buffers made the task significantly easier once they had the file descriptors, as they could map the binary data directly to the expected message structure.

From Metadata to Full Decryption

The final nail in the coffin for the device's security was the key management. For point-to-point communication, the devices used Elliptic Curve Diffie-Hellman (ECDH) to establish a shared secret. However, the researchers found that the application stored the necessary keys in a way that could be extracted. By using Frida, they intercepted the javax.crypto.Mac.doFinal() calls on an Android device to pull the encryption keys directly from memory.

Once they had the keys, they could decrypt the AES-GCM traffic in real-time. This is a critical finding for any pentester or researcher working with IoT devices. If the application handling the "secure" data is running on a compromised or accessible device, the encryption is only as strong as the key storage mechanism. In this case, the storage was trivial to bypass.

Defensive Implications

For those working on the defensive side, this research reinforces the OWASP A02:2021 – Cryptographic Failures guidance. Encryption is not a magic wand. If your implementation uses static IVs, hardcoded keys, or fails to protect the keys at rest, you are not providing security; you are providing a false sense of it.

Developers must ensure that keys are rotated, IVs are unique and unpredictable, and that sensitive metadata is not leaked in the protocol headers. If you are building a product that relies on RF communication, assume that an attacker will capture your traffic and reverse engineer your application. If your security model relies on the attacker not knowing how your protocol works, your security model is broken.

The researchers have promised to release their decoding tools after a reasonable patching period. For now, the takeaway is clear: if you are testing a device that claims to be secure, start by looking at how it handles its keys and how it structures its packets. You will often find that the "secure" door is wide open, even if the lock itself is high-quality.

Premium Security Audit

We break your app before they do.

Professional penetration testing and vulnerability assessments by the Kuboid Secure Layer team. Securing your infrastructure at every layer.

Get in Touch
Official Security Partner
kuboid.in