Voici les réponses aux questions les plus courantes sur le Générateur de clé d’authentification Web Bot Auth et son utilisation :
Comment configurer Web Bot Auth pour mon bot ? Pour mettre en place Web Bot Auth, suivez ces trois étapes : 1. Générez une paire de clés avec le générateur. Indiquez l’origine HTTPS où sera hébergé le répertoire de clés (par exemple, https://mon-bot.com), un hôte cible pour l’exemple de signature, et une durée de validité. 2. Publiez le répertoire de clés à l’URL https://votre-domaine.com/.well-known/http-message-signatures-directory. Assurez-vous que le fichier JSON est servi avec le type MIME application/json et que la réponse est signée. 3. Signez chaque requête avec la clé privée. Utilisez les en-têtes Signature et Signature-Input pour inclure la signature, en couvrant les composants obligatoires comme @authority et signature-agent. Le générateur fournit un exemple de requête signée et une commande curl pour vous aider à démarrer.
Le générateur est-il gratuit ? Faut-il créer un compte ? Oui, le Générateur de clé d’authentification Web Bot Auth est entièrement gratuit et ne nécessite aucun compte. Aucune donnée n’est stockée sur un serveur, et la génération des clés se fait localement dans votre navigateur. Vous pouvez l’utiliser autant de fois que nécessaire, sans limitation.
*Qu’est-ce que l’identifiant de clé (key ID) et comment est-il calculé ? L’identifiant de clé (key ID) est une valeur unique qui permet d’identifier une clé publique dans le répertoire. Il est calculé comme suit : 1. La clé publique est convertie au format JWK (JSON Web Key). 2. Les paramètres du JWK sont triés par ordre alphabétique, et les valeurs sont concaténées. 3. Le résultat est haché avec l’algorithme SHA-256. 4. Le hachage est encodé en base64url* pour obtenir l’identifiant final.
Par exemple, pour une clé Ed25519, le key ID ressemble à z6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V. Cet identifiant est utilisé dans le paramètre keyid de chaque signature pour indiquer quelle clé publique doit être utilisée pour la vérification.
Pourquoi l’algorithme Ed25519 est-il utilisé ? Ed25519 est l’algorithme recommandé par les brouillons IETF de Web Bot Auth pour plusieurs raisons : - Taille réduite : Les clés Ed25519 sont plus petites que celles des algorithmes comme RSA, ce qui réduit la taille des signatures et améliore les performances. - Vitesse : Ed25519 est optimisé pour les signatures rapides, ce qui est crucial pour les bots qui envoient un grand nombre de requêtes. - Sécurité : Ed25519 offre un niveau de sécurité élevé avec une taille de clé modeste (256 bits). - Déterminisme : Contrairement à RSA, Ed25519 génère des signatures déterministes, ce qui simplifie le débogage et évite les variations inutiles.
Qu’est-ce que la base de signature ? La base de signature est le texte exact qui est signé par la clé privée pour produire la signature numérique. Elle est construite à partir des composants couverts de la requête (comme @method, @target-uri, ou signature-agent), dans un format strictement défini. Par exemple :
"@method": GET
"@target-uri": https://www.example.com/api/data
"@authority": www.example.com
"signature-agent": Web Bot Auth
La moindre différence (un espace supplémentaire, une virgule mal placée) invalidera la signature. Le générateur affiche cette base ligne par ligne, ce qui permet de la comparer avec une implémentation personnalisée pour identifier les erreurs.
Ma clé privée est-elle envoyée vers un serveur ? Non, votre clé privée n’est jamais envoyée vers un serveur. Le Générateur de clé d’authentification Web Bot Auth utilise l’API Web Crypto de votre navigateur pour générer la paire de clés directement sur votre appareil. Aucune donnée n’est transmise à un serveur externe, et la clé privée est perdue si vous actualisez la page ou fermez l’onglet. Pour conserver votre clé, vous devez la télécharger immédiatement après la génération.
J’ai actualisé la page et ma clé a disparu. Que faire ? C’est un comportement normal du générateur : aucune donnée n’est stockée localement ou sur un serveur. Si vous actualisez la page, la clé est définitivement perdue. Pour éviter cela, téléchargez toujours la clé privée (au format JWK ou PKCS#8 PEM) immédiatement après la génération. Si vous avez perdu votre clé, vous devrez en générer une nouvelle et republier le répertoire de clés.
Mon navigateur ne parvient pas à générer les clés, ou mon origine est rejetée. Pourquoi ? Plusieurs raisons peuvent expliquer ce problème : - Navigateur incompatible : L’API Web Crypto et l’algorithme Ed25519 ne sont pas supportés par tous les navigateurs. Assurez-vous d’utiliser une version récente de Chrome, Firefox, ou Safari. - Origine invalide : L’origine que vous avez saisie doit être une URL HTTPS valide, sans chemin ni fragment. Par exemple, https://mon-bot.com est valide, mais https://mon-bot.com/chemin ou http://mon-bot.com ne le sont pas. - Problème de certificat SSL : Si votre origine utilise un certificat SSL auto-signé ou invalide, le générateur peut la rejeter. Utilisez un certificat valide émis par une autorité reconnue.
Faut-il choisir une durée de validité pour la clé ou opter pour une clé sans expiration ? Le choix dépend de votre tolérance au risque et de votre capacité à gérer les rotations de clés : - Clé sans expiration : Plus simple à gérer, mais si la clé est compromise, elle peut être utilisée indéfiniment par un acteur malveillant. Cette option est adaptée aux environnements où la rotation des clés est difficile à automatiser. - Clé avec expiration : Plus sécurisée, car une clé compromise ne peut être utilisée que pendant une durée limitée. Cependant, cela nécessite de planifier et d’automatiser la rotation des clés. Les durées proposées par le générateur (30 jour, 90 jour, 365 jour) permettent de trouver un équilibre entre sécurité et maintenance.
Pour les bots critiques, il est recommandé d’utiliser une clé avec expiration et de mettre en place un processus de rotation automatique.