Autentificación. Firma Digital

12 

Loading....

Loading....

Loading....

Loading....

Loading....

Texto completo

(1)

Juan Tena Ayuso

1

Introducci´

on

En el ´ambito de la seguridad de las telecomunicaciones, junto al cl´asico requisito criptogr´afico de la privacidad o confidencialidad, se plantean tambi´en los de autenticidaddel emisor (au-tenticidad de origen o de usuario) y de no falsificaci´on o alteraci´on del mensaje (autenticidad o integridaddel mensaje).

En efecto, adem´as del ataque criptoanal´ıtico habitual, en el cual el criptoanalista rival intercepta la comunicaci´on y trata de ‘descifrar’ su contenido (ataque pasivo), aquel puede intentar hacerse pasar por qui´en no es, digamosB, entablando comunicaci´on con otro usuario A. Por tanto, cuando A recibe un mensaje que pretende ser de B, necesita una forma de garantizar que realmente es B quien lo env´ıa.

Una tal identificaci´on del usuario puede ser directa, comprobando una caracter´ıstica propia de aquel, o indirecta, cuando el usuario demuestra estar en posesi´on de una pieza secreta de informaci´on (suele tomar la forma deDesafio-Respuesta: se plantea una cuesti´on a la que s´olo el usuario leg´ıtimo puede responder).

El atacante puede tambi´en alterar, o substituir por otro, un mensaje enviado por B

a A. Los protocolos de autentificaci´on del mensaje tratan de garantizar la integridad del mensaje.

Ambos problemas, autentificaci´on de usuario e integridad del mensaje, est´an estrecha-mente relacionados y la Criptograf´ıa de Clave P´ublica permite dar una soluci´on simple y satisfactoria a los mismos. De hecho esta fue (junto con el problema de la distribuci´on de llaves), una de las razones que llevaron a Diffie y Hellman a la introducci´on de dicha Criptograf´ıa.

La firma digital, en tanto que an´alogo criptogr´afico de la firma ordinaria, puede consi-derarse un caso particular de autentificaci´on. Sin embargo presenta caracteristicas propias y una importancia creciente (que desborda el ´ambito criptogr´afico) lo que hace conveniente un tratamiento diferenciado.

2

etodos de Autentificaci´

on

Antes de abordar de manera general el problema, consideremos un caso particular, que mostrar´a como pueden garantizarse los objetivos mencionados de autenticidad de usuario e integridad del mensaje utilizando el criptosistema RSA (ver [3], en este mismo volumen).

El remitente j, que desea autentificar un mensaje M, enviado a i, cifra este con su propia llave privadadj (en lugar de hacerlo con la p´ublica del destinatario, como en el caso

(2)

en que el objetivo buscado era la confidencialidad de M). A la recepci´on, i descifra con la llave p´ublica de j y recupera Mdjej M (mod n

j)

La autenticidad del remitente es evidente, porque solo j ha podido cifrar tal mensaje. La integridad del mensaje queda asimismo garantizada, porque puede probarse que la pro-babilidad de que un falso mensaje se descodifique correctamente con la clave p´ublica de j

es pr´acticamente nula.

El proceso anterior queda ‘ilustrado’ en la figura siguiente en la que el uso del RSA se representa mediante una caja fuerte con dos llaves.

El esquema de autentificaci´on, descrito anteriormente, no proporciona sin embargo se-creto (ya que cualquiera puede tener acceso a la clave p´ublica dej y por tanto puede leerlo). Si se desea conjugar ambos aspectos puede cifrarse dos veces, seg´un el esquema siguiente: supongamosj, con claves (nj, ej, dj) desea enviarM ai, con claves (ni, ei, di). Distingamos (por razones t´ecnicas) dos casos:

• Sini < nj, M se cifra como [Mei(modni)] dj (modnj) • Sinj < ni, M se cifra como Mdj(modn j) ei (modni) El proceso se representa en la figura de la p´agina siguiente.

Planteemos ahora el problema de la autentificaci´on de manera general. Los procesos de autentificaci´on constituyen un tipo particular de una amplia gama de aplicaciones crip-togr´aficas que reciben el nombre gen´erico de Protocolos Criptogr´aficos (ver [9], para otros tipos de protocolos).

(3)

Objetivos de un protocolo de autentificaci´

on de usuario

1. Debe permitir a una parte A demostrar a otra B su identidad.

2. Tras un protocolo de autentificaci´on entre A y B, este ´ultimo no debe poder utilizar la informaci´on obtenida de A para suplantarlo ante C.

3. La probabilidad de que C, ejecutando el protocolo, pueda conseguir ser aceptado por

B como A es despreciable.

Un tal protocolo utiliza, como herramientas, diversas funciones criptogr´aficas. Podemos clasificarlas en tres tipos:

• Cifrado: El remitente y/o el mensaje se autentifican con un algoritmo de cifrado. 1. Con clave privada: Proporcionan autentificaci´on impl´ıcita: si el receptor del

men-saje, al descifrar con la llave que comparte con quien dice enviarselo, obtiene un mensaje con sentido sabe que la probabilidad de que un atacante, sin acceso a la llave, haya podido crear un falso mensaje cifrado es pr´acticamente nula (tal hecho est´a basado en la redundancia de los lenguajes naturales, ver [8]).

2. Con clave p´ublica: El mensaje, cifrado con la llave privada del remitente, garan-tiza la autenticidad de origen y de contenido. Es el caso del ejemplo antes descrito con el algoritmo RSA.

(4)

• MAC (Message Authentication Codes)

Definici´on 2.1. Un MAC es un bloque de de tama˜no fijo Ck(M), obtenido a partir de un mensaje M, de cualquier longitud y k una llave secreta compartida por dos usuariosA, B, el cual se adjunta al mensaje: (M, Ck(M)).

Ejemplo 2.2. El Data Authentication Algorithm, basado en DES, obtiene un MAC de 64 bits, ver [4].

• Funciones hash o funciones resumen

Definici´on 2.3. Una funci´on hash es una funci´on de una v´ıa, p´ublicamente conocida (a diferencia del MAC no utiliza ninguna llave) que produce, a partir de un mensaje

M de longitud variable, un bloque H(M) de longitud fija

Requerimientos de una funci´on hash

1. h=H(M) debe ser f´acil de computar.

2. Conocido h debe ser computacionalmente imposible encontrar un M tal que

H(M) = h.

3. Dado M debe ser computacionalmente imposible encontrar un mensaje M0 6=M

tal que H(M0) = H(M). Si adem´as se verifica,

4. Es computacionalmente imposible encontrar dos mensajes (M, M0) tales que

H(M) = H(M0), se habla de funci´on hash fuerte (permite evitar ataques basados en la denominadaparadoja del cumplea˜nos, ver [6])

Ejemplo 2.4. Diferentes modelos de funciones hash han sido propuestos. Los m´as conocidos actualmente son el SHA (Secure Hash Algorithm) y el MD5 (Message Digest 5), que producen un comprimido de 128 bits del mensaje. Ver [7] o [4].

Nota 2.5. Las funciones hash constituyen una herramienta importante en Criptograf´ıa (por ejemplo constituyen un ingrediente fundamental de la firma digital, como veremos m´as adelante) y en otras ramas.

Protocolos de Desaf´ıo-Respuesta

Definici´on 2.6. Son protocolos que demuestran la identidad de una parte A a otra B (el verificador), demostrando la posesi´on de un cierto secreto (sin revelar este). Para elloAdebe proporcionar una respuesta a un cierto desaf´ıo planteado por el verificador. Habitualmente tal respuesta debe ser dada en un plazo determinado. De no hacerlo as´ı B considerar´a terminado el protocolo y fallida la autentificaci´on.

(5)

Desaf´ıo-Respuesta con clave p´ublica

Aunque existen protocolos basados en t´ecnicas simetricas, como el Kerberos (ver [7]) nos limitamos aqu´ı al caso de clave p´ublica. Supondremos pues queA posee un par de llaves (CA, DA). Para identificarse demuestra al verificador B que posee su llave privada DA (sin revelar esta).

1. Descifrando un desaf´ıo cifrado con su llave p´ublica: Para ello B env´ıa a A: (IB, e =

CA(r)) donde IB es el identificador de B, r un n´umero aleatorio, y e es el desaf´ıo propiamente dicho.

A debe descifrare utilizando su clave privada, recuperar r y enviarlo aB (en el plazo preestablecido).

B acepta la identificaci´on si el n´umero recibido coincide con el r enviado.

2. Firmando un desaf´ıo con su llave privada: En este caso B env´ıa aA: (IB, rB), con rB aleatorio. A construye y env´ıa el vector (rA, IB, DA(rA, rB, IB).

B descifrar´a la ´ultima componente (utilizando la clave p´ublica deA), comprobar´a que los IB y rA que obtiene coinciden con los que estaban en claro en las dos primeras componentes y que rB coincide con el que envi´o.

Protocolos de Conocimiento Cero

En los protocolos de desaf´ıo-respuesta, aunque A no revela el secreto, en el proceso cierta informaci´on puede ser conseguida por B.

Definici´on 2.7. Una prueba de conocimiento cero permite a una persona demostrar a otra que posee un secreto, sin que esta ´ultima pueda obtener en el proceso ninguna informaci´on que no hubiese podido obtener por si sola.

Nota 2.8. Nos limitaremos aqu´ı al uso de las pruebas de conocimiento cero en los protocolos de autentificaci´on, aunque el tema sea m´as amplio, ver [6] o [5].

Las pruebas de conocimiento cero adoptan la forma de una demostraci´on interactiva, implicando un cierto n´umero de etapas. En cada etapa:

• B presenta un desaf´ıo a A.

• A realiza una cierta computaci´on privada.

• A env´ıa aB una respuesta al desaf´ıo planteado.

Si alguna de las respuestas es incorrectaB considera queA no posee el secreto y rechaza su autenticidad. Por contra si todas son correctas la acepta.

(6)

Condiciones de una prueba de conocimiento cero:

a) Si A posee el secreto siempre puede conseguir que B acepte su demostraci´on.

b) SiAno posee el secreto la probabilidad de que enga˜ne aB puede hacerse tan peque˜na como se quiera.

Veamos un par de protocolos de autentificaci´on basados en pruebas de conocimiento cero.

Protocolo de identificaci´

on de Fiat-Shamir

Requerimientos previos:

1. Una tercera parte confiable T ha elegido y hecho p´ublico n = pq, p, q primos, guardando p, q secretos.

2. A elige el secreto s, 1 ≤ s ≤ n−1 y computa v = s2 (mod n), que registra con T

como llave p´ublica.

Algoritmo 2.9. Consta det rondas (por ejemplo t=50) cada una implicando 3 intercambios de mensajes.

1. A elige aleatoriamenter, 1≤r≤n−1 y env´ıa a V el testigo x=r2 (mod n).

2. V elige y env´ıa aA, e∈ {0,1}.

3. A computa y env´ıa a V:

y=r, si e= 0.

y=rs, si e = 1.

4. Si y= 0, V rechaza la prueba (r 6= 0). Caso contrario la acepta si y solo si y2 xve (mod n).

Nota 2.10. Un adversario impersonando A puede enviar a V, x = r2/v. Podr´ıa entonces

responder (correctamente)y=r sie = 1, pero no sie= 0. Luego tendr´ıa una probabilidad 1/2 de acierto en cada ronda.

(7)

Protocolo de identificaci´

on de Schnorr

Basado en el problema del logaritmo discreto. Requiere solo tres intercambios de men-sajes.

Requerimientos previos:

1. Una tercera parte confiable T ha elegido:

a1) p primo,q primo, q|p−1, (p∼21024, q∼2160). a2) 1≤β≤p−1 de orden q (mod p)

a3) Cada participante posee copia autentificada de (p, q, β) a4) Un par´ametro de seguridad t, t≥40, 2t < q.

2. Par´ametros de A, b1) IdentificadorIA

b2) Llave privada 0≤a≤q−1 b3) Llave p´ublica v =β−a (mod p)

b4) Certificado emitido por T: CertA= (IA, v, DT(IA, v)) (DT llave privada de T).

Algoritmo 2.11.

1. A elige aleatoriamenter, 1≤r≤q−1 y env´ıa a V: CertA, x≡βr (mod p).

2. Tras verificar la llave p´ublica de A, V elige y env´ıa a A, 1 ≤e≤2t.

3. A env´ıa aV, y≡ae+r (mod q).

4. V acepta la identidad de A si z ≡βyve (mod p) =x.

3

Firma Digital

El desarrollo del comercio electr´onico y de los requerimientos de autentificaci´on, hacen nece-sario un an´alogo electr´onico de la firma ordinaria, incluso con valor legal, para zanjar disputas respecto a la autenticidad de documentos transmitidos electr´onicamente.

Ello confiere a la firma digital obvias implicaciones econ´omicas, pero tambi´en legislativas y jur´ıdicas, como lo muestra el inter´es reciente del mundo del derecho por el tema y la legislaci´on a la que ha dado lugar: Real Decreto-ley de firma electr´onica de 17/9/1999, LSSI, directivas europeas, etc.

La firma electr´onica debe tener pues una serie de propiedades formalmente an´alogas a las de la firma escrita ordinaria. En particular:

(8)

• Personal: Solo el propietario puede producirla.

• Infalsificable: El intento, por parte de un usuario ilegal, de falsificar tal firma debe ser computacionalmente imposible.

• F´acil de Autentificar: El receptor y eventualmente un arbitro o juez, deben ser capaces de atestiguar, la autor´ıa de la firma.

• No repudiaci´on: El autor de la firma no debe tener la posibilidad de rechazarla como falsa.

• F´acil de Generar.

Nota 3.1. Sin embargo, a diferencia de la firma ordinaria, que es siempre la misma, la firma digital depende del mensaje particular firmado. Se trata de un requisito de seguridad ya que si la firma fuese independiente del mensaje y a˜nadida a este, un criptoanalista que intercepte un tal mensaje firmado, puede substituir el mensaje propiamente dicho por otro falso, pero conservando la firma final. Tal falsificaci´on tendr´ıa entonces la garant´ıa de una firma leg´ıtima.

Un esquema de firma digital comporta dos partes: 1. Algoritmo de firma

2. Algoritmo de verificaci´on de la firma El algoritmo de firma puede ser,

Definici´on 3.2.

Determinista: Dos firmas del mismo mensaje producen el mismo resultado (por ejemplo las firmas basadas en RSA).

Aleatoria: dependiente de un conjunto de ´ındices (por ejemplo las basadas en ElGamal). Por otra parte existen dos tipos fundamentales de esquemas de firma,

Definici´on 3.3.

Esquema de firma con recuperaci´on del mensaje: El mensaje firmado se recupera durante el proceso de verificaci´on de la firma. Es el proceso esquematizado al comienzo de la secci´on de autentificaci´on.

Esquema de firma con ap´endice: Requieren el mensaje original como input para la verificaci´on de la firma.

(9)

Las firmas con recuperaci´on del mensaje tienen el inconveniente de tener que cifrar (dos veces si se desea garantizar secreto y autenticidad) todo el mensaje a autentificar, el cual puede ser muy largo, con clave p´ublica (que es muy lenta).

En consecuencia, para firmar un mensaje, habitualmente se obtiene previamente un comprimido de peque˜no tama˜no del mensaje, que es lo que se cifra para obtener la firma.

Tales comprimidos se obtienen utilizando las funciones hash anteriormente descritas. Un protocolo de firma digital con ap´endice de un mensaje M (eventualmente cifrado previamente, por ejemplo con clave privada, para garantizar el secreto) ser´ıa como sigue:

Algoritmo 3.4.

1. Obtener el comprimido hashH(M) y su firmaF(H(M)) (obtenida con la llave privada del remitente, por ejemplo la llave privada de RSA).

2. Enviar el par (M, F(H(M))).

3. El receptor calcula H(M) por dos caminos: a partir del primer elemento del par y de la funci´on (p´ublicamente conocida) H y a partir del segundo elemento (aplic´andole la llave p´ublica del remitente).

4. El receptor compara los dos valores de H(M) obtenidos, aceptando el mensaje si coinciden y rechaz´andolo en caso contrario.

5. Eventualmente, siM estaba previamente cifrado, el receptor lo descifrar´a para obtener el mensaje en claro.

Tipos de ataques

El objetivo para un atacante a un proceso de firma digital es forjar firmas que sean aceptadas como v´alidas. Seg´un el ´ambito de tales falsificaciones se habla de:

1. Rotura total: El atacante posee un algoritmo de firma funcionalmente equivalente al aut´entico.

2. Rotura selectiva: El atacante es capaz de forjar una firma para un tipo particular de mensaje.

3. Rotura existencial: El atacante es capaz de forjar una firma para al menos un mensaje.

(10)

Para m´as detalles ver [4].

Aunque diversos protocolos de firma basados en la Criptograf´ıa de clave privada han sido propuestos (como por ejemplo el esquema de Lamport-Diffie, ver [5]) la Criptograf´ıa de clave p´ublica permite resolver mucho m´as eficientemente el problema. Dado que el proceso de firma con RSA ha sido ya esquematizado veamos dos esquemas de firma basadas en el problema del logaritmo discreto.

Firma digital de ElGamal

Requerimientos previos:

1. Se ha elegido un primo adecuado p (con p ∼ 200 bits) y un elemento primitivo g

(generador del grupo multiplicativo Fp∗).

2. El firmante elige una llave secreta n, 1< n < p−1 y hace p´ublica K ≡gn modp.

Algoritmo 3.5. Para firmar un mensaje M (o el comprimido hash del mismo h(M)) 1. Se elige aleatoriamente un n´umerok, mcd(k, p−1) = 1 y se computa X≡gk modp.

2. Se despeja Y de la congruenciaM ≡nX+kY modp−1.

3. Firma: (M, f(M) =X, Y)

4. Verificaci´on de la firma: Sea A ≡ KXXY. La firma se acepta como v´alida si A

gM modp.

Esquemas DSA y DSS

En 1991 el USA National Institute of Standards and Technology (NIST) propuso el algoritmo DSA (Digital Signature Algorithm). El DSA fue adoptado como standard DSS (Digital Signature Standard). Tal standard utiliza como funci´on hash el SHA-1.

Requerimientos previos:

1. Con el objetivo de reducir la longitud de la firma (y por tanto el coste computacional de su generaci´on y verificaci´on) se eligen dos primos: p con 512 bits y q con 160 bits y divisor de p−1. Se elige tambi´en un elementog ∈Fp de orden q.

2. El firmante elige una llave secreta n, 1< n < q y hace p´ublica K ≡gn modp.

Algoritmo 3.6. Para firmar un mensaje M, 1< M < p

(11)

2. Se computan r ≡[gk modp] modq y s M+nr

k modq. 3. Firma: (M,f(M)=r,s).

4. Verificaci´on de la firma: Sean w≡s−1 modq, uM w modq y v rwmodq.

La firma se acepta como v´alida sir ≡[guKv modp] modq.

Tipos particulares de Firmas Digitales

Existen tipos de firmas digitales con propiedades o requerimientos particulares. Esque-maticemos brevemente algunas de tales firmas. M´as detalles pueden encontrarse en [4] o [6].

Firmas de un solo uso: Solo pueden ser empleadas una vez. Tienen la ventaja de su bajo coste computacional, lo que las hace indicadas para plataformas como las tarjetas inteligentes.

Firmas en presencia de arbitro: Una tercera parte confiable participa en los procesos de firma y de verificaci´on.

Firmas ciegas: Permiten a una parteA conseguir que otraB (una cierta autoridad) firme un mensaje M sin que en el proceso B pueda conocer el contenido de M.

Firmas no repudiables (undeniables): El proceso de verificaci´on requiere la partici-paci´on activa del firmante. Si este rehusa hacerlo puede interpretarse comoculpabilidad. Si realiza la verificaci´on incorrectamente o bien tr´as el protocolo declara que la firma no es suyo, existe un segundo protocolo de desacuerdo.

Firmas Fail-Stop: Permiten a A probar que una firma, supuestamente suya, es falsa.

Firmas de Grupo: Pueden ser realizadas por cada miembro de un cierto grupo de per-sonas.

Bibliograf´ıa

[1] P. Alegr´ıa, M.A. Garc´ıa, I. Martinez, J. Tena, A. Vera, Aplicaciones de las Matem´aticas. Editorial Antonio Vera, 2002.

[2] A. Fuster, D. de la Gu´ıa, L. Hernandez, F.Montoya, J.Mu˜noz, T´ecnicas Criptogr´aficas de protecci´on de datos. Ed. Ra-Ma, 1997.

[3] J. Guti´errez, A. Ibeas,Criptograf´ıa.Protocolos Criptogr´aficos y Seguridad en Redes. (Eds. J. Gutierrez, T. Ayuso), Servicio de Publicaciones Universidad de Cantabria, 2003.

(12)

[4] A.J. Menezes, P.C van Oorschot, S.A. Vanstone,Handbook of Applied Cryptography. C.R.C., 1997.

[5] J. Pastor, M.A. Sarasa, Criptograf´ıa Digital. Fundamentos y Aplicaciones. Prensas de la U. de Zaragoza, 1997.

[6] B. Schneider, Applied Criptography. J. Wiley, 1994.

[7] W. Stalling, Cryptography and Network Security. Prentice Hall, 1998. [8] D.R. Stinson, Cryptography. Theory and Practice, C.R.C., 1995.

[9] J. Tena, Protocolos Criptogr´aficos. Protocolos Criptogr´aficos y Seguridad en Redes. (Eds. J. Gutierrez, T. Ayuso), Servicio de Publicaciones Universidad de Cantabria, 2003.

Figure

Actualización...

Referencias

Actualización...

Related subjects :