EIVUS

SSL pinning para clientes mobile e API

Fixar certificados ou chaves públicas para evitar MITM; rotação e fallback.

Voltar ao blog

Pinning de certificado ou chave reduz risco de MITM em apps sensíveis. Planeje rotação e expiração dos pins; suporte pins de backup. Equilibre segurança e carga operacional. Use junto com TLS 1.2+ e HSTS.

O que o pinning faz

  • MITM: Sem pinning, o cliente confia em qualquer cert que encadeie a uma CA confiável. Um atacante com uma CA (ou rede comprometida) pode apresentar um cert falso e interceptar tráfego. Pinning restringe o cliente a aceitar apenas cert(s) ou chave(s) pública(s) específicos.
  • Onde: Apps móveis (iOS/Android) e às vezes clientes de API. Navegadores em geral não suportam pinning (HPKP foi descontinuado). Use para app-to-backend ou API-to-API quando você controla ambos os lados.
  • O que fixar: Pin de certificado (hash do cert) ou pin de chave pública (hash da chave pública). Pin de chave sobrevive à renovação do cert com a mesma chave; pin de cert muda quando você rotaciona o cert. Pin de backup permite um segundo cert/chave confiável para rotação.

Rotação e fallback

  • Expiração: Pins expiram ou você rotaciona certs. Se o app tiver só um pin e o cert mudar, o app falhará até você enviar uma atualização com o novo pin. Tenha sempre pelo menos um pin de backup.
  • Rollout: Antes de rotacionar: adicione o novo cert/chave e fixe no app (backup pin). Envie atualização do app. Após adoção suficiente, torne o novo pin primário e remova o antigo. Depois rotacione o cert no servidor.
  • Carga operacional: Pinning amarra releases do app ao ciclo de vida do cert. Planeje calendário de rotação e teste em staging.

Boas práticas

  • TLS 1.2+: Use TLS forte e desabilite cifras fracas. Pinning não substitui TLS; adiciona uma segunda verificação.
  • HSTS: No servidor, ative HSTS. Para mobile/API, pinning é a camada extra.
  • Escopo: Fixe apenas o(s) host(s) que você precisa. Não fixe APIs de terceiros que você não controla.
  • Falha: Se a verificação do pin falhar, não faça fallback silencioso para sem pinning. Falhe fechado ou mostre erro claro.

Resumo

Pinning de certificado ou chave reduz risco de MITM. Planeje rotação e expiração; suporte pins de backup. Equilibre segurança e carga operacional. Use com TLS 1.2+ e HSTS.

Clientes que confiam na gente