Qué es A02 y por qué ocurre
Antes de revisar código conviene tener claro de qué se habla. En esta lección verá qué es la categoría A02 del OWASP Top 10, de dónde viene, por qué importa y los conceptos que el curso usará en cada lección.
Qué es A02
La criptografía es el conjunto de técnicas matemáticas que protegen la información para que solo la lean quienes deben (confidencialidad) y para detectar si alguien la alteró (integridad). Usted la usa todos los días sin verla: el candado del navegador, la app del banco o el mensaje de WhatsApp dependen de ella.
Una aplicación cae en A02 cuando protege mal la confidencialidad o la integridad de los datos por un problema criptográfico: datos que viajan en claro, algoritmos obsoletos (MD5, SHA-1, DES, RC4, modo ECB), contraseñas en texto plano o con un hash rápido sin sal, llaves escritas en el código o nunca rotadas, tokens generados con un generador predecible, y certificados o firmas que no se validan.
Breve historia y contexto
OWASP (Open Worldwide Application Security Project, antes Open Web Application Security Project) es una comunidad abierta nacida en 2001 y hoy una fundación sin fines de lucro. Publicó su primer Top 10 en 2003 y lo actualiza cada pocos años con datos de pruebas reales. En la edición 2017 esta categoría se llamaba A3: exposición de datos sensibles. En 2021 subió al segundo lugar y cambió de nombre a A02: fallas criptográficas: la exposición es el síntoma y la causa raíz es una decisión criptográfica equivocada o ausente. En la edición 2025 la categoría pasó al cuarto lugar (A04:2025); este curso usa la numeración 2021, que es la que todavía citan muchos reportes y herramientas.
Algunos hitos ayudan a entender por qué hay tanto código con algoritmos viejos:
| Año | Hito |
|---|---|
| 1977 | DES se publica como estándar de cifrado en Estados Unidos |
| 1992 | Se publica MD5 (RFC 1321) |
| 1995 | Se publica SHA-1 |
| 1999 | Aparece bcrypt para guardar contraseñas |
| 2001 | AES reemplaza a DES como estándar (FIPS 197) |
| 2004 | Se demuestran colisiones prácticas en MD5 |
| 2015 | Argon2 gana la competencia de hashing de contraseñas |
| 2017 | Se publica la primera colisión práctica de SHA-1 (SHAttered) |
| 2018 | Se publica TLS 1.3 (RFC 8446) |
| 2021 | TLS 1.0 y 1.1 se declaran obsoletos (RFC 8996) |
Lo aceptable en 2005 hoy es un hallazgo, pero el código no se actualiza solo.
Por qué importa en ciberseguridad y en el trabajo
La criptografía falla en silencio. Un MD5 funciona perfectamente: el registro guarda, el inicio de sesión compara y las pruebas pasan. Nadie se entera hasta que la base se filtra y alguien recupera miles de contraseñas en una tarde.
Quienes trabajan con A02 a diario:
- Desarrollo: elige librerías y parámetros correctos desde el primer commit.
- Seguridad de aplicaciones (AppSec): revisa código y diseños, y define la lista de algoritmos aprobados.
- Operaciones y SOC: vigila certificados, versiones de TLS, secretos filtrados y errores de descifrado.
- Auditoría y cumplimiento: comprueba que existan "medidas de seguridad adecuadas", como exige la Ley 8968.
Si estas fallas no se dominan, una filtración pequeña se vuelve un incidente grande: contraseñas reutilizadas en otros servicios, cédulas expuestas y obligaciones legales de notificación. Las causas más frecuentes son código heredado, fragmentos copiados de foros antiguos, creer que Base64 "cifra", no haber clasificado los datos y la criptografía hecha a mano.
Dónde aparece
| Lugar | Qué se protege | Falla típica |
|---|---|---|
| Formularios web y APIs | Datos en tránsito | HTTP sin TLS o sin HSTS |
| Base de datos de usuarios | Contraseñas | MD5 o SHA-256 sin sal |
| Columnas con datos personales | Cédula, teléfono | Texto plano o Base64 |
| Código y repositorios | Llaves y tokens | Secretos escritos en el código |
| Sesiones y enlaces de recuperación | Tokens | Generador predecible |
| Respaldos y registros | Copias de todo lo anterior | Sin cifrar o con contraseñas dentro |
Conceptos clave
| Concepto | Qué significa |
|---|---|
| Texto plano | El dato original, legible por cualquiera |
| Codificación | Cambio de formato reversible por cualquiera, sin llave (Base64, hex). No protege |
| Hash | Resumen de tamaño fijo que no se puede revertir; sirve para integridad y, si es lento y con sal, para contraseñas |
| Sal | Valor aleatorio único por usuario que se mezcla con la contraseña antes del hash |
| Cifrado | Transformación reversible solo con la llave; protege lo que se debe recuperar |
| Llave | El secreto que permite cifrar y descifrar; su protección es tan importante como el algoritmo |
| Entropía | Cantidad de imprevisibilidad de un valor; poca entropía vuelve adivinable un token |
| TLS | Protocolo que cifra y autentica la conexión entre cliente y servidor (el candado de HTTPS) |
| CWE | Catálogo público de tipos de debilidad; cada falla del curso lleva su número |
Codificación, hash y cifrado son las tres operaciones que más se confunden: solo el cifrado protege un dato que se debe recuperar. Si ve un campo "cifrado" que en realidad es Base64, ya encontró un hallazgo de A02.
CWEs principales
OWASP asocia 29 debilidades CWE a esta categoría y destaca tres: CWE-259 (contraseña escrita en el código), CWE-327 (algoritmo roto o riesgoso) y CWE-331 (entropía insuficiente). Otras, como CWE-319 (datos en claro), CWE-328 (hash débil) o CWE-916 (hash de contraseña con esfuerzo insuficiente), aparecerán en cada lección junto al error que describen.