Herramientas criptográficas

Anuncio
Seguridad en redes de ordenadores: Herramientas
criptográficas
Departamento de Sistemas Telemáticos y Computación (GSyC)
http://gsyc.urjc.es
Febrero de 2013
GSyC - 2013
Herramientas criptográficas
1
c
2013
GSyC
Algunos derechos reservados.
Este trabajo se distribuye bajo la licencia
Creative Commons Attribution Share-Alike 3.0
GSyC - 2013
Herramientas criptográficas
2
Principio de Kerckhoffs
Principio de Kerckhoffs: Los algoritmos deben ser públicos; solo las
claves deben ser secretas
Rogues knew a good deal about lock-picking long before locksmiths
discussed it among themselves. If a lock is not so inviolable as it has
hitherto been deemed to be, surely it is to the interest of honest
persons to know this fact, and the spread of the knowledge is
necessary to give fair play to those who might suffer by ignorance
A.C.Hobbs, 1853
El sistema no debe depender del secreto y debe poder ser robado
por el enemigo sin causar problemas
A. Kerckhoffs, 1883
GSyC - 2013
Herramientas criptográficas
3
Dos principios contrapuestos
1
Security through obscurity
(Seguridad mediante la oscuridad)
2
Security by design
Diseñar desde el principio cada elemento del sistema para ser
seguro
Confiar solamente en (1) es sin duda una mala idea. En general se
prefiere solamente (2). Aunque en ocasiones se defiende (2)
complementado con (1)
GSyC - 2013
Herramientas criptográficas
4
Una vez descubierta una vulnerabilidad, un hacker (sombrero gris o
blanco) puede aplicar varias polı́ticas para revelarla
Full disclosure. (Divulgación masiva)
Responsible disclosure (Revelación responsable)
Security through obscurity (Seguridad mediante la oscuridad)
GSyC - 2013
Herramientas criptográficas
5
Criptografı́a
Principios criptográficos
Criptologı́a = criptografı́a (inventar códigos) + criptoanálisis
(atacarlos)
El cifrado es la base de la confidencialidad
La garantı́a de la integridad está basada en algún mecanismo
con redundancia, que evite que una modificación de los
mismos resulte en otro mensaje válido.
Algoritmos como CRC no son adecuados, previenen contra
error casual, no contra atacante malicioso. MD5 y SHA-1
tienen seguridad intermedia. Hay alternativas mejores como
p.e. MIC (Message Integrity Check), SHA-2, RIPEMD-160
(RACE Integrity Primitives Evaluation Message Digest)
El cifrado por sı́ mismo no basta para protegerse contra los
ataques por retransmisión (aka repetición)
GSyC - 2013
Herramientas criptográficas
6
Criptografı́a
Ejemplo de ataque por retransmisión: ábrete, sésamo
El capitán de los cuarenta ladrones usa estas palabras mágicas para
abrir la cueva de los tesoros y Alı́ Babá las repite sin más.
Como defensa:
Inclusión de marcas de tiempo
hora lógica
vs
hora fı́sica, aka hora civil, aka hora del reloj de pared
Sistemas de reto-respuesta
GSyC - 2013
Herramientas criptográficas
7
Criptografı́a
Sistemas de reto-respuesta
Métodos basados en el intercambio de mensajes
Un reto es un nounce, un valor que solamente se usa una vez
A
A
---E(R)--->
<----R----
B
B
Si A envı́a un reto cifrado a B y B es capaz de devolverlo en
claro (o con otro cifrado), B demuestra a A que conoce el
secreto
Pero B no revela el secreto
GSyC - 2013
Herramientas criptográficas
8
Criptografı́a
Criptografı́a de Clave Secreta
Criptografı́a de Clave Secreta
La misma clave que cifra, descifra
Muchos algoritmos: DES (obsoleto), triple DES, AES (o
Rijndael). Oficial gobierno EEUU desde 2001), twofish, etc etc
Problemas
Haces falta muchas claves: una por cada pareja de posibles
comunicantes
n(n-1)/2
P.e. para 20 usuarios, harı́an falta 190 claves distintas
¿Cómo transmitir las claves de forma segura?
Problema de los libros de claves
GSyC - 2013
Herramientas criptográficas
9
Criptografı́a
Criptografı́a de Clave Secreta
Clave de sesión
Es una clave simétrica que se usa en una única sesión (que
tı́picamente durará minutos o como mucho, horas)
Como se usa poco tiempo, es poco probable que el atacante
la obtenga. Y aunque la obtuviera, no le servirı́a durante
mucho tiempo
Normalmente se distribuye de forma segura y automática, ya
sea mediante criptografı́a simétrica o mediante criptografı́a
asimétrica
GSyC - 2013
Herramientas criptográficas
10
Criptografı́a
Autenticación con clave secreta: Kerberos
Autenticación con clave secreta: Kerberos
Kerberos: protocolo de autenticación, sobre red no segura
Publicado por el MIT en 1993,
RFC 1510, año 1993
RFC 4120, año 2005
El MIT también ofrece implementaciones con licencia tipo
BSD.
Muy ampliamente usado: Windows, Unix, Linux, MacOS,
OpenVMS...
Criptografı́a simétrica, basado en DES, 3DES, RC4
Cliente/servidor, ambos autenticados
Depende de un tercero en el que cliente y servidor confı́an
GSyC - 2013
Herramientas criptográficas
11
Criptografı́a
Autenticación con clave secreta: Kerberos
Kerberos usa el protocolo de autenticación Needham-Schroeder
Alice y Bob confı́an en un servidor, con el que comparten una
clave privada
Alice se autentica con el Servidor empleando una clave privada
El servidor le da a Alice un ticket cifrado con la clave privada
de Bob, con una clave de sesión y marca de tiempo
Alice envı́a a Bob el ticket
Alice y Bob intercambian mensajes con la clave de sesión
GSyC - 2013
Herramientas criptográficas
12
Criptografı́a
Autenticación con clave secreta: Kerberos
Inconvenientes de Kerberos
El servidor es un punto único de fallo: necesita estar
continuamente disponible
Requiere una sincronización estricta de los relojes para evitar
ataques por retransmisión
GSyC - 2013
Herramientas criptográficas
13
Criptografı́a
Criptografı́a de clave pública
Criptografı́a de clave pública
Aparece con el algoritmo Diffie-Hellman, año 1976
Clave de cifrado o pública Pub y de descifrado o privada Priv
distintas (asimétricas)
Priv (Pub(Mensaje)) = Mensaje
Prácticamente imposible romper el sistema (p.e. obtener Priv )
teniendo Pub.
Basado en aritmética de numeros primos muy grandes (300
dı́gitos): Conociendo X e Y, números primos muy grandes, se
descomponer X*Y. Pero es inviable obtener X e Y a partir de
X*Y
Permite intercambiar claves por canal no seguro
La clave privada sirve para descifrar. Debe mantenerse en
secreto
La clave pública sirve para cifrar. Puede conocerla todo el
mundo (lo importante es que la clave conocida sea la correcta)
GSyC - 2013
Herramientas criptográficas
14
Criptografı́a
Criptografı́a de clave pública
Alice
Bob
--- PubB (Mensaje) --->
PrivB (PubB (Mensaje)) = Mensaje
Conociendo la clave pública de alguien, podemos cifrar un
mensaje que solo él, con su clave privada, podrá descifrar
Los algoritmos de clave pública son mucho más lentos que los
de clave secreta (100 a 1000 veces). Por eso se suelen usar
solamente para el intercambio de claves de sesión
GSyC - 2013
Herramientas criptográficas
15
Criptografı́a
Criptografı́a de clave pública
La criptografı́a asimétrica también sirve para autenticar (como en
OpenSSH)
Queremos desde una sesión en una máquina local, abrir otra sesión
en una máquina remota sin volver a teclear contraseña
Una máquina remota, no fiable, contiene clave pública
Máquina local, fiable, contiene la clave privada
La máquina remota envı́a un reto cifrado con la clave pública,
si la máquina local lo descifra, el usuario queda autenticado y
puede abrir sesión en la máquina remota sin teclear contraseña
GSyC - 2013
Herramientas criptográficas
16
Criptografı́a
Criptografı́a de clave pública
RSA
De Rivest, Shamir y Adleman, año 1978
Algorimo de clave pública, muy extendido
Además de cifrar, sirve para firmar
GSyC - 2013
Herramientas criptográficas
17
Criptografı́a
Criptografı́a de clave pública
Autenticación con clave pública
Alice
(1)
(2)
(3)
(4)
(5)
(6)
(7)
GSyC - 2013
Servidor
de Claves
Bob
--- Envı́ame PubB -->
<-- Toma PubB
---------------- PubB (A, RA ) ------------->
<--- Envı́ame PubA ---- Toma PubA -->
<------------ PubA (RA , RB , KS ) ----------------------- KS (RB ) ----------------->
Herramientas criptográficas
18
Criptografı́a
1,2:
3:
4,5:
6:
7:
A
A
B
B
y
A
Criptografı́a de clave pública
obtiene del servidor la clave pública de B
envı́a a B su remite y un reto, cifrados con la clave de B
obtiene del servidor la clave pública de A
cifra, con la clave de A: el reto de A, un reto nuevo
una clave de sesión. Lo envı́a a A
devuelve el reto de B, cifrado con la clave de sesión
Esto garantiza privacidad e integridad
Limitación: Es necesario generar una clave de sesión para cada
transmisión, para cada destinatario
¿Servirı́a para un chat? ¿Servirı́a para una ley? ¿Servirı́a para un
testamento?
GSyC - 2013
Herramientas criptográficas
19
Criptografı́a
Función hash
Función hash
Se usa en cualquier algoritmo que garantice la integridad de un
mensaje, sin depender de clave de sesión
hash:
a mess, jumble, or muddled.
to chop into small pieces; make into hash; mince.
to muddle or mess up.
Función que, a partir de un bloque arbitrario de datos
(message), genera de forma determinista un valor hash, aka
message digest, aka digest.
Este valor hash identifica de forma prácticamente unı́voca al
mensaje, de forma que un cambio en el mensaje, incluso
mı́nimo, provoque un cambio en el valor hash
Es posible que dos mensajes distintos generen el mismo valor
hash, aunque muy difı́cil
koji@mazinger:~$ md5sum ubuntu-12.10-desktop-i386.iso
b4191c1d1d6fdf358c154f8bf86b97dd ubuntu-12.10-desktop-i386.iso
GSyC - 2013
Herramientas criptográficas
20
Criptografı́a
Función hash
Función hash ideal:
Fácil de generar
Muy difı́cil generar el mensaje a partir del hash
Muy difı́cil modificar el mensaje manteniendo el hash
Muy difı́cil encontrar dos mensajes con el mismo hash
Ejemplos de funciones hash: MD5, SHA-1, SHA-2
GSyC - 2013
Herramientas criptográficas
21
Criptografı́a
Firmas digitales
Firma digital
Además de la firma manuscrita tradicional, en España (ley
59/2003) y muchos otros paises puede emplearse una firma digital,
con el mismo valor legal
Permite enviar un mensaje firmado, esto es, con autenticación,
integridad y no repudio
Requisitos
Generación fácil
No rechazable (no repudio)
Única: solo su propietario puede generarlo
Fácilmente verificable por propietario y receptores
Depender del mensaje y del autor
Inclusión de sello de tiempo
Revocación del certificado por el firmante
¿Más o menos seguro que la firma tradicional?
GSyC - 2013
Herramientas criptográficas
22
Criptografı́a
Firmas digitales
Algoritmos como RSA tienen la propiedad de que la clave privada,
además de descifrar lo cifrado con la clave pública, sirve para cifrar
algo que podrá ser descifrado con la clave pública
Uso normal: Privacidad básica (sin integridad)
Alice
Bob
--- PubB (Mensaje) --->
PrivB (PubB (Mensaje)) = Mensaje
Uso adicional: Firma básica (integridad sin privacidad)
Alice
Bob
--- PrivA (Mensaje) --->
PubA (PrivA (Mensaje)) = Mensaje
Llamamos básicos a estos algoritmos porque cifran con criptografı́a
asimétrica el mensaje completo. No son prácticos (a menos que el
mensaje sea muy corto), ya que es muy costoso cifrar el mensaje
completo con la clave privada. Por eso se usan algoritmos
ligeramente más complejos (enviar una clave de sesión o firmar un
hash)
GSyC - 2013
Herramientas criptográficas
23
Criptografı́a
Firmas digitales
¿Podemos obtener el mensaje a partir de PubB (PubB (Mensaje))?
GSyC - 2013
Herramientas criptográficas
24
Criptografı́a
Firmas digitales
Para evitar el cifrado del mensaje completo:
A partir de un mensaje, se genera un digest
El digest se encripta con la clave privada y se transmite junto
con el mensaje
El receptor
Descifra el digest con la clave pública del emisor
Genera de nuevo el código hash
Si el código hash de la firma y del mensaje coinciden, el
mensaje solo puedo enviarlo el origen
GSyC - 2013
Herramientas criptográficas
25
Criptografı́a
A
Firmas digitales
B
--- Mensaje, Priv_A(Digest)--->
Pub_A(Priv_A(Digest)) = Digest_recibido
Hash (Mensaje) = Digest_recalculado
Si Digest_recibido=Digest_recalculado, entonces el mensaje
lo ha enviado A
Obsérvese que esto solo busca la integridad, no la privacidad.
¿Servirı́a para un chat? ¿Servirı́a para una ley? ¿Servirı́a para un
testamento?
GSyC - 2013
Herramientas criptográficas
26
Criptografı́a
Firmas digitales
Para comunicaciones sı́ncronas (ejemplo: un chat), cuando se
necesita privacidad además de integridad, lo más conveniente
suele ser emplear el algoritmo de intercambio de clave de
sesión que ya hemos visto
Para comunicaciones ası́ncronas (ejemplo: un e-mail), no se
puede usar una clave de sesión. Para obtener privacidad e
integridad se puede:
Cifrar el mensaje/el hash con la clave privada del origen (para
ofrecer integridad) y cifrar el resultado con la clave pública del
destino (para ofrecer privacidad)
Cifrar el mensaje con la clave pública del destino (para ofrecer
privacidad) y cifrar el resultado/el hash del resultado con la
clave privada del origen (para ofrecer integridad)
Las diferencias entre estos dos pasos son mı́nimas, es hacer
prácticamente lo mismo en distinto orden
No se debe transmitir en claro el hash de un mensaje privado, esto
puede facilitar el trabajo del atacante
GSyC - 2013
Herramientas criptográficas
27
Criptografı́a
Certificados digitales
Certificados digitales
La criptografı́a asimétrica me garantiza que un mensaje cifrado con
la clave pública de alguien solo lo descifrará quien tenga la clave
privada asociada
Pero ¿Cómo se que ese alguien es realmente quien dice ser?
Hay protocolos basados en autoridades de certificación.
Tı́picamente X.509. Es un modelo jerárquico, con autoridades
certificantes centralizadas, que verifican la identidad y emiten
certificados digitales
Hay protocolos basados en redes de confianza. El más
habitual es OpenPGP. Si Alice confı́a en Bob y Bob confı́a en
Carol, Alice confı́a en Carol
Si quiero comunicarme con un usuario, y no tenemos
contactos comunes, este protocolo no proporciona ninguna
manera de validar su clave
GSyC - 2013
Herramientas criptográficas
28
Criptografı́a
Certificados digitales
Un certificado digital contiene, al menos
Identidad del usuario: nombre y apellidos, o denominación
social
Clave pública del usuario
Identidad de la CA (certificate authority aka certification
authority, autoridad certificadora)
Algoritmo criptográfico empleado
Todo ello, con una firma que fue generada con la clave privada de
la CA y que permite obtener la clave pública de la CA
Al igual que la clave pública, un certificado no es ningún secreto.
Cualquiera puede leerlo, y cualquiera que reconozca a esa CA,
podrá comprobar que se mantiene la integridad y que la identidad
es válida
GSyC - 2013
Herramientas criptográficas
29
Criptografı́a
Certificados digitales
X.509
Es un estándar del ITU-T y el IETF, publicado inicialmente en
1988
La autoridad central que emite el certificado digital puede ser
Una empresa acreditada, p.e. VeriSign
Un organismo público, como la Fábrica Nacional de Moneda y
Timbre (FNMT) o la Dirección General de la Policı́a
Una comunidad de usuarios, normalmente CAcert
Cualquier persona
GSyC - 2013
Herramientas criptográficas
30
Criptografı́a
Certificados digitales
Los certificados X.509
Pueden usar diversos algoritmos de criptografı́a asimétrica,
p.e. RSA
Tı́picamente se usan dentro de un navegador web
Es necesario que el navegador reconozca a la autoridad
certificadora. Esto es, que traiga de serie un certificado de
autoridad certificadora raiz
Esto no siempre sucede. Ejemplos:
Cualquier navegador incluye el certificado de VeriSign
El certificado de la FNMT solo lo incluyen Internet Explorer y
Mozilla Firefox
El certificado de CACert no viene en ningún navegador
Cuando falta el certificado, el navegador mostrará un aviso.
El usuario puede obtener certificados por su cuenta e
instalarlos
GSyC - 2013
Herramientas criptográficas
31
Criptografı́a
Herramientas de cifrado
Herramientas de cifrado
Los algoritmos de cifrado tal y como los definen los
matemáticos no suelen ser prácticos para el administrador o
usuario final
A partir de los algoritmos (normalmente unos pocos) se
desarrollan diversas implementaciones, librerı́as, aplicaciones,
protocolos
GSyC - 2013
Herramientas criptográficas
32
Criptografı́a
Herramientas de cifrado
PGP
PGP: Pretty Good Privacy
Philip Zimmermann, año 1991
Implementación de RSA muy popular
Claves de al menos 128 bits
Base de estándar OpenPGP RFC 1991 (año 1996), RFC 5581
(Año 2009)
En la actualidad es más habitual emplear GPG aka GnuPG
(GNU Privacy Guard), implementación de OpenPGP
alternativa a PGP
Diversos front-ends: Gpg4win para Windows, Seahorse para
GNOME, KGPG para KDE, Mac GPG para Mac OS, Enigform
para Firefox...
Habitualmente se usa para encriptar y firmar ficheros, correos,
etc
GSyC - 2013
Herramientas criptográficas
33
Criptografı́a
Herramientas de cifrado
Cifrado de particiones
En ocasiones, en vez de cifrar ficheros individuales, resulta más
conveniente cifrar particiones completas del disco duro
eCryptfs
Sistema de ficheros cifrado, compatible con la norma POSIX.
Habitual en Linux
Encrypting File System
Nativo en Microsoft Windows
FileVault
Nativo en Mac OS
TrueCrypt
Disponible para Windows, Linux, Mac OS. Uso sencillo,
potente, muy popular. Código fuente disponible con licencia
gratuita no libre
Basados en AES, Triple DES o similares
GSyC - 2013
Herramientas criptográficas
34
Criptografı́a
DRM
DRM
En 2012, el intercambio de ficheros representa el 25 % del tráfico
global en internet. El video, el 60 % 1
A su vez, una buena parte de los ficheros y cierta parte del vı́deo se
corresponde con contenidos protegidos por Copyright
DRM: Digital rights management
Sistema de control de acceso a contenidos digitales (música,
vı́deo, juegos y libros) para evitar que sean utilizado en formas
no permitidas por el distribuidor
Desde el siglo XVIII se reconoce a los autores los derechos
sobre su creación intelectual. El DRM busca la protección de
estos derechos
Basado en criptografı́a
1
GSyC - 2013
Cisco Visual Networking Index, 2012
Herramientas criptográficas
35
Criptografı́a
DRM
La industria de contenidos dice:
La copia es un delito
El DRM beneficia al usuario, ya que si el autor no recibe
compensación, no habrá creación
Miguel de Cervantes dice:
No hagas muchas pragmáticas 2 ; y si las hicieres, procura que sean buenas, y,
sobre todo, que se guarden y cumplan; que las pragmáticas que no se guardan,
lo mismo es que si no lo fuesen; antes dan a entender que el prı́ncipe que tuvo
discreción y autoridad para hacerlas, no tuvo valor para hacer que se guardasen;
y las leyes que atemorizan y no se ejecutan, vienen a ser como la viga, rey de las
ranas: que al principio las espantó, y con el tiempo la menospreciaron y se
subieron sobre ella.
2
GSyC - 2013
leyes
Herramientas criptográficas
36
Criptografı́a
DRM
Limitaciones del DRM
Criptografı́a relativamente vulnerable, puesto que el atacante
tı́picamente también es usuario legı́timo, y tiene acceso a un
dispositivo con todas las claves. Aunque estas claves tengan
cierta protección
Frecuentemente implementado en hardware no actualizable
El usuario final con equipos domésticos no podrá copiar el
contenido, pero equipos industriales capaces de trabajar a
bajo nivel, probablemente sı́ podrán
Cualquier material (excepto el interactivo) es vulnerable al
agujero analógico
GSyC - 2013
Herramientas criptográficas
37
Criptografı́a
DRM
Inconvenientes para el usuario legı́timo
Es frecuente que el DRM
Resulte incómodo
Impida usos legales de los contenidos
Conlleve pérdida del acceso, por obsolescencia
GSyC - 2013
Herramientas criptográficas
38
Descargar