Académique Documents
Professionnel Documents
Culture Documents
SUPERIORES DE MONTERREY
en Ciencias Computacionales
Director de tesis:
Comisión de tesis:
Nombre Sinodal I
Sinodal
Nombre Sinodal II
Sinodal
3 de junio de 2005
i
Agradecimientos
texto
Resumen
estándar X.509 V3. Los criptosistemas empleados para la generación de certificados son
RSA (1024 bits) y ECC (criptografı́a de curva elı́ptica) utilizando las curvas 163k, 192p,
224p, 233k.
iv
Índice general
Agradecimientos II
Dedicatoria III
Resumen IV
Introducción 1
1.6.1. Autenticación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
v
ÍNDICE GENERAL vi
1.6.3. Confidencialidad . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2. Servicio de autenticación 28
3.2.3. Repositorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5. Análisis de desempeño 72
Conclusiones 80
Referencias 116
biométrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
biométrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
x
Índice de figuras
xi
ÍNDICE DE FIGURAS xii
seguridad.
comunicaciones seguras, entre otras. Por tal motivo, los requerimientos de seguridad
son cada vez mayores, presentándose ası́ un problema que la Seguridad Informática,
fraudes y robo de información vı́a electrónica. Debido a esto es necesario ofrecer tecno-
los certificados digitales ofrecen autenticación con cierto grado de confiabilidad, ya que
1
Introducción 2
que un sistema de comercio electrónico tenga las herramientas necesarias para brindar
un vendedor si una orden de compra es legı́tima? ¿Cómo pueden saber ambas partes si
y muchas otras describen los aspectos que afectan las transacciones electrónicas en las
redes de datos.
3
CAPÍTULO 1. CRIPTOGRAFÍA DE LLAVE PÚBLICA Y FUNCIONES HASH 4
medios desconocidos.
en la transacción.1
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ón de que la llave permanezca en secreto. La figura §1.1 muestra el
Llave Llave
secreta Mensaje secreta
cifrado
!"#$%¨*][Ñ[]_:@!
abcdefghijklmno abcdefghijklmno
"#$*][Ñ[]_:@!"#$
pqrstuvwxyz012 pqrstuvwxyz012
%&()=¨*][Ñ[]_:@!
3456789abcdefg 3456789abcdefg
"#$%&()=¨*][Ñ[]_
hijklmnopqrstuv hijklmnopqrstuv
:_,;[~!3432:@[Ñ[
wxyz012345678 wxyz012345678
]_:@![Ñ[]_:@![Ñ[
9abcdefghijklmn 9abcdefghijklmn
]_:@![Ñ[]_:@![Ñ[
opqrstuvwxyz01 opqrstuvwxyz01
]_:@![Ñ[]_:@! x3
Mensaje en
Mensaje en claro
claro
Algoritmo de Cifrado Algoritmo de Descifrado
(AES, DES, IDEA, etc.) (AES, DES, IDEA, etc.)
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:
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
existen muchas llaves a ser administradas. Para garantizar la seguridad, las llaves
Debido a esto, los sistemas clásicos de llave secreta tienen grandes debilidades. Más
ocurrió en 1976 con la invención de la Criptografı́a de llave pública por parte de Diffie
manejo de llaves, también proporcionó las herramientas necesarias para los servicios de
autenticación y no-repudio.
pública
asimétrica lo cual implica que existan dos llaves separadas, a diferencia de los algoritmos
de llave secreta en los cuales sólo existe una llave. El uso de las llaves tiene consecuencias
ción.
Los sistemas de llave pública requieren que cada usuario A tenga un par de llaves:
una llave pública, 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ública, sólo puede ser descifrado (con el conjunto de reglas D) con su correspondiente
1. Generación 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ública.
Sin embargo, en 1997 una agencia de seguirdad británica (CESG, National Technical Authority for
Information Assurance) dió a conocer documentos en los cuales se demuestra que en 1970, James Ellis
descubrió la criptografı́a de llave pública [Way97, TW01].
CAPÍTULO 1. CRIPTOGRAFÍA DE LLAVE PÚBLICA Y FUNCIONES HASH 7
(figura §1.2); las cuales a su vez, permiten satisfacer los servicios fundamentales de la
Supongamos que Alicia quiere enviar un mensaje m a Benito. Alicia usa la lla-
EKpub (Benito) (m)) obteniendo como resultado c. Benito, una vez recibido el mensaje
cifrado c utiliza su llave privada para descifrar (operación privada, denotada como
Para entender el concepto, se puede usar la analogı́a del sistema de correo. Nosotros
Una vez que el correo está en el buzón sólo el destinatario puede leerlo (asumiendo que
Teóricamente, los sistemas de llave pública pueden ser construidos utilizando fun-
Anillo de
llaves
publicas
Benito Carlos
!"#$%¨*][Ñ[]_:@!
abcdefghijklmno abcdefghijklmno
"#$*][Ñ[]_:@!"#$
pqrstuvwxyz012 pqrstuvwxyz012
%&()=¨*][Ñ[]_:@!
3456789abcdefg 3456789abcdefg
"#$%&()=¨*][Ñ[]_
hijklmnopqrstuv hijklmnopqrstuv
:_,;[~!3432:@[Ñ[
wxyz012345678 wxyz012345678
]_:@![Ñ[]_:@![Ñ[
9abcdefghijklmn 9abcdefghijklmn
]_:@![Ñ[]_:@![Ñ[
opqrstuvwxyz01 opqrstuvwxyz01
]_:@![Ñ[]_:@! x3
f (x) es fácil de calcular para cualquier entrada x, pero el cálculo de f −1 (x) es extre-
madamente complicado. Una función de sólo ida con pasadizo secreto es en la cual
puerta oculta “trapdoor”). Los siguientes dos problemas son considerados los candidatos
número primo y ei ≥ 1.
Encontrar números primos grandes6 es una tarea relativamente fácil, pero el pro-
tal que a ≡ g i (mod p). La utilidad del problema del logaritmo discreto en la
puede ser calculada eficientemente. De tal forma g i (mod p) es una función de sólo
El propósito 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
a
6. A calcula K = (g b ) mod p
7. B calcula K = (g a )b mod p
El esquema RSA inventado por Ron Rivest, Adi Shamir, y Len Adleman fue de-
sarrollado en 1977 y publicado en 1978. RSA está basado en la idea de que factorizar
4. Se selecciona un entero e (1 < e < φ(n)), tal que e sea primo relativo9 de φ.
Cifrado en RSA
El texto en claro es cifrado en bloques, cada bloque debe detener un valor binario
menor que n.
Descifrado en RSA
1. Texto cifrado: C
estén 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ás fácilmente en software o hardware que en otros grupos.
Segundo, los problemas computacionales que son la base de los criptosistemas pueden
ser más dificiles de resolver en otros campos finitos. De tal forma, se puede usar un gru-
po finito G más pequeño que Zn o Zp ∗ pero con el mismo o mejor nivel de seguridad.
CAPÍTULO 1. CRIPTOGRAFÍA DE LLAVE PÚBLICA Y FUNCIONES HASH 12
Como resultado se obtienen tamaños de llave más pequeños y/o implementaciones más
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áficas por Neal Koblitz y Victor
la aritmética de curvas elı́pticas definidas sobre los números reales de forma geométri-
ca para ası́ poder explicar de una manera mucho más intuitiva la adición y doblado
de puntos. Las secciones posteriores explican la definición de curvas sobre los campos
finitos Fp y F2m .
Una curva elı́ptica sobre R es definida como el conjunto de puntos (x, y) que satis-
y 2 = x3 + ax + b (1.1)
0 10 , 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úmeros reales esta conformado por los puntos que
10
La 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ás lı́neas tangentes. Esta propiedad es muy importante, ya que la
operación de doblado de puntos utiliza la lı́nea tangente a la curva en el punto a doblar.
CAPÍTULO 1. CRIPTOGRAFÍA DE LLAVE PÚBLICA Y FUNCIONES HASH 13
Los grupos formados por curvas elı́pticas son grupos aditivos; es decir, su función
básica es la adición. La adición de dos puntos en una curva elı́ptica puede ser definida
geométricamente.
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és de los dos puntos. Esta lı́nea
reflejado con respecto al eje x para obtener R. Un ejemplo de adición de puntos en una
produce intersección con otro punto de la curva elı́ptica; consecuentemente los puntos
grupo.
Para sumar un punto P a sı́ mismo, se traza una lı́nea tangente a la curva en el punto
otro punto, denotado −R. Este punto es reflejado respecto al eje x para obtener R.
Suma: P + Q = R
8
6 Q (x2 , y2)
-R (x3 , -y3)
y 4
–4 –2 2 4 6
x
–2
P (x1 , y1)
–4
R (x3, y3)
–6
–8 y^2 = x^3 - 7x
operación de doblado de punto en una curva elı́ptica definida sobre los números reales
vertical por lo cual no intersecta la curva elı́tpica en ningún otro punto. Por definición,
Doblado: P + P = R
8
6
-R
y 4
P(x1,y1)
–4 –2 2 4 6
x
–2
–4
R(x3,y3)
–6
–8 y^2 = x^3 - 7x
Las operaciónes sobre los números reales son lentas e inexactas debido a errores de
redondeo del punto flotante. Las aplicaciones criptográficas requieren una aritmética
CAPÍTULO 1. CRIPTOGRAFÍA DE LLAVE PÚBLICA Y FUNCIONES HASH 16
11
rápida y precisa; debido a esto los grupos usados en la práctica son Fp y F2m .
Una curva elı́ptica definida sobre Fp puede ser obtenida mediante la asignación de
valores de las variables a y b que estén dentro del campo Fp . El grupo de curva elı́ptica
incluye todos los puntos (x, y) que satisfacen la ecuación §(1.2) sobre Fp junto con el
punto al infinito O.
11
El campo Fp usa números de 0 a p − 1, y los cálculos de sus operaciones son realizadas en módulo
p.
CAPÍTULO 1. CRIPTOGRAFÍA DE LLAVE PÚBLICA Y FUNCIONES HASH 17
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étricamente las operaciones no son claras como en R. Sin embargo, las
reglas algebraicas para la aritmética pueden ser adaptadas para curvas elı́pticas sobre
Fp .
Adición de puntos
xR = s2 − xP − xQ mod p
Doblado de puntos
Si yP 6= 0, el doblado de P es 2P = R donde
(3xP 2 +a)
s= (2yP )
mod p
xR = s2 − 2xP mod p
Los elementos del campo F2m son cadenas de m-bits. Las reglas para la aritmética
sobre F2m pueden ser definidas ya sea por representación polinomial 12 o por represen-
tación de base normal óptima (ONB)13 . Debido a que F2m opera sobre cadenas de bits,
Una curva elı́ptica sobre F2m esta definida por la ecuación §(1.3), donde los elementos
a y b pertenecen a F2m y b 6= 0.
y 2 + xy = x3 + ax2 + b (1.3)
El grupo de curva elı́ptica incluye todos los puntos (x, y) los cuales satisfacen la
Los grupos de curva elı́ptica sobre F2m son grupos finitos y su aritmética no involucra
errores por redondeo al igual que Fp . Esto en combinación con la naturaleza binaria del
12
Los elementos de F2m son polinomios de grados menores que m, con coeficientes en F2 ; es decir,
am−1 xm−1 + am−2 xm−2 + · · · + a2 x2 + a1 x + a0 . Estos elementos pueden ser escritos en forma de
vectores de la forma (am−1 · · · a1 a0 ). El número de elementos de F2m es 2m .
13
Una base óptima proporciona una alternativa para la definición de la multiplicación de los ele-
mentos del campo [ECC04].
CAPÍTULO 1. CRIPTOGRAFÍA DE LLAVE PÚBLICA Y FUNCIONES HASH 19
campo, permite que la aritmética pueda ser implementada muy eficientemente por una
computadora [ECC04].
Adición de puntos
x R = s2 + s + x P + x Q + a
yR = s(xP + xR ) + xR + yP
Al igual que las curvas elı́pticas sobre R, P +(−P ) = O, el punto al infinito. Además,
Doblado de puntos
x R = s2 + s + a
yR = xP 2 + (s + 1)xR
campo finito Fp .
Definición 1.2. Sea un número p > 3. La curva elı́ptica en Fp (denotada como E(Fp ))
el grupo de cuva elı́ptica esta definido por los puntos (Px , Py ) ∈ Fp que satisfacen la
siguiente:
14
Dada una curva elı́ptica E definida en Fp , un punto P ∈ E(Fp ) de orden n y un
punto Q ∈ E(Fp ), determine el entero k, 0 < k < n − 1, tal que Q = kP , sabiendo que
De tal forma, las primitivas de un criptosistema basado en curva elı́ptica son defi-
Generación de llaves
3. Se calcula Q = kP
15
5. Se mantiene en secreto la llave privada k
Operación privada
2. Calcular iP = (x1 , y1 )
3. Calcular r = x1 mod n
Operación pública
4. Calcular u1 P + u2 Q = (x1 , y1 )
5. Calcular v = x1 mod n
6. La firma es aceptada si v = r
ECDSA.
Una funcion hash en Criptografı́a, toma como entrada un mensaje de longitud arbi-
traria y produce como salida una digestión del mensaje de longitud fija. Las propiedades
Dado un mensaje m, la digestión del mensaje h(m) puede ser calculada muy
rápidamente.
CAPÍTULO 1. CRIPTOGRAFÍA DE LLAVE PÚBLICA Y FUNCIONES HASH 23
El algoritmo hash MD516 fue desarrollado por Ron Rivest. Recibe de entrada un
mensaje de tamaño arbitrario y produce una salida de 128 bits. La entrada es procesada
El algormitmo hash SHA fue desarrollado por NIST17 y publicado como FIPS PUB
soportada por protocolos como SSL (Secure Sockets Layer) desarrollado por Netscape,
seguras con tarjetas de crédito el protocolo SET (Secure Electronic Protocol) diseñado
16
El 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/
19
En febrero de 2005 se dio a conocer un nuevo ataque sobre el algoritmo SHA-1. Los autores afirman
que su análisis muestra que las coalisiones de SHA-1 pueden ser encontradas con una complejidad
menor a 269 operaciones 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
CAPÍTULO 1. CRIPTOGRAFÍA DE LLAVE PÚBLICA Y FUNCIONES HASH 24
por VISA y MasterCard, sustenta este tipo de transferencias bancarias. Por supuesto,
y las ideas básicas de la Criptografı́a de llave pública y las funciones hash que permiten
1.6.1. Autenticación
el original
Debido a que la llave privada de B solo es conocida por él mismo, B es la única
entidad que pudo haber cifirado el mensaje r si es que la comparación fue exitosa.
la práctica como llave de sesión), la cual pueda ser usada posteriormente para cifrar y
descifrar mensajes mediante un sistema de llave secreta como DES. Los siguientes son
A genera un número alearorio k para ser usado como llave secreta (llave de sesión)
que obtenga de alguna forma los mensajes no podrá conocer el secreto compartido21 .
1.6.3. Confidencialidad
debido a que los sistemas de llave secreta son aproximadamente 100 a 200 veces más
rápidos [Moh04]. De tal forma, los criptosistemas de llave pública son usados como
una herramienta para que los sistemas de cifrado simétrico puedan establecer su llave
secreta.
Los sistemas de llave pública proporcionan firmas digitales las cuales no pueden
ser repudiadas. El concepto es muy similar al proceso del mundo real donde se firma
Alicia Benito
M M M
E E E
N N N
S S S Hash h(m)
A A A
J J J Firma NO
E E E Válida
no si
Anillo de ¿iguales?
llaves
publicas
Llave
privada
Hash de Alicia
Firma Verificada
Llave pública
de Alicia
h(m) h´(m)
Operación Privada Operación Pública
Firma Digital
por el documento; pero es más poderoso pues también protege contra alteraciones del
documento original. El esquema de firma digital se basa en dos algoritmos, uno de firma
verificar que A firmó el mensaje con su llave privada. Y debido a que la firma depende
del contenido del mensaje, nadie más puede usar la fima con otro mensaje.
mensaje; lo que se hace es calcular el resumen hash del mensaje (h(m)) y éste es el que
Las firmas digitales también 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 únicamente el valor hash del mensaje, en lugar de
B compara el valor hash calculado con el valor que recibió. Si son idénticos,
permita proveer plenamente los servicios anteriores, sobre todo los servicios de autenti-
Servicio de autenticación
referente a un determinado objeto, como la identidad del remitente (ya sea un disposi-
estaban ligadas intrı́nsecamente, pero con el descubrimiento de las funciones hash, las
cación del origen de datos y consiste en la verificación de que una de las partes
28
CAPÍTULO 2. SERVICIO DE AUTENTICACIÓN 29
obtenida en el protocolo.
asegure que ninguna otra entidad no confiable pueda tener acceso a la llave privada
correspondiente.
en el tiempo TVPs1
[MOV01].
activos.
siguientes aspectos:
Algo que el usuario conozca (una palabra clave, un NIP, nombre de usuario, etc.)
Algo que el usuario sea (huella digital, reconocimiento de voz, la anatomı́a del
inalámbricos
de ondas electromagnéticas que viajan por el espacio libre. Los mensajes inalámbricos
CAPÍTULO 2. SERVICIO DE AUTENTICACIÓN 31
lulares, pagers son lógicamente menos seguros que sus contrapartes alámbricos. Esto
que estos dispositivos envı́an información a través del medio ambiente donde cualquier
tampoco previene que el remitente del mensaje refute que ha enviado el mensaje (no-
trabajo de tesis hace hincapié en el uso de criptosistema ECC el cual permite obte-
Supongamos que Ana quiere establecer una sesión segura con Beto para el envı́o
intercambio de llaves. Si un atacante, Carlos, se hace pasar por Beto sin que Ana
Existen varias formas en las cuales Carlos puede llevar a cabo el ataque. La figura §2.1
ga (mod p) gx (mod p)
Ana Carlos Beto
gx (mod p) gb (mod p)
autenticas por llaves apócrifas. Supongamos que Beto envı́a a Ana su llave pública
CAPÍTULO 2. SERVICIO DE AUTENTICACIÓN 33
con su propia llave pública. De igual forma Carlos puede también lograr la misma
meta si Ana descarga la llave pública de Beto de algún servidor en la red mediante la
sustitución previa de las llaves. En resumen, Carlos puede intentar distribuir su propia
resolver estos problemas. Esta sección explica diferentes métodos para lograr brindar
de entidad, deciden que una tercera parte en la cual ambos confian, “certifique” que las
llaves públicas usadas para el cifrado y firma digital de la información correspondan a los
usuarios que afirman ser los legitimos dueños. De esta forma una nueva entidad aparece
de esta nueva entidad tanto Ana como Beto están seguros que estan intercambiando
La manera en la cual la tercera entidad de confianza logra certificar que las llaves
Entidad
de
Confianza
Ana Beto
del usuario y su llave pública respectiva. De esta forma, si tanto Ana como Beto confian
de comunicación.
pero cuando una parte utiliza la llave pública 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úblicas y sus respectivos propietarios entre
para vincular una entidad con su respectiva llave pública. A continuación se muestran
contraparte.
Algo que la entidad conoce (la palabra clave que le permite recuperar su llave
privada)
Algo que la entidad tiene (la contraparte de la llave pública certificada, es decir,
su llave privada)
sea. Para lograr esta meta se require métodos de autenticación biométrica, los cuales
(PKI).
CAPÍTULO 2. SERVICIO DE AUTENTICACIÓN 36
nes de sus caracterı́sticas humanas [JBP99] ya sea fisiológicas como por ejemplo: huella
digital, iris, retina, rostro, etc., o de conducta como la forma en la que escribe, su firma
privada, una tarjeta magnética o un chip), algo que el usuario sabe (como su palabra
clave). Estos sistemas tradicionales no identifican al usuario como tal. Los objetos o
cada persona, los identificadores biométricos son lógicamente más confiables y capaces
El esta tesis se utiliza autenticación biométrica de huellas digitales para poder ofrecer
Consorcio BioAPI
mación biométrica (API, por sus siglas en inglés) la cual permita tener independencia
la biblioteca estándar (API), la cual es compatible con una amplia gama de programas
y aplicaciones biométricas.
6
Los beneficios que otorga el estándar en lo referente a negocios son:
4
El sitio oficial del consorcio es www.bioapi.org.
5
Entre estas organizaciones se pueden mencionar Hewlett-Packard, NIST, Intel, Microsoft, NSA,
Atmel, ST Microelectronics, entre otras.
6
Muchas caracterı́sticas dependen de la implementación comercial del estándar BioAPI. En este
caso particular se usa la implementación por HP de biometrı́a de huella digital en el dispositivo móvil
h5500.
CAPÍTULO 2. SERVICIO DE AUTENTICACIÓN 38
cas.
Los algoritmos asimétricos como Diffie-Hellman, RSA, ECC han sido un parteaguas
los cuales no podrı́an ser implementados usando criptosistemas simétricos1 . Pero por
sı́ mismos, los algoritmos de llave pública no garantizan seguridad absoluta. Por ejem-
Para permitir que la Criptografı́a de llave pública pueda ayudar a cumplir los servi-
cual permita cubrir los huecos de los criptosistemas. A esta infraestructura se le cono-
2
ce como PKI (Infraestructura de Llave Pública). Actualmente la construcción de la
infraestrucutura de llave pública es uno de los aspectos más importantes en las aplica-
1
El problema de intercambio de llaves en un criptosistema simétrico ha sido resuelto con ayuda de la
Criptografı́a Cuántica. Esta tecnologı́a hace uso de un principio fundamental de la Fı́sica Cuántica --
la observación causa perturbación -- ası́ que el intercambio de llaves a través de redes de fibra
óptica puede realizarze con absoluta seguridad ya que el medio de intercambio es un canal seguro. Para
más información véase el sitio oficial de ID Quantique, http://www.idquantique.com/qkd.html
2
Public Key Infraestructure, http://www.pki-page.org/
39
CAPÍTULO 3. PKI (INFRAESTRUCTURA DE LLAVE PÚBLICA) 40
móviles.
Los problemas que surgen del uso de algoritmos asimétricos sin el respaldo de in-
Esto significa que C es capaz de usarla para leer todos los mensajes que fueron
revocación de llaves). Pero aún existe un problema, ¿Cómo saben las personas
que envı́an correo electrónico a A, que su par de llaves han sido revocado?
mantiene su llave privada en secreto, significa que nadie más puede generar una
firma digital de un documento más que A mismo. Sin embargo, A puede no aceptar
su firma digital afirmando simplemente que la llave con la cual se generó la firma
no es la suya.
CAPÍTULO 3. PKI (INFRAESTRUCTURA DE LLAVE PÚBLICA) 41
El problema es que no hay forma de probar que la llave particular que generó la
empleado, de manera tal que cada empleado podrá cifrar y firmar información.
validez.
de llave pública.
Para que la Criptografı́a de llave pública pueda ser usada con éxito en aplicacio-
nes comerciales en redes como Internet, es necesario contar una infraestructura que
mantenga vı́nculos con las llaves publicas utilizadas y sus respectivas entidades que las
posean.
certificados digitales, permite que otras entidades verifiquen los vı́nculos con las llaves
publicas, y provee los servicios necesarios para la administración continua de las llaves
en un sistema distribuido.
CAPÍTULO 3. PKI (INFRAESTRUCTURA DE LLAVE PÚBLICA) 42
Un Certificado Digital es un documento que vı́ncula una llave pública con una
entidad final y que es firmado por una autoridad certificadora para demostrar su validez
Entidad final. Es el término genérico para denotar a los usuarios finales o cual-
quier entidad que pueda ser identificada (personas, servidores, compañı́as, etc.)
que permita el acceso por parte de las entidades finales a dichos documentos.
CAPÍTULO 3. PKI (INFRAESTRUCTURA DE LLAVE PÚBLICA) 43
Emisor CRL. El emisor CRL es un componente opcional el cual puede ser utili-
zado por una AC para delegar las tareas de publicacion de las listas de revocación.
pública.
R
e
Consulta de certificados y CRL Entidad Final
p
o
s
i
t
o
r
i Autoridad de Registro * Registro de usuarios
o AR * Inicio de certificación
* Recuperación de llaves
Publicación
* Solicitudes de revocación
d de certificados
e
c
e Autoridad Certificadora
r (AC)
t
i
Publicación de certificados y CRL
f
i Certificación
c entre una o
a más ACs
d
o
s Publicación
de CRLs
y
Emisor CRL
C Autoridad Certificadora
R (AC)
L
una arquitectura de seguridad. La AC es conocida por sus dos atributos más importan-
certificado digital incluye la llave pública, información acerca de la identidad del sus-
criptor que posee la llave privada, un perı́odo de validez del certificado, y la firma digital
(CRLs), las cuales son listas de los certificados que han sido invalidados. Los certificados
pueden ser revocados por distintas razones, por ejemplo, si un propietario ha perdido
el propietario de la llave privada abandona la empresa para la cual trabaja. Las CRLs
con estos requerimientos, una AC puede delegar ciertas funciones a otros componentes
de la infraestructura.
una AC expide un certificado, esta asegurando que el sujeto (la entidad nombrada en
está también afirmando que que la información corresponde a la misma entidad. Esta
polı́ticas para el tipo de aplicaciones en las cuales puede ser utilizada la llave pública.
Cuando el sujeto del certificado es otra AC, el emisor está afirmando que los certificados
La AC inserta su nombre en cada certificado y CRL que genera, y los firma con su
llave privada. Una vez que los usuarios establecen que confı́an en la AC (directamente,
o a través de una ruta de certificación) ellos pueden confiar en los certificados expedidos
por dicha AC. Los usuarios fácilmente pueden identificar los certificados expedidos por
es genuino, ellos pueden verificar la firma utilizando la llave pública de la AC. Como
contenido del certificado puede reflejar información presentada por la entidad solicitante
del certificado, tal como licencia de manejo, o recibos de pagos recientes. también puede
reflejar información proporcionada por una tercera parte. Por ejemplo, el lı́mite de
crédito asignado a una tarjeta de crédito refleja la información obtenida del buró de
Cada AC mantiene una lista de las ARs acreditadas; es decir, las ARs que son
entidad acreditada. Al igual que una AC, la AR debe de tener un cuidado extremo en
3.2.3. Repositorio
ción referente a PKI tal como los certificados de llave pública y las CRLs. Un repositorio
puede estar basado en la especificación X.500 con acceso para clientes a través de (Ligh-
tweight Directory Access Protocol) (LDAP), o incluso puede estar basado en algo mucho
más sencillo como la descarga de un archivo plano de un servidor remoto vı́a FTP, o
HTTP.
4
El grupo de trabajo IETF PKIX se ha dedicado al desarrollo de protocolos
4
El grupo de trabajo PKIX fue establecido en 1995 con el propósito de desarrollar estandares de
Internet necesarios para soportar una infraestructura de llave pública, http://www.ietf.org/html.
CAPÍTULO 3. PKI (INFRAESTRUCTURA DE LLAVE PÚBLICA) 47
También es posible delegar ciertas funciones de los sistemas del cliente a terceras
5
partes confiables. Por ejemplo, el protocolo OCSP puede ser usado para preguntar a
una tercera parte acerca del estado de revocación de uno o más certificados.
En cualquier caso, el funcionamiento clave del repositorio es que las entidades finales
caso que sean capaces de solicitar que esta tarea sea realizada en su representación.
expedir la lista de rebocación asociada con esos certificados. Sin embargo, es posible
Las entidades finales PKI son organizaciones o individuos que usan PKI, pero no
emiten certificados. Los entidades dependen de otros componentes PKI para obtener
Las entidades finales algunas veces se confunden con usuarios finales. A pesar que
frecuentemente esto es el caso, el término entidad final significa algo bastante más
génerico. Una entidad final puede ser un usuario final, un dispositivo como un ruteador
Las entidades finales estan ligadas a los certificados, y éstas deben de inscribirse a
la infraestructura de llave pública antes que puedan participar como miembros PKI.
Las entidades finales de PKI pueden obtener certificados de diferentes ACs, de-
está tı́picamente compuesta de muchas ACs vinculadas por “rutas de confianza”. Una
ruta de confianza conecta a un componente confiable con una o más terceras partes
confiables, de tal forma que todas las partes puedan tener confianza en la validez de
la AC que emitió el certificado del remitente puede aún validar el certificado del re-
importante resaltar que los usuarios finales confı́an en sus respectivas ACs que a su vez
que pueda ser utilizada a través de empresas o agencias gubernamentales. Existen dos
arquitecturas PKI tradicionales las cuales permiten alcanzar esta meta, las arquitecturas
jerárquica y de malla. Más recientemente, varias empresas están buscando vincular sus
propias PKIs con las de sus socios de negocio. Una tercer método, la arquitectura de
puente está siendo desarrollada para atacar este problema. Estas tres arquitecturas son
la cual expide certificados a las ACs subordinadas. Estas ACs pueden expedir
AC4 a su vez fue expedido por la AC2 , y finalmente el certificado de la AC2 fue
emitido por la AC1 (la AC raı́z), cuya llave pública es conocida por la AC de
3
2 3
2 5
Alicia
Alicia
4 5
Benito
Benito
Malla: En este esquema las ACs se certifican una con otra, resultando en una
malla de relaciones de confianza entre las ACs. La figura §3.2 (b) ilustra un ejemplo
Alicia conoce la llave pública de la AC3 , mientras Benito conoce la llave pública
de la AC4 . Existen diversas rutas de certificación que pueden tomarse para llegar
cual ella conoce su llave pública la cual le permite realizar la tarea de verificación.
Puente: La arquitectura de puente fue diseñada para conectar diversas PKIs sin
capaz de establecer relaciones uno-a-uno con las diferentes PKIs. Estas relaciones
pueden ser combinadas para formar un puente de confianza que permita conectar
como una PKI de malla, la AC puente establece una relación con sólo una de las
AC principal.
Las estructruras de datos básicas utilizadas en PKI son los certificados de llave
[HPFS02, For01]. El certificado X.509 ha evolucionado para ser más flexible y poderoso
y puede ser usado para portar una gran variedad de información, mucha de la cual
CAPÍTULO 3. PKI (INFRAESTRUCTURA DE LLAVE PÚBLICA) 51
es opcional. El certificado de llave pública X.509 está protegido por la firma digital
del emisor. Los usuarios del certificado saben que el contenido no ha sido corrompido
diez campos comunes, seis de los cuales son obligatorios y cuatro opcionales. Los campos
obligatorios son: número serial, identificador de algoritmo de la firma, nombre del emisor
del certificado, perı́odo de validez, llave pública, y el nombre del sujeto. Los cuatro
campos opcionales son: número de versión, identificadores únicos tanto de emisor como
sujeto, y las extensiones. Los campos opcionales aparecen únicamente en los certificados
X.509.
Número serial. El número serial es un número entero asignado por el emisor del
certificado (la AC). Este número debe de ser único para cada certificado generado. La
combinación del número serial y el nombre del emisor identifica únicamente a cualquier
certificado.
Firma. El campo de firma indica cual fue el algoritmo de firma digital que fue uti-
lizado para proteger el certificado. Un ejemplo son los dos tipos de firma utilizados en
sistema de llave pública utilizado mientras que la segunda parte identifica al algoritmo
Validez. El campo de validez indica las fecha en la cual el certificado llega a ser
sujeto puede ser cualquier entidad (usuario final, dispositivos de hardware, compañı́as,
etc.).
Información de llave pública. Este campo contiene la llave pública del sujeto,
este campo es utilizada para verificar las firmas digitales del sujeto.
Identificador único del emisor y del sujeto. Estos campos contienen identifi-
del emisor son utilizados para la reutilización del nombre del emisor y el nombre del
sujeto. Sin embargo, se ha probado que este mecanismo no es una solución satisfactoria.
versión 3. Si el campo está presente, entonces el certificado contiene una o más exten-
las extensiones de los certificados han sido definidas por el ISO7 y ANSI8 y la razón
ganización puede definir una extension privada para poder cumplir sus requerimientos
6
X.500 es un estándar de la ISO (International Organization for Standardization) y el ITU (Inter-
national Telecommunication Union) que define la estructuración jerárquica de los directorios globales.
7
International Organization for Standardization, http://www.iso.org/
8
American National Standards Institute, http://www.ansi.org/
CAPÍTULO 3. PKI (INFRAESTRUCTURA DE LLAVE PÚBLICA) 53
v3 puede no ser completamente leible por las implementaciones que soportan certifica-
dos X.509 v3. Cuando alguna extensión de certificado no es conocida por la aplicación
que lo recibe, la incompatibilidad se hacén presente. Esta es la razón por la cual existe
como no-crı́tica la aplicación lo único que hace es ignorar esa extensión; por otro lado, si
es marcada como crı́tica el resultado es que el certificado no puede ser utilizado debido
damente, los datos en un certificado digital puede dejar de ser confiables antes del
vencimiento del certificado. Por ejemplo, si una entidad final cambia la la dirección
llave privada de una usuario fue comprometida. Debido a estas causas, los emisores
los certificados que han emitido. Este mecanismo es denominado X.509 Certification
La CRL está protegida por la firma digital del emisor CRL. Si la firma puede ser
verificada, el usuario CRL sabe que el contenido no ha sido corrompido desde que la
firma fue generada. Las CRLs contienen varios campos comunes, y al igual que los
9
En los certificados generados en esta tesis se hace uso de dos extensiones privadas, una para
almacenar la información biométrica y otra para agilizar el procesamiento del filtrado de campos. En
el capı́tulo §4 se discutirá más ampliamente los detalles de la implementación.
10
En la presente tesis se utilizan dos extensiones de certificado las cuales se marcan como no-crı́ticas
con el objetivo de mantener la compatibilidad.
CAPÍTULO 3. PKI (INFRAESTRUCTURA DE LLAVE PÚBLICA) 54
Firma digital de la AC
...
...
Los campos que contiene una CRL X.509 son los siguientes:
actualización.
Certificados revocados. El campo contiene una lista de todos los certificados re-
vocados. Por cada certificado revocado se encuentra una entrada que indica el número
opcionales CRL. Las entradas de extensiones son empleadas para proporcionar infor-
2.
CRLs.
El ITU y ANSI han definido varias extenciones para las CRL X.509. Cada extensión
al igual que las extensiones de certificados de llave pública pueden ser marcadas como
crı́tica. Sin embargo, las extensiones no reconocidas que son no-crı́ticas simplemente
son ignoradas.
CAPÍTULO 3. PKI (INFRAESTRUCTURA DE LLAVE PÚBLICA) 56
Emisor CRL
(Nombre X.500) Llave privada
Acutualización Actual del Emisor CRL
(Fecha/Hora)
Acutualización Próxima
(Fecha/Hora) opcional
Extensiones CRL
deben aún ser capaces de recobrar los datos que el empleado habı́a cifrado, lo cual puede
recuperar llaves pueden incluir el olvidó su frase clave de un usuario para desbloquear
cifrados, las llaves de cifrado deben ser respaldadas y almacenadas de una forma segura.
Sin embargo, las llaves para firmas digitales, no deben ser respaldadas debido a que esto
un usuario y también para especificar los privilegios que goza. La idea fundamental en
de entidades: algo que el usuario conozca (una frase clave) y algo que el usuario posea
algo que conozca o posea; si no también, por algo único en él, algo que sea; por ejemplo,
diante algo que el usuario conozca, algo que el usuario posea, y algo que el usuario
sea.
58
CAPÍTULO 4. IMPLEMENTACIÓN DEL SISTEMA 59
Las siguientes secciones proporcionan una descripción del sistema y explica de-
desarrolló.
estándar X.509v3. Los certificados pueden ser creados ya sea utilizando el criptosistema
RSA o ECC (curva elı́ptica). Además existe la opción de poder incorporar información
ción en los tres niveles; es decir, a través de algo que el usuario sea, algo que conozca y
Las lecturas biométricas de la huella digital de los usuarios finales es realizada con el
(iPAQ h5550) cuenta con hardware biométrico, el cual permite la realización de lecturas
de huellas digitales.
El apéndice §C explica con mayor detalle el funcionamiento y las opciones del sistema
desarrollado.
CAPÍTULO 4. IMPLEMENTACIÓN DEL SISTEMA 60
RSA
Hardware biométrico ECDSA
(iPAQ h5550) RFC3279
RFC3280
FIPS 182-2
Criptografía de llave Criptografía de llave
Funciones de resumen
pública secreta
ECC
RSA AES SHA-1 MD5
(curva elíptica)
La figura §4.1 muestra el diagrama a bloques de los principales módulos que con-
lizado y posteriormente se explican las funciones respectivas de cada módulo que con-
lett Packard. La figura §C.1 del apéndice §C muestra una fotografı́a de ese dispositivo.
de Oregon State. Esta contiene una amplia variedad de criptosistemas tanto de llave
apegado al estándar ECDSA [JMV01] (Elliptic Curve Digital Signature). La figura §4.2
Para ampliar la información referente a los estándares que regulan los criptosistemas
ECDSA
Algoritmo de
Firma Digital con
Curva Elíptica
Números
Generación de
Grandes y Aritmética de
Números
Aritmética Curva Elíptica
Aleatorios
Modular
Aritmética de
Campos Fq
Se utilizó el criptosistema simétrico AES de 128 bits para la protección de las llaves
privadas (RSA y ECC) tanto de los usuarios finales como de la propia AC Móvil. La
figura §4.3 muestra la forma en la cual se descrifra la llave privada para ser utilizada
privada.
Llave privada
cifrada
Funciones hash
(AES de 128 bits) que protege la confidencialidad de las llaves privadas RSA y ECC.
El algoritmo SHA-1 (160 bits) fue utilizado como función resumen para asegurar la
Para más información sobre estos algoritmos de digestión véase [Riv92, DK00b].
CAPÍTULO 4. IMPLEMENTACIÓN DEL SISTEMA 63
ción biométrica la cual está basada en la implementación del estándar BioAPI [Bio00]
llas digitales conocida como FingerChip desarrollada por Atmel Corporation1 . La tec-
Inc.2 .
co3 el cual realiza un mapeo analógico de temperatura a una imagen digital. El sensor
detecta las diferencias de temperatura entre los bordes y valles de la huella digital.
Las siguientes son definiciones necesarias para explicar un poco más en detalle la
FAR - False Accept Rate, tasa de falsos positivos (el usuario fue autenticado
FRR - False Reject Rate, tasa de falsos negativos (el usuario que es quien dice
llas.
Las funciones básicas del la implementación del estándar BioAPI son las siguientes:
Captura, permite obtener una lectura biométrica de la huella digital del usuario
compara los datos biométricos del usuario con el registro almacenado en su base
del usuario contra todos los registros de su base de datos (comparación uno a
muchos).
ca permiten analizar las imágenes de huellas digitales y extraer la información que puede
ser usada para la identificación única de una persona. El procesamiento consta de dos
patrones de huella digital, número de protuberancias, etc. Los resultados de este análisis
calidad de los datos recolectados. Es muy importante ya que una buena confiabilidad
puntos detallados y conteo de bordes, son organizados en plantillas. Estas son llamadas
plantillas de referencia.
tra es comparada con un conjunto de plantillas referencia. Debido a que una similitud
del 100 % no es común debido a varios factores, se establece una margen de proba-
A través de las secciones anteriores se han descrito los módulos principales que con-
BioAPI). La siguiente sección aborda las técnicas necesarias para dar formato a los
gital X.509v3. Este formato está definido a través del lenguaje ASN.1 [ASN02] (Abstract
Syntax Notation One). Debido a esto, es necesario contar una biblioteca que permita
ASN.1 es una norma estándar para representación de datos que utilizan muchas
Para esta tesis se desarrolló una biblioteca subconjunto del lenguage ASN.1 espe-
codificador, los cuales son necesarios para la generación y análisis de los certificados
digitales.
Codificador ASN.1
Este módulo es el encargado de dar formato a todos los datos del certificado digital
Decodificador ASN.1
Una vez descritas todos los componentes que conforman la Autoridad Certifica-
digitales.
CAPÍTULO 4. IMPLEMENTACIÓN DEL SISTEMA 68
3. Captura de huella digital del usuario final (únicamente en caso que se haya selec-
4. Selección del algorimo de firma digital RSA o ECDSA. En el caso de haber selec-
224p, 233k).
mediante la información capturada a través de las interfaces gráficas del software. Una
vez terminado el proceso de captura de datos y selección del algoritmo de firma digital
Una vez generada la estructura del certificado TBS se procede a la firma digital
§4.5. Cabe mencionar que la llave privada fue descifrada utilizado el algoritmo AES,
conforman §4.6.
CAPÍTULO 4. IMPLEMENTACIÓN DEL SISTEMA 69
Versión
Número de Serie
Algoritmo
Parámetros
Entidad Emisora
(Nombre X.500)
Entidad Final
(Nombre X.500)
Algoritmo
Parámetros
Lave Pública
Información biométrica
(BioAPI)
Llave privada
de la
Autoridad
Certificadora
160 bits
Certificado TBS
SHA-1 Firma digital de la AC
Operación Privada
§4.7. Una vez identificada la estructura TBSCertificate se pasa a través de una función
resumen del tipo SHA-1 y se procede con la verificación digital. La figura §4.8 muestra
el proceso. Nótese que únicamente se está validando la firma digital, una aplicación real
Certificado TBS
Certificado X.509
Certificado TBS
Codificador
Identidicador de Algorit mo ASN.1 Identidicador de Algorit mo
Firma digital de la AC
Firma digital de la AC
Certificado TBS
Certificado X.509
Certificado TBS
Decodificador
ASN.1 Identidicador de Algoritmo
Identidicador de Algoritmo
Firma digital de la AC
Firma digital de la AC
AC móvil. Además se presenta una comparación entre los criptosistemas RSA y curva
elı́ptica ECC.
CAPÍTULO 4. IMPLEMENTACIÓN DEL SISTEMA 71
Certificado
corrupto
Firma digital de la AC no si
Anillo de ¿iguales?
llaves
publicas
Certificado
verificado
Llave pública
de la AC
h´(m)
Operación Pública
Análisis de desempeño
Una de las motivaciones principales para utilizar algoritmos de curva elı́ptica en esta
dispositivo móvil es de gran importancia los tiempos de generación de llaves, ya que esta
El PDA utilizado para las pruebas es el Hewllet-Packard modelo iPAQ h5550. Cuen-
72
CAPÍTULO 5. ANÁLISIS DE DESEMPEÑO 73
Para esta prueba se utilizó el software desarrollado con una ligera modificación,
selección del algoritmo y la consiguiente generación de 100, 1000 y 2000 pares de llaves.
Esta prueba mide el tiempo necesario para firmar un documento digital. Para este
propósito se generó un mensaje aleatorio de 1KB y luego se procedió con la firma digital
RSA y ECDSA. El algoritmo de digestión que se utilizó tanto en RSA como ECDSA
es SHA-1.
de firma digital 100, 1000, y 10000 veces. Los tiempos obtenidos fueron consisentes en
los tres casos. Los resultados obtenidos son mostrados en la tabla §5.2
CAPÍTULO 5. ANÁLISIS DE DESEMPEÑO 74
Tabla 5.2: Tiempos requeridos para firma digital de un mensaje aleatorio de 1KB.
Esta prueba mide el tiempo necesario para verificar la firma de un documento digital
de 1KB. Para este propósito se utilizó el mismo mensaje de la prueba de firma digital.
Las rutinas de firma digital fueron ejecutadas 100, 1000, y 10000 veces. Los resul-
Esta prueba mide únicamente el tamaño en bytes de los certificados X.509 v3 genera-
dos por la Autoridad Certificadora. Los resultados de la tabla §5.4 muestran certificados
generados con RSA y ECDSA con y sin información biométrica de huella digital.
CAPÍTULO 5. ANÁLISIS DE DESEMPEÑO 75
Esta sección compara los resultados obtenidos con RSA, ECDSA, y la inclusión de
Como era de esperarse ECDSA fue más rápido y eficiente que RSA [GGCS02], de
ECDSA con la curva elı́ptica 163k. Esta curva permitió lograr los mejores tiempos en las
tres pruebas (generación de llaves, firma digital, y verificación de firma digital). Además
debido a los parámetros de la curva 163k, el tamaño del certificado digital generado es
el más pequeño. Todas estas propiedades hacen que ECDSA con la curva 163k sea ideal
para aplicaciones inalámbricas y dispositivos con poco poder computacional. Por otro
ración a cualquier modalidad de curva elı́ptica (en algunos casos casi en dos ordenes
Generacion de llaves
130 125 ms
120
110
100
90
82 ms
80
Tiempo
70
60
50
40
30
22.5 ms
20
12.5 ms
10
0
163 K 192 P 224 P 233 K
En la generación de firma digital el algoritmo más rápido fue ECDSA con la curva
163K. Esto es lógico ya que la curva es tipo Koblitz1 . El algorimo RSA es el más lento
debido al tamaño de su llave privada. La figura §5.2 muestra la comparación entre los
algoritmos.
1
Las curvas Koblitz son una clase de curvas elı́pticas definidas sobre F2m cuyas ecuaciones tienen
coeficientes en F2 . Este tipo de curvas permite realizar muy eficientemente el algoritmo de multiplica-
ción escalar (kP ), lo cual produce un considerable aumento en la velocidad de procesamiento [ECC97].
CAPÍTULO 5. ANÁLISIS DE DESEMPEÑO 77
35
30
25
Tiempo
20
15
10
6.4 ms
5.0 ms
5 3.1 ms 3.4 ms
0
163 K 192 P 224 P 233 K RSA–1024
En esta prueba RSA es mucho más competitivo que en las anteriores. RSA tuvo el
segundo mejor tiempo para la verificación. Esto se debe a una elección conveniente del
más el mejor tiempo lo obtuvo ECDSA con la curva 163k. La figura §5.3 muestra la
comparación.
con RSA (1024) y ECDSA (163k, 192p, 224p, 233k). La diferencia en tamaño de los
certificados digitales RSA y ECDSA es realmente poca. RSA y ECDSA con la curva
163k solamente tienen una diferencia de 21 bytes. Incluso el tamaño de los certificados
RSA es menor que ECDSA con las curvas 192p, 224p, y 233k. La razón que los certifi-
CAPÍTULO 5. ANÁLISIS DE DESEMPEÑO 78
14
Tiempo
12 11.7 ms
10
8.0 ms 8.3 ms
8
cados de curva elı́ptica sean incluso de mayor tamaño que los de RSA es debido a que el
generados con RSA y ECDSA con y sin información biométrica de huella digital.2
2
En el apéndice A se muestran los vaciados ASN.1 y hexadecimal de los certificados en los cuales
se realizó esta prueba.
CAPÍTULO 5. ANÁLISIS DE DESEMPEÑO 79
1400
1200
1000
Bytes
800
663
592 618 613
600 569
400
200
de huella digital en los campos de extensión de los certificados digitales emitidos bajo
entidades en tres niveles; es decir, autenticación en base de algo que el usuario conozca
(frase clave o contraseña), algo que el usuario posea (certificado digital), y algo que el
Los certificados digitales emitidos por la Autoridad Certificadora pueden ser genera-
ECC (curvas 163k, 192p, 224p, y 233k) o en el algoritmo RSA (1024 bits). La integri-
dad de los datos contenidos en los certificados digitales está respaldada por el algoritmo
de digestión SHA-1 (160 bits). Las llaves privadas tanto de la autoridad certificadora
como la de los usuarios están protegidas con el algoritmo simétrico AES con longitud
de llave de 128 bits; los 128 bits de la llave AES son obtenidos mediante el algoritmo
80
Conclusiones 81
de digestión MD5 que recibe como entrada la frase clave del propietario.
Las contribuciones del presente trabajo de tesis pueden sumarizarse como sigue:
biométrico integrado.
Trabajo a futuro
Existen varios aspectos que pueden mejorar considerablemente este trabajo de tesis.
que utilice esta plataforma. Por ejemplo, se puede hacer una ligera modificación
al protocolo WTLS para que permita autenticación biométrica entre las entidades
Dependiendo el tipo de aplicación puede ser necesario generar una lista de revo-
repositorio que permita el acceso a dicha lista más el desarrollo de las entidades
Esta información puede ser comprimida para reducir el tamaño del certificado
hasta un 50 %.
Apéndice A
de Sintaxis Abstracta Uno (ASN.1) para ası́ poder entender de una mejor forma la
datos; por ejemplo, el número de bits requeridos para representar un número flotante.
Debido a esto, es importante tener una forma de describir datos de una manera que sea
notaciones de lenguaje.
Es soportado por reglas las cuales determinan los patrones de bits exactos, para
representar los valores de las estructuras de datos; cuando éstas, tienen que ser
83
APÉNDICE A. ASN.1 (ABSTRACT SYNTAX NOTATION ONE) 84
Win32, etc.) y varios lenguajes de alto nivel que mapean la notación ASN.1,
mucho más rica que la de los lenguajes de programación genéricos, tales como
tipos de cadenas.
Para poder explicar de una forma intuitiva el lenguaje ASN.1 consideremos el si-
guiente ejemplo:
Rectangulo, el cual contiene dos campos enteros. Esta especificación es una clase de
estructura de dato que cualquier entidad puede enviar o recibir dentro de un siste-
y se genere el código fuente en el lenguaje deseado (C++, Java, entre otros), se debe
EjemploModulo1
{ iso org(3) dod(6) internet(1) private(4)
enterprise(1) spelio(9363) software(1)
asn1c(5) docs(2) usage(1) 1 }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- Este es un comentario
END
dulo1), el Indentificador de Objeto (OID) que esta entre llaves [iso org(3) dod(6) ...
palabra reservada de ASN.1 al igual que AUTOMATIC TAGS. La sentencia ::= BEGIN,
indica el inicio del las definiciones ASN.1, mientras que la sentencia END finaliza el
módulo. Para más información sobre la compilación y sintaxis del lenguaje ASN.1 véase
O NO CRÍTICA ”.
tamaño. Los siguientes son unos ejemplos de las diferentes formas de definir un entero
en ASN.1:
Este tipo es el equivalente semántico al tipo INTEGER pero con valores enteros
Este tipo de dato permite representar secuencias de bytes, las cuales pueden ser
ejemplo, archivos de video, imágenes, voz, etc. OCTET STRING es utilizado en esta
tesis para representar algunos parámetros en los certificados basados en curva elı́ptica
utilizado para aplicaciones de seguridad. En este caso particular, se utiliza el tipo BIT
STRING para la representación de las firmas digitales generadas por los algoritmos
RSA y ECDSA.
Este tipo de cadena está compuesto por caracteres ASCII. Cada carácter utiliza los
siete bits menos significativos de un byte; por lo cual, existen 128 caracteres diferentes.
En el certificado X.509 se utiliza este tipo para las direcciones de correo electrónico
Este es un tipo de cadena que cuenta únicamente con un alfabeto imprimible. Este
“Z ”y “a ”.. “Z ”).
Este tipo de dato permite la manipulación de la fecha y hora. Los valores que puede
tomar este tipo de dato son cadenas de caracteres del siguiente tipo:
yymmddhhmmZ
yymmddhhmmssZ
yymmddhhmm+hhmm
yymmddhhmm-hhmm
yymmddhhmmss+hhmm
yymmddhhmmss-hhmm
“yymmdd ”representa el año (00 .. 99), mes (01 .. 12), dı́a (01 .. 31), y “hhmmss
”son horas (00 .. 23), minutos (00 .. 59), segundos (00 ..59).
La “Z ”es usada comunmente como sufijo que indica que los valores fueron tomados
”entonces el tipo de dato expresa un valor de tiempo local y está referenciado al GMT
[Lar99].
mentada en esta tesis se utiliza el tiempo GMT para la asignación de los perı́odos de
una organización (ASN.1 Information Site) la cual se encarga de asignar los OID de
acuerdo a un árbol jerárquico. Por ejemplo, el OID que identifica el algoritmo de firma
Existe una gran variedad de datos construidos pero en esta sección sólo se mencionan
Este tipo representa una colección ordenada de otros tipos de datos simples (IN-
Al igual que el tipo SEQUENCE, este es una colección de tipos simples o complejos
Este tipo permite la elección entre varios subtipos especificados. CHOICE es similar
ficado X.509 V3
Para el cálculo de la firma digital, los datos firmados deben de estar codificados
usando ASN.1 (DER) [X.690] [?, HPFS02]. La codificación ASN.1 DER está basada en
serial, entre otros campos. A continuación se muestra la sintaxis para este tipo de dato
compuesto.
por más tipos de datos compuestos. A continuación se listan algunos de estos campos
[HPFS02].
ficación ASN.1 DER del tbsCertificate es usada como entrada para la función de
e incluido en el campo de firma del certificado X.509. Para más información sobre la
este trabajo.
Vaciado ASN.1
1 0000 30 261: SEQUENCE {
2 0004 30 1CA: SEQUENCE {
3 0008 A0 3: [CONTEXT-SPECIFIC 0] {
4 000A 02 1: INTEGER 2
5 : }
6 000D 02 3: INTEGER 7731050
7 0012 30 D: SEQUENCE {
8 0014 06 9: OBJECT IDENTIFIER
9 : sha1withRSAEncryption (1 2 840 113549 1 1 5)
10 001F 05 0: NULL
93
APÉNDICE B. EJEMPLOS DE CERTIFICADOS X.509V3 94
11 : }
12 0021 30 69: SEQUENCE {
13 0023 31 11: SET {
14 0025 30 F: SEQUENCE {
15 0027 06 3: OBJECT IDENTIFIER commonName (2 5 4 3)
16 002C 13 8: PrintableString ’Movil CA’
17 : }
18 : }
19 0036 31 B: SET {
20 0038 30 9: SEQUENCE {
21 003A 06 3: OBJECT IDENTIFIER countryName (2 5 4 6)
22 003F 13 2: PrintableString ’MX’
23 : }
24 : }
25 0043 31 24: SET {
26 0045 30 22: SEQUENCE {
27 0047 06 9: OBJECT IDENTIFIER emailAddress (1 2 840 113549 1 9 1)
28 0052 16 15: IA5String ’movil.ca@cinvestav.mx’
29 : }
30 : }
31 0069 31 D: SET {
32 006B 30 B: SEQUENCE {
33 006D 06 3: OBJECT IDENTIFIER localityName (2 5 4 7)
34 0072 13 4: PrintableString ’D.F.’
35 : }
36 : }
37 0078 31 12: SET {
38 007A 30 10: SEQUENCE {
39 007C 06 3: OBJECT IDENTIFIER organizationName (2 5 4 10)
40 0081 13 9: PrintableString ’ITESM CCM’
41 : }
42 : }
43 : }
44 008C 30 1E: SEQUENCE {
45 008E 17 D: UTCTime ’050221000000Z’
46 009D 17 D: UTCTime ’060329000000Z’
47 : }
48 00AC 30 71: SEQUENCE {
49 00AE 31 1B: SET {
50 00B0 30 19: SEQUENCE {
51 00B2 06 3: OBJECT IDENTIFIER commonName (2 5 4 3)
52 00B7 13 12: PrintableString ’Guillermo Martinez’
53 : }
54 : }
55 00CB 31 B: SET {
56 00CD 30 9: SEQUENCE {
57 00CF 06 3: OBJECT IDENTIFIER countryName (2 5 4 6)
58 00D4 13 2: PrintableString ’MX’
59 : }
60 : }
61 00D8 31 22: SET {
APÉNDICE B. EJEMPLOS DE CERTIFICADOS X.509V3 95
Vaciado Hexadecimal
1 0000 30 82 02 61 30 82 01 CA A0 03 02 01 02 02 03 75
2 0010 F7 6A 30 0D 06 09 2A 86 48 86 F7 0D 01 01 05 05
3 0020 00 30 69 31 11 30 0F 06 03 55 04 03 13 08 4D 6F
4 0030 76 69 6C 20 43 41 31 0B 30 09 06 03 55 04 06 13
5 0040 02 4D 58 31 24 30 22 06 09 2A 86 48 86 F7 0D 01
6 0050 09 01 16 15 6D 6F 76 69 6C 2E 63 61 40 63 69 6E
7 0060 76 65 73 74 61 76 2E 6D 78 31 0D 30 0B 06 03 55
8 0070 04 07 13 04 44 2E 46 2E 31 12 30 10 06 03 55 04
9 0080 0A 13 09 49 54 45 53 4D 20 43 43 4D 30 1E 17 0D
10 0090 30 35 30 32 32 31 30 30 30 30 30 30 5A 17 0D 30
11 00a0 36 30 33 32 39 30 30 30 30 30 30 5A 30 71 31 1B
12 00b0 30 19 06 03 55 04 03 13 12 47 75 69 6C 6C 65 72
13 00c0 6D 6F 20 4D 61 72 74 69 6E 65 7A 31 0B 30 09 06
14 00d0 03 55 04 06 13 02 4D 58 31 22 30 20 06 09 2A 86
15 00e0 48 86 F7 0D 01 09 01 16 13 67 5F 6D 5F 73 69 6C
16 00f0 76 61 40 79 61 68 6F 6F 2E 63 6F 6D 31 0D 30 0B
17 0100 06 03 55 04 07 13 04 44 2E 46 2E 31 12 30 10 06
18 0110 03 55 04 0A 13 09 43 49 4E 56 45 53 54 41 56 30
19 0120 81 9F 30 0D 06 09 2A 86 48 86 F7 0D 01 01 05 05
20 0130 00 03 81 8D 00 30 81 89 02 81 80 1B 35 9E 03 29
21 0140 B5 71 F2 3F 50 F5 29 0C AC B2 FA 8B 27 C4 BD 74
22 0150 C3 BC 07 21 3C BE AE 56 A2 53 A8 CB 94 20 1B 34
23 0160 B9 18 21 83 33 BD 5D E7 49 2D B5 7C 92 F5 1E 5D
24 0170 00 D4 0D 67 74 9B 58 E8 59 EE 6C AF 3F 21 C1 EA
25 0180 55 7C ED 6E 2F 90 F6 D9 75 FA BD D8 BE 1F D7 C2
26 0190 E3 C3 7D 04 15 2B D5 B3 B3 97 45 47 68 BA 2C F7
27 01a0 86 67 AD 57 B5 6C E2 1A 4E B5 F0 90 B5 48 0A E4
28 01b0 E9 0A F9 E3 17 57 87 4F 77 EF DF 02 04 01 00 01
29 01c0 05 A3 0F 30 0D 30 0B 06 05 67 2A 07 05 02 04 02
30 01d0 00 00 30 0D 06 09 2A 86 48 86 F7 0D 01 01 05 05
31 01e0 00 03 81 81 00 05 B7 4F 75 92 56 54 86 B0 14 35
32 01f0 0A F3 7D 15 87 DE 4C F9 07 DE 40 F2 F2 A6 CD 51
33 0200 F2 F5 10 CA 60 69 5E 48 22 86 1D C7 46 17 91 E6
34 0210 71 4D B5 7C 99 CA BE A6 90 39 A1 57 0A CB A4 CF
35 0220 87 A5 58 16 F1 83 78 09 5A A1 9E 58 CF A1 3C C9
36 0230 56 A2 B8 C4 7C 28 55 53 48 C5 FE 9A 59 25 D6 11
37 0240 32 EC A3 6C B5 18 0B BF 34 A5 0B D4 99 A1 59 1C
38 0250 92 01 1D E3 39 39 49 B6 3C C9 FF 83 D8 C7 B4 BB
39 0260 E8 FE AA 2B D4
APÉNDICE B. EJEMPLOS DE CERTIFICADOS X.509V3 98
Vaciado ASN.1
1 0000 30 6A6: SEQUENCE {
2 0004 30 652: SEQUENCE {
3 0008 A0 3: [CONTEXT-SPECIFIC 0] {
4 000A 02 1: INTEGER 2
5 : }
6 000D 02 3: INTEGER 7731168
7 0012 30 B: SEQUENCE {
8 0014 06 7: OBJECT IDENTIFIER ecdsa-with-SHA1 (1 2 840 10045 4 1)
9 001D 05 0: NULL
10 : }
11 001F 30 69: SEQUENCE {
12 0021 31 11: SET {
13 0023 30 F: SEQUENCE {
14 0025 06 3: OBJECT IDENTIFIER commonName (2 5 4 3)
15 002A 13 8: PrintableString ’Movil CA’
16 : }
17 : }
18 0034 31 B: SET {
19 0036 30 9: SEQUENCE {
20 0038 06 3: OBJECT IDENTIFIER countryName (2 5 4 6)
21 003D 13 2: PrintableString ’MX’
22 : }
23 : }
24 0041 31 24: SET {
25 0043 30 22: SEQUENCE {
26 0045 06 9: OBJECT IDENTIFIER emailAddress (1 2 840 113549 1 9 1)
27 0050 16 15: IA5String ’movil.ca@cinvestav.mx’
28 : }
29 : }
30 0067 31 D: SET {
31 0069 30 B: SEQUENCE {
32 006B 06 3: OBJECT IDENTIFIER localityName (2 5 4 7)
33 0070 13 4: PrintableString ’D.F.’
34 : }
35 : }
36 0076 31 12: SET {
37 0078 30 10: SEQUENCE {
38 007A 06 3: OBJECT IDENTIFIER organizationName (2 5 4 10)
39 007F 13 9: PrintableString ’ITESM CCM’
40 : }
41 : }
42 : }
43 008A 30 1E: SEQUENCE {
44 008C 17 D: UTCTime ’050221000000Z’
APÉNDICE B. EJEMPLOS DE CERTIFICADOS X.509V3 100
96 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
97 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00
98 0174 04 1E: OCTET STRING
99 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
100 : 00 00 00 00 00 00 00 00 00 00 00 00 00 01
101 : }
102 0194 03 3E: BIT STRING 0 unused bits
103 : 04 01 72 32 BA 85 3A 7E 73 1A F1 29 F2 2F F4 14
104 : 95 63 A4 19 C2 6B F5 0A 4C 9D 6E EF AD 61 26 01
105 : DB 53 7D EC E8 19 B7 F7 0F 55 5A 67 C4 27 A8 CD
106 : 9B F1 8A EB 9B 56 E0 C1 10 56 FA E6 A3
107 01D4 02 1D: INTEGER
108 : 80 00 00 00 00 00 00 00 00 00 00 00 00 00 06 9D
109 : 5B B9 15 BC D4 6E FB 1A D5 F1 73 AB DF
110 01F3 02 1: INTEGER 4
111 : }
112 : }
113 01F6 03 3E: BIT STRING 0 unused bits
114 : 04 01 0A EB EA CC A8 19 97 60 CB 5B 69 3D 97 97
115 : 45 1B DE 0A 5A C8 2D 73 B7 C2 64 66 6E 7F 94 01
116 : 6C A5 E5 DE 79 3F 6E 19 83 93 7E 78 1D FD AA D9
117 : 06 48 E6 81 D5 13 BD DC FD 30 2A C3 D0
118 : }
119 0236 A3 420: [CONTEXT-SPECIFIC 3] {
120 023A 30 41C: SEQUENCE {
121 023E 30 B: SEQUENCE {
122 0240 06 5: OBJECT IDENTIFIER ’2 23 42 7 5 2’
123 0247 04 2: OCTET STRING
124 : 03 01
125 : }
126 024B 30 40B: SEQUENCE {
127 024F 06 5: OBJECT IDENTIFIER biometric-BIR (2 23 42 7 5 1)
128 0256 04 400: OCTET STRING
129 : 90 01 F4 01 F4 01 00 00 00 00 00 00 00 08 00 55
130 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
131 : 00 00 00 00 00 00 04 00 00 00 04 00 00 04 00 00
132 : 04 32 32 32 32 32 00 00 FF FF FF FF FF FF FF FF
133 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
134 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
135 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
136 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
137 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
138 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
139 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
140 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
141 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
142 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
143 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
144 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
145 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
146 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
APÉNDICE B. EJEMPLOS DE CERTIFICADOS X.509V3 102
147 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
148 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
149 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
150 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
151 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
152 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
153 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
154 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
155 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
156 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
157 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
158 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
159 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
160 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
161 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
162 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
163 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
164 : FF FF FF FF FF FF FF FF 00 00 00 0A 18 18 18 1A
165 : 1E 1E 1E 14 5E 2A 22 58 0C 27 88 38 BE 8D F7 EE
166 : 8D F7 4E 72 35 50 32 3D 88 B8 E0 C2 6D 12 DD 86
167 : 00 32 59 1E 3A 4C 3F 3B 73 33 42 68 36 5B 8F 0F
168 : 9B 8C 05 D7 74 09 DA 47 21 53 B3 E2 5E B5 D9 85
169 : 9E F5 96 A9 EB BD B4 EE EF B4 E8 09 62 12 11 8A
170 : FA 02 3A 20 0A 96 F3 18 90 F7 1C C4 E2 00 00 00
171 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
172 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
173 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
174 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
175 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
176 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
177 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
178 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
179 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
180 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
181 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
182 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
183 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
184 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
185 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
186 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
187 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
188 : 00 00 00 00 00 00 00 00 00 00 00 00 00 8A 58 45
189 : 00 74 77 58 68 46 7B 59 48 66 40 69 00 00 00 00
190 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
191 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
192 : 00 00 00 00 00 00 00 00 00 00 00 00 41 40 00 15
193 : }
194 : }
195 : }
196 : }
197 065A 30 B: SEQUENCE {
APÉNDICE B. EJEMPLOS DE CERTIFICADOS X.509V3 103
Vaciado Hexadecimal
1 0000 30 82 06 A6 30 82 06 52 A0 03 02 01 02 02 03 75
2 0010 F7 E0 30 0B 06 07 2A 86 48 CE 3D 04 01 05 00 30
3 0020 69 31 11 30 0F 06 03 55 04 03 13 08 4D 6F 76 69
4 0030 6C 20 43 41 31 0B 30 09 06 03 55 04 06 13 02 4D
5 0040 58 31 24 30 22 06 09 2A 86 48 86 F7 0D 01 09 01
6 0050 16 15 6D 6F 76 69 6C 2E 63 61 40 63 69 6E 76 65
7 0060 73 74 61 76 2E 6D 78 31 0D 30 0B 06 03 55 04 07
8 0070 13 04 44 2E 46 2E 31 12 30 10 06 03 55 04 0A 13
9 0080 09 49 54 45 53 4D 20 43 43 4D 30 1E 17 0D 30 35
10 0090 30 32 32 31 30 30 30 30 30 30 5A 17 0D 30 36 30
11 00a0 33 32 39 30 30 30 30 30 30 5A 30 71 31 1B 30 19
12 00b0 06 03 55 04 03 13 12 47 75 69 6C 6C 65 72 6D 6F
13 00c0 20 4D 61 72 74 69 6E 65 7A 31 0B 30 09 06 03 55
14 00d0 04 06 13 02 4D 58 31 22 30 20 06 09 2A 86 48 86
15 00e0 F7 0D 01 09 01 16 13 67 5F 6D 5F 73 69 6C 76 61
16 00f0 40 79 61 68 6F 6F 2E 63 6F 6D 31 0D 30 0B 06 03
17 0100 55 04 07 13 04 44 2E 46 2E 31 12 30 10 06 03 55
18 0110 04 0A 13 09 43 49 4E 56 45 53 54 41 56 30 82 01
19 0120 15 30 81 D2 06 07 2A 86 48 CE 3D 02 01 30 81 C6
20 0130 02 01 01 30 1D 06 07 2A 86 48 CE 3D 01 02 30 12
21 0140 02 02 00 E9 06 09 2A 86 48 CE 3D 01 02 03 02 02
22 0150 01 4A 30 40 04 1E 00 00 00 00 00 00 00 00 00 00
23 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
24 0170 00 00 00 00 04 1E 00 00 00 00 00 00 00 00 00 00
25 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
26 0190 00 00 00 01 03 3E 00 04 01 72 32 BA 85 3A 7E 73
27 01a0 1A F1 29 F2 2F F4 14 95 63 A4 19 C2 6B F5 0A 4C
28 01b0 9D 6E EF AD 61 26 01 DB 53 7D EC E8 19 B7 F7 0F
29 01c0 55 5A 67 C4 27 A8 CD 9B F1 8A EB 9B 56 E0 C1 10
30 01d0 56 FA E6 A3 02 1D 80 00 00 00 00 00 00 00 00 00
31 01e0 00 00 00 00 06 9D 5B B9 15 BC D4 6E FB 1A D5 F1
32 01f0 73 AB DF 02 01 04 03 3E 00 04 01 0A EB EA CC A8
33 0200 19 97 60 CB 5B 69 3D 97 97 45 1B DE 0A 5A C8 2D
34 0210 73 B7 C2 64 66 6E 7F 94 01 6C A5 E5 DE 79 3F 6E
35 0220 19 83 93 7E 78 1D FD AA D9 06 48 E6 81 D5 13 BD
36 0230 DC FD 30 2A C3 D0 A3 82 04 20 30 82 04 1C 30 0B
37 0240 06 05 67 2A 07 05 02 04 02 03 01 30 82 04 0B 06
38 0250 05 67 2A 07 05 01 04 82 04 00 90 01 F4 01 F4 01
39 0260 00 00 00 00 00 00 00 08 00 55 00 00 00 00 00 00
40 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
41 0280 04 00 00 00 04 00 00 04 00 00 04 32 32 32 32 32
42 0290 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF
43 02a0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
44 02b0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
45 02c0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
46 02d0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
47 02e0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
48 02f0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
49 0300 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
50 0310 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
APÉNDICE B. EJEMPLOS DE CERTIFICADOS X.509V3 105
51 0320 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
52 0330 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
53 0340 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
54 0350 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
55 0360 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
56 0370 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
57 0380 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
58 0390 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
59 03a0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
60 03b0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
61 03c0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
62 03d0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
63 03e0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
64 03f0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
65 0400 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
66 0410 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
67 0420 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
68 0430 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
69 0440 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
70 0450 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
71 0460 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
72 0470 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
73 0480 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
74 0490 FF FF 00 00 00 0A 18 18 18 1A 1E 1E 1E 14 5E 2A
75 04a0 22 58 0C 27 88 38 BE 8D F7 EE 8D F7 4E 72 35 50
76 04b0 32 3D 88 B8 E0 C2 6D 12 DD 86 00 32 59 1E 3A 4C
77 04c0 3F 3B 73 33 42 68 36 5B 8F 0F 9B 8C 05 D7 74 09
78 04d0 DA 47 21 53 B3 E2 5E B5 D9 85 9E F5 96 A9 EB BD
79 04e0 B4 EE EF B4 E8 09 62 12 11 8A FA 02 3A 20 0A 96
80 04f0 F3 18 90 F7 1C C4 E2 00 00 00 00 00 00 00 00 00
81 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
82 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
83 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
84 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
85 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
86 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
87 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
88 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
89 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
91 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
92 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
93 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
94 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
95 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
96 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
97 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
98 0610 00 00 00 00 00 00 00 8A 58 45 00 74 77 58 68 46
99 0620 7B 59 48 66 40 69 00 00 00 00 00 00 00 00 00 00
100 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
101 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
APÉNDICE B. EJEMPLOS DE CERTIFICADOS X.509V3 106
102 0650 00 00 00 00 00 00 41 40 00 15 30 0B 06 07 2A 86
103 0660 48 CE 3D 04 01 05 00 03 41 00 30 3E 02 1D 12 68
104 0670 63 DF A0 55 73 92 E2 D9 FE C6 E5 DA 98 32 04 21
105 0680 3B 79 DC CF 71 96 80 38 98 A0 91 02 1D 36 AC 32
106 0690 5E 06 01 1A 6B 56 B6 56 93 F3 99 25 A4 30 3B 88
107 06a0 1A 2F 03 F1 73 6A F2 B2 02 37
APÉNDICE B. EJEMPLOS DE CERTIFICADOS X.509V3 107
El sistema cuenta con una interfaz gráfica que permite la selección de las diferentes
opciones de generación del certificado digital. La tabla §C.1 muestra las caracterı́sticas
esta tesis.
108
APÉNDICE C. FUNCIONAMIENTO DEL SISTEMA 109
servar existen diversas opciones las cuales pueden ser accedidas a través de las cinco
Teclado
iPAQ
Pantalla de captura
de datos de
la entidad final
Pantalla de verificación
de certificados
RSA y ECC
Pantalla de captura de
huella digital
Pantalla para
generación de
certificados ECC
Pantalla para
generación de Lector de huella digital
certificados RSA
Esta pantalla permite la caputura de los datos de la entidad final (nombre, correo
figura §C.2 muestra cómo se utiliza el teclado de la iPAQ para poder llenar los campos.
La figura §C.3 muestra la selección del perı́odo de validez del certificado digital, y
iPAQ h5500. Para iniciar la captura sólo hay que presionar el botón Capturar. Al
utilizar.
mensaje en la pantalla, y se deberá intentar una vez más. La figura §C.5 muestra este
proceso.
Esta interfaz (figura §C.6) permite la generación del certificado digital utilizando el
perı́odo de validez, y las opciones de generación. En caso que alguna de estas no esté cap-
Esta interfaz (figura §C.7) permite la generación del certificado digital utilizando el
algoritmo de curva elı́ptica utilizando las curvas 163k, 192p, 224p ó 233k.
perı́odo de validez, y las opciones de generación. En caso que alguna de estas no esté cap-
necesario que se creen los certificados auto-firmados (self-signed ) por la propia auto-
digital.
Referencias
[ASN02] Abstract syntax notation one (asn.1): Specification of basic notation, 2002.
http://lionet.info/asn1c.
http://asn1.elibel.tm.fr/.
http://www.ep.liu.se/exjobb/isy/2002/3288/.
[Bio00] BioAPI Specification Version 1.00. March 2000. The BioAPI Consortium,
http://www.bioapi.org.
116
REFERENCIAS 117
http://www.ietf.org/rfc/rfc3268.txt.
[CPV00] Liqun Chen, Siani Pearson, and Athanasios Vamvakas. On Enhancing Bio-
[Ded04] Douglas Dedo. Windows mobile-based devices and security: Protecting sen-
soft Corporation,
http://www.microsoft.com/windowsmobile/.
tion,
http://www.nist.org.
[DK00b] William M. Dal and Raymond G. Kammer. Secure Hash Standard). January
http://www.nist.org.
[DLMO03] Ed Dawson, Javier López, Jose A. Montenegro, and Eiji Okamoto. BAAI:
http://asn1.elibel.tm.fr/en/book/.
REFERENCIAS 118
http://www.certicom.com/.
[ECC04] Ecc cryptography tutorial - 5.0 elliptic curve groups and the discrete loga-
http://www.certicom.com/.
[ECD98] Public Key Cryptography For The Financial Services Industry: The Elliptic
[ERHK02] E.Sanvas, F. Rodrı́guez-Henrı́quez, and C. Koc. RCT, RSA and ECC Tool-
2001.
http://www.ietf.org/html.charters/pkix-charter.html.
http://www.itu.int/ITU-T/studygroups/com17/languages/.
de David Kemp,
http://www.cs.auckland.ac.nz/∼pgut001/dumpasn1.c.
[HMV03] Darrel Hankerson, Alfred Menezes, and Scott Vanstone. Guide to Elliptic
http://www.ietf.org/rfc/rfc3280.txt.
[HPi03] Biometric Security with the iPAQ Pocket PC h5400 series. January 2003.
Hewlett-Packard Company
http://www.hp.com.
[IM03] Russell Impagliazzo and Sara Miner More. Anonymous Credentials with
http://www.acm.org.
http://www.bioapi.org, 2002.
[ISO01] IEC ISO. Biometric data interchange formats - part 3: Finger pattern based
[JMV01] Don Johnson, Alfred Menezes, and Scott Vanstone. The Elliptic Curve
http://www.certicom.com.
[KHPC01] Richard Kuhn, Vincent Hu, Timothy Polk, and Shu-Jen Chang. Introduc-
tion to public key technology and the federal pki infrastructure. NIST,
February 2001.
[KS98] B. Kaliski and J. Staddon. RFC2437: PKCS #1: RSA Encryption. October
1998.
http://www.ietf.org/rfc/rfc2437.txt.
http://www.acm.org/crossroads/xrds7-1/crypto.html, 2004.
[MOV01] Alfred Menezes, Paul Oorscht, and Scott Vanstone. Handbook of Applied
for the Internet X.509 Public Key Infrastructure Certificate and Certificate
http://www.ietf.org/rfc/rfc3279.txt.
REFERENCIAS 121
[Riv92] R. Rivest. The MD5 Message-Digest Algorithm. April 1992. MIT Labora-
http://www.ietf.org/rfc/rfc1321.txt.
http://www.rsasecurity.com/rsalabs/.
[Sch96] B. Schneier. Applied Cryptography. John Wiley & Sons, 2nd edition, 1996.
[Sch03] Klaus Schmeh. Cryptography and Public Key Infrastructure on the Internet.
[Sti95] D.R. Stinson. Cryptography, Theory and Practice. CRC Press,, Boca Raton,
FL, 1995.
[Way97] Peter Wayner. British document outlines early encryption discovery, 1997.
http://www.nytimes.com/library/cyber/week/122497encrypt.html.
[WYY05] Xiaoyun Wang, Yiqun Lisa Yin, and Hongbo Yu. Collision search attacks
ASN.1, 83 ECC
BIT STRING, 87 Fp , 15
BOOLEAN, 85 F2m , 18
ENUMERATED, 86 R , 12
IA5String, 87 FAR
INTEGER, 86 False Accept Rate, 63
OCTET STRING, 86 FFR
OID, 88 False Reject Rate, 64
Printable String, 87 Funciones hash, 22
UTCTime, 88 Integridad de datos, 27
Algoritmo de firma digial Intercambio de llaves, 24
ECDSA, 61 No-repudio, 25
Arquitectura de la aplicación, 60 PDA
Ataques a servicios de autenticación Especificaciones, 60
intruso de en medio, 32 PKI, 39
usurpación de identidad, 32 X.509
Autenticación v3, 50
, 24, 28
Biométrica, 36
entidades de confianza, 33
Biblioteca ASN.1, 66
Biblioteca criptográfica
RCT, 61
BioAPI
Implementación por HP, 63
Conclusiones, 80
Confidencialidad, 3, 25
Criptografı́a
Aplicaciones, 23
de curva elı́ptica, 11
de llave pública, 3
Criptosistema
Curva elı́ptica, 20
RSA , 10
122