Seguridad HTTP Flashcards

(49 cards)

1
Q

Seguridad HTTP. Mecanismos para securizar el mundo HTTP

A
  • Cookies
  • TLS
  • Cabeceras específicas: HSTS, CORS, CSP
  • Una de las organizaciones más conocidas : OWASP, que es una fundación que publica guías y riesgos, como el Top 10 web, que es su proyecto más famoso y donde se indican los 10 principales riesgos y vulnerabilidades de seguridad más críticos en aplicaciones web.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué es HSTS?

A

Encabezado que fuerza a los navegadores a utilizar HTTPs para conectarse a un sitio web

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Qué es CORS?

A

CORS (Cross-Origin Resource Sharing) es un mecanismo de seguridad que permite a un navegador web solicitar recursos de un origen diferente al del sitio web que se está visitando.

Esas cabeceras hacen que, esos sitios web a los que el navagador ha solicitado algún recurso, y que son distintos al de origen, le permitan o no, dependiendo del origen, acceder.
Para ello el navegador pregunta si podría acceder con el verbo http “OPTION” y le permite mediante la cabecera CORS, ya puede solicitar el recurso con “GET” o el verbo que sea, dependiendo de lo que le permita hacer en la respuesta del “OPTION”.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

En cuanto a SSL en JAVA, ¿en qué fichero por defecto, se encuentra el almacén de certificados de las autoridades de confianza?

A

En el fichero jre/lib/security/CaCerts o JAVA_HOME/jre/lib/security/cacerts, se encuentran los certificados (parte pública) de las CA (autoridades de confianza). Este fichero viene por defecto con la JDK que se haya instalado y tiene una contraseña para entrar: changeit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué property o variable de entorno apunta al archivo de almacén de las autoridades de confianza?

A

javax.net.ssl.trustStore, que apunta al fichero .jks (con el nombre que tenga)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué ocurre si el servidor no tiene en el trustStore ni en el CaCert por defecto la CA del certificado del emisor?

A

Conexión rechazada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Qué property o variable de entorno apunta al archivo de almacén de claves?

A

javax.net.ssl.KeyStore, que apunta al archivo .jks (con el nombre que tenga)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Diferencia entre trustStore y KeyStore

A
  • trustStore : almacén de CA´s (certificados (parte pública) con CA en los que confíar, autenticación)
  • keyStore : almacén de certificados. suele ser 1 (+ clave priv, para firmar)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué es CSP?

A

Content Security Policy.
Este mecanismo protege particularmente de los ataques XSS (Cross-Site Scripting). El servidor mediante esta cabecera en la primera petición, le indica al navegador/cliente de qué dominios se tiene que fiar al solicitar un script (por ejemplo), dado que desde otro dominio malicioso le podrían facilitar otro script malicioso.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Formato de contenedor estándar en BASE64 que puede contener el certificado, la clave privada (en otro archivo aislado del certificado) y la cadena de certificados intermedia en un solo archivo, delimitando por cabeceras claras, facilitando su lectura por sistemas como servidores web Apache/Nginx.

A

.PEM que puede ser .pem; .key; .crt; .cer; .clr, etc
(En BASE64, es decir, cadena de texto ASCII imprimible)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Formato de contenedor de certificado digital, basado en el estándar X.509, utilizado para verificar la identidad de un servidor, sitio web o usuario, y generalmente en formato binario o a veces codificado en texto, que contiene únicamente la parte pública del certificado

A

.CER
Generalmente en formato binario (DER) o a veces codificado en texto (Base64), parecido a los archivos .crt. . No incluye la clave privada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Formato de contenedor de certificado digital con su parte pública, codificado en formato binario, utilizado principalmente en plataformas Java

A

.DER o .CER
.DER (Distinguished Encoding Rules)

Nota: La principal diferencia entre .der y .cer radica en la convención de nomenclatura, no necesariamente en el contenido. Ambos suelen contener certificados digitales X.509, pero .der indica casi siempre codificación binaria, mientras que .cer puede ser binario (DER) o texto (PEM), siendo .der más común en plataformas Java.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Diferencia entre .CER y .CRT

A

Los archivos .CRT suelen estar en formato PEM (BASE64) y se utilizan en sistemas Unix/Linux, mientras que los archivos .CER suelen estar en formato DER (Binario) o PEM (BASE64) y se asocian a sistemas Windows. Funcionalmente, sirven para lo mismo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué formatos de contenedor de certificados contienen certificados digitales X.509 que incluyen la clave pública, información del titular y la firma de una autoridad certificadora, pese a que tengan distinto formato de codificación?

A

.CER (Binario o BASE65)
.DER (Binario)
.CRT (BASE65)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Formato de contenedor que contiene solo el certificado y la cadena de certificación (CA intermedia), pero nunca la clave privada (en ASCII)

A

.p7b o .p7c (pkcs#7)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

A la hora de exportar un .pem, ¿se sabe qué se va a exportar realmente?

A

No, porque se puede exportar lo que se quiera, y hasta que entremos no se sabe lo que es, con lo cual, se puede especificar, indicando la extensión de lo que se va a exportar realmente. Por ejemplo:
.cer o .crt si es un certificado en BASE64 o texto ASCII; .key si es una clave, etc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Formato estándar para guardar un certificado digital y su clave privada en un solo archivo encriptado

A

.p12 y .pfx (PKCS#12)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

En qué formato se exportan los certificados .p12 o .pfx

A

Los archivos .p12 y .pfx se exportan en formato binario PKCS#12, el cual está diseñado para almacenar tanto el certificado digital (clave pública) como su clave privada asociada en un único archivo protegido por contraseña
(con PEM, la clave privada y el certificado suelen estar en archivos separados)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Diferencia entre .p12 y .pfx

A

.pfx es común en Windows (Internet Explorer/Edge) y .p12 en Firefox.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Campos importantes de un certificado

A

● Versión
● Número de serie
● Id del algoritmo usado por la CA para firmar
● Emisor: CA que lo emite
● Validez
● Sujeto: para quién se emite
● Algoritmo de la clave pública del sujeto
● Clave pública del sujeto
● Firma digital: creada por la CA

21
Q

¿Qué pasos existen en el proceso de verificación de un certificado de servidor?

A
  1. Se comprueba la validez
  2. Se comprueba que ha sido emitido para el dominio al que nos hemos conectado
  3. Se verifica que está bien firmado (I+A)
  4. Se comprueba que la CA la tenemos registrada en los almacenes de confianza
  5. Chequear el estado de revocación
22
Q

¿Qué opciones existen para comprobar el estado de revocación de un certificado?

A

● OCSP: protocolo binario online en base al número de serie
● CRL: se descarga la lista de certificados revocados de la CA

23
Q

¿Qué dos soluciones existen para que un certificado pueda ser utilizado en más de un dominio?

A
  • Wildcard : se expide para un dominio y para todos sus subdominios
  • SAN (Subject Alternative Name) : se expide para un domino principal y para otros dominios asociados (Multidominio)

Ambos simplifican la gestión de seguridad HTTPS.

24
Q

¿Qué es necesario para abrir un canal SSL/TLS?

A

Tiene que existir una sesión o canal TCP abierto

25
¿Qué dos componentes son claves para que el protocolo SSL/TLS garantice la seguridad en internet?
- **El Handshake Protocol** (negociación), acordar y establecer algoritmos y claves. HandShake, ChangeCipherSpec, Alert, Application - **Record Protocol** (registro), que utiliza dichas claves para cifrar, comprimir y verificar la integridad de los datos transmitidos. Fragmentation, Integrity, Authentication, Encryption.
26
Vulnerabilidades SSL/TLS
● Ataque HEARTBLEED ● Ataque BEAST ● Ataques CRIME ● Ataques BREACH ● Ataque FREAK ● Ataque POODLE ● Ataque Logjam
27
¿En qué consisten los algoritmos de cifrado simétrico?
Son algoritmos de una sola clave para cifrar y descifrar, rápidos computacionalmente, pero con el problema de distribución de la clave.
28
¿En qué consisten los algoritmos de cifrado asimétrico?
Son algoritmos en los que se usan 2 claves, es decir, lo que se hace o se cifra con una se deshace o se descifra con la otra. Son lentos, pero no existe el problema de distribución de clave.
29
Indicar algoritmos de cifrado simétrico
- AES - 3DES - RC5 - IDEA - BLOWFISH - ChaCha20
30
Indicar algoritmos de cifrado asimétrico
- RSA - DSA - DH (Diffie Hellman) : para el intercambio de claves - EC (Curva Elíptica) : se puede combinar con DH y DSA formando ECDH y ECDSA - ElGamal
31
¿Cómo se llaman las funciones que sirven para garantizar **integridad** a base de generar un residuo de tamaño fijo a partir de un mensaje/documento?
**Funciones MIC**: Message Integrity Code (aka hash, checksum,…) (Generan un “residuo” de tamaño fijo a partir de un mensaje/documento)
32
¿Cómo se llaman las funciones que sirven para garantizar **integridad y autenticidad** a base de generar un residuo de tamaño fijo a partir de un mensaje/documento + una clave?
**Funciones MAC**: Message Authentication Code (especie de firma digital) (Generan un “residuo” de tamaño fijo a partir de un mensaje/documento + clave)
33
Ejemplos de funciones MIC
- MD5 (tamaño de residuo de 128 bits). Obsoleto - SHA1 (tamaño de residuo de 160 bits). Obsoleto - SHA2 (224, 256, 384 y 512 bits) - SHA3 (224, 256, 384 y 512 bits)
34
Ejemplos de funciones MAC
- PMAC - UMAC-VMAC - Poly1305 - HMAC (Basada en hash). Ver JSON Web Token e IPSec
35
¿Qué diferencia hay entre firma digital y función MAC?
La función MAC garantiza integridad y autenticidad, mientras que la firma garantiza integridad, autenticidad y no repudio.
36
Diferencias entre Integridad, Confidencialidad, Autenticidad y No Repudio
- **Confidencialidad:** Garantiza que solo las personas autorizadas accedan a la información, manteniéndola privada. - **Integridad:** Asegura que los datos sean precisos, fiables y no hayan sido modificados sin autorización. - **Autenticidad:** Verifica que los usuarios o sistemas sean quienes dicen ser, validando el origen de la información. - **No Repudio:** Garantiza que el autor de una acción o transacción no pueda negar posteriormente haberla realizado.
37
Indicar sistemas híbridos (cifrado simétrico y cifrado asimétrico)
SSL/TLS, SSH y PGP **TLS/SSL**: Protocolo que protege la navegación web (HTTPS). **PGP (Pretty Good Privacy) / GnuPG**: Estándares para el cifrado de correos electrónicos y archivos. **SSH**: Utilizado para conexiones seguras a servidores remotos.
38
¿Qué es PGP?
PGP (Pretty Good Privacy) es un programa de seguridad criptográfica utilizado para cifrar, descifrar y firmar digitalmente correos electrónicos y archivos, asegurando la confidencialidad y autenticidad de los datos. Desarrollado por Philip Zimmermann en 1991, funciona mediante una combinación de criptografía simétrica y asimétrica de clave pública
39
Método de código de autenticación de mensajes que es extremadamente rápido tanto en software como en hardware, superior a HMAC-MD5 o AES-CBC-MAC y es muy utilizado hoy en día en combinación con ChaCha20 (ChaCha20-Poly1305) en TLS, SSH y WireGuard (AEAD - Autenticación y Cifrado).
Poly1305
40
En JAVA, ¿dónde está el fichero con CAs de confianza por defecto?
JAVA_HOME/jre/lib/security/cacerts (password changeit)
41
Almacén (path) del JKS con clave privada
javax.net.ssl.KeyStore
42
Propiedad del sistema en Java que define la ruta del archivo que contiene los certificados digitales de confianza (Autoridades de Certificación - CA), permitiendo que las aplicaciones Java verifiquen la identidad de servidores externos durante conexiones HTTPS, garantizando seguridad y evitando errores en la comunicación SSL/TLS
javax.net.ssl.trustStore
43
Propiedad del sistema Java que define la ubicación del almacén de claves (archivo) utilizado para la autenticación en conexiones SSL/TLS, comúnmente en HTTPS y contiene claves privadas y sus certificados asociados para identificarse ante servidores u otros clientes.
javax.net.ssl.keyStore
44
Propiedad del sistema en Java utilizada para especificar la contraseña necesaria para acceder al archivo KeyStore (almacén de claves)
javax.net.ssl.KeyStorePassword
45
Propiedad del sistema Java que define la contraseña necesaria para abrir y acceder al archivo trustStore (almacén de certificados de confianza)
javax.net.ssl.trustStorePassword
46
Propiedad del sistema de Java utilizada para depurar problemas de red, específicamente conexiones SSL/TLS que al activarla, se imprime en la consola un registro detallado de todo el proceso de intercambio de claves, handshake y transferencia de datos, esencial para solucionar errores como SSLHandshakeException
javax.net.debug = all
47
Herramienta de código abierto con interfaz gráfica (GUI) diseñada para gestionar, crear, leer y editar almacenes de claves (keystores) y certificados de seguridad, actuando como una alternativa fácil de usar a los comandos de línea de comandos keytool y jarsigner de Java
KeyStore Explorer
48
Utilidad de línea de comandos de Java (JDK) utilizada para gestionar claves criptográficas, pares de claves públicas/privadas y certificados (X.509)
Keytool
49
Librería de terceros o colección de APIs de criptografía de código abierto, ampliamente utilizada en entornos Java y .NET (C#) para implementar seguridad
BouncyCastle