implementing-jwt-signing-and-verification
Implementa assinatura e verificação segura de JWT (JSON Web Tokens). Protege contra ataques comuns e garante a validação correta das claims.
O que ela faz
Esta ferramenta ajuda a criar e verificar tokens de segurança chamados JWT. Eles são usados para garantir que apenas pessoas autorizadas acessem informações em sites e aplicativos, protegendo contra hackers.
Quando usar
- ✓Ao configurar a segurança de um site ou aplicativo.
- ✓Ao verificar se os tokens de acesso estão corretos.
- ✓Ao proteger dados sensíveis contra acesso não autorizado.
Exemplo do que pedir para a IA
“Verifique este token JWT para garantir que ele é seguro e não foi alterado.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta usa métodos criptográficos para assinar os tokens quando são criados, garantindo sua autenticidade. Ao receber um token, ela usa a mesma criptografia para verificar se ele é válido e se não foi modificado.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-jwt-signing-and-verificationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/implementing-jwt-signing-and-verification/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Implementando Assinatura e Verificação de JWT
Visão Geral
JSON Web Tokens (JWT), definidos na RFC 7519, são tokens compactos e seguros para URL, usados para autenticação e autorização em aplicações web. Esta habilidade abrange a implementação segura de assinatura de JWT com algoritmos HMAC-SHA256, RSA-PSS e EdDSA, juntamente com verificação, expiração de token, validação de claims e defesa contra ataques comuns de JWT (confusão de algoritmo, algoritmo none, injeção de chave).
Quando Usar
- Ao implantar ou configurar capacidades de assinatura e verificação de JWT em seu ambiente
- Ao estabelecer controles de segurança alinhados a requisitos de conformidade
- Ao construir ou melhorar a arquitetura de segurança para este domínio
- Ao realizar avaliações de segurança que exigem esta implementação
Pré-requisitos
- Familiaridade com conceitos e ferramentas de criptografia
- Acesso a um ambiente de teste ou laboratório para execução segura
- Python 3.8+ com as dependências necessárias instaladas
- Autorização apropriada para quaisquer atividades de teste
Objetivos
- Implementar assinatura de JWT com HS256, RS256, ES256 e EdDSA
- Verificar assinaturas de JWT e validar claims padrão
- Implementar expiração de token, validação "not-before" (não antes) e de audiência
- Defender contra ataques de confusão de algoritmo e algoritmo none
- Implementar rotação de chaves de JWT com JWK Sets
- Construir um middleware de autenticação completo
Conceitos Chave
Algoritmos de JWT
| Algoritmo | Tipo | Chave | Nível de Segurança |
|---|---|---|---|
| HS256 | Simétrico (HMAC) | Segredo compartilhado | 128 bits |
| RS256 | Assimétrico (RSA) | Par de chaves RSA | 112 bits |
| ES256 | Assimétrico (ECDSA) | Par de chaves P-256 | 128 bits |
| EdDSA | Assimétrico (Ed25519) | Par Ed25519 | 128 bits |
Ataques Comuns de JWT
- Confusão de algoritmo: Trocar de RS256 para HS256, usando a chave pública como segredo HMAC
- Algoritmo none: Definir alg=none para contornar a verificação de assinatura
- Injeção de chave: Embutir a chave no cabeçalho JWK
- Segredos fracos: Força bruta em segredos HMAC curtos
- Replay de token: Reutilizar tokens válidos sem expiração
Considerações de Segurança
- Sempre valide o cabeçalho do algoritmo contra uma lista de permissões (allowlist)
- Nunca aceite alg=none em produção
- Use algoritmos assimétricos (RS256, ES256) para sistemas distribuídos
- Defina tempos de expiração curtos (15 min para tokens de acesso)
- Implemente um mecanismo de atualização de token (refresh token)
- Armazene segredos de forma segura (não no código fonte)
Critérios de Validação
- A assinatura de JWT produz tokens válidos para todos os algoritmos
- A verificação de assinatura rejeita tokens adulterados
- Tokens expirados são rejeitados
- Ataque de confusão de algoritmo é prevenido
- Algoritmo none é rejeitado
- Rotação de chaves JWK funciona corretamente
- A validação de claims impõe todos os claims necessários
Perguntas frequentes
O que é um JWT?
JWT significa JSON Web Token. É como um crachá digital que prova quem você é para um site ou aplicativo, de forma segura e compacta.
Por que usar diferentes algoritmos como HS256, RS256?
Cada algoritmo usa um tipo diferente de 'chave' secreta para assinar e verificar os tokens. Alguns usam uma chave secreta compartilhada (HS256), enquanto outros usam um par de chaves (uma pública e uma privada) para maior segurança em sistemas maiores (RS256, ES256, EdDSA).
O que são ataques como 'confusão de algoritmo' ou 'nenhum algoritmo'?
São tentativas de hackers de enganar o sistema. Por exemplo, fazer o sistema pensar que um token foi assinado com um método seguro quando na verdade não foi, ou tentar enviar um token sem nenhuma assinatura para burlar a segurança.
Detalhes
Descrição original do autor
Implements secure JWT (RFC 7519) signing and verification using HMAC-SHA256, RSA-PSS, ES256, and EdDSA, including token expiration, claims validation, and defenses against algorithm-confusion, none-algorithm, and key-injection attacks. Use when adding or hardening JWT-based authentication/authorization, or when auditing token verification code for common JWT vulnerabilities.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5902
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC