L’authentification forte par jeton s’appuie sur un protocole qui permet à un utilisateur de recevoir un jeton d’accès unique après avoir confirmé son identité. L’utilisateur bénéficie alors, pendant toute la durée de vie du jeton, d’un accès à l’application ou au site web pour lequel le jeton lui a été accordé. Il n’a ainsi plus besoin de saisir ses identifiants à chaque fois qu’il ouvre la même page web ou application, ou utilise toute autre ressource protégée par le même jeton.
Les jetons d’authentification fonctionnent à la manière d’un ticket d’entrée à validité limitée : ils accordent un accès en continu pendant leur durée de validité. Dès que l’utilisateur se déconnecte ou quitte l’application, le jeton est invalidé.
L’authentification forte par jeton est différente des mécanismes traditionnels basés sur un mot de passe ou un serveur. Les jetons constituent un deuxième niveau de sécurité et offrent aux administrateurs un contrôle accru sur l’ensemble des actions et opérations.
L’utilisation de jetons demande toutefois quelques connaissances en matière de codage. La plupart des développeurs se forment rapidement aux nouvelles techniques, mais la courbe d’apprentissage n’en est pas moins exigeante.
Rentrons maintenant dans le vif du sujet, et voyons si les jetons peuvent répondre à vos besoins et à ceux de votre entreprise.
Bref historique des jetons d’authentification
L’authentification et l’autorisation sont deux concepts différents et néanmoins liés. Avant les jetons d’authentification, les mots de passe et les serveurs étaient la norme. On s’appuyait sur des méthodes traditionnelles pour garantir que seules les personnes habilitées pouvaient accéder à certains éléments à des moments précis. Ces méthodes n’étaient toutefois pas toujours efficaces.
Prenons l’exemple des mots de passe, qui impliquent généralement le processus suivant :
- Génération manuelle. L’utilisateur invente une combinaison de lettres, de chiffres et de symboles.
- Mémoire. L’utilisateur doit garder en mémoire cette combinaison unique.
- Répétition. Chaque fois que l’utilisateur accède à une application ou à un site web, il doit saisir son mot de passe.
Le vol de mot de passe reste un phénomène courant. L’un des premiers cas répertoriés remonte d’ailleurs à 1962. Comme les gens ont du mal à se souvenir de tous leurs mots de passe, ils ont souvent recours à différentes astuces, parmi lesquelles :
- Les noter. Conserver des mots de passe sur des bouts de papier épars est une véritable bombe à retardement en termes de sécurité.
- Les réutiliser. Les gens ont tendance à utiliser le même mot de passe pour plusieurs services ou solutions. Si l’un d’entre eux est compromis, de nombreux comptes peuvent devenir vulnérables.
- Les modifier légèrement. L’utilisateur change à peine une lettre ou un chiffre lorsqu’il est invité à modifier un mot de passe.
Les mots de passe nécessitent également d’être authentifiés par un serveur. Chaque fois qu’un utilisateur se connecte, l’ordinateur crée un enregistrement pour cette opération. La mémoire nécessaire ne fait donc qu’augmenter avec le temps.
Le principe de l’authentification par jeton est différent.
Dans ce cas, un service auxiliaire contrôle une requête du serveur. Une fois la vérification effectuée, le serveur émet un jeton et répond à la requête.
L’utilisateur peut avoir un mot de passe à retenir, mais le jeton offre une autre forme d’accès bien plus difficile à dérober ou à contourner. L’enregistrement de la session ne prend quant à lui aucune place sur le serveur.
Trois types de jeton d’authentification
Tous les jetons d’authentification ont pour objet d’autoriser l’accès, mais chaque type a ses spécificités.
Les plus courants sont :
- Les jetons par connexion : clés, disques, lecteurs et autres supports physiques connectés à un système pour en permettre l’accès. Si vous avez un jour utilisé un périphérique USB ou une carte à puce pour vous connecter à un système, vous avez déjà utilisé un jeton par connexion.
- Les jetons sans contact : le terminal est suffisamment proche du serveur pour établir une connexion, mais sans contact physique. Le projet de bague biométrique de Microsoft en est un bon exemple.
- Les jetons à distance : le terminal est capable de communiquer avec le serveur sur de très longues distances, même s’il n’entre jamais en contact avec un autre dispositif. S’il vous est arrivé d’utiliser votre téléphone dans le cadre d’une authentification à deux facteurs, vous avez déjà utilisé ce type de jeton.
Dans ces trois scénarios, l’utilisateur est celui qui doit initier le processus d’authentification, en saisissant un mot de passe ou en répondant à une question. Toutefois, même s’il remplit ces étapes préliminaires sans aucun problème, l’accès ne pourra lui être accordé sans l’intervention d’un jeton d’accès.
L’authentification par jeton en quatre étapes simples
Si vous mettez en place un système d’authentification par jeton, les identifiants des utilisateurs ne seront vérifiés qu’une seule fois. Ils bénéficieront en contrepartie d’un jeton qui leur garantit un accès continu pendant une période que vous définissez vous-même.
La procédure se déroule de la manière suivante :
- Requête : l’utilisateur demande l’accès à un serveur ou à une ressource protégée. Cela peut passer par une connexion via un mot de passe ou tout autre procédé de votre choix.
- Vérification : le serveur détermine si l’accès doit ou non être accordé à cette personne. Cela peut consister à vérifier la combinaison nom d’utilisateur/mot de passe, ou bien à utiliser n’importe quel autre procédé de votre choix.
- Génération d’un jeton : le serveur communique avec le terminal d’authentification, qu’il s’agisse d’une bague, d’une clé, d’un téléphone ou de tout autre dispositif. Une fois la vérification effectuée, le serveur émet un jeton et l’envoie à l’utilisateur.
- Stockage : le navigateur de l’utilisateur conserve le jeton pendant toute la durée nécessaire.
Si l’utilisateur essaie d’accéder à une autre section du serveur, le jeton communique à nouveau avec le serveur. L’accès est alors autorisé ou refusé en fonction des caractéristiques du jeton.
Ce sont les administrateurs qui définissent les limites applicables aux jetons. Il est ainsi possible de créer des jetons à usage unique qui sont immédiatement détruits lorsque l’utilisateur se déconnecte ou bien de programmer la destruction automatique d’un jeton après une certaine durée.