mediumCWE-326A02:2021

Tamano de Llave Debil

Usar llaves criptograficas mas cortas que los minimos recomendados (RSA menor a 2048 bits, AES menor a 128 bits) hace la encriptacion vulnerable a ataques de fuerza bruta con hardware moderno.

Cómo Funciona

El tamano de la llave criptografica determina directamente que tan resistente es la encriptacion a ataques de fuerza bruta. Llaves RSA menores a 2048 bits pueden ser factorizadas con clusters de computacion modernos — una llave RSA de 1024 bits fue factorizada en 2010 y llaves de 768 bits son trivialmente rompibles. Para encriptacion simetrica, DES (llaves de 56 bits) y 3DES (112 bits efectivos) estan deprecados. AES-128 es el tamano de llave simetrica minimo aceptable, con AES-256 recomendado para proteccion a largo plazo. A medida que el poder de computo aumenta y la computacion cuantica avanza, tamanos de llave debiles se vuelven exponencialmente mas vulnerables. Llaves que son seguras hoy pueden ser rompibles manana si son de tamano insuficiente.

Código Vulnerable
const crypto = require('crypto');
// RSA key too small
const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', {
  modulusLength: 1024
});
// AES key too small
const key = crypto.randomBytes(8); // 64-bit key
const cipher = crypto.createCipheriv('aes-128-gcm', key, iv);
Código Seguro
const crypto = require('crypto');
// RSA with adequate key size
const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', {
  modulusLength: 4096
});
// AES-256 with proper key size
const key = crypto.randomBytes(32); // 256-bit key
const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);

Ejemplo Real

En 2017, la vulnerabilidad ROCA (CVE-2017-15361) afecto la generacion de llaves RSA en chips TPM de Infineon usados en IDs gubernamentales y tokens de seguridad. Llaves de 1024 y 2048 bits generadas por estos chips podian ser factorizadas, comprometiendo tarjetas de identidad nacionales de Estonia y numerosos tokens de seguridad corporativos. El ataque costaba alrededor de $20,000 en computacion en la nube para llaves de 2048 bits.

Cómo Prevenirlo

  • Usa tamanos de llave RSA de al menos 2048 bits, preferiblemente 4096 bits
  • Usa AES-256 (llave de 32 bytes) para encriptacion simetrica
  • Considera cambiar a criptografia de curva eliptica (Ed25519) para mejor seguridad con llaves mas pequenas
  • Audita tamanos de llaves existentes y rota cualquier llave por debajo de los minimos recomendados

Tecnologías Afectadas

Node.jsPythonJavaGoC#

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas