En informatique, il deviens très rapidement nécessaire de gérer son identités sur plusieurs sites et systèmes.

Et actuellement, on se retrouve à retenir plein de mots de passe, vu qu'il n'existe pas encore de solution unique et complète. En effet, j’estime qu'il faut :

  1. un système pérenne qui résiste à la suppression de compte mail (en quittant son ancien FAI), du nom de domaine (comme un certain wikileaks), de son téléphone...
  2. un système qui permettes un certain anonymat : si mon compte ebay et mon compte google utilisent la même adresse e-mail ou la même URL pour openID, ils peuvent me suivre à la trace.
  3. un système blindé : en cas de vol/perte de mot de passe, il doit y avoir des systèmes de révocation.

OpenID et BrowserID n'y répondent pas vraiment et pour moi, la solution réside dans les certificats GPG et un principe de fonctionnement tel que décrit :

Sur un PC (de préférence sécurisé, en live CD et non connecté au net), on génère un trousseau de clef A B C D (qu'on peux imprimer voir une master qui signe toutes ces clefs) ... chacune signe des clefs A1 B1 C1 D1 qu'on stocke sur une clef USB

On utilise alors les clefs A1 B1 C1 D1 pour s'authentifier sur les sites. Si la clef B1 est corrompue, on retourne sur le netbook et on génère une clef B2 qui révoquera la clef B1 et qui servira de nouvelle clef d'authentification.

  1. Le système est indépendant d'un quelconque compte mail ou nom de domaine
  2. un système qui permettes un certain anonymat : si mon compte ebay et mon compte google utilisent la même adresse e-mail ou la même URL pour openID, ils peuvent me suivre à la trace.
  3. un système blindé : en cas de vol/perte de mot de passe, il doit y avoir des systèmes de révocation.

En attendant qu'un tel système soit utilisable, on se retrouve à gérer plein de mots de passe. Problème, je n'ai pas de serveur chez moi où héberger en permanence ce fichier, et je n'ai pas envie de le stocker en clair chez mon hébergeur. Je pourrais le crypter chez mon hébergeur, mais ça signifierais envoyer le mot de passe par le réseau (et je n'ai pas de https disponible dans mon offre).

Solution: effectuer le cryptage/décryptage coté navigateur. Ceux-ci ne gérant pas les fonctions cryptographiques en natif, j'ai dû recourir à une librairie en javascript.
Le script ci dessous effectue des copies de sauvegardes du fichier crypté.

Télécharger le script (WTFPL)

Ce script php génère donc une page HTML avec un champ textarea crypté, qui se décrypte via javascript quand vous aurez saisi la bonne clé. Vous pouvez saisir de nouvelles informations , une autre clef et cliquer sur save pour envoyer la nouvelle version cryptée sur le serveur.
Le script est fourni sans garantie (ne l'utilisez pas pour des trucs trop importants sans vérifier le code source)