Aller au contenu

URI : Uniform Resource Identifier

Réseau

URI : Uniform Resource Identifier, chaîne normalisée qui identifie une ressource, qu'elle soit sur le Web ou ailleurs. « L'adresse universelle qui désigne une chose sans forcément dire où la trouver », par analogie avec un numéro de sécurité sociale, qui identifie une personne sans indiquer son domicile, ce qui n'a jamais empêché personne de vouloir s'y rendre.

Syntaxe : La RFC 3986, publiée en 2005, définit la forme générale : un schéma (https, mailto, urn, pkcs11…), puis selon les cas une autorité, un chemin, une requête et un fragment. Une URL est une URI qui indique aussi comment atteindre la ressource ; toute URL est une URI, la réciproque n'est pas vraie.

URI PKCS#11 : La RFC 7512 définit le schéma pkcs11:, qui désigne un objet dans un module cryptographique par des attributs comme token, object ou type. Un pipeline de signature y référence une clé au lieu de lire un fichier de clé. La même norme prévoit un attribut pin-value qui place le code PIN en clair dans l'URI, commodité qui a le mauvais goût de finir dans les journaux.

Divergences d'analyse : Deux bibliothèques peuvent découper différemment une même URI (caractères encodés, arobase dans l'autorité, barres obliques inverses). Un filtre qui valide l'hôte avec un analyseur et un client qui se connecte avec un autre ouvrent la voie à des attaques SSRF.

Ce qui arrive si on s'en passe

Une URI PKCS#11 qui embarque le code PIN dans l'attribut pin-value finit dans les variables du pipeline, les journaux de compilation et l'historique du dépôt, et quiconque la lit peut utiliser la clé de signature sans jamais l'extraire du module. Côté application, valider une URI avec un analyseur et la consommer avec un autre permet à un attaquant de faire passer une adresse interne pour une adresse autorisée. Dans les deux cas, la ressource protégée est désignée avec une précision parfaite, à la mauvaise personne.

Explication de la marmotte

Une URI est une manière standard d'écrire le nom d'une ressource, comme une page web, une adresse courriel ou une clé stockée dans une puce sécurisée. Les adresses de sites que l'on tape dans le navigateur en sont un cas particulier. Certaines URI servent à désigner une clé secrète sans la recopier, ce qui est plus sûr. Mais si l'on y ajoute le code secret de la puce, ce code risque de se retrouver écrit partout où l'URI passe.

Où ce terme est utilisé

← Tout le glossaire