Slack authentication in Tesla's Model S REST API exposes the electric car to a variety of non-safety but non-trivial attacks, according to a Dell engineer and Tesla owner.
In this post over at O'Reilly, Dell senior distinguished engineer and executive director of cloud computing George Reese says the “flawed” authentication protocol in the Tesla REST API “makes no sense”. Rather than using OAuth, Tesla has decided to craft its own authentication, which Reese unpicked.
There's one small reassurance for owners of the 'leccy car: none of the vulnerabilities he discusses cause any kind of safety issue – although he creepily notes that an attacker would be able to see everywhere the car goes.
Tesla, it turns out, has broken one of the golden rules of security – the one that says “don't re-use user IDs and passwords for different functions”. In this case, the e-mail and password used to build the car at the Tesla Website are retained later for customers logging into the car via the Website.
There's also a persistence issue: when a user logs into the Tesla Website to get to their car, it creates a three-month token for which there's no revocation mechanism. If the system is compromised, the attacker would have access to the login for three months, and if “an attacker gains access to a website’s database of authenticated tokens,” then all the cars would be visible to the attacker.
While the flaw doesn't offer access to any “operational” aspects of the car – like steering or brakes – the risks are still significant. An attacker could fool around with configuration settings, the climate control, the sunroof, open the charge port, and anything else supported by the API. Apart from tracking owners' movements, “there is enough here to do some economic damage both in terms of excess electrical usage and forcing excess wear on the batteries”, Reese notes.
Reese links to an unofficial documentation of the API, which outlines its capabilities, here. ®