Segurança de Webhook (HMAC)
A segurança dos seus webhooks é fundamental para garantir que as requisições recebidas pela sua aplicação são legítimas e que os dados não foram alterados. A D4Sign oferece e recomenda diversas práticas para proteger seus endpoints de webhook.
Protegendo as Requisições
Para que nossas requisições de webhook sejam disparadas com sucesso, é preciso que sua URL de recebimento seja pública e acessível. Para protegê-la, você pode utilizar:
-
Autenticação Básica HTTP: Um esquema de autenticação simples incorporado ao protocolo HTTP. Você pode configurar a URL do seu webhook passando usuário e senha diretamente na URL.
-
Exemplo:
https://usuario:senha@www.suaurl.com/webhookd4sign
-
-
Tokens Únicos: Utilize tokens únicos e seguros (como um hash SHA256) como parte da sua URL para acesso.
-
Exemplo:
https://www.suaurl.com/webhookd4sign/TOKEN_SHA256
-
-
Requisições HTTPS: Sempre utilize endpoints HTTPS. Isso garante que a comunicação entre a D4Sign e seu servidor seja criptografada, protegendo os dados em trânsito.
HMAC: Verificação de Integridade e Autenticidade
Para um nível de segurança mais robusto, a D4Sign implementa o HMAC (Hash-based Message Authentication Code).
Introdução ao HMAC: Em criptografia, um HMAC é um tipo específico de código de autenticação de mensagem que envolve uma função hash criptográfica (neste caso, SHA256) e uma chave criptográfica secreta. Como em qualquer MAC, ele pode ser usado para verificar simultaneamente a integridade dos dados (garantindo que a mensagem não foi alterada) e a autenticidade de uma mensagem (confirmando que a requisição veio da fonte esperada, a D4Sign).
Como Funciona na D4Sign: A cada disparo de webhook, a D4Sign calcula o Hash SHA256 do UUID do documento junto com sua secret key e adiciona essa informação ao cabeçalho da requisição HTTP.
-
Exemplo do cabeçalho enviado:
Content-Hmac: sha256=a683af9ffda69010bde886fc0e30ca8c257baf5f19ec875a1e0e36ddd92da944
Sua Verificação: Para verificar se a requisição veio realmente da D4Sign e que os dados não foram comprometidos, você deverá fazer o mesmo cálculo:
-
Calcule o Hash SHA256 do UUID do documento (recebido no corpo do webhook) juntamente com a secret key (que você já conhece).
-
Compare o valor que você calculou com o valor recebido no cabeçalho
Content-Hmac
da requisição. Se os valores forem idênticos, a requisição é autêntica e íntegra.
🚧 Para ativar sua secret key: Acesse sua área de API na D4Sign e clique em "Gerar Secret Key MAC".
Ferramentas para Validar HMAC
Você pode utilizar as seguintes ferramentas online para auxiliar nos seus testes e na validação do HMAC, informando o UUID do documento e a secret key da sua conta:
Mais Referências sobre HMAC
Para aprofundar seus conhecimentos sobre HMAC, consulte as seguintes referências: