Parte 2 — Criptografía aplicada

⬅️ Volver al programa · 📚 Índice completo · ⏭️ Parte siguiente

20 clases · rango 046–065 · Simétrica, asimétrica, hashing, PKI, TLS y criptoanálisis

Fuentes de referencia de esta parte:


🎯 ¿De qué trata esta parte?

La criptografía es el pilar sobre el que descansan la confidencialidad, la integridad y la autenticidad de casi todo lo que hacemos en redes: HTTPS, VPN, firma de software, mensajería cifrada, blockchains y almacenamiento de contraseñas. Esta parte te lleva desde los fundamentos históricos hasta las primitivas modernas que usan los sistemas reales, con un enfoque de ingeniería: no solo qué es AES o RSA, sino cómo se usan bien, cómo se rompen cuando se usan mal y qué herramientas reales manejar (OpenSSL, la librería cryptography de Python, hashcat).

El objetivo no es convertirte en criptógrafo teórico —eso requiere años de matemáticas— sino en un usuario competente y crítico de la criptografía. La mayoría de las brechas relacionadas con cripto no provienen de romper AES por fuerza bruta (imposible), sino de errores de implementación: nonces reutilizados, modos inseguros como ECB, padding oracles, comparaciones no constantes en tiempo, generadores de aleatoriedad predecibles y almacenamiento de contraseñas con hashes rápidos. Aprenderás a reconocer y evitar esas trampas.

Esta parte sirve a desarrolladores que integran cripto en sus aplicaciones, a pentesters que auditan implementaciones, a analistas de seguridad que evalúan configuraciones TLS y a cualquiera que quiera entender de verdad por qué "no hagas tu propia cripto" es un consejo tan repetido.

🧩 Problemas que resuelve

🎓 Resultados de aprendizaje

Al terminar la parte, podrás:

🧱 Prerrequisitos

Se asume haber cursado la Parte 1 — Redes y seguridad de redes (modelo TCP/IP, TLS a nivel de red, captura con Wireshark). Conviene manejar la línea de comandos de Linux, Python básico y aritmética modular a nivel intuitivo. No se requieren matemáticas avanzadas: los conceptos numéricos se introducen con analogías y ejemplos ejecutables.

Estas son las nociones previas concretas que más se usan y dónde repasarlas:

Necesitas tener claro… Dónde se cubre
Hashing frente a cifrado frente a codificación Clase 020
Intuición de simétrico, asimétrico y firma Clase 021
Qué añade TLS al canal y cómo verlo en la red Clase 013 · Clase 036
Man-in-the-middle y por qué hay que autenticar Clase 040
Python básico para los laboratorios Clase 015

🧭 Cómo recorrer esta parte

El orden importa aquí más que en la Parte 1. Esta parte se construye acumulativamente: TLS (056) solo se entiende con Diffie-Hellman (053), firmas (054) y PKI (055) ya vistos; AEAD (059) responde a un problema planteado en 047 y 052; y el padding oracle (060) explota exactamente el relleno de 047. Si vas a saltar, salta bloques completos, no clases sueltas.

El ritmo. La parte suma unas 35 h 10 min de trabajo guiado. A dos horas al día entre semana son unas tres semanas y media; a una hora, unas siete.

Un aviso sobre las matemáticas. Habrá exponenciación modular, curvas y funciones de Euler, y es normal no seguir cada paso algebraico la primera vez. Lo que sí hay que llevarse de cada clase es qué problema difícil sostiene la seguridad (factorizar, logaritmo discreto, ECDLP) y qué garantiza y qué no garantiza cada primitiva. Con eso se toman decisiones correctas; el álgebra es para quien quiera profundizar.

El método, clase a clase.

  1. Lee 🎯 Objetivo y 📚 Resultados de aprendizaje.
  2. Lee 🧠 Explicación en profundidad entera antes de escribir código. Es donde está el porqué y los diagramas del mecanismo.
  3. Prepara lo que pida 🧰 Herramientas y preparación (aquí casi siempre OpenSSL y Python).
  4. Haz el 🧪 Laboratorio guiado. En esta parte el laboratorio suele ser romper algo: descifrar un ECB, explotar un padding oracle, medir un timing. Es la forma más rápida de que el concepto se quede.
  5. Resuelve ✍️ Ejercicios y el 📝 Reto verificable.
  6. Repasa el 📔 Glosario. Aquí la densidad de siglas es máxima (AEAD, HKDF, OAEP, PSS, ECDHE, CSPRNG, KEK/DEK, ML-KEM): si no sabrías explicar una, vuelve a su sección.

⚠️ Uso ético y legal. Las clases 057 y 060 usan herramientas de crackeo y de explotación (hashcat, oráculos de relleno). Úsalas solo sobre hashes y servicios propios o de un entorno autorizado. Crackear credenciales ajenas o atacar un servicio de terceros es delito; repasa la Clase 025.

🧱 Anatomía de una clase

Las 20 clases siguen el estándar pedagógico profundo del programa:

Sección Qué contiene Para qué la usas
🎯 Objetivo Qué sabrás hacer al terminar y por qué importa Decidir si necesitas la clase
📚 Resultados de aprendizaje Lista verificable de capacidades concretas Autoevaluarte al final
🗺️ Temas Cada tema con el porqué de su inclusión Ubicarte antes de leer
🧠 Explicación en profundidad El mecanismo explicado y conectado con el resto, con diagramas Entender, no memorizar
📖 Definiciones y características Cada término desarrollado con su relevancia en seguridad Consulta puntual
📔 Glosario Términos y siglas de la clase, en tabla Repaso rápido
🧰 Herramientas y preparación Qué instalar y tener a mano Antes del laboratorio
🧪 Laboratorio guiado Práctica paso a paso con herramientas reales Donde de verdad se aprende
✍️ Ejercicios · 📝 Reto verificable Problemas propios y un entregable con criterio de aceptación Consolidar y demostrar
⚠️ Errores comunes · ❓ Preguntas frecuentes Tropiezos reales y dudas auténticas Cuando algo falla
🔗 Referencias Fuentes primarias y estándares (NIST, RFC) Profundizar

El CI del repositorio verifica que ninguna clase de esta parte pierda las secciones 🧠 Explicación en profundidad ni 📔 Glosario.

🗺️ Estructura temática

Bloque Clases Contenido Tiempo
Fundamentos 046 Historia, principios (Kerckhoffs), modelo de amenaza ≈ 1 h 30
Cifrado simétrico 047–048 AES y modos, cifrado de flujo (ChaCha20), por qué no RC4 ≈ 3 h 30
Cifrado asimétrico 049–050 RSA y ECC ≈ 4 h
Integridad y autenticación 051–052 Funciones hash (SHA-2/3), HMAC ≈ 3 h
Protocolos de clave 053–054 Diffie-Hellman, firmas digitales ≈ 3 h 20
Infraestructura 055–056 PKI y X.509, TLS/SSL en profundidad ≈ 4 h 10
Robustez práctica 057–059 Hash de contraseñas, CSPRNG, AEAD ≈ 4 h 50
Ataques y análisis 060–061 Padding oracle y timing, criptoanálisis ≈ 3 h 50
Frontera y operación 062–065 Post-cuántica, secretos, esteganografía, errores comunes ≈ 6 h 40

Fundamentos 046
Kerckhoffs y modelo de amenaza

Simetrica 047-048
AES, modos, ChaCha20

Asimetrica 049-050
RSA y ECC

Integridad 051-052
hash y HMAC

Protocolos de clave 053-054
DH y firmas

Infraestructura 055-056
PKI y TLS

Robustez 057-059
contrasenas, CSPRNG, AEAD

Ataques 060-061
padding oracle, timing, criptoanalisis

Frontera 062-065
post-cuantica, secretos, errores

Parte 3: Pentesting

📖 Guía capítulo a capítulo

Qué hace cada clase, por qué está donde está y para qué te sirve después.

🏛️ Bloque 1 · Fundamentos — clase 046

🔒 Bloque 2 · Cifrado simétrico — clases 047 a 048

🔑 Bloque 3 · Cifrado asimétrico — clases 049 a 050

🧾 Bloque 4 · Integridad y autenticación — clases 051 a 052

🤝 Bloque 5 · Protocolos de clave — clases 053 a 054

🏢 Bloque 6 · Infraestructura — clases 055 a 056

🛠️ Bloque 7 · Robustez práctica — clases 057 a 059

🔬 Bloque 8 · Ataques y análisis — clases 060 a 061

🧭 Bloque 9 · Frontera y operación — clases 062 a 065

🧰 Qué tendrás al terminar

🚦 ¿Puedo saltarme clases?

Esta es la parte más acumulativa del programa; conviene saltar poco. Sáltate una clase solo si respondes de memoria a su pregunta de control:

Si dominas… Pregunta de control Si titubeas
Simétrica (047–048) ¿Qué pasa si repites un nonce en CTR o en GCM? Haz 048
Asimétrica (049–050) ¿Por qué el RSA sin relleno es inseguro? Haz 049
Hash y MAC (051–052) ¿Por qué H(clave ‖ mensaje) no es un MAC seguro? Haz 052
PKI y TLS (055–056) ¿Qué valida exactamente un navegador en un certificado? Haz 055
Contraseñas (057) ¿Qué diferencia hay entre salt y pepper? Haz 057
Implementación (059–060) ¿Por qué AEAD elimina el padding oracle? Haz 059 y 060

🔗 Referencias de la parte

▶️ Empezar

Clase 046 — Historia y fundamentos de la criptografía