Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SSL/TLS - SSH
Protocolo de Protocolo
Protocolo de
negociación de datos
alertas
(handshake prot.) de aplicación
SSL/TLS
Protocolo de paquetes
(record protocol)
TCP/IP
Función seudo-aleatoria
Semilla
Estado A +
Secreto
Inicialmente A = Semilla
Función seudo-aleatoria
Función PRF (secreto, etiqueta, semilla)
Secreto
S1 S2
Client hello
● 28 bytes aleatorios
Server hello
● 28 bytes aleatorios
● ID de sesión
...
Protocolo de negociación
Servidor
Cliente
● Diffie-Hellman: p, g, gx
...
Finished
Primeros 12 bytes de
PRF (secreto principal, “client finished”,
MD5(negociación) + SHA1(negociación) )
Finished
Primeros 12 bytes de
PRF (secreto principal, “server finished”,
MD5(negociación) + SHA1(negociación) )
Generación de las claves
Generar
PRF (secreto principal, “key expansion”,
No. aleatorio cliente + No. aleatorio servidor)
Partir este flujo aleatorio en
➔ Clave MAC cliente
➔ Clave MAC servidor
➔ Clave cifrado cliente
➔ Clave cifrado servidor
Protocolo de alertas
Proporciona privacidad
➔ Encripción simétrica
Proporciona integridad
➔ MAC con clave (HMAC_MD5, HMAC_SHA1)
Encapsula los datos de la capa superior
➔ Fragmenta en bloques menores que 16384 bytes
➔ Comprime (opcional)
➔ Calcula MAC
➔ Cifra
Protocolo de paquetes (record protocol)
➔ Contenido (comprimido)
➔ MAC
Protocolo de paquetes (record protocol)
➔ Vector de inicialización
➔ Contenido (comprimido)
➔ MAC
➔ Relleno (hasta múltiple del tamaño de bloque)
➔ Longitud del relleno
2. Secure Shell SSH
Protocolo SSH 2.0
RFCs 4250-4246
Establecer un canal seguro entre cliente y servidor
➔ Sesión de comandos remota (reemplaza telnet, rsh, rlogin)
➔ Transmisión de archivos (sftp, scp)
➔ Re-envio de puertos (Ej. X11, correo, VNC...)
Tres capas
➔ Capa de transporte
➔ Capa de autenticación del usuario
➔ Capa de conexión
SSH2 incompatible con SSH1 (obsoleto)
Protocolo SSH 2.0
Confidencialidad (encripción)
Integridad (MAC)
Autenticación
➔ Computadora servidor
➔ Computadora cliente (opcional)
➔ Usuario
Basado en claves públicas
Protocolo de capa de transporte
RFC 4253
Protocolo de bajo nivel
Corre encima de TCP/IP (puerto 22)
Asegura la autenticación del servidor
Proporciona encripción, integridad y compresión
(opcional)
Maneja el intercambio de clave inicial y las
renovaciones (recomendadas después de 1GB
transmitidos o 1 hora)
Todos los algoritmos son negociados
Protocolo de capa de transporte
Negociación de los algoritmos
Cliente
Lista de algoritmos
*
requerido
Servidor
Protocolo de capa de transporte
Intercambio de clave (Diffie-Hellman)
Servidor
Cliente
X = gx mod p Y = gy mod p
X K = X y mod p
H=hash( KS | X | Y | K )
s = firmaKs (H)
K = Y x mod p KS, Y, s
H=hash( KS | X | Y | K )
VerificaKs (H,s)
Opcional: verifica validez de KS , clave pública del servidor
(base de datos local o certificado)
Protocolo de capa de transporte
Intercambio de clave (Diffie-Hellman)
Paquetes binarios
MAC
SSH_MSG_USERAUTH_SUCCESS
SSH_MSG_USERAUTH_FAILURE
+ lista de métodos restantes
SSH_MSG_USERAUTH_REQUEST
Nombre del usuario
“publickey”
o
Algoritmo de clave pública usado
¿Clave aceptable?
¿Firma válida?
Servidor
Autenticación por contraseña
Cliente
SSH_MSG_USERAUTH_SUCCESS
SSH_MSG_USERAUTH_FAILURE
+ lista de métodos restantes
SSH_MSG_USERAUTH_REQUEST
Nombre del usuario
o
“password”
Contraseña en claro
Verifica par
usuario/contraseña
en su base de datos
Servidor
Autenticación basada en computadora cliente
Cliente
SSH_MSG_USERAUTH_SUCCESS
SSH_MSG_USERAUTH_FAILURE
SSH_MSG_USERAUTH_REQUEST
“hostbased”
o
Clave pública de la computadora cliente
Servidor
Autenticación interactiva
SSH_MSG_USERAUTH_REQUEST
Nombre del usuario
“keyboard-interactive”
Servidor
Autenticación interactiva
Cliente Despliega “Nombre de la petición”
Despliega “Instrucciones”
SSH_MSG_USERAUTH_INFO_REQUEST
Nombre de la petición
Instrucciones
Número de prompts n
Prompt1
Echo
1
...
Promptn
Echo
n
Servidor
Autenticación interactiva
Cliente
SSH_MSG_USERAUTH_INFO_REQUEST
SSH_MSG_USERAUTH_SUCCESS
SSH_MSG_USERAUTH_FAILURE
+ lista de métodos restantes
SSH_MSG_USERAUTH_INFO_RESPONSE
Número de respuestas n
o
Respuesta1
...
Respuestan
Servidor
Protocolo de conexión