Pular para o conteúdo principal

Questão de Segurança da Informação — OAuth — FCC 2026

Segurança da InformaçãoOAuth
Código
fc141923
Banca
FCC
Órgão
ARTESP
Ano
2026
Cargo
Esp RT ( )

Uma empresa municipal de transporte está expondo uma API de mobilidade para integração com aplicativos de terceiros (rotas, recarga de créditos, emissão de recibos) e para quiosques de autoatendimento em estações de metrô. A arquitetura de segurança foi redesenhada com base em OAuth 2.1. A equipe de segurança da informação precisa definir uma estratégia de emissão e uso de access tokens e refresh tokens para minimizar o impacto de roubo de dispositivos (celulares dos passageiros) e comprometimento de quiosques, mantendo boa experiência de uso.

 

A configuração de tokens e controles de segurança que está mais alinhada às recomendações de OAuth 2.1 e às melhores práticas de proteção de APIs, nesse contexto, é:

  1. AEmitir tokens de acesso no formato JWT com validade de 24 horas e tratá-los como chaves de API, dispensando assim mecanismos adicionais de revogação ou detecção de uso indevido.
  2. BConfigurar tokens de acesso com vida curta, utilizar refresh tokens com rotação a cada uso e revogação automática em caso de reutilização, aplicar escopos específicos por tipo de cliente e, para clientes de alto risco, vincular tokens ao cliente por mTLS ou DPoP.
  3. CEmitir tokens de acesso com validade de um ano para os aplicativos móveis, não utilizando refresh tokens, com o objetivo de reduzir a carga sobre o Authorization Server e evitar renovações frequentes.
  4. DFornecer refresh tokens de longa duração, reutilizáveis e compartilhados entre múltiplos dispositivos do passageiro, permitindo acesso offline prolongado às APIs de bilhetagem, independentemente do dispositivo, e vincular os tokens por mTLS ou DPoP.
  5. EPermitir o uso de refresh tokens nos quiosques, armazenando-os em texto claro em banco de dados local, confiando na segmentação de rede e em controles físicos dos terminais para impedir abuso.
Revelar gabarito e comentário

GabaritoB — Configurar tokens de acesso com vida curta, utilizar refresh tokens com rotação a cada uso e revogação automática em caso de reutilização, aplicar escopos específicos por tipo de cliente e, para clientes de alto risco, vincular tokens ao cliente por mTLS ou DPoP.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

OAuth 2.1: estratégia de tokens para APIs de mobilidade

Gabarito: letra B. A alternativa correta combina as recomendações centrais do OAuth 2.1 e das melhores práticas de segurança de APIs: access tokens de vida curta, refresh tokens com rotação e revogação automática em caso de reutilização, escopos específicos por tipo de cliente e, para clientes de alto risco, vinculação do token ao cliente via mTLS ou DPoP. Essa combinação minimiza o impacto do roubo de dispositivos e do comprometimento de quiosques, pois limita a janela de uso de um token roubado e permite detectar e revogar o abuso.

O OAuth 2.1 é uma consolidação das melhores práticas do OAuth 2.0, incorporando recomendações de segurança que antes estavam em documentos separados (como o BCP 6749 e o RFC 9700). Seu foco é reduzir a superfície de ataque de tokens, especialmente em cenários com clientes públicos (aplicativos móveis) e dispositivos que podem ser fisicamente comprometidos, como quiosques de autoatendimento. O protocolo define quatro atores principais: o Resource Owner (usuário dono dos dados), o Client (aplicação que quer acessar os recursos), o Authorization Server (emite os tokens) e o Resource Server (protege os recursos e valida os tokens).

A lógica por trás da estratégia correta é o princípio do menor privilégio combinado com a redução do tempo de exposição. Um access token de vida curta (minutos, não horas) significa que, mesmo se for roubado, o atacante tem uma janela pequena para usá-lo. O refresh token, por sua vez, é a chave para obter novos access tokens sem exigir novo login, mas precisa ser protegido com rotação: a cada uso, um novo refresh token é emitido e o antigo é invalidado. Se um atacante tentar reutilizar um refresh token já usado, o sistema detecta a reutilização e revoga a sessão inteira — é a chamada "detecção de reutilização". Isso é crucial em cenários de roubo de celular: se o dispositivo for roubado e o atacante tentar usar o refresh token, a rotação faz com que o token legítimo do usuário seja invalidado, e a revogação automática corta o acesso.

Os escopos específicos por tipo de cliente são outra camada essencial. Um aplicativo de terceiros que só precisa consultar rotas não deve receber um token com permissão para recarregar créditos ou emitir recibos. Isso limita o dano caso um cliente específico seja comprometido. Para clientes de alto risco — como quiosques públicos, que podem ser fisicamente violados —, a vinculação do token ao cliente (sender-constrained token) via mTLS (mutual TLS) ou DPoP (Demonstration of Proof-of-Possession) impede que um token roubado seja usado em outro dispositivo, pois o Resource Server exige prova de posse de uma chave privada que só existe no dispositivo original.

A distinção que importa aqui é entre tokens "bearer" e tokens "sender-constrained". Um bearer token é como uma senha: quem o possui, usa. Se for roubado, o atacante pode usá-lo de qualquer lugar. Já um sender-constrained token (mTLS ou DPoP) exige que o cliente prove que é o dono legítimo do token, apresentando uma chave privada vinculada àquele token. Isso torna o roubo do token inútil sem a chave privada correspondente. A tabela abaixo resume a diferença:

Critério

Bearer Token

Sender-Constrained (mTLS/DPoP)

Validação do remetente

Nenhuma — quem apresenta o token, usa

Exige prova de posse de chave privada

Impacto do roubo

Token pode ser reutilizado por terceiros

Token inútil sem a chave privada

Infraestrutura necessária

Simples

Requer PKI (mTLS) ou suporte a DPoP

Uso recomendado

Clientes confiáveis, baixo risco

Clientes de alto risco, dispositivos públicos

A pegadinha que a banca explora neste tema é a tentação de simplificar a segurança em nome da experiência do usuário. Alternativas que propõem tokens de longa duração, refresh tokens reutilizáveis ou armazenamento inseguro parecem "práticas" do ponto de vista operacional, mas violam frontalmente as recomendações de segurança do OAuth 2.1. A banca também explora a confusão entre access token e refresh token, e entre autenticação e autorização. Guarde a fronteira entre "token de curta duração + rotação + revogação" e "token de longa duração + reutilização": é exatamente nela que as alternativas se dividem.

1Access token
Vida curta
Escopos por cliente
2Refresh token
Rotação a cada uso
Revogação por reutilização
3Clientes de alto risco
mTLS
DPoP
Estratégia de tokens (OAuth 2.1)
LEVELsoulevel.com.br
Estratégia de tokens (OAuth 2.1): Access token (Vida curta, Escopos por cliente); Refresh token (Rotação a cada uso, Revogação por reutilização); Clientes de alto risco (mTLS, DPoP)

Alternativa A — ❌ Incorreta

Trata os tokens JWT como chaves de API, com validade de 24 horas, e dispensa mecanismos de revogação ou detecção de uso indevido. Isso é um erro grave: um token de 24 horas roubado dá ao atacante um dia inteiro de acesso. Além disso, o OAuth 2.1 recomenda explicitamente que access tokens tenham vida curta e que mecanismos de revogação sejam implementados. A alternativa também confunde o papel de chaves de API (autenticação de cliente) com o de access tokens (autorização em nome do usuário).

Alternativa B — ✅ Correta ⟵ GABARITO

Esta é a única alternativa que segue integralmente as recomendações do OAuth 2.1: access tokens de vida curta, refresh tokens com rotação e revogação automática em caso de reutilização, escopos específicos por tipo de cliente e, para clientes de alto risco, vinculação do token ao cliente via mTLS ou DPoP. Cada elemento ataca um vetor de ataque específico: a vida curta limita a janela de uso de um token roubado; a rotação e a revogação detectam e cortam o abuso de refresh tokens; os escopos limitam o dano por cliente; e o mTLS/DPoP impede o uso do token em outro dispositivo.

Alternativa C — ❌ Incorreta

Propõe tokens de acesso com validade de um ano e sem refresh tokens. Isso é o oposto do recomendado: tokens de longa duração aumentam drasticamente o impacto de um roubo, e a ausência de refresh tokens não elimina a necessidade de renovação — apenas força o usuário a refazer o login com frequência, prejudicando a experiência. A justificativa de "reduzir a carga sobre o Authorization Server" não se sustenta frente ao risco de segurança.

Alternativa D — ❌ Incorreta

Fornece refresh tokens de longa duração, reutilizáveis e compartilhados entre múltiplos dispositivos. Isso viola o princípio da rotação e da revogação: um refresh token reutilizável, se roubado, dá acesso contínuo ao atacante. Compartilhar o mesmo refresh token entre dispositivos também é problemático, pois um dispositivo comprometido compromete todos os outros. A vinculação por mTLS/DPoP não compensa a falta de rotação e a reutilização.

Alternativa E — ❌ Incorreta

Armazenar refresh tokens em texto claro em banco de dados local é uma violação grave de segurança. Mesmo com segmentação de rede e controles físicos, um quiosque comprometido expõe os tokens diretamente. A alternativa ignora a recomendação de armazenar tokens de forma segura (criptografados, em hardware seguro) e de usar sender-constrained tokens para dispositivos de alto risco.

Gabarito: letra B

Link permanente: /questoes/fc141923