Sécurité - Mot de Passe - et MFA

Posted on

Intro

Dans cet article, j’aimerais vous faire part de mon cheminement informatique et de mes multiples comptes en ligne ainsi que la façon de les sécuriser.

Glossaire :

  • login : identifiant
  • mdp : Mot de Passe
  • 2FA : Double Factor Authentication ou authentification à double facteur en français / A2F
  • MFA : Multi Factor Authentication ou authentification à facteur multiple / AFM
  • bruteforce : attaque par force brute, test de toutes les combinaisons possibles.

TL;DR;

  • Utilisez un gestionnaire de mot de passe
  • Sécurisez-le avec une phrase de passe
  • Utilisez une App Authenticator (ou clé physique type Yubikey) pour la 2FA et évitez la 2FA par SMS
  • Sécurisez vos boites mails un mot de passe fort + MFA. C’est un point critique de la chaîne de sécurité puisque votre boite mail permet de récupérer l’accès à la plupart de vos comptes.

3615 ma vie

l’innocence des débuts

Je ne saurais me rappeler exactement quand j’ai commencé à utiliser internet et par extension avoir besoin d’une adresse mail et de différents comptes en ligne. ça a du se faire vers le début du collège je suppose.

Jeune et innocent, j’ai naïvement commencé par un login:mdp utilisé un peu partout. Le temps passant certains sites demandaient un mdp plus complexe j’en ai donc appris un nouveau, simplement enrichissable et adaptable pour ces sites-là. En parallèle j’ai aussi commencé à utiliser différentes boites mails.

Et c’est ici que les galères commencent et je pense que c’est le stade de nombreuse personnes :

  • inscrit sur des dizaines voir centaines de sites
  • avec quelques adresses mails et logins
  • et 2-3 mots de passes principaux variablilisé (une majuscule, un caractère spécial sur certains sites et pas sur d’autres)

Ça commence à faire beaucoup de combinaisons possibles à se souvenir et essayer quand on ce connecte. Et surtout ce n’est absolument pas sécurisé

Votre mot de passe n’excède probablement pas les 8-10 caractères, une fois une version trouvée, les variantes se trouveront très rapidement

=> Phrases de passe : l’ANSSI passe en mode 2.0

Ce qui m’a fait prendre confiance que ça n’allait pas et qu’il fallait que ça change, c’est quand je me suis rendu compte que mon mot de passe principal avait fui. C’était il y a environ 6 ans, et je suis toujours reconnaissant de la personne qui me l’a notifié un·e ami·e et personne de confiance.

la pris de conscience

La fuite datait déjà depuis quelque temps et était lié à de l’auto-complétion un peu trop zélé dans un formulaire que j’utilisais régulièrement dont la partie incriminée était repliée par défaut.

La solution était toute trouvé : KeePass. À l’époque j’en avais déjà un peu entendu parler en me disant que ce serait bien que je m’y mette un jour… Le jour était arrivé !

Je remercie ma mauvaise habitude à enregistrer mes identifiants dans mon navigateur (faites pas ça, si vous vous faites hacker votre PC, le hacker aura accès en plus des sessions connecté via les cookies à vos login:mdp sur tous les sites enregistrés). J’ai passé plusieurs jours à me connecter sur un tas de site, modifier mes identifiants et les saisir dans ma base KeePass, ce qui représentait à l’époque plus de 200 identifiants.

Ça fait dont maintenant plus de 6 ans que j’utilise un gestionnaire de mot de passe, j’ai plus de 300 identifiants dedans.

Époque KeePass

KeePass est un gestionnaire de mot de passe open-source. Sa sécurité est robuste, il est audité, et bien-sur il est gratuit. En dehors de l’aspect synchronisation / appareil multiple, je considère que c’est le meilleur gestionnaire de mot de passe, mais je ne peux le recommander à personne du grand publique. Car on travaille tous depuis un PC et utilisons nos comptes sur le mobile. Pour qu’une personne sans gros bagage technique il est nécessaire de passer sur un Gestionnaire de Mot de Passe en ligne.

KeePass Setup 1.0

  • Ma base KeePass sécurisé par un mot de passe et un fichier clé de sécurité
  • La base et le fichier clé synchronisé sur mon compte MEGA

Sur le Téléphone :

  • Keepass2Android pour mon portable
  • FolderSync pour synchroniser en local ma base

KeePass Setup 1.1

Sur mon PC de travail à mon premier emploi, j’ai eu le privilège en tant que dév de pouvoir mettre mon PC sous Linux. Malheureusement (en tout cas à l’époque) la compatibilité de KeePass sur Linux n’était pas parfaite. Ça fonctionnait sous mono et ce n’était pas parfait. Des petits soucis d’affichage et d’interactions. Pas d’autotype. J’ai donc cherché des alternatives. Puisque KeePass est open-sources il a quelques forks. Certains sont tournés vers la compatibilité multi os.

J’ai découverts KeePassX qui était compatible Linux qui fonctionnait un peu mieux et surtout conseillé par un ami sur Discord KeePassXC

  • Remplacement de KeePass par KeePassXC sur tous mes PC

Mais l’aspect synchronisation de ce setup n’était pas parfait. J’ai parfois eu ma base de mot de passe corrompu (sauvegardé ou ouverte en cours de synchronisation je suppose) mais par chance j’ai pu la restaurer à une version antérieure car MEGA versionne les fichiers.

J’ai aussi eu un coup, ou toutes mes entrées c’était retrouvé dupliqué dans ma base de mot de passe.

De plus coté téléphone j’avais souvent des petits soucis de syncro avec FolderSync qui avait du mal à rapatrier les fichiers depuis MEGA (et pour éviter tout soucis de corruption, la synchronisation était unilatérale MEGA -> Téléphone).

J’ai donc réfléchi à de nouvelles possibilités. Ça commençait à vraiment pas être pratique au quotidien toutes ces contraintes et cette charge mental pour ne pas corrompre la base.

À noter aussi que j’avais une deuxième base KeePass pour le boulot.

KeePass mais online-first + smartphone compatible

J’ai donc regardé un peu plus en détails les options de synchronisation offerte par KeePass2Android, car oui, embarqué dans cette application ; celle-ci est capable de récupérer une base depuis plusieurs sources :

  • Dropbox
  • Google Drive
  • OneDrive
  • SFTP
  • FTP
  • WebDAV
  • OwnCloud
  • NextCloud
  • PCloud

En parallèle j’avais découvert KeeWeb en remplacement de KeePassXC. Agréable à utiliser et moderne. ET qui lui aussi supporte quelques options de synchronisation embarqué :

  • WebDAV
  • Dropbox
  • Google Drive
  • OneDrive

KeeWeb Setup 1.0

Mon choix c’est porté sur

  • KeeWeb (fonctionne partout, synchronisation cloud, fonctionne dans une page web pour dépanner si pas possible d’installer)
  • KeePass2Android
  • Google Drive comme option Cloud

Et franchement ça tournait très bien. Ceci est un setup que je pourrais conseiller à une personne un peu à l’aise avec l’info. Le seul truc pour lequel j’étais mal à l’aise : me reposer sur Google pour synchroniser ma base de mot de passe.

KeeWeb Setup 1.1

  • WebDAV comme option cloud

J’ai un VPS que je loue, il héberge ce site et d’autres projets. J’ai donc pimpé mon Nginx pour configurer un WebDAV et ainsi, plus de dépendance aux GAFAM pour mes mdp.

État des lieux de cette époque KeePass

On est sur un setup qui convient à une personne seul, qui souhaite quelque chose de gratuit et respectueux de la vie privé. Ce n’est pas quelque choses que je peux conseiller à tout le monde, ou alors sur une option cloud Dropbox / Google Drive / OneDrive, mais on perd l’aspect respect de la vie privée. Une option NextCloud serait intéressante dans KeeWeb, ça permettrait de se reposer sur un provider cloud en qui on a confiance, par exemple chez un CHATONS.

=> CHATONS

Mais je ne suis pas une personne seule. Je suis en couple, bientôt marié, et papa. Ceci fait que j’ai besoin de partager des comptes en lignes avec ma chère et tendre pour de l’administratif et se simplifier la vie.

À son initiative nous avons une boite mail gmail en commun depuis quelque temps, et nous avions besoins d’un espace sécurisé pour partager des identifiants.

Nos besoins :

  • un gestionnaire de mot de passe online-first donc exit KeePass
  • permettant de partager des identifiants avec d’autres personnes
  • simple à utiliser pour ma compagne
  • open-source si possible gratuit ou peu cher
  • possibilité d’importer et exporter la base afin qu’elle soit au moins importable dans KeePass
  • potentiellement auto-hebergeable

Je peux faire confiance à un hébergeur pour gérer mes données, mais j’exige avoir l’assurance qu’en cas de problème (la société n’est pas rentable et doit couper son service), ou en cas de désaccord avec la politique notamment tarifaire. Pouvoir me débrouiller par mes propres moyens en hébergeant à mon compte la solution. Et l’export importable par KeePass, car il reste le standard, et la plupart des gestionnaires supportent à minima l’import KeePass. Disons que c’est la Lingua Franca des gestionnaires de mots de passes.

Malgré la profusion de gestionnaire de mot de passes ces dernières années, un seul rempli tous ces critères

Époque Bitwarden

Mon choix c’est donc porté sur Bitwarden, car le plan familial est intéressant, même si finalement l’organisation gratuite limité à 2 utilisateurs suffit à nos usages. Je réfléchirais à proposer cela en commun avec ma belle famille ou attendrai que mon enfant soit suffisamment vieux pour en avoir l’utilité.

La seule feature qui est limité aux comptes premium sur Bitwarden c’est la 2FA alors que c’est du TOTP calculé coté client donc 0 coût en termes de charge serveur.

Le setup est donc simple.

  • un compte bitwarden pour moi
  • un compte bitwarden pour ma compagne
  • une organisation gratuite avec une collection pour partager les comptes en communs

Ça fonctionne très bien, client sur toutes les plateformes, y compris en extensions navigateurs c’est très pratique. Il y a même un client en ligne de commande, je n’en ai pas l’usage mais c’est certainement utile pour certains usages. Et c’est quelque chose que je peux recommander à tout le monde. Je l’ai d’ailleurs recommandé à mon père avant même de l’utiliser, pour autant que je sache il est toujours dessus et est satisfait de son usage.

Résumé gestionnaire de mot de passe

C’est bien, avec ce setup je suis bien plus sécurisé que la majorité des gens. Le gestionnaire de mot de passe est nécessaire de nos jours mais encore loin d’être généralisé au sein de la population.

Il permet d’avoir un endroit centralisé contenant l’accès à tous nos comptes, grâce à cela on peut avoir un mot de passe différent et complexe pour chaque compte. La seule faiblesse de ce principe est que si le mot de passe de ce gestionnaire est trouvé tous les comptes sont accessibles. Il est donc important

  • d’avoir un mot de passe le plus long et complexe possible afin qu’il soit virtuellement impossible à bruteforce.
  • d’être capable de s’en souvenir, car il n’y a pas de possibilité de récupérer le mot de passe en cas d’oublis.
  • de ne pas le noter afin que quiconque puisse le voir.

Et si votre gestionnaire de mot de passe en ligne vous permet de mettre une 2FA afin de donner accès à votre coffre, faites-le, on sait jamais ça pourra vous sauver d’une catastrophe.

MFA / 2FA

Parlons maintenant d’authentification à facteur multiple. Historiquement c’était plutôt de l’envoi de code à la boite mail mais venait avec quelques inconvénients :

  • Une boite mail est hackable
  • les mails peuvent circuler en clair sur le réseau
  • ça peut arriver dans les spams voir pas du tout selon la bonne entente entre les serveurs mails
  • les mails peuvent mettre du temps pour être acheminé

Ce sont développé aussi l’envoi de code par SMS qui vient aussi avec quelques inconvénients

  • Les SMS circulent en clair dans le réseau téléphonique
  • Les SMS ont un coût d’acheminement
  • Les opérateurs sont peu regardants sur la vérification d’identité et donnent des cartes SIM à des attaquants ce faisant passer pour vous lier à votre abonnement Ce type d’attaque est de plus en plus courant et on rencontre de plus en plus d’histoire ou des personnes se font cibler et perde l’accès à leur compte malgré la double authentification puisqu’ils utilisent l’option SMS.

La solution de 2FA majoritairement employés de nos jours est le TOTP (Time-based One-Time Password). Lors de la configuration de la 2FA sur un compte, on vous fournit un secret et ce secret permet de générer un code numérique unique en fonction du temps, que le serveur vérifiera avec la même fonction.

Une application Authenticator sur votre mobile permet de stocker les secrets associés au site et identifiant.

Malheureusement je ne vous ferrais pas une revue des différentes applis Authenticator, je peux simplement fous dire que je n’en ai trouvé aucune à mon goût, car elles sont pour la plupart gérées par des GAFAM. Une Open-Source (FreeOTP est à l’abandon depuis 2016) et je ne sais quelle confiance je peux accorder en des forks plus modernes comme andOTP et FreeOTP+. Sinon Authenticator Pro avait l’air intéressante, mais je n’ai pas exploré cette possibilité.

Recueil de conseil sur Discord

Souhaitant trouver une bonne solution d’authentification multiple j’ai demandé à la communauté comment ils fonctionnent.

On m’a conseillé Authy, mais ne connaissant pas leur Business Model et le besoin d’un numéro de portable pour créer un compte + l’aspect en ligne m’a rebuté. Pour un usage de 2FA, je préfère une solution offline-first, non dépendante de numéro de tel / SMS.

Sinon les conseils ce sont porté sur des appareils physiques : Yubikey.

J’ai donc un peu comparé ce qui se faisait, les possibilités offertes et la praticité de la chose. Et j’ai porté mon dévolu sur la Yubikey 5C NCF, accompagné d’un adaptateur USB C -> USB A.

La 5C et pas la 5 car le port USB C ce généralise, je n’ai pas l’assurance que mon prochain mobile supporte le NFC (je pense explorer le monde des Linux-phones avec un Pine-phone) donc priorité à la prise USB C.

Celle-ci supporte tous les protocoles de MFA connu (FIDO / U2F / OTP / WebAuthn…) et est compatible avec tous les appareils du moment qu’il y a du NCF ou de l’USB.

Ainsi mes comptes les plus sensibles sont maintenant protégés par 2FA :

  • gestionnaire de mot de passe
  • boites mails
  • réseaux sociaux
  • npm / github / gitlab
  • paypal
  • banque. à non pas les banques elles sont à la ramasse et force à utiliser un PIN à 6 chiffres pour sécuriser le compte en ligne, et l’authenticator c’est une notifs sur l’appli mobile… Donc obligé d’utiliser leur appli mobile pour avoir la 2FA et forcer une demande d’autorisation avant tout paiement en ligne… bienvenu au 20ᵉ siècle les gens. Aussi le jour où je change de téléphone, je dois désactiver le “Pass Sécurité” avant de me connecter sur l’autre tel et l’activer… !

La plupart ne supportent que l’OTP mais où c’était possible j’ai utilisé WebAuthn / U2F

Setup MFA 1.0

  • Yubikey 5C NFC
  • Yubico Authenticator (mobile / desktop)
  • Clé attachée à mon trousseau de clés via mousqueton pour la retirer simplement
  • Code de recovery dans bitwarden (point de fragilité en cas de hack de mon compte bitwarden mais compensé par la 2FA pour avoir accès au coffre depuis un nouvel appareil)

Si sécurisation possible via protocole avec token physique (U2F / FIDO / WebAuthn), 2FA via ce moyen. Sinon TOTP, avec Yubico Authenticator, qui me donne mes codes via NFC ou en branchant la clé en USB.

Je réfléchis à mettre mes codes de recover dans une base KeePass dédié tout de même, afin de “ne pas mettre tous les œufs dans le même panier” Et il me reste aussi à éviter les récupérations de comptes via SMS.

Actuellement mon seul souci rencontré avec ce dispositif, est que le navigateur mobile que j’utilise ne supporte pas la Yubikey. J’utilise Vivaldi Mobile, par contre sur Chrome Mobile ça fonctionne, mais je n’utilise pas ce navigateur sur mobile, et sous Firefox Mobile ça fonctionne parfaitement bien aussi.

Le principal souci de ce setup :

  • pas de possibilité de backup (Yubico met tout en œuvre pour qu’il ne soit pas possible de lire les données stockées sur la clé pour des raisons de sécurité)
  • Vivaldi Mobile ne la supporte pas (chiant mais peu de compte qui se repose sur du token physique que j’utilise sur ce navigateur)

Je dois donc ne surtout pas perdre cette clé ou la casser. Un voleur n’en fera pas grand choses puisque c’est une validation supplémentaire pour ce connecter. Afin de ne pas la casser, j’ai imprimé en 3D une coque de protection pour la clé.

Une solution à ce problème est une “sparse key”, en gros une clé en doublon.

à chaque 2FA configuré, il faut le faire pour les 2 clés. Peu pratique et coûteux. Ma clé m’a coûté 66 €, pour une ça va, mais si il faut commencer à multiplier, ça va vite coûter cher :/

Afin de compenser la possible perte de la clé physique de sécurité, il est important de sauvegarder dans un espace sécurisé les codes de récupérations fournis par les sites lors de la configuration de la MFA.

Retour sur l’usage de la Yubikey

J’ai commencé la rédaction de cet article ~1 semaine après la réception de cette clé. Aux jours ou j’écris ces mots ça fait un mois supplémentaire. Je suis satisfait de cet achat. Rassuré de l’apport en termes de sécurité apportée par l’authentification à facteur multiple.

Mes critiques sont mineurs et ne concerne pas réellement le produit mais son usage :

  • Le NFC est assez capricieux, mais je pense que ça vient d’avantage de mon portable et de l’épaisseur de la coque
  • Accéder à des comptes sécurisés depuis un nouvel appareil peut s’avérer fastidieux. (Mais j’ai bien conscience qu’il est difficile de concilier sécurité et simplicité)
  • Très peu de service permettent l’utilisation de la clé en elle-même et propose uniquement l’option TOTP, or, il est bien plus simple de brancher la clé et valider plutôt que d’ouvrir l’app mobile, récupérer les codes TOTP et trouver la bonne entrée, puis recopier le code (le tout stressé par l’expiration rapide de ces codes)

Comments

You can use your Mastodon account to reply to this post.

Reply

Loading...