Certificados digitales Autoridades Certificación

Anuncio
Certificados digitales
Autoridades Certificación
LSI
2013-2014
Contenidos

Conceptos de cifrado

Cifrado simétrico

Cifrado asimétrico

Firma Digital

Certificados digitales

Autoridades de certificación

Ejemplos de protocolos seguros
2
Cifrado


Criptografía:

Kriptos (secreto) y Graphos (escritura)

Forma de escribir ocultando el significado
Caracterización sistemas de cifrado

¿Cuántas claves se usan para el cifrado/descifrado?

Cifrado Simétrico


Misma clave se usa para el cifrado y descifrado
Cifrado Asimétrico

Claves diferentes para el cifrado y el descifrado
3
Cifrado simétrico
Texto
Claro
Cifrado
Simétrico
Clave Compartida
Texto
Claro
Texto Cifrado
Canal
4
Criptografía clásica: escítala

Siglo V a.C. Pueblo griego de los lacedemonios.

Consistía en un bastón en el que se enrollaba una cinta de cuero y luego se escribía en
ella el mensaje de forma longitudinal.

Cifrado por transposición: Al desenrollar la cinta, las letras aparecerán desordenadas.

Para descifrar el criptograma y recuperar el mensaje en claro habrá que enrollar dicha
cinta en un bastón con el mismo diámetro que el usado en el extremo emisor y leer el
mensaje de forma longitudinal. La clave del sistema se encuentra en el diámetro del
bastón.
M = ASI CIFRABAN CON LA ESCITALA
C = AAC SIN ICT COA INL FLA RA AE BS
5
Criptografía clásica: César

Siglo I a.C.

Desplazamiento de tres espacios (k=3) hacia la derecha de M

Es un cifrador por sustitución en el que las operaciones se realizan
módulo n, (n = al número de elementos de M)
M = a b c d e f g h i j k l m n o p q r s t u v w x y z
C = D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Ejemplo: M = BOMBA
C = ERPED

Problema: cada letra se cifra siempre igual

Criptoanálisis usando estadísticas de M
6
Cifrado simétrico

Operaciones de cifrado

Sustitución

Monoalfabeto





César, Polybios, Playfair, etc.
Polialfabeto

Vigenere

Máquinas de rotor
Transposición

Rail Fence

Transposición de columnas

Etc.
Producto (sustituciones x transposiciones)
Ejemplos de algoritmos simétricos son DES, 3DES, RC5, AES, Blowfish e
IDEA.
7
Cifrado simétrico

Cifradores simétricos

El principal inconveniente es la fase de intercambio de claves

¿Cómo se intercambian de manera segura a través de un medio de
comunicación inseguro?

Centro de Distribución de Claves

Cifrado asimétrico
8
Centro de distribución de claves



Problema: conocer clave simétrica de forma segura
Key Distribution Center, KDC: servidor comparte diferentes claves con
cada usuario registrado
Cada usuario tiene una clave para la comunicación segura con el
KDC: KA-KDC , KB-KDC
KDC
KA-KDC KP-KDC
KP-KDC
KB-KDC
KA-KDC
KX-KDC
KY-KDC
KB-KDC
KZ-KDC
9
Centro de distribución de claves

Problema: ¿Cómo permite KDC a los usuarios (UA, UB) determinar la
contraseña compartida para su comunicación?
KDC genera
R1
KA-KDC(A,B)
Alice
recibe R1
y reenvía
KB-KDC(A,R1) )
KA-KDC(R1, KB-KDC(A,R1) )
KB-KDC(A,R1)
Bob sabe que debe
usar R1 para
comunicarse con A
(Alice)
Comunicación entre Alice y Bob mediante clave de sesión
R1 para cifrado simétrico
10
Comparativa: gestión de claves

Cifrado simétrico


Para n participantes, entran en
juego

Cifrado asimétrico

n * (n-1) / 2 claves
Para n participantes, entran en
juego

2 * n claves
EJEMPLO
Para n = 100 (100 participantes)
─ Simétrico: 100x99/2 = 4950 claves.
─ Asimétrico: 2x100 = 200 claves
11
CIFRADO ASIMÉTRICO
12
Cifrado asimétrico

Dos claves:


Pública (KUa)

Conocida por todo el mundo

Usada para cifrar mensajes y verificar la firma de un mensaje
Privada (KRA)

Conocida únicamente por el propietario

Usada para descifrar mensajes y para firmar mensajes

Asimétrica: las partes no son iguales

Funcionamiento basado la Teoría de Números
13
Cifrado asimétrico
14
Cifrado con clave pública de destino

Sólo destinatario podrá descifrar el mensaje (KRdest)

Proporciona:

confidencialidad

integridad


si el mensaje es alterado no se podrá descifrar
No proporciona

autenticidad del emisor


Cualquiera pudo haber generado el mensaje cifrado
no repudio

El emisor puede negar que ha sido el quien cifró el mensaje
15
Cifrado con clave privada de origen

Cualquier usuario podrá descifrar el mensaje (KUorig)

No proporciona confidencialidad

Sí proporciona:

integridad


autenticidad del emisor


Sólo el emisor puede haber cifrado el mensaje con su clave privada, ya
que sólo el tiene esa clave
no repudio


si el mensaje es alterado no se podrá descifrar
el emisor no puede negar que ha sido el quien cifró el mensaje
¡Es el mecanismo que hace posible la firma digital!
16
Cifrado asimétrico: confidencialidad y autenticación
17
El algoritmo de clave pública RSA




Desarrollado por Rivest, Shamir & Adleman en el MIT en 1977. Se
publicó en 1978.
Ha sido desde entonces el enfoque más aceptado e implementado
para el cifrado de clave pública.
Es un cifrado de bloque en el que el texto claro y el texto cifrado son
enteros entre 0 y n-1 para algún n.
Basado en exponenciación.


La exponenciación conlleva O((log n)3) operaciones (fácil)
Seguridad

Basada en el coste de factorizar números grandes.

La factorización conlleva O(e log n log log n) operaciones (difícil).
18
El algoritmo de clave pública RSA

Cifrado
C

= Me mod n
Descifrado
M

= Cd mod n = (Me)d mod n = Med mod n
Requisitos
∃
e, d, n / Med mod n = M ∀ M < n
 (Me
mod n) y (Cd mod n) sean fáciles de calcular
 Conocidos
e y n sea imposible calcular d
19
Generación de claves RSA

Seleccionar dos números primos grandes: p, q

Calcular módulo de su grupo de trabajo n = p·q


Seleccionar clave de cifrado e



1<e<ø(n), mcd(e,ø(n))=1
Obtener clave de descifrado d

e·d=1 mod ø(n) y 0≤d≤n

Si d es inversa de e entonces e·d = 1+k·ø(n) para algún k
Clave Pública


nota ø(n)=(p-1)(q-1)
PU={e,n}
Clave Privada

PR={d,n}

Guardar en secreto o destruir p, q y ø(n)
20
Intercambio de claves Diffie-Hellman

Primer algoritmo de clave pública publicado (Diffie & Hellman, 1976)

Muchos productos comerciales utilizan este algoritmo

El propósito del algoritmo es permitir a dos usuarios intercambiar
una clave secreta de forma segura que luego pueda ser usada para
el cifrado posterior de mensajes.


Se usa en protocolos como SSH, SSL, TLS, …
Su seguridad radica en la extrema dificultad (conjeturada, no
demostrada) de calcular logaritmos discretos en un cuerpo finito
21
Diffie-Hellman


Origen) A = g^x (mod p)

Envía al destino A y el valor de g escogido.

Se almacena x en secreto
Destino) B = g^y (mod p)



Cálculo de la clave de sesión:

Origen: B^x (mod p)

Destino: A^y (mod p)
Ningún intermediario puede conocer la clave de sesión


Envía al origen B
Desconoce x e y
¿Porqué funciona?

B^x (mod p) = g^y^x (mod p) = g^(yx) (mod p) = g^(xy) (mod p) =
= g^x^y (mod p) = A^y (mod p)
22
Funciones hash


Una función hash acepta un mensaje de tamaño variable, M, como
entrada y produce un resumen del mensaje de tamaño fijo H(M)
como salida.
Usos:

Autenticación de mensaje

Integridad de archivos

Contraseñas
23
Autenticación de mensajes con función hash
Autenticación de mensajes con función hash (Stallings, 2004)
24
Autenticación de mensajes con función hash
Autenticación de mensajes con función hash (Stallings, 2004)
25
Funciones Hash. Una aproximación


Agrupación de texto en bloques

Representación de cada carácter por su código ASCII

Tamaño bloque: 3
Función matemática sobre elementos del bloque



(A – B) * C
Primer Bloque: (69 – 110) * 32 = -1312
Valor Hash a partir de valores parciales

Ejemplo: suma de todos los resultados intermedios
E
n
u
n
r
i
n
c
ó
n
69 110 32 117 110 32 114 105 110 99 243 110
-1312
224
990
-15840
d
e
32 100 101
-6868 -22806
l
a
32 108 97
-7372
M a
n
c
h
a
32 77 97 110 99 104 97
-4365
1144
d
e
32 100 101
6500
c
32
u
y
o
117 121 111
-444
n
o
m b
r
e
32 110 111 109 98 114 101
-8658
1254
n
o
32 110 111
7590
q
32 113
8927
99
6831
2738
8669
-11399
26
Funciones Hash. Una aproximación

Cualquier cambio mínimo en el texto produce un cambio radical en
el resultado de la función Hash

E
Así, si cambiamos rincón por rincon, el valor de la función Hash pasa de
-11.399 a 3.121
n
u
n
r
i
n
c
o
n
69 110 32 117 110 32 114 105 110 99 111 110
-1312
224
990
-1320
d
e
32 100 101
-6868
l
a
32 108 97
-7372
M a
n
c
h
a
32 77 97 110 99 104 97
-4365
1144
d
e
32 100 101
6500
32
u
y
o
117 121 111
-444
n
o
m b
r
e
32 110 111 109 98 114 101
-8658
1254
n
o
32 110 111
7590
q
32 113
8927
-8286
c
99
6831
2738
8669
3121
27
Una función hash simple

Para generar un hash de n bits, se puede dividir el archivo a procesar
en m bloques de n bits cada uno y calcular el XOR de dichos
bloques. El resultado será el hash del archivo.
Función hash simple mediante XOR bit a bit (Stallings, 2004)
28
Requisitos de las funciones hash

Para que resulte útil a la autenticación de mensajes, una función hash H
debe poseer las siguientes propiedades (Stallings, 2004):

H puede aplicarse aun bloque de datos de cualquier tamaño

H produce una salida de tamaño fijo

H(x) es relativamente fácil de computar para cualquier x dado

Para cualquier valor h dado, es imposible desde el punto de vista computacional
encontrar x tal que H(x)=h (propiedad unidireccional)

Para cualquier bloque dado x, es imposible desde el punto de vista
computacional, encontrar y ≠ x con H(y) = H(x) (resistencia débil a la colisión)

Es imposible desde el punto de vista computacional encontrar un par (x, y) tal que
H(x) = H(y) (resistencia fuerte a la colisión)
29
Funciones hash
30
Firma Digital

Garantiza que un documento proviene de quién lo ha
firmado



Proporciona Autenticación, Integridad y no Repudio
Documento se cifra con KRorig

Sólo el poseedor de la clave privada puede haberlo hecho

KUorig permite comprobar la validez del documento
Problema: ineficiencia cifrado (cifrado asimétrico
tiene un coste computacional muy alto)

No se firma el documento completo, sino un resumen
31
Firma Digital
Protocolo

Generar resumen del documento (método conocido por todos)

Cifrar resumen con clave privada emisor

Enviar documento junto resumen firmado al receptor


Receptor genera un resumen del documento recibido, usando la
misma función unidireccional de resumen. Después descifra con
la clave pública del origen el resumen firmado
Si el resumen firmado coincide con el resumen que él ha
generado, la firma es válida
32
Firma Digital
Protocolo
33
Firma Digital

Se ofrecen conjuntamente los servicios de:

No repudio, ya que nadie excepto A podría haber firmado el documento

Autenticación, ya que si el documento viene firmado por A, podemos estar
seguros de su identidad, dado que sólo él ha podido firmarlo

Integridad del documento, ya que en caso de ser modificado, resultaría
imposible hacerlo de forma tal que se generase la misma función de resumen
que había sido firmada

No ofrece privacidad!
34
CERTIFICADOS DIGITALES
35
Certificados digitales


Una de las funciones principales del cifrado de clave pública es la de
tratar el problema de la distribución de claves.
Un usuario puede enviar su clave pública a otro o difundirla a través
de Internet.

Problema: cualquiera puede falsificar la clave pública.

Solución: certificado de clave pública.
36
Certificados digitales


Un certificado digital, básicamente contiene:

Clave pública

Identificador o nombre de usuario del dueño de la clave

Todo esto firmado digitalmente por una tercera parte confiable
La tercera parte confiable suele ser una Autoridad de Certificación
(CA, Certificate Authority) en la que confía la comunidad de usuarios
37
Certificado X.509
 El formato utilizado
actualmente es el X.509v3
 Los certificados X.509v3
se utilizan en multitud de
aplicaciones (SSL, SSH,
S/MIME, Seguridad IP, …)
38
Certificado X.509
 Los certificados tienen un
período de validez. Si dejan de
ser válidos dentro de ese
período, es necesario revocarlos.
 Razones para la revocación:
 Se sospecha que la clave
privada del usuario está
comprometida.
 El usuario ya no está
certificado por esa AC.
 Se sospecha que el
certificado de la AC está
comprometido.
39
AUTORIDADES DE CERTIFICACIÓN
40
Autoridades de Certificación


Un usuario puede presentar su clave pública ante una CA, para
obtener un certificado y luego publicarlo.
Así, cualquiera que necesite la clave pública de este usuario puede
obtener el certificado y verificar que es válida por medio de la firma
adjunta.
41
Autoridades de Certificación

Obtención del certificado.
Clave
pública
Identificación
Personal
+
KB
digital
signature
(encrypt)
CA
clave
privada
K-
CA
+
KB
certificado de
clave pública,
firmado por CA
42
Autoridades de certificación

Comprobación del certificado.

Obtención del certificado (propio usuario, repositorio, etc.)

Verificar la firma del certificado, usando la clave pública de la CA
+
KB
digital
signature
(decrypt)
CA
public
key
Bob’s
public
+
key
KB
+
K CA
43
Autoridades de certificación

Características:

Cualquier usuario con acceso a la clave pública de la AC puede verificar
la clave pública del usuario que fue certificada.

Sólo la AC puede modificar el certificado sin que esto se detecte.

Evita la necesidad de un repositorio de acceso común.
44
Ejemplos de Autoridades de Certificación

VeriSign

Thawte

GeoTrust

FNMT

…
45
PROTOCOLOS SEGUROS: SSL Y SSH
46
Secure Socket Layer (SSL)



Es un protocolo de seguridad que permite establecer conexiones
seguras a través de redes inseguras, como Internet
Diseñado por Netscape en 1993
Está principalmente orientado al Web, aunque está disponible para
cualquier aplicación TCP
47
Secure Socket Layer (SSL)

Objetivos:

Permitir transacciones electrónicas.

Cifrado.


Normalmente, no se cifra toda la comunicación, sino el tráfico que
contiene datos sensibles (envío de una contraseña, envío de un
número de tarjeta de crédito).
La mejora en el rendimiento de las máquinas, hace que muchos
sitios utilicen SSL durante toda la comunicación (e.g. Gmail).

Autenticación del servidor.

Autenticación del cliente (opcional).
48
Secure Socket Layer (SSL)

Proporciona:

Autenticación del servidor. El servidor debe disponer de un certificado
digital emitido por una AC reconocida (que figure en la lista de ACs del
cliente)

Cifrado. Cliente y Servidor utilizan técnicas de cifrado asimétrico para
intercambiar claves compartidas. Se utilizan dichas claves compartidas
para cifrar y descifrar la comunicación.

Integridad. Se utilizan hash para garantizar que los mensajes no son
alterados en tránsito

Autenticación del cliente (opcional). Usualmente, el cliente se
autentica ante el servidor mediante un nombre de usuario y una
contraseña, aunque también podría hacerlo mediante un certificado
digital (algunos bancos y administraciones públicas ofrecen esta
posibilidad)
49
Secure Sockets Layer
Autenticación del servidor



Los navegadores actuales
incluyen soporte para SSL, así
como las claves públicas de las
Autoridades de Certificación
de confianza.
El navegador solicita al
servidor que le envíe su
certificado. Este certificado
debe ser emitido por una AC
de confianza.
El navegador utiliza la clave
pública de la AC para verificar
que el certificado del servidor
es válido.
En el navegador se pueden ver las
Autoridades de Certificación de confianza
50
Secure Sockets Layer
SSL HandShake (versión simplificada)
Cliente
Servidor
Cliente emite solicitud de session segura
(https://www.server.com)
Servidor envía un certificado digital X.509 que contiene su
clave pública
Cliente comprueba certificado contra su lista de ACs
conocidas. Si la AC es desconocida, el navegador puede dar al
usuario la opción de aceptar el certificado (a riesgo suyo)
Cliente genera una clave simétrica aleatoria y la cifra usando la
clave pública del servidor
Cliente y servidor conocen ahora la clave simétrica y la usan
para cifrar la comunicación
…
51
Secure Sockets Layer
SSL HandShake
Extraído de: http://technet.microsoft.com/es-es/library/cc785811(WS.10).aspx
52
Secure Sockets Layer

Algoritmos utilizados:


Cifrado simétrico:

DES – Data Encryption Standard: block

3DES – Triple strength: block

RC2 – Rivest Cipher 2: block

RC4 – Rivest Cipher 4: stream
Cifrado asimétrico:


RSA
Intercambio de claves:

RSA

Diffie-Hellman
53
Secure Sockets Layer

Algunos puertos utilizados:

https: 443

smtps: 465

ldaps: 636

imaps: 993

pop3s: 995

ftps: 989&990

…
54
SSH


Desarrollado en 1995 por Tatu Ylönen.
Es un protocolo de red que permite establecer un canal seguro entre
dos dispositivos de red.

Diseñado para ofrecer una alternativa segura a Telnet y FTP.

También soporta tunneling (port forwarding y X forwarding)
55
SSH

Provee las siguientes garantías de seguridad:

Autenticación: El cliente puede verificar que se está conectando al
servidor al que indicó.

Confidencialidad: Los datos intercambiados se transmiten usando
cifrado.

Integridad: Se verifica la integridad de los datos intercambiados
mediante hash.
56
SSH

Secuencia de eventos conexión SSH

Intercambio de clave simétrica entre cliente y servidor. Diffie-Hellman

Cifrado capa transporte entre cliente y servidor.

Autenticación de servidor

Interacción cliente-servidor sobre conexión cifrada
57
SSH

Directorio /etc/ssh/:

moduli: Contiene grupos Diffie-Hellman usados para el intercambio de la clave DiffieHellman que es imprescindible para la construcción de una capa de transporte seguro.
Cuando se intercambian las claves al inicio de una sesión SSH, se crea un valor secreto y
compartido que no puede ser determinado por ninguna de las partes individualmente. Este
valor se usa para proporcionar la autenticación del host

ssh_config: Archivo de configuración del sistema cliente SSH por defecto que se
sobreescribe si hay alguno ya presente en el directorio principal del usuario (~/.ssh/config)

sshd_config: Archivo de configuración para el demonio sshd

ssh_host_dsa_key: Clave privada DSA usada por el demonio sshd

ssh_host_dsa_key.pub: Clave pública DSA usada por el demonio sshd

ssh_host_key: Clave privada RSA usada por el demonio sshd para SSH v1

ssh_host_key.pub: Clave pública RSA usada por el demonio sshd para SSH v1

ssh_host_rsa_key: Clave privada RSA usada por el demonio sshd para SSH v2

ssh_host_rsa_key.pub: Clave pública RSA usada por el demonio sshd para SSH
58
SSH

Directorio principal del usuario ~/.ssh/:

authorized_keys: Lista de claves públicas "autorizadas". Cuando un cliente se
conecta al servidor, el servidor valida al cliente chequeando su clave pública
firmada almacenada dentro de este archivo

id_dsa: Clave privada DSA del usuario

id_dsa.pub: Clave pública DSA del usuario

id_rsa: Clave RSA privada usada por ssh para SSH v2

id_rsa.pub: La clave pública RSA usada por ssh para SSH v2

identity: La clave privada RSA usada por ssh para SSH v1

identity.pub: La clave pública RSA usada por ssh para SSH v1

known_hosts: Claves de host DSA de los servidores SSH accedidos por el
usuario. Este archivo es muy importante para asegurarse de que el cliente SHH
está conectado al servidor SSH correcto
59
SSH. Tunneling


Permite asegurar accesos por medio de servicios inseguros

telnet

rsh

rlogin

ftp, vsftpd

…
Fases

Apertura tunel ssh

Mapeado de un puerto local a un puerto remoto del servidor

Opciones

Redirección puerto local



Eg. ssh –L localPort:serverName:remotePort username@serverName
Redirección puerto remoto
Envío de tráfico a través del túnel
60
SSH. Tunneling
(Barrett et. al., 2005)
61
SSH. Tunneling

Comprobar el correo del servidor usando POP a través de una conexión cifrada:

ssh -L 1100:mail.example.com:110 mail.example.com
Una vez que el canal de reenvío de puerto está entre la máquina cliente y el servidor
de correo, puede direccionar su cliente de correo POP para usar el puerto 1100 en su
host local para comprobar el nuevo correo. Cualquier petición enviada al puerto 1100
en el sistema cliente será dirigida de manera segura al servidor mail.example.com
110
1100
cliente
mail.example.com
62
SSH. Herramientas

SCP (Secure Copy Protocol)

Permite transmitir ficheros entre máquinas sobre una conexión cifrada y segura
scp [options] u1@src:dir1/filename1

u2@dst:dir2/filename2
SFTP (SSH File Transfer Protocol)

Permite abrir una conexión segura interactiva de ftp
sftp usuario@ftpServer

ssh-keygen

Generación de claves DSA y/o RSA

Autenticación basada en clave pública/privada y no en user/password

~/.ssh/authorized_keys

ssh –I privateKey
63
Bibliografía recomendada


Stallings, W. (2004). Fundamentos de Seguridad en Redes.
Aplicaciones y estándares. (2ª ed.): Pearson.
Santos del Riego, A (2013). Legislación [Protección] y Seguridad de
la Información. Disponible en: http://psi-udc.blogspot.com.
64
Bibliografía complementaria / Sitios de interés


Daniel J. Barrett, Richard E. Silverman, Robert G. Byrnes. (2005). SSH,
the secure shell: the definitive guide. 2nd Edition. O'Reilly.
Gluck, Y., Harris, N., & Prado, A. (2013). Breach: Reviving The Crime
Attack. Disponible en:
http://breachattack.com/resources/BREACH%20%20SSL,%20gone%20in%2030%20seconds.pdf
65
Descargar