Un Password Manager sécurisé nouvelle génération : Forgiva

“The new-age password manager”, c’est ainsi que ce défini Forgiva : un gestionnaire de mot de passe qui résout les problématiques de stockage, de keylogger et de vol de la “master key” en ne sauvegardant jamais les mots de passe, mais en les régénérant.

La plupart des passwords manager, qu’ils soient SaaS-cloud (1password, lastpass) ou local-on-premise (KeePass, KeeWeb, TeamPass) s’accordent tous sur un mode de fonctionnement commun :

  • Ils stockent vos passwords de manière chiffrée ;
  • Ils utilisent des algorithmes de chiffrement symétriques (réversibles) robustes (AES généralement) ;
  • Ils nécessitent au minimum une clé-maîtresse (master key) pour déverrouiller cette base de données.

Ce mode de fonctionnement induit plusieurs faiblesses intrinsèques :

  • Rien n’empêche d’utiliser de faibles passwords qui seront stockés dans le coffre-fort ;
  • Rien n’empêche de réutiliser plusieurs fois le même mot de passe pour plusieurs comptes du coffre-fort ;
  • Les mots de passe du coffre-fort peuvent être conservés indéfiniment, sans forcer de renouvellement pour l’utilisateur final ;
  • Pour déverrouiller le coffre-fort, l’usager doit renseigner sa master-key, qui peut être dérobée via des keyloggers par exemple ;
  • Les mots de passe sont “stockés”, certes chiffrés, mais ils sont stockés. Ainsi, un attaquant pourrait casser la clé maîtresse ou la voler pour accéder aux sésames.

Forgiva est une nouvelle solution de password management qui offre une solution à tous ces problèmes. Le concept même de “password manager” a été revu, repensé, ré-étudié par des experts sécurité pour donner naissance à cette solution, opensource qui plus est !

L’idée est simple :

  • Forgiva fonctionne comme un password manager traditionnel avec une différence majeure : il ne stocke aucun mot de passe sous quelques formes que ce soit (ni en clair, ni chiffré, ni haché) ;
  • Seuls les métadatas propres à un compte sont stockés, par exemple l’url de connexion, le login, la date de création du compte, la date prévisionnelle de renouvellement du mot de passe, etc.
  • De plus, Forgiva propose d’emblée trois “forces” pour vos mots de passe “Normal”, “Intermediate” et “Advanced”. “Normal” équivaut à un mot de passe auto-généré tel que “ja!cmwt.cVVQLj8!”. Autant dire que “Normal” est plus qu’acceptable.
  • Pour contrer les keyloggers, Forgiva intègre également un mécanisme de captcha visuel ou il faut choisir une image (disposer aléatoirement) à chaque fois.
  • Finalement, Forgiva requiert aussi une master-key. Seulement il peut y avoir une infinité de master-key, et toutes sont valides !

Je m’explique : plutôt que de “stocker” les mots de passe, Forgiva va les “régénérer” à chaque fois que l’usager en a besoin. Cette régénération se base sur un enchainement d’algorithmes cryptographiques très robustes (aes 256, camelia, sha512, etc.).

En entrée de ces algorithmes, il va y avoir :

  • les métadatas du compte sur lequel l’utilisateur cherche à se connecter (login, url, date de création, etc.)
  • la master-key indiquée par l’utilisateur
  • l’image choisie dans le captcha aléatoire

A partir de ces informations, Forgiva va générer “toujours” le même mot de passe robuste, tant que ces données en entrées sont identiques. Donc si vous entrez une autre master-key, il n’y aura pas d’erreur, un mot de passe va être généré (mais ça ne sera pas le bon pour le compte en question). Idem, si vous choisissez une mauvaise image captcha, le mot de passe généré résultant ne sera pas valide. En définitive, on pourrait simplifier le fonctionnement via la fonction suivante :

password = regenerate(masterKey, captcha, metadataEntry);

Forgiva répond donc au problème de stockage de mot de passe, puisque aucun d’entre eux n’est conservé : ils sont régénérés (et copiés dans le presse-papier) à chaque fois. De plus, Forgiva assure que les mots de passes sont uniques entre chaque compte (puisque les méta-datas diffèrent) !

Le principal inconvénient est qu’il est nécessaire de générer un mot de passe via Forgiva avant même de créer un compte sur un service en-ligne (vous ne pouvez pas définir vous mêmes vos mots de passe dans Forgiva). Ou alors vous réinitialisez tous les mots de passe de vos services en-ligne avec ceux générés par Forgiva. C’est un mal pour un bien, une nouvelle approche bien plus sécurisée.

Petite démonstration ?

Lancement de Forgiva et visualisation des comptes déjà dans la base :

On ajoute un nouveau compte (remplissage des metadatas) :

Une fois ces metadatas indiqués, ils seront “figés” et non-éditables dans l’outil.

Maintenant, si un utilisateur a besoin du mot de passe d’un compte particulier, il double-clique sur l’entrée correspondante et renseigne la master-key de son choix :

Puis, il indique l’image captcha de son choix :

Et le mot de passe est copié dans le presse-papier, prêt à être utilisé.

Forgiva innove dans le processus de gestion des mots de passe, en répondant à la problématique du stockage vis-à-vis de la régénération. Cet outil est particulièrement prometteur et s’avère très sécurisé (bien plus que les passwords manager standards au niveau de sa logique de fonctionnement).

Toutefois, l’utilisation de Forgiva peut être sujette à quelques difficultés, notamment :

  • Le fait que c’est Forgiva qui génère les passwords : l’usager ne peut forcer l’utilisation d’un mot de passe arbitraire dans Forgiva. Ainsi, pour tous les comptes de l’utilisateur, celui-ci devra changer chacun des mots de passe avec un de ceux générés par Forgiva.
  • La gestion d’un même coffre-fort Forgiva entre plusieurs machines ne semble pas aussi aisée qu’avec un KeePass et son *.kdbx que l’on transporte : dans le cas de Forgiva, il est nécessaire de récupérer un certificats et de l’harmoniser entre toutes les machines.
  • Forgiva ne semble pas (à l’heure actuelle) disponible sur smartphone contrairement à KeePass par exemple (mais il est compatible Windows / Linux / OSX).
  • Il ne semble pas y avoir (pour l’instant) de fonction d’import d’un KeePass dans un Forgiva, pour éviter d’avoir à recréer la multitude de comptes que vous auriez déjà renseigné dans un autre password manager.

Mais Forgiva apporte des avantages non-négligeables :

  • Plus besoin de stockage de mot de passe : “il n’y a rien à cracker !” ;
  • Unicité du mot de passe entre tous les comptes ;
  • Possibilité de forcer le renouvellement du mot de passe ;
  • Algorithmes cryptographiques robustes et modernes ;
  • Anti-keylogger (captcha aléatoire) ;
  • Multi-master-key ;
  • Robustesse des mots de passe générés élevée ;
  • Pseudo-two-factor authentication : “ce que l’on sait” (la master-key) et “ce que l’on voit” (l’image aléatoire du captcha) ;
  • Opensource, GUI ou command-line.

Malgré les quelques problématiques citées ci-dessus, Forgiva et son fonctionnement est réellement innovant et sécurisé. J’encourage tous ceux souhaitant adopter un password manager à opter pour cette solution prometteuse qui mérite d’être connue.

Sources & ressources :

Yann

Consultant Sécurité