
Un'estensione di Burp Suite che implementa la bozza draft-ietf-httpbis-message-signatures-01 dello standard Signing HTTP Messages.
HTTPSignaturesHTTPSignatures è un'estensione Burp Suite che implementa la bozza di specifica Signing HTTP Messages draft-ietf-httpbis-message-signatures-01.
Ciò consente agli utenti di Burp Suite di testare senza soluzione di continuità applicazioni che richiedono le HTTP Signatures.
rsa-sha256 per firmare i messaggi (RSASSA-PKCS1-v1_5 [RFC8017] che utilizza SHA-256 [RFC6234]) e SHA-256 per l'header digest.Scaricare il file dell'ultima release JAR e aggiungerlo in Burp Suite tramite Extender Tab / Extensions / Add.
Header Name, keyId e Private key file name and path. Vedere la descrizione dettagliata di seguito.Header Name configurato.Dopo che HTTPSignatures è stato configurato correttamente, l'estensione Burp Suite sostituirà il valore dell'header HTTP configurato nell'impostazione Header Name (ad esempio Signature) con una nuova firma per ogni richiesta HTTP inviata tramite Burp Proxy, Repeater, Intruder e Scanner.

L'estensione Burp Suite deve essere configurata prima di poter essere utilizzata.
La configurazione di HTTPSignatures si trova nel menu di Burp dopo che l'estensione è stata caricata (di solito a destra del menu Help).
Header Name, keyId e Private key file name and path devono essere configurati correttamente affinché l'estensione funzioni.
Le impostazioni rimanenti possono essere eventualmente modificate.
Header Name: (valori di esempio: Authorization, Signature): il nome dell'header della richiesta HTTP che contiene la firma.
La bozza IETF utilizza il nome di header Signature. Oracle Cloud (OCI) utilizza il nome di header Authorization.
keyId: il parametro keyId è una stringa US-ASCII utilizzata da un verificatore per identificare e/o ottenere la chiave di verifica della firma.
Alcuni esempi di valori possono essere https://mastodon.example.com/users/myUser (per ActivityPub) o ocid1.tenancy.oc1.../ocid1.user.oc1.../{fingerprint} per OCI.
Private key file name and path: il percorso completo e il nome del file contenente la chiave privata (ad esempio /home/${USER}/private_key.pem).
Digest Header Name: il nome dell'header che contiene il digest. Deve essere x-content-sha256 (per OCI) oppure digest per la maggior parte delle altre implementazioni.
La configurazione di HTTPSignatures consente di configurare più profili in schede.
Creare una nuova scheda facendo clic sulla scheda ....
È possibile rinominare le schede facendo doppio clic su una scheda.
Per salvare una scheda, fare clic sul pulsante "Save".
Per contrassegnare una scheda come profilo attivo, fare clic sul pulsante "Use this profile".
La scheda attiva (profilo) è contrassegnata con testo e bordo rossi.
La sezione di configurazione globale contiene le impostazioni che si applicano a tutti i profili.
Enable the extension for the following Burp Suite tools: l'estensione può essere abilitata o disabilitata per i seguenti strumenti Burp Suite:
Il proxy è disabilitato per impostazione predefinita. Gli altri strumenti sono abilitati per impostazione predefinita. Il proxy dovrebbe di solito essere abilitato solo quando si utilizza la funzione di intercettazione. L'estensione non aggiornerà la firma quando è disabilitata.
Enable Debug Logs: abilitando questa casella di controllo verranno stampati i log di debug sull'output standard. L'output può essere configurato in Burp Suite in Extender -> Extensions, quindi selezionare l'estensione Signing HTTP Messages. Nella scheda Output è possibile selezionare dove verrà mostrato l'output standard. L'impostazione predefinita è Shown in UI, dove l'output verrà visualizzato all'interno di Burp Suite.
ActivityPub utilizza le HTTP Signatures per l'autenticazione e l'autorizzazione server-to-server.
Signaturehttps://mastodon.online/users/viktor.
È possibile usare curl per recuperare la chiave: curl https://mastodon.online/users/viktor -H 'Accept: application/activity+json'|jq/home/user/private_key.pemdigestdate (request-target) hostdate (request-target) hostdate (request-target) hostdate (request-target) host content-length content-type digestdate (request-target) host content-length content-type digestTutte le richieste API Oracle Cloud Infrastructure (OCI) richiedono le HTTP Signatures. L'implementazione si basa sulla bozza di specifica con alcune modifiche.
Authorization<TENANCY OCID>/<USER OCID>/<KEY FINGERPRINT>, ad esempio ocid1.tenancy.oc1..<unique_ID>/ocid1.user.oc1..<unique_ID>/<key_fingerprint>/home/user/private_key.pemx-content-sha256date (request-target) hostdate (request-target) hostdate (request-target) hostdate (request-target) host content-length content-type x-content-sha256date (request-target) host content-length content-type x-content-sha256trueHTTPSignatures in IntelliJ IDEA.out/artifacts/HTTPSignatures_jar/HTTPSignatures.jar.mvn package assembly:single.target/HTTPSignatures-1.0-SNAPSHOT-jar-with-dependencies.jar.Per compilare il progetto Java sono richieste tre dipendenze:
Header Names to Sign: GET: i nomi degli header da includere per le richieste GET (ad esempio date (request-target) host).
Il valore (request-target) è un identificatore speciale composto dal metodo della richiesta e dal percorso e dalla query dell'URI della richiesta (ad esempio get /foo?param=value).
Header Names to Sign: HEAD: i nomi degli header da includere nelle richieste HEAD (ad esempio date (request-target) host).
Header Names to Sign: DELETE: i nomi degli header da includere nelle richieste DELETE (ad esempio date (request-target) host).
Header Names to Sign: PUT: i nomi degli header da includere nelle richieste PUT (ad esempio date (request-target) host content-length content-type digest).
Header Names to Sign: POST: i nomi degli header da includere nelle richieste POST (ad esempio date (request-target) host content-length content-type digest).
Include query parameters in Signature: questo valore booleano specifica se i parametri della query (ad esempio ?param=value) devono essere inclusi nella firma.
Sebbene la bozza di standard specifichi che i parametri della query fanno parte dell'identificatore (request-target), non tutte le implementazioni includono i parametri della query.
Il valore predefinito è true.
Include the port in Signature: alcune implementazioni non includono la porta nell'header host (ad esempio localhost:8080).
Questa impostazione consente di rimuovere la porta dal valore dell'header host se impostata su false.
Il valore predefinito è true.
truetruetrue