1. Autentificaci´n. Firma Digital
o
Juan Tena Ayuso
1
Introducci´n
o
En el ´mbito de la seguridad de las telecomunicaciones, junto al cl´sico requisito criptogr´fico
a
a
a
de la privacidad o confidencialidad, se plantean tambi´n los de autenticidad del emisor (aue
tenticidad de origen o de usuario) y de no falsificaci´n o alteraci´n del mensaje (autenticidad
o
o
o integridad del mensaje).
En efecto, adem´s del ataque criptoanal´
a
ıtico habitual, en el cual el criptoanalista rival
intercepta la comunicaci´n y trata de ‘descifrar’ su contenido (ataque pasivo), aquel puede
o
intentar hacerse pasar por qui´n no es, digamos B, entablando comunicaci´n con otro usuario
e
o
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´n del usuario puede ser directa, comprobando una caracter´
o
ıstica
propia de aquel, o indirecta, cuando el usuario demuestra estar en posesi´n de una pieza
o
secreta de informaci´n (suele tomar la forma de Desafio-Respuesta: se plantea una cuesti´n
o
o
a la que s´lo el usuario leg´
o
ıtimo puede responder).
El atacante puede tambi´n alterar, o substituir por otro, un mensaje enviado por B
e
a A. Los protocolos de autentificaci´n del mensaje tratan de garantizar la integridad del
o
mensaje.
Ambos problemas, autentificaci´n de usuario e integridad del mensaje, est´n estrechao
a
mente relacionados y la Criptograf´ de Clave P´blica permite dar una soluci´n simple y
ıa
u
o
satisfactoria a los mismos. De hecho esta fue (junto con el problema de la distribuci´n
o
de llaves), una de las razones que llevaron a Diffie y Hellman a la introducci´n de dicha
o
Criptograf´
ıa.
La firma digital, en tanto que an´logo criptogr´fico de la firma ordinaria, puede consia
a
derarse un caso particular de autentificaci´n. Sin embargo presenta caracteristicas propias
o
y una importancia creciente (que desborda el ´mbito criptogr´fico) lo que hace conveniente
a
a
un tratamiento diferenciado.
2
M´todos de Autentificaci´n
e
o
Antes de abordar de manera general el problema, consideremos un caso particular, que
mostrar´ como pueden garantizarse los objetivos mencionados de autenticidad de usuario e
a
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 privada dj (en lugar de hacerlo con la p´blica del destinatario, como en el caso
u
2. 180
Juan Tena Ayuso
en que el objetivo buscado era la confidencialidad de M ). A la recepci´n, i descifra con la
o
dj ej
llave p´blica de j y recupera M
u
≡ 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 probabilidad de que un falso mensaje se descodifique correctamente con la clave p´blica de j
u
es pr´cticamente nula.
a
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´n, descrito anteriormente, no proporciona sin embargo seo
creto (ya que cualquiera puede tener acceso a la clave p´blica de j y por tanto puede leerlo).
u
Si se desea conjugar ambos aspectos puede cifrarse dos veces, seg´n el esquema siguiente:
u
supongamos j, con claves (nj , ej , dj ) desea enviar M a i, con claves (ni , ei , di ). Distingamos
(por razones t´cnicas) dos casos:
e
• Si ni < nj , M se cifra como [M ei (modni )]dj (modnj )
• Si nj < ni , M se cifra como M dj (modnj )
ei
(modni )
El proceso se representa en la figura de la p´gina siguiente.
a
Planteemos ahora el problema de la autentificaci´n de manera general. Los procesos
o
de autentificaci´n constituyen un tipo particular de una amplia gama de aplicaciones cripo
togr´ficas que reciben el nombre gen´rico de Protocolos Criptogr´ficos (ver [9], para otros
a
e
a
tipos de protocolos).
3. Autentificaci´n. Firma Digital
o
181
Objetivos de un protocolo de autentificaci´n de usuario
o
1. Debe permitir a una parte A demostrar a otra B su identidad.
2. Tras un protocolo de autentificaci´n entre A y B, este ultimo no debe poder utilizar
o
´
la informaci´n obtenida de A para suplantarlo ante C.
o
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´ficas. Podemos
a
clasificarlas en tres tipos:
• Cifrado: El remitente y/o el mensaje se autentifican con un algoritmo de cifrado.
1. Con clave privada: Proporcionan autentificaci´n impl´
o
ıcita: si el receptor del mensaje, 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´cticamente nula (tal
a
hecho est´ basado en la redundancia de los lenguajes naturales, ver [8]).
a
2. Con clave p´blica: El mensaje, cifrado con la llave privada del remitente, garanu
tiza la autenticidad de origen y de contenido. Es el caso del ejemplo antes descrito
con el algoritmo RSA.
4. 182
Juan Tena Ayuso
• MAC (Message Authentication Codes)
Definici´n 2.1. Un MAC es un bloque de de tama˜o fijo Ck (M ), obtenido a partir
o
n
de un mensaje M , de cualquier longitud y k una llave secreta compartida por dos
usuarios A, 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´n 2.3. Una funci´n hash es una funci´n de una v´ p´blicamente conocida
o
o
o
ıa, u
(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´n hash
o
1. h = H(M ) debe ser f´cil de computar.
a
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 M = M
tal que H(M ) = H(M ).
Si adem´s se verifica,
a
4. Es computacionalmente imposible encontrar dos mensajes (M, M ) tales que
H(M ) = H(M ), se habla de funci´n hash fuerte (permite evitar ataques basados
o
en la denominada paradoja del cumplea˜os, ver [6])
n
Ejemplo 2.4. Diferentes modelos de funciones hash han sido propuestos. Los m´s
a
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´s adelante) y en otras ramas.
a
Protocolos de Desaf´
ıo-Respuesta
Definici´n 2.6. Son protocolos que demuestran la identidad de una parte A a otra B (el
o
verificador), demostrando la posesi´n de un cierto secreto (sin revelar este). Para ello A debe
o
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´n.
o
5. Autentificaci´n. Firma Digital
o
183
Desaf´
ıo-Respuesta con clave p´ blica
u
Aunque existen protocolos basados en t´cnicas simetricas, como el Kerberos (ver [7])
e
nos limitamos aqu´ al caso de clave p´blica. Supondremos pues que A posee un par de llaves
ı
u
(CA , DA ). Para identificarse demuestra al verificador B que posee su llave privada DA (sin
revelar esta).
1. Descifrando un desaf´ cifrado con su llave p´blica: Para ello B env´ a A : (IB , e =
ıo
u
ıa
CA (r)) donde IB es el identificador de B, r un n´mero aleatorio, y e es el desaf´
u
ıo
propiamente dicho.
A debe descifrar e utilizando su clave privada, recuperar r y enviarlo a B (en el plazo
preestablecido).
B acepta la identificaci´n si el n´mero recibido coincide con el r enviado.
o
u
2. Firmando un desaf´ con su llave privada: En este caso B env´ a A : (IB , rB ), con rB
ıo
ıa
aleatorio. A construye y env´ el vector (rA , IB , DA (rA , rB , IB ).
ıa
B descifrar´ la ultima componente (utilizando la clave p´blica de A), comprobar´ que
a ´
u
a
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´n puede ser conseguida por B.
o
Definici´n 2.7. Una prueba de conocimiento cero permite a una persona demostrar a otra
o
que posee un secreto, sin que esta ultima pueda obtener en el proceso ninguna informaci´n
´
o
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´n, aunque el tema sea m´s amplio, ver [6] o [5].
o
a
Las pruebas de conocimiento cero adoptan la forma de una demostraci´n interactiva,
o
implicando un cierto n´mero de etapas. En cada etapa:
u
• B presenta un desaf´ a A.
ıo
• A realiza una cierta computaci´n privada.
o
• A env´ a B una respuesta al desaf´ planteado.
ıa
ıo
Si alguna de las respuestas es incorrecta B considera que A no posee el secreto y rechaza
su autenticidad. Por contra si todas son correctas la acepta.
6. 184
Juan Tena Ayuso
Condiciones de una prueba de conocimiento cero:
a) Si A posee el secreto siempre puede conseguir que B acepte su demostraci´n.
o
b) Si A no posee el secreto la probabilidad de que enga˜e a B puede hacerse tan peque˜a
n
n
como se quiera.
Veamos un par de protocolos de autentificaci´n basados en pruebas de conocimiento
o
cero.
Protocolo de identificaci´n de Fiat-Shamir
o
Requerimientos previos:
1. Una tercera parte confiable T ha elegido y hecho p´blico n = pq, p, q primos,
u
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´blica.
u
Algoritmo 2.9. Consta de t rondas (por ejemplo t=50) cada una implicando 3 intercambios
de mensajes.
1. A elige aleatoriamente r, 1 ≤ r ≤ n − 1 y env´ a V el testigo x = r2 (mod n).
ıa
2. V elige y env´ a A, e ∈ {0, 1}.
ıa
3. A computa y env´ a V :
ıa
y = r, si e = 0.
y = rs, si e = 1.
4. Si y = 0, V rechaza la prueba (r = 0). Caso contrario la acepta si y solo si y 2 ≡ xv e
(mod n).
Nota 2.10. Un adversario impersonando A puede enviar a V , x = r2 /v. Podr´ entonces
ıa
responder (correctamente) y = r si e = 1, pero no si e = 0. Luego tendr´ una probabilidad
ıa
1/2 de acierto en cada ronda.
7. Autentificaci´n. Firma Digital
o
185
Protocolo de identificaci´n de Schnorr
o
Basado en el problema del logaritmo discreto. Requiere solo tres intercambios de mensajes.
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´metro de seguridad t, t ≥ 40, 2t < q.
a
2. Par´metros de A,
a
b1) Identificador IA
b2) Llave privada 0 ≤ a ≤ q − 1
b3) Llave p´blica v = β −a (mod p)
u
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 V : CertA , x ≡ β r (mod p).
ıa
2. Tras verificar la llave p´blica de A, V elige y env´ a A, 1 ≤ e ≤ 2t .
u
ıa
3. A env´ a V , y ≡ ae + r (mod q).
ıa
4. V acepta la identidad de A si z ≡ β y v e (mod p) = x.
3
Firma Digital
El desarrollo del comercio electr´nico y de los requerimientos de autentificaci´n, hacen neceo
o
sario un an´logo electr´nico de la firma ordinaria, incluso con valor legal, para zanjar disputas
a
o
respecto a la autenticidad de documentos transmitidos electr´nicamente.
o
Ello confiere a la firma digital obvias implicaciones econ´micas, pero tambi´n legislativas
o
e
y jur´
ıdicas, como lo muestra el inter´s reciente del mundo del derecho por el tema y la
e
legislaci´n a la que ha dado lugar: Real Decreto-ley de firma electr´nica de 17/9/1999, LSSI,
o
o
directivas europeas, etc.
La firma electr´nica debe tener pues una serie de propiedades formalmente an´logas a
o
a
las de la firma escrita ordinaria. En particular:
8. 186
Juan Tena Ayuso
• Personal: Solo el propietario puede producirla.
• Infalsificable: El intento, por parte de un usuario ilegal, de falsificar tal firma debe
ser computacionalmente imposible.
• F´cil de Autentificar: El receptor y eventualmente un arbitro o juez, deben ser
a
capaces de atestiguar, la autor´ de la firma.
ıa
• No repudiaci´n: El autor de la firma no debe tener la posibilidad de rechazarla como
o
falsa.
• F´cil de Generar.
a
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˜adida a este, un criptoanalista que
n
intercepte un tal mensaje firmado, puede substituir el mensaje propiamente dicho por otro
falso, pero conservando la firma final. Tal falsificaci´n tendr´ entonces la garant´ de una
o
ıa
ıa
firma leg´tima.
ı
Un esquema de firma digital comporta dos partes:
1. Algoritmo de firma
2. Algoritmo de verificaci´n de la firma
o
El algoritmo de firma puede ser,
Definici´n 3.2.
o
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´n 3.3.
o
Esquema de firma con recuperaci´n del mensaje: El mensaje firmado se recupera
o
durante el proceso de verificaci´n de la firma. Es el proceso esquematizado al comienzo
o
de la secci´n de autentificaci´n.
o
o
Esquema de firma con ap´ndice: Requieren el mensaje original como input para la
e
verificaci´n de la firma.
o
9. Autentificaci´n. Firma Digital
o
187
Las firmas con recuperaci´n del mensaje tienen el inconveniente de tener que cifrar (dos
o
veces si se desea garantizar secreto y autenticidad) todo el mensaje a autentificar, el cual
puede ser muy largo, con clave p´blica (que es muy lenta).
u
En consecuencia, para firmar un mensaje, habitualmente se obtiene previamente un
comprimido de peque˜o tama˜o del mensaje, que es lo que se cifra para obtener la firma.
n
n
Tales comprimidos se obtienen utilizando las funciones hash anteriormente descritas.
Un protocolo de firma digital con ap´ndice de un mensaje M (eventualmente cifrado
e
previamente, por ejemplo con clave privada, para garantizar el secreto) ser´ como sigue:
ıa
Algoritmo 3.4.
1. Obtener el comprimido hash H(M ) y su firma F (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´n (p´blicamente conocida) H y a partir del segundo elemento (aplic´ndole la
o
u
a
llave p´blica del remitente).
u
4. El receptor compara los dos valores de H(M ) obtenidos, aceptando el mensaje si
coinciden y rechaz´ndolo en caso contrario.
a
5. Eventualmente, si M estaba previamente cifrado, el receptor lo descifrar´ para obtener
a
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´lidas. Seg´n el ´mbito de tales falsificaciones se habla de:
a
u
a
1. Rotura total: El atacante posee un algoritmo de firma funcionalmente equivalente al
aut´ntico.
e
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. 188
Juan Tena Ayuso
Para m´s detalles ver [4].
a
Aunque diversos protocolos de firma basados en la Criptograf´ de clave privada han
ıa
sido propuestos (como por ejemplo el esquema de Lamport-Diffie, ver [5]) la Criptograf´ de
ıa
clave p´blica permite resolver mucho m´s eficientemente el problema. Dado que el proceso
u
a
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´blica K ≡ g n mod p.
u
Algoritmo 3.5. Para firmar un mensaje M (o el comprimido hash del mismo h(M ))
1. Se elige aleatoriamente un n´mero k, mcd(k, p − 1) = 1 y se computa X ≡ g k mod p.
u
2. Se despeja Y de la congruencia M ≡ nX + kY mod p − 1.
3. Firma: (M, f (M ) = X, Y )
4. Verificaci´n de la firma: Sea A ≡ K X X Y . La firma se acepta como v´lida si A ≡
o
a
M
g mod p.
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´n hash el SHA-1.
o
Requerimientos previos:
1. Con el objetivo de reducir la longitud de la firma (y por tanto el coste computacional
de su generaci´n y verificaci´n) se eligen dos primos: p con 512 bits y q con 160 bits
o
o
y divisor de p − 1. Se elige tambi´n un elemento g ∈ Fp de orden q.
e
2. El firmante elige una llave secreta n, 1 < n < q y hace p´blica K ≡ g n mod p.
u
Algoritmo 3.6. Para firmar un mensaje M , 1 < M < p
1. Se elige aleatoriamente un n´mero k, 1 < k < q).
u
11. Autentificaci´n. Firma Digital
o
2. Se computan r ≡ [g k mod p] mod q y s ≡
189
M +nr
k
mod q.
3. Firma: (M,f(M)=r,s).
4. Verificaci´n de la firma: Sean w ≡ s−1 mod q, u ≡ M w mod q y v ≡ rw mod q.
o
La firma se acepta como v´lida si r ≡ [g u K v mod p] mod q.
a
Tipos particulares de Firmas Digitales
Existen tipos de firmas digitales con propiedades o requerimientos particulares. Esquematicemos brevemente algunas de tales firmas. M´s detalles pueden encontrarse en [4] o
a
[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´n.
o
Firmas ciegas: Permiten a una parte A conseguir que otra B (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´n requiere la particio
paci´n activa del firmante. Si este rehusa hacerlo puede interpretarse como culpabilidad.
o
Si realiza la verificaci´n incorrectamente o bien tr´s el protocolo declara que la firma
o
a
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 personas.
Bibliograf´
ıa
[1] P. Alegr´ M.A. Garc´ I. Martinez, J. Tena, A. Vera, Aplicaciones de las Matem´ticas.
ıa,
ıa,
a
Editorial Antonio Vera, 2002.
[2] A. Fuster, D. de la Gu´ L. Hernandez, F.Montoya, J.Mu˜oz, T´cnicas Criptogr´ficas de
ıa,
n
e
a
protecci´n de datos. Ed. Ra-Ma, 1997.
o
[3] J. Guti´rrez, A. Ibeas, Criptograf´ Protocolos Criptogr´ficos y Seguridad en Redes. (Eds. J.
e
ıa.
a
Gutierrez, T. Ayuso), Servicio de Publicaciones Universidad de Cantabria, 2003.
12. 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´ Digital. Fundamentos y Aplicaciones. Prensas de la U.
ıa
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´ficos. Protocolos Criptogr´ficos y Seguridad en Redes. (Eds. J.
a
a
Gutierrez, T. Ayuso), Servicio de Publicaciones Universidad de Cantabria, 2003.