30 preguntas tipo test sobre todo el temario. Selecciona la respuesta correcta en cada pregunta.
🔐 Tipos de Criptografía
SIMÉTRICA
🔑 1 clave compartida
- ✓ MUY rápida
- ✓ Archivos grandes
- ✗ Distribución de clave
Algoritmos:
AES (128/192/256)
DES (obsoleto)
ASIMÉTRICA
🔑🔑 2 claves (pública/privada)
- ✓ Intercambio seguro
- ✓ Firma digital
- ✗ Más lenta
Algoritmos:
RSA (2048/4096)
ECDSA (256)
🔨 HASH (Funciones Resumen)
Característica clave: UNIDIRECCIONAL
✅ Seguros:
- • SHA-256 / SHA-512
- • bcrypt (contraseñas)
- • Argon2 (contraseñas)
❌ Obsoletos:
- • MD5
- • SHA-1
✍️ Firma Digital - Proceso
Garantiza:
✓ Autenticidad | ✓ Integridad | ✓ No repudio
🎫 Estructura JWT
HEADER
Tipo de token
Algoritmo (HS256)
PAYLOAD
Claims (datos)
Username, roles
Expiración
SIGNATURE
Verifica integridad
HMAC(header+payload)
🔄 Cifrado Híbrido (TLS/HTTPS)
Paso 1: Intercambio de clave
Usa RSA o ECDH (asimétrica) para intercambiar de forma segura una clave simétrica
Paso 2: Cifrado de datos
Usa AES (simétrica) para cifrar toda la comunicación - MUY RÁPIDO
📊 Tabla de Algoritmos
| Algoritmo | Tipo | Longitud Clave | Estado |
|---|---|---|---|
| MD5 | Hash | 128 bits | ❌ OBSOLETO |
| SHA-1 | Hash | 160 bits | ❌ OBSOLETO |
| SHA-256 | Hash | 256 bits | ✅ SEGURO |
| SHA-512 | Hash | 512 bits | ✅ MUY SEGURO |
| bcrypt/Argon2 | Hash | Variable | ✅ CONTRASEÑAS |
| DES | Simétrica | 56 bits | ❌ OBSOLETO |
| 3DES | Simétrica | 168 bits | ⚠️ TEMPORAL |
| AES | Simétrica | 128/192/256 bits | ✅ ESTÁNDAR |
| RSA | Asimétrica | 2048-4096 bits | ✅ SEGURO |
| ECDSA | Asimétrica | 256 bits | ✅ MODERNO |
⚖️ Comparativas Rápidas
Hash vs Cifrado
| Dirección: | Hash: UNI | Cifrado: BI |
| Clave: | Hash: NO | Cifrado: SÍ |
| Longitud: | Hash: FIJA | Cifrado: VARIABLE |
| Objetivo: | Hash: Integridad | Cifrado: Confidencialidad |
Simétrica vs Asimétrica
| Claves: | Sim: 1 | Asim: 2 |
| Velocidad: | Sim: RÁPIDA | Asim: LENTA |
| Tamaño clave: | Sim: 256b | Asim: 2048b |
| Uso: | Sim: Datos | Asim: Claves |
🛡️ Spring Security - Métodos Clave
.permitAll()
Acceso sin autenticación
.authenticated()
Requiere estar logueado
.hasRole("ADMIN")
Requiere rol específico
.hasAuthority()
Requiere autoridad específica
🔐 OAuth2 - Roles
Client
La aplicación que solicita acceso
Authorization Server
Emite los tokens (ej: Google)
Resource Server
Protege los recursos/datos
🔒 Modos de Operación AES
ECB
❌ NO RECOMENDADO
CBC
⚠️ Aceptable
GCM
✅ RECOMENDADO
CTR
✅ Bueno
⚖️ Equivalencias de Seguridad
256 bits ECDSA ≈ 3072 bits RSA
Misma seguridad, claves más cortas = más eficiente
⚠️ IMPORTANTE - No confundir
- • Hash NO es cifrado - Hash es irreversible, cifrado es reversible
- • JWT es stateless - No requiere almacenar sesiones en servidor
- • Firma digital - Se cifra con clave PRIVADA, se verifica con PÚBLICA
- • OAuth2 es autorización - NO es autenticación directa
- • bcrypt para contraseñas - NO usar SHA-256 directamente
💡 Consejos para código:
- • Busca algoritmos obsoletos (MD5, SHA-1, DES)
- • Verifica que JWT esté firmado (.signWith)
- • Comprueba la lógica de validación (true/false invertidos)
- • AES necesita modo y padding especificados
- • Spring Security: permisos invertidos son un error común
🎯 Tips para casos prácticos:
- • Archivos grandes: Siempre criptografía simétrica (AES)
- • Verificar origen: Firma digital
- • APIs sin sesiones: JWT
- • Login social: OAuth2
- • Contraseñas en BD: bcrypt/Argon2, NUNCA texto plano
- • Comunicación segura: Cifrado híbrido (asimétrica + simétrica)
- • IoT/recursos limitados: ECDSA (claves cortas)
- • Verificar integridad de archivos: Hash (SHA-256)