SUPERIORES DE MONTERREY
Escuela de Graduados de Ingenieria y Arquitectura Maestr´ıa en Ciencias Computacionales
“Dise˜ no e Implementaci´ on de una Autoridad Certificadora en Plataformas M´ oviles”
Tesis presentada por
Guillermo Mart´ınez Silva para obtener el grado de Maestro
en Ciencias Computacionales
Director de tesis:
Dr. Francisco Rodr´ıguez Henr´ıquez
M´exico D.F. verano de 2005
SUPERIORES DE MONTERREY
Escuela de Graduados de Ingenieria y Arquitectura Maestr´ıa en Ciencias Computacionales
“Dise˜ no e Implementaci´ on de una Autoridad Certificadora en Plataformas M´ oviles”
Tesis presentada por Guillermo Mart´ınez Silva para obtener el grado de Maestro
en Ciencias Computacionales Comisi´on de tesis:
Nombre del Presidente Presidente
Nombre Sinodal I Sinodal Nombre Sinodal II
Sinodal
M´exico D.F. junio de 2005
Guillermo Mart´ınez Silva
para obtener el grado de
Maestro en Ciencias Computacionales.
Dr. Nombre del Presidente Presidente
Dr. Nombre Sinodal I Sinodal
Dr. Nombre Sinodal II Sinodal
Dr. Francisco Rodr´ıguez Henr´ıquez
Titular de la Materia
Dra. Patricia Ray´on Villela Director del Programa de
Maestr´ıa
3 de junio de 2005
i
Gracias a todos los que hicieron esto posible.
texto
El presente trabajo implementa una Autoridad Certificadora en un dispositivo m´ovil PDA(Asistente Personal Digital) con la particularidad de incluir informaci´on biom´etri- ca de huella digital en los campos de extensi´on de un certificado digital basado en el est´andar X.509 V3. Los criptosistemas empleados para la generaci´on de certificados son RSA (1024 bits) y ECC (criptograf´ıa de curva el´ıptica) utilizando las curvas 163k, 192p, 224p, 233k.
iv
Agradecimientos II
Dedicatoria III
Resumen IV
Introducci´on 1
1. Criptograf´ıa de llave p´ublica y funciones hash 3
1.1. Principios de criptosistemas basados en llave p´ublica . . . 6
1.2. Intercambio de llaves Diffie-Hellman. . . 9
1.3. Criptosistema RSA . . . 10
1.4. Criptograf´ıa de curva el´ıptica ECC . . . 11
1.4.1. Grupos de curva el´ıptica sobre R . . . 12
1.4.2. Grupos de curva el´ıptica sobre Fp . . . 15
1.4.3. Grupos de curva el´ıptica sobre F2m . . . 18
1.4.4. Criptosistema basado en ECC . . . 20
1.5. Funciones hash . . . 22
1.6. Aplicaciones de criptosistemas de llave p´ublica . . . 23
1.6.1. Autenticaci´on . . . 24
1.6.2. Intercambio de llaves . . . 24
v
1.6.3. Confidencialidad . . . 25
1.6.4. No-repudio y firmas digitales. . . 25
1.6.5. Integridad de datos . . . 27
2. Servicio de autenticaci´on 28 2.1. Servicios de seguridad inform´atica en ambientes inal´ambricos . . . 30
2.2. Ataques a la autenticaci´on de entidades . . . 32
2.2.1. Ataque del intruso de en medio . . . 32
2.2.2. Usurpaci´on de identidad . . . 32
2.3. M´etodos de autenticaci´on . . . 33
2.3.1. Autenticaci´on mediante entidades de confianza . . . 33
2.3.2. Autenticaci´on biom´etrica . . . 36
3. PKI (Infraestructura de llave p´ublica) 39 3.1. Introducci´on a PKI . . . 40
3.2. Componentes PKI . . . 42
3.2.1. Autoridades Certificadoras (ACs) . . . 44
3.2.2. Autoridad de Registro (AR) . . . 46
3.2.3. Repositorio . . . 46
3.2.4. Emisor CRL . . . 47
3.2.5. Entidades Finales . . . 47
3.3. Arquitecturas PKI . . . 48
3.4. Estructuras de datos PKI . . . 50
3.4.1. Certificados X.509 . . . 50
3.4.2. Listas de revocaci´on de certificados . . . 53
3.5. Servicios adicionales PKI . . . 57
4. Implementaci´on del sistema 58
4.1. Descripci´on del sistema . . . 59
4.2. Arquitectura de la aplicaci´on. . . 60
4.2.1. Dispositivo m´ovil . . . 60
4.2.2. Biblioteca criptograf´ıca RCT. . . 61
4.2.3. Biblioteca biom´etrica BioAPI . . . 63
4.2.4. Biblioteca ASN.1 y est´andar X.509v3 . . . 66
4.3. Proceso de generaci´on de un certificado digital . . . 68
4.4. Proceso de verificaci´on de un certificado digital . . . 69
5. An´alisis de desempe˜no 72 5.1. Resultados obtenidos . . . 73
5.1.1. Generaci´on de llaves . . . 73
5.1.2. Firma digital . . . 73
5.1.3. Verificaci´on de firma digital . . . 74
5.1.4. Tama˜no de certificados digitales . . . 74
5.2. An´alisis de resultados . . . 75
5.2.1. Generaci´on de llaves . . . 76
5.2.2. Firma digital . . . 76
5.2.3. Verificaci´on de firma digital . . . 77
5.2.4. Tama˜no de certificados digitales . . . 77
Conclusiones 80 A. ASN.1 (Abstract Syntax Notation One) 83 A.1. Tipos de datos b´asicos en ASN.1 . . . 85
A.1.1. Tipo BOOLEAN . . . 85
A.1.2. Tipo INTEGER. . . 86
A.1.3. Tipo ENUMERATED . . . 86
A.1.4. Tipo OCTET STRING. . . 86
A.1.5. Tipo BIT STRING . . . 87
A.1.6. Tipo IA5String . . . 87
A.1.7. Tipo PrintableString . . . 87
A.1.8. Tipo UTCTime . . . 88
A.1.9. Tipo OID (OBJECT IDENTIFIER) . . . 88
A.2. Estructura de datos construidos . . . 89
A.2.1. Tipo SEQUENCE . . . 89
A.2.2. Tipo SEQUENCE OF . . . 89
A.2.3. Tipo SET . . . 89
A.2.4. Tipo CHOICE . . . 90
A.3. Descripci´on de la sintaxis ASN.1 de un certificado X.509 V3 . . . 90
A.3.1. Tipo tbsCertificate . . . 90
A.3.2. Tipo signatureAlgorithm . . . 92
A.3.3. Tipo signatureValue . . . 92
B. Ejemplos de certificados X.509v3 93 B.1. Certificado RSA sin datos biom´etricos . . . 93
B.2. Certificado ECC con datos biom´etricos . . . 99
C. Funcionamiento del sistema 108 C.1. Descripci´on de la interfaz gr´afica . . . 109
C.1.1. Pantalla de Datos . . . 110
C.1.2. Pantalla de Biometric. . . 110
C.1.3. Pantalla de RSA . . . 112
C.1.4. Pantalla de ECC . . . 113 C.1.5. Pantalla de Verificaci´on . . . 113 C.2. Generaci´on de certificados X.509 v3 . . . 115
Referencias 116
´Indice alfab´etico 122
2.1. Diferentes tipos de autenticaci´on y sus propiedades . . . 29 4.1. iPAQ Pocket PC - Tasa de Falsos Positivos y Falsos Negativos . . . 66 5.1. Tiempo de generaci´on de llaves. . . 73 5.2. Tiempos requeridos para firma digital de un mensaje aleatorio de 1KB. 74 5.3. Verificaci´on de la fima digital de un mensaje de 1KB. . . 74 5.4. Comparaci´on de tama˜no en bytes de los certificados X.509 v3 . . . 75
B.1. Explicaci´on de la sintaxis ASN.1 de un certificado RSA sin informaci´on biom´etrica . . . 98 B.2. Explicaci´on de la sintaxis ASN.1 de un certificado ECC con informaci´on
biom´etrica . . . 107 C.1. Caracter´ısticas principales del dispositivo m´ovil iPAQ h5550. . . 108
x
1.1. Confidencialidad en sistemas de llave secreta . . . 5
1.2. Primitivas de los criptosistemas de llave p´ublica . . . 7
1.3. Confidencialidad en criptosistemas de llave p´ublica . . . 8
1.4. Adici´on de puntos sobre R . . . 14
1.5. Doblado de puntos sobre R. . . 15
1.6. Curva el´ıptica y2 = x3+ x sobre F23. . . 16
1.7. Esquema de firma y veriificaci´on digital . . . 26
2.1. Ataque del “intruso de en medio” al protocolo Diffie-Hellman . . . 32
2.2. Autenticaci´on a trav´es de una tercera parte de confianza . . . 34
3.1. Componentes PKI . . . 43
3.2. Arquitecturas PKI . . . 49
3.3. Certificado digital X.509 versi´on 3 . . . 54
3.4. Estructura de una CRL. . . 56
4.1. Diagrama a bloques de la aplicaci´on. . . 60
4.2. M´odulos ECDSA . . . 61
4.3. Obtenci´on de llave privada . . . 62
4.4. Obtenci´on de par´ametros de generaci´on del certificado digital . . . 69
xi
4.5. Firma digital del certificado . . . 69
4.6. Generaci´on del certificado digital X.509 . . . 70
4.7. Separaci´on de las estructuras b´asicas de un certificado digital . . . 70
4.8. Verificaci´on del certificado digital . . . 71
5.1. Tiempos requeridos para la generaci´on de llaves en Curva El´ıptica. . . . 76
5.2. Generaci´on de firma digital de un mensaje de 1KB. . . 77
5.3. Comparaci´on en verificaci´on de firma digital . . . 78
5.4. Comparaci´on de certificados con y sin informaci´on biom´etrica . . . 79
C.1. Pantalla principal de la aplicaci´on . . . 109
C.2. Llenado de datos de la entidad final . . . 110
C.3. Selecci´on del peri´odo de validez del certificado . . . 111
C.4. Opciones de la pantalla de Datos . . . 111
C.5. Captura de huella digital . . . 112
C.6. Generaci´on del certificados RSA . . . 113
C.7. Generaci´on de certificados ECDSA . . . 114
C.8. Selecci´on de certificados almacenados en la PDA . . . 114
C.9. Verificaci´on de certificados emitidos por la AC . . . 115
La utilizaci´on masiva de las computadoras y redes como medios para almacenar, transferir y procesar informaci´on se ha incrementado espectacularmente en los ´ultimos a˜nos, al grado de convertirse en un elemento indispensable para el funcionamiento de la sociedad actual. Como consecuencia, la informaci´on en todas sus formas y estados se ha convertido en un activo de considerable valor, el cual se debe proteger y asegurar para garantizar su integridad, confidencialidad y disponibilidad, entre otros servicios de seguridad.
Actualmente se ha incrementado en nuestro pa´ıs el uso de aplicaciones electr´onicas que abarcan: correo, comercio, transacciones, acceso seguro a bancos de informaci´on, comunicaciones seguras, entre otras. Por tal motivo, los requerimientos de seguridad son cada vez mayores, present´andose as´ı un problema que la Seguridad Inform´atica, haciendo uso fundamentalmente de t´ecnicas criptogr´aficas, trata de resolver implemen- tando diversas servicios de seguridad.
Desgraciadamente los avances tecnol´ogicos tambi´en han propiciado la proliferaci´on de fraudes y robo de informaci´on v´ıa electr´onica. Debido a esto es necesario ofrecer tecno- log´ıas para asegurar la informaci´on que viaja electr´onicamente en Internet. Actualmente los certificados digitales ofrecen autenticaci´on con cierto grado de confiabilidad, ya que se basan en dos caracter´ısticas muy importantes:
1
Algo que el usuario sabe (una contrase˜na) Algo que el usuario tiene (su llave p´ublica)
El presente trabajo se enfoca a resolver algunos de los aspectos necesarios para que un sistema de comercio electr´onico tenga las herramientas necesarias para brindar servicios indispensables de seguridad y primordialmente fortalecer la autenticaci´on de usuarios mediante el uso de informaci´on biom´etrica.
Criptograf´ıa de llave p´ ublica y funciones hash
El comercio electr´onico es un campo de r´apido crecimiento en la Internet. Existen varias difierencias entre el comercio en el mundo real y el comercio en l´ınea, y quiz´as el aspecto m´as fundamental es la confianza y la seguridad. Un consumidor camina a la tienda y compra bienes, se presenta f´ısicamente, se identifica y elige la forma de pago. Pero en el comercio electr´onico ambas partes, el comprador y el vendedor tienen dificultades para probar la identidad de su contraparte. ¿C´omo puede un comprador estar seguro de transmitir informaci´on de manera confidencial al vendedor? ¿C´omo sabe un vendedor si una orden de compra es leg´ıtima? ¿C´omo pueden saber ambas partes si una tercera entidad copia o modifica la informaci´on de la transacci´on? Estas preguntas y muchas otras describen los aspectos que afectan las transacciones electr´onicas en las redes de datos.
Para construir aplicaciones seguras de comercio electr´onico, es necesario establecer varios requerimientos de seguridad. A continuaci´on se listan los requerimientos funda- mentales para la seguridad de la informaci´on en los sistemas de comercio electr´onico.
1. Confidencialidad. Las entidades no autorizadas no podr´an tener acceso a la informaci´on protegida del sistema.
3
2. Integridad de datos. La informaci´on no podr´a ser alterada por entidades o medios desconocidos.
3. Autenticaci´on. Permite la verificaci´on de la identidad de las partes involucradas en la transacci´on.1
4. No-repudio. Este servicio previene el incumplimiento o desmentido de acciones realizadas en la informaci´on por cualquier entidad en sistema.
Un sistema que implementa estos servicios de seguridad es considerado como seguro.
La herramienta computacional que estudia la implementaci´on de los requerimientos anteriores es la Criptograf´ıa, la cual puede ser definida como sigue:
Definici´on 1.1. La Criptograf´ıa es el estudio de t´ecnicas matem´aticas relacionadas a los aspectos de seguridad de la informaci´on tales como confidencialidad, integridad de datos, autenticaci´on y no-repudio.
Los criptosistemas convencionales basados en criptograf´ıa sim´etrica o sistemas de llave secreta requieren que el remitente y el destinatario compartan una llave la cual solamente ellos deben de conocer. El conocimiento de esta llave permite el decifrado del texto, de ah´ı la raz´on de que la llave permanezca en secreto. La figura §1.1 muestra el proceso de cifrado y descifrado en un sistema sim´etrico.
El algoritmo m´as comunmente utilizado en sistemas de llave secreta es DEA (Data Encryption Algorithm) definido en el est´andar DES2(Data Encryption Standar ). Otros
1Este servicio contempla diferentes variantes (autenticaci´on de entidad, de mensaje, de llave, etc.) las cuales ser´an explicadas en detalle en el cap´ıtulo §2.
2 El est´andar DES tiene una longitud de llave de 56 bits. A pesar de ser considerado muy seguro en el tiempo de su creaci´on a mediados de 1970, los avances tecnol´ogicos han asistido al desarrollo de t´ecnicas para romper las llaves en tiempos relativamente cortos. En 1999 un proyecto de c´omputo distribuido rompi´o DES en 22 horas y 15 minutos. En la actualidad DES no es considerado suficientemente robusto para llaves de alta seguridad. Por esta raz´on se ide´o Triple DES el cual ofrece el doble de seguridad equivalente a 112 bits.
abcdefghijklmno pqrstuvwxyz012 3456789abcdefg hijklmnopqrstuv wxyz012345678 9abcdefghijklmn opqrstuvwxyz01
Mensaje en claro
Algoritmo de Cifrado (AES, DES, IDEA, etc.)
Algoritmo de Descifrado (AES, DES, IDEA, etc.)
abcdefghijklmno pqrstuvwxyz012 3456789abcdefg hijklmnopqrstuv wxyz012345678 9abcdefghijklmn opqrstuvwxyz01
Mensaje en claro Mensaje
cifrado
Llave secreta
Llave secreta
!"#$%¨*][Ñ[]_:@!
"#$*][Ñ[]_:@!"#$
%&()=¨*][Ñ[]_:@!
"#$%&()=¨*][Ñ[]_
:_,;[~!3432:@[Ñ[
]_:@![Ñ[]_:@![Ñ[
]_:@![Ñ[]_:@![Ñ[
]_:@![Ñ[]_:@! x3
Figura 1.1: Confidencialidad en sistemas de llave secreta
esquemas incluyen Triple DES, AES3 , IDEA, RC4, RC5, Blowfish y Twofish. A pesar que estos sistemas brindan una alta seguridad y eficiencia computacional, sufren de muchas desventajas:
Distribuci´on e intercambio de llaves. La llave debe de permanecer en secreto y debe ser conocida por el remitente y el destinatario. Las dos partes involucradas deben de tener gran cuidado en el intercambio para prevenir que la llave pueda ser interceptada por una entidad no autorizada.4
Manejo de llaves. En el intercambio de informaci´on entre varias entidades, existen muchas llaves a ser administradas. Para garantizar la seguridad, las llaves deben ser cambiadas frecuentemente y preferentemente en cada sesi´on.
Debido a esto, los sistemas cl´asicos de llave secreta tienen grandes debilidades. M´as a´un, los requerimientos de autenticaci´on y no-repudio discutidos anteriormente son
3 Las llaves de AES pueden ser de 128, 192 ´o 256 bits de longitud. A partir del a˜no 2000 AES ha venido sustituyendo paulatinamente a DES. Si existiera un generador de llaves que fuera capaz de descubrir 1 llave DES cada segundo, este tardar´ıa aproximadamente 149 mil billones de a˜nos en encontrar una sola llave AES de 128 bits.
4 En un sistema de llave secreta con n usuarios se necesita un intercambio de n(n−1)2 llaves para que todas las entides puedan comunicarse unas con otras de manera confidencial.
imposibles de lograr en estos criptosistemas [Sch96]. Un parteaguas en la Criptograf´ıa ocurri´o en 1976 con la invenci´on de la Criptograf´ıa de llave p´ublica por parte de Diffie y Hellman5 [DH76]. Esta invenci´on resolvi´o no s´olo el problema de la distribuci´on y manejo de llaves, tambi´en proporcion´o las herramientas necesarias para los servicios de autenticaci´on y no-repudio.
1.1. Principios de criptosistemas basados en llave p´ ublica
Los algoritmos de llave p´ublica est´an basados en funciones matem´aticas en lugar de sustituciones o permutaciones. Y lo m´as importante, la Criptograf´ıa de llave p´ublica es asim´etrica lo cual implica que existan dos llaves separadas, a diferencia de los algoritmos de llave secreta en los cuales s´olo existe una llave. El uso de las llaves tiene consecuencias considerables en lo referente a los servicios de confidencialidad, no-repudio y autentica- ci´on.
Los sistemas de llave p´ublica requieren que cada usuario A tenga un par de llaves:
una llave p´ublica, Kpub(A) la cual es publicada, y una llave privada Kprv(A) la cual es mantenida en secreto. Un mensaje cifrado (con el conjunto de reglas E) usando una llave p´ublica, s´olo puede ser descifrado (con el conjunto de reglas D) con su correspondiente llave privada. Esto elimina la necesidad de compartir una llave secreta.
Las primitivas en criptosistemas de llave p´ublica son las siguientes:
1. Generaci´on de llaves. Esta primitiva crea las llaves publicas y privadas de los usuarios.
5 Diffie y Hellman fueron los primeros en publicar los conceptos de criptograf´ıa de llave p´ublica.
Sin embargo, en 1997 una agencia de seguirdad brit´anica (CESG, National Technical Authority for Information Assurance) di´o a conocer documentos en los cuales se demuestra que en 1970, James Ellis descubri´o la criptograf´ıa de llave p´ublica [Way97,TW01].
Criptografía de llave pública
Generación de llaves
Verificación/Cifrado (operación pública) Firma/Descifrado
(operación privada)
Figura 1.2: Primitivas de los criptosistemas de llave p´ublica 2. Operaci´on p´ublica. Utilizada para cifrar o verificar mensajes.
3. Operaci´on privada. Utilizada para firmar o descifrar mensajes.
La Criptograf´ıa de llave p´ublica permite la implementaci´on de las tres primitivas (figura §1.2); las cuales a su vez, permiten satisfacer los servicios fundamentales de la seguridad inform´atica (confidencialidad, integridad, autenticaci´on, y no-repudio).
Supongamos que Alicia quiere enviar un mensaje m a Benito. Alicia usa la lla- ve p´ublica de Benito para cifrar el mensaje (operaci´on p´ublica, denotada como c = EKpub(Benito)(m)) obteniendo como resultado c. Benito, una vez recibido el mensaje cifrado c utiliza su llave privada para descifrar (operaci´on privada, denotada como m = EKprv(Benito)(c)), lo cual le permite recuperar el mensaje en claro m.
Para entender el concepto, se puede usar la analog´ıa del sistema de correo. Nosotros podemos enviar un correo a cualquier persona conociendo ´unicamente su direcci´on.
Una vez que el correo est´a en el buz´on s´olo el destinatario puede leerlo (asumiendo que
´
unicamente el destinatario puede abrir el buz´on). La figura §1.3muestra el esquema de confidencialidad en sistemas de llave p´ublica.
Te´oricamente, los sistemas de llave p´ublica pueden ser construidos utilizando fun- ciones matem´aticas especiales denominadas ”trapdoor one-way functions” (funciones de s´olo ida con pasadizo secreto).
abcdefghijklmno pqrstuvwxyz012 3456789abcdefg hijklmnopqrstuv wxyz012345678 9abcdefghijklmn opqrstuvwxyz01
Mensaje en claro
abcdefghijklmno pqrstuvwxyz012 3456789abcdefg hijklmnopqrstuv wxyz012345678 9abcdefghijklmn opqrstuvwxyz01
Mensaje en claro Mensaje
cifrado Anillo de
llaves publicas
Algoritmo de Cifrado (RSA, ECC)
Llave pública de Alicia
Benito Carlos
Operación Pública
Algoritmo de Descifrado (RSA, ECC)
Llave privada de Alicia
Operación Privada
!"#$%¨*][Ñ[]_:@!
"#$*][Ñ[]_:@!"#$
%&()=¨*][Ñ[]_:@!
"#$%&()=¨*][Ñ[]_
:_,;[~!3432:@[Ñ[
]_:@![Ñ[]_:@![Ñ[
]_:@![Ñ[]_:@![Ñ[
]_:@![Ñ[]_:@! x3
Figura 1.3: Confidencialidad en criptosistemas de llave p´ublica
Matem´aticamente, una funcion f de s´olo ida o en un sentido es aquella en la cual f (x) es f´acil de calcular para cualquier entrada x, pero el c´alculo de f−1(x) es extre- madamente complicado. Una funci´on de s´olo ida con pasadizo secreto es en la cual la funci´on f−1(x) es f´acilmente calculable si se tiene cierta informaci´on adicional (una puerta oculta “trapdoor”). Los siguientes dos problemas son considerados los candidatos m´as comunes para la creaci´on de funciones trapdoor one-way.
Problema de factorizaci´on de enteros: Dado un n´umero entero n. Encon- trar sus factores primos. Es decir, obtener n = p1e1p2e2p3e3· · · pkek, donde pi es un n´umero primo y ei ≥ 1.
Encontrar n´umeros primos grandes6 es una tarea relativamente f´acil, pero el pro- blema de factorizar el producto de esos n´umeros primos es considerado compu- tacionalmente no realizable para el estado del arte actual [RSA05].
Problema del logaritmo discreto: Dado un n´umero primo p, un generador g de Zp∗, y un elemento a ∈ Zp∗. Encuentre el n´umero entero ´unico i, 0 ≤ i < p − 1,
6 En este contexto un n´umero grande es considerado como ´aquel que tiene al menos 512 bits.
tal que a ≡ gi(mod p). La utilidad del problema del logaritmo discreto en la Criptograf´ıa es que encontrar logaritmos discretos es dif´ıcil. El m´etodo de fuerza bruta para calcular gj(mod p) para 1 < j ≤ p−1 no es computacionalmente viable para valores grandes de p. Sin embargo, la operaci´on inversa de exponenciaci´on puede ser calculada eficientemente. De tal forma gi(mod p) es una funci´on de s´olo ida con pasadizo secreto para valores convenientemente elegidos de p.
La mayor´ıa de los criptosistemas de llave p´ublica est´an basados en la dificultad de resolver los problemas anteriores. En las siguientes secciones se describen imple- mentaciones de criptosistemas de llave p´ublica que son basados en los problemas de factorizaci´on y logaritmo discreto.
1.2. Intercambio de llaves Diffie-Hellman
El prop´osito del algoritmo es permitir que dos usuarios intercambien llaves de una manera segura con el objetivo de que la llave sea usada para un subsecuente cifrado de mensajes. El algoritmo fundamenta su efectividad en la dificultad de calcular los logaritmos discretos en el grupo Zp∗.
Supongamos que A y B desean establecer una secreto compartido en un canal no seguro. Los pasos necesarios en el protocolo Diffie-Hellman son los siguientes:
1. Los par´ametros p y α son seleccionados y publicados . donde p, es n´umero primo y α, es un elemento generador7 de Zp∗
(2 ≥ α ≥ p − 2).
2. A elige un n´umero aleatorio a, 0 ≤ a < p − 1.
7 El orden de un elemento g en un grupo G es definido como el entero positivo m´as peque˜no m tal que gm= 1. Un elemento g ∈ G cuyo orden n es igual al n´umero de elementos no cero en G se dice que es generador si y s´olo si, su exponenciaci´on repetitiva produce todos los elementos de grupo G.
3. B elige un n´umero aleatorio b, 0 ≤ b < p − 1.
4. A calcula u = gamod p, se env´ıa u a B 5. B calcula v = gbmod p, se env´ıa v a A 6. A calcula K = (gb)amod p
7. B calcula K = (ga)bmod p
El resultado de este proceso es que A y B intercambiaron su llave secreta K de una forma segura y manteniendo en secreto a y b.
1.3. Criptosistema RSA
El esquema RSA inventado por Ron Rivest, Adi Shamir, y Len Adleman fue de- sarrollado en 1977 y publicado en 1978. RSA est´a basado en la idea de que factorizar enteros en sus factores primos es un problema de alta complejidad. A continuaci´on se resume el algoritmo RSA.
La generaci´on de llaves en RSA8 :
1. Se seleccionan dos n´umeros primos p, q
2. Se calcula el producto n = (p)(q) , n es llamado m´odulo 3. Se calcula φ(n) = (p − 1)(q − 1)
4. Se selecciona un entero e (1 < e < φ(n)), tal que e sea primo relativo9 de φ.
5. Se calcula d , d = e−1mod φ(n)
8 La implementaci´on del criptosistema RSA en el presente trabajo de tesis utiliza llaves de 1024 bits. Lo cual garantiza hoy d´ıa un margen de seguridad aceptable.
9 Dos enteros a, b son primos relativos si el m´aximo com´un divisor M CD(a, b) = 1.
6. La llave p´ublica es Kpub = (e, n) 7. La llave privada es Kprv = (d, e)
Cifrado en RSA
El texto en claro es cifrado en bloques, cada bloque debe detener un valor binario menor que n.
1. Texto claro: M < n
2. Texto cifrado: C = Me(mod n)
Descifrado en RSA
1. Texto cifrado: C
2. Texto claro: M = Cd(mod n)
1.4. Criptograf´ıa de curva el´ıptica ECC
El fundamento b´asico de los sistemas de llave p´ublica es la gran dificultad de resol- ver computacionalmente problemas como el del logaritmo discreto y la factorizaci´on.
Estos problemas est´an definidos sobre un grupo finito, principalmente en Zn y Zp∗
. Te´oricamente se puede considerar cualquier grupo mientras los problemas anteriores est´en bien definidos. Hay dos razones principales por las cuales se deben de considerar alguna otra variedad de grupos. Primero, las operaciones requeridas en ciertos grupos pueden ser implementadas m´as f´acilmente en software o hardware que en otros grupos.
Segundo, los problemas computacionales que son la base de los criptosistemas pueden ser m´as dificiles de resolver en otros campos finitos. De tal forma, se puede usar un gru- po finito G m´as peque˜no que Zn o Zp∗
pero con el mismo o mejor nivel de seguridad.
Como resultado se obtienen tama˜nos de llave m´as peque˜nos y/o implementaciones m´as eficientes.
Las curvas el´ıpticas [KC98, V.86, Sti95] definidas sobre campos finitos producen un grupo tal que el problema del logaritmo discreto es intratable. Estas curvas fueron propuestas por primera vez en aplicaciones criptogr´aficas por Neal Koblitz y Victor Miller [V.86] en 1985.
En las siguientes secciones se explica la aritm´etica b´asica necesaria para la utiliza- ci´on de las curvas el´ıpticas en aplicaciones criptogr´aficas. La primera secci´on aborda la aritm´etica de curvas el´ıpticas definidas sobre los n´umeros reales de forma geom´etri- ca para as´ı poder explicar de una manera mucho m´as intuitiva la adici´on y doblado de puntos. Las secciones posteriores explican la definici´on de curvas sobre los campos finitos Fp y F2m.
1.4.1. Grupos de curva el´ıptica sobre R
Una curva el´ıptica sobre R es definida como el conjunto de puntos (x, y) que satis- facen la ecuaci´on §(1.1)
y2 = x3+ ax + b (1.1)
Las variables a, b pertenecen a R y la modificaci´on de los valores de a y b producen diferentes curvas el´ıpticas.
Si x3+ax+b no tiene factores repetidos; es decir, si el determinante ∆ = 4a3+27b2 6=
010, entonces la curva el´ıptica definida en §(1.1) puede ser usada para formar un grupo.
Un grupo de curva el´ıptica sobre los n´umeros reales esta conformado por los puntos que
10La condicion de que ∆ 6= 0 asegura que la curva el´ıptica sea suave; es decir, que no existan puntos en los cuales la curva tenga dos o m´as l´ıneas tangentes. Esta propiedad es muy importante, ya que la operaci´on de doblado de puntos utiliza la l´ınea tangente a la curva en el punto a doblar.
satisfacen la curva, junto con un punto especial O denomidado punto al infinito.
Los grupos formados por curvas el´ıpticas son grupos aditivos; es decir, su funci´on b´asica es la adici´on. La adici´on de dos puntos en una curva el´ıptica puede ser definida geom´etricamente.
El negativo de un punto P = (xp, yp) es su reflexi´on sobre el eje x, de tal forma
−P = (xp, −yp). Debido a la simetr´ıa de la curva respecto al eje x, el punto −P tambi´en forma parte de la curva.
Adici´on de puntos en curva el´ıptica sobre R
Suponga que P y Q son puntos distintos de la curva el´ıptica, y que el punto P 6= −Q.
Para sumar los puntos P y Q, se traza una l´ınea a trav´es de los dos puntos. Esta l´ınea intersecta la curva el´ıptica en exactamente otro punto, denotado −R. El punto −R es reflejado con respecto al eje x para obtener R. Un ejemplo de adici´on de puntos en una curva el´ıptica definida sobre R se muestra en la figura §1.4 [HMV03].
En el caso particular P = −Q la l´ınea a trav´es de P y −P es vertical, la cual no produce intersecci´on con otro punto de la curva el´ıptica; consecuentemente los puntos P y −P no pueden ser sumados de la forma anteriormente definida. Debido a esta raz´on la curva el´ıptica incluye un punto al infinito O. Por definici´on, P + (−P ) = O. Como resultado de esta ecuaci´on se obtiene P + O = P. O es llamado elemento neutro del grupo.
Doblado de puntos en curva el´ıptica sobre R
Para sumar un punto P a s´ı mismo, se traza una l´ınea tangente a la curva en el punto P . Si Py 6= 0 , entonces la l´ınea tangente intersecta a la curva el´ıptica en exactamente otro punto, denotado −R. Este punto es reflejado respecto al eje x para obtener R.
Esta operaci´on es llamada doblado de punto (P + P = 2P = R). Un ejemplo de la
Suma: P + Q = R
R (x3, y3) -R (x3 , -y3)
y^2 = x^3 - 7x Q (x2 , y2)
P (x1 , y1)
–8 –6 –4 –2 2 4 6 8
y
–4 –2 2 4 6
x
Figura 1.4: Adici´on de puntos sobre R
operaci´on de doblado de punto en una curva el´ıptica definida sobre los n´umeros reales R se muestra en la figura §1.5 [HMV03].
Si el punto P es tal que Py = 0, la l´ınea tangente a la curva el´ıptica en el punto P es vertical por lo cual no intersecta la curva el´ıtpica en ning´un otro punto. Por definici´on, 2P = O para un punto P con Py = 0. Si se requiere calcular 3P , se puede sumar 2P + P , lo cual es lo mismo que O + P = P, de tal forma que 3P = P .
Doblado: P + P = R
y^2 = x^3 - 7x
R(x3,y3) -R
P(x1,y1)
–8 –6 –4 –2 2 4 6 8
y
–4 –2 2 4 6
x
Figura 1.5: Doblado de puntos sobre R Multiplicaci´on escalar de puntos
La operaci´on de exponenciaci´on de un punto P , es denotada por la multipicaci´on escalar del punto definida como kP = P + P + P + · · · + P (k veces), esto es debido a que la operaci´on b´asica del grupo es la adici´on.
1.4.2. Grupos de curva el´ıptica sobre F
pLas operaci´ones sobre los n´umeros reales son lentas e inexactas debido a errores de redondeo del punto flotante. Las aplicaciones criptogr´aficas requieren una aritm´etica
r´apida y precisa; debido a esto los grupos usados en la pr´actica son Fp 11
y F2m. Una curva el´ıptica definida sobre Fp puede ser obtenida mediante la asignaci´on de valores de las variables a y b que est´en dentro del campo Fp. El grupo de curva el´ıptica incluye todos los puntos (x, y) que satisfacen la ecuaci´on §(1.2) sobre Fp junto con el punto al infinito O.
y2(mod p) ≡ x3+ ax + b (mod p) (1.2) Un ejemplo de una curva el´ıptica sobre Fp se muestra en la figura §1.6.
y^2 (mod 23) = x^3 + x (mod 23)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 x
Figura 1.6: Curva el´ıptica y2 = x3+ x sobre F23
11El campo Fpusa n´umeros de 0 a p − 1, y los c´alculos de sus operaciones son realizadas en m´odulo p.
Aritm´etica en grupos de curva el´ıptica sobre Fp
Existen grandes diferencias entre los grupos Fp y los reales R. Los grupos sobre Fp son finitos debido a que las curvas consisten de una serie de puntos discretos de la curva. Geom´etricamente las operaciones no son claras como en R. Sin embargo, las reglas algebraicas para la aritm´etica pueden ser adaptadas para curvas el´ıpticas sobre Fp.
Adici´on de puntos
Si P (xP, yP) y Q(xQ, yQ) son puntos diferentes tal que, P 6= −Q, la suma P + Q = R(xR, yR) est´a definida de la siguiente forma:
s = (x(yP−yQ)
P−xQ)mod p
xR = s2− xP − xQmod p yR= −yP + s(xP − xR) mod p
N´otese que s es la pendiente de los puntos P y Q.
Doblado de puntos
Si yP 6= 0, el doblado de P es 2P = R donde s = (3x(2yP2+a)
P) mod p xR = s2− 2xP mod p
yR= −yP + s(xP − xR) mod p
Multiplicaci´on escalar de puntos
A continuaci´on se muestra el algoritmo utilizado para la multiplicaci´on escalar de los elementos del grupo de curva el´ıptica sobre Fp.
Multiplicaci´on de puntos para curvas sobre Fp Entrada: k = (kt−1, . . . , k1, k0)2, P ∈ E(Fq)
Salida: kP 1. Q ← O
2. De i = 0 hasta t − 1 haz
2.1 Si ki = 1 entonces Q ← Q + P 2.2 P ← 2P
3. Regresa (Q)
1.4.3. Grupos de curva el´ıptica sobre F
2mLos elementos del campo F2m son cadenas de m-bits. Las reglas para la aritm´etica sobre F2m pueden ser definidas ya sea por representaci´on polinomial12 o por represen- taci´on de base normal ´optima (ONB)13. Debido a que F2m opera sobre cadenas de bits, los c´alculos aritm´eticos pueden realizarse muy eficientemente [ECC04].
Una curva el´ıptica sobre F2mesta definida por la ecuaci´on §(1.3), donde los elementos a y b pertenecen a F2m y b 6= 0.
y2+ xy = x3+ ax2 + b (1.3)
El grupo de curva el´ıptica incluye todos los puntos (x, y) los cuales satisfacen la ecuaci´on §(1.3) sobre F2m junto con el punto al infinito O.
Aritm´etica en grupos de curva el´ıptica sobre F2m
Los grupos de curva el´ıptica sobre F2mson grupos finitos y su aritm´etica no involucra errores por redondeo al igual que Fp. Esto en combinaci´on con la naturaleza binaria del
12 Los elementos de F2m son polinomios de grados menores que m, con coeficientes en F2; es decir, am−1xm−1+ am−2xm−2+ · · · + a2x2+ a1x + a0. Estos elementos pueden ser escritos en forma de vectores de la forma (am−1· · · a1a0). El n´umero de elementos de F2m es 2m.
13 Una base ´optima proporciona una alternativa para la definici´on de la multiplicaci´on de los ele- mentos del campo [ECC04].
campo, permite que la aritm´etica pueda ser implementada muy eficientemente por una computadora [ECC04].
Adici´on de puntos
El negativo del punto P = (xP, yP) es el punto −P = (xP, xP + yP). Si P (xP, yP) y Q(xQ, yQ) son puntos diferentes tal que, P 6= −Q, entonces P + Q = R donde
s = (x(yP−yQ)
P+xQ)
xR = s2+ s + xP + xQ+ a yR= s(xP + xR) + xR+ yP
Al igual que las curvas el´ıpticas sobre R, P +(−P ) = O, el punto al infinito. Adem´as, P + O = P para todos los puntos P .
Doblado de puntos
Si xP = 0, entonces 2P = O. Si xP 6= 0 el doblado de P es 2P = R donde s = xP +yxP
P
xR = s2+ s + a yR= xP2+ (s + 1)xR
Multiplicaci´on escalar de puntos
El algoritmo de multiplicaci´on escalar sobre F2mes el mismo que en Fp. La diferencia radica ´unicamente en la aritm´etica utilizada en cada grupo.
Multiplicaci´on de puntos para curvas sobre F2m
Entrada: k = (kt−1, . . . , k1, k0)2, P ∈ E(F2m) Salida: kP
1. Q ← O
2. De i = 0 hasta t − 1 haz
2.1 Si ki = 1 entonces Q ← Q + P 2.2 P ← 2P
3. Regresa (Q)
1.4.4. Criptosistema basado en ECC
El siguiente es un ejemplo de un criptosistema basado en curva el´ıptica sobre el campo finito Fp.
Definici´on 1.2. Sea un n´umero p > 3. La curva el´ıptica en Fp (denotada como E(Fp)) es el conjunto de soluciones (x, y) en Fp × Fp que satisfacen:
y2(mod p) ≡ x3+ ax + b (mod p) (1.4) donde a, b estan en Fp y el discriminante ∆ = 4a3+ 27b2 6= 0 mod(p). Entonces, el grupo de cuva el´ıptica esta definido por los puntos (Px, Py) ∈ Fp que satisfacen la ecuaci´on §(1.4) junto el punto especial O denominado punto al infinito.
De tal forma, el problema del logaritmo discreto en curvas el´ıpticas se reduce a lo siguiente:
Dada una curva el´ıptica E definida en Fp, un punto P ∈ E(Fp) de orden n14 y un punto Q ∈ E(Fp), determine el entero k, 0 < k < n − 1, tal que Q = kP , sabiendo que tal entero existe.
14 El orden de una curva el´ıptica E sobre Fp es definido como el n´umero de puntos (x, y) ∈ E(Fp), denotado como #Fp [HMV03].
De tal forma, las primitivas de un criptosistema basado en curva el´ıptica son defi- nidas de la siguiente forma:
Generaci´ on de llaves
Una vez seleccionada la curva el´ıptica sobre un campo finito Fp, la generaci´on de llaves en curva el´ıptica consta de los siguientes pasos:
1. Selecci´on de un punto conveniente P ∈ E(Fp) de orden n.
2. Selecci´on de un entero ´unico e impredecible k, 0 < k ≤ n − 1.
3. Se calcula Q = kP
4. La llave p´ublica es conformada por (E, P, n, Q) 5. Se mantiene en secreto la llave privada k 15
Operaci´ on privada
Dado un mensaje m, los par´ametros de la curva (E, P, n), y la llave privada k, el procedimiento de firma digital es el siguiente:
1. Selecci´on de un entero ´unico e impredecible i, 0 < i ≤ n − 1.
2. Calcular iP = (x1, y1) 3. Calcular r = x1mod n
4. Calcular s = i−1(m + kr) mod n
5. La firma de m esta formada por la pareja (r, s)
15Como comparaci´on, un sistema basado en curva el´ıptica con un punto P cuyo orden es un n´umero primo de 160 bits ofrece aproximadamente el mismo nivel de seguiridad que el sistema RSA con un modulo n de 1024 bits.
Operaci´ on p´ ublica
Dado un mensaje m, los par´ametros de la curva (E, P, n, Q), el procedimiento de verificaci´on de firma digital es el siguiente:
1. Calcular s−1mod n
2. Calcular u1 = ms−1mod n 3. Calcular u2 = rs−1mod n 4. Calcular u1P + u2Q = (x1, y1) 5. Calcular v = x1mod n
6. La firma es aceptada si v = r
En el cap´ıtulo §4 se abordar´a otros aspectos de la Criptograf´ıa de Curva El´ıptica como por ejemplo: los tipos de curva utilizadas en la implementaci´on de la Autori- dad Certificadora, el esquema de firma y la verificaci´on digital de acuerdo al estandar ECDSA.
1.5. Funciones hash
Una funcion hash en Criptograf´ıa, toma como entrada un mensaje de longitud arbi- traria y produce como salida una digesti´on del mensaje de longitud fija. Las propiedades que debe cumplir este tipo de funciones son:
Dado un mensaje m, la digesti´on del mensaje h(m) puede ser calculada muy r´apidamente.
Dado una digestion del mensaje y, computacionalmente no es posible encontrar un mensaje m tal que h(m) = y.
Es computacionalmente imposible encontrar colisiones entre mensajes (m1 6= m2, tal que h(m1) = h(m2)).
La implementaci´on de la Autoridad Certificadora en esta tesis utiliza los algoritmos hash MD5 (Message Digest Algorithm) y SHA-1 (Secure Hash Algorithm).
El algoritmo hash MD516 fue desarrollado por Ron Rivest. Recibe de entrada un mensaje de tama˜no arbitrario y produce una salida de 128 bits. La entrada es procesada en bloques de 512 bits.
El algormitmo hash SHA fue desarrollado por NIST17 y publicado como FIPS PUB 18018 en 1993. Posteriormente se revis´o en 1995 generando la especificaci´on FIPS PUB 180-2 conocida como SHA-1. El algoritmo es alimentado con un mensaje de longitud m´axima de 264 bits y produce una salida de 160 bits 19 . La entrada al igual que MD5 es procesada en bloques de 512 bits.
1.6. Aplicaciones de criptosistemas de llave p´ ublica
Actualmente la seguridad de navegaci´on y compra de bienes y servicios en Internet es soportada por protocolos como SSL (Secure Sockets Layer) desarrollado por Netscape, y TLS (Transport Layer Security) propuesto por IETF20, en lo referente a transacciones seguras con tarjetas de cr´edito el protocolo SET (Secure Electronic Protocol) dise˜nado
16El algoritmo MD5 es descrito a detalle en el RFC 1321,http://www.ietf.org/rfc/rfc1321.txt
17 National Institute of Standards and Technology,http://www.nist.org
18 Federal Information Processing Standards Publications,http://www.itl.nist.gov/fipspubs/
19En febrero de 2005 se dio a conocer un nuevo ataque sobre el algoritmo SHA-1. Los autores afirman que su an´alisis muestra que las coalisiones de SHA-1 pueden ser encontradas con una complejidad menor a 269operaciones hash. Este es el primer ataque al algoritmo completo de SHA-1 con complejidad menor a 280 [WYY05].
20 Internet Engineer Task Force,http://www.ietf.org
por VISA y MasterCard, sustenta este tipo de transferencias bancarias. Por supuesto, estos protocolos est´an fundamentados en criptosistemas de llave p´ublica.
A continuaci´on se mencionan los servicios fundamentales de la seguridad inform´atica y las ideas b´asicas de la Criptograf´ıa de llave p´ublica y las funciones hash que permiten su implementaci´on en aplicaciones reales.
1.6.1. Autenticaci´ on
La autenticaci´on es el proceso de verificar la identidad de alguien o algo (usuario, servidor, comporaci´on, etc.). La autenticaci´on es muy importante en transacciones de comercio electr´onico que involucren a un cliente y a un servidor, ya que los clientes desean confirmar la identidad del servidor antes de enviar informaci´on confidencial como su n´umero de tarjeta de cr´edito. El siguiente ejemplo es la forma en la cual el protocolo SSL utiliza t´ecnicas de criptograf´ıa de llave p´ublica para la autenticaci´on.
Supongamos que A quiere autenticar a B:
A env´ıa un mensaje aleatorio r a B
B cifra r usando su llave privada y env´ıa el resultado a A
A descifra el dato enviado por B usando la llave p´ublica de B y lo compara con el original
Debido a que la llave privada de B solo es conocida por ´el mismo, B es la ´unica entidad que pudo haber cifirado el mensaje r si es que la comparaci´on fue exitosa.
1.6.2. Intercambio de llaves
Como se mencion´o anteriormente, el intercambio de llaves fue la primera aplicaci´on de la Criptograf´ıa de llave p´ublica. Se requiere compartir una llave secreta (conocida en
la pr´actica como llave de sesi´on), la cual pueda ser usada posteriormente para cifrar y descifrar mensajes mediante un sistema de llave secreta como DES. Los siguientes son los pasos a realizar:
A genera un n´umero alearorio k para ser usado como llave secreta (llave de sesi´on) A cifra k usando la llave p´ublica de B y env´ıa el resultado a B
Despu´es de recibir, B descifra el mensaje usando su llave privada
Debido a que la llave privada de B ´unicamente es conocida por B, cualquier atacante que obtenga de alguna forma los mensajes no podr´a conocer el secreto compartido21 .
1.6.3. Confidencialidad
Un criptosistema de llave p´ublica puede ser utilizado para mantener y asegurar la confidencialidad de los datos, pero en la pr´actica, este tipo de esquema no es utilizado debido a que los sistemas de llave secreta son aproximadamente 100 a 200 veces m´as r´apidos [Moh04]. De tal forma, los criptosistemas de llave p´ublica son usados como una herramienta para que los sistemas de cifrado sim´etrico puedan establecer su llave secreta.
1.6.4. No-repudio y firmas digitales
Los sistemas de llave p´ublica proporcionan firmas digitales las cuales no pueden ser repudiadas. El concepto es muy similar al proceso del mundo real donde se firma un documento para legalizarlo y para especificar a la persona o entidad responsable
21Para que este esquema de intercambio de llaves tenga ´exito es necesario asegurar la autenticaci´on de las entidades, ya que de otra forma el esquema puede ser v´ıctima de alguna entidad maliciosa mediante ataques como “el intruso de en medio ”, “usurpaci´on de identidad ” entre otros. Este tipo de debilidades de los sistemas de llave p´ublica son discutidas en el cap´ıtulo §2.
Llave privada de Alicia
Hash
h(m)
M E N S A J E
M E N S A J E
M E N S A J E
Hash h(m)
h´(m)
¿iguales?
Firma Verificada
si
Anillo de llaves publicas
Llave pública de Alicia
Operación Privada Operación Pública
Firma Digital
Firma NO Válida
no
Alicia Benito
Figura 1.7: Esquema de firma y veriificaci´on digital
por el documento; pero es m´as poderoso pues tambi´en protege contra alteraciones del documento original. El esquema de firma digital se basa en dos algoritmos, uno de firma y otro de verificaci´on. Este proceso es muy similar al de autenticaci´on.
A cifra el mensaje m con su llave privada (EKprv(A)(m))
A cifra el resultado utilizando la llave p´ublica de B y env´ıa el resultado a B (c = EKpub(B)(EKprv(A)(m)))
B recupera m mediante m = DKpub(A)(DKprv(B)(c))
Debido a que B es capaz de recuperar m usando la llave p´ublica de A, B puede verificar que A firm´o el mensaje con su llave privada. Y debido a que la firma depende del contenido del mensaje, nadie m´as puede usar la fima con otro mensaje.
La firma digital en el mundo real (figura §1.7) no se realiza directamente sobre el mensaje; lo que se hace es calcular el resumen hash del mensaje (h(m)) y ´este es el que se firma. La siguiente secci´on lo ejemplifica.
1.6.5. Integridad de datos
Las firmas digitales tambi´en pueden ser usadas para validar la integridad de datos firmados. Por ejemplo, el protocolo SSL utiliza funciones hash para procesar el mensaje de tal forma que el algorimo firma ´unicamente el valor hash del mensaje, en lugar de firmar el mensaje completo.
A calcula el hash del mensaje y lo cifra con su llave privada A env´ıa el mensaje m y el hash cifrado a B
Despu´es de recibir, B extrae el mensaje m y calcula el valor hash del mensaje.
Tambi´en extrae el valor hash cifrado y lo descifra utilizando la llave p´ublica de A B compara el valor hash calculado con el valor que recibi´o. Si son id´enticos, entonces se ha validado la integridad de los datos.
En la pr´actica la Criptograf´ıa de llave p´ublica necesita una infraestructura la cual le permita proveer plenamente los servicios anteriores, sobre todo los servicios de autenti- caci´on para evitar ataques como el intruso de en medio y la usurpaci´on de identidad. El cap´ıtulo §2es dedicado a explicar la necesidad de contar con un sistema de autenticaci´on confiable para as´ı evitar este tipo de ataques.
Servicio de autenticaci´ on
La Autenticaci´on es un proceso que tiene como finalidad verificar la informaci´on referente a un determinado objeto, como la identidad del remitente (ya sea un disposi- tivo electr´onico y/o un usuario), la integridad de la informaci´on enviada, el momento de env´ıo de la informaci´on, la validez de la firma, etc.
La Autenticaci´on es uno de los objetivos m´as importantes en la seguridad de la informaci´on. A mediados de 1970 se cre´ıa que la autenticaci´on y la confidencialidad estaban ligadas intr´ınsecamente, pero con el descubrimiento de las funciones hash, las firmas digitales y los adelantos en reconocimiento de patrones biom´etricos se ha logrado una separaci´on de estos servicios de seguridad.
En la Seguridad Inform´atica existen diversos tipos de autenticaci´on [MOV01]:
Autenticaci´on del mensaje. Este t´ermino es usado an´alogamente con autenti- caci´on del origen de datos y consiste en la verificaci´on de que una de las partes es la fuente original del mensaje, es decir, autentica la procedencia de un men- saje creado en un determinado momento. Este tipo de autenticaci´on asegura la integridad del mensaje.
Autenticaci´on de entidad. Consiste en el proceso donde una parte se asegura de la identidad de la segunda parte involucrada en el protocolo de comunicaci´on.
28
La identidad es asegurada en base a la corroboraci´on de informaci´on especifica obtenida en el protocolo.
Autenticaci´on de llave. Este tipo de autenticaci´on permite que una parte se asegure que ninguna otra entidad no confiable pueda tener acceso a la llave privada correspondiente.
Autenticaci´on de transacci´on. Este tipo de autenticaci´on provee autenticaci´on de mensaje y adicionalmente garantiza la existencia ´unica y temporal de los datos.
La existencia ´unica y temporal se logra a trav´es del uso de par´ametros variantes en el tiempo TVPs1
La tabla §2.1 resume las propiedades de los diferentes tipos de autenticaci´on [MOV01].
⇒ Propiedad
⇓ Tipo de autenticaci´on
Identificaci´on del origen
Integridad de datos
Tiempo o unicidad
autenticaci´on de mensaje si si -
autenticaci´on de transacci´on si si si
autenticaci´on de entidad si - si
autenticaci´on de llave si si deseable
Tabla 2.1: Diferentes tipos de autenticaci´on y sus propiedades
La autenticaci´on es un proceso activo el cual utiliza herramientas criptogr´aficas y protocolos de comunicaci´on para llevar a cabo su objetivo. La autenticaci´on proporciona un servicio de protecci´on de sistemas de informaci´on contra ataques tanto pasivos como activos.
Las primitivas criptogr´aficas necesarias para poder ofrecer el servicio de autenticaci´on son las siguientes:
1 TVPs (Time-Variant Parameters), estos par´ametros incluyen n´umeros aleatorios, estampas de tiempo, secuencias, etc., en respuesta a retos involucarados en el protocolo de comunicaci´on.
1. Funciones hash (SHA1, MD5)
2. Cifradores sim´etricos (AES, DES, TDES) 3. Firma digital (RSA, ECDSA)
Una de las aplicaciones m´as comunes e importantes en la Seguridad Inform´atica es el Control de Acceso, el cual se otorga en base a la autenticaci´on de de la entidad que quiere acceder a la informaci´on.
La autenticaci´on de un usuario puede ser lograda en base a uno o varios de los siguientes aspectos:
Algo que el usuario conozca (una palabra clave, un NIP, nombre de usuario, etc.) Algo que el usuario posea (una tarjeta inteligente, un certificado digital)
Algo que el usuario sea (huella digital, reconocimiento de voz, la anatom´ıa del rostro, an´alisis de DNA, etc.)
El trabajo de ´esta tesis se enfoca principalmente a la creaci´on de una infraestructu- ra la cual permita realizar autenticaci´on de entidad ; es decir, identificaci´on de usuarios involucrados en una transferencia de informaci´on electr´onica a trav´es de algo que el usuario conozca, algo que posea y algo que sea.
2.1. Servicios de seguridad inform´ atica en ambientes inal´ ambricos
La comunicaci´on inal´ambrica es el proceso de transmisi´on de informaci´on a trav´es de ondas electromagn´eticas que viajan por el espacio libre. Los mensajes inal´ambricos
viajan por el medio ambiente utilizando un determinado espectro electromagn´etico el cual est´a regulado por las autoridades correspondientes.
Dispositivos inal´ambricos como asistentes digitales personales (PDAs), tel´efonos ce- lulares, pagers son l´ogicamente menos seguros que sus contrapartes al´ambricos. Esto es debido en parte a las limitaciones tanto en capacidad de procesamiento, memoria y el ancho de banda restringido para transmisi´on. Otra raz´on de gran importancia es que estos dispositivos env´ıan informaci´on a trav´es del medio ambiente donde cualquier entidad con la tecnolog´ıa apropiada puede interceptarla.
La tecnolog´ıa inal´ambrica, por su misma naturaleza, viola los principios fundamenta- les de la seguridad informatica. Esta no asegura la identidad del usuario (autenticaci´on), tampoco previene que el remitente del mensaje refute que ha enviado el mensaje (no- repudio). La tecnolog´ıa inal´ambrica no es nueva, pero sus aplicaciones contemporaneas son a´un inmaduras.
Para solucionar los inconvenientes mencionados anteriormente es de gran importan- cia fortalecer los servicios de seguridad inform´atica en ambientes inal´ambricos sobre todo en dispositivos con poder computacional restringido. Debido a esto, el presente trabajo de tesis hace hincapi´e en el uso de criptosistema ECC el cual permite obte- ner exelentes grados de seguridad a un precio computacional menor que algoritmos como RSA; adem´as, se propone el uso de informaci´on biom´etrica para complementar el servicio de autenticaci´on. En resumen, se cre´o una infraestructura que robustece el ser- vicio de autenticaci´on de usuarios, y que es especialmente conveniente para dispositivos m´obiles en ambientes inal´ambricos.
2.2. Ataques a la autenticaci´ on de entidades
La presente secci´on brinda un panorama de los principales ataques que comprometen el servicos de autenticaci´on de entidades.
2.2.1. Ataque del intruso de en medio
Supongamos que Ana quiere establecer una sesi´on segura con Beto para el env´ıo de informaci´on confidencial. Para esto, utiliza un protocolo de llave p´ublica para el intercambio de llaves. Si un atacante, Carlos, se hace pasar por Beto sin que Ana lo advierta, entonces podr´a descifrar la informaci´on confidencial sin problema alguno.
Existen varias formas en las cuales Carlos puede llevar a cabo el ataque. La figura §2.1 ilustra este tipo de ataque al protocolo Diffie-Hellman.
Ana Carlos Beto
ga (mod p) gx (mod p)
gb (mod p) gx (mod p)
KAC = (ga)x (mod p) KCB = (gb)x (mod p)
Figura 2.1: Ataque del “intruso de en medio” al protocolo Diffie-Hellman
N´otese que en ning´un momento se rompi´o el criptosistema de llave p´ublica, Carlos
´
unicamente hiz´o creer a Ana que realmente es Beto y viceversa.
2.2.2. Usurpaci´ on de identidad
La usurpaci´on de identidad consiste primordialmente en la subplantaci´on de llaves autenticas por llaves ap´ocrifas. Supongamos que Beto env´ıa a Ana su llave p´ublica
mediante una red de datos. El atacante Carlos puede interceptarla y reemplazarla con su propia llave p´ublica. De igual forma Carlos puede tambi´en lograr la misma meta si Ana descarga la llave p´ublica de Beto de alg´un servidor en la red mediante la sustituci´on previa de las llaves. En resumen, Carlos puede intentar distribuir su propia llave p´ublica como si perteneciera realmente a Beto.
2.3. M´ etodos de autenticaci´ on
Debido al tipo de ataques presentados en la secci´on anterior, es nesesario contar con una infraestructura adicional a la criptograf´ıa de llave p´ublica, la cual permita resolver estos problemas. Esta secci´on explica diferentes m´etodos para lograr brindar eficientemente el servicio de autenticaci´on.
2.3.1. Autenticaci´ on mediante entidades de confianza
Ana y Beto necesitan intercambiar informaci´on de una manera segura y confidencial.
Con el objetivo de no ser propensos a ataques como el intruso de en medio y usurpaci´on de entidad, deciden que una tercera parte en la cual ambos confian, “certifique” que las llaves p´ublicas usadas para el cifrado y firma digital de la informaci´on correspondan a los usuarios que afirman ser los legitimos due˜nos. De esta forma una nueva entidad aparece en el esquema de autenticaci´on, la cual tiene la tarea de verificar que que el v´ınculo entre la persona posedora de la llave p´ublica y su identidad sean correctos. A trav´es de esta nueva entidad tanto Ana como Beto est´an seguros que estan intercambiando informaci´on con la persona adecuada. La figura §2.2 muestra la relaci´on de confianza entre Ana, Beto y la tercera entidad de confianza.
La manera en la cual la tercera entidad de confianza logra certificar que las llaves publicas corresponden a Ana y a Beto es a trav´es de la firma digital de un documento
Ana Beto Entidad
de Confianza
Figura 2.2: Autenticaci´on a trav´es de una tercera parte de confianza
elctr´onico denominado “certificado digital ” el cual contiene informaci´on de la identidad del usuario y su llave p´ublica respectiva. De esta forma, si tanto Ana como Beto confian en la entidad de confianza, no existe duda de la autenticidad de las partes en el proceso de comunicaci´on.
La Criptograf´ıa de Llave P´ublica es una herramienta que permite la implementa- ci´on de servicios de seguridad como autenticaci´on, confidencialidad, integridad de datos y no-repudio. En estas aplicaciones, la llave p´ublica se hace de conocimiento general, pero cuando una parte utiliza la llave p´ublica de la contraparte, no se tiene certeza real de que la llave pertenezca a quien dice ser. Debido a esto, se requiere una sistema el cual contenga el registro de las llaves p´ublicas y sus respectivos propietarios entre otros servicios. Este sistema es conocido en la Internet c´omo Infraestructura de Llave P´ublica (PKI, Public Key Infraestructure) y su principal tarea es permitir la autenti- caci´on confiable de entidades mediante el uso de Certificados Digitales basados en el est´andar X.509. En este contexto, la entidad de confianza es denominada “Autoridad Certificadora” y es el m´odulo principal de la infraestructura PKI.
Un certificado digital apegado al est´andar X.509 contiene la informaci´on necesaria para vincular una entidad con su respectiva llave p´ublica. A continuaci´on se muestran algunos campos del certificado X.509.