Está en la página 1de 115

Criptografa Aplicada

GSI - Facultad de Ingeniera - 2014

Plan

Introduccin

Mtodos criptogrficos

Algoritmos simtricos

Algoritmos asimtricos

Hashes y Macs

Firmas digitales

Gestin de claves y autenticacin

Infraestructuras de clave pblica (PKI)

Marzo 2014

FSI 2014 Criptografa Aplicada

Algunas definiciones

Criptografa: Estudio de principios o mtodos


de cifrado
Encriptar o cifrar: informalmente, proceso de
convertir la informacin a una forma
disfrazada para ser transmitida a travs de un
canal inseguro
Desencriptar o descifrar: proceso aplicado a la
informacin disfrazada para obtener el
mensaje original

Marzo 2014

FSI 2014 Criptografa Aplicada

Criptografa

La criptografa utiliza la matemtica para


obtener seguridad sobre la informacin
transmitida o almacenada. Algunos objetivos:

Privacidad

Integridad de los datos

Autenticacin

No repudio

Permite mejorar la seguridad al almacenar o


transmitir informacin por canales inseguros

Marzo 2014

FSI 2014 Criptografa Aplicada

Ataques pasivos

William
Stallings. Cryptography and
Network Security, 4ta.
Figura 1.3a
Stallings
Figure
1 Ed.
.3a
Marzo 2014

FSI 2014 Criptografa Aplicada

Ataques activos

William
Stallings. Cryptography and
Network Security, 4ta.
Figura 1.3b
Stallings
Figure
1 Ed.
.3a
Marzo 2014

FSI 2014 Criptografa Aplicada

Ms definiciones

Texto plano: informacin en su forma natural


Texto cifrado o encriptado: texto al cual se le aplic
algn mtodo de cifrado o encriptacin
Oponente o adversario: entidad maliciosa que ataca
la conexin entre Bob y Alicia

Marzo 2014

FSI 2014 Criptografa Aplicada

Criptosistema

Se llama criptosistema al conjunto de:

Un conjunto finito de posibles textos planos

Un conjunto finito de posibles textos cifrados

Un conjunto finito de posibles claves

Un conjunto de reglas de cifrado y otro de reglas de


descifrado, que cumplen que:
dk(ek(x)) = x para todos los posibles textos planos x

Marzo 2014

FSI 2014 Criptografa Aplicada

Criptoanlisis

Es el estudio de mtodos para obtener el significado de la


informacin que est encriptada
Es la ciencia de descifrar cdigos, decodificar secretos,
violar esquemas de autenticacin y romper protocolos
criptogrficos
El ideal del criptoanlisis es descubrir la clave secreta y no
solo decodificar algunos mensajes
Dos tipos de ataques:

Ataques criptoanalticos

Ataques de fuerza bruta

Marzo 2014

FSI 2014 Criptografa Aplicada

Criptoanlisis: Clasificacin
de ataques

Texto cifrado solamente (Ciphertext only): El oponente


conoce solo una porcin del texto cifrado
Texto plano conocido (Known plaintext): El oponente
conoce una porcin del texto plano y su correspondiente
texto cifrado
Texto plano elegido (Chosen plaintext): El oponente tiene
acceso a la maquinaria de encriptacin. Elige texto y ve la
salida
Texto cifrado elegido (Chosen ciphertext): El oponente
tiene acceso a la maquinaria de desencriptado. Elige texto
cifrado y ve el texto plano

Marzo 2014

FSI 2014 Criptografa Aplicada

10

Criptoanlisis: Tipos de
ataque

Ataques por fuerza bruta: pruebo todas las claves, hasta


que encuentro la correcta
No

prcticos si el espacio de claves es muy grande

Ataques criptoanalticos: atacan la estructura del algoritmo


o de los protocolos que lo utilizan, buscando un atajo
para realizar menos trabajo que un ataque por fuerza
bruta

Marzo 2014

FSI 2014 Criptografa Aplicada

11

Seguridad incondicional y
computacional

Seguridad incondicional:
No importa que tiempo o poder computacional se
disponga, el cifrado no podr ser quebrado ya que no hay
suficiente informacin para determinar de forma nica el
correspondiente texto plano

Seguridad computacional:
Dado un poder de recursos computacionales, el tiempo
necesario de clculo esperado para quebrar un cdigo es
ms grande que el tiempo de vida del mensaje

Marzo 2014

FSI 2014 Criptografa Aplicada

12

Cifrados incondicionalmente
seguros

Existen cifrados incondicionalmente seguros


Ejemplo: One time pad:

Transmisor y receptor deben compartir una clave de


al menos el mismo largo del texto plano a encriptar
Los bits de la clave deben ser elegidos
aleatoriamente de forma independiente
Si p1,p2,p3... texto plano, c1,c2,c3... texto cifrado y
k1,k2,k3... la clave de cifrado
c i = p i ki

(cifrado de Vernam)

: operacin OR exclusivo
Marzo 2014

FSI 2014 Criptografa Aplicada

13

Mtodos de encripcin

La seguridad de algunos mtodos de encripcin se basa


en el secreto de su algoritmo
En el mundo actual, estos mtodos usualmente no son
tiles debido al costo de desarrollar nuevos sistemas si los
viejos son comprometidos
Todos los mtodos (o algoritmos) actuales basan su
seguridad en el uso de claves
Existen dos clases de mtodos de encripcin basados en
claves:

Mtodos simtricos

Mtodos asimtricos

Marzo 2014

FSI 2014 Criptografa Aplicada

14

Algoritmos simtricos

Es la forma tradicional de la criptografa

Los algoritmos simtricos utilizan la misma clave para


encriptar y desencriptar la informacin

Su origen conocido se remonta al menos a la poca de


los romanos

Dk(Ek(x)) = x

A la clave se le denomina clave secreta, Llave secreta,


secreto compartido (Secret-Key o shared key en ingls)

Marzo 2014

FSI 2014 Criptografa Aplicada

15

Algoritmos simtricos

Una primer clasificacin de los tipos de cifrado los divide


en:

Cifrados en bloque

Cifrados stream

El cifrado en bloque procesa el mensaje para encriptar o


desencriptar en bloques de tamao fijo (cantidad fija de
bits, p. ej. 64 o 128 bits por bloque)
El cifrado en stream lo procesa de a bit o byte

Marzo 2014

FSI 2014 Criptografa Aplicada

16

Cifrado en bloque

Dado un bloque de texto plano de tamao n bits, y una


clave de tamao L bits, la funcin E de cifrado genera un
texto cifrado de n bits
Tpicamente se utilizan bloques de 64 o 128 bits
Para cada clave k, EK es una permutacin sobre el
conjunto de los bloques de entrada

De las posibles, la clave k selecciona entre 2 L


permutaciones distintas (L largo de clave)

DK, la funcin de desencriptado, realiza la transformacin


inversa para obtener el texto plano

Marzo 2014

FSI 2014 Criptografa Aplicada

17

Ejemplos de algoritmos de
Cifrado en bloque

AES (Advanced Encryption Standard). 2001.


Bloque de 128 bits, clave de 128, 192 o 256 bits
DES (Data Encription Standard). Adoptado como
standard en 1977. Clave de 56 bits, bloque de 64
bits. Considerado dbil hoy en da
DES triple (aplicar DES 3 veces con al menos 2
claves distintas)
IDEA, Blowfish, Twofish, y muchos ms

Marzo 2014

FSI 2014 Criptografa Aplicada

18

Propiedades de los
algoritmos

Para AES bsicamente el nico ataque efectivo


conocido es por fuerza bruta

DES: Ataque lineal y diferencial

Y 2128 est fuera del alcance de la tecnologa


actual
Igualmente la forma ms eficiente de atacarlo en
la mayora de los casos es la fuerza bruta

DES triple

Marzo 2014

No se conocen ataques criptoanalticos.


Desventaja: ms lento que AES
FSI 2014 Criptografa Aplicada

19

Modos de operacin

En general querremos cifrar datos que no son del tamao


de un bloque. Esto nos lleva a definir los llamados modos
de operacin, que nos dicen cmo cifrar un conjunto de
bloques que forman un mensaje
Hay muchos modos de operacin propuestos. Algunos de
ellos:

ECB: Electronic Code Book

CBC: Cipher Block Chaining

CFB: Cipher FeedBack

OFB: Output FeedBack

Marzo 2014

FSI 2014 Criptografa Aplicada

20

ECB (Electronic Code Book)

Se completa el texto plano para llevarlo a un mltiplo del


tamao de bloque

El texto plano se divide en bloques de tamao idntico

Cada bloque es cifrado independientemente de los dems

Los bloques cifrados son del mismo tamao y generados


con la misma clave
Es como si tuviramos una tabla o libro donde para cada
texto plano se da su correspondiente texto cifrado

Marzo 2014

FSI 2014 Criptografa Aplicada

21

ECB

Marzo 2014

FSI 2014 Criptografa Aplicada

22

Problemas de ECB

Al mismo texto plano le corresponde siempre el


mismo bloque cifrado

Podemos obtener informacin acerca del


mensaje original sin conocer la clave

Ejemplo:

Marzo 2014

Se que hay 2 mensajes posibles: disparar misil


y no disparar misil

Veo pasar el primer mensaje, y el enemigo no


dispara el misil: para futuros mensajes, ya sabr
lo que el mensaje quiere decir
FSI 2014 Criptografa Aplicada

23

CBC (Cipher Block Chaining)

El texto plano se divide en bloques de tamao idntico (n


bits)
Se utiliza un vector de inicializacin de n bits (IV:
initialization vector)
Cada texto cifrado se hace depender de los anteriores
Se diferencia del ECB en que el mismo bloque de texto
plano genera distinto texto cifrado de acuerdo a los bloques
previos y al vector de inicializacin
Cualquier cambio en un bloque afecta a los siguientes

Ci = EK(Pi XOR (Ci-1))

Marzo 2014

C-1 = IV

FSI 2014 Criptografa Aplicada

24

CBC

Marzo 2014

FSI 2014 Criptografa Aplicada

25

OFB (Output Feedback)

El mensaje es tratado como un flujo de bits

La salida del cifrado es reutilizada para la siguiente etapa

La reutilizacin es independiente del mensaje

Oi = EK(Oi-1)

O-1 = IV

Ci = Pi XOR Oi

Los bits de error no son propagados (si tengo un error de


un bit en la transmisin, a la salida solo ese bit ser
erroneo)

Marzo 2014

FSI 2014 Criptografa Aplicada

26

OFB

Marzo 2014

FSI 2014 Criptografa Aplicada

27

Cifrado por flujo (stream)

Intentan aproximar un cifrado incondicionalmente seguro


El problema del cifrado incondicionalmente seguro es que
la clave debe ser tan grande como el texto plano
Esto motiva el diseo de cifrados por flujo en donde la
clave es generada de forma pseudoaleatoria a partir de
una clave ms chica
El cifrado de un texto plano se hace usualmente de a
caracter (byte) por vez

Marzo 2014

FSI 2014 Criptografa Aplicada

28

Cifrado por stream

Los generadores de nmeros pseudoaleatorios usan una


funcin que produce un stream de bits determinista y que, en
algn momento, se repetirn
Cuanto ms grande sea el perodo de repeticin, ms difcil
ser realizar un criptoanlisis
Se busca que, estadsticamente, sean indistinguibles de una
secuencia de nmeros aleatorios
Se suelen usar en aplicaciones de telecomunicaciones, o en
aplicaciones con muy bajos recursos
Tiene poco o ningn error de propagacin
Marzo 2014

FSI 2014 Criptografa Aplicada

29

Cifrado por stream

Estos tipos de cifrados no son incondicionalmente


seguros, tratan de ser computacionalmente seguros

Marzo 2014

FSI 2014 Criptografa Aplicada

30

Ejemplo: RC4

RC4 (Rivest Cipher 4) es un cifrado por stream diseado


por RSA security (1987)
Est basado en el uso de permutaciones aleatorias
Es usado en los estndares SSL/TLS (Secure Sockets
Layer/Transport Layer Security) definidos para la
comunicacin entre clientes web y servidores
Tambin es utilizado en protocolos WEP (Wired
Equivalent Privacy) y WPA (WiFi Protected Access) que
son parte del estndar IEEE 802.11 de redes inalmbricas

Marzo 2014

FSI 2014 Criptografa Aplicada

31

Algoritmos asimtricos

Los algoritmos simtricos, conocidos como de clave


secreta, requieren una comunicacin previa de la clave
entre las entidades participantes de forma segura
(secreta)
Los mtodos asimtricos, conocidos como de clave
pblica, se basan en encontrar un criptosistema donde se
tienen dos claves distintas para encriptar y desencriptar, y
es computacionalmente imposible obtener la clave de
descifrado (dk) a partir de la clave de cifrado(ek) (o
viceversa)
De esa forma, una de las claves puede ser hecha pblica

Marzo 2014

FSI 2014 Criptografa Aplicada

32

Algoritmos asimtricos

La idea del sistema de clave pblica (public-key) fue


propuesta por Diffie y Hellman en 1976
La primer realizacin de un sistema criptogrfico de clave
pblica fue realizada por Rivest, Shamir y Adleman (1978)
Los criptosistemas de clave pblica nunca pueden brindar
seguridad incondicional
El

adversario puede encriptar cualquier texto plano


(ya que dispone de la clave de cifrado) y verificar si
alguno coincide con el texto encriptado

Marzo 2014

FSI 2014 Criptografa Aplicada

33

Algoritmos asimtricos

La seguridad de los criptosistemas asimtricos se basa en


que la clave privada solo puede ser computada a partir de
la pblica resolviendo un problema difcil

Mientras que generarlas juntas es fcil

Se utilizan problemas matemticos para los cuales no se


conocen soluciones eficientes
Estudio

de estos
computacional

Marzo 2014

problemas:

FSI 2014 Criptografa Aplicada

Ver

complejidad

34

Algoritmos asimtricos

Algunos problemas
asimtricos son:

utilizados

en

criptosistemas

Factorizacin

Logaritmos discretos

Logaritmos discretos sobre curvas elpticas

Marzo 2014

FSI 2014 Criptografa Aplicada

35

Factorizacin

Todo nmero entero puede ser representado de forma


nica como el producto de nmeros primos (ej.: 2277
= 32 * 11 * 23)
Un posible algoritmo de factorizacin es ir dividiendo
el nmero (con nmeros primos) hasta que el resto
sea un nmero primo
En los algoritmos asimtricos basados en
factorizacin se buscan nmeros del orden de 10 300, lo
que requiere tratar con todos los primos hasta 10 150
(unos 10147 primos)

Marzo 2014

FSI 2014 Criptografa Aplicada

36

Factorizacin

Existen otros mtodos para factorizar nmeros:

Algoritmo de Pollard

Curvas elpticas

NFS (Number Field Sieve) (1990)

Es el mejor propuesto hasta el momento

Todos ellos son extremadamente lentos para nmeros


muy grandes

Marzo 2014

FSI 2014 Criptografa Aplicada

37

Logaritmos discretos

Sea p un nmero primo muy grande, y un generador


del grupo multiplicativo Zp*:

0, 1, ...,p-2 reducidas mdulo p, construyen todos


los enteros entre 1 y p-1

En el criptosistema, los parmetros p y son


conocidos
Dado Zp* , encontrar el nico exponente a (0 a
p 2) tal que a = (mod p)

Marzo 2014

FSI 2014 Criptografa Aplicada

38

Encripcin RSA

Se basa en la seguridad que brinda la factorizacin


Todo nmero entero puede ser expresado como
producto de factores primos
Utiliza la propiedad que la factorizacin de un nmero
es dificil de obtener (para nmeros grandes)
Si se encuentra un mtodo sencillo de factorizacin, el
criptosistema ser fcil de quebrar

Marzo 2014

FSI 2014 Criptografa Aplicada

39

RSA

Sea n = pq (p y q nmeros primos)

Sea (n) = (p 1) (q 1)

Sea e Z(n), primo con (n)

Sea d el inverso multiplicativo de e (d Z(n) tal que


ed = 1 (mod (n))

Cifrado:

c = xe mod n

Clave pblica (n,e)

Descifrado: x = cd mod n

Clave privada (n,d)

Se prueba que (xd)e mod n=(xe)d mod n = x si x<n

Marzo 2014

FSI 2014 Criptografa Aplicada

40

Utilizando RSA (generacin


de claves)

Para generar sus claves, Alice realiza:

Obtener p y q, primos, de largo en bits similar

Calcular n y (n)

Elegir e (es comn tomar e=65537 o e=17)

Calcular d (utilizando el algoritmo de euclides


extendido)
Distribuir n y e

Marzo 2014

FSI 2014 Criptografa Aplicada

41

Utilizando RSA (envo de


mensajes)

Bob obtiene la clave pblica de Alice

Representa el mensaje M como un entero


0<M<n
Usualmente

se le da un formato previamente
(padding scheme), agregndole bytes aleatorios
y otros (ver por ejemplo PKCS#1)
e

Realiza el clculo de C=M mod n

Enva C

Marzo 2014

FSI 2014 Criptografa Aplicada

42

Utilizando RSA (recepcin)

Calculamos M' = Cd mod n


Si el formato incluye redundancia, verificamos
que la misma sea correcta
La seguridad est dada porque sin conocer d
no podemos calcular M'

Marzo 2014

FSI 2014 Criptografa Aplicada

43

Utilizando RSA (firma digital)

Para realizar una firma digital, podemos


(simplificadamente) encriptar el mensaje con
nuestra clave privada
Dado M, Alice realiza C=Md mod n

Se envan M y C

Quien quiera verificar la firma, debe verificar que


e
M= C mod n

Solo quien tiene la clave privada puede generar C

Veremos ms sobre esto luego

Marzo 2014

FSI 2014 Criptografa Aplicada

44

Uso prctico de algoritmos


asimtricos

Los algoritmos de encripcin asimtricos son


mucho ms lentos que los algoritmos
simtricos
Usualmente se utilizan solamente para
autenticacin, para firmas, y para el
intercambio de claves de sesin para un
algoritmo simtrico

Marzo 2014

FSI 2014 Criptografa Aplicada

45

Secure Hashes y MACs

Secure Hash: un hash que cumple ciertas


propiedades bsicas de seguridad
MAC: Message Authentication Code (incluye
clave)
Ambos tipos de funciones comparten ciertas
caractersticas

A partir de un mensaje de largo arbitrario se genera un


valor de largo fijo, que de alguna manera representa al
mensaje original (Message Digest, resumen del
mensaje)

No debe poder derivarse un mensaje del resumen

Marzo 2014

FSI 2014 Criptografa Aplicada

46

Funciones de hash

Mapean un mensaje de largo arbitrario, en un


valor de largo fijo (relativamente pequeo)
(propiedad de Compresin)
Dado M, debe ser relativamente sencillo
calcular h(M)
Difusin: el resumen h(M) debe ser una funcin
compleja de todos los bits del mensaje M: si se
modifica un solo bit del mensaje M, se espera
que el hash h(M) cambie aproximadamente la
mitad de sus bits

Marzo 2014

FSI 2014 Criptografa Aplicada

47

Propiedades de los hashes


para seguridad

Unidireccionalidad: conocido un resumen R,


debe ser computacionalmente imposible
encontrar un mensaje M tal que R=h(M)
Resistencia dbil a las colisiones: Conocido M,
es computacionalmente imposible encontrar M'
tal que h(M) = h(M')
Resistencia fuerte a las colisiones: Es
computacionalmente imposible encontrar X e Y
tales que h(X) = h(Y)

Marzo 2014

FSI 2014 Criptografa Aplicada

48

Paradoja del cumpleaos

Dado un grupo de X personas, qu tan grande


tiene que ser X para que con probabilidad >0,5
2 de ellos cumplan el mismo da?
Respuesta: 23
A cada edad de cada persona la comparo con la
de todas las dems
En criptografa, nos dice que si tengo un hash
de x bits, puedo encontrar (con p~50%) una
x/2
colisin con un esfuerzo del orden de 2

Entonces la longitud del hash no puede ser chica

Marzo 2014

FSI 2014 Criptografa Aplicada

49

Operacin tpica de un
algoritmo de hash

Se completa el mensaje para que sea mltiplo


de un determinado tamao de bloque

Se procesa el mensaje por bloques

Se toma un valor inicial conocido para el hash

Para cada bloque, se realizan diversas


operaciones incluyendo el valor del hash en el
paso anterior
El hash del mensaje es el valor al finalizar el
procesamiento del ltimo bloque

Marzo 2014

FSI 2014 Criptografa Aplicada

50

Estructura general de muchos


algoritmos de hash

Stallings. Figura 11.9

Marzo 2014

FSI 2014 Criptografa Aplicada

51

Uso tpico de un algoritmo de


hash

El principal uso es para verificacin de


integridad
Se calcula el resumen de un mensaje M
Se protege la integridad del valor del resumen,
no as del mensaje
Al requerir verificar la integridad del mensaje,
se calcula nuevamente el resumen y se
compara con el que tenamos protegido

Marzo 2014

FSI 2014 Criptografa Aplicada

52

Algoritmos populares de
hash

MD5: (refinamiento de MD2, MD4), Ron Rivest 1992.


Hash de 128 bits.

SHA-1: NIST 1994. 160 bits

SHA-2: Algoritmos similares a SHA-1 pero con


versiones de 224, 256, 384 y 512 bits de hash

SHA-3: reciente (Octubre 2012)

Otros

Marzo 2014

RIPEMD, Whirlpool, SHA-0, N-Hash, Snefru, Tiger,


Panama, Haval, otros
FSI 2014 Criptografa Aplicada

53

Seguridad actual de MD5

Wang et al, 2004, y mltiples trabajos


posteriores: Se puede encontrar fcilmente
colisiones en MD5 (X e Y tales que
MD(X)=MD(Y))
Especialmente importante para quienes firman
mensajes generados por otros

Ataque demo al proceso de una autoridad


certificadora en 2008

Los ataques siempre mejoran, nunca


empeoran

Marzo 2014

FSI 2014 Criptografa Aplicada

54

SHA-1

Febrero 2005.Broken. El esfuerzo (terico)


para encontrar una colisin baj de 2 80 a 269
63

Agosto 2005 -> 2

Son ataques no implementados (por ahora...)

Las buenas noticias: no todos los usos de


SHA-1 (y MD5) se ven afectados
El sustituto propuesto es SHA-3
Por ahora se recomienda utilizar SHA-256 o
SHA-512, a mediano plazo SHA-3

Marzo 2014

FSI 2014 Criptografa Aplicada

55

MAC (Message
Authentication Code)

Un algoritmo que, dado un mensaje (de largo


arbitrario) y una clave (de largo fijo), produce
un bloque de bits de largo fijo

Se comparten requerimientos de seguridad

Parecido a hashes, salvo por la clave


Resistencia a colisiones, unidireccionalidad

No debe poderse recuperar la clave, ni generar


MAC sin conocer la clave

Marzo 2014

FSI 2014 Criptografa Aplicada

56

Propiedades necesarias de
MAC

Conociendo un mensaje y su MAC, es


computacionalmente imposible encontrar otro
mensaje con el mismo MAC
Conociendo un mensaje y su MAC, es
computacionalmente imposible encontrar la
clave

Marzo 2014

FSI 2014 Criptografa Aplicada

57

Uso de MAC para


autenticacin de mensaje

El documento M se transmite sin encriptar (por


ejemplo, puede ser pblico)
B puede verificar su integridad

Marzo 2014

FSI 2014 Criptografa Aplicada

58

Funciones de MAC
utilizando hashes

Comparten propiedades
Las funciones de hash son normalmente
rpidas
Propuesta original:

MAC(mensaje)=hash (key|mensaje)

Se encontraron debilidades

Actualmente, HMAC y otros

HMACK = Hash[(K+ XOR opad) || Hash[(K+ XOR ipad) || M)]]

Por ejemplo, IPSec utiliza HMAC

Marzo 2014

FSI 2014 Criptografa Aplicada

59

HMAC. RFC 2104

Marzo 2014

FSI 2014 Criptografa Aplicada

60

Seguridad de HMAC

Se prob relacin entre seguridad de HMAC y del


hash utilizado
Ataques requieren:

Fuerza bruta en la clave

Ataque del cumpleaos sobre el algoritmo de hash


(pero se requiere ver un nmero muy grande de
mensajes con la misma clave)

Se suele utilizar MD5 o SHA-1 como algoritmo de


hash

Marzo 2014

FSI 2014 Criptografa Aplicada

61

Funciones de MAC usando


algoritmos simtricos

Originalmente FIPS PUB 113


Restriccin en el largo del mensaje a
procesar
CMAC: Cypher based message authentication
code

NIST Special Publication 800-38B (para usarse


con 3DES y AES)

Marzo 2014

FSI 2014 Criptografa Aplicada

62

Aplicaciones de Hashes

En firmas digitales

Verificacin de integridad

Identificadores nicos para archivos

Redes p2p

Comparacin con un archivo que no puedo ver

Sistemas de password

MACs

Marzo 2014

FSI 2014 Criptografa Aplicada

63

Aplicaciones de MAC

Integridad del mensaje


Origen del mensaje (quien lo gener conoce la
clave compartida)

Marzo 2014

NO es una firma digital

FSI 2014 Criptografa Aplicada

64

Firmas digitales

Marzo 2014

FSI 2014 Criptografa Aplicada

65

Motivacin

Se pretende tener un equivalente a la firma


manual de un documento
Debe verificar el autor y usualmente la fecha y
hora de la firma
Debe autenticar el contenido cuando fue
firmado

Debe ser verificable por terceros

Incluye la funcin de autenticacin

Marzo 2014

FSI 2014 Criptografa Aplicada

66

Diferencias con la firma


manuscrita

Se piden ms cosas (timestamp, etc)

Pero las copias de un documento digital no son


distinguibles del original

Recordemos, que en la firma digital, entre el


individuo que firma y la firma, hay un hardware,
un sistema operativo, uno o varios programas...
Una firma digital nos dice que un programa,
que tuvo acceso a la informacin privada del
individuo que firma, realiz esas operaciones

Marzo 2014

FSI 2014 Criptografa Aplicada

67

Problemas a resolver

Autenticidad del emisor

Integridad del mensaje

Actualidad (no replay)

No repudio (del emisor y receptor)

Deteccin de usurpacin de identidad

Deben ser verificables por terceros

Marzo 2014

FSI 2014 Criptografa Aplicada

68

Firma digital

En muchos sistemas prcticos, se utiliza


criptografa asimtrica
Si encriptamos mensaje con la clave privada,
alcanza con verificar que es desencriptado
correctamente con la clave pblica
Los algoritmos asimtricos son lentos->

Se encripta un hash del mensaje con la clave


privada

Marzo 2014

FSI 2014 Criptografa Aplicada

69

Ejemplo de Procedimiento
Usando RSA

Sea da y ea las claves pblica y privada de A


A enva a B el mensaje M (encriptado o no), y
Eea(H(M))
El receptor calcula H'= Dda(Eea(H(M))), calcula H(M'),
y los compara
Si coinciden, tiene la seguridad de que solo A pudo
generar el mensaje

No se puede generar otro mensaje con el mismo hash

Solo quien conoce ea pudo generar Eea(H(M))

Marzo 2014

FSI 2014 Criptografa Aplicada

70

DSA

Digital Signature Algorithm


Seguridad: dificultad de calcular logaritmos
discretos
Definido en Digital Signature Standard (DSS).
Standard del NIST (FIPS 186, ltima revisin
FIPS 186-3)
La ltima revisin incluye firmas con DSA, RSA
y con curvas elpticas (ECDSA)

Marzo 2014

FSI 2014 Criptografa Aplicada

71

DSA y RSA

(Stallings. Cryptography and network Security. Fig. 13.1)

Marzo 2014

FSI 2014 Criptografa Aplicada

72

Problemas

Cmo distribuir la clave pblica?


Cmo estoy seguro que la clave pblica que
tengo es realmente la de A, y que es actual?
Repudio....Qu pasa si A alega que el no
firm? y si alega que le robaron la clave?

Marzo 2014

FSI 2014 Criptografa Aplicada

73

Contra el repudio y el robo


de claves

Exigir que cada mensaje lleve un timestamp, y


exigir reporte inmediato de claves
comprometidas a una autoridad central

Utilizar un rbitro, una entidad confiable que


certifique el origen y contenido del mensaje

Se puede hacer con algoritmos simtricos o


asimtricos

Dependen de encontrar la entidad confiable

Marzo 2014

FSI 2014 Criptografa Aplicada

74

PKI (Public Key Infrastructure)


Infraestructura de clave pblica
Certificados digitales:
distribucin escalable de claves
pblicas
Marzo 2014

FSI 2014 Criptografa Aplicada

75

Definicin de PKI
(RFC 2828)

Un sistema de CAs (certification authorities),


opcionalmente RAs y otros servidores y agentes,
que realizan algn subconjunto de las funciones de:
administracin (management) de certificados,
archivo de certificados expirados, administracin de
claves, administracin de tokens, para una
comunidad de usuarios, en una aplicacin de
criptografa asimtrica
(O) PKIX usage: The set of hardware, software, people,
policies, and procedures needed to create, manage, store,
distribute, and revoke digital certificates based on asymmetric
cryptography

Marzo 2014

FSI 2014 Criptografa Aplicada

76

Funciones de una PKI

Las funciones principales son:

Registrar entidades (usuarios) y emitir sus


certificados digitales

Revocar certificados cuando se requiera

Archivar los datos necesarios para validar los


certificados en el futuro

Puede adems, por ejemplo, generar pares de


claves pblica/privada (se recomienda que lo
haga el cliente), establecer CPSs (polticas), etc.

Marzo 2014

FSI 2014 Criptografa Aplicada

77

Qu es un certificado
digital?

Documento firmado por una CA (autoridad de


certificacin) que contiene diversos datos, al
menos:

Identificacin de una entidad (usuario)

su clave pblica

Emisor y receptor deben confiar en esa CA

Solo podr validar certificados emitidos por CAs en


las cuales confe

Estandar ms usado: X.509 (ITU-T)

Marzo 2014

FSI 2014 Criptografa Aplicada

78

Utilidad del certificado

Me permite asociar la clave pblica con la


identidad presente en el certificado

Si puedo verificar la firma y confo en la CA,


me dice que la CA atesta que esa clave
pblica pertenece al dueo del certificado

O sea, permite la distribucin de claves


pblicas de forma confiable

Marzo 2014

FSI 2014 Criptografa Aplicada

79

Validacin del certificado

Si tengo la clave pblica de la CA: puedo


verificar la firma de la CA

Marzo 2014

Me asegura que la informacin en el


certificado es la misma que la CA firm

Si confo en la CA, puedo asumir que la CA


verific la informacin contenida en el
certificado

FSI 2014 Criptografa Aplicada

80

X.509

Framework para brindar servicios de


autenticacin a los usuarios del directorio
X.500
Actualmente, X.509v3
RFCs que instancian el framework para
Internet

Marzo 2014

FSI 2014 Criptografa Aplicada

81

Esquema (simplificado) de
un certificado x.509
Versin
Identificador del algoritmo
N de serie
Algoritmo
Perodo de validez
Parmetros
Autoridad de Certificacin
Inicio de la validez
Caducidad de la validez
Clave pblica que se firma
Nombre y datos del usuario
Algoritmo
Funcin hash que se cifra con
Parmetros
la clave privada de la AC
Clave pblica del usuario
Marzo 2014 Firma de la AC FSI 2014 Criptografa Aplicada
82

Estructura de una PKI


(Stallings Figura 14.7)

Marzo 2014

FSI 2014 Criptografa Aplicada

83

Entidades

CA: Autoridad de Certificacin. Es quien firma


los certificados
RA: Autoridad de Registro. Es quien debera
verificar la identidad del solicitante. Es la
interfaz con la CA
CRL: Certificate Revocation List. Lista de
certificados revocados

Hay formatos para la informacin, y protocolos para


acceder a ese repositorio

Marzo 2014

FSI 2014 Criptografa Aplicada

84

Algunas caractersticas

El sistema de autenticacin debe tener:

Una poltica de certificacin


Un certificado de la CA
Los certificados de los usuarios (X.509)
Los protocolos de autenticacin, gestin y
obtencin de certificados:
Se obtienen de bases de datos (directorio X.500)
O bien directamente del usuario en tiempo de
conexin (Ej. WWW con SSL)

Marzo 2014

FSI 2014 Criptografa Aplicada

85

Obteniendo un certificado

Cualquier usuario de la CA puede leer


cualquier certificado
Solo la CA (o quien conozca su clave privada)
puede modificar un certificado

Los certificados pueden ponerse en un directorio


pblico

Puedo aceptarlo de la propia entidad que quiere


autenticarse!

Marzo 2014

FSI 2014 Criptografa Aplicada

86

Jerarqua de CAs

Si los participantes comparten una CA:

Se asume que conocen su clave pblica

De lo contrario:

CAs deben formar una jerarqua

Se usan certificados para validar a otras CA

Cada CA tiene certificados de sus clientes, y de sus


superiores

Permite a un usuario de un CA verificar los


certificados de otras CAs en la jerarqua

Marzo 2014

FSI 2014 Criptografa Aplicada

87

Revocacin de certificados

Certificados tienen un perodo de validez

Puede ser necesario expirarlos antes

Compromiso de la clave privada

Compromiso de la clave de la CA

La CA no certifica ms a ese usuario

La CA mantiene una lista de certificados revocados

CRL (Certificate Revocation List)

Usuarios deberan chequear las CRL ante cada


certificado
Marzo 2014

FSI 2014 Criptografa Aplicada

88

Quin decide en quin


confiamos

Queda claro en una CA interna


En el caso de los navegadores, otro decidi por
nosotros...

Marzo 2014

FSI 2014 Criptografa Aplicada

89

Problemas de la vida real

2001. Verisign emite 2 certificados a nombre de


Microsoft a desconocidos

Los certificados de Verisign no incluan link a una


CRL

Internet Explorer no chequeaba CRLs

2006. Phishing contra Mountain America


Credit Union

Sitio y certificado de www.mountain-america.net

Quin puede registrar un determinado nombre?

Marzo 2014

FSI 2014 Criptografa Aplicada

90

Problemas de la vida real (2)

Marzo? 2011: Atacantes hackean una cuenta


de un partner de una autoridad de certificacin,
Comodo, y generan 8 certificados
(mail.google.com, www.google.com, etc.)
Julio/Agosto 2011: Hackers logran penetrar la
red de DigiNotar (una CA) y generar ms de
200 certificados para distintos sitios

Marzo 2014

FSI 2014 Criptografa Aplicada

91

Autenticacin mediante
claves compartidas

Marzo 2014

FSI 2014 Criptografa Aplicada

92

Autenticacin mediante claves


compartidas

Clase particular de protocolos de autenticacin

Uso como soporte de otras operaciones

Comunicacin entre bancos y cajeros automticos

Pay-TV

Tarjetas Inteligentes: Global Platform

Red celular

Ejemplo de gestin general de claves simtricas en


sistemas distribudos: Kerberos

Marzo 2014

FSI 2014 Criptografa Aplicada

93

Posibilidades para distribuir


claves simtricas

A genera la clave y se la entrega fsicamente a B

C selecciona la clave y la entrega a A y B

A y B usaron recientemente una clave, y envan


la nueva clave encriptada con la vieja
A y B tienen una conexin encriptada con C -> C
puede entregar una clave a A y B por los enlaces
encriptados.

Key Distribution Center

Marzo 2014

FSI 2014 Criptografa Aplicada

94

Esquema Bsico

Principio: Dos entidades(principales) que


quieren comunicarse utilizan un tercero
confiable

Alice y Bob (communicating principals)

Sam (trusted third-party)

Cada entidad precisa una clave compartida con


Sam
A -> S : A, B
S -> A : {A,B,KAB,T}KAS, {A,B,KAB,T}KBS
A -> B : {A,B,KAB,T}KBS, {M}KAB

Marzo 2014

FSI 2014 Criptografa Aplicada

95

Protocolo de
Needham-Schroeder

La mayora de los protocolos de distribucin de


claves han sido derivados a partir de este
protocolo inventado en 1978
Sigue el esquema bsico discutido en la slide
anterior pero usa nonces en lugar de
timestamps

Nonce: nmero use once

En su forma original tiene vulnerabilidades

Marzo 2014

FSI 2014 Criptografa Aplicada

96

Needham-Schroeder
(NS1)
(NS2)
(NS3)
(NS4)
(NS5)

A
S
A
B
A

->
->
->
->
->

S
A
B
A
B

:
:
:
:
:

A, B, NA
{NA,B,KAB,{KAB, A}KBS}KAS
{KAB, A}KBS
{NB}KAB
{NB - 1}KAB

Problema: Bob tiene que asumir que la clave


KAB que le enva Sam (va Alice) es fresca

Marzo 2014

FSI 2014 Criptografa Aplicada

97

Kerberos (Generalidades)

Importante derivado prctico de NeedhamSchroeder


Sistema de control de acceso distribudo
originario del MIT y opcin por defecto de
autenticacin en Windows 2000 y sucesores
En lugar de una nica trusted third-party:

Servidor de autenticacin en el que los usuarios se


autentican

Servidor dispensador de tickets que permiten


acceder a recursos como archivos

Marzo 2014

FSI 2014 Criptografa Aplicada

98

Kerberos (Procedimiento)

Alice obtiene del servidor de autenticacin una


clave de sesin KAS (encriptada con su
password), con un esquema similar al anterior
Luego, para poder acceder a un recurso B, se
aplica el siguiente protocolo (con el servidor de
tickets S):
(K1)
(K2)
(K3)
(K4)

Marzo 2014

A
S
A
B

->
->
->
->

S
A
B
A

:
:
:
:

A, B
{TS,L,KAB,B,{TS, L, KAB, A}KBS}KAS
{TS, L, KAB, A}KBS, {A,TA}KAB
{TA + 1}KAB
FSI 2014 Criptografa Aplicada

99

SSL y TLS

Marzo 2014

FSI 2014 Criptografa Aplicada

100

SSL (secure sockets layer)

Desarrollado originalmente por Netscape


Communications Corporation
Es independiente de la aplicacin
ltima versin SSL v3
Sucesor: TLS (Transport Layer Security)

Muy similar a SSL v3

Provee autenticacin, integridad y privacidad


Actualmente TLS 1.1 (RFC 4346, Abril 2006)

Marzo 2014

FSI 2014 Criptografa Aplicada

101

SSL/TLS

Dividido en 2 capas, sobre una conexin


stream confiable (TCP)

Funciona entre TCP y la aplicacin

SSL Record layer

Confidencialidad, autenticacin, y proteccin contra


replay

Define el formato para intercambiar los datos

SSL Handshake Protocol

Intercambio de claves

Marzo 2014

FSI 2014 Criptografa Aplicada

102

Visin desde 1 km. de altura

Cliente enva versin, protocolos soportados (key


exchange, mtodos de encriptado y algoritmos de
Hash), y un nmero aleatorio
Servidor enva su certificado, algoritmos elegidos y
un nmero aleatorio
Cliente chequea certificado
Cliente genera clave secreta (premaster key), la
encripta con clave pblica del servidor y la enva
Servidor la desencripta, y ambos generan una clave
de sesin, que ser usada a partir de ah
Marzo 2014

FSI 2014 Criptografa Aplicada

103

Arquitectura SSL

Stallings Figura 17.2


Marzo 2014

FSI 2014 Criptografa Aplicada

104

Conexin y Sesin

Conexin SSL

Flujo transitorio entre equipos

Asociado con una sesin SSL

Sesin SSL

Asociacin entre cliente y servidor

Creada por el protocolo de Handshake

Define un conjunto de parmetros criptogrficos

Puede ser compartida por mltiples conexiones

Marzo 2014

Evita negociar parmetros y verificar claves en cada


conexin
FSI 2014 Criptografa Aplicada

105

Servicios del
Record Protocol

Integridad de mensajes

Usando una MAC con clave secreta compartida


TLS usa HMAC (SSL utilizaba un algoritmo
parecido)

Confidencialidad

Usando encriptado simtrico con una clave secreta


definida por el protocolo de handshake

AES, IDEA, RC2-40, DES-40, DES, 3DES,


Fortezza, RC4-40, RC4-128

Mensaje se comprime antes de encriptar (opcional)

Marzo 2014

FSI 2014 Criptografa Aplicada

106

Operacin
(Stallings Figura 17.3)

Marzo 2014

FSI 2014 Criptografa Aplicada

107

Protocolo de Handshake

Permite a cliente y servidor:

Autenticarse mutuamente

Negociar algoritmos de encriptado y MAC

Negociar claves criptogrficas

Varios mensajes en 4 fases

Marzo 2014

FSI 2014 Criptografa Aplicada

108

Handshake
1. Establecimiento de capabilities

Envo de versin, algoritmos soportados, etc.

Iniciada por el cliente

2. Autenticacin del servidor e intercambio de


clave

Servidor enva certificado

Servidor inicia intercambio de claves

Puede pedir certificado al cliente

Marzo 2014

FSI 2014 Criptografa Aplicada

109

Handshake
3.Autenticacin del cliente e intercambio de
clave

Verificar certificado del servidor

Enviar certificado si es requerido por el servidor

4. Fin. Se enva un change cypher spec y se


termina el intercambio, comenzando a utilizarse
los nuevos parmetros

Marzo 2014

FSI 2014 Criptografa Aplicada

110

Marzo 2014

FSI 2014 Criptografa Aplicada

111

Algoritmos y protocolos
criptogrficos - implementacin

La implementacin de los algorimtos y


protocolos criptogrficos requiere no solamente
la correctitud de la funcin a implementar, sino
tambin tomar en cuenta otras amenazas
En especial, todo lo que tiene que ver con
ataques Side channel
No los veremos aqu
Pero

tener mucho cuidado si alguna vez intentan


implementar algo

Vean
Marzo 2014

por ejemplo la historia de OpenSSL


FSI 2014 Criptografa Aplicada

112

Bibliografa y Referencias

W. Stallings, Cryptography and Network Security,


Prentice Hall, 2006.
R. Rivest, A. Shamir, L. Adleman, A method for
obtaining digital signatures and public key
criptosystems, Communications of the ACM, 1978.
C. Shannon, Communication Theory of Secrecy
Systems, Bell Systems Technical Journal, 1949.

Marzo 2014

FSI 2014 Criptografa Aplicada

113

Bibliografa y Referencias

A. Menezes, P. Oorschot, S. Vanstone,


Handbook of Applied Cryptography, CRC Press, 1996.
D. Stinson, Cryptography Theory and Practice,
CRC Press, 1995.
G. Vernam, Cipher Printing Telegraph Systems for
Secret Wire and Radio Telegraphic Communications,
Journal IEEE Vol. 55, 1926.

Marzo 2014

FSI 2014 Criptografa Aplicada

114

Bibliografa y Referencias

Material online de apoyo a curso de Stallings

http://williamstallings.com/Crypto/Crypto4e-inst.html

Handbook of Applied Cryptography. A. Menezes,


P. van Oorschot, and S. Vanstone, CRC Press, 1996.

Online http://www.cacr.math.uwaterloo.ca/hac/

Cryptored. Material docente de libre distribucin en


Internet.
http://www.criptored.upm.es/guiateoria/gt_m001a.htm

Marzo 2014

FSI 2014 Criptografa Aplicada

115