ert SOLUTIONS D’IDENTITÉ D’UTILISATEUR
Image
motif hexagonal violet

Comment fonctionne l’authentification par jeton ?

l’authentification par jeton commence par la connexion d’un utilisateur à un système, un périphérique ou une application, généralement à l’aide d’un mot de passe ou d’une question de sécurité. Un serveur d’autorisation valide cette authentification initiale, puis émet un jeton d’accès, qui est un petit élément de données permettant à une application cliente d’effectuer un appel ou un signal sécurisé vers un serveur d’API.

l’authentification par jeton fonctionne en donnant au serveur un deuxième moyen, de haute sécurité, de vérifier l’identité de l’utilisateur et l’authenticité de la demande.

Une fois que ce protocole initial d’authentification par jeton est terminé, le jeton fonctionne comme un billet tamponné : l’utilisateur peut continuer à accéder de manière transparente aux ressources pertinentes, sans avoir à se réauthentifier, pendant toute la durée du cycle de vie du jeton. Ce cycle de vie se termine lorsque l’utilisateur se déconnecte ou quitte une application, et peut également être déclenché par un protocole de temporisation.

Quels sont les avantages de l’authentification par jeton ?

L’authentification par jeton offre de nombreux avantages à de multiples parties prenantes :

  • Une expérience utilisateur transparente : au lieu de devoir saisir à nouveau ses informations d’identification et s’authentifier à chaque fois qu’il revient sur un système, une application ou une page Web, l’utilisateur conserve un accès transparent tant que le jeton reste valide (généralement jusqu’à ce que la session soit terminée par une déconnexion ou un abandon).
  • Sécurité numérique supplémentaire : l’authentification par jeton ajoute une couche de sécurité supplémentaire à l’authentification traditionnelle par mot de passe ou par serveur. Les jetons sont généralement beaucoup plus difficiles à voler, à pirater ou à compromettre qu’un mot de passe.
  • Contrôle de l’administrateur : l’authentification par jeton donne aux administrateurs un contrôle et une visibilité beaucoup plus granulaires sur chaque action et transaction de l’utilisateur.
  • Charge technique allégée : la génération de jetons pouvant être entièrement découplée de la vérification des jetons, la vérification peut être gérée par un service secondaire comme celui fourni par la solution Entrust Identity and Access Management. La charge imposée aux serveurs et périphériques internes s’en trouve considérablement réduite.

Qu’est-ce qu’un jeton d’accès ?

Les jetons d’accès ou d’authentification permettent aux utilisateurs d’accéder à un périphérique, une application ou une autre ressource numérique. Il existe aujourd’hui de nombreux types de jetons différents :

Jetons matériels

Les jetons matériels sont de petits périphériques physiques que les utilisateurs présentent pour accéder à une ressource. Les jetons matériels peuvent être connectés (par exemple, USB, carte à puce, porte-cartes à mot de passe unique) ou sans contact (par exemple, jetons Bluetooth). Ces jetons sont transportés avec l’utilisateur. Aux premiers jours de l’authentification par jeton (lire : avant les smartphones), les jetons matériels étaient la seule option. Cependant, les jetons matériels sont relativement chers, sont sujets à la perte et au vol, et nécessitent souvent un support informatique plus important.

Jetons logiciels

Les jetons logiciels, également appelés jetons déconnectés, sont véritablement sans contact et peuvent authentifier l’identité de n’importe où. Les exemples les plus courants de jetons logiciels sont maintenant les applications mobiles qui utilisent les smartphones pour faciliter l’authentification à deux facteurs (2FA), l’authentification à facteurs multiples (MFA) ou les jetons Web JSON. Les jetons logiciels constituent de plus en plus le choix dominant pour l’authentification basée sur les jetons, offrant un avantage en termes de coût réduit, de contraintes réduites pour l’utilisateur, de probabilité réduite de perte ou de vol, et de risque moindre pour les attaques de type « man-in-the-middle ».

Qu’est-ce qu’un jeton web open-source ou JSON ?

Le type de jeton déconnecté ou logiciel le plus courant est le jeton open-source - plus précisément, le jeton Web JSON (JWT). JSON est une norme open-source (RFC 7519) qui offre un protocole simple et autonome pour coder des informations sous la forme d’un objet JSON, ce qui permet de transmettre ces informations de manière efficace et sécurisée. Les JWT ont gagné en popularité car il s’agit d’objets extrêmement compacts qui peuvent être transmis de diverses manières efficaces, notamment par le biais de chaînes de requête, d’attributs d’en-tête et dans le corps d’une demande POST.

Les composants d’un jeton web open-source ou JSON

Un jeton web JSON comprend trois parties distinctes :

  • En-tête : le type de jeton et l’algorithme de chiffrement
  • Payload : les informations d’authentification pour la ressource donnée
  • Signature : une clé cryptographique pour vérifier l’authenticité des données utiles

Comment mettre en application l’authentification par jeton ?

La mise en application d’un protocole d’authentification par jeton comporte cinq étapes clés :

  1. Demande : un utilisateur saisit ses informations de connexion
  2. Vérification : le serveur vérifie les informations d’identification de l’utilisateur
  3. Soumission du jeton : Le serveur génère un jeton qui sera valide pendant une période déterminée
  4. Stockage : le jeton est stocké par le navigateur Web de l’utilisateur pour une utilisation ultérieure
  5. Expiration : le jeton reste actif pendant une période donnée

5 étapes pour mettre en œuvre l’authentification par jeton

Quand l’authentification par jeton est-elle recommandée ?

Dans de nombreux cas, l’authentification par mot de passe ou par serveur est plus que suffisante pour répondre aux besoins de sécurité. Cependant, plusieurs caractéristiques indiquent une situation où la sécurité, le contrôle et le confort d’utilisation supplémentaires de l’authentification par jeton sont particulièrement utiles :

  • Systèmes/ressources qui accordent fréquemment un accès temporaire : si votre base d’utilisateurs varie fortement en fonction du jour ou de l’heure, le protocole traditionnel d’octroi puis de retrait de l’accès temporaire peut être excessivement lourd en termes de temps, de coût et de technologie. Les jetons peuvent constituer une solution dynamique, agile et rentable pour un accès temporaire sécurisé et transparent.
  • Systèmes/ressources nécessitant un contrôle d’accès granulaire : si vous devez contrôler l’accès à un niveau beaucoup plus granulaire–par exemple, accorder l’accès à des parties spécifiques d’un document ou accorder des privilèges spécifiques de modification ou d’utilisation–l’authentification par mot de passe ne suffira pas. L’authentification par jeton est idéale pour ces privilèges beaucoup plus détaillés et un contrôle administratif plus granulaire.
  • Systèmes/ressources présentant un risque élevé de piratage ou de compromission : si votre ressource numérique contient des informations particulièrement sensibles, de valeur ou protégées, l’authentification par jeton offre une avancée significative par rapport à l’authentification par mot de passe.
  • Systèmes/ressources hautement réglementés : dans le même ordre d’idées que le point précédent, si votre ressource numérique contient des informations sensibles qui sont protégées par des exigences de confidentialité des données ou d’autres réglementations, ces réglementations stipulent probablement que l’authentification doit aller au-delà des mots de passe de base. L’authentification par jeton, lorsqu’elle est configurée correctement, peut répondre aux exigences de conformité pour une protection à haut niveau de sécurité.

Meilleures pratiques pour une authentification par jeton à haut niveau d’assurance

Bien que l’authentification par jeton constitue sans aucun doute une avancée majeure par rapport à l’authentification traditionnelle par mot de passe, le jeton est toujours considéré comme un « jeton porteur », c’est-à-dire que l’accès est accordé à quiconque détient le jeton. Cela signifie que même les jetons logiciels tels que les applications mobiles sont toujours susceptibles d’être volés ou compromis : si une personne malveillante entre en possession d’un jeton, elle peut l’utiliser pour obtenir un accès non autorisé à des ressources et des informations protégées. Pour se protéger contre ce risque résiduel de compromission et de violation, il est important de construire votre programme d’authentification par jeton autour des meilleures pratiques suivantes :

  • Préserver la confidentialité du jeton : les utilisateurs doivent traiter le jeton – qu’il s’agisse d’un matériel ou d’un logiciel – comme toute autre pièce d’identité sécurisée. Cela signifie qu’il doit être stocké de manière sûre et sécurisée, ne jamais être partagé et n’être révélé qu’aux services vérifiés, afin d’éviter toute perte ou tout vol.
  • Simplifier la charge utile du jeton : les jetons sont conçus pour utiliser le strict minimum d’informations pour authentifier un utilisateur. S’ils sont codés, ils sont aussi facilement décodables par des acteurs malveillants. Pour cette raison, ne placez jamais d’informations sensibles ou protégées dans la charge utile du jeton – et essayez de minimiser les revendications de la charge utile. L’objectif est de minimiser les demandes de données utiles. Cela contribuera également à améliorer la vitesse et les performances.
  • Définir l’expiration du jeton et activer la révocation du jeton : un jeton est généralement configuré pour expirer automatiquement lorsqu’un utilisateur se déconnecte ou quitte définitivement le système. Mais techniquement, sans ce déclencheur de fin de session, un jeton signé n’a pas d’expiration intégrée. Pour vous protéger contre les compromissions, vous devez définir une expiration par défaut pour tous les jetons et mettre en place un protocole pour révoquer les jetons si nécessaire.
  • Toujours utiliser des connexions HTTPS : les connexions non sécurisées rendent incroyablement facile l’interception et le vol de jetons en transit. Utilisez toujours des connexions HTTPS lors de la transmission des jetons vers et depuis le serveur de vérification des jetons.
  • Envisagez une ou plusieurs couches de sécurité supplémentaires : en fonction de vos exigences de sécurité, il peut être nécessaire d’ajouter des protocoles de sécurité et d’authentification supplémentaires en plus de l’authentification de base par jeton. Par exemple, certains cas d’utilisation ajoutent un deuxième système de vérification des jetons qui garantit spécifiquement que tous les jetons sont générés par le bon serveur.