Fundamentos de criptografía
La criptografía está por debajo de casi toda la seguridad: contraseñas (hashing), comunicaciones (TLS), tokens (JWT), certificados (PKI). No necesitas ser matemático, pero sí entender qué garantiza cada primitiva, cuándo se usa mal, y cómo se atacan las implementaciones débiles. En pentest, la cripto rota rara vez es el algoritmo —casi siempre es cómo se usa.
Las tres familias
Sección titulada «Las tres familias»- Hashing (un solo sentido): convierte datos en una huella fija e irreversible. MD5, SHA-1 (rotos), SHA-256, y para contraseñas bcrypt/scrypt/argon2 (lentos a propósito).
- Cifrado simétrico (una clave): cifra y descifra con la misma clave. AES es el estándar. Rápido; el reto es compartir la clave.
- Cifrado asimétrico (par de claves): clave pública cifra, privada descifra (y firma). RSA, ECC. Base de TLS y PKI.
Hashing y contraseñas (lo más explotado)
Sección titulada «Hashing y contraseñas (lo más explotado)»Las contraseñas nunca se guardan en claro: se guarda su hash. El atacante que roba hashes intenta crackearlos:
# identificar el hashhashid '$2b$...' # bcrypt# crackearhashcat -m 0 hashes.txt rockyou.txt # MD5hashcat -m 1000 hashes.txt rockyou.txt # NTLM (Windows)hashcat -m 3200 hashes.txt rockyou.txt # bcryptjohn --wordlist=rockyou.txt hashes.txtConceptos clave: salt (impide rainbow tables y hashes idénticos para iguales contraseñas), pepper, y por qué MD5/SHA-1 sin salt son indefendibles para contraseñas.
Dónde falla en la práctica (no el algoritmo)
Sección titulada «Dónde falla en la práctica (no el algoritmo)»- Hashes débiles o sin salt para contraseñas → crackeo rápido.
- ECB mode en cifrado por bloques → patrones visibles (el “pingüino ECB”).
- Claves/IV reutilizados, nonces repetidos.
- Secretos hardcodeados en código o repos (ver Git para hacking/OSINT en repositorios de código).
- JWT:
alg: none, clave HMAC débil, confusión de algoritmo (ver Ataques a JWT). - Padding oracle, relleno de longitud (length extension) en MAC mal construidos.
- Aleatoriedad predecible (PRNG no criptográfico para tokens/sesiones).
TLS, certificados y PKI
Sección titulada «TLS, certificados y PKI»TLS cifra las comunicaciones y autentica al servidor con un certificado firmado por una CA. En pentest importa: versiones/cifrados débiles (SSLv3, RC4), certificados caducados/autofirmados, y la PKI corporativa (AD CS) como vía de escalada (ver AD CS (Active Directory Certificate Services)).
# auditar TLS de un serviciosslscan target:443 ; testssl.sh targetopenssl s_client -connect target:443Codificación ≠ cifrado (error frecuente)
Sección titulada «Codificación ≠ cifrado (error frecuente)»Base64, hex, URL-encoding NO cifran: solo representan datos. Un “token” en Base64 se decodifica trivialmente. Reconócelos y decodifícalos:
echo "dGVzdA==" | base64 -d # base64echo -n "test" | xxd # hexPor qué importa en seguridad
Sección titulada «Por qué importa en seguridad»Crackear hashes volcados (SAM, NTDS, /etc/shadow) es post-explotación pura. Reconocer cripto mal usada (JWT inseguro, ECB, secretos hardcodeados, TLS débil) es hallazgo de auditoría. Y entender hashing/salt te deja explicar al cliente por qué su almacenamiento de contraseñas es (o no) defendible. Es transversal a casi todas las áreas.
Qué garantiza cada cosa (servicios)
Sección titulada «Qué garantiza cada cosa (servicios)»No confundas los servicios: es el origen de la mayoría de fallos de uso.
Confidencialidad que nadie lea el dato -> cifrado (AES, RSA/ECC)Integridad que no se altere -> hash, MACAutenticidad que venga de quien dice -> MAC (HMAC), firma digitalNo repudio que no pueda negarlo -> firma digital (asimétrica)Cifrar no da integridad (por eso existe AEAD: AES-GCM); un hash no da autenticidad (por eso existe HMAC, no hash(clave+mensaje)). Elegir la primitiva por el servicio que de verdad necesitas evita el 90% de los errores.
Mapa del área Criptografía (dónde profundiza cada tema)
Sección titulada «Mapa del área Criptografía (dónde profundiza cada tema)»crypto-basics conceptos y catálogo de fallos de implementacióncrypto-sym simétrica vs asimétrica y modos (ECB/CBC/CTR/GCM)crypto-hash hashing, cracking, length extension, colisionescrypto-pki asimétrica, certificados, cadena de confianza, JWTcrypto-tls TLS/handshake, PFS, ataques históricos (Heartbleed, POODLE...)crypto-padding padding oracle (descifrar sin la clave)crypto-rng aleatoriedad débil (tokens/claves predecibles)crypto-stego esteganografía (ocultar en vez de cifrar)Esta ficha es la panorámica transversal; cada bloque tiene su ficha con la explotación “a mano” y la defensa.
Checklist de dominio
Sección titulada «Checklist de dominio»- Diferencio hashing, cifrado simétrico y asimétrico
- Explico salt, pepper y por qué MD5/SHA-1 no valen para contraseñas
- Identifico y crackeo hashes con hashcat/john (modos comunes)
- Reconozco fallos de uso: ECB, IV/nonce reusado, JWT inseguro
- Distingo codificación (base64/hex) de cifrado y las decodifico
- Audito TLS básico (sslscan/testssl) y reconozco cripto débil
- Entiendo el papel de certificados/PKI y su relación con AD CS