GpgAuth est un système d’authentification pour les sites Internet. Sa particularité est qu’il permet de faire de l’authentification forte (two-way authentication).
L’authentification forte, c’est la combinaison de (au moins) deux type d’authentification:
- Ce que je sais (un mot de passe par exemple)
- Ce que je possède (une carte à puce…)
- Ce que je suis (biométrie…)
GpgAuth permet de faire de l’authentification forte en combinant la possession (d’une clef privée) et la connaissance d’un mot de passe (passphrase du certificat, éventuellement mot de passe pour le site). Cela permet de s’affranchir partiellement des outils tels que les keyloggers (software ou matériel).
GpgAuth permet également de s’assurer que le site web sur lequel vous tentez de vous authentifiez est bien le site sur lequel vous vous êtes inscrit initialement (limite les risques de phishing).
Enfin, GpgAuth peut vous permettre de faire du SLO partiel (Single Log On); c’est-à-dire que l’ensemble des services sur lesquelles vous vous connectez avec GpgAuth utilisent la même passphrase. Qui plus est, si vous changer votre passphrase, elle change pour tous vos services.
Lorsque vous vous inscrivez sur un site, il suffit de renseigner un nom d’utilisateurs, d’éventuelles informations personnelles, et vous fournissez votre clef publique (vous pouvez générez un couple clef publique/clef privée spécifique à GpgAuth). Vous récupérez par la même occasion la clef publique correspondant au GpgAuth du serveur.
Par la suite, le fonctionnement de GpgAuth est le suivant:
- Vous générez aléatoirement un contenu, que vous chiffrez avec la clef publique du serveur. Ce contenu chiffré est envoyé au serveur avec votre nom d’utilisateur. A noter que seul le serveur peut déchiffrer son contenu, à l’aide de sa clef privée: il s’agit d’un défi afin de s’assurer de l’identité du serveur.
- Le serveur reçoit les informations, et vérifie que vous disposez bien d’un compte et que votre certificat n’a pas été révoqué.
- Il déchiffre le contenu, et génère à son tour un contenu aléatoirement, qu’il chiffre avec votre clef publique qu’il connaît via votre nom d’utilisateur. Il s’agit d’un défi pour vérifier que vous êtes bien l’utilisateur que vous prétendez être. Ce contenu vous est envoyé, avec le contenu du premier défi déchiffré.
- L’utilisateur vérifie que le contenu déchiffré est bien celui qu’il a chiffré. Si c’est le cas, il déchiffre le contenu du second défi, à l’aide de sa clef privée, et envoie le contenu ainsi déchiffré au serveur.
- Le serveur vérifie qu’il s’agit bien du bon contenu; et valide l’authentification.
Pour pouvoir utilisé GpgAuth, il y a deux conditions:
- Votre navigateur doit supporter GpgAuth. C’est le cas pour Firefox grâce à l’extension FireGPG (module non activé par défaut)
- Le service Web doit offrir la possibilité d’utiliser GpgAuth
Un exemple d’authentification avec GpgAuth est disponible sur le site Web du système, et je vous propose quelques captures d’écrans sur comment cela se déroule “en vrai” avec FireGPG:






