introduccion al cifrado

67
Introducción: confidencialidad, autenticación, integridad y no repudio. Claves de la seguridad Santiago Felici Castell Email: [email protected] Campus TI 2004 23-25 de Junio Disponible en http://netacad.uv.es

Upload: desiree-alvarez-torres

Post on 05-Nov-2015

4 views

Category:

Documents


0 download

DESCRIPTION

Cifrado

TRANSCRIPT

  • Introduccin: confidencialidad, autenticacin, integridad y no repudio. Claves de la seguridadSantiago Felici CastellEmail: [email protected] TI 200423-25 de JunioDisponible en http://netacad.uv.es

  • El Reto en la SeguridadLos sistemas de Tecnologas de la Informacin cambian rpidamente son cada vez ms complejosY los ataques son ms sofisticados y atacar cada vez es ms fcil

  • Seguridad: definicinISO, 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.

  • Temas legalesEn 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, ...

  • Marco legislativo espaolReal 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, ...

  • Clasificacin de problemas de seguridadLos 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: SecretosCriptografa

  • Criptografa y criptoanlisisKRYPTOS= ocultoGRAPHE=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 trasposicinCriptografa moderna: cifrados en base a claves

  • Cifrado: codificacin de los mensajesEl texto normal (P) se transforma (cifra) mediante una funcin parametrizada por una clave secreta k evitando el criptoanlisis de intrusosC=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

    El intruso activo altera los mensajes.

    El intruso pasivo simplemente escucha.

    Intruso

    Texto normal, P

    Clave de descifrado, k.

    Mtodo de descifrado.

    Texto cifrado, C=Ek(P)

    Clave de cifrado, k

    Mtodo de cifrado.

    Texto normal, P

  • Cifrado y descifradoDk(Ek(P))=PE y D son slo funciones matemticas parametrizadas con la clave kEstas 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

  • Cifrado de clave privada (simtrica) y pblica (asimtrica): 1/2El 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)

  • Cifrado de clave privada (simtrica) y pblica (asimtrica): 2/2El 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.

  • 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: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 ANSIDES 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.

  • Descifrado del DES y doble DESDado 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 seguroDoble 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:...

  • Triple DES (ANSI X.9.52)Se utilizan 2 claves (K1 y K2) y 3 etapas:1.- el texto normal se cifra con K12.- DES se ejecuta en modo de descifrado, usando K23.- se hace otro cifrado usando K1Cometarios: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.

    D

    E

    D

    K1

    K2

    K1

    C

    P

    E

    D

    E

    K1

    K2

    K1

    P

    C

  • 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.

  • Advanced Encryption Standard (AES) o RijndaelSucesor 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 RijndaelConsiste en cifrado por bloques de 128 bits y claves variables, con longitudes entre 128 y 256 bits

  • Otros cifrados simtrico y comentarios: bloque y flujoOtros 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

  • Mtodos simtricos basados en flujoLos mtodos basados en flujo utilizan funciones XOR con mtodos basados en bloques. Para descifrar utilizamos un sistema simtrico. o(n)i(n)

  • 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))=P2.Es excesivamente difcil deducir D() de E() o viceversa3.E() no puede descifrarse

  • Algoritmo de cifrado de clave pblicaEl 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.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 EB(P) y lo enva a B2.- B entonces lo descifra aplicando su clave secreta DB, es decir, calcula DB(EB(P))=P3.- Nadie ms que B, puede descifrar el mensaje EB(P), porque se supone que el sistema de cifrado es robusto y porque es demasiado difcil derivar DB de la EB pblicamente conocida4.- B procede igual que A. Ahora A y B pueden comunicarse con seguridad.

  • Escenario con clave pblicaP=soy A y quiero hablar con B, usando clave sesin KUsuario AUsuario BDB(E B(P))=PP=ok A! soy B, o con clave sesin KDA(E A(P))=PESTABLECIDA LA SESION!!!Clave simtrica de sesin k

  • Seguridad: ValidacinAutenticacin

  • Validacin de identificacin en redesLa 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.

  • Modelo general de validacin e intrusosUn 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.

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

  • Mtodos de autenticacin (identificacin)Biomdicas, por huellas dactilares, retina del ojo, ...Tarjetas inteligentes que guardan informacin de los certificados de un usuarioMtodos clsicos basados en contrasea, ms frgiles que los anteriores y ms simples (baratos), basados en:Comprobacin local o mtodo tradicional en la propia mquinaComprobacin en red o mtodo distribuido, ms utilizado actualmenteUna 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.

  • Modelos de validacin basados en mtodos distribuidosEstos modelos se clasifican en:clave secreta (privada o simtrica) con mtodosBasados en protocolos con clave simtrica compartida, Diffie Hellman (no permite autenticacin), etcBasado en servidores con registro de todos los usuarios. Ejemplo TACACS+ y RadiusBasados en NIS, NIS+ (Network Information Service)Basados en centros de distribucin de claves basados en criptografa, Kerberosclave pblica (asimtrica) con mtodos que veremos ms en detalle en la siguiente parteX.500, LDAP (Lighweight Directory Access Protocol)Certificados

  • Validacin de identificacin de clave secretaLos modelos anteriores hacen uso parcial o total de los siguientes mtodosMtodos:Validacin de identificacin basada en clave secreta compartida.Establecimiento de una clave compartida: intercambio de claves Diffie-Hellman (no permite autenticacin)Validacin de identificacin usando un centro de distribucin de claves (KDC).Protocolo de autenticacin Kerberos.

  • Validacin de identificacin basada en clave secreta compartidaSupondremos 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 BKi son las claves, donde i indica el dueo; Ks es la clave de la sesin.

  • Validacin de identificacin basada en clave secreta compartida: protocoloRi 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.ERES A?ERES B?

    5

    4

    3

    2

    1

    A

    B

    KAB(RA)

    RA

    KAB(RB)

    RB

    A

  • 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

  • Establecimiento de una clave compartida: intercambio de claves Diffie-Hellman: protocolo1.-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.

    2

    gy mod n

    1

    n, g, gx mod n

    B calcula

    (gx mod n)y = gxy mod n

    A calcula

    (gy mod n)x = gxy mod n

    B selecciona y

    A selecciona x

    A

    B

  • Establecimiento de una clave compartida: intercambio de claves Diffie-Hellman: ataque de brigada de cubetas o ataque de alguien en medioAtaque: 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. 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.

    B selecciona y

    B

    4

    gy mod n

    2

    n, g, gz mod n

    3

    gz mod n

    1

    n, g, gx mod n

    C selecciona z

    A selecciona x

    A

    C

  • TACACS+ y RADIUSTACACS+ (Terminal Access Controller Access Control System-RFC1492) y RADIUS (Remote Authentication Dial In User Service- RFC2138) 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))

  • Protocolos para AAAAccess Control Server (ACS): Tacacs+, Radius, Kerberos V

  • 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.

  • Validacin de identificacin usando un centro de distribucin de claves (KDC)1.- A escoge una clave de sesin, KS 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 KB (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.

    B

    1

    2

    KB(A,KS)

    KDC

    A, KA(B,KS)

    A

  • Autenticacin con KerberosPerro de tres cabezas y cola de serpiente segn mitologa griega, guardin de la entrada del Templo de Hades (Infierno). Servicio de autenticacin desarrollado en el Massachusetts Institute of Technology (MIT)

  • Protocolo de autentificacin KerberosKerberos 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 servidor-cliente.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.

  • Protocolo de autentificacin Kerberos: protocolo (1/2)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

    4

    3

    2

    1

    A

    B

    Kerberos

    K(Ta+1)

    Kb(K,L,A)

    K(A,Ta)

    Ka(K,L, RA,B)

    Kb(K,L,A)

    RA

    , A, B

  • 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 K3.- 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.

  • Validacin de identificacin de clave pblicaSupongamos que A y B ya conocen las claves pblicas del otro EB() 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: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...

    B

    KS(RB)

    EB(A,RA)

    EA(RA,RB,KS)

    A

    3

    2

    1

  • Validacin de identificacin de clave pblica (debilidades): ataque de brigada de cubetasSupongamos 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.

  • Seguridad: IntegridadAutentificacin

  • 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 inversa3.-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.

  • 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.

  • MD5: Message Digest 5El 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.

  • SHA: Secure Hash AlgoritmEl 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).

  • Seguridad: No repudioFirmas y certificados

  • Firma digitalLa 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

  • Caractersticas de una firma digitalSon condiciones ms fuertes que la de una firma manuscrita.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).

  • Firma digital: clasificacinAl igual que la criptografa, las firmas digitales se dividen en dos grandes grupos:

    firmas de clave secreta o simtricafirmas de clave pblica o asimtrica

  • Firma digital: con clave secretaUn 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.

  • Hash Message Authentication Method (HMAC)Mensaje recibidoFuncinHash Pay to Terry Smith $100.00

    One Hundred and xx/100 Dollars4ehIDx67NMop9Mensaje + HashClave simtrica compartida

    Mensaje a mandarClave simtrica compartida FuncinHashPay to Terry Smith $100.00

    One Hundred and xx/100 DollarsLocalRemoto

  • Firma digital: con clave secreta y un rbitro1.- 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.

    X

    B

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

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

    A

  • 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 BY 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

  • Firma digital: con clave pblica (2/3)P=soy A el firmante, 17.00h 23/6/2004Calculo DA(P)Usuario AUsuario BCalculo EA(DB(EB(DA(P))))=PtTodo correcto!Est firmado por AComprobemos la firma

  • 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.

  • Ejemplo de integridad y validacin: uso de rpm de LINUXPara 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-rpmMirar man rpm

  • 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})

  • 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.

  • 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

    lista-

    Enviado aEmitido por

    ABA.ECOM Root CAABA.ECOM Root CA

    AC del Colegio Nacional de Correduria Publica Mexicana, A.C.AC del Colegio Nacional de Correduria Publica Mexicana, A.C.

    Baltimore EZ by DSTBaltimore EZ by DST

    Belgacom E-Trust Primary CABelgacom E-Trust Primary CA

    C&W HKT SecureNet CA Class AC&W HKT SecureNet CA Class A

    CA 1CA 1

    Certiposte Classe A PersonneCertiposte Classe A Personne

    Certiposte ServeurCertiposte Serveur

    Certisign - Autoridade Certificadora - AC2Certisign - Autoridade Certificadora - AC2

    Class 1 Primary CAClass 1 Primary CA

    Copyright (c) 1997 Microsoft Corp.Copyright (c) 1997 Microsoft Corp.

    Deutsche Telekom Root CA 1Deutsche Telekom Root CA 1

    DST (ANX Network) CADST (ANX Network) CA

    DST (NRF) RootCADST (NRF) RootCA

    DST-Entrust GTI CADST-Entrust GTI CA

    Entrust.net Secure Server Certification AuthorityEntrust.net Secure Server Certification Authority

    Equifax Secure Certificate AuthorityEquifax Secure Certificate Authority

    FNMT Clase 2 CAFNMT Clase 2 CA

    GlobalSign Root CAGlobalSign Root CA

    http://www.valicert.com/http://www.valicert.com/

    IPS SERVIDORESIPS SERVIDORES

    Microsoft Authenticode(tm) Root AuthorityMicrosoft Authenticode(tm) Root Authority

    Microsoft Root AuthorityMicrosoft Root Authority

    NetLock Uzleti (Class B) TanusitvanykiadoNetLock Uzleti (Class B) Tanusitvanykiado

    PTT Post Root CAPTT Post Root CA

    Saunalahden Serveri CASaunalahden Serveri CA

    Secure Server Certification AuthoritySecure Server Certification Authority

    SecureNet CA Class ASecureNet CA Class A

    SecureSign RootCASecureSign RootCA

    SERVICIOS DE CERTIFICACION - A.N.C.SERVICIOS DE CERTIFICACION - A.N.C.

    SIA Secure Client CASIA Secure Client CA

    SIA Secure Server CASIA Secure Server CA

    Swisskey Root CASwisskey Root CA

    TC TrustCenter Class CATC TrustCenter Class CA

    TC TrustCenter Time Stamping CATC TrustCenter Time Stamping CA

    Thawte Personal CAThawte Personal CA

    UTN - DATACorp SGCUTN - DATACorp SGC

    UTN-USERFirst-Client Authentication and EmailUTN-USERFirst-Client Authentication and Email

    VeriSign Commercial Software Publishers CAVeriSign Commercial Software Publishers CA

    VeriSign Individual Software Publishers CAVeriSign Individual Software Publishers CA

    VeriSign Trust NetworkVeriSign Trust Network

    Xcert EZ by DSTXcert EZ by DST

  • Certificados X509v3 (1/2)X.509 es el protocolo que se utiliza para certificar las claves 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 digitalSe 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 validezEl certificado se cifra con la clave privada de la CA.Todos los usuarios poseen la clave pblica del CA.

  • 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.500Fecha de inicio y final: tiempo de validezUsuario: 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 informacinFirma de la CA: Firma todos los campos anteriores empleando, para ello un compendio del certificado y luego cifrado con su clave privada.

  • 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.Redes de confianza

    El ACS (security server) est en la Intranet, al cual se accede bajo protocolos seguros como Tacacs, Radius y/o Kerberos. Adems, las funcionalidades que realiza el ACS son AAA.A su vez, las conexiones al RAS puede filtrarse utilizando las herramientas disponibles para ACLs, Lock and Key, tneles, etc utilizando para ello, protocolos como PPP, CHAP, PAP, etc

    Asume un entorno distribuido y abierto en el que los usuarios desean acceder desde sus estaciones de trabajo a servicios situados en servidores distribuidos a travs de la red. Desearamos que los servidores fueran capaces de restringir el acceso solamente a usuarios autorizados y ser capaces de autenticar peticiones a servicios. En este entorno, no se puede confiar en una estacin de trabajo para identificar correctamente el acceso de sus usuarios a los servicios de red.

    Mejor que construir elaborados protocolos de autenticacin para cada servidor, Kerberos proporciona un servidor de autenticacin centralizado cuya funcin es autenticar usuarios a servidores y servidores a usuarios.Ataque: Este protocolo tambin puede sufrir el ataque de Needham-Schroeder dado que C podra repetir el mensaje 3 si descubre una clave de sesin antigua K con K(A,Ta), suplantado la identidad de A, con el inconveniente de que K slo es vlida durante L, que no puede modificar del mensaje 3 dado que va cifrado con Kb(K,L,A).

    Solucin al ataque: en este caso la solucin pasara por ajustar los tiempos de L para que la validez de las claves fuera muy reducida en tiempo, evitando la posibilidad de que el intruso pueda capturar el trfico, descifrarlo y atacar, al menos en un tiempo breve de tiempo.NOTAS SOBRE EL TEMA:

    NOTAS SOBRE EL TEMA: