Accueil > OpenID Connect OAuth Server par DnC > Développer > Liaison du jeton à la connexion TLS (TLS Token Binding)

Liaison du jeton à la connexion TLS (TLS Token Binding)

Un jeton ne devrait fonctionner que pour le client auquel il a été émis, sinon nous nous retrouvons avec une catastrophe majeure en matière de sécurité. La liaison du jeton est conçue pour corriger la faiblesse du "Jeton au porteur" (Bearer Token), rendant le jeton inutilisable dans une connexion TLS (HTTPS) établie par un client autre que le détenteur légitime.

Mais cela n’apporte rien de nouveau au problème de l’identification de l’application et de son intégrité.

Références

- OpenID Connect Token Bound Authentication 1.0 - draft 04
Cette spécification permet aux implémentations OpenID Connect d’appliquer la liaison jeton-TLS jeton au jeton ID OpenID Connect. Cela lie cryptographiquement le jeton d’identité aux connexions TLS sur lesquelles l’authentification s’est produite. Cette utilisation de la liaison de jetons protège le flux d’authentification contre les attaques de réexportation et de réexécution de jetons et de man-in-the-middle.

- OAuth 2.0 Token Binding.
La section 5.2 de ce document reste valable dans le cas d’OpenID Connect pour sécuriser le code d’autorisation dans le cas des clients Web Services :

5.2. Web Server Clients
Cette section décrit une méthode PKCE adaptée aux clients de serveur Web, qui lie cryptographiquement le code d’autorisation à un jeton Paire de clés de liaison sur le navigateur. Le code d’autorisation est lié à l’ID de liaison de jeton que le navigateur utilise pour fournir le code d’autorisation à un client de serveur Web, qui est envoyé au serveur d’autorisation en tant qu’ID de liaison du jeton référencé pendant la demande d’autorisation. Le client du serveur Web transmet le jeton ID de liaison au serveur d’autorisation lors de la création du jeton d’accès avec la demande de code d’autorisation. Cette liaison garantit que le code d’autorisation ne peut pas être lu ou rejoué avec succès sur le client du serveur Web à partir d’un navigateur différent de celui qui a créé la demande d’autorisation.

OpenID Connect : la bonne façon de passer l’ID de liaison

En transmettant avec le jeton JWT des informations dont l’intégrité peut-être vérifiée au moyen de la signature, OpenID Connect apporte un bénéfice essentiel par rapport à OAuth 2.0 : l’ID de liaison du jeton est incorporé à la charge utile du JWT et se trouve donc certifié par la signature.

TLS Token Binding : est-ce la panacée ?

Cette méthode permet d’assurer que les jetons sont présentés sur la même connexion TLS que celle sur laquelle l’authentification a été établie. Mais cela n’authentifie pas l’application dans tous les cas de figure, car, dans le cas d’une application cliente s’exécutant sur un navigateur, sans back-end, ce peut-être n’importe quelle autre application s’exécutant sur ce même navigateur.

Ceci est parfaitement prévisible : HTTP Over TLS est une sécurisation de la couche de transport étendue au premier niveau de la couche applicative : le serveur Web d’un côté, l’user-agent de l’autre. A l’intérieur de l’user-agent, les applications sont à l’extrémité du même canal et ne peuvent être distinguées par ce seul moyen.

Il existe des informations complémentaires, connectez vous pour les voir.