Tema 4 de 6
El cifrado vuelve ilegibles los datos para quien no tiene la clave. El hashing genera una huella única que no se puede revertir. Parecen parecidos, pero resuelven problemas distintos, y el examen pregunta justo por esa diferencia.
Contenido
Cifrar es convertir los datos en algo ilegible e inutilizable para quien no está autorizado. Para leerlos hay que descifrarlos con una clave secreta. Aunque un atacante intercepte los datos cifrados, sin la clave no le sirven.
El cifrado es uno de los controles técnicos más importantes de la confidencialidad, pero no el único: también hacen falta controles de acceso y políticas sobre quién puede ver qué. Y toda su fuerza depende de que las claves estén protegidas.
🔑 Cifrado simétrico
Usa la misma clave para cifrar y descifrar. Como solo interviene una clave, es rápido y sirve para grandes volúmenes, como archivos en disco o registros de una base de datos.
Problema: distribuir la clave. Ambas partes necesitan la misma clave secreta, y compartirla de forma segura, sobre todo por la red, es difícil.
🔐 Cifrado asimétrico
Usa un par de claves relacionadas matemáticamente: una pública y una privada. La privada no se puede deducir de la pública.
Ventaja: la clave pública se comparte libremente, lo que resuelve la distribución. Cualquiera puede cifrar con tu clave pública, pero solo tú, con la privada, descifras. Se usa en HTTPS y en el cifrado de correo.
| Simétrico | Asimétrico | |
|---|---|---|
| Claves | Una, compartida | Un par: pública y privada |
| Velocidad | Rápido, apto para grandes volúmenes | Más costoso |
| Reto principal | Distribuir la clave de forma segura | Proteger la clave privada |
| Usos típicos | Discos, bases de datos | HTTPS, correo cifrado, firmas digitales |
Es la pregunta más repetida sobre cifrado asimétrico. Depende de si buscas confidencialidad o autenticidad:
Enviar un mensaje que solo lea el destinatario
Firmar para probar quién envía
El cifrado asimétrico también permite firmar. Una firma digital prueba dos cosas a la vez:
Autenticidad
Los datos vienen del remitente esperado.
Integridad
Los datos no cambiaron después de firmarse.
Se usan para verificar descargas de software, autenticar correos y asegurar documentos y transacciones electrónicas. Fíjate en que una firma no oculta el contenido: su objetivo no es la confidencialidad.
En reposo
Datos guardados en un dispositivo físico: el disco de un servidor, una base de datos o una cuenta de almacenamiento en la nube. Si alguien roba el disco o accede sin autorización a la cuenta, sin las claves no puede leerlos.
En tránsito
Datos que viajan por internet, entre servicios o por una red privada, y que puede interceptar quien observe el tráfico. HTTPS es el ejemplo más conocido: usa Transport Layer Security (TLS) para que nadie más lea lo que intercambian el navegador y el servidor. Lo mismo aplica entre servicios en la nube y en conexiones VPN sobre redes públicas.
En uso
Datos que se están procesando en memoria (RAM) o en la CPU. Normalmente se descifran para procesarlos, lo que abre una ventana de exposición. La computación confidencial crea entornos protegidos (enclaves seguros) donde se procesan sin exponerse ni al sistema operativo ni al hipervisor. Es especialmente importante en entornos multitenant, donde varios clientes comparten el mismo hardware.
El cifrado es tan seguro como sus claves. Una clave robada o expuesta deja los datos al alcance del atacante y anula el cifrado. La gestión de claves cubre cómo se generan, guardan, protegen, rotan y retiran. Buenas prácticas:
Separar claves y datos
Si están juntos, quien accede a uno tiene ambos.
Hardware dedicado
Los HSM (módulos de seguridad de hardware) son dispositivos resistentes a manipulación diseñados para guardar claves.
Rotar las claves
Cambiarlas periódicamente limita los datos expuestos si una se compromete.
Controlar el acceso
Solo usuarios y sistemas autorizados, con autenticación fuerte y privilegios mínimos.
En Azure: Azure Key Vault centraliza claves, certificados y secretos, reduce el riesgo de exponerlos, apoya la rotación y se integra con otros servicios para cifrar sin exponer la clave al código ni a los administradores.
El hashing convierte cualquier entrada en una cadena de longitud fija llamada hash (o digest). Es unidireccional: no se puede revertir para obtener el original.
Sin claves
No hay nada que descifrar: el hash no se "abre".
Determinista
La misma entrada con el mismo algoritmo siempre da el mismo hash: es una huella fiable.
Sensible a cambios
Si el dato cambia, el hash cambia. Por eso sirve para comprobar integridad.
| Cifrado | Hashing | |
|---|---|---|
| ¿Usa clave? | Sí | No |
| ¿Se puede revertir? | Sí, con la clave | No |
| Longitud del resultado | Depende de los datos | Fija |
| Uso típico | Proteger datos que luego se leen | Guardar contraseñas y verificar integridad |
Guardar el hash, no la contraseña
El sistema guarda solo el hash. Al iniciar sesión, calcula el hash de lo que escribe el usuario y lo compara con el guardado. La contraseña real nunca se guarda ni se transmite en texto plano.
Si roban la base, solo obtienen hashes
Es mucho más seguro que guardar contraseñas en texto plano.
El riesgo: tablas precalculadas
Como el hash siempre es igual, un atacante puede precalcular hashes de millones de contraseñas comunes y buscar coincidencias (rainbow tables o ataques de diccionario).
La solución: salt
Se agrega un valor aleatorio y único (salt) a cada contraseña antes del hash. Dos usuarios con la misma contraseña quedan con hashes distintos y el atacante necesitaría una tabla distinta para cada salt posible.
El salting es una práctica estándar y obligatoria en cualquier sistema de autenticación bien implementado.
| Necesidad | Respuesta | Por qué |
|---|---|---|
| Proteger los archivos de un disco por si lo roban | Cifrado en reposo | Sin las claves, quien tenga el disco no puede leer los datos. |
| Que nadie lea lo que viaja entre el navegador y la web | Cifrado en tránsito (HTTPS/TLS) | Evita la lectura del tráfico interceptado. |
| Procesar datos sensibles sin exponerlos al hipervisor | Computación confidencial (en uso) | Usa enclaves seguros protegidos incluso del sistema operativo. |
| Demostrar que un documento lo envió una persona y no se alteró | Firma digital | Prueba autenticidad e integridad. |
| Guardar contraseñas de usuarios | Hashing con salt | No se guarda la contraseña y las tablas precalculadas no sirven. |
| Comprobar que una descarga no fue modificada | Comparar el hash | Si el archivo cambia, el hash cambia. |
| Centralizar claves, certificados y secretos en Azure | Azure Key Vault | Servicio administrado de gestión de claves. |
❓ "El valor original no se puede recuperar". ¿Cifrado o hashing?
Hashing. El cifrado siempre se puede revertir con la clave correcta.
❓ ¿Con qué clave se cifra un mensaje para que solo lo lea el destinatario?
Con la clave pública del destinatario. Solo su clave privada lo descifra. Para firmar es al revés: el remitente usa su clave privada.
❓ ¿HTTPS protege los datos en reposo?
No. HTTPS (TLS) cifra los datos en tránsito. Los datos en reposo se cifran en el almacenamiento.
❓ ¿El hashing usa una clave secreta?
No. El hashing no usa claves; el cifrado sí.
❓ ¿Una firma digital oculta el contenido del documento?
No. Prueba autenticidad e integridad, no confidencialidad.
❓ ¿Qué estado del dato protege la computación confidencial?
Los datos en uso, procesándose en memoria o en la CPU.
❓ ¿Para qué sirve el salt?
Para que contraseñas iguales den hashes distintos y las tablas precalculadas dejen de servir.
¿Entendiste este tema?
Pon a prueba lo que acabas de aprender
Una aplicación guarda las contraseñas de los usuarios. Quieren que, si roban la base de datos, sea muy difícil usar tablas precalculadas para descubrir las contraseñas. ¿Qué deben aplicar?
Preguntas originales, cada una con su explicación.
Empezar un simulacro