Skip to content

M-03: Token timing attack parcial — comparação de tamanho vaza informação #339

@ElioNeto

Description

@ElioNeto

🟡 Médio | Segurança | Auth

Problema

constant_time_compare compara strings hex (SHA-256) byte a byte (constant-time), mas a.len() != b.len() vaza informação de tamanho do hash.

Impacto

Extremamente baixo em prática (atacante precisaria de >10^6 requisições para extrair 64 chars), mas quebra a premissa de constant-time.

Evidência

src/api/auth/token.rs:131-138: if a.len() != b.len() { return false; }

Recomendação

Usar crate subtle ou constant_time_eq para comparação de bytes. Armazenar hash como [u8; 32] em vez de hex string.

Validação

validate_token com tokens de diferentes tamanhos deve levar o mesmo tempo (±5%).

Prioridade: Média

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions