Está en la página 1de 65

Certificados digitales

Autoridades Certificacin
LSI
2013-2014
Contenidos
Conceptos de cifrado
Cifrado simtrico
Cifrado asimtrico
Firma Digital
Certificados digitales
Autoridades de certificacin
Ejemplos de protocolos seguros

2
Cifrado
Criptografa:
Kriptos (secreto) y Graphos (escritura)
Forma de escribir ocultando el significado

Caracterizacin sistemas de cifrado
Cuntas claves se usan para el cifrado/descifrado?
Cifrado Simtrico
Misma clave se usa para el cifrado y descifrado
Cifrado Asimtrico
Claves diferentes para el cifrado y el descifrado
3
Cifrado simtrico

Canal
Texto Cifrado
Texto
Claro
Texto
Claro
Clave Compartida
Cifrado
Simtrico
4
Criptografa clsica: esctala
Siglo V a.C. Pueblo griego de los lacedemonios.

Consista en un bastn en el que se enrollaba una cinta de cuero y luego se escriba en
ella el mensaje de forma longitudinal.

Cifrado por transposicin: Al desenrollar la cinta, las letras aparecern desordenadas.

Para descifrar el criptograma y recuperar el mensaje en claro habr que enrollar dicha
cinta en un bastn con el mismo dimetro que el usado en el extremo emisor y leer el
mensaje de forma longitudinal. La clave del sistema se encuentra en el dimetro del
bastn.

M = ASI CIFRABAN CON LA ESCITALA

C = AAC SIN ICT COA INL FLA RA AE BS
5
Criptografa clsica: Csar
Siglo I a.C.
Desplazamiento de tres espacios (k=3) hacia la derecha de M
Es un cifrador por sustitucin en el que las operaciones se realizan
mdulo n, (n = al nmero 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

Criptoanlisis usando estadsticas de M
6
Cifrado simtrico
Operaciones de cifrado
Sustitucin
Monoalfabeto
Csar, Polybios, Playfair, etc.
Polialfabeto
Vigenere
Mquinas de rotor
Transposicin
Rail Fence
Transposicin de columnas
Etc.
Producto (sustituciones x transposiciones)
Ejemplos de algoritmos simtricos son DES, 3DES, RC5, AES, Blowfish e
IDEA.
7
Cifrado simtrico
Cifradores simtricos
El principal inconveniente es la fase de intercambio de claves
Cmo se intercambian de manera segura a travs de un medio de
comunicacin inseguro?
Centro de Distribucin de Claves
Cifrado asimtrico


8
Centro de distribucin de claves
Problema: conocer clave simtrica de forma segura
Key Distribution Center, KDC: servidor comparte diferentes claves con
cada usuario registrado
Cada usuario tiene una clave para la comunicacin segura con el
KDC: K
A-KDC
, K
B-KDC

K
B-KDC
K
X-KDC
K
Y-KDC
K
Z-KDC
K
P-KDC
K
B-KDC
K
A-KDC
K
A-KDC
K
P-KDC
KDC
9
Centro de distribucin de claves
Problema: Cmo permite KDC a los usuarios (UA, UB) determinar la
contrasea compartida para su comunicacin?

Bob sabe que debe
usar R1 para
comunicarse con A
(Alice)
Comunicacin entre Alice y Bob mediante clave de sesin
R1 para cifrado simtrico
KDC genera
R1
K
B-KDC
(A,R1)
K
A-KDC
(A,B)
K
A-KDC
(R1, K
B-KDC
(A,R1) )
Alice
recibe R1
y reenva
KB-KDC(A,R1) )

10
Comparativa: gestin de claves
Cifrado simtrico
Para n participantes, entran en
juego
n * (n-1) / 2 claves
Cifrado asimtrico
Para n participantes, entran en
juego
2 * n claves

EJ EMPLO

Para n =100 (100 participantes)
Simtrico: 100x99/2 =4950 claves.
Asimtrico: 2x100 =200 claves
11
CIFRADO ASIMTRICO
12
Cifrado asimtrico
Dos claves:
Pblica (K
Ua
)
Conocida por todo el mundo
Usada para cifrar mensajes y verificar la firma de un mensaje
Privada (K
RA
)
Conocida nicamente por el propietario
Usada para descifrar mensajes y para firmar mensajes

Asimtrica: las partes no son iguales

Funcionamiento basado la Teora de Nmeros
13
Cifrado asimtrico
14
Slo destinatario podr descifrar el mensaje (KR
dest
)

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

Cifrado con clave pblica de destino
15
Cualquier usuario podr descifrar el mensaje (KU
orig
)

No proporciona confidencialidad

S proporciona:
integridad
si el mensaje es alterado no se podr descifrar
autenticidad del emisor
Slo el emisor puede haber cifrado el mensaje con su clave privada, ya
que slo el tiene esa clave
no repudio
el emisor no puede negar que ha sido el quien cifr el mensaje

Es el mecanismo que hace posible la firma digital!
Cifrado con clave privada de origen
16
Cifrado asimtrico: confidencialidad y autenticacin
17
El algoritmo de clave pblica RSA
Desarrollado por Rivest, Shamir & Adleman en el MIT en 1977. Se
public en 1978.
Ha sido desde entonces el enfoque ms aceptado e implementado
para el cifrado de clave pblica.
Es un cifrado de bloque en el que el texto claro y el texto cifrado son
enteros entre 0 y n-1 para algn n.
Basado en exponenciacin.
La exponenciacin conlleva O((log n)
3
) operaciones (fcil)
Seguridad
Basada en el coste de factorizar nmeros grandes.
La factorizacin conlleva O(e
log n log log n
) operaciones (difcil).

18
Cifrado
C = M
e
mod n

Descifrado
M = C
d
mod n = (M
e
)
d
mod n = M
ed
mod n

Requisitos
e, d, n / M
ed
mod n = M M < n
(M
e
mod n) y (C
d
mod n) sean fciles de calcular
Conocidos e y n sea imposible calcular d

El algoritmo de clave pblica RSA
19
Seleccionar dos nmeros primos grandes: p, q
Calcular mdulo de su grupo de trabajo n = pq
nota (n)=(p-1)(q-1)
Seleccionar clave de cifrado e
1<e<(n), mcd(e,(n))=1
Obtener clave de descifrado d
ed=1 mod (n) y 0dn
Si d es inversa de e entonces ed = 1+k(n) para algn k
Clave Pblica
PU={e,n}
Clave Privada
PR={d,n}
Guardar en secreto o destruir p, q y (n)
Generacin de claves RSA
20
Intercambio de claves Diffie-Hellman
Primer algoritmo de clave pblica publicado (Diffie & Hellman, 1976)
Muchos productos comerciales utilizan este algoritmo
El propsito 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
Origen) A = g^x (mod p)
Enva al destino A y el valor de g escogido.
Se almacena x en secreto

Destino) B = g^y (mod p)
Enva al origen B

Clculo de la clave de sesin:
Origen: B^x (mod p)
Destino: A^y (mod p)

Ningn intermediario puede conocer la clave de sesin
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)

Diffie-Hellman
22
Funciones hash
Una funcin hash acepta un mensaje de tamao variable, M, como
entrada y produce un resumen del mensaje de tamao fijo H(M)
como salida.

Usos:
Autenticacin de mensaje
Integridad de archivos
Contraseas

23
Autenticacin de mensajes con funcin hash

Autenticacin de mensajes con funcin hash (Stallings, 2004)
24
Autenticacin de mensajes con funcin hash

Autenticacin de mensajes con funcin hash (Stallings, 2004)
25
Agrupacin de texto en bloques
Representacin de cada carcter por su cdigo ASCII
Tamao bloque: 3
Funcin matemtica 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 d e
69 110 32 117 110 32 114 105 110 99 243 110 32 100 101
l a M a n c h a d e c
32 108 97 32 77 97 110 99 104 97 32 100 101 32 99
u y o n o m b r e n o q
117 121 111 32 110 111 109 98 114 101 32 110 111 32 113
8927 -444 -8658 1254 7590
2738
8669
-1312 224 990 -15840 -6868 -22806
-7372 -4365 1144 6500
-11399
6831
Funciones Hash. Una aproximacin
26
E n u n r i n c o n d e
69 110 32 117 110 32 114 105 110 99 111 110 32 100 101
l a M a n c h a d e c
32 108 97 32 77 97 110 99 104 97 32 100 101 32 99
u y o n o m b r e n o q
117 121 111 32 110 111 109 98 114 101 32 110 111 32 113
8927 -444 -8658 1254 7590
2738
8669
-1312 224 990 -1320 -6868 -8286
-7372 -4365 1144 6500
3121
6831
Cualquier cambio mnimo en el texto produce un cambio radical en
el resultado de la funcin Hash
As, si cambiamos rincn por rincon, el valor de la funcin Hash pasa de
-11.399 a 3.121
Funciones Hash. Una aproximacin
27
Una funcin 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.

Funcin hash simple mediante XOR bit a bit (Stallings, 2004)
28
Requisitos de las funciones hash
Para que resulte til a la autenticacin de mensajes, una funcin hash H
debe poseer las siguientes propiedades (Stallings, 2004):
H puede aplicarse aun bloque de datos de cualquier tamao
H produce una salida de tamao fijo
H(x) es relativamente fcil 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 dbil a la colisin)
Es imposible desde el punto de vista computacional encontrar un par (x, y) tal que
H(x) = H(y) (resistencia fuerte a la colisin)
29
Funciones hash

30
Garantiza que un documento proviene de quin lo ha
firmado
Proporciona Autenticacin, Integridad y no Repudio

Documento se cifra con KR
orig
Slo el poseedor de la clave privada puede haberlo hecho
KU
orig
permite comprobar la validez del documento

Problema: ineficiencia cifrado (cifrado asimtrico
tiene un coste computacional muy alto)
No se firma el documento completo, sino un resumen
Firma Digital
31
Generar resumen del documento (mtodo 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 funcin unidireccional de resumen. Despus descifra con
la clave pblica del origen el resumen firmado
Si el resumen firmado coincide con el resumen que l ha
generado, la firma es vlida
Firma Digital
Protocolo
32
Firma Digital
Protocolo
33
Se ofrecen conjuntamente los servicios de:

No repudio, ya que nadie excepto A podra haber firmado el documento

Autenticacin, ya que si el documento viene firmado por A, podemos estar
seguros de su identidad, dado que slo l ha podido firmarlo

Integridad del documento, ya que en caso de ser modificado, resultara
imposible hacerlo de forma tal que se generase la misma funcin de resumen
que haba sido firmada

No ofrece privacidad!
Firma Digital
34
CERTIFICADOS DIGITALES
35
Certificados digitales
Una de las funciones principales del cifrado de clave pblica es la de
tratar el problema de la distribucin de claves.

Un usuario puede enviar su clave pblica a otro o difundirla a travs
de Internet.

Problema: cualquiera puede falsificar la clave pblica.

Solucin: certificado de clave pblica.


36
Certificados digitales
Un certificado digital, bsicamente contiene:
Clave pblica
Identificador o nombre de usuario del dueo de la clave
Todo esto firmado digitalmente por una tercera parte confiable

La tercera parte confiable suele ser una Autoridad de Certificacin
(CA, Certificate Authority) en la que confa 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
perodo de validez. Si dejan de
ser vlidos dentro de ese
perodo, es necesario revocarlos.

Razones para la revocacin:
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 CERTIFICACIN
40
Autoridades de Certificacin
Un usuario puede presentar su clave pblica ante una CA, para
obtener un certificado y luego publicarlo.

As, cualquiera que necesite la clave pblica de este usuario puede
obtener el certificado y verificar que es vlida por medio de la firma
adjunta.




41
Autoridades de Certificacin
Obtencin del certificado.

Clave
pblica
K
B
+
Identificacin
Personal
digital
signature
(encrypt)
CA
clave
privada
K
CA
-
K
B
+
certificado de
clave pblica,
firmado por CA
42
Autoridades de certificacin
Comprobacin del certificado.
Obtencin del certificado (propio usuario, repositorio, etc.)
Verificar la firma del certificado, usando la clave pblica de la CA
Bobs
public
key
K
B
+
digital
signature
(decrypt)
CA
public
key
K
CA
+
K
B
+
43
Autoridades de certificacin
Caractersticas:
Cualquier usuario con acceso a la clave pblica de la AC puede verificar
la clave pblica del usuario que fue certificada.
Slo la AC puede modificar el certificado sin que esto se detecte.
Evita la necesidad de un repositorio de acceso comn.

44
Ejemplos de Autoridades de Certificacin
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 travs de redes inseguras, como Internet
Diseado por Netscape en 1993
Est principalmente orientado al Web, aunque est disponible para
cualquier aplicacin TCP
47
Secure Socket Layer (SSL)
Objetivos:
Permitir transacciones electrnicas.
Cifrado.
Normalmente, no se cifra toda la comunicacin, sino el trfico que
contiene datos sensibles (envo de una contrasea, envo de un
nmero de tarjeta de crdito).
La mejora en el rendimiento de las mquinas, hace que muchos
sitios utilicen SSL durante toda la comunicacin (e.g. Gmail).
Autenticacin del servidor.
Autenticacin del cliente (opcional).

48
Secure Socket Layer (SSL)
Proporciona:
Autenticacin 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 tcnicas de cifrado asimtrico para
intercambiar claves compartidas. Se utilizan dichas claves compartidas
para cifrar y descifrar la comunicacin.
Integridad. Se utilizan hash para garantizar que los mensajes no son
alterados en trnsito
Autenticacin del cliente (opcional). Usualmente, el cliente se
autentica ante el servidor mediante un nombre de usuario y una
contrasea, aunque tambin podra hacerlo mediante un certificado
digital (algunos bancos y administraciones pblicas ofrecen esta
posibilidad)
49
Los navegadores actuales
incluyen soporte para SSL, as
como las claves pblicas de las
Autoridades de Certificacin
de confianza.
El navegador solicita al
servidor que le enve su
certificado. Este certificado
debe ser emitido por una AC
de confianza.
El navegador utiliza la clave
pblica de la AC para verificar
que el certificado del servidor
es vlido.

En el navegador se pueden ver las
Autoridades de Certificacin de confianza
Secure Sockets Layer
Autenticacin del servidor
50
Cliente Servidor
Cliente emite solicitud de session segura
(https://www.server.com)
Servidor enva un certificado digital X.509 que contiene su
clave pblica
Cliente comprueba certificado contra su lista de ACs
conocidas. Si la AC es desconocida, el navegador puede dar al
usuario la opcin de aceptar el certificado (a riesgo suyo)
Cliente genera una clave simtrica aleatoria y la cifra usando la
clave pblica del servidor
Cliente y servidor conocen ahora la clave simtrica y la usan
para cifrar la comunicacin

Secure Sockets Layer
SSL HandShake (versin simplificada)
51
Extrado de: http://technet.microsoft.com/es-es/library/cc785811(WS.10).aspx
Secure Sockets Layer
SSL HandShake
52
Secure Sockets Layer
Algoritmos utilizados:
Cifrado simtrico:
DES Data Encryption Standard: block
3DES Triple strength: block
RC2 Rivest Cipher 2: block
RC4 Rivest Cipher 4: stream
Cifrado asimtrico:
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 Ylnen.
Es un protocolo de red que permite establecer un canal seguro entre
dos dispositivos de red.
Diseado para ofrecer una alternativa segura a Telnet y FTP.
Tambin soporta tunneling (port forwarding y X forwarding)



55
SSH
Provee las siguientes garantas de seguridad:
Autenticacin: 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 conexin SSH
Intercambio de clave simtrica entre cliente y servidor. Diffie-Hellman
Cifrado capa transporte entre cliente y servidor.
Autenticacin de servidor
Interaccin cliente-servidor sobre conexin cifrada



57
Directorio /etc/ssh/:

moduli: Contiene grupos Diffie-Hellman usados para el intercambio de la clave Diffie-
Hellman que es imprescindible para la construccin de una capa de transporte seguro.
Cuando se intercambian las claves al inicio de una sesin 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 autenticacin del host
ssh_config: Archivo de configuracin 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 configuracin para el demonio sshd
ssh_host_dsa_key: Clave privada DSA usada por el demonio sshd
ssh_host_dsa_key.pub: Clave pblica 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 pblica 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 pblica RSA usada por el demonio sshd para SSH
SSH
58
Directorio principal del usuario ~/.ssh/:

authorized_keys: Lista de claves pblicas "autorizadas". Cuando un cliente se
conecta al servidor, el servidor valida al cliente chequeando su clave pblica
firmada almacenada dentro de este archivo
id_dsa: Clave privada DSA del usuario
id_dsa.pub: Clave pblica DSA del usuario
id_rsa: Clave RSA privada usada por ssh para SSH v2
id_rsa.pub: La clave pblica RSA usada por ssh para SSH v2
identity: La clave privada RSA usada por ssh para SSH v1
identity.pub: La clave pblica 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
SSH
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
Redireccin puerto local
Eg. ssh L l ocal Por t : ser ver Name: r emot ePor t user name@ser ver Name
Redireccin puerto remoto

Envo de trfico a travs del tnel
60
SSH. Tunneling

(Barrett et. al., 2005)
61
SSH. Tunneling
Comprobar el correo del servidor usando POP a travs de una conexin cifrada:

ssh - L 1100: mai l . exampl e. com: 110 mai l . exampl e. com

Una vez que el canal de reenvo de puerto est entre la mquina 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 peticin enviada al puerto 1100
en el sistema cliente ser dirigida de manera segura al servidor mail.example.com

mail.example.com
110
cliente
1100
62
SSH. Herramientas
SCP (Secure Copy Protocol)
Permite transmitir ficheros entre mquinas sobre una conexin cifrada y segura


SFTP (SSH File Transfer Protocol)
Permite abrir una conexin segura interactiva de ftp


ssh-keygen
Generacin de claves DSA y/o RSA
Autenticacin basada en clave pblica/privada y no en user/password
~/.ssh/authorized_keys
ssh I privateKey
scp [ opt i ons] u1@sr c: di r 1/ f i l ename1 u2@dst : di r 2/ f i l ename2
sf t p usuar i o@f t pSer ver
63
Bibliografa recomendada
Stallings, W. (2004). Fundamentos de Seguridad en Redes.
Aplicaciones y estndares. (2 ed.): Pearson.

Santos del Riego, A (2013). Legislacin [Proteccin] y Seguridad de
la Informacin. Disponible en: http://psi-udc.blogspot.com.

64
Bibliografa complementaria / Sitios de inters
Daniel J. Barrett, Richard E. Silverman, Robert G. Byrnes. (2005). SSH,
the secure shell: the definitive guide. 2
nd
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