Skip to content
Latchkey

O que é um nonce? Um número usado uma única vez

Um nonce é um número usado uma única vez, um valor incluído em uma requisição ou mensagem para garantir que ela seja recente e não possa ser reproduzida.

Um nonce, abreviação de "number used once" (número usado uma vez), é um primitivo de segurança simples, mas poderoso. Ao incluir um valor único e imprevisível em uma requisição ou operação criptográfica, os sistemas garantem que cada troca seja recente e que uma mensagem capturada não possa ser reproduzida. Nonces aparecem em protocolos de autenticação, políticas de segurança de conteúdo e esquemas de criptografia.

O problema do replay

Se um atacante captura uma requisição válida, ele pode reenviá-la para repetir uma ação, como um pagamento ou um login. Um nonce derrota isso: como cada requisição carrega um valor único que o servidor ainda não viu, uma requisição reproduzida é reconhecida e rejeitada.

Onde os nonces aparecem

  • Handshakes de autenticação, para prevenir credenciais reproduzidas.
  • Content Security Policy, para autorizar scripts inline específicos.
  • Modos de criptografia, onde um nonce único mantém o texto cifrado imprevisível.

Nonces em criptografia

Muitos modos de criptografia exigem um nonce único por mensagem, de modo que criptografar o mesmo texto plano duas vezes não produza texto cifrado idêntico. Reutilizar um nonce nesses esquemas pode quebrar a criptografia de forma catastrófica, por isso a unicidade é inegociável.

Nonces em CSP

Uma Content Security Policy pode usar um nonce por resposta para permitir um script inline específico enquanto bloqueia todos os outros. O servidor gera um nonce novo a cada vez e o anexa à tag de script confiável, de modo que scripts injetados sem o nonce são recusados.

Nonces e CI/CD

Aplicações web que você constrói e implanta podem depender de nonces para CSP e proteção contra replay. Gerá-los corretamente (únicos, imprevisíveis, nunca reutilizados) faz parte da programação segura, e testes de segurança no CI podem verificar se os nonces de CSP são aplicados como esperado.

Acertando os nonces

Um nonce deve ser imprevisível e genuinamente único para seu escopo. Nonces previsíveis ou reutilizados minam a própria proteção que fornecem. Use uma fonte aleatória criptograficamente segura, nunca um contador que um atacante possa adivinhar.

Principais conclusões

  • Um nonce é um valor único que garante atualidade e previne replay.
  • Ele é usado em autenticação, CSP e modos de criptografia.
  • Nonces devem ser imprevisíveis e nunca reutilizados, ou falham em seu propósito.

Guias relacionados