Protocolos de Seguridad en Conexiones
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 5,44 KB
a) Iniciación de la conexión:
El cliente inicia una conexión con el servidor en el puerto apropiado y luego envía SSL/TLS ClientHello para iniciar el handshake SSL/TLS.
3 Niveles (SSL, HTTP, data):
- En el nivel HTTP (aplicación) el cliente solicita una conexión a un servidor HTTP enviando una solicitud de conexión a la capa inferior siguiente.
- En la capa siguiente TCP (transporte) o TLS/SSL. se establece una sesión entre el cliente TLS y el servidor TLS.
- Tres capas clave de seguridad siguientes:
- Cifrado: se cifran los datos intercambiados.
- Integridad de los datos: los datos no pueden modificarse sin que se detecte.
- Autenticación: garantiza que tus usuarios se comuniquen con el sitio web previsto.
b) Finalización de la conexión:
Un cliente o servidor HTTP puede cerrar una conexión incluyendo la siguiente línea en un registro HTTP: Connection: close. En el nivel TLS, la forma correcta de cerrar una conexión es que cada lado utilice el protocolo de alerta TLS para enviar una alerta close_notify. Una implementación de TLS puede, después de enviar una alerta de cierre, cerrar la conexión sin esperar a que el interlocutor envíe su alerta de cierre, generando un "cierre incompleto".
3.6.2 Secure Shell (SSH)
a) Protocolo del Nivel de Transporte (Transport Layer Protocol):
Este protocolo, establece la autenticación del servidor al nivel de la capa de transporte, en función de que el servidor provea un par de claves públicas/privadas. Varios usuarios pueden compartir la misma clave de host. La clave de host del servidor se utiliza durante el intercambio de claves para autenticar la identidad del host. Para que esto sea posible, el cliente debe tener un conocimiento a priori de la clave de host pública del servidor.
Modelos de confianza alternativos:
1. El cliente tiene una base de datos local que asocia cada nombre de host con la clave de host público correspondiente con base de datos costosa. La asociación host-to-key es certificada por una autoridad de certificación (CA) de confianza. El cliente sólo conoce la clave raíz de CA y puede verificar la validez de todas las claves de host certificadas por CA aceptadas.
Funcionamiento del protocolo de capa de transporte SSH:
En primer lugar, el cliente establece una conexión TCP con el servidor. Esto se realiza a través del protocolo TCP y no forma parte del protocolo de capa de transporte. Una vez establecida la conexión, el cliente y el servidor intercambian datos, denominados paquetes, en el campo de datos de un segmento TCP. Cada paquete tiene el siguiente formato:
- Longitud del paquete: en bytes y los campos MAC.
- Longitud de relleno: aleatorio.
- Carga útil: contenido útil del paquete, antes de la negociación del algoritmo.
- Relleno aleatorio: se agrega campo bytes aleatorios para que la longitud total del paquete sea un múltiplo del tamaño del bloque de cifrado u 8 bytes para un cifrado de flujo.
- Código de autenticación de mensajes (MAC)
- Número de secuencia: es una secuencia implícita de paquetes de 32 bits que se inicializa en cero para el primer paquete y luego incrementa.
- Una vez que se ha negociado un algoritmo de encriptación, todo el paquete (sin MAC) se cifra después de calcular el valor MAC.
Etapas del intercambio de paquetes:
Intercambio de string de identificación entre servidor y cliente. Negociación de algoritmo, ambos envían paquete con la lista de algoritmos criptográficos soportados la preferencia la fija el emisor, los que soportan el intercambio de claves, encriptación, algoritmo MAC y encriptación.
En el intercambio de claves hoy se usan dos versiones de Diffie-Hellman.
b) Protocolo de autentificación de usuarios:
Provee las formas como el cliente es autenticado ante el servidor.
Formas
- Tipos de mensajes y formatos: byte SSH_MSG_USERAUTH_REQUEST, string username, string servicename, string method name.
- Intercambio de mensajes:
- Paso 1: cliente envía un requerimiento de autenticación de usuario.
- Paso 2: el servidor chequea validez del nombre de usuario, denegando el acceso o permitiéndolo.
- Paso 3: el servidor devuelve una lista con uno o más métodos de autenticación para ser usados.
- Paso 4: el usuario selecciona e informa qué método va a usar.
- Paso 5: si falta información para la autenticación o se requiere un método adicional se retorna al paso 3.
- Paso 6: cuando el método de autenticación ha sido exitoso el protocolo finaliza.
Métodos de autenticación de mensajes:
El servidor puede requerir publickey o claves públicas, password (para TLS).
c) Protocolo de conexión:
Asume que la autenticación está en uso y provee un túnel para el flujo de información de múltiples canales lógicos.
- Maneja:
- M de canalización: aperturado el canal. Un canal tiene tres estados: apertura, transferencia de datos y cerrado del canal.
- Tipos de canal:
- Sesión: ejecución remota de un programa.
- X11: referido a X Window, las aplicaciones corren desde un servidor.
- TCP/IP remoto o redireccionado.
- TCP/IP directo.
- Redireccionamiento de puerto: para convertir cualquier puerto TCP inseguro en una conexión SSH segura.