2.1.1 – Cifrado Simétrico con Clave Compartida

Qué es el Cifrado Simétrico

El cifrado simétrico utiliza una única clave secreta para dos operaciones:

  • Cifrar (convertir texto legible en ilegible)
  • Descifrar (recuperar el texto original)

Si dos personas comparten la misma clave, ambas pueden leer el mensaje.
Si un atacante consigue la clave, el cifrado deja de proteger.

Conceptos esenciales:

  • Texto plano: información legible.
  • Texto cifrado: datos transformados matemáticamente.
  • Clave: secreto que controla la transformación.
  • Algoritmo: función matemática que aplica el cifrado.

El cifrado simétrico es muy rápido, por eso se usa en:

  • HTTPS / TLS (Internet)
  • Discos cifrados (BitLocker, LUKS)
  • VPN
  • Bases de datos
  • WiFi WPA2/WPA3

El problema central no es el algoritmo.
El problema siempre es: cómo compartes la clave sin que te la roben.

Resultado esperado

El alumno puede explicar:

  • Qué es una clave simétrica
  • Qué ocurre si se pierde
  • Por qué el cifrado depende del secreto

────────────────────────────────

Tipos de Cifrado Simétrico

1. Cifradores de Bloque

Trabajan sobre bloques fijos de datos (por ejemplo 128 bits).

Ejemplos:

  • AES (estándar actual)
  • DES (obsoleto)
  • 3DES (en retirada)
  • Blowfish
  • Twofish

2. Cifradores de Flujo

Cifran byte a byte como un flujo continuo.

Ejemplos:

  • RC4 (inseguro, obsoleto)
  • ChaCha20 (moderno, muy rápido)

3. Modos de Operación (muy importante)

Un cifrador de bloque necesita un modo:

  • ECB → inseguro (filtra patrones)
  • CBC → clásico, seguro si se usa bien
  • CFB / OFB → variantes de flujo
  • CTR → moderno
  • GCM → autenticado (integridad + cifrado)

AES + GCM es el estándar moderno (TLS 1.3).

────────────────────────────────

Preparación del Entorno

Requisitos:

  • Linux / macOS / WSL
  • OpenSSL
  • Terminal

Acción

openssl version

Si aparece una versión → listo.

────────────────────────────────

Crear un Archivo en Texto Plano

echo"Las credenciales del sistema son supersecretas." > secreto.txtcat secreto.txt

Explicación

Este archivo representa:

  • contraseñas
  • tokens
  • datos personales
  • secretos de API

Ahora mismo es completamente vulnerable.

────────────────────────────────

La Clave Simétrica

Explicación ampliada

Una clave débil rompe todo el sistema.
Ejemplo de malas claves:

  • 123456
  • password
  • admin2026

Buenas claves:

  • largas
  • aleatorias
  • no reutilizadas

Generar clave fuerte

openssl rand -base6432

Esto genera una clave criptográficamente segura.

────────────────────────────────

Cifrado con AES-256-CBC

openssl enc -aes-256-cbc-salt-in secreto.txt -out secreto.enc

El sistema pedirá contraseña.

Qué significa cada parámetro

  • aes-256 → clave de 256 bits
  • cbc → modo de bloque
  • salt → evita ataques de diccionario
  • in → archivo original
  • out → archivo cifrado

Resultado

cat secreto.enc

Contenido ilegible → cifrado correcto.

────────────────────────────────

Qué ocurre sin la clave correcta

openssl enc -aes-256-cbc-d-in secreto.enc

Resultado:

  • error
  • texto corrupto

Explicación

El cifrado moderno no puede romperse sin la clave.
No existe “probar hasta acertar” en tiempo humano si la clave es fuerte.

────────────────────────────────

Descifrado correcto

openssl enc -aes-256-cbc -d -in secreto.enc -out secreto_descifrado.txt
diff secreto.txt secreto_descifrado.txt

Sin diferencias → integridad correcta.

────────────────────────────────

AES-GCM (Cifrado Autenticado)

CBC cifra, pero no protege contra manipulación.
GCM cifra y detecta modificaciones.

openssl enc -aes-256-gcm-salt-in secreto.txt -out secreto_gcm.enc

Si alguien modifica el archivo → el descifrado falla.

Este es el modo usado en:

  • TLS 1.3
  • HTTPS moderno
  • VPN modernas

────────────────────────────────

TEMA 10 — Comparación de Algoritmos

AlgoritmoEstadoUso
DESRotoHistórico
3DESEn retiradaSistemas legacy
AESEstándarUniversal
ChaCha20ModernoTLS móvil, Wireguard
BlowfishAntiguoPoco usado

Mensaje clave: AES y ChaCha20 dominan el mundo real.

────────────────────────────────

El Problema del Intercambio de Claves

Para descifrar necesitas:

  1. Archivo cifrado
  2. Clave secreta

Si envías ambos por el mismo canal → seguridad = 0

Por eso el mundo real usa:

  • Criptografía asimétrica
  • Intercambio Diffie-Hellman
  • TLS

El cifrado simétrico siempre vive acompañado del asimétrico.

────────────────────────────────

OWASP A02: Fallos Criptográficos

Errores comunes reales:

  • Guardar datos sin cifrar
  • Usar ECB
  • Claves en el código
  • Claves débiles
  • Reutilizar claves
  • No usar cifrado autenticado
  • No cifrar en tránsito

El cifrado no falla por matemáticas.
Falla por humanos.

────────────────────────────────

Para probar:

Ver algoritmos disponibles

openssl enc -ciphers

Ver cabecera binaria

xxd secreto.enc | head