Come si configura il Web Bot Auth per il mio bot? Per iniziare, usa il Generatore chiavi Web Bot Auth per creare una coppia di chiavi Ed25519. Inserisci l’origine HTTPS che ospiterà il directory delle chiavi (ad esempio, https://bot.mio-sito.it) e un host di esempio (ad esempio, www.esempio.it). Scegli una durata per la chiave (nessuna scadenza, 30 giorni, 90 giorni o 365 giorni) e genera le chiavi. Scarica la chiave privata e pubblica il directory JSON nel percorso /.well-known/http-message-signatures-directory. Infine, firma ogni richiesta del bot con la chiave privata, includendo le intestazioni Signature e Signature-Input.
Il servizio è gratuito? Serve un account? Sì, il generatore è completamente gratuito e non richiede registrazione. Le chiavi vengono generate localmente nel browser tramite Web Crypto e non vengono mai trasmesse a nessun server. Questo garantisce la massima privacy, ma significa anche che le chiavi scompaiono se si ricarica la pagina: è responsabilità dell’utente scaricarle e conservarle in modo sicuro.
Cos’è il keyid e come viene calcolato? Il keyid è un identificativo univoco della chiave pubblica, calcolato come impronta SHA-256 della chiave in formato JWK (RFC 7638). Il risultato viene codificato in base64url e usato come valore del parametro keyid nelle firme. Ad esempio, se la chiave pubblica in JWK è:
{
"kty": "OKP",
"crv": "Ed25519",
"x": "oB13Vqn5Z0JXZ1zZ1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Z1Y"
}
l’impronta SHA-256 di questo oggetto (ordinato alfabeticamente e senza spazi superflui) sarà il keyid. Questo valore consente ai siti di individuare rapidamente la chiave pubblica corretta nel directory.
Perché viene usato l’algoritmo Ed25519? Ed25519 è l’algoritmo di firma digitale raccomandato dalle specifiche IETF per le HTTP Message Signatures (RFC 9421). Offre diversi vantaggi: - Chiavi piccole: una chiave pubblica Ed25519 occupa solo 32 byte, contro i 64 byte di RSA-2048. - Firme veloci: la generazione e la verifica delle firme sono più rapide rispetto ad algoritmi come RSA o ECDSA. - Determinismo: le firme Ed25519 sono deterministiche, il che significa che la stessa chiave e lo stesso messaggio produrranno sempre la stessa firma, semplificando il debugging. - Sicurezza: Ed25519 è resistente a diversi tipi di attacchi crittografici, inclusi quelli basati su timing.
Cos’è la signature base e perché è importante? La signature base è il testo esatto che viene firmato con la chiave privata. Si costruisce concatenando i componenti coperti dalla firma, ciascuno su una riga separata, nel formato:
"nome-componente": valore
Ad esempio, per una richiesta GET a https://www.esempio.it/pagina, la signature base potrebbe essere:
"@method": GET
"@authority": www.esempio.it
"signature-agent": https://bot.mio-sito.it
La signature base è fondamentale per il debugging: se una firma viene rifiutata, confrontando la signature base generata dal proprio codice con quella di riferimento (fornita dal Generatore chiavi Web Bot Auth) si possono individuare errori di formattazione o componenti mancanti. Un errore comune è includere spazi aggiuntivi o caratteri non conformi, che renderebbero la firma invalida.
La mia chiave privata viene inviata al vostro server? No. Il Generatore chiavi Web Bot Auth crea la chiave privata direttamente nel browser tramite Web Crypto, una API JavaScript che esegue operazioni crittografiche localmente. La chiave non viene mai trasmessa a nessun server, né viene salvata in alcun database. Questo approccio garantisce la massima privacy, ma significa anche che le chiavi scompaiono se si ricarica la pagina. È responsabilità dell’utente scaricarle e conservarle in modo sicuro.
Ho ricaricato la pagina e la chiave è scomparsa. Cosa faccio? È normale: il generatore non salva nulla sul server né nel browser. Per recuperare la chiave, è necessario generarne una nuova e scaricarla immediatamente. Se hai perso la chiave privata, dovrai pubblicare una nuova chiave pubblica nel directory e aggiornare il codice del bot per usare la nuova chiave. Per evitare questo problema in futuro, conserva la chiave privata in un gestore di segreti o in un file crittografato.
Il mio browser non riesce a generare le chiavi o l’origine viene rifiutata. Perché? Il generatore richiede un browser moderno (Chrome, Firefox o Safari aggiornati) che supporti l’algoritmo Ed25519 tramite Web Crypto. Se il browser è obsoleto, non sarà possibile generare le chiavi. Inoltre, l’origine HTTPS inserita deve essere valida: non può contenere percorsi (ad esempio, https://bot.mio-sito.it/chiavi non è valido; deve essere https://bot.mio-sito.it). Assicurati anche che il sito sia raggiungibile tramite HTTPS, non HTTP.
Conviene scegliere una scadenza per la chiave o nessuna? Dipende dalle esigenze operative. Una chiave senza scadenza è più comoda, perché non richiede rotazioni frequenti, ma aumenta il rischio di abuso se la chiave privata viene compromessa. Una scadenza (ad esempio, 90 giorni) costringe a ruotare periodicamente le chiavi, migliorando la sicurezza, ma richiede una gestione più attenta. In generale, è consigliabile impostare una scadenza per chiavi usate in produzione, mentre per test o ambienti di sviluppo si può optare per nessuna scadenza.