Weaknesses of type CWE-1255

4 results

Comparação vulnerável a ataques por análise de consumo de energia

A fraqueza ocorre quando o código usa comparações que consomem quantidades diferentes de energia (ou tempo) dependendo de quanto do dado comparado coincide. Um atacante observando flutuações no consumo de energia consegue deduzir qual parte da comparação falhou, permitindo descobrir valores secretos (como senhas ou tokens) bit a bit, sem precisar do acesso completo ao dado.

Example

Um sistema que compara um token CSRF usando uma função padrão de igualdade de string termina a comparação assim que encontra o primeiro byte diferente. Isso permite ao atacante, monitorando consumo de energia da placa, saber qual prefixo do token está correto — reduzindo drasticamente o espaço de busca.

How to mitigate

Use comparações de tempo constante (constant-time comparison) que sempre percorrem todo o dado, independentemente de onde a diferença ocorre. Em Python, use `hmac.compare_digest()`, em Java `MessageDigest.isEqual()`, ou implemente funções que não façam retorno antecipado em caso de falha.