Confidencialidad, autenticación, integridad y no repudio. Claves de la seguridad (página 2)
Enviado por Pablo Turmero
13 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 criptoanálisis y además sencillo para poder ser implementado en un circuito electrónico con la tecnología de los 70. Por tanto, DES puede ser descifrado probando todas las claves posibles con el hardware adecuado, método 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 pequeño de texto normal y el texto cifrado correspondiente, se puede encontrar en unas horas con el hardware del DES, la clave mediante una búsqueda 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 método de ataque llamado encuentro a la mitad que lo hace también vulnerable con 257 operaciones Triple DES:…
15 Triple DES (ANSI X.9.52) 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 sólo 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 solución EEE es mucho más segura con clave de 168 bits.
16 Cifrado IDEA (International Data Encryption Algorithm) Después de comprobar la debilidad del algoritmo DES en su forma simple, diversos trabajos propusieron nuevos métodos, de los cuales el más 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 décadas a los ataques de la fuerza bruta. No hay ninguna técnica o máquina conocida actualmente que se crea que puede descifrar el algoritmo IDEA. La estructura básica 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 competición pública, 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 simétrico 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 métodos basados en bloques, también se llaman ECB (Electronic Code Book) y son muy rápidos. Otro inconveniente que aparece, es que DES procesa a bloques fijos de 64 bits (8 bytes), lo cual con un intruso avispado, podría hacer movimiento de bloques dentro del mismo cifrado, sin levantar alarma. Este problema se puede resolver con diferentes métodos: 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 métodos también se llaman CBC (Cipher Block Chain) con rellenos variables por bloque, por ejemplo insertando 0s e indicando la cantidad de rellenos
19 Métodos simétricos basados en flujo (Gp:) Método en bloques (Gp:) XOR
Los métodos basados en flujo utilizan funciones XOR con métodos basados en bloques. Para descifrar utilizamos un sistema simétrico. o(n) i(n)
20 Cifrados de clave pública Históricamente, el problema de distribución de claves siempre ha sido la parte débil de la mayoría 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 podía 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 difícil deducir D() de E() o viceversa 3. E() no puede descifrarse
21 Algoritmo de cifrado de clave pública El algoritmo de cifrado E(), descifrado D() y la clave de cifrado, se hacen públicos (de ahí el nombre de criptografía de clave pública), pero se mantiene secreta la clave de descifrado. EA es clave pública y DA es clave secreta. Escenario de aplicación 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 información pública. Pasos a seguir: 1.- A toma su primer mensaje P, calcula EB(P) y lo envía a B 2.- B entonces lo descifra aplicando su clave secreta DB, es decir, calcula DB(EB(P))=P 3.- Nadie más que B, puede descifrar el mensaje EB(P), porque se supone que el sistema de cifrado es robusto y porque es demasiado difícil derivar DB de la EB públicamente conocida 4.- B procede igual que A. Ahora A y B pueden comunicarse con seguridad.
22 Escenario con clave pública P=soy A y quiero hablar con B, usando clave sesión K Usuario A Usuario B (Gp:) B, ¿cuál es tu clave pública?
(Gp:) E B()
(Gp:) E B(P)
DB(E B(P))=P P=ok A! soy B, o con clave sesión K (Gp:) A, ¿cuál es tu clave pública?
(Gp:) E A()
(Gp:) E A(P)
DA(E A(P))=P ESTABLECIDA LA SESION!!! Clave simétrica de sesión k
Seguridad: Validación SubAutenticación
24 Validación de identificación en redes La validación de identificación, o también llamada autenticación (que no autentificación, que es ver si algo es auténtico), es la técnica mediante la cual un proceso comprueba que su compañero de comunicación es quien se supone que es y no un impostor. La verificación de la identidad de un proceso remoto con un intruso activo malicioso, es sorprendentemente difícil y requiere protocolos de validación complejos basados en criptografía como vamos a ver. La validación es el paso previo al establecimiento de una conexión entre dos entidades, para pactar una clave de sesión.
25 Modelo general de validación e intrusos Un usuario A, quiere establecer una conexión segura con un segundo usuario, B: 1.- Se validan. Comienza A por enviar un mensaje a B o a un centro de distribución 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 envían estos mensajes, un intruso malicioso, C, puede interceptarlos, modificarlos o reproducirlos para engañar a A y a B, o simplemente para estropear sus actividades.
2.- Un protocolo de autenticación debe impedir que un intruso se meta. Terminado el protocolo habrán negociado una clave de sesión. A B C
26 Métodos de autenticación (identificación) Biomédicas, por huellas dactilares, retina del ojo, … Tarjetas inteligentes que guardan información de los certificados de un usuario Métodos clásicos basados en contraseña, más frágiles que los anteriores y más simples (baratos), basados en: Comprobación local o método tradicional en la propia máquina Comprobación en red o método distribuido, más utilizado actualmente Una vez completado el protocolo, ambos A y B están seguro que está hablando entre ellos. Durante el protocolo podrían haber intercambiado una clave de sesión.
27 Modelos de validación basados en métodos distribuidos Estos modelos se clasifican en: clave secreta (privada o simétrica) con métodos Basados en protocolos con clave simétrica compartida, Diffie Hellman (no permite autenticación), 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 distribución de claves basados en criptografía, Kerberos clave pública (asimétrica) con métodos que veremos más en detalle en la siguiente parte X.500, LDAP (Lighweight Directory Access Protocol) Certificados
28 Validación de identificación de clave secreta Los modelos anteriores hacen uso parcial o total de los siguientes métodos Métodos: Validación de identificación basada en clave secreta compartida. Establecimiento de una clave compartida: intercambio de claves Diffie-Hellman (no permite autenticación) Validación de identificación usando un centro de distribución de claves (KDC). Protocolo de autenticación Kerberos.
29 Validación de identificación basada en clave secreta compartida Supondremos que A y B ya comparten una clave secreta KAB (acordada o bien telefónicamente o en persona pero, en cualquier caso, no a través de la red) Este protocolo se basa en reto-respuesta: una parte envía un número aleatorio a la otra, que entonces lo transforma de una manera especial y devuelve el resultado. Notación a utilizar: Ri son los retos, donde el subíndice identifica el retador: A o B Ki son las claves, donde i indica el dueño; Ks es la clave de la sesión.
30 Validación de identificación basada en clave secreta compartida: protocolo Ri son números 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 identificación, A puede indicar una Ks para la sesión. Este protocolo funciona, pero se puede simplificar el número de mensajes. DESTACAR, que con el mensaje 2 y 3 se podría tratar de explotar por fuerza bruta la clave. ¿ERES A? ¿ERES B?
31 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 día, aún con C registrando cuidadosamente cada mensaje. El protocolo que permite que dos extraños establezcan una clave secreta compartida se llama intercambio de claves Diffie-Hellman, y funciona como sigue: A y B tiene que acordar dos números primos grandes, n y g, que deben cumplir ciertas condiciones [ver RFC 2631]. Esto números pueden ser públicos, por lo que cualquiera de ellos puede escoger n y g y decírselo al otro abiertamente. Ahora, A escoge un número grande x, y lo mantiene en secreto, de la misma manera, B escoge un número secreto grande y.
Este algoritmo se puede considerar también como de clave pública, pero no permite autenticación. Nota:RSA se basó en este algoritmo
32 Establecimiento de una clave compartida: intercambio de claves Diffie-Hellman: protocolo 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 aritmética 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. Además, de (gx mod n) no se conoce un algoritmo práctico para calcular logaritmos discretos módulo de un número 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. Ahora todos hacen la aritmética 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 envía durante la sesión 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 están pensando equivocadamente que tienen un canal seguro entre ambos. MEJORA: utilizar un KDC, centro de distribución de claves.
34 TACACS+ y RADIUS TACACS+ (Terminal Access Controller Access Control System-RFC1492) y RADIUS (Remote Authentication Dial In User Service- RFC2138) son ejemplos de centros de distribución de claves o también 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 gestión 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 (quién), Authorization (qué), Accounting (auditoria))
35 Protocolos para AAA Access Control Server (ACS): Tacacs+, Radius, Kerberos V
36 Validación de identificación usando un centro de distribución de claves (KDC) En Diffie-Hellman no hay garantías por el ataque de alguien en medio, efectuado por un extraño o intruso. Otro inconveniente, es que para hablarle a n personas de esta manera se requerían n claves, una verdadera carga. Un enfoque diferente es introducir un centro de distribución de claves fiables (KDC), donde cada usuario tiene una sola clave compartida con el KDC, de forma que la validación de identificación y la administración de claves de sesión ahora pasan a través del KDC.
37 Validación de identificación usando un centro de distribución de claves (KDC) 1.- A escoge una clave de sesión, KS e indica al KDC que desea hablar con B usando KS. Este mensaje se cifra con la clave secreta que comparte A sólo con el KDC, KA. 2.- KDC descifra este mensaje, extrayendo la identidad de B y la clave de sesión. Construye un mensaje nuevo cifrado con KB (compartido entre KDC y B) que contiene la identidad de A y la clave de sesión y se lo envía a B. Ahora, A y B pueden hablar y saben además la clave a utilizar. La validación de identificación aquí es gratuita, en el sentido que las claves con el KDC son secretas y nadie más habría sido capaz de cifrarlo con la clave secreta de otro. A diferencia de Diffie Hellman, aquí si existe autenticación por ambas partes.
38 Perro de tres cabezas y cola de serpiente según mitología griega, guardián de la entrada del Templo de Hades (Infierno). Autenticación con Kerberos Servicio de autenticación desarrollado en el Massachusetts Institute of Technology (MIT)
39 Protocolo de autentificación Kerberos Kerberos es un KDC diseñado 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 sesión transitorias que permitan a los usuarios de la red establecer comunicaciones seguras. En ocasiones estas claves de sesión transitorias pueden ser un solo uso (OTP, One Time Password). Kerberos actúa como un árbitro en quien los usuarios confían, utilizando con cada usuario una clave secreta diferente, intercambiada con Kerberos a través de un canal seguro. El conocimiento de dicha clave se utiliza como prueba de identidad del usuario. La autentificación 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.
40 Protocolo de autentificación 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 sesión, a través de un mensaje con un valor aleatorio RA y los identificadores en la red de comunicación de A y B. 2.- Kerberos genera una clave de sesión aleatoria K y define el período de validez L de la credencial, cifrando a continuación 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 autentificación 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 continuación, A calcula el autentificador para la credencial con B, cifrando su identidad A y su sello temporal Ta para sincronización, con la clave de sesión 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 válido y se encuentra en los límites de L. 4- Si las comprobaciones son satisfactorias, B se convence de la autenticidad de la identidad de A, y en tal caso, B envía a A la conformidad con K(Ta+1) Por su parte A descifra la conformidad con la clave de sesión K y verifica que el valor recuperado es Ta+1, lo cual asegura a A que la clave de sesión K ha sido correctamente recibida por el usuario B.
42 Validación de identificación de clave pública Supongamos que A y B ya conocen las claves públicas del otro EB() y EA() respectivamente y quieren establecer una sesión utilizando criptografía de clave secreta, ya que típicamente es de 100 a 1000 veces más rápida que la criptografía de clave pública. El propósito de este intercambio inicial entonces es validar la identificación de ambos utilizando sus claves públicas recíprocamente para comunicarse y utilizando las claves privadas para descifrar y tras ello acordar una clave de sesión secreta compartida con el siguiente protocolo: Vemos que el intruso C no tiene manera de conocer RA para replicar, pero dependiendo de cómo se intercambien las claves públicas, podría haber problemas…
43 Validación de identificación de clave pública (debilidades): ataque de brigada de cubetas Supongamos que A y B no conocen la clave pública del otro, por lo que bastaría simplemente A enviar a B su clave pública 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 pública de B. Solución: El intercambio inicial de claves públicas puede evitarse almacenando todas las claves públicas en una base de datos pública. Así, A y B pueden obtener la clave pública del otro de la base de datos. PERO, sin embargo, C aún puede poner en práctica 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 aparición de certificados digitales gestionados por una autoridad de certificación, como veremos en la siguiente parte.
Seguridad: Integridad SubAutentificación
45 El control de integridad (1/2) Los esquemas de validación de integridad, se basan en la idea de una función de dispersión unidireccional (o hash) que toma una parte arbitrariamente grande de texto común y a partir de ella calcula una cadena de bits de longitud fija. La función de dispersión, llamada compendio de mensaje (message digest), tiene tres propiedades importantes: 1.-dado un texto P, es fácil 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 mínimo.
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 pública, siendo los de mayor uso el MD5 y el SHA
Ejemplo: Para entender la idea del compendio, podemos relacionarlo con los CRC añadidos en los paquetes, de forma que si un paquete es alterado, el CRC no coincide con lo cual cabe pensar que se ha dañado o ha sido manipulado.
47 MD5: Message Digest 5 El MD5 es la quinta de una serie de funciones de dispersión diseñadas por Ron Rivest (el del algoritmo RSA) en el año 1992. [RFC1321] que genera compendios de 128 bits. Las anteriores versiones MD2[RFC1319], MD4[RFC1186 y 1320] son más 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).
Seguridad: No repudio SubFirmas y certificados
50 Firma digital La validación de identificación 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 autentificación (íntegro, auténtico) y no repudio.
POR TANTO, LA CLAVE DE LA FIRMA DIGITAL ESTRIBA EN PEDIR OBLIGATORIAMENTE UN ACUSE DE RECIBO
51 Son condiciones más fuertes que la de una firma manuscrita. Características de una firma digital Requisitos de la Firma Digital: a) Debe ser fácil de generar. b) Será irrevocable, no rechazable por su propietario con el acuse de recibo. c) Será única, sólo posible de generar por su propietario. d) Será fácil de autenticar o reconocer por su propietario y los usuarios receptores. e) Debe depender del mensaje (por compendio) y del autor (por certificado).
52 Firma digital: clasificación Al igual que la criptografía, las firmas digitales se dividen en dos grandes grupos:
firmas de clave secreta o simétrica firmas de clave pública o asimétrica
53 Firma digital: con clave secreta Un enfoque de las firmas digitales sería tener una autoridad central X que sepa todo y en quien todos confíen. Cada usuario escoge una clave secreta y la lleva personalmente a la autoridad central X. Por tanto, sólo el usuario y X conocen la clave secreta del usuario. En el caso del usuario A, sería la clave secreta KA
Ejemplo: el algoritmo HMAC (Hash Message Authentication Code) que consiste en añadir 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) Mensaje recibido Función Hash (Gp:) 4ehIDx67NMop9
Pay to Terry Smith $100.00
One Hundred and xx/100 Dollars (Gp:) Pay to Terry Smith $100.00
One Hundred and xx/100 Dollars
4ehIDx67NMop9 Mensaje + Hash Clave simétrica compartida
Mensaje a mandar Clave simétrica compartida Función Hash (Gp:) 4ehIDx67NMop9
Pay to Terry Smith $100.00
One Hundred and xx/100 Dollars Local Remoto (Gp:) 1
(Gp:) 2
55 Firma digital: con clave secreta y un árbitro 1.- Cuando A quiere enviar un mensaje de texto normal P firmado a B, genera KA(B,RA,t,P) y lo envía 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 envía un mensaje a B que contiene el texto normal del mensaje de A y también el mensaje firmado KX(A,t,P). Si A niega el envío 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 además presenta la prueba KX(A,t,P), que a su vez X (en quien todo el mundo confía) la puede descifrar y testificar que B dice la verdad.
56 Firma digital: con clave pública (1/3) Supongamos los algoritmos públicos 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 función de descifrado (privada) de A -EB() es la función pública de B Y por tanto B, puede realizar el proceso inverso EA(DB (EB(DA(P)) -DB() es la función privada de B -EA() es la función pública de A
57 P=soy A el firmante, 17.00h 23/6/2004 Calculo DA(P) Usuario A Usuario B (Gp:) B, ¿cuál es tu clave pública?
(Gp:) E B()
(Gp:) EB(DA(P))
Calculo EA(DB(EB(DA(P))))=P t (Gp:) A, ¿cuál es tu clave pública?
(Gp:) E A()
Todo correcto! Está firmado por A Firma digital: con clave pública (2/3) Comprobemos la firma
58 Firma digital: con clave pública (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 válido cifrado por DA() con sólo aplicarle EA(). Dado que B no conoce la clave privada de A, la única forma en que B pudo haber adquirido el mensaje cifrado sería 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. Además, 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 validación: uso de rpm de LINUX Para comprobar la firma digital la aplicación rpm de instalación de paquetes en algunas distribuciones de Linux posee la opción checksig: rpm checksig X.i386.rpm siendo X.i386.rpm el paquete a instalar. Esta opción en rpm permite comprobar la integridad del paquete y el origen. La integridad se comprueba con la firma basada con md5. La comprobación del origen (validación) se realiza con la clave pública de GNU (si se dispone). Si no disponemos de dicha firma, la comprobación 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 pública del dicha identidad, atributos varios y compendio de dicha información:
DCA(identidad, clave, atributos, compendio{identidad, clave, atributos})
61 Definiciones: Certificado digital (1/2) El certificado digital es un vínculo entre una clave pública y una identidad de usuario, que se consigue mediante una firma digital por una tercera parte o autoridad de certificación que hace pública su clave pública en la que TODOS confían. Por tanto, el certificado se considera como un objeto firmado con la clave privada de la autoridad de cerificación, e incluyendo: identidad del usuario, clave, periodo de validez, identidad emisor, … La autoridad de certificación (CA: Certificacion Authority o Autoridad de Certificación) 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 certificación, si no con un intermediario o autoridad de registro. La Fábrica Nacional de Moneda y Timbre (FNMT) es una CA.
62 Definiciones: Certificado digital (2/2) El certificado raíz es un certificado emitido de la CA para sí misma con su clave pública, 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 inequívoca 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 pública la clave privada de un usuario) y por tanto cualquier firma emitida con posterioridad a la revocación no tiene validez. Este documento también es firmado por la propia CA.
63 Ejemplo de certificados raíz en un navegador
64 Certificados X509v3 (1/2) X.509 es el protocolo que se utiliza para certificar las claves públicas, 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 criptografía asimétrica y firma digital Se emplea para autentificar la información en redes externas y en redes internas y en el correo electrónico. La autenticación se realiza mediante el uso de certificados.
Un certificado contiene: el nombre de la CA, el nombre del usuario, la clave pública del usuario y cualquier otra información como puede ser el tiempo de validez El certificado se cifra con la clave privada de la CA. Todos los usuarios poseen la clave pública del CA.
65 Certificados X509v3 (2/2) Los campos del X.509 escritos en ASN1 son: Versión: La del protocolo X.509 (actualmente versión 3) Número de serie: Es un número 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 certificación (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 pública: Es la clave del usuario. Identificador único del CA: Es el número que identifica a la CA. Es único en el mundo. Identificador único del usuario: Es el número que identifica al usuario para todos sus certificados. Extensiones: Si hay extensiones de la información Firma de la CA: Firma todos los campos anteriores empleando, para ello un compendio del certificado y luego cifrado con su clave privada.
66 En muchas ocasiones no se dispone ni de Autoridades de Certificación ni de Registro. Una solución tomada estriba en la confianza de los propios usuarios entre ellos. Por ejemplo, si Juan confía plenamente en Luis y Luis ha aceptado la identificación de Pedro, Juan podría inicialmente aceptar a Pedro, porque Luis es de su confianza.
Comentario: En una red de confianza, una identificación (clave nueva) se considerará válida si viene firmada por suficientes claves válidas. Por ejemplo, PGP en correo seguro lo utiliza. Redes de confianza
Página anterior | Volver al principio del trabajo | Página siguiente |