Aller au contenu
denouche

[App Tierce] Tesla Tokens (Android)

Messages recommandés

Hello,

Après les changements récents sur le système d'authentification de Tesla, et la difficulté à obtenir un token Tesla pour utiliser les différentes applications tierces existantes, je me suis lancé dans une application Android assez basique permettant de générer et d'obtenir un token Tesla.

L'application affiche LA page de connexion Tesla.

Du coup l'appli supporte tout, Captcha, MFA, ...

 

Screenshot_20210601-215401.thumb.jpg.a9d2373efffff9b0046c65f861ccdaa2.jpg >>  Screenshot_20210601-215409.thumb.jpg.28925d9794b6882638a9961f6f341fcc.jpg >(Si MFA activé)>Screenshot_20210602-093407.thumb.jpg.189560682f51772be9f8e3b82e9280c9.jpg >>  Screenshot_20210601-215430_2.thumb.jpg.6df78ef0e797684d2aaed67116be0273.jpg

 

C'est une première version, elle sera surement enrichie avec quelques fonctionnalités par la suite (j'ai déjà quelques idées), mais je la sort rapidement pour débloquer ceux qui le sont actuellement avec les changements récents.

 

Elle sera gratuite et dispo sur le Play Store, ici :

google-play-badge.png.1b5b44ebdcc5a09a508bf42dee923750.png

 

Je précise que les login et mot de passe sont entrés directement dans la page de login Tesla et ne sont jamais donc entré dans l'application en elle même. Aucun problème côté sécurité donc.

Et les tokens générés sont conservés sur le téléphone uniquement.

Enjoy !

 

Modifié par denouche

Partager ce message


Lien à poster
Partager sur d’autres sites

Il y a 1 heure, Catequil a dit :

Merci pour cette appli utile et simple à utiliser.

Est-ce qu'elle fonctionne avec le 2FA ?

Comme dans la pub Peugeot : "Elle l'a"

Ou sinon y'a la réponse en chanson : "Ella, elle l'a, Hou hou houhou hou houhou"

 

Plus sérieusement, l'application n'affiche pas une page qui "ressemble" à la page de connexion Tesla, c'est LA page de connexion Tesla. Du coup l'appli supporte tout, Captcha, MFA, ...

Partager ce message


Lien à poster
Partager sur d’autres sites

il y a 56 minutes, Catequil a dit :

C'est ton screen plus haut qui induit en erreur... emoji51.png

Je ne suis pas sûr de comprendre en quoi il induit en erreur ?

C'est le formulaire de connexion classique, le 2FA est sur une page séparée, suite au login.

Partager ce message


Lien à poster
Partager sur d’autres sites

il y a 7 minutes, Catequil a dit :

Je pensais voir celui-ci avec la captcha, mais oui tu as raison, c'est la fenêtre classique.

Je retourne boire un café... emoji850.png
a56d8040e1d9ea147f2d4f2f07e0e5d1.jpg

Ah je comprends !

Alors oui, elle l'a, mais Tesla a fait machine arrière sur le Captcha depuis hier soir. 

Alors mon appli est toujours valable, mais en effet sur le screenshot il n'y a pas de Captcha ...

Je mettrai à jour s'ils le remettent. 

Partager ce message


Lien à poster
Partager sur d’autres sites

Il y a 12 heures, Catequil a dit :

Merci pour cette appli utile et simple à utiliser.

Est-ce qu'elle fonctionne avec le 2FA ?

oui, je suis en 2FA, et j'ai pu me connecter avec l'autre appli de denouche qui fonctionne de la même façon.

denouche, heureusement que tu n'avais pas fait cette appli avant, sinon je n'aurais pas acheté l'autre.

Or tu mérites d'être récompensé

Je ne regrette pas d'avoir acheté l'autre

Modifié par tben

Partager ce message


Lien à poster
Partager sur d’autres sites

il y a 21 minutes, tben a dit :

denouche, heureusement que tu n'avais pas fait cette appli avant, sinon je n'aurais pas acheté l'autre.

Or tu mérites d'être récompensé

Je ne regrette pas d'avoir acheté l'autre

Merci !!

Je vais intégrer un petit bouton "faire un don" à cette nouvelle application, pour ceux qui veulent.

Mais en effet Tesla Advanced Notification apporte plein d'autres choses, là cette appli là c'est juste la page de login finalement. 

Et j'en ai une autre en préparation, je ne tease pas plus pour l'instant mais il y a moyen qu'elle plaise aussi !

Modifié par denouche

Partager ce message


Lien à poster
Partager sur d’autres sites

Il y a 13 heures, denouche a dit :

Et j'en ai une autre en préparation, je ne tease pas plus pour l'instant mais il y a moyen qu'elle plaise aussi !

Merci @denouche pour les tokens.

j'avais la flemme de refaire la procédure de génération de nouveaux token, tu m'as fait gagné 15 min de ma vie!

 

Et j'ai vu le teaser pour ta prochaine appli, effectivement, ça a l'air très intéressant!

Partager ce message


Lien à poster
Partager sur d’autres sites

Au passage si vous pouvez mettre une note et / ou un commentaire sur l'application, ça serait cool, ça permettrait à l'application de remonter naturellement dans les résultats de recherche. 

Merci !

Partager ce message


Lien à poster
Partager sur d’autres sites

Il y a 5 heures, matesla3etaitsurleglovis a dit :

Grace à Denouche, mon app https://matesla.herokuapp.com revit.

Voila la nouvelle page de login ou je fais sa pub :-)

 

 

Capture d’écran de 2021-06-04 04-59-43.png

Merci ☺️

Par contre pour la phrase "le jeton est invalidé quand vous changez votre mot de passe" je crois que cette affirmation n'est plus vraie depuis le changement du système d'authentification de Tesla début février. 

A tester mais il me semble bien !

Partager ce message


Lien à poster
Partager sur d’autres sites

Il y a 5 heures, denouche a dit :

Merci ☺️

Par contre pour la phrase "le jeton est invalidé quand vous changez votre mot de passe" je crois que cette affirmation n'est plus vraie depuis le changement du système d'authentification de Tesla début février. 

A tester mais il me semble bien !

 

Je viens de tester, j'ai changé mon mot de passe... et j'ai été forcé de régénérer un nouveau token pour mon site. Et même chose pour l'app tesla, elle m'a demandé mon login et mot de passe tesla.

 

Donc, je garde la phrase, elle est correcte :-)

 

Heureusement d'ailleurs. Sinon, on se fait hacker ou car jacking  ou phishing ou je ne sais quoi, on change son mot de passe et l'indélicat continuerait à avoir accès à la voiture?

Partager ce message


Lien à poster
Partager sur d’autres sites

Il y a 6 heures, matesla3etaitsurleglovis a dit :

 

Je viens de tester, j'ai changé mon mot de passe... et j'ai été forcé de régénérer un nouveau token pour mon site. Et même chose pour l'app tesla, elle m'a demandé mon login et mot de passe tesla.

 

Donc, je garde la phrase, elle est correcte :-)

 

Heureusement d'ailleurs. Sinon, on se fait hacker ou car jacking  ou phishing ou je ne sais quoi, on change son mot de passe et l'indélicat continuerait à avoir accès à la voiture?

Cool ! Bonne nouvelle alors !

Merci d'avoir fait le test !

Partager ce message


Lien à poster
Partager sur d’autres sites

Le 01/06/2021 à 21:52, denouche a dit :

Je précise que les login et mot de passe sont entrés directement dans la page de login Tesla et ne sont jamais donc entré dans l'application en elle même. Aucun problème côté sécurité donc.

Oui, a condition de faire confiance à l'auteur de l'application.

Tesla a commencé à faire les choses bien en mettant en place une authentification oauth standard qui aurait pu permettre à n'importe quelle appli de s'authentifier sans devoir donner ses identifiants a n'importe qui, mais ils ont eu la bonne idée de vérrouiller l'url de callback qui ne peut pas être autre chose que celle utilisée par Tesla. Or c'est ce mécanisme qui permet de recevoir le token sans devoir faire l'authentification dans une webview non sécurisée et avoir à intercepter l'url de callback de façon détournée. Je dis que la webview n'est pas sécurisée parce qu'à partir du moment ou on ouvre une page dans une webview l'app peut faire ce qu'elle veut avec, dont écouter le champ mot de passe pour récupérer sa valeur...

La seule bonne façon de faire est d'ouvrir la page d'authentification dans le navigateur du téléphone, ou un chrome tab, donc hors du champ d'action de l'app, et recevoir la réponse via une url de callback personnalisée. Mais pour ça, il faudrait que Tesla veuille officiellement ouvrir son API a tout le monde, ce qui n'est pas gagné.

Partager ce message


Lien à poster
Partager sur d’autres sites

Il y a 3 heures, Tchettane a dit :

Oui, a condition de faire confiance à l'auteur de l'application.

Tesla a commencé à faire les choses bien en mettant en place une authentification oauth standard qui aurait pu permettre à n'importe quelle appli de s'authentifier sans devoir donner ses identifiants a n'importe qui, mais ils ont eu la bonne idée de vérrouiller l'url de callback qui ne peut pas être autre chose que celle utilisée par Tesla. Or c'est ce mécanisme qui permet de recevoir le token sans devoir faire l'authentification dans une webview non sécurisée et avoir à intercepter l'url de callback de façon détournée. Je dis que la webview n'est pas sécurisée parce qu'à partir du moment ou on ouvre une page dans une webview l'app peut faire ce qu'elle veut avec, dont écouter le champ mot de passe pour récupérer sa valeur...

La seule bonne façon de faire est d'ouvrir la page d'authentification dans le navigateur du téléphone, ou un chrome tab, donc hors du champ d'action de l'app, et recevoir la réponse via une url de callback personnalisée. Mais pour ça, il faudrait que Tesla veuille officiellement ouvrir son API a tout le monde, ce qui n'est pas gagné.

À ma connaissance ce que tu décris n'est pas possible sous Android. 

Une Webview lancée dans une application ne partage pas les data qu'elle fait transiter avec l'application en question.

 

Il est possible de faire interagir la page web avec l'application avec une interface JavaScript (décris ici https://developer.android.com/guide/webapps/webview#BindingJavaScript)

mais il faut que le code JavaScript et le code de l'application fonctionne conjointement. Le principe d'une interface c'est qu'un des deux parti l'expose et l'autre l'utilise. En l'occurrence j'aurais beau exposer une interface, le code JavaScript de la page de login Tesla ne l'appellera jamais. Donc l'écoute du champ "mot de passe" n'est pas possible. 
 
Les données qui sont envoyées lors du login le sont par un POST HTTP, et le mot de passe est envoyé dans le body de la requête. 
Cette partie des requêtes qui transitent ne sont pas accessibles par l'application. L'application peut écouter un changement d'URL, c'est tout. Donc à ce niveau là non plus l'application ne peut pas récupérer le mot de passe. 
 
Je veux bien qu'on avance sur un poc (proof of concept) de ce que tu avances, juste pour être fixé et asseoir nos connaissances du sujet, mais à ma connaissance ça n'est pas possible. Mais je ne demande qu'à me tromper !
 
Dernier point important : je te rejoins complètement quand tu dis que la seule méthode propre serait de pouvoir personnaliser l'URL de callback, mais comme tu le dis malheureusement Tesla ne le permet pas (pour l'instant ?).

Partager ce message


Lien à poster
Partager sur d’autres sites

  

Il y a 19 heures, denouche a dit :

Je veux bien qu'on avance sur un poc (proof of concept) de ce que tu avances, juste pour être fixé et asseoir nos connaissances du sujet, mais à ma connaissance ça n'est pas possible. Mais je ne demande qu'à me tromper !

 

Rien de plus simple, avec une interface javascript et l'exécution d'une fonction JS via loadUrl() :

 

https://photos.app.goo.gl/41hrT7FAkSV43Mat6

 

// init webview
binding.webview.apply {
    settings.javaScriptEnabled = true
    loadUrl(authUri.toString())

    val ji = object {
    	@JavascriptInterface
    	fun onPassword(value: String?) {
    		Log.d("PASSWORDLOGGER", "Password : $value")
    		binding.passwordOutput.text = "Your password is : $value"
    	}
    }
    addJavascriptInterface(ji, "android")
}


// récupérer le password
binding.webview.loadUrl("javascript:android.onPassword(document.getElementById(\"form-input-credential\").value)")

 

Modifié par Tchettane

Partager ce message


Lien à poster
Partager sur d’autres sites

Il y a 4 heures, Tchettane a dit :

Rien de plus simple, avec une interface javascript et l'exécution d'une fonction JS via loadUrl() :

Super démo, merci !

J'avais bien fait de préciser "à ma connaissance" 😅

Bon du coup le seul moyen sécurisé est bien la callback personnalisable qui est bloquée côté Tesla. 

Sinon j'avais pensé open sourcer le code de l'application (c'est dans la to-do list), mais rien ne prouve que le code que j'envoie sur le play store est bien le code que vous lirez sur GitHub. Une nouvelle fois c'est une question de confiance.

À moins de repartir du code et de le compiler soi même...

Modifié par denouche

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui après le but n'est pas d'être parano non plus :)

Je préfère largement avoir une app comme la tienne pour générer des token que de rentrer mon login/mdp dans 15 app différentes qui ne font pas forcément les choses aussi proprement !

Partager ce message


Lien à poster
Partager sur d’autres sites

Le 01/06/2021 à 21:52, denouche a dit :

Hello,

Après les changements récents sur le système d'authentification de Tesla, et la difficulté à obtenir un token Tesla pour utiliser les différentes applications tierces existantes, je me suis lancé dans une application Android assez basique permettant de générer et d'obtenir un token Tesla.

L'application affiche LA page de connexion Tesla.

Du coup l'appli supporte tout, Captcha, MFA, ...

 

Screenshot_20210601-215401.thumb.jpg.a9d2373efffff9b0046c65f861ccdaa2.jpg >>  Screenshot_20210601-215409.thumb.jpg.28925d9794b6882638a9961f6f341fcc.jpg >(Si MFA activé)>Screenshot_20210602-093407.thumb.jpg.189560682f51772be9f8e3b82e9280c9.jpg >>  Screenshot_20210601-215430_2.thumb.jpg.6df78ef0e797684d2aaed67116be0273.jpg

 

C'est une première version, elle sera surement enrichie avec quelques fonctionnalités par la suite (j'ai déjà quelques idées), mais je la sort rapidement pour débloquer ceux qui le sont actuellement avec les changements récents.

 

Elle sera gratuite et dispo sur le Play Store, ici :

google-play-badge.png.1b5b44ebdcc5a09a508bf42dee923750.png

 

Je précise que les login et mot de passe sont entrés directement dans la page de login Tesla et ne sont jamais donc entré dans l'application en elle même. Aucun problème côté sécurité donc.

Et les tokens générés sont conservés sur le téléphone uniquement.

Enjoy !

 

Bonjour ils sont Stocker ou dans le téléphone?

Partager ce message


Lien à poster
Partager sur d’autres sites





×
×
  • Créer...
Automobile Propre

Automobile Propre est un site d'information communautaire qui est dédié à tout ce qui concerne l'automobile et l'environnement. Les thématiques les plus populaires de notre blog auto sont la voiture électrique et les hybrides, mais nous abordons également la voiture GNV / GPL, les auto à l'hydrogène, les apects politiques et environnementaux liés à l'automobile. Les internautes sont invités à réagir aux articles du blog dans les commentaires, mais également dans les différents forums qui sont mis à leur dispositon. Le plus populaire d'entre eux est certainement le forum voiture électrique qui centralise les discussions relatives à l'arrivée de ces nouveaux véhicules. Un lexique centralise les définitions des principaux mots techniques utilisés sur le blog, tandis qu'une base de données des voitures (commercialisées ou non) recense les voitures électriques et hybrides.