
Uma extensão do Burp Suite que implementa o rascunho Signing HTTP Messages draft-ietf-httpbis-message-signatures-01.
HTTPSignatures para Burp SuiteHTTPSignatures é uma extensão do Burp Suite que implementa o documento preliminar da especificação Signing HTTP Messages draft-ietf-httpbis-message-signatures-01. Isso permite que os usuários do Burp Suite testem perfeitamente aplicações que exigem HTTP Signatures.
rsa-sha256 para assinar mensagens (RSASSA-PKCS1-v1_5 [RFC8017] usando SHA-256 [RFC6234]) e SHA-256 para o cabeçalho digest.Baixe o arquivo da última versão JAR e adicione-o no Burp Suite por meio da aba Extender / Extensions / Add.
Header Name, keyId e Private key file name and path estejam configurados. Veja abaixo a descrição detalhada.Header Name configurado.Após o HTTPSignatures ser configurado corretamente, a extensão do Burp Suite substituirá o valor do cabeçalho HTTP configurado na definição Header Name (ex.: Signature) por uma nova assinatura para cada requisição HTTP enviada por meio do Burp Proxy, Repeater, Intruder e Scanner.

A extensão do Burp Suite deve ser configurada antes de poder ser usada. A configuração do HTTPSignatures pode ser encontrada no menu do Burp depois que ela é carregada (geralmente à direita do menu Help). O Header Name, o keyId e o Private key file name and path precisam estar configurados corretamente para que a extensão funcione. As demais configurações podem ser ajustadas opcionalmente.
Header Name: (valores de exemplo: Authorization, Signature): O nome do cabeçalho da requisição HTTP que contém a assinatura. O rascunho do IETF usa o nome de cabeçalho Signature. O Oracle Cloud (OCI) usa o nome de cabeçalho Authorization.
keyId: O parâmetro keyId é uma string US-ASCII usada por um verificador para identificar e/ou obter a chave de verificação da assinatura. Valores de exemplo podem ser https://mastodon.example.com/users/myUser (para ActivityPub) ou ocid1.tenancy.oc1.../ocid1.user.oc1.../{fingerprint} para OCI.
Private key file name and path: O caminho completo e o nome do arquivo que contém a chave privada (ex.: /home/${USER}/private_key.pem).
Digest Header Name: O nome do cabeçalho que contém o digest. Deve ser x-content-sha256 (para OCI) ou digest para a maioria das outras implementações.
Header Names to Sign: GET: Os nomes de cabeçalho a incluir nas requisições GET (ex.: date (request-target) host). O valor (request-target) é um identificador especial composto pelo método da requisição e pelo caminho e query da URI da requisição (ex.: get /foo?param=value).
Header Names to Sign: HEAD: Os nomes de cabeçalho a incluir nas requisições HEAD (ex.: date (request-target) host).
Header Names to Sign: DELETE: Os nomes de cabeçalho a incluir nas requisições DELETE (ex.: date (request-target) host).
Header Names to Sign: PUT: Os nomes de cabeçalho a incluir nas requisições PUT (ex.: date (request-target) host content-length content-type digest).
Header Names to Sign: POST: Os nomes de cabeçalho a incluir nas requisições POST (ex.: date (request-target) host content-length content-type digest).
Include query parameters in Signature: Este valor booleano especifica se os parâmetros de query (ex.: ?param=value) devem ser incluídos na assinatura. Embora o padrão do rascunho especifique que os parâmetros de query fazem parte do identificador (request-target), nem todas as implementações incluem parâmetros de query. O valor padrão é true.
Include the port in Signature: Algumas implementações não incluem a porta no cabeçalho host (ex.: localhost:8080). Esta configuração permite remover a porta do valor do cabeçalho host se definida como false. O valor padrão é true.
A configuração do HTTPSignatures permite configurar vários perfis em abas. Crie uma nova aba clicando na aba .... Você pode nomear as abas clicando duas vezes em uma aba. Para salvar uma aba, clique no botão "Save". Para marcar uma aba como o perfil ativo, clique no botão "Use this profile". A aba ativa (perfil) é marcada com fonte e borda vermelhas.
A seção de configuração global contém configurações que se aplicam a todos os perfis.
Enable the extension for the following Burp Suite tools: A extensão pode ser ativada ou desativada para as seguintes ferramentas do Burp Suite:
O proxy fica desativado por padrão. As outras ferramentas ficam ativadas por padrão. A ferramenta de proxy normalmente só deve ser ativada ao usar o recurso de interceptação. A extensão não atualizará a assinatura quando estiver desativada.
Enable Debug Logs: Marcar esta caixa de seleção exibirá logs de depuração na saída padrão. A saída pode ser configurada no Burp Suite em Extender -> Extensions e, em seguida, selecione a extensão Signing HTTP Messages. Na aba Output, você pode selecionar onde a saída padrão será exibida. O padrão é Shown in UI, em que a saída será exibida dentro do Burp Suite.
ActivityPub usa HTTP Signatures para autenticação e autorização servidor a servidor.
Signaturehttps://mastodon.online/users/viktor. Você pode usar curl para recuperar a chave: 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 digesttruetrueTodas as requisições de API do Oracle Cloud Infrastructure (OCI) exigem HTTP Signatures. A implementação é baseada no rascunho da especificação com algumas modificações.
Authorization<TENANCY OCID>/<USER OCID>/<KEY FINGERPRINT>, ex.: 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-sha256truetrueHTTPSignatures no IntelliJ IDEA.out/artifacts/HTTPSignatures_jar/HTTPSignatures.jar.mvn package assembly:single.target/HTTPSignatures-1.0-SNAPSHOT-jar-with-dependencies.jar.Três dependências são necessárias para compilar o projeto Java: