You are on page 1of 49

Seguridad Informática: Criptografía

Transparencias adaptadas del material del libro:


Redes de computadores: un enfoque descendente
basado en Internet, 2ª edición.
Jim Kurose, Keith Ross

Copyright 1996-2002.
J.F Kurose y K.W. Ross.
Todos los derechos reservados.
Criptografía

Etimológicamente, criptografía proviene de dos palabras del


griego:
● Cripto → escondido
● Grafía → escritura
Es la ciencia que estudia el diseño de códigos secretos y la
interpretación de mensajes cifrados.
Historia de la criptografía y su desarrollo en Europa
Ejercicios básicos
El lenguaje de la criptografía


Criptografía clave simétrica: claves del emisor y receptor,
idénticas

Criptografía clave pública: cada usuario tiene una clave pública
conocida por todos y una clave privada, que es secreta
¿Cuáles son los equivalentes de Roberto y Alicia en
seguridad informática?

● Robertos y Alicias de la vida real



Navegador / servidor de Internet para transacciones
electrónicas
● Cliente / servidor de banco online
● Servidores DNS
● Routers que intercambian tablas de encaminamiento
● ...
Hay muchos chicos malos por ahí... ¡y chicas!

¿Qué puede hacer un chic@ mal@?


● Escuchar a escondidas → interceptar mensajes
● Insertar activamente mensajes

Suplantación → puede falsear la dirección origen de un
paquete

Secuestro → apoderarse de la conexión eliminando a uno de
los participantes e insertarse él en su lugar
● Denegación de servicio: impedir que el servicio se utilizado
por otros
● ...
Criptografía de clave simétrica

Roberto y Alicia comparten la misma clave (simétrica) K A-B

Antes de poder comunicarse deben ponerse de acuerdo en el


valor de la clave
Criptografía de clave simétrica

Algoritmos de cifrado simétricos:


● DES
● TripleDES
● AES
Ver para creer...


El proyecto OpenSSL es un esfuerzo colaborativo para
desarrollar un toolkit libre y gratuito que implementa SSL y
TLS, así como herramientas y bibliotecas relacionadas con la
criptografía

Ciertos programas de una máquina, como OpenSSH o el
navegador, hacen uso de las funciones que OpenSSL les
suministra
● Entre las herramientas que incorpora se encuentra el
programa openssl, que se utiliza desde la línea de comandos
Ver para creer...

● Cifrado con Triple DES:

$ openssl des3 ­in texto.txt ­out texto.cifrado

● Descifrado con Triple DES

$ openssl des3 ­d ­in texto.cifrado ­out texto.descifrad o


Criptografía de clave pública

Emisor y receptor no comparten clave secreta


Clave de encriptación es pública y conocida por todos
Clave de desencriptación es privada, conocida sólo por el
receptor
Criptografía de clave pública

Algoritmos de encriptación de clave pública:


● DSA
● RSA
Ver para creer...

● Generar clave privada RSA:

$ openssl genrsa ­out privada.key 1024

● Obtener la clave pública RSA:

$ openssl rsa ­in privada.key ­pubout ­out publica.key


Ver para creer...

● Codificar un texto con la clave pública:

$ openssl rsautl ­in texto.txt ­out texto.cifrado ­inkey


publica.key ­pubin ­encrypt

● Decodificar un texto con la clave privada:

$ openssl rsautl ­in texto.cifrado ­out texto.descifrado


­inkey privada.key ­decrypt
Autoridades de certificación

Autoridad de certificación CA → vincula una clave pública a una


entidad particular E (router, persona...)
E debe registrar su clave pública con CA:
● E proporciona una prueba de identidad a CA
● CA crea un certificado que vincula a E con su clave pública
● El certificado contiene la calve pública de E firmada
digitalmente por CA → CA afirma “Esta es la clave pública
de la entidad E”
Objetivos de la seguridad informática

● Confidencialidad
● Disponibilidad
● Integridad
● No repudio

¿Puede ayudarnos la criptografía a conseguir estos objetivos?


Autenticación

Objetivo: Roberto quiere que Alicia le demuestre su identidad


Protocolo pa1.0: Alicia dice “Soy Alicia”

¿Escenario de fallo?
Autenticación

Objetivo: Roberto quiere que Alicia le demuestre su identidad


Protocolo pa1.0: Alicia dice “Soy Alicia”

En una red Roberto no


puede ver a Alicia Gertrudis
simplemente dice que ella
es Alicia
Autenticación

Objetivo: Roberto quiere que Alicia le demuestre su identidad


Protocolo pa2.0: Alicia dice “Soy Alicia” en un paquete IP que
contiene su dirección IP origen

¿Escenario de fallo?
Autenticación

Objetivo: Roberto quiere que Alicia le demuestre su identidad


Protocolo pa2.0: Alicia dice “Soy Alicia” en un paquete IP que
contiene su dirección IP origen

Gertrudis puede crear un


paquete falso con la
dirección IP de Alicia
Autenticación

Objetivo: Roberto quiere que Alicia le demuestre su identidad


Protocolo pa3.0: Alicia dice “Soy Alicia” y envía su contraseña
secreta para demostrarlo

¿Escenario de fallo?
Autenticación

Objetivo: Roberto quiere que Alicia le demuestre su identidad


Protocolo pa3.0: Alicia dice “Soy Alicia” y envía su contraseña
secreta para demostrarlo

Ataque de reproducción
(replay):
Gertrudis graba el mensaje de
Alicia y más tarde se lo
reproduce a Roberto
Autenticación

Objetivo: Roberto quiere que Alicia le demuestre su identidad


Protocolo pa3.1: Alicia dice “Soy Alicia” y envía su contraseña
secreta encriptada para demostrarlo

¿Escenario de fallo?
Autenticación

Objetivo: Roberto quiere que Alicia le demuestre su identidad


Protocolo pa3.1: Alicia dice “Soy Alicia” y envía su contraseña
secreta encriptada para demostrarlo

Grabar y reproducir sigue


funcionando
Autenticación

Objetivo: Roberto quiere que Alicia le demuestre su identidad


Protocolo pa4.0: Para evitar ataques de replay, Roberto le envía
un núnico (nonce), R. Alicia debe devolver R, encriptado con
una clave secreta compartida

Alicia está en directo y sólo


ella conoce la clave secreta
compartida, así que ¡ella tiene
que ser Alicia!
Autenticación

Pa4.0 requiere una clave simétrica compartida previamente. ¿La


podemos autenticar usando técnicas de clave pública?
Protocolo pa5.0: usa un núnico y criptografía de clave pública

¿Escenario de fallo?
Autenticación

Pa5.0 presenta un agujero de seguridad frente a atques MITM


Autenticación

Pa5.0 presenta un agujero de seguridad frente a atques MITM

Difícil de detectar:
● Roberto recibe todo lo que Alicia le envía y viceversa
● El problema es que Gertrudis también recibe los mensajes
Integridad

System File Checker (sfc.exe)


Integridad

Comprobar los ficheros completamente es computacionalmente


muy caro.
Se utilizan funciones de dispersión H con las que se obtiene un
resumen del fichero de tamaño fijo H(m)
Integridad

Algoritmos para la función de dispersión:


● MD5
● SHA-1
Ver para creer

● Obtener el resumen de un fichero con SHA-1:

$ openssl sha1 fichero


Ver para creer
Firma digital

Roberto podría firmar el mensaje encriptándolo con su clave


privada:

Al recibirlo, Alicia lo desencripta utilizando la clave pública de


Roberto → autenticación, integridad y no repudio
Firma digital

Resulta computacionalmente caro encriptar mensajes largos con


clave pública → usaremos funciones de dispersión
Firma digital
Ver para creer

● Obtener la firma digital de un mensaje con RSA:

$ openssl dgst ­sha1 ­sign privada.key ­out firmadigital.sha1


mensaje.txt

● Verificar el mensaje recibido:

$ openssl dgst ­sha1 ­verify publica.key ­signature


firmadigital.sha1 mensaje.txt
Ver para creer

Imagina que has recibido un correo electrónico desde mi cuenta


con dos ficheros adjuntos calificacion.txt y
firma.sha1. El contenido de calificacion.txt es el
siguiente:
Estimado alumno/a,
tras consultar las notas de tus tareas y llevar a cabo un
estudio pormenorizado de tu evolución y progresos durante
el curso, el departamento de informática ha decidido
ponerte un 10 en la calificación del módulo Seguridad
Informática.
No es necesario que vengas más a clase. Enhorabuena.
Fdo: Jesús Moreno
Ver para creer

En el foro de la asignatura puedes encontrar los dos ficheros


recibidos en el mail (calificacion.txt y firma.sha1) y
mi clave pública publica.key.
¿Cómo podrías comprobar que el mensaje recibido ha sido
firmado por mí y que no se ha modificado el contenido del
fichero calificacion.txt?
Autoridades de certificación
Autoridades de certificación

Cuando Alicia quiere la clave pública de Roberto, ya no tiene


que pedírsela a él (problema MITM), sino que obtiene el
certificado (de Roberto, de Internet, de otra persona...)
Tan sólo tiene que aplicar la clave pública de CA al certificado
de Roberto para obtener la clave pública de Roberto
Certificados
Capa de Socket Seguros (SSL)

Proporciona seguridad en la capa de transporte a cualquier


aplicación basada en TCP
Es protocolo que se utiliza entre navegadores de Internet y
servidores de comercio electrónico, por ejemplo (https://...)
Servicios de seguridad:
● Autenticación del servidor
● Cifrado de datos
● Opcional – Autenticación del cliente
Capa de Socket Seguros (SSL)

Autenticación del servidor:


1. Los navegadores incluyen claves públicas de autoridades
de certificación de confianza
Capa de Socket Seguros (SSL)

Autenticación del servidor:


2.El navegador solicita su certificado al servidor, que habrá
sido emitido por alguna autoridad de certificación de
confianza
3.El navegador utiliza la clave pública de CA para extraer del
certificado la clave pública del servidor
Capa de Socket Seguros (SSL)

Sesión SSL cifrada:


1. El navegador genera una clave de sesión simétrica, la cifra
con la clave pública del servidor (que acaba de obtener del
certificado) y se la envía al servidor.
2. Con su clave privada, el servidor descifra el mensaje y
obtiene la clave de sesión.
3. El navegador y el servidor conocen la clave de sesión, con la
que cifrarán todos los datos que tengan que intercambiar
Ejercicio

Un usuario inocente quiere comprar un billete en renfe.es, pero


un atacante malvado (por ejemplo, G.W. Bush) le ha hecho un
ataque MITM.
Ejercicio

1. Cuando el navegador del usuario envía un mensaje a renfe.es pidiéndole el


certificado, en realidad ese mensaje le llega a Bush.
2..Para que nadie note nada, el sr. Bush (una persona de gran inteligencia) reenvía
la petición a renfe.es.
3. renfe.es envía su certificado al usuario, aunque el mensaje llega de nuevo a
Bush.
4. Bush envía el certificado al usuario inocente.
5. Llega el momento clave. El navegador del usuario va a generar la clave de sesión
que usará para cifrar toda la comunicación con renfe.es y poder enviar los datos
bancarios con tranquilidad, pero el sr. bush ha interceptado el mensaje.
¿Funcionaría este ataque y podría obtener Bush los datos bancarios del usuario
inocente?
Ejercicio
Lecturas


Mitos y leyendas: "Compruebe el candadito del navegador
para estar seguro" I (Phishing) → artículo

Mitos y leyendas: "Compruebe el candadito del navegador
para estar seguro" II (Troyanos) → artículo

Investigadores consiguen hacer que cualquier certificado SSL
parezca válido → artículo

You might also like