> **Bloque 1: Criptografía e Identidad**

# 1. Tipo Test con Justificación

En un escenario donde queremos asegurar la **integridad** de un archivo y la **autenticidad** del emisor, pero la confidencialidad NO es prioritaria:

- A) Ciframos el archivo con la clave privada del receptor.
- B) Calculamos el hash del archivo y ciframos ese hash con la clave privada del emisor.
- C) Ciframos el archivo con una clave simétrica y enviamos la clave por canal inseguro.
- D) Aplicamos solo una función hash SHA-256 al archivo.

> **Tu respuesta**: (Indica la letra y justifica por qué es esa y por qué las otras no cumplen los requisitos).

## Respuesta

- A) Si ciframos la clave con la clave del emisor sólo el emisor puede leerlo; a la inversa es lo mismo, por lo que garantizamos que el receptor sea el único que la puede leer, pero partimos de la idea de que tanto el emisor como el receptor tenga la clave del otro para poder desarrollar dicha práctica, lo cual, es un riesgo tremendo si ésta se envía entre ambos para sincronizarse. Entiendo que esta práctica sólo se desarrolla cuando ambos tienen las claves sin que se pase por el medio para evitar un Man In The Middle. En este caso, no tenemos ni Hash ni sumatorio, así que sólo podríamos verificar, a lo sumo que fue enviado al receptor, pero tampoco su autenticidad por no tener elemento partícipe del emisor.
- B) El Hash sólo vale para saber la integridad del fichero por lo que no nos vale para este caso, salvo que el cifrado de éste sobre la clave privada del emisor sea verificable por ambos lados, sino, sólo el emisor podría verificarlo.
- C) Aquí no verificamos integridad por ningún lado pues sólo sería posible mediante un Hash o sumatorio tipo CRC.
- D) Aquí verificamos la integridad pero no la autenticidad.

Por descarte es la B, pero ninguna me parece práctica ni eficaz salvo con conocimiento de las claves de todos los participantes y su uso para cifrar el Hash, lo cual es una barbaridad a nivel de seguridad, creo.

# 2. Respuesta Corta

Define qué es una **Función Hash** y cita al menos dos características técnicas que debe cumplir para ser considerada segura en el ámbito de la criptografía.

## Respuesta

La Función Hash es una función que a partir de un contenido, ésta, mediante su algoritmo, saque un valor no reversible que verifica la integridad de la información, es decir, sea quien sea que tenga dicha función con la misma configuración, ésta recibe los mismos datos y sacará el mismo valor, pero si cambia algo, ésta cambiará en su totalidad.

Como elementos que ha de cumplir, pues como dije, la no reversibilidad, evitar la colisión en la medida de las posibilidades, normalmente, ampliando los Bits de salida, como por ejemplo, la diferencia entre MD5 frente a SHA-256, donde la diferencia es muy importante.

# 3. Pregunta de Desarrollo (Esquema lógico)

Explica brevemente el proceso de **"Handshake" en TLS**. No necesito que me nombres cada bit, sino que me expliques lógicamente:

- ¿Cómo se ponen de acuerdo en el algoritmo?
- ¿Cómo sabe el cliente que el servidor es quien dice ser?
- ¿Cómo pasan de una clave asimétrica a una simétrica para la sesión?

## Respuesta

- **Primera pregunta**: Mediante un sistema de claves asimétricas.
- **Segunda pregunta**: Mediante la firma de los datos (El Hash de los datos).
- **Tercera pregunta**: Mediante un sistema de autenticación que permite el intercambio de las claves para establecer un túnel de comunicación cifrado y seguro.

> **Anotaciones**: Me parece una auténtica animalada el tercer punto, pero creo que es así. Haría falta un tercer factor en este punto o que ambas partes tengan las claves de ambos o partan de un sistema cifrado base para hacer dicha operativa, pero igualmente, ese intercambio cara un Man In The Middle es un suicidio en ciberseguridad.

# 4. Pregunta Trampa (Legal/Técnica)

Un compañero te dice: "*Como usamos un algoritmo de cifrado de grado militar (AES-256), ya cumplimos automáticamente con el Esquema Nacional de Seguridad (ENS) en cuanto a protección de datos sensibles*".

¿Es esto cierto? Razona si el ENS solo exige un algoritmo potente o si entran en juego otros factores de gestión de claves.

## Respuesta

Entran en juego otros factores. Un ejemplo de ello lo tenemos con la Red SARA, donde no sólo existe el cifrado/encriptación, sino ciertos protocolos que garantizan más grados de seguridad como la limitación de acceso a los mismos, cumplir una serie de requisitos, etc.