Bonjour à tous,
Je viens vous tenir au courant de l’avancement du projet, tout fraîchement renommé K-Auth avec un – pour éviter les erreurs de prononciations. Tout d’abord, à l’heure actuelle, le projet est en stand-by pour cause de période d’examens. Cependant j’ai eu le temps de développer une version Alpha codée en C++ avec Qt.
K-Auth a son Github
Le tout est déjà disponible sur Github pour les impatients : https://github.com/racam/KAuth
Vous êtes libre de participer au projet, et d’ailleurs je vous y encourage 🙂 Il me faut plusieurs points de vue pour me permettre d’avancer. Il est vrai que je manque de recul, de plus le projet et sous licence libre GPL v3 !
K-Auth un projet dur à mettre en place
Il faut savoir que je suis en pleine phase de réflexion concernant le choix du langage. En effet, il faut savoir que la bibliothèque openssl est très dure à implémenter dans son code, en cause une chose : un manque cruel de documentation. Cependant, il me tenait à coeur de créer K-Auth en C++ avec Qt.
Le compromis actuellement trouvé est d’utiliser l’exécutable d’openSSL : dans mon programme, j’invoque un nouveau processus sur openSSL et j’utilise le programme comme on le ferai en ligne de commande. Cette solution me rajoute une dépendance forte, en plus d’ajouter un problème de sécurité : je ne peux pas vérifier l’authenticité de l’exécutable d’openSSL.
J’ai actuellement eu plusieurs cours de Java, et ce langage propose une bibliothèque de base très complète et documentée ! Notamment du côté de la crypto.
K-Auth, comment ça marche et preuve de concept
L’étape suivant après avoir développer une version sortable, a été de coder une page PHP. Celle-ci doit générer une petite chaîne de caractères aléatoires que l’utilisateur doit signer avec sa clef privée à l’aide de K-Auth.
C’est là où K-Auth est très puissant, en effet il peut aller voir dans le presse-papier la valeur, puis la signer en live dans le presse-papier ! Pour cela, il suffit de cliquer sur l’icône de K-Auth dans la barre de tâche puis de cliquer sur le menu correspondant.
Ainsi il suffit de :
- Copier la chaîne aléatoire de la page web (CTRL+C)
- Générer la signature avec via la taskbar (2 clics)
- Coller dans le champ signature de la page web (CTRL+V)
Ce test conclu donc une parfaite preuve de concept ! En effet la page PHP contenant la clef publique, reconnait parfaitement la signature qui lui est soumise.
Cependant, on peut se poser une question : sachant qu’une signature a une représentation binaire, comment s’assurer que l’on passe tous les caractères dans le champ signature de la page web ? En base 64 pardi ! Il faut donc prendre soin en PHP de bien décoder la base 64 avant de vérifier la signature.