Comment j'ai lancé mon premier projet Open Source (Patreon)
Content
Hello,
J'ai reçu il y a quelques jours un drôle d'email de Uphold (un genre de plateforme crypto) qui annonçait l'arrêt prochain de l'application de 2FA (Double Authentification) Authy.
Je ne sais pas si cette information est vraie car je n'ai trouvé aucune autre information à ce sujet. A vrai dire, je pense qu'ils se trompent mais on verra bien.
Authy, vous connaissez, j'en ai souvent parlé et c'est une excellente application pour gérer sa double authentification. L'avantage de Authy par rapport à Google Authenticator, c'est qu'il permet d'avoir une sauvegarde (chiffrée, je vous rassure) restaurable depuis leurs serveurs. Ainsi, si vous perdez votre téléphone, vous pourrez quand même retrouver vos codes 2FA.
Toutefois votre compte étant associé à un numéro de téléphone, ce n'est pas forcement foufou en cas de Sim Swapping même s'il y quand même un mot de passe qui chiffre le backup.
Et surtout, Authy ne propose pas de fonctionnalité d'export pour migrer vers une autre application. Et ça, c'est vraiment dommage.
En effet, quand vous arrivez sur un site web (Twitter par exemple) et que vous voulez activer la double authentification, on vous incite fortement à conserver la clé unique ou une copie du QR code en sécurité pour le jour où vous perdez l'accès à votre application 2FA.
Mais la réalité c'est que le plus souvent, on a la flemme. On scanne le QR Code, on active le 2FA et après nous le déluge...
Moi, j'ai plein de sites sur lesquels j'ai activé le 2FA mais où je n'ai pas conservé le QR Code ou le code OTP unique. Ça m'embêtait vraiment, donc je me suis mis à la recherche d'un moyen d'exporter le contenu d'Authy.
Mais rien. Pas de fonctionnalité officielle et pas d'outil.
Du coup, pendant les vacances de Noël dernier, j'ai commencé à coder un truc en Python pour m'amuser et également expérimenter. Vous le savez, je ne suis pas développeur. C'est une pratique qui m'agace assez vite car je me prends vite la tête sur des problèmes débiles.
Sauf que maintenant, ça a changé puisque j'ai un assistant qui m'a énormément aidé : ChatGPT.
Et oui, même si ce n'est pas parfait et que j'ai fait tout le boulot, ChatGPT était quand même là pour me faciliter grandement la vie et pour une fois, j'ai réussi à aller au bout du truc. Ça m'a permis d'appliquer la méthode Rubber Ducky, c'est à dire d'échanger avec lui pour comprendre mes erreurs et me pondre quelques lignes toutes faites.
Une fois le code fini, je me suis dit que j'allais tout refaire avec Flutter pour avoir une interface plus moderne et apprendre un nouveau langage et surtout pouvoir faire une application universelle. Mais je me suis cassé les dents car c'était beaucoup plus complexe à faire qu'avec Python.
Donc le temps à passé et j'ai laissé tomber le truc. Puis cette semaine, quelqu'un sur Twitch m'a demandé où j'en étais de ce projet. Alors du coup, ce week end, je suis revenu sur mon code Python initial, j'ai réglé quelques petits problèmes de dernière minute et voilà.
Même si mon fiston voulait que je vende ce logiciel pour "devenir riche", j'ai fini par le mettre timidement sur Github. Vous êtes d'ailleurs pour le moment, les seuls au courant.
Pourquoi je dis "timidement". Parce que je ne suis pas codeur et que ma visibilité sur les réseaux sociaux m'expose également à tout un tas de gros boulets qui vont chercher la moindre ligne de code maladroite pour rabaisser en public ce petit exploit personnel. Syndrome de l'imposteur, tu connais.
Ça faisant plus de 20 ans, depuis RockXP, que je n'avais pas codé un "produit fini" pour tous. Et c'est la première fois que je crée un projet sous licence libre sur Github (licence MIT plus exactement).
Alors si je vous parle de ça, c'est aussi pour vous donner un peu envie de faire pareil. Python c'est facile et on peut tout faire avec.
Et avec ChatGPT c'est encore plus facile. Donc je ne peux que vous encourager sur ce genre de petit side-project. C'est gratifiant, c'est intéressant, et puis ça peut vous rendre service. J'ai quelques scripts pour ma compta ou mes envois de newsletter que j'ai également codé avec ChatGPT et ça me fait gagner un temps de dingue.
En tout cas, j'espère que cet outil d'export Authy vous rendra également service si vous utilisez Authy.
Ah je ne vous ai pas dit comment ça fonctionnait.
En gros, le client Desktop Authy c'est un Google Chome qui embarque la web app. Donc ce que j'ai fait, c'est démarrer Authy en mode debug. A partir de là, je pouvais causer avec lui. Je lui injecte alors un javascript qui permet d'extraire les données OTP. Puis je mets en forme ces données dans un fichier HTML avec une génération de QR Code au passage.
J'aurais simplement pu faire un bout de code en ligne de commande mais je me suis aussi beaucoup amusé à faire une interface digne d'un keylogger / crack des années 90 avec de la musique dedans... Hé oui :) Fallait bien rigoler un peu.
Maintenant que c'est sur Github, et bien on verra ce que ça devient. Peut-être que les gens vont se l'approprier. Peut-être que personne n'en aura rien à faire. Après si vous voulez améliorer le code, ou faire des versions compilées pour Windows, macOS et Linux, y'a moyen avec Pyinstaller.
Mais peu importe, je suis content et j'ai qu'une envie c'est de trouver une autre idée sympa pour renouveler l'exploit :)
Allez, bonne fin de week-end à tous !