La criptografía moderna, bien implementada, es extremadamente difícil de romper. Por eso los atacantes rara vez atacan los algoritmos: atacan cómo se usan. La mayoría de los fallos criptográficos provienen de malas implementaciones, claves débiles o algoritmos obsoletos, no de la matemática en sí.
Principales ataques y errores:
1. Algoritmos obsoletos o rotos
- Hashing: MD5, SHA-1 (tienen colisiones).
- Cifrado: DES, RC4; protocolos SSL, TLS 1.0/1.1.
- ✅ Usar siempre algoritmos vigentes (AES, SHA-256/3, TLS 1.2/1.3, Argon2).
2. Fuerza bruta y diccionario
- Fuerza bruta → probar todas las combinaciones posibles.
- Diccionario → probar listas de contraseñas comunes o filtradas.
- La seguridad depende de la longitud y aleatoriedad de la clave.
3. Man-in-the-Middle (MITM)
- El atacante se interpone en la comunicación.
- Suele aprovechar certificados mal validados o conexiones sin cifrar.
- Defensa: validar certificados, usar TLS, certificate pinning.
4. Errores de implementación (los más frecuentes)
| Error | Consecuencia |
|---|---|
| Reutilizar nonces/IV únicos | Filtra información del texto cifrado |
| Aleatoriedad débil (mal RNG) | Claves predecibles |
| Claves "hardcodeadas" en el código | Cualquiera que lea el código las obtiene |
| Contraseñas sin salt o con hash rápido | Vulnerables a rainbow tables |
| "Rolling your own crypto" | Algoritmos propios sin auditar = inseguros |
Otros ataques mencionables:
- Padding oracle → explota cómo el sistema responde a relleno inválido.
- Side-channel → deduce claves midiendo tiempo, consumo o emisiones.
- Downgrade → forzar el uso de una versión/algoritmo débil.
Regla de oro: no inventes tu propia criptografía. Usá bibliotecas estándar, algoritmos modernos y configuraciones recomendadas.
Este tema cierra el pilar mostrando el lado ofensivo: dónde falla la criptografía en el mundo real. Conecta con los ataques a contraseñas (Pentest) y con las buenas prácticas de hashing y TLS.