0Pricing
Cyber Security Academy · Aula

Ataques a tokens e reforço de segurança

Defenda fluxos de autenticação contra abusos.

Ataques a tokens e reforço de segurança é uma aula grátis de Cyber Security Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cyber Security Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cyber Security Academy inclui 4 aulas no total.

Tokens como credenciais

Na autenticação moderna, tokens são credenciais. Quem possui um token de portador válido é tratado como a parte autenticada até que ele expire ou seja revogado.

  • Isso faz com que o roubo de tokens equivalha ao roubo de credenciais.
  • O fortalecimento concentra-se em limitar o tempo de vida dos tokens, vinculá-los a um portador e permitir uma revogação rápida.

Esta lição aborda ataques contra tokens de OAuth/OIDC/SAML e os controles de defesa que os neutralizam.

Confusão de algoritmo do JWT

Um ataque clássico contra JWT explora o cabeçalho alg.

  • alg: none, se aceito, permite que um atacante falsifique tokens sem assinatura.
  • Confusão entre RS256 e HS256: o atacante assina novamente um token usando a chave pública RSA como segredo HMAC.

Defesa: fixe o algoritmo esperado no servidor e nunca permita que o token determine qual caminho de verificação será executado.

Vulnerable: verify(token, key)  // alg taken from header
Hardened:   verify(token, key, { algorithms: ["RS256"] })
// reject alg:none, reject HS* when RS* expected

Roubo de tokens por XSS e registros

A forma mais comum de comprometer um token é simplesmente roubá-lo.

  • XSS lê tokens de localStorage ou da memória.
  • Tokens em URLs vazam pelo histórico do navegador, pelos cabeçalhos de referência e pelos registros do servidor.
  • Registro detalhado dos cabeçalhos Authorization.

Prefira cookies httpOnly, Secure e SameSite para sessões do navegador e remova tokens dos registros e das URLs.

Set-Cookie: session=...; HttpOnly; Secure; SameSite=Lax
// keeps JS (and thus XSS) from reading the token

Ataques de repetição

Um ataque de repetição reutiliza um token válido capturado para agir como a vítima.

  • Pode ser mitigado por expirações curtas, nonce de uso único (OIDC) e rastreamento do ID da asserção (SAML).
  • TLS impede a captura passiva na rede.
  • Tokens vinculados ao remetente impedem a reutilização mesmo quando são roubados.
Replay defenses:
  short exp + nonce/jti uniqueness
  TLS everywhere
  sender-constrained tokens (mTLS / DPoP)

Tokens vinculados ao remetente

Tokens de portador podem ser usados por qualquer pessoa que os possua. Tokens vinculados ao remetente associam um token à chave de um cliente específico.

  • Tokens vinculados a mTLS (RFC 8705) associam o token ao certificado TLS do cliente.
  • DPoP (RFC 9449) associa o token a uma chave de prova de posse que o cliente usa para assinar cada solicitação.

Assim, um token roubado é inútil sem a chave privada correspondente.

DPoP: each request carries a signed proof JWT
  DPoP: <proof-jwt signed with client private key>
  Authorization: DPoP <access_token>

Tempos de vida curtos e rotação de tokens de atualização

Limite o período em que qualquer token roubado pode ser útil.

  • Mantenha os tokens de acesso com curta duração (minutos).
  • Use a rotação de tokens de atualização: cada atualização emite um novo token de atualização e invalida o anterior.
  • Detecte a reutilização de um token de atualização rotacionado como sinal de roubo e revogue toda a cadeia.
On /token refresh:
  issue new RT, invalidate old RT
  if old RT presented again -> breach -> revoke family

Revogação e introspecção de tokens

JWTs autocontidos são válidos até expirarem, o que dificulta a revogação. Disponibilize mecanismos para interromper rapidamente o acesso.

  • O ponto de revogação (RFC 7009) invalida tokens de atualização e de acesso.
  • A introspecção (RFC 7662) permite que um servidor de recursos verifique o status de um token em tempo real.
  • Mantenha uma lista de bloqueio por jti para revogações críticas.
POST /introspect  token=...
  -> { "active": true, "sub": "...", "scope": "read" }
POST /revoke      token=...

Aplicação de público-alvo e escopo

Um token válido não é automaticamente autorizado para sua API. Garanta a finalidade correta.

  • Verifique aud para que um token emitido para outro serviço não possa ser repetido contra o seu.
  • Aplique o escopo por ponto de acesso; não presuma que um token válido implique acesso total.
  • Valide iss para bloquear tokens de emissores não confiáveis.

Isso impede a reutilização de tokens entre serviços e o abuso do agente confuso.

Ataques de confusão e entre provedores

Quando um cliente é compatível com vários provedores de identidade, ataques de confusão podem induzi-lo a enviar um código ou token emitido por um provedor de identidade para um ponto de acesso diferente, escolhido pelo atacante.

  • O cliente perde o controle de qual AS originou uma resposta.
  • Defesa: vincule as respostas ao emissor usando o parâmetro iss (RFC 9207) e valide state por provedor.
/authorize ... &state=<provider-bound>
callback must include &iss=<expected-AS>
client verifies iss matches the AS it started with

Armazenamento e transporte seguros

O local e a forma como os tokens são armazenados determinam sua exposição.

  • Sessões do navegador: cookies httpOnly, Secure e SameSite; evite localStorage.
  • Dispositivos móveis: chaveiro/armazenamento de chaves do OS; nunca use arquivos em texto simples.
  • Servidores: gerenciador de segredos, criptografia em repouso e privilégio mínimo com escopo limitado.
  • Sempre use TLS em trânsito; nunca incorpore tokens em cadeias de consulta.

Lista de verificação para fortalecer tokens

Reúna os controles em uma linha de base operacional.

  • Fixe os algoritmos; rejeite alg: none e ataques de confusão.
  • Valide iss, aud, exp, assinatura, nonce/estado.
  • Use TTL curto para tokens de acesso, além de rotação de tokens de atualização com detecção de reutilização.
  • Prefira tokens vinculados ao remetente (DPoP/mTLS) para APIs de alto valor.
  • Ofereça revogação e introspecção.
  • Armazene com segurança; mantenha os tokens fora das URLs e dos registros.
Hardening baseline:
  [ ] alg pinned, none rejected
  [ ] iss/aud/exp/sig/nonce validated
  [ ] short TTL + RT rotation + reuse detection
  [ ] DPoP/mTLS for sensitive scopes
  [ ] revoke + introspect available

Verificação rápida: neutralizando tokens roubados

Escolha o controle que melhor limita os danos causados pelo próprio roubo de tokens.

Recapitulação: ataques contra tokens e fortalecimento

Principais conclusões:

  • Tokens são credenciais; o roubo equivale à tomada de controle da conta.
  • Proteja JWTs fixando os algoritmos e validando iss, aud, exp, assinatura, nonce.
  • Limite a exposição com tempos de vida curtos e rotação de tokens de atualização com detecção de reutilização.
  • Tokens vinculados ao remetente (DPoP/mTLS) neutralizam tokens de portador roubados.
  • Ofereça revogação e introspecção e mantenha os tokens fora das URLs, dos registros e do localStorage.

Perguntas Frequentes

A aula “Ataques a tokens e reforço de segurança” é grátis?

Sim — o texto completo de “Ataques a tokens e reforço de segurança” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cyber Security Academy, atualize para CoddyKit PRO. O curso de Cyber Security Academy inclui 4 aulas no total.

O que vou aprender em “Ataques a tokens e reforço de segurança”?

Defenda fluxos de autenticação contra abusos. Você pratica Cyber Security Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cyber Security Academy?

Nenhuma experiência prévia é necessária. Cyber Security Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Ataques a tokens e reforço de segurança”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cyber Security Academy?

Sim. Cada aula de Cyber Security Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fluxos do OAuth 2.0
  2. OpenID Connect (OIDC)
  3. SAML e federação
  4. Ataques a tokens e reforço de segurança
← Voltar para Cyber Security Academy