Área de Ingeniería Telemática
Dpto. Automática y Computación
http://www.tlm.unavarra.es/
En clases anteriores...
‣ La cadena de seguridad
> Seguridad perimetral
‣ Sistemas de defensa
> Firewalls, IDSs, honeypots...
Hoy
‣ Asegurando el canal de comunicación
> Un poco de criptografia
Criptografía
2
/28
Criptografía
‣ En ocasiones tenemos que enviar datos sensibles a través de redes o
enlaces que no son de confianza
Propiedades a garantizar/problemas a resolver
‣ Confidencialidad
> Solo emisor y receptor son capaces de entender el contenido del
mensaje (encriptación)
‣ Autentificación
> Ambos son capaces de confirmar la identidad del otro
‣ Integridad y no repudio
> Verificar que el mensaje no se ha alterado
> Probar que viene de quien dice
‣ Disponibilidad y control de acceso
> Que la comunicación pueda tener lugar
> Evitar accesos no autorizados y DoS
Criptografía
3
/28
Criptografía: amigos y enemigos
‣ Usuarios A(Alice) y B(Bob)
> Desean comunicarse de forma
segura
> Pueden ser
+ usuarios reales
+ navegador y servidor web
+ cliente y servidor de compras
online
+ routers intercambiando información
+ servidores DNS
+ ...
‣ Intruso T(Trudy)
‣ ¿Qué puede hacer?
> Ver mensajes
> Insertar/modificar mensajes
> Hacerse pasar por alguien
> Evitar el uso del servicio
http://en.wikipedia.org/wiki/Alice_and_Bob
Intruso
A(lice)
canal
Criptografía
B(ob)
4
/28
Criptografía: encriptación
‣ Algoritmos de encriptación
Transforman un mensaje original m (plain text) en un nuevo mensaje
cifrado. En el proceso se utiliza una clave.
> Utilizando un algoritmo asociado de desencriptación y la misma
clave u otra asociada puedo reconstruir el texto original
> El algoritmo de encriptación tiene que cumplir que el texto plano
sea dificil de recuperar a partir del mensaje cifrado si no se
conoce la clave
‣ Con esto podemos enviar el mensaje cifrado por el canal inseguro
sin que sea descifrado por un observador que desconozca las claves
Ka
m
Ka(m)
???
Kb
m
algoritmo
encriptación
Criptografía
algoritmo
encriptación
5
/28
Criptografía: encriptación
¿Es suficiente con que sea dificil recuperar el texto a partir del texto cifrado?
‣
‣ NO
‣ En criptografía moderna también debe cumplirse
> Que sea difícil recuperar la clave aunque conozca el mensaje cifrado y sin cifrar
(known plaintext attack)
> Se supone que el atacante conoce el algoritmo de cifrado/descifrado
> Se supone que el atacante conoce la existencia del mensaje
+ Ocultar la existencia de mensajes tiene sus propias técnicas (véase
Steganography, steganografía?)
Ka
hola
Known plaintext
:-)
???
Si con eso puedo sacar la clave
podria descifrar los siguientes
/28
6
Criptografía
Criptografía: herramientas
‣ Algoritmos de encriptación/desencriptación
> Encriptación de clave privada (encriptación simétrica)
> Encriptación de clave pública (encriptación asimétrica)
‣ Algoritmos de hash (resumen de mensaje o message digest)
> Como un cifrador sin clave
> Generan un resumen del mensaje de un tamaño limitado.
> Cumplen que es muy difícil de invertir. Obtener un
mensaje original que al aplicarle el algoritmo de hash de
un valor determinado
Criptografía
7
/28
Criptografía de clave privada/secreta
‣ Alice y Bob comparten una clave secreta K
‣ La misma clave que se usó para encriptar el mensaje debe usarse para
desencriptarlo
‣ Algunas propiedades
> La confidencialidad viene de que el atacante no conozca la clave secreta
> El conocimiento de la clave secreta se puede usar también como prueba de
identidad (autentificación)
> Los algoritmos de este tipo suelen ser más sencillos de implementar (y
rápidos)
K
K(m)
K?
Criptografía
K
m
8
/28
Criptografía de clave privada/secreta
> Autentificación
K
K?
Demuestrame que eres bob cifrando este mensaje
> El mensaje cifrado funciona como firma del mensaje
K
Soy Alice compra acciones de Google
Soy Alice compra acciones de Mycompany.com
K
K
???
Criptografía
pero no la firma
Pero si que puedo repetir
mensajes válidos :-)
Puedo imitar el mensaje
9
/28
Criptografía de clave privada/secreta
> Autentificación mas complicacion
K?
K
Soy Alice compra acciones de Google
Demuestrame que eres Alice cifrando X
K(X)
> Y si el intruso puede modificar el mensaje inicial?
K
m=Soy Alice compra acciones de Google
Mycompany.com
Demuestrame cifrando X+hash(m)
K(X+hash(m))
K
X
K
X
Criptografía
10
/28
Criptografía de clave privada/secreta
‣ Y si no compartimos una clave? Podemos comunicarnosla de alguna manera?
> Si pudieramos hacer eso no necesitaríamos la clave
K
K
‣
¿Hay alguna manera de generar una clave entre dos partes si el canal está siendo
observado?
‣ En resumen
> Se pueden hacer muchas cosas con criptografía simetrica
> Hay que tener cuidado con el protocolo no todo son los algoritmos de cifrado
> Pero tiene sus límites (compartición inicial de claves)
Criptografía
11
/28
Criptografía de clave pública (asimétrica)
‣ Algoritmos con clave diferente para cifrar y descifrar
‣ Bob genera dos claves KB+ (publica) y KB- (privada)
> Lo que cifra una lo descifra la otra
KB -(KB+(m))=m (O mejor KB -(KB+(m))= KB +(KB-(m)) =m )
> Bob puede hacer publica su clave KB+
(puede enviarla a Alice sobre el canal o inseguro o ponerla en su
pagina web)
Generador
de claves
KB+
KB+(m)
KB+
KB-??
KB+
m
KB-
KB+(KB+(m))!=m
Criptografía
KB-(KB+(m))=m
/28
12
Criptografía de clave pública (asimétrica)
‣ Y esto para que vale?
> Cifrado unidireccional a costa de que una clave no sea secreta
KB+
KB+(KB-(m))=m
KB+
!!!
KB+
KB-
KB-(m)
m
‣ Cifrando con KB- cualquiera puede descifrar y no vale para mucho
13
‣ Para bidireccional Alice y Bob deben generar cada uno una pareja de claves
KB+
KA-
KB+(m)
KA+
KB-
Criptografía
KA+(m)
/28
Criptografía de clave pública (asimétrica)
‣ Cifrado bidireccional entre dos partes que no se conocen
previamente !!!
KA-
KB+
KA+
Comunicaciones cifradas seguras
¿Ha resuelto esto el problema del intercambio de claves?
‣
‣ Hay algo que pueda hacer nuestro intruso?
.... La respuesta despues de la publicidad....
KB-
14
Criptografía
/28
Criptografía de clave pública (asimétrica)
‣ Otra utilidad
> Ahora la capacidad de cifrar un mensaje no prueba la identidad
Todo el mundo tiene KB+ y puede cifrar para Bob
> La capacidad de cifrar Si prueba la identidad
‣ Firma digital
KB+
KB+
que sea a mi cuenta!!
KB+
KB-
m,KB-(m)
KB-(m)
m
solo le hago caso
si KB+(firma)=m
m=soy Bob haz una transferencia a la cuenta X
Criptografía
15
/28
que sea a mi cuenta!!
Criptografía de clave pública (asimétrica)
‣ Firma digital
> Ahora la firma puede ser verificada por cualquiera porque KB+ es
publica
> Normalmente no se cifra el mensaje completo para firmar sino algo
que dependa de todo el mensaje para que no pueda ser modificado
nada
> Una vez firmado podemos cifrarlo para que solo lo lea Alice
> Combinaciones y encadenamientos de cifradores para utilizar claves mas largas
‣ Cifradores asimétricos (de clave pública)
> Diffie-Hellman
> RSA
Basados en general en la dificultad de descomponer un numero muy grande en sus
factores primos
> Son más costosos de calcular que los simetricos
(= cifran a menos velocidad)
> Se puede usar un intercambio de claves basado en clave publica para decidir entre
dos partes una clave secreta y luego usar un cifrador simétrico
Criptografía
17
/28
Certificados
‣ Estantar X.509
‣ Certificado
> Declaración de datos de una entidad incluyendo una clave pública
> Puede bajarse de una web o enviarse al principio del protocolo
> Y como decido si me fio de un certificado?
+ Si lo he obtenido de una fuente fiable
+ Si alguien de quien me fio se fia de el
‣ Cadena de confianza
> Unas entidades certifican a otras
> Firmando su certificado con su clave privada
Empresa A
Cert A
Ka+
Empresa C Cert C
Kc+
firmado
por B
Empresa B Cert B
Kb+
firmado
por A
Criptografía
18
/28
Certificados
‣ Autoridades de certificacion
> Dan certificados a otras autoridades de mas bajo nivel y a servidores web
> Se supone que me fio de los certificados de las empresas de arriba de la
jerarquia (i.e. Verisign)
> Si el certificado esta firmado con una clave que esta firmada por una clave
que esta firmada por una clave que esta firmada...
... que esta firmada por alguno de los top level CAs (Certification
authority)
‣ Los navegadores se fian automaticamente de los certificados de la lista de CAs
que tienen
‣ Y aparte yo puedo fiarme individualmente de los que quiera
‣ Pero esencialmente fiarme o no del certificado es lo mismo que fiarme o no
de una clave publica que tengo
Criptografía
19
/28
Aplicaciones
Encriptando el canal a nivel de transporte/aplicación
‣ SSL: secure socket layer
Librerias de sockets con encriptación para establecer sesiones utilizando
intercambio de claves basado en claves publicas y cifrado con claves de sesión
(por ejemplo usando certificados X.509)
Aplicaciones que usan SSL para asegurar sus comunicaciones
> HTTPS: HTTP seguro sobre SSL
> SSH: Secure shell, acceso remoto y transferencia de ficheros sobre SSL
> ...
‣ PGP: pretty good privacy, correo seguro utilizando clave pública
‣ Muchas otras aplicaciones más o menos estándares...
Nivel de red y enlace
‣ VPN virtual private networks y túneles...
Criptografía
20
/28
Ejemplos
‣ SSH: Protocolo de sesion remota
El servidor me envia una clave publica, la primera vez me
pregunta si me fio y
Links de descarga
http://lwp-l.com/pdf19141
Comentarios de: Seguridad del canal de comunicaciones Criptografía - Seguridad en Sistemas Informáticos (0)
Comentarios de: Seguridad del canal de comunicaciones Criptografía - Seguridad en Sistemas Informáticos (0)
No hay comentarios