Fundamentos de Criptografía y Sistemas Distribuidos: RSA, Firmas Digitales y Replicación Tolerante a Fallos
Criptografía y Seguridad de la Información
RSA: Criptografía de Clave Pública
El algoritmo RSA se basa en el uso del producto de dos números primos muy grandes.
- La determinación de los factores primos de números tan grandes es computacionalmente tan difícil que resulta imposible calcularlos en un tiempo razonable.
- El emisor encripta con la clave pública, y el receptor desencripta con la clave privada.
- La clave pública está disponible para los atacantes, lo que subraya la importancia de la seguridad de la clave privada.
Características de las Funciones Hash Criptográficas
Las funciones Hash (o funciones resumen) son esenciales para garantizar la integridad de los datos.
Propiedades Fundamentales:
- Deben ser fáciles de calcular.
- Son funciones de una sola dirección (one-way function), es decir, no son reversibles.
- Es altamente improbable que dos mensajes diferentes produzcan el mismo resumen (resistencia a colisiones).
- El resumen del mensaje original está compuesto por una cadena de caracteres de longitud fija.
Usos Comunes:
- Firma digital.
- Comprobación de integridad de datos.
Implementación de Firmas Digitales
La criptografía se utiliza para implementar la firma digital, que garantiza el carácter inalterable de un mensaje.
- Esto se logra encriptando una forma comprimida del mensaje (el resumen), empleando una clave solo conocida por el firmante (la clave privada).
- El resumen es un valor de longitud fija obtenido mediante una función de resumen segura.
- La desencriptación (verificación de la firma) se realiza mediante una clave pública.
- El verificador debe asegurarse de que la clave pública utilizada es la que realmente desea el firmante (distribución asegurada por certificados de clave pública).
Certificados Digitales
Un Certificado es un documento digital que contiene una sentencia firmada por un principal (una Autoridad de Certificación).
Requisitos para la Utilidad de los Certificados:
- Un formato estándar y una representación para ellos, de modo que los emisores de certificados y los usuarios puedan construirlos e interpretarlos.
- Un acuerdo sobre la forma en que se construyen las cadenas de certificados.
Protocolo SSL/TLS
El protocolo SSL (Secure Sockets Layer, ahora mayormente reemplazado por TLS) está diseñado para:
- Permitir que los algoritmos de encriptación y desencriptación puedan negociarse al principio y final de la conexión.
- El canal seguro se establece mediante un protocolo de esquema híbrido.
- El cambio de algoritmos en cada etapa es opcional y negociable.
Sistemas Tolerantes a Fallos y Replicación
Características de los Sistemas Tolerantes a Fallos
Los sistemas tolerantes a fallos están diseñados para mantener su funcionalidad incluso ante la presencia de errores.
Propiedades Esenciales:
- En presencia de fallos, cumplen la especificación definida.
- Obtener respuesta suele ser parte de la especificación (alta disponibilidad).
Clasificación de Fallos por Repetición:
- Transitorios.
- Intermitentes.
- Permanentes.
Clasificación de Fallos por Tipo:
- Fallo de parada (fail-stop).
- Fallos Bizantinos (comportamiento arbitrario o malicioso).
Modelos de Replicación
Replicación Pasiva (Modelo Primario/Respaldo)
En este modelo, solo un servidor (el principal o primario) maneja las peticiones.
- Todas las peticiones se dirigen al principal.
- El principal ejecuta las operaciones y envía copias de los datos a los gestores de respaldo.
- Los servidores de respaldo mantienen el estado por si tienen que sustituir al primario.
- Es más económico y usado que las máquinas de estado replicadas.
- Es linealizable.
- Limitaciones: No tolera fallos bizantinos. No tolera particiones de red.
Replicación Activa (Máquinas de Estado Replicadas)
En este modelo, todos los servidores procesan las peticiones simultáneamente.
- Los frontales multidifunden sus peticiones al grupo de Gestores de Réplica (GR).
- Todos los GR procesan la petición de manera independiente, pero idéntica, y responden.
- Si cae un GR, no tiene necesariamente impacto en las prestaciones del servicio.
- Ventaja clave: Soporta fallos bizantinos.