Welcome to Tesla Motors Club
Discuss Tesla's Model S, Model 3, Model X, Model Y, Cybertruck, Roadster and More.
Register

De meest veilige API voor de Tesla?

This site may earn commission on affiliate links.

Maarten

Active Member
Nov 2, 2013
4,100
13,047
Hilversum
In het draadje over het slim laden via De Bron wordt terecht gesproken over de (on)veiligheid om via een API toegang te geven tot je Tesla.
Ik ben geen informaticus (anders dan algemene kennis over informatica opgedaan aan de TH Delft), maar vind dit toch wel een interessant onderwerp.
De tegens zijn fors: als iemand er met je Tesla vandoor gaat en je account zou overnemen, ben je behoorlijk in de aap gelogeerd.
Maar: het levert ook heel veel mogelijkheden op.

Voor een API die met je Tesla over laden communiceert lijkt mij dat er op dit moment geen andere weg is dan je account-gegevens prijs te geven, tenzij Elon cs een extra password invoert waarmee je slechts toegang krijgt tot een specifiek deel van de auto. Maar dat zal niet hoog op het prioriteiten-lijstje van Elon staan.

De maker van de app kan lijkt mij wel extra veiligheden inbouwen, zoals een ontkoppeling tussen inloggegevens voor de Tesla aan de ene kant en het VIN-nummer en naam-/adresgegevens aan de andere kant via een offline systeem.
Dan kan een hacker die bij de auto staat en die het bestand van usernames en passwords zou hebben kunnen hacken, slechts gissen welke combinatie bij die specifieke Tesla hoort? Daar hoort dan wel natuurlijk een actief beleid bij om gebruikers direct te informeren bij een hack van het usernames/passwords bestand. Maar hoe weet die dan of hij gehackt is of niet? En dan gaat het op vertrouwen van de leverancier van de API aankomen en dat is een lastige, cq onbetrouwbare garantie?
Ook kan ik mij voorstellen dat dat nogal de nodige informatica-hoofdbrekens zal opleveren om zoiets met veel ingebouwde veiligheden in te bouwen. Los daarvan: 100% veiligheid bestaat natuurlijk niet.

Toch legt hier een interessante vraag voor ons allen, die overwegen van een API als die van De Bron of die van andere leveranciers gebruik te maken.
Let the discussion begin.
Wat is volgens experts en gebruikers de beste manier om dit te tackelen en weten we wel hoe dit geregeld is bij API's die er in gebruik zijn?
 
In het kader van terminologie, er is maar een aanbieder van de API, en dat is Tesla. De API is de programmeer interface die zij aanbieden aan derde partijen om de auto's aan te sturen. Deze derde partijen maken gebruik van de API van Tesla en hebben daar autorisatie voor nodig.Mogelijk doen ze dat ook middels een API die jij kunt gebruiken, maar aan de basis staat de Tesla API. Een stuk software als teslams biedt jou de mogelijkheid om de Tesla API rechtstreeks te benaderen.

Authenticatie en autorisatie kan op twee manieren plaats vinden, met login naam en wachtwoord, of met een token. Een token kan worden aangemaakt met behulp van login/wachtwoord en kent een beperkte geldigheid, dat merk je bijvoorbeeld in de Tesla app, eens in de zoveel weken moet je je wachtwoord opnieuw invoeren, omdat het token dus verlopen is.

Welke van de aanbieders het veiligst is, weet ik niet, dat zul je moeten onderzoeken. Maar in de basis is het veiligst om een token aan een derde te geven en zelf het volledige beheer te houden over je login/wachtwoord. Als die partij dan een security lek heeft, hebben ze slechts een tijdelijk bruikbaar token (Nu alleen nog de optie om tokens in te trekken..)

Iedere partij die jouw login en wachtwoord wil weten om zelf een token aan te vragen is een enorm risico.
 
  • Informative
  • Like
Reactions: Pepp and shoot72
@grommelsch Zou inderdaad mooi zijn dat jij als beheerder een token op elk moment kan intrekken. Wat ook mooi zou zijn is dat je gebruik zou kunnen maken van een autorisatie matrix zodat je verschillende tokens voor verschillende toegangs niveaus zou kunnen uitdelen. Of je het token aan een derde partij moet toevertrouw zoals teslalog.com of teslafi.com blijft een lastig te beantwoorden vraag.
 
[...]
De maker van de app kan lijkt mij wel extra veiligheden inbouwen, zoals een ontkoppeling tussen inloggegevens voor de Tesla aan de ene kant en het VIN-nummer en naam-/adresgegevens aan de andere kant via een offline systeem.
Dan kan een hacker die bij de auto staat en die het bestand van usernames en passwords zou hebben kunnen hacken, slechts gissen welke combinatie bij die specifieke Tesla hoort? [...]
Was het maar zo moeilijk voor een hacker. Doordat via de API de exacte locatie van de Tesla uit te lezen is zal het eerder omgekeerd werken. Als een kwaadwillende toegang heeft tot een gestolen Tesla account zal ook de auto zelf gestolen kunnen worden. Dus eerst het account, en dan pas de auto. Niet andersom. Met een gestolen token (of gebruikersnaam/wachtwoord) kan immers:
  1. je Tesla worden gelokaliseerd
  2. je Tesla worden geopend
  3. je Tesla worden gestart en weggereden
Het enige waar je op kan hopen is dat een app bouwer je Tesla wachtwoord (en/of token) niet ergens in een centrale database opslaat, maar alleen lokaal op je telefoon. Dat verkleint de kans op misbruik aanzienlijk.
 
  • Like
Reactions: PaulusdB
Het is veiliger als Tesla de authenticatie stap zou aanbieden middels oAuth, zoals je dit ziet bij veel websites/apps waarop je kunt inloggen met bijvoorbeeld Google/Facebook. Hierbij wordt je doorverwezen naar de website van de partij waarmee je wilt koppelen (Tesla in dit geval) en daar vindt de autorisatie (login) plaats en wordt een token uitgereikt. Op die manier komt je wachtwoord nooit in handen van een andere partij.

Dit doet Tesla niet omdat de API niet officieel wordt aangeboden door Tesla. Deze is reverse-engineered vanuit de Tesla app.

Derde partijen hoeven je wachtwoord overigens niet op te slaan om de token te verkrijgen. Of ze dit wel of niet doen kun je alleen achterkomen door ze te vragen.

Hier kun je zien wat allemaak via de API mogelijk is.
Tesla Model S JSON API · Apiary
 
In het draadje over het slim laden via De Bron wordt terecht gesproken over de (on)veiligheid om via een API toegang te geven tot je Tesla.
Ik ben geen informaticus (anders dan algemene kennis over informatica opgedaan aan de TH Delft), maar vind dit toch wel een interessant onderwerp.
De tegens zijn fors: als iemand er met je Tesla vandoor gaat en je account zou overnemen, ben je behoorlijk in de aap gelogeerd.
Maar: het levert ook heel veel mogelijkheden op.

Voor een API die met je Tesla over laden communiceert lijkt mij dat er op dit moment geen andere weg is dan je account-gegevens prijs te geven, tenzij Elon cs een extra password invoert waarmee je slechts toegang krijgt tot een specifiek deel van de auto. Maar dat zal niet hoog op het prioriteiten-lijstje van Elon staan.

De maker van de app kan lijkt mij wel extra veiligheden inbouwen, zoals een ontkoppeling tussen inloggegevens voor de Tesla aan de ene kant en het VIN-nummer en naam-/adresgegevens aan de andere kant via een offline systeem.
Dan kan een hacker die bij de auto staat en die het bestand van usernames en passwords zou hebben kunnen hacken, slechts gissen welke combinatie bij die specifieke Tesla hoort? Daar hoort dan wel natuurlijk een actief beleid bij om gebruikers direct te informeren bij een hack van het usernames/passwords bestand. Maar hoe weet die dan of hij gehackt is of niet? En dan gaat het op vertrouwen van de leverancier van de API aankomen en dat is een lastige, cq onbetrouwbare garantie?
Ook kan ik mij voorstellen dat dat nogal de nodige informatica-hoofdbrekens zal opleveren om zoiets met veel ingebouwde veiligheden in te bouwen. Los daarvan: 100% veiligheid bestaat natuurlijk niet.

Toch legt hier een interessante vraag voor ons allen, die overwegen van een API als die van De Bron of die van andere leveranciers gebruik te maken.
Let the discussion begin.
Wat is volgens experts en gebruikers de beste manier om dit te tackelen en weten we wel hoe dit geregeld is bij API's die er in gebruik zijn?
Als software nerd zou ik graag willen dat ík die bedrijven of apps kan vertellen waar ze de gegevens kunnen ophalen, dan bouw ik zelf wel de poort/sluis/tunnel/arbiter tussen tesla en die bedrijven/apps. Oftewel ik ben dan de enige die met tesla communiceert, de bedrijven/apps communiceren met mij en ik geef ze alleen de data die ik wil delen en sluis alleen de commando's door naar Tesla die ik wil.