[Projet] KAuth, l’authentification Web simple et sûre

Je pense qu’il est enfin temps de révéler le projet sur lequel je travailles depuis quelques semaines.Il s’agit d’un projet concernant l’authentification des utilisateurs sur les sites web.

Alors déjà petit résumé de l’état actuel des choses pour l’authentification web :

  • La plupart des mot de passes sont des mot de passes mnémotechniques. Avec une rainbow table on peut facilement en casser la plupart.
  • Passer par un tiers, c’est donner ses données à un autre site (OAuth, OpenID, Facebook Account …).
  • Le mot de passe est souvent unique et redondant avec d’autres sites.
  • Si un pirate intercepte la soumission du formulaire il récupère le mot de passe, et peut possiblement aller sur d’autres sites.

 Le principe de KAuth

L’idée actuelle est de générer une paire de clefs RSA : 1 privée et 1 publique.

Au moment de l’inscription sur un site web, l’utilisateur renseigne son pseudo et donne sa clef publique en guise de mot de passe.

Vient ensuite la phase d’authentification sur le site web.

  1. Quand on veut s’authentifier, le serveur web donne un petit mot à usage unique : “abcd” par exemple.
  2. On copie ce mot dans le presse-papier.
  3. On ouvre le logiciel KAuth, et on appui sur un bouton qui génère la signature de mot “abcd” et la place dans le presse-papier.
  4. On colle la signature dans le champ réservé à cet effet sur le site web.
  5. Le serveur web, essaye de certifier le mot “abcd” avec la signature et la clef publique en BDD.
  6. Le serveur web arrive à certifier le mot avec la clef publique, et autorise la connexion de l’utilisateur.

Cette méthode repose sur le faite, qu’une clef publique peut certifier uniquement une signature de sa clef privée associée.

Avantages

Cette méthode a le mérite d’apporter plusieurs avantages :

  • On ne passe pas par un tiers comme Google ou Facebook.
  • Il n’existe pas de mot de passe à proprement parlé (rien à retenir).
  • Le mot signé change à chaque fois.
  • Aucune information compromettante (même hashée) n’est sauvegardé côté serveur.

Inconvénients

  • Passer par un logiciel/plugins pour générer son mot de passe.
  • Si on change de pc, il faut avoir sa clef privée et KAuth (ce point là est assez mauvais).

État d’avancement

Avec un ami, nous avons réaliser plusieurs études pour KAuth.Tout d’abord avec une POC (preuve de concept), puis ensuite avec le choix d’une bibliothèque de cryptologie pour implémenter la solution.

Malheureusement, les bibliothèques de cryptologie sont très mal documentés ou bien ne correspondent pas aux besoins. Je me suis alors tourné vers l’utilisation du programme Openssl avec des QProcess du Framework Qt.

Sur cela, je manquerais pas de vous tenir au courant de l’avancement du projet KAuth. Surtout avec la phase de conception qui est en cours.

Laisser un commentaire