| Proyecto Integral de Ingeniería del Software | |
|---|---|
| Metodologías Ágiles |
| Trabajo Fin De Grado | |
|---|---|
| Guía Memoria TFG |
| Servidores | |
|---|---|
| Minercraft | |
| Knoppia | |
| Omegacraft |
| Base de datos de juegos | |
|---|---|
| GameBoy Advance (GBA) |
| Proyecto Integral de Ingeniería del Software | |
|---|---|
| Metodologías Ágiles |
| Trabajo Fin De Grado | |
|---|---|
| Guía Memoria TFG |
| Servidores | |
|---|---|
| Minercraft | |
| Knoppia | |
| Omegacraft |
| Base de datos de juegos | |
|---|---|
| GameBoy Advance (GBA) |
Es una evolución de SSL (Secure Socket Layer) para proveer comunicaciones seguras a través de infraestuctura insegura. Provee un canal seguro a un servicio arbitrario de internet. Garantiza autenticación, confidencialidad e integridad, tiene los siguientes objetivos:
La arquitectura de TLS en internet es la siguiente:
Transporta y, opcionalmente, cifra cada mensaje TLS entre 2 aplicaciones. Un registro TLS tiene la siguiente estructura:
Responsable de la negociación de los parámetros de conexión y realizar la autenticación. Intercambia entre 6 y 10 mensajes, dependiendo de las características. Suelen haber 3 flujos comunes:
struct { HandshakeType msg_type; //1 Byte uint24 length; HandshakeMessage message; //Depende del tipo de mensaje } Handshake;
El funcionamiento de un handshake con autenticación de servidor sería el siguiente:
Siguen los siguientes pasos:
En este caso tenemos 2 tipos de comunicación extra:
Esto reduce el tiempo necesitado para el establecimiento de conexión. El procedimiento para el ID de sesión sigue estos pasos:
Se usa para derivar la clave premaestra:
Normalmente se usa altún tipo de clave pública criptográfica. Normalmente se usa RSA, pero también el Algoritmo de Firma Digital de Curva Elíptica (ECDSA):
Una funcion Pseudo-Aleatoria (PRF) genera cantidades arbitrarias de datos pseudoaleatorios. en TLSv1.2 se basa en HMAC (Hash-Based MAC) y SHA256 (Secure Hash Algorithm). TLSv1.3 usa HKDF (Hashed Message Authentication Code)
PRF(Secret, label, seed) = P_hash(secret, label⊕seed)
Siendo ⊕ la concatenación de la operación.
$$ P_{\text{hash}}(secret, seed) = \underset{i=1}{\bigoplus} \mathrm{HMAC}_{\text{hash}} \left(secret, A(i) \oplus seed\right) $$
P_hash es una función de expansión de datos donde:
La meta de la PKI es permitir a personas que nunca se han conocido comunicarse de forma segura. Los objetivos que tiene PKI son los siguentes:
Se basa en terceras partes, en este caso, Autoridades Certificadoras (CA), estas emiten certificados con claves públicas. X.509 Es un estándar internacional para PKI adaptado para ser usando en internet.
Normalmente los certificados tienen los siguientes campos:
Se puede extender el certificado con las siguientes extensiones:
Los certificados tienen el siguiente ciclo de vida:
Se debe confiar en una serie de certificados CA raiz por sistemas operativos o desarrollador, por ejemplo: