Documente Academic
Documente Profesional
Documente Cultură
Autenticación
Contenido de la sesión
Sistemas de autenticación
Basados en password
Basados en dirección
Protocolos criptográficos de autenticación
Intermediarios confiables (KDCs)
Claves de sesión
Autorización
Delegación
1
Contenido de la sesión
Autenticación de personas
Passwords, problemas
Tokens de autenticación
Acceso físico
Sistemas biométricos
Contenido de la sesión
Handshake seguro
Login
Autenticación mutua
Integridad y cifrado de datos
Autenticación mediada (con KDC)
2
Contenido de la sesión
Kerberos
Tiquetes
Configuración
Procedimiento de logon
KDCs replicados
Realms (dominios)
Cifrado
3
Autenticación: ¿Qué es?
Autenticación en redes
Computador autentica computador
Computador autentica persona
Combinación de factores
4
Autenticación basada en
passwords
Algo que el usuario conoce
Origen: La guerra
Autenticación basada en
passwords
Problema: Espionaje
¿Por qué no se usa criptografía?
Protocolo concebido originalmente para
interacción con humanos
Costo
Problemas legales
Caso: Teléfonos celulares
ESN + número de línea
5
Problemas de los passwords
Espionaje “por encima del hombro”
Robo de la base de datos de usuarios
Passwords débiles
Fáciles de adivinar
Reglas complicadas
Sistema inaccesible
¡Los usuarios escriben los passwords!
6
Adivinar passwords
“fuera de línea”
Robo archivo de passwords
El atacante puede tomarse todo el tiempo
necesario
John the Ripper
Solución: Cifrar el archivo de passwords
Mantenerla clave en memoria
Windows 2000 y superiores: SYSKEY
SYSKEY
7
Otros problemas
Usar el mismo password en múltiples
sitios
Efecto dominó
Cambios demasiado frecuentes
Caballo troyano de captura de passwords
Distribución inicial de los passwords
Tokens de autenticación
Dos factores
Tarjetas inteligentes
Tarjeta de memoria protegida con PIN
Tarjetas criptográficas desafío/respuesta
8
Tokens de autenticación
Calculadoras criptográficas
Tarjetainteligente sin lector
No requieren de hardware especial
Versiones en software
Acceso físico
Puede implementarse, dependiendo de la
política de seguridad
Guardias
Acceso únicamente desde ciertas terminales
Otorgar privilegios dependiendo del sitio
donde se efectúe el acceso
9
Dispositivos biométricos
Escáner de retina
Vasos sanguíneos
Dispositivos biométricos
Lectores de huella digital
10
Dispositivos biométricos
Lectores de huella palmar
Geometría de la mano
Da más falsos positivos que la
huella
Dispositivos biométricos
Huella de voz
Se puede engañar con una grabación
¿Y si la persona se enferma?
11
Dispositivos biométricos
Estilo de escritura
¡Toda persona tiene
una forma diferente
de usar el teclado!
Fuerza, longitud de
las pulsaciones,
pausas
Dispositivos biométricos
Firmas
Dibujo + forma cómo se hace
12
Dispositivos biométricos
Ninguno es inherentemente seguro
Se transmite información al computador
Debe tenerse en cuenta algún mecanismo de
cifrado
Sistemas de autenticación
basados en localización
No se envían passwords
La identidad se puede inferir por la
dirección desde donde se acceden los
recursos
Comandos “r” de Unix Berkeley
rlogin
rsh
rcp
13
Comandos “r” de Unix
Máquinas equivalentes
/etc/hosts.equiv
Lista
<dirección, nombre local, nombre
remoto>
~/.rhosts
Por usuario
Dirección, nombre local, nombre remoto
Problemas
Intruso gana acceso a un equipo
Tieneinmediatamente acceso a TODOS los
equipos que confíen en el equipo atacado
Intruso falsifica las direcciones de red
IP spoofing
14
Sistemas de autenticación
basados en criptografía
A demuestra su identidad a B
B proporciona un dato a A
A efectúa una operación criptográfica sobre el
dato
B comprueba la identidad
A quién se autentica?
Usuario
Bernardo desea acceder a los archivos que
tiene en un servidor
Máquina
Réplicas de un servicio de directorio
Usuario + máquina
Cajero de un banco
15
A quién se autentica?
Diferencia
entre autenticar una persona y
un computador
Computador
Almacena un valor secreto de alta calidad
Usuario
El computador lo puede almacenar por él
El usuario debe recordar un password
Hash
Soy Andrea
Andrea R Bernardo
R firmado con clave privada
16
Espionaje y robo de la base de
datos
Sin criptografía de clave pública, es difícil cubrir
ambos frentes
Este protocolo no asegura contra el espionaje
Soy Andrea
Andrea R Bernardo
X
17
Intermediarios confiables
La seguridad de la red funciona con el
esquema de clave secreta
N nodos
Cada nodo necesita conocer N-1 claves
¿Qué pasa si N es muy grande?
Intermediarios confiables
Solución: Nodo confiable
Key Distribution Center (KDC)
Los demás nodos sólo tienen clave del KDC
Si A decide hablar con B:
A solicita al KDC un tiquete para hablar con B
El KDC genera una clave
La cifra con la clave de B y la de A, por separado
Envía todo el paquete a A
18
Ventajas del KDC
¿Usuario nuevo?
¿Recurso nuevo?
¿Clave comprometida?
¡Solamente hay que cambiar la clave en
un sitio!
19
Autoridad de certificación (CA)
La distribución de claves es más fácil con
un esquema de clave pública
Problema: Publicación de las claves
¿Cómo asegurarse de que la información es
correcta?
Solución: Nodo confiable
CA: Certification Authority
20
Ventajas de una CA sobre un
KDC
La CA no necesita estar en línea
Muchísimo más simple
Si la CA sale de servicio, la red no
No se pueden expedir certificados nuevos
Los certificados no son sensitivos a la seguridad
¡Una CA comprometida no puede escuchar
conversaciones ajenas!
Problema con las claves...
Revocación de certificados
Se expide un certificado para un
empleado
El empleado es despedido
¿Cómo negarle acceso?
Enun KDC es fácil…
¿Pero con una CA?
21
Revocación de certificados
Tarjetas de crédito
Boletínde Datacrédito
Terminales
Listas de certificados revocados (CRLs)
Seriales de certificados que no se deben
aceptar
Publicada con frecuencia
Estándar X.509
Revocación de certificados
Se configuran las aplicaciones para que
revisen las CRLs con frecuencia
Posibles problemas
Tiempo de vida de los certificados
¿Demasiado largo? ¿Corto?
Revocación masiva de certificados
Solución:
Usar número de serie
únicamente
22
Claves de sesión
Autenticación con intercambio
criptográfico vs. password
¡Más segura!
Vulnerabilidades después de la
autenticación
Espionaje de la conversación
Modificación o “reproducción” de la sesión
Secuestro de la sesión
Claves de sesión
Solución:Conversación cifrada
¿Qué se emplea como clave?
Clave pública
Cifradopara confidencialidad
Firma para integridad
Problema: ¡Operaciones costosas!
23
Claves de sesión
Clave secreta
Se crea durante el handshake
¿Por qué generar una clave de sesión?
Una clave se “gasta” si se usa mucho
Inyección de paquetes de una conversación
anterior
Claves de sesión
¿Por qué generar una clave de sesión?
Evitar descifrado de conversaciones
anteriores (mal uso de la clave de largo plazo)
Si el receptor es poco fiable, es buena idea
usar una clave desechable en lugar de una
permanente
24
Ejemplo: SSL
Secure Sockets Layer
Esquema más popular para cifrado de
páginas web
Inicio: Contactar el servidor por el puerto
443
HTTPS
SSL
Verificar certificado:
- Nombre del sitio
- CA válida
- Fecha de expedición / vencimiento
25
SSL
SSL
Fin negociación
26
SSL
Fin negociación
… Conversación cifrada …
Autorización
Autenticación = ¿Quién soy?
Autorización = ¿Qué puedo hacer?
Ejemplo: Acceso en una red
ACL
Usuarios
Recursos
Seguridad - Juan Manuel Madrid 54
27
ACLs
Cruce completo de recursos vs. usuarios
Problemas de escalabilidad y mantenimiento
Alta granularidad
Grupos
Matricularusuarios
Especificar al grupo en la ACL
Grupos jerárquicos
Delegación
Trabajar en nombre de otro
Esquemas
Dar password propio a la persona / recurso
Incluir a la persona / recurso en la ACL
Delegación
Generar mensaje firmado por el autorizador
A quién y sobre qué se le otorga permiso
Por cuánto tiempo
28
Delegación
Con esquema de clave pública
El autorizador firma el mensaje
Con clave secreta (KDC)
Instruiral KDC para que genere el mensaje
Cifrarlo con la clave del KDC
Enviarlo al autorizado
El autorizado no puede leerlo, el KDC sí.
Handshake seguro
Saludo inicial
Información secreta y no secreta
Problema
¡Muchos incluyen huecos de seguridad en su
diseño!
¡Pequeñas alteraciones (mejoras) pueden
volver inseguro un protocolo que era seguro!
29
Handshake para login con clave
secreta
Lomás común: Enviar todo sin protección
Mejora: Desafío / respuesta
Soy Andrea
Andrea R Bernardo
KBernardo-Andrea{R}
Debilidades
La autenticación no es mutua
¡Andrea NO autentica a Bernardo!
Sino hay más cifrado / autenticación,
alguien podría “secuestrar” la
conversación
IP spoofing
30
Debilidades
Sepuede tratar de averiguar el password
fuera de línea
Desafíos + respuestas cifradas
Si
alguien lee la base de datos del equipo
de Bernardo, puede hacerse pasar por
Andrea
Protección de base de datos Y BACKUPS
Variante #1
Soy Andrea
31
Diferencias
Requiere de criptografía reversible
El anterior se puede implementar con un hash
Es posible averiguar la clave
Enviarmensaje “Soy Andrea”
Obtener KBernardo-Andrea{R}
Kerberos v4
Si R es reconocible (NA + timestamp), Andrea
puede autenticar a Bernardo
Siempre que KBernardo-Andrea no haya caído en malas
manos
Seguridad - Juan Manuel Madrid 63
Variante #2
Usar un timestamp en lugar de R
32
Implicaciones
Relojessincronizados
Puede añadirse muy fácilmente a
esquemas de sólo password
No hay necesidad de que Bernardo
recuerde los R usados
Un espía puede hacerse pasar por Andrea
Tolerancia de los relojes
Implicaciones
Múltiples servidores
Un intruso podría “reproducir” el handshake
en otra máquina
Incluir el nombre del servidor en el mensaje
El
intruso podría atrasar el reloj del
servidor
Reproducción
Y si se descuadra el reloj?
33
Handshake para login con clave
pública
Los protocolos de clave secreta son
vulnerables a la lectura de la BD
Se puede evitar el problema usando
claves públicas
Ejemplos
Soy Andrea
Andrea R Bernardo
FAndrea(R)
Soy Andrea
34
Problemas
Primer protocolo
¡Se puede engañar a Andrea para que firme algo!
Segundo protocolo
¡Se puede engañar a Andrea para que descifre algo!
Solución
¡No permitir el uso de un protocolo para romper otro!
Darle estructura a R
PKCS
Autenticación mutua
Problema: Algo ineficiente
Soy Andrea
R1
Andrea KAndrea-Bernardo{R1}
Bernardo
R2
KAndrea-Bernardo{R2}
35
Autenticación mutua
Problema: Ataque de reflexión
Soy Andrea, R2
Ataque de reflexión
Soy Andrea, R2
Soy Andrea, R1
36
Ataque de reflexión
Cómo evitarlo
Usar claves diferentes
Usar desafíos diferentes
Uno par, otro impar
Concatenar el nombre del usuario
El protocolo largo no sufría de este problema!
El iniciador debe comprobar primero su identidad
R1
Andrea Bernardo
KAndrea-Bernardo{R1}, R2
KAndrea-Bernardo{R2}
37
Autenticación mutua con clave
pública
Claves públicas correctas?
Servidor de directorio
CA
Andrea KBernardo-Andrea{TS+1}
Bernardo
38
Integridad y encripción de datos
Establecer una clave de sesión
Se puede emplear información del handshake
para generarla
La clave no debe ser fácilmente deducible del
intercambio
Introducir incertidumbre
39
Autenticación mediada con KDC
Ultimo paso
Autenticación mutua entre A y B
Kerberos
Serviciode autenticación
Basado en esquema de clave secreta
Creado en el MIT
Dos versiones: v4 y v5
40
Kerberos
Servidor
KDC
Clientes
Aplicaciones “kerberizadas”
Compiladas con las librerías de Kerberos
Tanto el cliente como el servidor
Kerberos
Ejemplos de aplicaciones “kerberizables”
Telnet
FTP
Comandos “r” de UNIX
SSH
Correo electrónico
41
Terminología
KDC = Key Distribution Center
AS = Authentication Server
TGS = Ticket Granting Server
Los dos residen en el KDC
Funcionamiento
Usuario se identifica en una terminal
Username + password
La terminal solicita al KDC
Una clave de sesión
Un TGT
42
Solicitud de clave y TGT
El usuario
Username, password necesita un
TGT
Estación
Usuario de KDC
trabajo KU{SU, TGT}
Crea clave SU
Busca clave KU del
usuario
TGT=KKDC{“Usuario”, SU}
Estación
Usuario de KDC
trabajo SU{“Homero”, KUH, tiquete a Homero}
43
Conexión a un servicio remoto
Estación
de Homero
trabajo KUH{TS + 1}
KDCs replicados
El KDC es un recurso crítico
¿Qué pasa si falla? ¿Desempeño?
Replicación
Un sitio: Copia maestra
Recibe todas las actualizaciones
Luego se distribuyen
44
Realms de Kerberos
Se asocian con los dominios
Permiten manejar regiones en redes
grandes
Credenciales a Mafalda
Autenticación
45
Cifrado
PCBC (Plaintext Cipher Block Chaining)
m1 m2 m3 m4 m5
IV + + + + +
E E E E E
c1 c2 c3 c4 c5
46