Saltar al contenido
Lectura5 minPreview

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        5f4dcc3b5aa765d61d8327deb882cf99

No 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, openssl y 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óduloQué aprendeLaboratorio
1. Conceptos esencialesQué es la criptografía, codificación frente a cifrado y hash, Base64, hexadecimal y entropíaDecodificar capas y generar secretos seguros
2. Hashes y contraseñasSHA-256, por qué MD5 y SHA-1 no, sal, bcrypt, Argon2 y HMACVerificar integridad con sha256sum, openssl y Python
3. Cifrado simétrico y asimétricoAES y sus modos, RSA, curvas elípticas, Diffie-Hellman y firma digitalCifrar y firmar con GPG
4. TLS y PKIEl saludo de TLS 1.3, certificados X.509, Let's Encrypt, errores comunes y la conclusiónInspeccionar TLS con openssl s_client
Evaluación6 preguntas sobre todo el cursoAprueba 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.