Explaining and Demonstrating Jam and Replay Attacks on Keyless Entry Systems with RTL-SDR, RPiTX and a Yardstick One

Thank you to Christopher for submitting to us an article that he's written for a project of his that demonstrates how vulnerable vehicle keyless entry systems are to jam and replay attacks. In the article he explains what a jam and replay attack is, the different types of keyless entry security protocols, and how an attack can be performed with low cost off the shelf hardware. He explains a jam and replay attack as follows:

The attacker utilises a device with full-duplex RF capabilities (simultaneous transmit and receive) to produce a jamming signal, in order to prevent the car from receiving the valid code from the key fob. This is possible as RKEs are often designed with a receive band that is wider than the bandwidth of the key fob signal (refer Figure 3, right). The device simultaneously intercepts the rolling code by using a tighter receive band, and stores it for later use. When the user presses the key fob again, the device captures the second code, and transmits the first code, so that the user’s required action is performed (lock or unlock) (Kamkar, 2015). This results in the attacker possessing the next valid rolling code, providing them with access to the vehicle. The process can be repeated indefinitely by placing the device in the vicinity of the car. Note that if the user unlocks the car using the mechanical key after the first try, the second code capture is not required, and the first code can be used to unlock the vehicle.

In his demonstrating the attack he uses the RTL-SDR to initially find the frequency that they keyfob operates at and to analyze the signal and determine some of it's properties. He then uses a Raspberry Pi running RPiTX to generate a jamming signal, and the YardStick One to capture and replay the car keyfob signal.

Jam and Replay Hardware: Raspberry Pi running RpiTX for the Jamming and a Yardstick One for Capture and Replay.
Jam and Replay Hardware: Raspberry Pi running RpiTX for the Jamming and a Yardstick One for Capture and Replay.
Notify of

Inline Feedbacks
View all comments
Zak Derbyshire

What’s the wifi adapter for?


I understand that the repeated code is transmitted in a frequency slightly different (but within the bandwidth of the car receiver) to prevent it from being jammed. But it is not clear to me how the signal transmitted by the fob can be scanned by the device if it is transmitting simultaneously the jamming signal, why isn’t the device jammed itself?


The energy of the jamming signal is spread over a wider bandwidth than the key fob signal. It’s enough to jam the car receiver because it accepts all of the wideband noise but since the energy of the fob signal is concentrated into a narrower band its the overall SNR compared to the “noise” of the jamming signal is still high enough for the noise to be filtered out and the signal to be picked up


Of course there’s no reason why the car’s receiver couldn’t do the same thing, but the idea is the attacker has a transceiver with more advanced signal processing capabilities than the car