gPass
Depuis le début de l'informatique, la façon la plus courante d'accéder à une ressource (compte) est d'utiliser le couple nom d'utilisateur/mot de passe. Pour l'anecdote, Richard Stallman ne mettait (volontairement) pas de mot de passe à son compte UNIX. Pour chaque service, il faut donc rentrer ce couple afin d'être authentifié. Le problème, c'est qu'il y a de plus en plus de services que nous utilisons quotidiennement. Il faut donc inlassablement répéter toujours les mêmes actions même si, la plupart du temps, on se facilite la tâche avec une connexion automatique gérée par le navigateur.
Pour tous ces services il faudrait, en théorie, avoir un mot de passe fort (compliqué) et différent. Mais en tant que bon fainéants, on utilise juste un sous ensemble récurrent. Problème : si le mot de passe est trop simple et/ou que le site se fait voler sa base de données, un hacker pourra (après déchiffrage) se connecter sur tous vos comptes.
Afin de répondre à cette problématique, j'ai développé gPass (global Password). Il s'agit d'un serveur de mot de passe. Quand on veut se connecter à un service, il faudra rentrer une clé maître qui va permettre de récupérer le mot de passe associé au couple site/nom d'utilisateur. Mot de passe qui sera évidemment complexe (il y a un générateur intégré) et unique par service (du moins ceux que l'on aura configurés). Concernant la sécurité, la base de données ne contient que des valeurs chiffrées (AES 256). Chiffrement qui s'effectue sur le client (sauf lors de l'insertion dans la base). la clé de chiffrement est une dérivation (PKBDF2) de la clé maître. De plus, les mots de passes sont salés. Donc, si on a une clé maître forte, il est quasiment impossible de déchiffrer la base.
En fait, il s'agit d'un concurrent plus ou moins proche de lastPass. Ses avantages sont qu'il est open source (c'est l'origine du projet), auto hébergable, que l'on peut gérer plusieurs comptes, avoir plusieurs clés maître. L'inconvénient c'est qu'il n'y a qu'un seul plugin disponible pour firefox. Pour ceux qui connaissent, on peut rapprocher cette solution d'un SSO (Single Sign On) pour les sites qui ne le proposent pas. C'est à dire que l'on s'authentifie une seule fois via un service unique pour accéder à un panel d'autres services.
Lors de l'hébergement d'un serveur, il est important de garantir la disponibilité de ce dernier (s'il n'y a plus de connexion, plus de mot de passe...). Néanmoins, si on n'a pas le plugin installé (changement de PC), on peut toujours aller consulter les mots de passe directement en ligne. Attention cependant à ne pas perdre la base de données ou la clé maître, il serait impossible de retrouver la valeur des mots de passe (sauf système de récupération propre à chaque service) !
Un serveur de démonstration est disponible ici (c'est celui configuré par défaut par le plugin), vous noterez les couleurs chatoyantes utilisées (j'ai participé au design d'iOS7). Le client (extension firefox) est disponible ici. Le code source est là. Il s'agit de la version 0.1, donc il est possible qu'elle ne fonctionne pas pour tous les sites et/ou qu'il y ait des évolutions à l'avenir.