2

I've read this question - Vehicle remote key security, and I have a few simpler questions that are not addressed in that one.

I just received a whatsapp viral forward raising a few claims regarding security of car keyfobs. I feel that one or more of these claims are bogus, and wanted to check with the community. It is hardly the work of sophisticated security professional, so the likelihood of claims being bogus is high.

Here is the video: https://www.youtube.com/watch?v=fjmEdYQo9K0. It's in Hindi, but I'll outline the claims here.

  1. It claims that when you lock the vehicle, there is a universal remote that an attacker can use to capture the secret code, which it can replay to unlock the car at will.

  2. It seems that the secret code is being captured from a single LOCK command.

  3. The best way to guard this security code is to lock the car manually, so that potential attackers can't sniff out the security code.

We're talking about $10,000 cars here using OEM security systems, nothing fancy or high-end.

From the previous question linked here, I know that OEMs frequently use roll-your-own crypto, and the systems, especially in commodity vehicles, are hardly unbeatable. The simplicity of the supposed attack raises a lot of questions for me, though.

  1. A simple replay attack should not be possible because most modern cars use some form of rolling codes.

  2. While there is some body of work that talks about private keys being reconstructed from a set of 10-20 rolling codes, it hardly seems possible from just one rolling code.

  3. There isn't a very good reason for a LOCK command to emit a rolling code. A malicious attacker spoofing a LOCK command would hardly be able to cause significant nuisance/denial of service. I'm not sure how the protocols work in practice.

  4. Advising owners to manually lock the vehicle sounds like malicious advice. While a manual lock may mechanically secure the vehicle doors, it won't actually engage the car's immobilizer/electronic security system, leaving it actually more vulnerable.

Thoughts on these four points would be appreciated.

Ankush Jain
  • 123
  • 5
  • 3
    This is possible and feasible, and car manufacturers have been known to follow lax implementation standards for security, safety, etc. Ultimately, if the average end user doesn't know enough to care, neither do they. However, this question is highly implementation specific - we can't really know "how possible" except for a specific given car at a specific given firmware version. – Monica Apologists Get Out May 01 '18 at 14:55
  • Relevant paper: https://www.usenix.org/system/files/conference/usenixsecurity16/sec16_paper_garcia.pdf – Tobi Nary May 01 '18 at 15:02
  • Jamming combined with replaying is effective https://samy.pl/defcon2015/ – multithr3at3d May 01 '18 at 15:31

1 Answers1

5
  1. They should, but it is not necessarily true they do. There were smart locks that did not use rolling codes and could be cracked with one captured command.
  2. Depends on how they implement rolling codes. I don't have a problem believing someone was clueless enough to use predictable algorithm, such as increase the previous hash value by one and hash, that would provide no security. These guys are usually hardly security experts. Or they may not use rolling codes as I noted in 1.
  3. It is likely all commands use the same system of authentication.
  4. Yes, it does seem dodgy. But it depends on the car. Some cars have central locking that would engage all the security regardless of how the vehicle was locked.
Peter Harmann
  • 7,728
  • 5
  • 20
  • 28
  • Increasing by one and hashing is secure. As long as the hash function is. – Tobi Nary May 01 '18 at 15:00
  • @SmokeDispenser I believe Peter means something like: newHash= previousHash+1, which wouldn't be secure. – Steve Sether May 01 '18 at 15:08
  • @SmokeDispenser If you hash a secret, then yes. If you hash the previous value, it does nothing. And that is the small difference people who never worked on security before may miss. As Steve said. – Peter Harmann May 01 '18 at 15:08
  • Ofc you hash a secret. The whole idea of rolling keys is to have a non-replayable secret. I‘d rephrase that; increasing by one and hashing is perfectly fine as a concept and not the problem you ought to point out. – Tobi Nary May 01 '18 at 15:10
  • @SmokeDispenser Well, that is true. Edited to state explicitly I meant the previous value. – Peter Harmann May 01 '18 at 15:13