Weaknesses of type CWE-329
13 resultsUso de IV previsível em modo CBC
Quando você criptografa dados em modo CBC (Cipher Block Chaining) usando um vetor de inicialização (IV) previsível ou reutilizado, um atacante consegue deduzir padrões nos dados criptografados ou até recuperar o plaintext sem quebrar a chave. O IV precisa ser aleatório e único a cada criptografia; caso contrário, a segurança do CBC desaba.
Um sistema de pagamento que criptografa números de cartão em CBC sempre usando IV = 0 ou sequencial (1, 2, 3...). Um atacante observa que o mesmo cartão sempre produz o mesmo início de ciphertext e consegue montar um dicionário de cartões criptografados, ou usa análise de padrões para inferir dados sensíveis.
Gere um IV aleatório e criptograficamente seguro para cada mensagem (use SecureRandom ou equivalente da sua linguagem), transmita-o junto ao ciphertext (não é secreto, apenas deve ser imprevisível), e nunca reutilize o mesmo IV com a mesma chave. Considere usar modos modernos como GCM ou ChaCha20-Poly1305, que gerenciam isso melhor.