Bienvenida al curso
Un desarrollador le pasa para revisión un extracto de la tabla de usuarios de la app de reservas de Café del Valle (empresa ficticia). "Tranquilo, las contraseñas van cifradas", le dice.
usuario clave
----------- --------------------------------
mfallas e10adc3949ba59abbe56e057f20f883e
recepcion e10adc3949ba59abbe56e057f20f883e
admin 5f4dcc3b5aa765d61d8327deb882cf99No están cifradas: son hashes MD5 sin sal. Dos usuarios comparten valor, así que comparten contraseña, y basta pegar cualquiera de esos hashes en un buscador para leer 123456 y password. La revisión le tomó treinta segundos porque sabía qué mirar.
Bienvenido a Criptografía práctica. Va a trabajar desde la terminal con la criptografía que aparece en el día a día de un analista o auditor (hashes, claves, firmas, certificados) y con la matemática justa para entender cada decisión.
Qué va a lograr
- Distinguir codificación, cifrado y hash, y reconocer Base64 y hexadecimal a simple vista.
- Verificar integridad con SHA-256 y HMAC usando
sha256sum,openssly Python. - Auditar cómo se guardan las contraseñas y exigir sal, bcrypt o Argon2id.
- Explicar cuándo usar AES-GCM, RSA, curvas elípticas y firma digital, y aplicarlos con
gpg. - Leer un certificado X.509 y diagnosticar errores de TLS con
openssl s_client.
Para quién es y qué necesita
Es un curso intermedio para analistas, administradores y desarrolladores que ya trabajan con redes y la terminal. Conviene haber hecho Redes para ciberseguridad, porque TLS se apoya en TCP, DNS y HTTP, y manejar los comandos de Linux básico: 15 comandos para empezar.
Necesita Ubuntu 22.04 o 24.04 (VM o WSL2) con OpenSSL 3, GnuPG y Python 3, más las bibliotecas cryptography y argon2-cffi. En Ubuntu 24.04, pip ya no instala en el Python del sistema: cree antes un entorno virtual con python3 -m venv.
Cómo está organizado
| Módulo | Qué aprende | Laboratorio |
|---|---|---|
| 1. Conceptos esenciales | Qué es la criptografía, codificación frente a cifrado y hash, Base64, hexadecimal y entropía | Decodificar capas y generar secretos seguros |
| 2. Hashes y contraseñas | SHA-256, por qué MD5 y SHA-1 no, sal, bcrypt, Argon2 y HMAC | Verificar integridad con sha256sum, openssl y Python |
| 3. Cifrado simétrico y asimétrico | AES y sus modos, RSA, curvas elípticas, Diffie-Hellman y firma digital | Cifrar y firmar con GPG |
| 4. TLS y PKI | El saludo de TLS 1.3, certificados X.509, Let's Encrypt, errores comunes y la conclusión | Inspeccionar TLS con openssl s_client |
| Evaluación | 6 preguntas sobre todo el curso | Aprueba con 70 % |
Cómo aprovecharlo
Sus claves, sales y nonces no van a coincidir con los de la página, y está bien. Lo que sí debe coincidir es el hash de un mismo archivo. Si dos SHA-256 del mismo texto no le dan igual, casi siempre es un salto de línea: echo agrega uno al final y echo -n no.
El laboratorio de GPG es el que más se traba: generar el par, exportar la pública, firmar y verificar tiene varios pasos donde un correo mal escrito da un error poco claro. Lea el mensaje completo antes de repetir el comando. El de TLS es corto y es el que más usará en el trabajo: openssl s_client zanja en un minuto la discusión de si "el certificado está malo".
Al aprobar la evaluación final recibe el certificado y la insignia del curso.
Tiempo estimado
Unas 5 horas, hora y media de ellas en laboratorios. Si una lección del módulo 3 se le hace pesada, pártala en dos sesiones.