autentificación-firma digital

12

Click here to load reader

Upload: jcfarit

Post on 13-Jun-2015

317 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Autentificación-Firma Digital

Autentificacion. Firma Digital

Juan Tena Ayuso

1 Introduccion

En el ambito de la seguridad de las telecomunicaciones, junto al clasico requisito criptograficode la privacidad o confidencialidad, se plantean tambien los de autenticidad del emisor (au-tenticidad de origen o de usuario) y de no falsificacion o alteracion del mensaje (autenticidado integridad del mensaje).

En efecto, ademas del ataque criptoanalıtico habitual, en el cual el criptoanalista rivalintercepta la comunicacion y trata de ‘descifrar’ su contenido (ataque pasivo), aquel puedeintentar hacerse pasar por quien no es, digamos B, entablando comunicacion con otro usuarioA. Por tanto, cuando A recibe un mensaje que pretende ser de B, necesita una forma degarantizar que realmente es B quien lo envıa.

Una tal identificacion del usuario puede ser directa, comprobando una caracterısticapropia de aquel, o indirecta, cuando el usuario demuestra estar en posesion de una piezasecreta de informacion (suele tomar la forma de Desafio-Respuesta: se plantea una cuestiona la que solo el usuario legıtimo puede responder).

El atacante puede tambien alterar, o substituir por otro, un mensaje enviado por Ba A. Los protocolos de autentificacion del mensaje tratan de garantizar la integridad delmensaje.

Ambos problemas, autentificacion de usuario e integridad del mensaje, estan estrecha-mente relacionados y la Criptografıa de Clave Publica permite dar una solucion simple ysatisfactoria a los mismos. De hecho esta fue (junto con el problema de la distribucionde llaves), una de las razones que llevaron a Diffie y Hellman a la introduccion de dichaCriptografıa.

La firma digital, en tanto que analogo criptografico de la firma ordinaria, puede consi-derarse un caso particular de autentificacion. Sin embargo presenta caracteristicas propiasy una importancia creciente (que desborda el ambito criptografico) lo que hace convenienteun tratamiento diferenciado.

2 Metodos de Autentificacion

Antes de abordar de manera general el problema, consideremos un caso particular, quemostrara como pueden garantizarse los objetivos mencionados de autenticidad de usuario eintegridad 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 supropia llave privada dj (en lugar de hacerlo con la publica del destinatario, como en el caso

Page 2: Autentificación-Firma Digital

180 Juan Tena Ayuso

en que el objetivo buscado era la confidencialidad de M). A la recepcion, i descifra con lallave publica de j y recupera Mdjej ≡ M (mod nj)

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 publica de jes practicamente nula.

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

El esquema de autentificacion, descrito anteriormente, no proporciona sin embargo se-creto (ya que cualquiera puede tener acceso a la clave publica de j y por tanto puede leerlo).Si se desea conjugar ambos aspectos puede cifrarse dos veces, segun el esquema siguiente:supongamos j, con claves (nj, ej, dj) desea enviar M a i, con claves (ni, ei, di). Distingamos(por razones tecnicas) dos casos:

• Si ni < nj, M se cifra como [M ei(modni)]dj (modnj)

• Si nj < ni, M se cifra como[Mdj(modnj)

]ei (modni)

El proceso se representa en la figura de la pagina siguiente.

Planteemos ahora el problema de la autentificacion de manera general. Los procesosde autentificacion constituyen un tipo particular de una amplia gama de aplicaciones crip-tograficas que reciben el nombre generico de Protocolos Criptograficos (ver [9], para otrostipos de protocolos).

Page 3: Autentificación-Firma Digital

Autentificacion. Firma Digital 181

Objetivos de un protocolo de autentificacion de usuario

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

2. Tras un protocolo de autentificacion entre A y B, este ultimo no debe poder utilizarla informacion obtenida de A para suplantarlo ante C.

3. La probabilidad de que C, ejecutando el protocolo, pueda conseguir ser aceptado porB como A es despreciable.

Un tal protocolo utiliza, como herramientas, diversas funciones criptograficas. Podemosclasificarlas en tres tipos:

• Cifrado: El remitente y/o el mensaje se autentifican con un algoritmo de cifrado.

1. Con clave privada: Proporcionan autentificacion implıcita: si el receptor del men-saje, al descifrar con la llave que comparte con quien dice enviarselo, obtiene unmensaje con sentido sabe que la probabilidad de que un atacante, sin acceso ala llave, haya podido crear un falso mensaje cifrado es practicamente nula (talhecho esta basado en la redundancia de los lenguajes naturales, ver [8]).

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

Page 4: Autentificación-Firma Digital

182 Juan Tena Ayuso

• MAC (Message Authentication Codes)

Definicion 2.1. Un MAC es un bloque de de tamano fijo Ck(M), obtenido a partirde un mensaje M , de cualquier longitud y k una llave secreta compartida por dosusuarios A, B, el cual se adjunta al mensaje: (M, Ck(M)).

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

• Funciones hash o funciones resumen

Definicion 2.3. Una funcion hash es una funcion de una vıa, publicamente conocida(a diferencia del MAC no utiliza ninguna llave) que produce, a partir de un mensajeM de longitud variable, un bloque H(M) de longitud fija

Requerimientos de una funcion hash

1. h = H(M) debe ser facil de computar.

2. Conocido h debe ser computacionalmente imposible encontrar un M tal queH(M) = h.

3. Dado M debe ser computacionalmente imposible encontrar un mensaje M ′ 6= Mtal que H(M ′) = H(M).

Si ademas se verifica,

4. Es computacionalmente imposible encontrar dos mensajes (M, M ′) tales queH(M) = H(M ′), se habla de funcion hash fuerte (permite evitar ataques basadosen la denominada paradoja del cumpleanos, ver [6])

Ejemplo 2.4. Diferentes modelos de funciones hash han sido propuestos. Los masconocidos actualmente son el SHA (Secure Hash Algorithm) y el MD5 (Message Digest5), 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 veremosmas adelante) y en otras ramas.

Protocolos de Desafıo-Respuesta

Definicion 2.6. Son protocolos que demuestran la identidad de una parte A a otra B (elverificador), demostrando la posesion de un cierto secreto (sin revelar este). Para ello A debeproporcionar una respuesta a un cierto desafıo planteado por el verificador. Habitualmentetal respuesta debe ser dada en un plazo determinado. De no hacerlo ası B consideraraterminado el protocolo y fallida la autentificacion.

Page 5: Autentificación-Firma Digital

Autentificacion. Firma Digital 183

Desafıo-Respuesta con clave publica

Aunque existen protocolos basados en tecnicas simetricas, como el Kerberos (ver [7])nos limitamos aquı al caso de clave publica. Supondremos pues que A posee un par de llaves(CA, DA). Para identificarse demuestra al verificador B que posee su llave privada DA (sinrevelar esta).

1. Descifrando un desafıo cifrado con su llave publica: Para ello B envıa a A : (IB, e =CA(r)) donde IB es el identificador de B, r un numero aleatorio, y e es el desafıopropiamente dicho.

A debe descifrar e utilizando su clave privada, recuperar r y enviarlo a B (en el plazopreestablecido).

B acepta la identificacion si el numero recibido coincide con el r enviado.

2. Firmando un desafıo con su llave privada: En este caso B envıa a A : (IB, rB), con rB

aleatorio. A construye y envıa el vector (rA, IB, DA(rA, rB, IB).

B descifrara la ultima componente (utilizando la clave publica de A), comprobara quelos IB y rA que obtiene coinciden con los que estaban en claro en las dos primerascomponentes y que rB coincide con el que envio.

Protocolos de Conocimiento Cero

En los protocolos de desafıo-respuesta, aunque A no revela el secreto, en el procesocierta informacion puede ser conseguida por B.

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

Nota 2.8. Nos limitaremos aquı al uso de las pruebas de conocimiento cero en los protocolosde autentificacion, aunque el tema sea mas amplio, ver [6] o [5].

Las pruebas de conocimiento cero adoptan la forma de una demostracion interactiva,implicando un cierto numero de etapas. En cada etapa:

• B presenta un desafıo a A.

• A realiza una cierta computacion privada.

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

Si alguna de las respuestas es incorrecta B considera que A no posee el secreto y rechazasu autenticidad. Por contra si todas son correctas la acepta.

Page 6: Autentificación-Firma Digital

184 Juan Tena Ayuso

Condiciones de una prueba de conocimiento cero:

a) Si A posee el secreto siempre puede conseguir que B acepte su demostracion.

b) Si A no posee el secreto la probabilidad de que engane a B puede hacerse tan pequenacomo se quiera.

Veamos un par de protocolos de autentificacion basados en pruebas de conocimientocero.

Protocolo de identificacion de Fiat-Shamir

Requerimientos previos:

1. Una tercera parte confiable T ha elegido y hecho publico 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 Tcomo llave publica.

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

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

2. V elige y envıa a A, 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 entoncesresponder (correctamente) y = r si e = 1, pero no si e = 0. Luego tendrıa una probabilidad1/2 de acierto en cada ronda.

Page 7: Autentificación-Firma Digital

Autentificacion. Firma Digital 185

Protocolo de identificacion 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 parametro de seguridad t, t ≥ 40, 2t < q.

2. Parametros de A,

b1) Identificador IA

b2) Llave privada 0 ≤ a ≤ q − 1

b3) Llave publica 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 aleatoriamente r, 1 ≤ r ≤ q − 1 y envıa a V : CertA, x ≡ βr (mod p).

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

3. A envıa a V , 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 electronico y de los requerimientos de autentificacion, hacen nece-sario un analogo electronico de la firma ordinaria, incluso con valor legal, para zanjar disputasrespecto a la autenticidad de documentos transmitidos electronicamente.

Ello confiere a la firma digital obvias implicaciones economicas, pero tambien legislativasy jurıdicas, como lo muestra el interes reciente del mundo del derecho por el tema y lalegislacion a la que ha dado lugar: Real Decreto-ley de firma electronica de 17/9/1999, LSSI,directivas europeas, etc.

La firma electronica debe tener pues una serie de propiedades formalmente analogas alas de la firma escrita ordinaria. En particular:

Page 8: Autentificación-Firma Digital

186 Juan Tena Ayuso

• Personal: Solo el propietario puede producirla.

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

• Facil de Autentificar: El receptor y eventualmente un arbitro o juez, deben sercapaces de atestiguar, la autorıa de la firma.

• No repudiacion: El autor de la firma no debe tener la posibilidad de rechazarla comofalsa.

• Facil de Generar.

Nota 3.1. Sin embargo, a diferencia de la firma ordinaria, que es siempre la misma, la firmadigital depende del mensaje particular firmado. Se trata de un requisito de seguridad yaque si la firma fuese independiente del mensaje y anadida a este, un criptoanalista queintercepte un tal mensaje firmado, puede substituir el mensaje propiamente dicho por otrofalso, pero conservando la firma final. Tal falsificacion tendrıa entonces la garantıa de unafirma legıtima.

Un esquema de firma digital comporta dos partes:

1. Algoritmo de firma

2. Algoritmo de verificacion de la firma

El algoritmo de firma puede ser,

Definicion 3.2.

Determinista: Dos firmas del mismo mensaje producen el mismo resultado (por ejemplolas 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,

Definicion 3.3.

Esquema de firma con recuperacion del mensaje: El mensaje firmado se recuperadurante el proceso de verificacion de la firma. Es el proceso esquematizado al comienzode la seccion de autentificacion.

Esquema de firma con apendice: Requieren el mensaje original como input para laverificacion de la firma.

Page 9: Autentificación-Firma Digital

Autentificacion. Firma Digital 187

Las firmas con recuperacion del mensaje tienen el inconveniente de tener que cifrar (dosveces si se desea garantizar secreto y autenticidad) todo el mensaje a autentificar, el cualpuede ser muy largo, con clave publica (que es muy lenta).

En consecuencia, para firmar un mensaje, habitualmente se obtiene previamente uncomprimido de pequeno tamano 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 apendice de un mensaje M (eventualmente cifradopreviamente, por ejemplo con clave privada, para garantizar el secreto) serıa como sigue:

Algoritmo 3.4.

1. Obtener el comprimido hash H(M) y su firma F (H(M)) (obtenida con la llave privadadel 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 dela funcion (publicamente conocida) H y a partir del segundo elemento (aplicandole lallave publica del remitente).

4. El receptor compara los dos valores de H(M) obtenidos, aceptando el mensaje sicoinciden y rechazandolo en caso contrario.

5. Eventualmente, si M estaba previamente cifrado, el receptor lo descifrara para obtenerel mensaje en claro.

Tipos de ataques

El objetivo para un atacante a un proceso de firma digital es forjar firmas que seanaceptadas como validas. Segun el ambito de tales falsificaciones se habla de:

1. Rotura total: El atacante posee un algoritmo de firma funcionalmente equivalente alautentico.

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

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

Page 10: Autentificación-Firma Digital

188 Juan Tena Ayuso

Para mas detalles ver [4].

Aunque diversos protocolos de firma basados en la Criptografıa de clave privada hansido propuestos (como por ejemplo el esquema de Lamport-Diffie, ver [5]) la Criptografıa declave publica permite resolver mucho mas eficientemente el problema. Dado que el procesode firma con RSA ha sido ya esquematizado veamos dos esquemas de firma basadas en elproblema 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 F ∗

p ).

2. El firmante elige una llave secreta n, 1 < n < p− 1 y hace publica K ≡ gn mod p.

Algoritmo 3.5. Para firmar un mensaje M (o el comprimido hash del mismo h(M))

1. Se elige aleatoriamente un numero k, mcd(k, p− 1) = 1 y se computa X ≡ gk mod p.

2. Se despeja Y de la congruencia M ≡ nX + kY mod p− 1.

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

4. Verificacion de la firma: Sea A ≡ KXXY . La firma se acepta como valida si A ≡gM mod p.

Esquemas DSA y DSS

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

Requerimientos previos:

1. Con el objetivo de reducir la longitud de la firma (y por tanto el coste computacionalde su generacion y verificacion) se eligen dos primos: p con 512 bits y q con 160 bitsy divisor de p− 1. Se elige tambien un elemento g ∈ Fp de orden q.

2. El firmante elige una llave secreta n, 1 < n < q y hace publica K ≡ gn mod p.

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

1. Se elige aleatoriamente un numero k, 1 < k < q).

Page 11: Autentificación-Firma Digital

Autentificacion. Firma Digital 189

2. Se computan r ≡ [gk mod p] mod q y s ≡ M+nrk

mod q.

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

4. Verificacion de la firma: Sean w ≡ s−1 mod q, u ≡ Mw mod q y v ≡ rw mod q.

La firma se acepta como valida si r ≡ [guKv mod p] mod q.

Tipos particulares de Firmas Digitales

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

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

Firmas en presencia de arbitro: Una tercera parte confiable participa en los procesosde firma y de verificacion.

Firmas ciegas: Permiten a una parte A conseguir que otra B (una cierta autoridad) firmeun mensaje M sin que en el proceso B pueda conocer el contenido de M .

Firmas no repudiables (undeniables): El proceso de verificacion requiere la partici-pacion activa del firmante. Si este rehusa hacerlo puede interpretarse como culpabilidad.Si realiza la verificacion incorrectamente o bien tras el protocolo declara que la firmano 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 Matematicas.Editorial Antonio Vera, 2002.

[2] A. Fuster, D. de la Guıa, L. Hernandez, F.Montoya, J.Munoz, Tecnicas Criptograficas deproteccion de datos. Ed. Ra-Ma, 1997.

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

Page 12: Autentificación-Firma Digital

190 Juan Tena Ayuso

[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 Criptograficos. Protocolos Criptograficos y Seguridad en Redes. (Eds. J.Gutierrez, T. Ayuso), Servicio de Publicaciones Universidad de Cantabria, 2003.