Sei sulla pagina 1di 67

Campus TI 2004

23-25 de Junio

Introduccin: confidencialidad,
autenticacin, integridad y no
repudio. Claves de la seguridad
Santiago Felici Castell
Email: Santiago.Felici@uv.es

Disponibleenhttp://netacad.uv.es

El Reto en la Seguridad
Los sistemas de Tecnologas de la

Informacin
cambian rpidamente
son cada vez ms complejos

Y los ataques son ms sofisticados y


atacar cada vez es ms fcil

La seguridad
debe ocupar su lugar
2

Seguridad: definicin
ISO, en su norma 7498, define la seguridad
informtica como una serie de mecanismos
que minimizan la vulnerabilidad de bienes y
recursos, donde un bien se define como algo
de valor y la vulnerabilidad se define como la
debilidad que se puede explotar para violar
un sistema o la informacin que contiene.
Para ello, se han desarrollado protocolos y
mecanismos adecuados, para preservar la
seguridad.
3

Temas legales
En muchos gobiernos el uso de informacin cifrada
est prohibido.
Los temas de seguridad son muy peliagudos y los
Gobiernos tratan de implantar reglas (o estndares
de cifrado) que ellos mismos puedan descifrar
fcilmente.
La polmica est levantada, pero no es objeto de la
asignatura entrar en detalle en estos temas.
Por ejemplo en Francia y EEUU no estn permitidas
transacciones cifradas, que el gobierno no sea
capaz de descifrar, pues pueden utilizarse para
comercio de armas, delincuencia, ...
4

Marco legislativo espaol


Real decreto-Ley 14/1999 (17/Sept)
Orden ministerial 21/Feb/2000 aprueba el
Reglamento de acreditacin de prestadores de
servicios de certificacin y algunos productos de
firma.
Nuevo cdigo penal (ttulo 10: delitos relacionados
con las nuevas tecnologas), Reglamento de
Seguridad de la LORTAD (Ley Orgnica de
Regulacin del Tratamiento Automatizado de los
Datos de carcter personal), Ley Orgnica de
Proteccin de Datos (15/1999 13 Diciembre),...
Otras leyes sobre: DNI electrnico, Ley de Firma
electrnica, Ley de Facturas Telemticas, ...
5

Clasificacin de problemas de seguridad


Los problemas de seguridad de las redes pueden dividirse de forma
general en cuatro reas interrelacionadas:
1.-El secreto, encargado de mantener la informacin fuera de las manos
de usuarios no autorizados.
2.-La validacin de identificacin, encargada de determinar la identidad
de la persona/computadora con la que se esta hablando.
3.-El control de integridad, encargado de asegurar que el mensaje
recibido fue el enviado por la otra parte y no un mensaje manipulado
por un tercero.
4.-El no repudio, encargado de asegurar la firma de los mensajes, de
igual forma que se firma en papel una peticin de compra/venta entre
empresas.

Seguridad: Secretos
Criptografa

Criptografa y criptoanlisis
KRYPTOS= oculto

GRAPHE=escrito

El criptoanlisis se encarga de descifrar los

mensajes.
Los intrusos utilizan estas tcnicas.
La criptografa busca mtodos ms seguros de
cifrado.
Criptografa clsica: cifrados por sustitucin y
trasposicin
Criptografa moderna: cifrados en base a
claves
8

Cifrado: codificacin de los mensajes


El intruso pasivo
simplemente escucha.

Texto normal, P

Intruso

Mtodo de
cifrado.

Clave de cifrado, k

El intruso activo altera


los mensajes.

Mtodo de
descifrado.

Texto cifrado, C=Ek(P)

Texto normal, P

Clave de descifrado, k.

El texto normal (P) se transforma (cifra) mediante una


funcin parametrizada por una clave secreta k evitando el
criptoanlisis de intrusos

C=Ek(P) es el texto cifrado (C) obtenido a partir de P, usando la


clave K usando la funcin matemtica Ek para codificar
P=Dk(C) es el descifrado de C para obtener el texto normal P

Cifrado y descifrado
Dk(Ek(P))=P
E y D son slo funciones matemticas parametrizadas con la
clave k
Estas funciones E() y D() son conocidas por el
criptoanalista, pero no la clave.
1.-Esto es as, porque la cantidad de esfuerzo necesario para inventar,
probar e instalar un mtodo nuevo cada vez que el viejo es conocido
siempre hace impracticable mantenerlo en secreto.
2.-Este mtodo de cifrado con claves, permite cambiar fcilmente de
mtodo de cifrado simplemente con cambiar la clave

10

Cifrado de clave privada (simtrica) y pblica


(asimtrica): 1/2
El cifrado moderno se divide actualmente en cifrado de clave privada (o
simtrica)y cifrado de clave pblica (o asimtrica):
-en el cifrado de clave privada (simtrica) las claves de cifrado y
descifrado son la misma (o bien se deriva de forma directa una de la
otra), debiendo mantenerse en secreto dicha clave. Ejemplo: DES
(Data Encryption Standar), DES triple e IDEA (International Data
Encryption Algorithm).
-en el cifrado de clave pblica (asimtrica), las claves de cifrado y
descifrado son independientes, no derivndose una de la otra, por lo
cual puede hacerse pblica la clave de cifrado siempre que se
mantenga en secreto la clave de descifrado. Ejemplo: Cifrado RSA
(Rivest, Shamir, Adleman)

11

Cifrado de clave privada (simtrica) y pblica


(asimtrica): 2/2
El cifrado de clave privada, es ms rpido que el de
clave pblica (de 100 a 1000 veces), y por tanto se
utiliza generalmente en el intercambio de
informacin dentro de una sesin. Estas claves
tambin son conocidas como claves de sesin o de
cifrado simtricas, ya que en ambos extremos se
posee la misma clave.
El cifrado de clave pblica es ms lento y por tanto
se utiliza para intercambiar las claves de sesin.
Como este algoritmo utiliza dos claves diferentes,
una privada y otra pblica el cifrado se conoce
como cifrado asimtrico.
12

Notacin para cifrado y descifrado en clave


simtrica y asimtrica
NOTACION utilizada:
1.- Con claves simtricas, cuando cifra el usuario A y utiliza su
clave simtrica KA:

EKA(P) lo indicaremos por simplificacin por KA(P)

DKA(P) lo indicaremos tambin por KA-1(P)

2.- Con claves asimtricas, cuando cifra el usuario A y utiliza su


clave KA ,formada por parte privada y parte pblica:

13

Con parte pblica =EKA(P) lo indicaremos por EA(P)

Con parte privada=DKA(P) lo indicaremos por DA(P)

Cifrado DES (Data Encryption Standar)


Fue desarrollado por IBM a principios de los 70. Actualmente
estandar X.9.17 de ANSI
DES se dise de forma que, fuera resistente a criptoanlisis
y adems sencillo para poder ser implementado en un
circuito electrnico con la tecnologa de los 70.
Por tanto, DES puede ser descifrado probando todas las
claves posibles con el hardware adecuado, mtodo
conocido como ataque de fuerza bruta.
En DES el texto normal se cifra en bloques de 64 bits (8
bytes), produciendo 64 bits de texto cifrado. El algoritmo
tiene 19 etapas diferentes y se parametriza con una clave
de 56 bits.
El descifrado se realiza con la misma clave que el cifrado,
ejecutando los pasos en orden inverso.
14

Descifrado del DES y doble DES


Dado un trozo pequeo de texto normal y el texto cifrado
correspondiente, se puede encontrar en unas horas con el
hardware del DES, la clave mediante una bsqueda
exhaustiva del espacio de claves de 256.
DES no es seguro
Doble DES: Surge la idea de ejecutar el DES 2 veces, con 2
claves de 56 bits distintas. Esto proporciona un espacio de
claves de 2112. Sin embargo se ha desarrollado un mtodo
de ataque llamado encuentro a la mitad que lo hace
tambin vulnerable con 257 operaciones
Triple DES:...

15

Triple DES (ANSI X.9.52)

K1

K2

K1

K1

K2

K1

Se utilizan 2 claves (K1 y K2) y 3 etapas:


1.- el texto normal se cifra con K1
2.- DES se ejecuta en modo de descifrado, usando K2
3.- se hace otro cifrado usando K1
Cometarios:
En 3DES se usan slo 2 claves ya que 112 bits de clave son suficientes para
las aplicaciones comerciales.
El modo EDE (cifrado-descifrado-cifrado) y EEE (cifrado-cifrado-cifrado)
tienen prestaciones similares, sin embargo EDE tiene una ventaja, que
si K1 = K2, con el mismo hardware implementamos DES simple.
La solucin EEE es mucho ms segura con clave de 168 bits.

16

Cifrado IDEA (International Data Encryption Algorithm)


Despus de comprobar la debilidad del algoritmo DES en su
forma simple, diversos trabajos propusieron nuevos
mtodos, de los cuales el ms interesante e importante es el
algoritmo IDEA.
IDEA es un algoritmo de clave privada que usa una clave de
128 bits, lo que lo har inmune durante dcadas a los
ataques de la fuerza bruta.
No hay ninguna tcnica o mquina conocida actualmente que
se crea que puede descifrar el algoritmo IDEA.
La estructura bsica de IDEA se asemeja a DES en cuanto a
que se alteran bloques de entrada de texto normal de
64 bits en una secuencia de iteraciones parametrizadas.

17

Advanced Encryption Standard (AES) o Rijndael


Sucesor del DES y 3DES, adoptado por estandar en
el NIST (National Institute for Standars and
Technology) EEUU- en octubre del 2000.
Es un algoritmo resultado de una competicin
pblica, donde los vencedores fueron los belgas
Joan Daemen y Vincent Rijmen, de ah su nombre
de Rijndael
Consiste en cifrado por bloques de 128 bits y claves
variables, con longitudes entre 128 y 256 bits
18

Otros cifrados simtrico y comentarios:


bloque y flujo
Otros cifrados de bloque son RC5 (claves de hasta 2048 bits), Blowfish
(claves de hasta 448 bits), ... todos ellos con bloques de 64 bits.
En general, estos mtodos basados en bloques, tambin se llaman ECB
(Electronic Code Book) y son muy rpidos.
Otro inconveniente que aparece, es que DES procesa a bloques fijos de
64 bits (8 bytes), lo cual con un intruso avispado, podra hacer
movimiento de bloques dentro del mismo cifrado, sin levantar
alarma.
Este problema se puede resolver con diferentes mtodos:
basados en flujo, que operan por bloques, pero convolucionando
(por ejemplo con una XOR) la salida actual con salidas anteriores o
con la entrada. Ejemplos: RC2, RC4 y CAST. Estos mtodos tambin
se llaman CBC (Cipher Block Chain)
con rellenos variables por bloque, por ejemplo insertando 0s e
indicando la cantidad de rellenos

19

Mtodos simtricos basados en flujo

XOR

i(n)

Mtodo en bloques

o(n)

Los mtodos basados en flujo utilizan funciones


XOR con mtodos basados en bloques. Para
descifrar utilizamos un sistema simtrico.

20

Cifrados de clave pblica

Histricamente, el problema de distribucin de claves siempre ha sido la


parte dbil de la mayora de criptosistemas. Si un intruso puede robar
la clave, el sistema no vale nada.
En 1976, en la Universidad de Stanford (EEUU) se propuso un nuevo
criptosistema, en el que las claves de cifrado y descrifrado eran
diferentes y la clave de descifrado no poda derivarse de la clave de
cifrado.
En dicha propuesta, el algoritmo de cifrado E() (parametrizado con una
clave) y el algoritmo de descifrado D() (con otra clave), tienen que
cumplir las propiedades:
1. D(E(P))=P
2. Es excesivamente difcil deducir D() de E() o viceversa
3. E() no puede descifrarse

21

Algoritmo de cifrado de clave pblica


El algoritmo de cifrado E(), descifrado D() y la clave de cifrado, se hacen
pblicos (de ah el nombre de criptografa de clave pblica), pero se
mantiene secreta la clave de descifrado.
EA es clave pblica y DA es clave secreta.
secreta
Escenario de aplicacin entre persona A y B:
A y B nunca han tenido contacto previo. Se supone que tanto la clave de
cifrado de A, EA, como la clave de cifrado de B, EB, es informacin pblica.
Pasos a seguir:
1.- A toma su primer mensaje P, calcula E B(P) y lo enva a B
2.- B entonces lo descifra aplicando su clave secreta D B, es decir, calcula
DB(EB(P))=P
3.- Nadie ms que B, puede descifrar el mensaje E B(P), porque se supone que el
sistema de cifrado es robusto y porque es demasiado difcil derivar D B de la
EB pblicamente conocida
4.- B procede igual que A.
Ahora A y B pueden comunicarse con seguridad.

22

Escenario con clave pblica


Usuario A

Usuario B

P=soy A y quiero hablar con B, usando clave sesin K


B, cul es tu clave pblica?

E B()
E B(P)

DB(E B(P))=P
P=ok A! soy B, o con clave sesin K

A, cul es tu clave pblica?

E A()
DA(E A(P))=P
23

E A(P)

ESTABLECIDA LA SESION!!!
Clave simtrica de sesin k

Seguridad: Validacin
Autenticacin

Validacin de identificacin en redes


La validacin de identificacin, o tambin llamada
autenticacin (que no autentificacin, que es ver si algo
es autntico), es la tcnica mediante la cual un proceso
comprueba que su compaero de comunicacin es quien se
supone que es y no un impostor.
La verificacin de la identidad de un proceso remoto con un
intruso activo malicioso, es sorprendentemente difcil y
requiere protocolos de validacin complejos basados en
criptografa como vamos a ver.
La validacin es el paso previo al establecimiento de una
conexin entre dos entidades, para pactar una clave de
sesin.
25

Modelo general de validacin e intrusos


Un usuario A, quiere establecer una conexin segura con un
segundo usuario, B:
1.- Se validan. Comienza A por enviar un mensaje a B o a un centro de
distribucin de claves (KDC, Key Distribution Centre) fiable (honesto). Tras
ello siguen varios intercambios de mensajes en diferentes direcciones (o
protocolo).
PERO, a medida que se envan estos mensajes, un intruso malicioso, C, puede
interceptarlos, modificarlos o reproducirlos para engaar a A y a B, o
simplemente para estropear sus actividades.

C
A
B
2.- Un protocolo de autenticacin debe impedir que un intruso se meta. Terminado
el protocolo habrn negociado una clave de sesin.

26

Mtodos de autenticacin (identificacin)


Biomdicas, por huellas dactilares, retina del ojo, ...
Tarjetas inteligentes que guardan informacin de los

certificados de un usuario
Mtodos clsicos basados en contrasea, ms frgiles que los
anteriores y ms simples (baratos), basados en:
Comprobacin local o mtodo tradicional en la propia
mquina
Comprobacin en red o mtodo distribuido, ms
utilizado actualmente
Una vez completado el protocolo, ambos A y B estn
seguro que est hablando entre ellos.
Durante el protocolo podran haber intercambiado una
clave de sesin.
27

Modelos de validacin basados en


mtodos distribuidos
Estos modelos se clasifican en:

clave secreta (privada o simtrica) con mtodos


Basados en protocolos con clave simtrica compartida, Diffie
Hellman (no permite autenticacin), etc
Basado en servidores con registro de todos los usuarios.
Ejemplo TACACS+ y Radius
Basados en NIS, NIS+ (Network Information Service)
Basados en centros de distribucin de claves basados en
criptografa, Kerberos

clave pblica (asimtrica) con mtodos que


veremos ms en detalle en la siguiente parte
X.500, LDAP (Lighweight Directory Access Protocol)
Certificados

28

Validacin de identificacin de clave secreta


Los modelos anteriores hacen uso parcial o total de
los siguientes mtodos
Mtodos:
1. Validacin de identificacin basada en clave
secreta compartida.
2. Establecimiento de una clave compartida:
intercambio de claves Diffie-Hellman (no
permite autenticacin)
3. Validacin de identificacin usando un centro de
distribucin de claves (KDC).
4. Protocolo de autenticacin Kerberos.
29

Validacin de identificacin basada en clave


secreta compartida
Supondremos que A y B ya comparten una clave secreta KAB
(acordada o bien telefnicamente o en persona pero, en
cualquier caso, no a travs de la red)
Este protocolo se basa en reto-respuesta: una parte enva un
nmero aleatorio a la otra, que entonces lo transforma de
una manera especial y devuelve el resultado.
Notacin a utilizar:
Ri son los retos, donde el subndice identifica el retador: A o B
Ki son las claves, donde i indica el dueo; K s es la clave de la sesin.

30

Validacin de identificacin basada en clave


secreta compartida: protocolo
1

A
2

ERES A?

RB
3

KAB(RB)

ERES B?

RA
5

KAB(RA)

31

Ri son nmeros aleatorios grandes lanzados desde cada extremo como reto.
El paso 4 y 5 es para que A se asegure que le contesta B. Tras esta identificacin, A puede
indicar una Ks para la sesin.
Este protocolo funciona, pero se puede simplificar el nmero de mensajes.
DESTACAR, que con el mensaje 2 y 3 se podra tratar de explotar por fuerza bruta la
clave.

Establecimiento de una clave compartida:


intercambio de claves Diffie-Hellman (1976)
Hasta ahora hemos supuesto que A y B comparten una clave secreta. Pero puede no
ser as, sin embargo, y afortunadamente, existe una manera de que completos
desconocidos establezcan una clave secreta a plena luz del da, an con C
registrando cuidadosamente cada mensaje.
El protocolo que permite que dos extraos establezcan una clave secreta
compartida se llama intercambio de claves Diffie-Hellman, y funciona como
sigue:
A y B tiene que acordar dos nmeros primos grandes, n y g, que deben cumplir
ciertas condiciones [ver RFC 2631]. Esto nmeros pueden ser pblicos, por lo
que cualquiera de ellos puede escoger n y g y decrselo al otro abiertamente.
Ahora, A escoge un nmero grande x, y lo mantiene en secreto, de la misma
manera, B escoge un nmero secreto grande y.
Este algoritmo se puede considerar tambin como de clave pblica, pero no

permite autenticacin.
Nota:RSA se bas en este algoritmo

32

Establecimiento de una clave compartida: intercambio de


claves Diffie-Hellman: protocolo
A selecciona x

B selecciona y
1
x

n, g, g mod n
A

2
y

g mod n

A calcula
x
xy
(g mod n) = g mod n
y

B calcula
y
xy
(g mod n) = g mod n
x

1.-A inicia el protocolo enviando a B un mensaje que contiene (n, g, gx mod n)


2.-B responde con gy mod n.
Ahora A toma gy mod n y lo eleva a la potencia x para obtener (gy mod n)x que por las
leyes de la aritmtica modular es gxy mod n. B procede igual.

Ahora A y B comparten una clave secreta: gxy mod n.


Intrusos: C conoce n y g, pero le falta x e y.

Adems, de (gx mod n) no se conoce un algoritmo prctico para calcular


logaritmos discretos mdulo de un nmero primo muy grande.

33

Establecimiento de una clave compartida: intercambio de claves


Diffie-Hellman: ataque de brigada de cubetas o ataque de
alguien en medio
Ataque: Cuando B recibe la tripleta (n, g, gx mod n), no sabe si es A o C
quien se la ha enviado. No hay manera de saberlo.
A selecciona x

C selecciona z

B selecciona y

1
x

n, g, g mod n

n, g, g mod n
A

g mod n

4
y

g mod n

Ahora todos hacen la aritmtica modular: A calcula gxz mod n, B calcula gyz
mod n y C calcula las claves tanto para A como B
Cada mensaje que A y/o B enva durante la sesin cifrada es capturado por
C, almacenado, modificado y pasado (opcionalmente) a B y/o A.
C ve todo y puede modificar los mensajes, mientras A y B estn pensando
equivocadamente que tienen un canal seguro entre ambos.
MEJORA: utilizar un KDC, centro de distribucin de claves.

34

TACACS+ y RADIUS
TACACS+ (Terminal Access Controller Access Control SystemRFC1492) y RADIUS (Remote Authentication Dial In User ServiceRFC2138) son ejemplos de centros de distribucin de claves o
tambin conocidos como servidores de control de acceso.
TACACS+ y RADIUS son protocolos para descentralizar el control del
acceso, de forma que cualquier servicio en red que requiera validar,
autorizar o auditar a un usuario lo puede hacer como cliente de los
servidores TACACS+ y/o RADIUS.
Estos servidores se utilizan generalmente como apoyo a los routers de
servidor de acceso remoto, por ejemplo la gestin de usuarios que
conectan desde el exterior a la Universitat de Valencia.
Ejemplo. Ambos junto Kerberos, son servidores utilizados para dar
soporte a los servicios AAA de los routers de Cisco Systems:
Authetication (quin), Authorization (qu), Accounting (auditoria))

35

Protocolos para AAA


Access Control Server
(ACS): Tacacs+, Radius,
Kerberos V

36

Validacin de identificacin usando un centro


de distribucin de claves (KDC)
En Diffie-Hellman no hay garantas por el ataque de alguien
en medio, efectuado por un extrao o intruso.
Otro inconveniente, es que para hablarle a n personas de esta
manera se requeran n claves, una verdadera carga.
Un enfoque diferente es introducir un centro de distribucin
de claves fiables (KDC), donde cada usuario tiene una
sola clave compartida con el KDC, de forma que la
validacin de identificacin y la administracin de claves
de sesin ahora pasan a travs del KDC.

37

Validacin de identificacin usando un centro de


distribucin de claves (KDC)
1

A, KA(B,KS)
A

KDC

B
2

KB(A,KS)

1.- A escoge una clave de sesin, K S e indica al KDC que desea hablar con B
usando KS. Este mensaje se cifra con la clave secreta que comparte A slo
con el KDC, KA.
2.- KDC descifra este mensaje, extrayendo la identidad de B y la clave de
sesin. Construye un mensaje nuevo cifrado con K B (compartido entre
KDC y B) que contiene la identidad de A y la clave de sesin y se lo
enva a B.
Ahora, A y B pueden hablar y saben adems la clave a utilizar.
La validacin de identificacin aqu es gratuita, en el sentido que las claves
con el KDC son secretas y nadie ms habra sido capaz de cifrarlo con la
clave secreta de otro.
A diferencia de Diffie Hellman, aqu si existe autenticacin por ambas partes.

38

Autenticacin con Kerberos


Servicio de autenticacin
desarrollado en el Massachusetts
Institute of Technology (MIT)

Perro de tres cabezas y cola de serpiente segn

mitologa griega, guardin de la entrada del


Templo de Hades (Infierno).

39

Protocolo de autentificacin Kerberos


Kerberos es un KDC diseado por el MIT (Massachusetts Institute
of Technology) para autentificar la identidad de los usuarios
de una red digital insegura, as como para distribuir las claves
secretas de sesin transitorias que permitan a los usuarios de la
red establecer comunicaciones seguras. En ocasiones estas
claves de sesin transitorias pueden ser un solo uso (OTP, One
Time Password).
Kerberos acta como un rbitro en quien los usuarios confan,
utilizando con cada usuario una clave secreta diferente,
intercambiada con Kerberos a travs de un canal seguro. El
conocimiento de dicha clave se utiliza como prueba de
identidad del usuario.
La autentificacin se produce entre cliente-servidor y servidorcliente.
En estas condiciones como Kerberos conoce las claves secretas
de todos los usuarios, puede demostrar a cualquiera de ellos la
autenticidad de la identidad de otro.

40

Protocolo de autentificacin Kerberos: protocolo (1/2)


1

RA, A, B
Kerberos

Ka(K,L, RA,B)
Kb(K,L,A)

A
3

Kb(K,L,A)
K(A,Ta)

K(Ta+1)

A y B no comparten ninguna clave secreta, excepto con el servidor de claves


Kerberos Ka y Kb. [A y B pueden ser usuarios, usuario-servicio,...]
1.- A solicita a Kerberos una credencial para conectarse con B y una clave de
sesin, a travs de un mensaje con un valor aleatorio RA y los
identificadores en la red de comunicacin de A y B.
2.- Kerberos genera una clave de sesin aleatoria K y define el perodo de
validez L de la credencial, cifrando a continuacin los valores K, L, RA y B
con la clave secreta Ka, junto con la credencial para B, cifrando K, L y A
con la clave secreta Kb

41

Protocolo de autentificacin Kerberos: protocolo (2/2)


A recupera K, L, RA y B para el que fue emitida la credencial. A verifica
que el valor aleatorio RA corresponde con el que l previamente envi y
guarda L como referencia. A continuacin, A calcula el autentificador
para la credencial con B, cifrando su identidad A y su sello temporal Ta
para sincronizacin, con la clave de sesin K
3.- B descifra la credencial con su clave secreta Kb, recuperando de esta
forma K, L y la identidad A y con ello utiliza K para descifrar el
autentificador y recuperar los valores identidad de A y Ta,
comprobando que las identidades de la credencial y el autentificador
coinciden, y que el sello Ta es vlido y se encuentra en los lmites de L.
4- Si las comprobaciones son satisfactorias, B se convence de la
autenticidad de la identidad de A, y en tal caso, B enva a A la
conformidad con K(Ta+1)
Por su parte A descifra la conformidad con la clave de sesin K y verifica
que el valor recuperado es Ta+1, lo cual asegura a A que la clave de
sesin K ha sido correctamente recibida por el usuario B.

42

Validacin de identificacin de clave pblica


Supongamos que A y B ya conocen las claves pblicas del otro E B() y EA()
respectivamente y quieren establecer una sesin utilizando criptografa
de clave secreta, ya que tpicamente es de 100 a 1000 veces ms rpida
que la criptografa de clave pblica. El propsito de este intercambio
inicial entonces es validar la identificacin de ambos utilizando sus
claves pblicas recprocamente para comunicarse y utilizando las claves
privadas para descifrar y tras ello acordar una clave de sesin secreta
compartida con el siguiente protocolo:
1

EB(A,RA)
2

EA(RA,RB,KS)

KS(RB)

43

Vemos que el intruso C no tiene manera de conocer RA para replicar,


pero dependiendo de cmo se intercambien las claves pblicas, podra
haber problemas...

Validacin de identificacin de clave pblica


(debilidades): ataque de brigada de cubetas
Supongamos que A y B no conocen la clave pblica del otro, por lo que
bastara simplemente A enviar a B su clave pblica en el primer mensaje y
pedir a B que devuelva la suya en el siguiente. El problema de este enfoque
es que est sujeto a un ataque de brigada de cubetas o alguien en medio.
C puede capturar el mensaje de A a B y devolver su propia clave a A, que
pensar que tiene una clave para hablar con B cuando, de hecho, tiene una
clave para hablar con C. Ahora C puede leer todos los mensajes cifrados
con lo que A piensa es la clave pblica de B.
Solucin: El intercambio inicial de claves pblicas puede evitarse
almacenando todas las claves pblicas en una base de datos pblica. As, A
y B pueden obtener la clave pblica del otro de la base de datos.
PERO, sin embargo, C an puede poner en prctica el ataque de brigada de
cubetas interceptando las solicitudes a la base de datos y enviando
respuestas simuladas que contengan su propia clave.
De ah la aparicin de certificados digitales gestionados por una autoridad de
certificacin, como veremos en la siguiente parte.

44

Seguridad: Integridad
Autentificacin

El control de integridad (1/2)


Los esquemas de validacin de integridad, se basan en la idea
de una funcin de dispersin unidireccional (o hash) que
toma una parte arbitrariamente grande de texto comn y a
partir de ella calcula una cadena de bits de longitud fija.
La funcin de dispersin, llamada compendio de mensaje
(message digest), tiene tres propiedades importantes:
1.-dado un texto P, es fcil calcular su compendio de mensaje
MD(P)
2.-dado
un
compendio
de
mensaje
MD(P),
es
computacionalmente imposible encontrar P, es decir no
tiene inversa
3.-nadie puede generar dos mensajes que tengan el mismo
compendio de mensaje, a no ser que sean el mismo
mensaje. Esto requiere compendios de 128 bits de longitud
mnimo.
46

El control de integridad (2/2)


El compendio de un mensaje se conoce como huella digital.

Los compendios de mensaje funcionan tanto en clave


privada como en clave pblica, siendo los de mayor
uso el MD5 y el SHA
Ejemplo: Para entender la idea del compendio,
podemos relacionarlo con los CRC aadidos en los
paquetes, de forma que si un paquete es alterado, el
CRC no coincide con lo cual cabe pensar que se ha
daado o ha sido manipulado.

47

MD5: Message Digest 5


El MD5 es la quinta de una serie de funciones de
dispersin diseadas por Ron Rivest (el del
algoritmo RSA) en el ao 1992. [RFC1321] que
genera compendios de 128 bits.
Las anteriores versiones MD2[RFC1319],
MD4[RFC1186 y 1320] son ms lentas.
Opera alterando los bits de una manera tan
complicada que cada bit de salida es afectado por
cada bit de entrada.

48

SHA: Secure Hash Algoritm


El SHA (Secure Hash Algoritm), fue
desarrollado por la NSA (National Security
Agency) junto con NIST (National Institut of
Standards and Technology) y procesa los
datos de entrada en bloques de 512 bits, pero
a diferencia del MD5 genera un compendio
de mensaje de 160 bits (20 bytes).

49

Seguridad: No repudio
Firmas y certificados

Firma digital
La validacin de identificacin y autenticidad de
muchos documentos legales, financieros y de
otros tipos se determina por la presencia o
ausencia o bien de una firma manuscrita
autorizada o bien de una firma digital.
La firma digital permite que una parte pueda enviar
un mensaje firmado a otra parte, con las
propiedades de autentificacin (ntegro,
autntico) y no repudio.
POR TANTO, LA CLAVE DE LA FIRMA DIGITAL ESTRIBA EN
PEDIR OBLIGATORIAMENTE UN ACUSE DE RECIBO

51

Caractersticas de una firma digital


Requisitos de la Firma Digital:
a) Debe ser fcil de generar.
b) Ser irrevocable, no rechazable por su propietario con
el acuse de recibo.
c) Ser nica, slo posible de generar por su propietario.
d) Ser fcil de autenticar o reconocer por su propietario
y los usuarios receptores.
e) Debe depender del mensaje (por compendio) y del
autor (por certificado).
Soncondiciones
condicionesms
ms fuertes
fuertes
Son
quelalade
deuna
unafirma
firmamanuscrita.
manuscrita.
que

52

Firma digital: clasificacin


Al igual que la criptografa, las firmas digitales se
dividen en dos grandes grupos:

firmas de clave secreta o simtrica


firmas de clave pblica o asimtrica

53

Firma digital: con clave secreta


Un enfoque de las firmas digitales sera tener una autoridad
central X que sepa todo y en quien todos confen.
Cada usuario escoge una clave secreta y la lleva
personalmente a la autoridad central X. Por tanto, slo el
usuario y X conocen la clave secreta del usuario. En el
caso del usuario A, sera la clave secreta KA
Ejemplo: el algoritmo HMAC (Hash Message Authentication
Code) que consiste en aadir al final del mensaje, el
compendio o resumen de ste, pero cifrado con una clave
que identifica al usuario.

54

Hash Message Authentication Method (HMAC)


Local

Remoto
Clave simtrica
compartida

Mensaje

Mensaje a mandar

recibido
Pay to Terry Smith

$100.00

One Hundred and xx/100

Dollars

Clave simtrica
compartida

$100.00

One Hundred and xx/100

Dollars

Funcin

Funcin

Hash

Hash

4ehIDx67NMop9

Pay to Terry Smith

$100.00

One Hundred and xx/100

Dollars

4ehIDx67NMop9

Mensaje + Hash

55

Pay to Terry Smith

4ehIDx67NMop9

Firma digital: con clave secreta y un rbitro


A, KA(B,RA,t,P)
A

B
KB(A,RA,t,P,KX(A,t,P))

1.- Cuando A quiere enviar un mensaje de texto normal P firmado a B,


genera KA(B,RA,t,P) y lo enva a X, donde t es una marca de tiempo y
RA es un identificador para mensaje nico.
2.- X ve que el mensaje es de A, lo descifra y enva un mensaje a B que
contiene el texto normal del mensaje de A y tambin el mensaje
firmado KX(A,t,P).
Si A niega el envo del mensaje a B:
B puede afirmar que el mensaje vino de A y no de un tercero C, pues X
no hubiera aceptado un mensaje de A a menos que estuviese
cifrado con KA, por lo que no hay posibilidad de que C enviar a X un
mensaje falso en nombre de A. B adems presenta la prueba
KX(A,t,P), que a su vez X (en quien todo el mundo confa) la puede
descifrar y testificar que B dice la verdad.

56

Firma digital: con clave pblica (1/3)


Supongamos los algoritmos pblicos tal que
E(D(P))=P y D(E(P))=P (el RSA tiene esta
propiedad por lo que el supuesto es razonable).
A puede enviar un mensaje de texto normal firmado,
P, a B transmitiendo EB(DA(P)), donde:
-DA()es la funcin de descifrado (privada) de A
-EB() es la funcin pblica de B

Y por tanto B, puede realizar el proceso inverso


EA(DB (EB(DA(P))
-DB() es la funcin privada de B
-EA() es la funcin pblica de A
57

Firma digital: con clave pblica (2/3)


t

Usuario A

Usuario B

P=soy A el firmante, 17.00h 23/6/2004

Calculo DA(P)

B, cul es tu clave pblica?

E B()
EB(DA(P))
Comprobemos la firma
A, cul es tu clave pblica?

E A()

58

Calculo EA(DB(EB(DA(P))))=P
Todo correcto!
Est firmado por A

Firma digital: con clave pblica (3/3)


Supongamos A niega haber enviado el mensaje P a B.
Entonces B puede presentar tanto P como DA(P), que es un
mensaje vlido cifrado por DA() con slo aplicarle EA().
Dado que B no conoce la clave privada de A, la nica
forma en que B pudo haber adquirido el mensaje cifrado
sera que A en efecto lo hubiera enviado.
Pero esto siempre y cuando DA permanezca en secreto. Si
A divulga su clave secreta, el argumento ya no se
mantiene.
Adems, A puede decidir cambiar su clave, en consecuencia,
parece que s que se requiere alguna autoridad para
registrar todos los cambios de clave y sus fechas.

59

Ejemplo de integridad y validacin:


uso de rpm de LINUX

Para comprobar la firma digital la aplicacin rpm de


instalacin de paquetes en algunas distribuciones de Linux
posee la opcin checksig:
rpm checksig X.i386.rpm siendo X.i386.rpm el paquete a
instalar.
Esta opcin en rpm permite comprobar la integridad del paquete
y el origen.
La integridad se comprueba con la firma basada con md5.
La comprobacin del origen (validacin) se realiza con la clave
pblica de GNU (si se dispone). Si no disponemos de dicha
firma, la comprobacin de origen no puede realizarse y con
ello, la GPG (Gnu Privacy Guard) no podr efectuarse.
EGNU(DGNU(compendio-rpm))=compendio-rpm
Mirar man rpm

60

Qu es un Certificado?
Un archivo, firmado con la clave privada de CA con la
identidad, la clave pblica del dicha identidad, atributos varios
y compendio de dicha informacin:

DCA(identidad, clave, atributos, compendio{identidad, clave, atributos})

61

Definiciones: Certificado digital (1/2)


El certificado digital es un vnculo entre una clave pblica y
una identidad de usuario, que se consigue mediante una firma
digital por una tercera parte o autoridad de certificacin que
hace pblica su clave pblica en la que TODOS confan.
Por tanto, el certificado se considera como un objeto firmado
con la clave privada de la autoridad de cerificacin, e
incluyendo: identidad del usuario, clave, periodo de validez,
identidad emisor, ...
La autoridad de certificacin (CA: Certificacion Authority o
Autoridad de Certificacin) es una entidad de confianza que
es reconocida y aceptada por todos, imposible de suplantar.
Por regla general, por seguridad no se trabaja directamente
con la autoridad de certificacin, si no con un intermediario o
autoridad de registro.
La Fbrica Nacional de Moneda y Timbre (FNMT) es una CA.

62

63

Definiciones: Certificado digital (2/2)


El certificado raz es un certificado emitido de la CA para s
misma con su clave pblica, para comprobar certificados
emitidos por ella. Se suele instalar previamente dicho
certificado en el navegador para poder utilizar los
certificados de dicha CA. Los navegadores llevan por
defecto muchos de ellos.
La autoridad de registro que identifica de forma inequvoca
al solicitante de un certificado y suministra a la CA los
datos verificados para que pueda emitirlo.
Lista de certificados revocados (o CRL Certificate
Revocation List) es una lista donde se recogen todos los
certificados de la CA dados de baja por caducidad aun
estando temporalmente vigentes por problemas varios
(como que se haya hecho pblica la clave privada de un usuario ) y
por tanto cualquier firma emitida con posterioridad a la
revocacin no tiene validez. Este documento tambin es
firmado por la propia CA.

Ejemplo de
certificados
raz en un
navegador
64

Enviado a

Emitido por

ABA.ECOM Root CA
AC del Colegio Nacional de Correduria Publica Mexicana, A.C.
Baltimore EZ by DST
Belgacom E-Trust Primary CA
C&W HKT SecureNet CA Class A
CA 1
Certiposte Classe A Personne
Certiposte Serveur
Certisign - Autoridade Certificadora - AC2
Class 1 Primary CA
Copyright (c) 1997 Microsoft Corp.
Deutsche Telekom Root CA 1
DST (ANX Network) CA
DST (NRF) RootCA
DST-Entrust GTI CA
Entrust.net Secure Server Certification Authority
Equifax Secure Certificate Authority
FNMT Clase 2 CA
GlobalSign Root CA
http://www.valicert.com/
IPS SERVIDORES
Microsoft Authenticode(tm) Root Authority
Microsoft Root Authority
NetLock Uzleti (Class B) Tanusitvanykiado
PTT Post Root CA
Saunalahden Serveri CA
Secure Server Certification Authority
SecureNet CA Class A
SecureSign RootCA
SERVICIOS DE CERTIFICACION - A.N.C.
SIA Secure Client CA
SIA Secure Server CA
Swisskey Root CA
TC TrustCenter Class CA
TC TrustCenter Time Stamping CA
Thawte Personal CA
UTN - DATACorp SGC
UTN-USERFirst-Client Authentication and Email
VeriSign Commercial Software Publishers CA
VeriSign Individual Software Publishers CA
VeriSign Trust Network
Xcert EZ by DST

ABA.ECOM Root CA
AC del Colegio Nacional de Correduria Publica Mexicana, A.C.
Baltimore EZ by DST
Belgacom E-Trust Primary CA
C&W HKT SecureNet CA Class A
CA 1
Certiposte Classe A Personne
Certiposte Serveur
Certisign - Autoridade Certificadora - AC2
Class 1 Primary CA
Copyright (c) 1997 Microsoft Corp.
Deutsche Telekom Root CA 1
DST (ANX Network) CA
DST (NRF) RootCA
DST-Entrust GTI CA
Entrust.net Secure Server Certification Authority
Equifax Secure Certificate Authority
FNMT Clase 2 CA
GlobalSign Root CA
http://www.valicert.com/
IPS SERVIDORES
Microsoft Authenticode(tm) Root Authority
Microsoft Root Authority
NetLock Uzleti (Class B) Tanusitvanykiado
PTT Post Root CA
Saunalahden Serveri CA
Secure Server Certification Authority
SecureNet CA Class A
SecureSign RootCA
SERVICIOS DE CERTIFICACION - A.N.C.
SIA Secure Client CA
SIA Secure Server CA
Swisskey Root CA
TC TrustCenter Class CA
TC TrustCenter Time Stamping CA
Thawte Personal CA
UTN - DATACorp SGC
UTN-USERFirst-Client Authentication and Email
VeriSign Commercial Software Publishers CA
VeriSign Individual Software Publishers CA
VeriSign Trust Network
Xcert EZ by DST

Certificados X509v3 (1/2)


X.509 es el protocolo que se utiliza para certificar las claves pblicas,
pblicas
con lo que los usuarios pueden intercambiar datos de manera
segura. Definido por ISO pero aceptado por el IETF en RFC 3280.
X.509 est basado en criptografa asimtrica y firma digital
Se emplea para autentificar la informacin en redes externas y en
redes internas y en el correo electrnico.
La autenticacin se realiza mediante el uso de certificados.

- Un certificado contiene: el nombre de la CA, el nombre

del usuario, la clave pblica del usuario y cualquier otra


informacin como puede ser el tiempo de validez
- El certificado se cifra con la clave privada de la CA.
- Todos los usuarios poseen la clave pblica del CA.

65

Certificados X509v3 (2/2)


Los campos del X.509 escritos en ASN1 son:
Versin: La del protocolo X.509 (actualmente versin 3)
Nmero de serie: Es un nmero asignado por el CA y que identifica de
manera nica el certificado.
Algoritmo de la firma del certificado: Identifica el algoritmo utilizado para
firmar el certificado.
Autoridad de certificacin (CA): Es el nombre de la CA en formato X.500
Fecha de inicio y final: tiempo de validez
Usuario: Es el nombre del usuario.
Clave pblica: Es la clave del usuario.
Identificador nico del CA: Es el nmero que identifica a la CA. Es nico en
el mundo.
Identificador nico del usuario: Es el nmero que identifica al usuario para
todos sus certificados.
Extensiones: Si hay extensiones de la informacin
Firma de la CA: Firma todos los campos anteriores empleando, para ello
un compendio del certificado y luego cifrado con su clave privada.

66

Redes de confianza
En muchas ocasiones no se dispone ni de Autoridades de
Certificacin ni de Registro. Una solucin tomada
estriba en la confianza de los propios usuarios entre
ellos.
Por ejemplo, si Juan confa plenamente en Luis y Luis ha
aceptado la identificacin de Pedro, Juan podra
inicialmente aceptar a Pedro, porque Luis es de su
confianza.
Comentario: En una red de confianza, una identificacin
(clave nueva) se considerar vlida si viene firmada
por suficientes claves vlidas.
Por ejemplo, PGP en correo seguro lo utiliza.
67

Potrebbero piacerti anche