SkillProgramaçãoRevisão
Análise de Tempo Constante
Analisa caminhos de código criptográfico em busca de canais laterais de tempo (timing side channels). Use ao auditar código que lida com segredos como chaves, assinaturas e senhas, onde qualquer variação de tempo dependente do segredo vaza informação.
Ações
PerfilDev
ProfundidadeAlta
IdiomaInglês (skill original)
Objetivo
Em uma frase.
Encontrar canais laterais de tempo em código de criptografia. Qualquer variação de tempo que dependa de um dado secreto vaza bits desse segredo, e a skill identifica e corrige esses vazamentos.
Aplicação
Quando
faz sentido.
Usar
- Implementar primitivas criptográficas (comparação de chaves, verificação de assinatura, descriptografia).
- Revisar comparação de senhas ou tokens.
- Revisar comparação de HMAC ou MAC.
- Trabalhar com código sensível a canais laterais (FIDO, TLS, etc.).
Não usar
- Código não criptográfico, onde o tempo normalmente não revela informação sensível.
- Como única medida de defesa — tempo constante sem um modelo de ameaças geral é incompleto.
Prompt
Instruções
para a IA.
### Padrões que vazam tempo
Reconheça os vazamentos típicos: branch condicional baseado em segredo (caminhos diferentes geram tempos diferentes); loop com saída antecipada que revela a posição de uma divergência; lookup em tabela com índice secreto (o tempo de cache revela o índice); e aritmética de tempo variável, como exponenciação modular com branches sobre bits.
### Padrões de tempo constante
Substitua por construções seguras: comparação de tempo constante que acumula diferenças com XOR e OR sem saída antecipada; seleção de tempo constante via máscara; e uso de bibliotecas verificadas como
### Processo de auditoria
Identifique as funções que lidam com segredos, rastreie o fluxo do dado secreto e, para cada branch, saída de loop ou acesso a tabela, pergunte se depende do segredo. Substitua pelo padrão de tempo constante e verifique com ferramentas como ctgrind, dudect ou timecop. Para cada achado, registre localização, descrição do vazamento, correção e verificação.
Reconheça os vazamentos típicos: branch condicional baseado em segredo (caminhos diferentes geram tempos diferentes); loop com saída antecipada que revela a posição de uma divergência; lookup em tabela com índice secreto (o tempo de cache revela o índice); e aritmética de tempo variável, como exponenciação modular com branches sobre bits.
### Padrões de tempo constante
Substitua por construções seguras: comparação de tempo constante que acumula diferenças com XOR e OR sem saída antecipada; seleção de tempo constante via máscara; e uso de bibliotecas verificadas como
subtle.ConstantTimeCompare (Go), secrets.compare_digest (Python), crypto.timingSafeEqual (Node) e OPENSSL_memcmp (C).### Processo de auditoria
Identifique as funções que lidam com segredos, rastreie o fluxo do dado secreto e, para cada branch, saída de loop ou acesso a tabela, pergunte se depende do segredo. Substitua pelo padrão de tempo constante e verifique com ferramentas como ctgrind, dudect ou timecop. Para cada achado, registre localização, descrição do vazamento, correção e verificação.
Constelação
Onde
ela vive.
Bundles que incluem
Execução
Como usar
com IA.
- 01Copie a skill (botão "Copiar skill para IA", no topo): o texto copiado já é a skill completa, não um resumo.
- 02Abra o Claude ou Claude Code e cole — a IA recebe todas as instruções e fica pronta para a tarefa.
- 03Prefere usar como arquivo reutilizável? Baixe o .zip e coloque o
SKILL.mdem.claude/skills/(Claude Code) ou anexe o arquivo no Claude (claude.ai).