Capítulo 10: Understanding Cryptography and PKI
1. Integrity with Hashing
El hash es una cadena hexadecimal de longitud fija producida por un algoritmo matemático. Misma entrada = mismo hash. Sirve para verificar integridad.
| Algorithm | Size / Status |
|---|---|
| MD5 | 128 bits — comprometido (colisiones desde 2004) |
| SHA-1 | 160 bits — ya no aprobado |
| SHA-2 (SHA-256/512) | En uso amplio |
| SHA-3 | Alternativa a SHA-2, 224-512 bits |
2. Password Attacks
| Attack | Description |
|---|---|
| Dictionary | Prueba palabras de una lista |
| Brute force | Todas las combinaciones posibles |
| Password spraying | Una contraseña contra muchas cuentas |
| Pass the hash | Usa el hash robado sin descifrarlo (NTLM) |
| Birthday attack | Explota colisiones de hash |
| Rainbow table | Compara hashes contra base precomputada |
3. Symmetric Encryption
Misma clave para cifrar y descifrar. Ideal para datos en masa. Block cipher: cifra en bloques (AES: 128 bits). Stream cipher: cifra bit a bit (útil para audio/video).
| Algorithm | Type | Detail |
|---|---|---|
| AES | Block, 128 bits | Claves 128/192/256. Estándar actual (NIST) |
| 3DES | Block, 64 bits | Más lento que AES, usado en hardware legacy |
| Blowfish | Block, 64 bits | Rápido, reemplazo de DES |
| Twofish | Block, 128 bits | Relacionado con Blowfish |
4. Asymmetric Encryption
Par de claves: pública (se comparte, en el certificado) y privada (nunca se comparte). Lo cifrado con una solo lo descifra la otra. Muy segura pero lenta → se usa para key exchange (intercambiar una clave simétrica).
• Cifrar con clave pública del destinatario = confidencialidad
• Cifrar hash con clave privada del remitente = firma digital (autenticación + integridad + no repudio)
- ECC (Elliptic Curve Cryptography): misma seguridad que RSA con claves más cortas (256 bits ECC ≈ 3072 RSA). Ideal para IoT.
- Ephemeral keys: claves por sesión, aportan Perfect Forward Secrecy.
- RSA: 2048 bits mínimo recomendado.
5. PKI and Certificates
Una PKI (Public Key Infrastructure) gestiona el ciclo de vida de los certificados digitales. CA (Certificate Authority): emite, valida y revoca certificados. RA: recopila información pero no emite.
- CSR (Certificate Signing Request): solicitud a la CA. Incluye clave pública, NUNCA la privada.
- CRL: lista pública de certificados revocados.
- OCSP: consulta en tiempo real (good/revoked/unknown). OCSP stapling: el servidor adjunta la respuesta.
- Certificate pinning: el cliente recuerda hashes de claves públicas para detectar suplantación.
- Key escrow: copia de seguridad de clave privada. KMS: sistema centralizado de gestión de claves.
| Certificate type | Use |
|---|---|
| Wildcard | Cubre múltiples subdominios (*.empresa.com) |
| SAN | Múltiples dominios distintos |
| Self-signed | CAs internas, no confiable públicamente |
| Code signing | Verifica integridad de software |
6. TLS / HTTPS / Blockchain
TLS reemplaza a SSL. Handshake: 1) cliente solicita HTTPS, 2) servidor envía certificado, 3) cliente genera clave simétrica y la cifra con clave pública del servidor, 4) servidor la descifra con su clave privada, 5) sesión cifrada con clave simétrica.