Ir para o conteúdo

Gerador de verificador e desafio PKCE

Gere um code_verifier criptograficamente aleatório e seu code_challenge para OAuth 2.0 PKCE.

43
Saída

Gerador de verificador e desafio PKCE

Esta ferramenta gera um code_verifier PKCE e seu code_challenge correspondente para o fluxo de código de autorização OAuth 2.0, seguindo RFC 7636. Foi construída para desenvolvedores que configuram aplicações de página única, aplicações móveis ou qualquer cliente público que não pode manter com segurança um segredo de cliente e precisa de Chave de Prova para Troca de Código para proteger o código de autorização contra interceção.

O code_verifier é uma string criptograficamente aleatória construída apenas a partir dos caracteres não reservados RFC 3986 (A–Z, a–z, 0–9, "-", ".", "_", "~"), entre 43 e 128 caracteres de comprimento — escolha o comprimento exato com o controle deslizante. O método de desafio controla como code_challenge é derivado: S256 faz hash do verificador com SHA-256 e codifica em base64url o resumo, e é o que cada guia de OAuth atual e servidor de autorização espera. O método plain apenas copia o verificador para o desafio inalterado; existe na especificação para clientes restritos que não conseguem calcular SHA-256, não oferece proteção contra interceção, e esta ferramenta o marca de acordo.

A saída inclui o code_verifier e code_challenge brutos, o método escolhido, e uma string de consulta pronta — code_challenge=...&code_challenge_method=... — que pode ser inserida diretamente numa URL de requisição de autorização. Lembre-se do verificador separadamente: pertence na requisição de token posterior, não na de autorização, e um novo par deve ser gerado para cada tentativa de login em vez de ser reutilizado.

Toda a geração ocorre localmente no seu navegador, usando a fonte aleatória criptograficamente segura da API Web Crypto e implementação SHA-256 — nada é enviado ou registado em qualquer lugar. Clique em "Gerar novo par" para um verificador e desafio frescos, copie a saída ou descarregue-a como ficheiro .txt.

FAQ

O que é PKCE e por que preciso dele?
PKCE (Chave de Prova para Troca de Código, RFC 7636) protege o fluxo de Código de Autorização OAuth 2.0 para clientes que não conseguem manter um segredo, como aplicações de página única e aplicações móveis. Vincula a requisição de autorização à requisição de token com um segredo aleatório para que um código de autorização roubado não possa ser resgatado por outra pessoa.
Devo escolher S256 ou plain?
Use S256 a menos que o seu cliente genuinamente não consiga calcular SHA-256. Com plain, code_challenge é igual a code_verifier, então um atacante que intercete a requisição de autorização já tem tudo o que precisa para trocar o código — S256 é o que os servidores de autorização modernos esperam e muitas vezes o único método que aceitam.
Posso reutilizar o mesmo verificador e desafio para múltiplas autenticações?
Não. Gere um novo par para cada tentativa de autorização. O verificador é um segredo único ligado a um único fluxo, não um valor fixo que a sua aplicação hardcodeia.
Para onde vão o code_verifier e o code_challenge?
code_challenge e code_challenge_method vão na URL de requisição de autorização inicial. code_verifier é enviado mais tarde, na requisição de token que troca o código de autorização por tokens — mantenha-o na memória ou armazenamento de sessão no cliente até então.
O verificador gerado é carregado em algum lugar?
Não. A geração ocorre inteiramente no seu navegador usando a API Web Crypto. Nada é enviado para um servidor, registado ou armazenado além da sua própria sessão.