Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTADE DE INFORMTICA
Departamento de Tecnoloxas da Informacin e as Comunicacins
Agradecimientos
A mis padres, familiares, amigos y compaeros de facultad porque sin ellos nada
sera posible.
Resumen
Este proyecto constituye un acercamiento al mbito de la biometra. En concreto, nos
centraremos en el reconocimiento de huellas dactilares, desarrollando un sistema
que, sobre el soporte de una base de datos, permita una gestin de las entidades
involucradas sobre una arquitectura cliente-servidor.
Palabras claves
Biometra,
Autenticacin,
Reconocimiento,
Huellas
dactilares,
Web,
Tomcat,
ndice
NDICE
1. INTRODUCCIN
11
15
20
21
23
4. METODOLOGA
4.1. Modelado
36
53
74
6. CONCLUSIONES
111
113
ndice
114
127
BIBLIOGRAFA
129
DIRECCIONES WEB
131
NDICE DE FIGURAS
132
NDICE DE TABLAS
134
Introduccin
1. INTRODUCCIN
En el mbito de las tecnologas de la seguridad, uno de los problemas
fundamentales a solventar es la necesidad de autenticar de forma segura la identidad
de las personas que pretenden acceder a un determinado servicio o recinto fsico. De
este modo, surge la biometra, tambin conocida como tcnicas de identificacin
biomtrica, con el objetivo de resolver este problema a partir de las caractersticas
propias de cada individuo, como la voz, huella dactilar, rostro, etc.
Se debe tener en cuenta que gran parte de los sistemas de autenticacin actuales estn
basados nicamente en el uso de una tarjeta personal y, o, un PIN, con sus
consecuentes problemas de seguridad.
Sea cual sea la tcnica seleccionada para una determinada aplicacin, tendremos que
ponderar en cada caso las restricciones o peculiaridades que pueden tener cada una
de las tcnicas, frente al grado de seguridad aadido que conseguimos y del que
anteriormente no disponamos. Estas caractersticas vienen dadas bsicamente por
los siguientes aspectos:
Necesidad de un dispositivo de adquisicin especfico (lector de huella
dactilar, micrfono, cmara, etc.) all donde est el usuario.
Introduccin
biomtrica
ms
adecuada
en
funcin
de
los
cuatro
parmetros
Introduccin
Dominio de la aplicacin
Los sistemas que habitualmente utilizamos para identificar a una persona, como el
aspecto fsico o la forma de hablar, son demasiado complejos para una computadora;
el objetivo de los sistemas de identificacin de usuarios no suele ser identificar a una
persona, sino autenticar que esa persona es quien dice ser realmente. Aunque
seguramente ambos trminos nos parecern equivalentes, para una computadora
existe una gran diferencia entre ellos: imaginemos un sistema de identificacin
biomtrico basado en el reconocimiento de la retina; una persona mirara a travs del
dispositivo lector, y el sistema sera capaz de decidir si es un usuario vlido, y en ese
caso determinar de quin se trata; esto es identificacin.
Dominio de la aplicacin
Adems de estas caractersticas se tiene otra, no tcnica sino humana, pero quizs la
ms importante: un sistema de autenticacin debe ser aceptada por los usuarios, que
sern al fin y al cabo quienes lo utilicen. Por ejemplo, imaginemos un potencial
sistema de identificacin para acceder a los recursos de la Universidad, consistente
en un dispositivo que fuera capaz de realizar un anlisis de sangre a un usuario y as
10
Dominio de la aplicacin
comprobar que es quien dice ser; seguramente sera barato y altamente fiable, pero
nadie aceptara dar un poco de sangre cada vez que desee consultar su correo.
fuera
del
alcance
de
muchas
organizaciones,
su
dificultad
de
mantenimiento.
11
Dominio de la aplicacin
El proceso general de autenticacin sigue unos pasos comunes a todos los modelos
de autenticacin biomtrica: captura o lectura de los datos que el usuario a validar
presenta, extraccin de ciertas caractersticas de la muestra (por ejemplo, las
minucias de una huella dactilar), comparacin de tales caractersticas con las
registradas en una base de datos, y decisin de si el usuario es vlido o no.
12
Dominio de la aplicacin
Obtencin de
los Modelos
de la BD
Persona
Incgnita
Adquisicin de
datos
Autentificador
Preproc.
de la
Seal
Extraccin
de
Caractersticas
Decisin
Algoritmo de
Reconocimiento
13
Dominio de la aplicacin
Por lo tanto se debe fijar un parmetro o umbral que permita igualar los dos factores,
asegurando de esta manera el ptimo funcionamiento del sistema. Este umbral se
denomina tasa de error igual (Equal Error Rate, ERR), y es el que determinar,
finalmente, la capacidad de identificacin del sistema. En la figura 2 se muestra la
relacin dicha relacin.
14
Dominio de la aplicacin
15
Dominio de la aplicacin
16
Dominio de la aplicacin
Est demostrado que dos dedos nunca pueden poseer ms de ocho minucias
comunes, y cada uno tiene al menos entre 30 y 40 de stas. En la figura 3 se muestra
una imagen de una huella digitalizada con sus minucias. Si la comparacin de las
posiciones relativas de las minucias ledas con las almacenadas en la base de datos es
correcta, se permite el acceso al usuario, denegndose obviamente en caso contrario.
17
Poner el dedo en un escner, hablar por un micrfono o mirar de cerca a una cmara
puede ser suficiente para pasar el control de seguridad y acceder a una instalacin o
sistema informtico. La tecnologa biomtrica ha traspasado los laboratorios de
espionaje, recintos militares y gubernamentales para extender sus aplicaciones al
mercado empresarial y de consumo.
18
Gobierno de Estados Unidos, sali del grupo de 60 empresas y agencias para crear su
propia tecnologa. El Departamento de Defensa cuenta con una organizacin y un
laboratorio de biomtrica, donde prueba la utilidad de los ms de 600 productos
existentes en el mercado. El Departamento de Energa desarrolla un escner
hologrfico que analizar, a travs de ondas de radio y en tres dimensiones a los
pasajeros para comprobar si esconden armas.
19
bancos,
sedes
gubernamentales,
empresas
privadas,
instalaciones
militares o prisiones.
20
El estudio se basa en conseguir una huella artificial que engae a los sistemas de
autenticacin. El profesor Matsumoto muestra como conseguir artificialmente una
huella que puede servir como la original.
21
Dependiendo del nivel de seguridad deseado se puede optar por una solucin de
seguridad ms efectiva, por ejemplo, el uso de biosensores, cmaras de vigilancia,
combinaciones de varias biometras, combinaciones con smart cards y PinPad, etc.
De todas formas, todos ellos da a da siguen realizando test de otro tipo de posibles
vulnerabilidades para crear una evolucin y un acercamiento asinttico al punto
limite de seguridad del 100%.
22
con
las
caractersticas
extradas
de
una
huella
anteriormente,
23
24
25
previamente). Despus de esto el rea de la imagen con ruido, que ser excluido en
las siguientes etapas, se define por bajas variaciones en todas las direcciones. En la
figura 6 se muestran las variaciones de una huella y la regin de inters obtenida a
partir de esta.
26
u u
1
h1 (u, v ) = 2 e
0
, si : u0 = E[(vc v )ctg( ) + uc ]
, en otro caso
v v
1
e
h2 (u , v) =
2
0
, si : v0 = E [(u c u )tg ( ) + vc ]
, en otro caso
u, v [1, L]
donde u y v son las coordenadas de un pxel en la mscara; (uc, vc) es el centro de la
mscara; , es el ngulo de orientacin de la cresta en cada bloque de la imagen, y ,
es un parmetro para ajustar la funcin mscara al ancho de la cresta. La figura 7(a)
muestra la imagen filtrada con una de las mscaras espaciales. La figura 7(b)
representa la imagen binaria obtenida despus de aplicar un umbral, produciendo
bordes de crestas lisos.
27
Figura 8 . (a) Imagen despus del primer filtro perfilador (b) Imagen
despus del segundo filtro perfilador con mscara espacial
28
3.3.1.6 Simplificacin
En este paso se aplican dos algoritmos consecutivos paralelos de simplificacin, para
reducir a un nico pxel el ancho de las crestas en la imagen binaria. Estas
operaciones son necesarias para simplificar es siguiente anlisis estructurale de la
imagen para la extraccin de las minucias de la huella.
29
30
31
Si Pi y Qj
no son del mismo tipo, se asigna 400 a rotate[i][j]. Por otra parte
1 L
R( d i ) r ( d i )
L i =0
32
Diff _ ang =
1 L
R (i ) r (i )
L i= 0
) (
2
2
xi x r + xi y r
ri
r
1
i
e
i
=
tan
+
rotate
[
i
][
j
]
x xr
i
r
Donde (xr, yr, r)T es la coordenada de la minucia de referencia, y (ri, ei, i)T es la
representacin de la minucia en el sistema de coordenadas polares (ri representa la
33
((
= ((r
Pi s = r1 p , e1p , 1p
Qis
Q
1
) ,..., (r
T
p
M
, e Mp , Mp
)
))
34
35
4. Metodologa
Para el desarrollo del proyecto, seguiremos una metodologa clsica, que incluir los
siguientes pasos:
4.1 Modelado
En primer lugar se hace un anlisis del problema, usuarios, requisitos funcionales,
etc. Para ello utilizaremos el Lenguaje Universal de Modelado (Unified Modeling
Language, UML en lo sucesivo) pues constituye un estndar utilizado ampliamente
en el desarrollo de software.
Puesto que va a ser este el lenguaje que vamos a utilizar para modelar nuestra
aplicacin,
haremos
una
breve
introduccin
resaltaremos
sus
principales
caractersticas:
36
Es un lenguaje muy expresivo, que cubre todas las vistas necesarias para desarrollar
y luego desplegar tales sistemas.
37
El vocabulario y las reglas de un lenguaje como el UML indican cmo crear y leer
modelos bien formados, pero no dicen que modelos se deben crear ni cuando se
deberan crear. Esta es la tarea del proceso de desarrollo de software.
38
39
Nuestro sistema cuenta con dos tipos de usuarios, llamados actores en UML.
Usuario
Administrador
40
Casos de uso
Alta_admin
<<include>>
<<uses>>
<<uses>>
<<include>>
Administrador
Modificacin
Gestin
(from Actores)
<<uses>>
Visualizacin
<<uses>>
<<include>>
Baja
Autent_admin
41
Casos de uso
Para este caso de uso se va a usar la autenticacin biomtrica, que nos va a asegurar
el acceso exclusivo, por parte del administrador, a las pginas desde las que se
realizan las tareas de administracin (altas, bajas, modificaciones).
El caso de uso Alta del administrador (Alta_admin.) tiene como fin introducir un
usuario, que previamente lo halla solicitado, en la base de datos de nuestra
aplicacin. Para ello lo que realiza es el cambio de valor de un campo de la tabla de
usuarios.
El caso de uso Baja borrar de la base de datos a un usuario, tanto los datos
personales como los datos de las huellas enviadas. En este ltimo punto se
eliminarn fsicamente las imgenes de las huellas, as como las plantillas generadas
a partir de estas.
42
Casos de uso
Por lo tanto este proceso se realizar para altas, bajas y modificaciones con el fin de
que el administrador sepa en todo momento lo que est realizando. As primero se
visualizarn todos los usuarios y una vez seleccionado uno, se le mostrar la
informacin completa referente a este, para que confirme la operacin que est a
punto de realizar.
43
Casos de uso
Alta_nuevo_usu
Alta_usuario
Alta_existente_usu
Usuario
<<use>>
(from Actores)
generar_plantilla
Autenticar
El caso de uso Alta realizado por los usuarios va web, se especializa en dos: en
primer lugar estn los usuario que por primera vez solicita el alta en nuestra base de
datos, en segundo lugar tenemos a los usuarios que ya hayan solicitaron el alta en
algn momento y posteriormente deciden enviar alguna otra huella.
44
Casos de uso
El caso Generar plantilla genera una plantilla a partir de una imagen. Esta plantilla
almacena las caractersticas (minucias) extradas de la huella, que la van a hacer
nica. De esta manera guardamos informacin referente a la persona, pero que no la
compromete en ningn momento, utilizndose para autenticar la huella en vivo.
45
Lenguajes y Herramientas
La base de datos va a estar formada por tres tablas con las que mantenemos la
informacin sobre los usuarios en una de ellas (tabla usuarios), informacin sobre las
huellas en la otra (tabla huellas), y una ltima en la que mantendremos la
informacin que concierne al administrador (tabla admin).
Cada persona podr hacer un envo entre una y diez imgenes de huellas,
una por cada uno de sus dedos.
Las huellas se asociarn a los usuarios por medio del DNI de estos.
46
Lenguajes y Herramientas
En nuestro caso mantendremos en la base de datos tanto las imgenes de las huellas
como las plantillas generadas. Este no es el procedimiento habitual ya que
precisamente la ventaja de almacenar las plantillas es la de no guardar informacin
relevante del usuario, como lo son sus huellas. Adems, a partir de las plantillas no
hay forma de reconstruir las huellas, por lo que la identidad del usuario est
totalmente protegida.
Otra ventaja de los sistemas biomtricos que almacenan las plantillas caractersticas
de las personas, es que estas plantillas son del orden de 100 veces menores que las
imgenes a partir de las que se generan. Por lo tanto, la base de datos ser
considerablemente menor.
Ca Candidatos a Entidades
Ca Candidatos a Relaciones
US USUARIO
TI TIENE: huella
H HUELLA
PE PERTENECE: usuario
SS ADMINISTRADOR
47
Lenguajes y Herramientas
Persona
id_persona
Direccin
CP
Nombre
Nombre
Plantilla
Provincia
Localidad
Pais
email
http
Administrador
Usuario
id_huella
N
mano
Huella
dedo
plantilla
48
Lenguajes y Herramientas
Entidad Administrador
Atributos:
ID_ADMINISTRADOR
NOMBRE
PLANTILLA
Entidad Huella
Atributos:
ID_HUELLA
ID_USUARIO
MANO
DEDO
PLANTILLA
49
Lenguajes y Herramientas
Entidad Usuario
Persona que nos enva su/s huella/s en formato digital y que pasarn a formar parte
de nuestra base de datos.
Atributos:
ID_USUARIO
NOMBRE
DIRECCIN
C.P.
LOCALIDAD
PROVINCIA
PAIS
WEB
ALTA
50
Lenguajes y Herramientas
El estudio del modelo entidad-relacin nos lleva al siguiente esquema de tablas, que
compone un modelo relacional completo del dominio de la aplicacin.
Tabla Administradores
ID_ADMINISTRADOR
Entero
No nulo
NOMBRE
Texto
No nulo
PLANTILLA
Texto
No nulo
Tabla Usuarios
ID_USUARIO
Entero
No nulo
NOMBRE
Texto
No nulo
DIRECCIN
Texto
No nulo
C.P.
Entero
LOCALIDAD
Texto
PROVINCIA
Texto
PAIS
Texto
Texto
WEB
Texto
ALTA
Texto
No nulo
51
Lenguajes y Herramientas
Dependencias Funcionales
3 Forma Normal
Tabla Huellas
ID_HUELLA
Texto
No nulo
USUARIO
Entero
MANO
Texto
No nulo
DEDO
Texto
No nulo
PLANTILLA
Texto
No nulo
Dependencias Funcionales
ID_HUELLA -> USUARIO, MANO, DEDO, PLANTILLA.
3 Forma Normal
52
Lenguajes y Herramientas
Navegador Web
Servidor Web
GET/doc.html
<HTML>...<HTML>
Documentos
HTML
53
Lenguajes y Herramientas
Rpidamente se hizo evidente que si una persona poda revisar los documentos
gestionados por el servidor Web, tambin poda hacerlo un programa de texto
procesado como una secuencia de comandos Perl. El navegador Web no aprecia la
diferencia porque el resultado de una peticin HTTP sigue siendo un flujo de datos
en HTML. Ms an, el navegador puede enviar algo ms que una simple peticin:
puede enviar parmetros, incluyndolos en la URL (Universe Reason Locate) o
enviando un flujo de datos con la peticin. Esto sugiere que una peticin HTTP
puede interpretarse como una consulta a una base de datos y los resultados de la
consulta se pueden usar para construir dinmicamente un documento HTML. Con el
desarrollo del servidor Web NCSA HTTPd lleg una nueva especificacin, los CGI
(Common Gateway Interface).
54
Lenguajes y Herramientas
Navegador Web
Servidor Web
GET/cgi-bin/pgm
<HTML></HTML>
Programa CGI
Base
de datos
Figura 17. Contenido dinmico generado por una secuencia de comandos CGI
Los CGI normalmente generan un nuevo proceso para cada peticin HTTP. Esto
supone un problema cuando el trfico es escaso, pero provoca sobrecarga cuando el
nivel de trfico aumenta. En esta situacin, los CGI no se ajusta, a nuestras
necesidades.
55
Lenguajes y Herramientas
Los servlets y las pginas JSP operan desde un solo ejemplar o instancia que
permanece en la memoria y utiliza mltiples subprocesos para responder a distintas
peticiones de forma simultnea. La figura 17 muestra ilustra el uso de esta
tecnologa.
Navegador Web
Servidor Web
GET / requestURI
<HTML></HTML>
Motor de servlets
Servlets
Pgina JSP
Servicios J2EE
Base
de datos
Otros
servicios
56
Lenguajes y Herramientas
57
Lenguajes y Herramientas
El uso de CGI nos llevara a utilizar la tecnologa de Microsoft ASP (Active Server
Pages) para la generacin dinmica de pginas, y todo ello trabajando bajo el
Servidor de Microsoft (IIS). Por el otro lado el uso de Java como leguaje de servidor
nos llevara a utilizar JSP (Java Server Pages) para la generacin dinmica de
pginas; pudiendo optar por una serie de servidores que funcionen como
contenedores de servlets: JRun, Tomcat, etc.
Hemos optado por el uso de Java y sus tecnologas Servlets, JSP y Javabeans como
lenguaje para el desarrollo de los distintos mdulos de la aplicacin por
una serie de motivos que discutimos a continuacin:
Java presenta una serie de ventajas frente a otros lenguajes, entre los cuales
destacamos los siguientes:
Seguridad
el
cargador
de
clases,
el
verificador
bytecode
SecurityManager.
58
Lenguajes y Herramientas
Core API
Estndares abiertos
59
Lenguajes y Herramientas
Distribuido y dinmico
obtiene desde un
Orientada a objetos
Multitarea
Una aplicacin monotarea tiene un thread (hilo de proceso) que ser quien
se encargue de ejecutar todo lo que se le pida. Con este sistema nicamente
puede desarrollar una tarea cada vez.
60
Lenguajes y Herramientas
a cabo grandes
61
Lenguajes y Herramientas
Rendimiento
Simplicidad
Sesiones http
Al ser aplicaciones Java, los servlets tienen acceso directo a toda la gama de
caractersticas Java, como el uso de subprocesos, acceso a redes y
conectividad a base de datos.
62
Lenguajes y Herramientas
Comunicacin
Seguridad
Una Pgina Java en servidor,o Java Server Pages (JSP) es una plantilla para una
pgina Web que emplea cdigo Java para generar un documento HTML
dinmicamente. Las pginas JSP se ejecutan en un componente del servidor
conocido como contenedor de JSP, que las traduce a servlets Java equivalentes.
Por esta razn los servlets y las pginas JSP estn ntimamente relacionados. Lo que
se puede hacer con una tecnologa es, en gran medida, tambin posible con la otra;
aunque cada una tiene sus capacidades propias. Como son servlets, las pginas JSP
tienen todas las ventajas de los servlets, pero adems tienen ventajas propias:
Como las pginas JSP son similares al HTML, tienen mayor compatibilidad
con las herramientas de desarrollo Web.
63
Lenguajes y Herramientas
64
Lenguajes y Herramientas
4.2.3 Herramientas
Apache ha sido desarrollado por diversos de usuarios que han tenido que reparar sus
fallos alguna vez y que han agregado funciones al software del servidor web,
disponible en los primeros das de la World Wilde Web.
Es uno de los mejores servidores de Web utilizado en la red Internet desde hace
mucho tiempo, nicamente le hace competencia un servidor de Microsoft, el IIS. Por
lo que ste servidor es uno de los mayores triunfos del software libre.
Permite
instalar
los
servicios
de
aplicacin
CGI,
Perl
Java.
65
Lenguajes y Herramientas
Alto desempeo.
Para conseguir que nuestro servidor web sea un servidor seguro, es conveniente
utilizar la tecnologa SSL (Secure Socket Layer) que detallamos a continuacin:
SSL
Utiliza
un
sistema
de
cifrado
asimtrico
basado
en
claves
66
Lenguajes y Herramientas
Cifrado de datos
Se
impide
que
pasen
inadvertidas
modificaciones
intencionadas
67
Lenguajes y Herramientas
SSL puede tener una clave de sesin de 40 bits o de 128 bits, dicha clave es
generada en cada transaccin. La longitud de la clave har ms difcil romper
el
cifrado. La mayora de los navegadores soportan una clave de 40 bits para sesiones
SSL, mientras que las ltimas versiones soportan claves de sesin de 128 bits.
Verificacin de la Identidad
Mantener la seguridad
Facilidad de Utilizacin
A pesar de la gran seguridad que debe tener, el servicio debe ser de fcil
uso para los clientes sin grandes traumatismos que ocasionen confusiones.
68
Lenguajes y Herramientas
Tomcat, uno de los proyectos de cdigo abierto liderado por la Apache Software
Foundation, es una aplicacin web basada en Java creada para ejecutar servlets y
pginas JSP, siendo la implementacin oficial de referencia de las especificaciones
Servlet 2.3 y JSP 1.2.
69
Lenguajes y Herramientas
Simple y Completo
70
Lenguajes y Herramientas
Para albergar nuestra base de datos tenemos una gran cantidad de sistemas gestores
de bases de datos. Barajando las distintas caractersticas de cada uno finalmente
hemos optado por el uso de MySQL.
Una caracterstica importante es que consume muy pocos recursos, tanto de CPU
como de memoria. Se sacrificaron algunas caractersticas esenciales en sistemas ms
serios con este fin
Ventajas
JDBC (Java Data Base Connectivity) proporciona una interfaz estndar con el
servidor de base de datos. Provee una API que podemos usar sin importar qu base
de datos se est usando.
La conectividad de la base de datos de Java es un marco de programacin para los
desarrolladores de Java que escriben los programas que tienen acceso a la
informacin en bases de datos, hojas de calculo, y archivos "planos". JDBC se utiliza
comnmente para conectar un programa con una base de datos,
sin importar qu
71
Lenguajes y Herramientas
Interfaz JDBC
Driver
ODBC
Driver
Sybase
Driver
Oracle
Base
Access
Base
Sybase
Base
Oracle
Mysql Connector es un driver creado por Mysql AB que nos permitir trabajar con
Mysql desde programas escritos en Java. A diferencia de otros drivers, este es de
libre
distribucin,
tiene
un
buen
rendimiento.
72
Lenguajes y Herramientas
forma
construir
programas
que
interactuan
con
Mysql.
73
Diseo e Implementacin
Computadora
del Usuario
Servidor
de la
aplicacin
Terminal
del
Administrador
Lector de
huellas
Servidor
Web
Base
de
Datos
74
Diseo e Implementacin
4.3.2 Gestin
Clases Java
Clases
jspSmartUpload
Clases
Auxiliares
ClasesDominio
Clases Interfaz
Clases
Clases
Fingerprint
mySql-connector
75
Diseo e Implementacin
Este paquete representa las clases nativas de Java. Entre las que se encuentran las
incluidas en los paquetes estandares: java.lang., java.util., java.io., java.awt., etc.
tElemento
tPersona
ID
Listar
Mostrar
id_persona
Superclase
genrica de
cualquier clase del
dominio
timagen
(from Logical View)
id_imagen
Clase para
el contenido de
la base de
datos referentes a
datos
un usuario
recoger
76
Diseo e Implementacin
tElemento
(from Logical View)
ID
tPersona
timagen
Huella
(from Logical View)
Administrador
Usuario
id_usu
mano
login
nombre
dedo
password
direccin
plantilla
c.p.
alta_admin()
localidad
alta()
baja()
provincia
generar_plantilla()
login()
pais
borrar()
estado
inicializar()
recuperar()
alta_usu()
autenticar()
actualizar()
recuperar()
inicializar()
77
Diseo e Implementacin
Index
autenti_admin
usu_alta
ad_alta
ad_borrar
usu_huellas
autenticacin
ad_modif
Cada clase representa una pgina alojada en nuestro servidor, que nos mostrar la
informacin que necesitemos en cada momento en funcin de la tarea que se vaya a
realizar.
Index: Esta clase representa la pgina de inicio de nuestra aplicacin y desde la que
se podr acceder a cada pgina en funcin de lo que se desee hacer.
78
Diseo e Implementacin
PAGINAS ADMINISTRADOR
ad_alta: Esta clase representa la pgina en la que se muestran los usuarios que estn
en la base de datos, en espera de ser dados de alta, para que el administrador decida a
quien desea dar de alta.
ad_borrar: Lista los usuarios dados de alta, para que el administrador decida a quien
quiere dar de baja.
ad_modif.: Clase encargada de mostrar los usuarios que estn dados de alta en la
base de datos, para que el administrador elija el que desee modificar.
PAGINAS USUARIO
Usu_alta: Muestra el formulario que debe rellenar el usuario nuevo que quiera pasar
a formar parte de nuestra base de datos, tanto con campos para los datos personales
como para que nos enve los ficheros con las imgenes.
79
Diseo e Implementacin
Usu_huellas: En caso est pensado para aquel usuario que ya solicit pasar a formar
parte de la base de datos, y que pasado un tiempo decide mandar nuevas huellas. Se
le solicita que se identifique como usuario existente y se le permite mandar nuevas
huellas.
80
Diseo e Implementacin
SmartUpload
SmartUpload()
getFiles()
getRequest()
getBinaryData()
getSize()
Request
setAllowedFilesList()
setContentDisposition()
setDeniedFilesList()
setDenyPhysicalpath()
setMaxFileSize()
getParameter()
getParameterName()
getParameterValues()
setTotalMaxFileSize()
downloadField()
downloadFile()
save()
upload()
uploadlnFile()
File
fileToField()
getBinaryData()
getContentDisp()
Files
getContentString()
getContentType()
getFieldName()
getCount()
getFieldExt()
getFile()
getFileName()
getSize()
getfilePathName()
getSize()
getSubTypeMIME()
getTypeMIME()
isMissing()
saveAs()
81
Diseo e Implementacin
instancia del driver que nos conectar con la mysql. Otras clases tambin importantes
son: Connection.class, ResultSet, etc.
82
Diseo e Implementacin
continuacin
mostraremos
los
diagramas
de
secuencia
colaboracin
: Interfaz
: Aplicacin
: Administrador
: Administrador
Entrar
Pedir datos
Identificacion
Aceptar
Pedir dedo
Poner dedo
autenticar( )
83
Diseo e Implementacin
1: Entrar
4: Identificacion
5: Aceptar
2:
6:
: Aplicacin
: Interfaz
3: Introducir datos
: (Administrador)
9:
8:
7: autenticar( )
: Administrador
84
Diseo e Implementacin
: Administrador
: Interfaz
: Aplicacin
Pulsar tarea
Listar usuarios
Seleccionar usuario
Mostrar usuario
Mostrar datos
85
Diseo e Implementacin
1: Tarea
4: Seleccionar usuario
: Interfaz
7: Mostrar datos
: (Administrador)
3:
2: Listar usuarios
6:
5: Mostrar usuario
: Aplicacin
86
Diseo e Implementacin
: Interfaz
: Administrador
: Aplicacin
: Administrador
Pulsar alta
Listar usuarios
Seleccionar usuario
Mostrar usuario
Mostrar datos
Confirmar
OK
alta_admin( )
87
Diseo e Implementacin
1: Alta
4: Seleccionar usuario
9: OK
: Interfaz
7: Mostrar datos
8: Confirmar
: (Administrador)
2: Listar usuarios
5: Mostrar usuario
10:
3:
6:
13:
12:
: Aplicacin
: Usuario
11: alta( )
88
Diseo e Implementacin
: Interfaz
: Administrador
: Aplicacin
: Administrador
: Huella
Pulsar Baja
Listar usuarios
Seleccionar usuario
Mostrar usuario
Mostrar datos
Confirmar
OK
baja( )
borrar( )
Borrar huella
89
Diseo e Implementacin
2: Listar usuarios
1: Baja
5: Mostrar usuario
4: Seleccionar usuario
10:
9: OK
: Interfaz
: (Administrador)
: Aplicacin
7: Mostrar datos
8: Confirmar
3:
6:
15:
12:
14:
11: baja( )
13: borrar( )
Borrar huella
: Huella
: Administrador
90
Diseo e Implementacin
: Interfaz
: Administrador
: Aplicacin
: Usuario
Pulsar modif.
Listar usuarios
Seleccionar usuario
Mostrar usuario
Mostrar datos
Modificar datos
Confirmar
OK
actualizar( )
91
Diseo e Implementacin
1: Modif
4: Seleccionar usuario
8: Modifficar datos
10: OK
: Interfaz
7: Mostrar datos
9: Confirmar
: (Administrador)
3:
6:
2: Listar usuarios
5: Mostrar usuario
11:
14:
13:
: Aplicacin
: Usuario
12: actualizar( )
92
Diseo e Implementacin
: Interfaz
: Aplicacin
: Usuario
: Huella
: Usuario
Pulsar alta
Mostrar formulario
Introd. datos
Aceptar
alta_usu( )
alta( )
Alta huella
93
Diseo e Implementacin
1: Pulsar alta
4: Introd. datos
5: Aceptar
2: Mostrar formulario
6:
: Interfaz
: Aplicacin
3:
: (Usuario)
11:
10:
8:
Crear huella
7: Alta usuario
9: alta( )
: Huella
: Usuario
94
Diseo e Implementacin
: Aplicacin
: Usuario
: Huella
: Usuario
Introducir datos
Aceptar
alta( )
alta huella
95
Diseo e Implementacin
1: Pulsar alta
4: Introd. datos
2: Mostrar formulario
5: Aceptar
6:
: Interfaz
: Aplicacin
3:
9:
: (Usuario)
8:
Crear huella
7: alta( )
: Huella
96
Diseo e Implementacin
: Interfaz
: Aplicacin
: Usuario
: Usuario
Pulsar autenticar
Pedir datos
Introducir Datos
OK
Pedir dedo
Poner dedo
Autenticar
97
Diseo e Implementacin
1: Pulsar autenticar
4: Introducir datos
2: Pedir datos
5: OK
6: Pedir dedo
8: Poner dedo
9:
: Interfaz
: Aplicacin
3:
: (Usuario)
7:
12:
11:
10: Autenticar
: Usuario
98
Diseo e Implementacin
4.3.3 Visualizacin
En este apartado se mostrarn las funciones e interfaz de la aplicacin considerando
cada una de las pantallas de la misma.
Pgina principal
Desde la pgina principal, se accede tanto a las tareas de administracin como a las
utilidades de usuario.
99
Diseo e Implementacin
100
Diseo e Implementacin
campo para cada uno de los dedos de ambas manos, gestionando el envo de las
imgenes digitalizadas de los mismos.
101
Diseo e Implementacin
Autenticar Usuario
En esta pantalla comprobamos que un usuario que se haya dado de alta en la base de
datos con alguna imagen de huella, se autentica correctamente. Comparamos la
imagen en vivo, la que est sobre el lector, con la que est en la base de datos, y
mostramos el resultado.
102
Diseo e Implementacin
Tras obtener los datos solicitados en la pantalla de la figura 39, se inicia el proceso
de autenticacin. Si la autenticacin tiene xito se muestra la imagen del dedo del
usuario, as como diversos datos referentes a esta: calidad de la imagen, tamao,
caractersticas adquiridas en el proceso de captura, nivel de coincidencia con la
huella en la base de datos, etc.
103
Diseo e Implementacin
Autenticar Administrador
104
Diseo e Implementacin
Alta Administrador
En esta pgina el administrador accede a la lista de usuarios en estado de espera para
ser dados de alta definitivamente. Seleccionando un usuario se dar de alta
definitivamente en la base de datos de la aplicacin.
105
Diseo e Implementacin
106
Diseo e Implementacin
Baja Administrador
Esta pgina proporciona una relacin de los usuarios dados de alta en la base de
datos para que el administrador gestione posible bajas. El proceso de baja borra tanto
los datos personales como las huellas y plantillas que se hayan podido generar.
107
Diseo e Implementacin
108
Diseo e Implementacin
Modificar Administrador
En esta pgina se podrn modificar los datos personales de un usuario dado de alta en
la base de datos, al pulsar sobre la opcin modificar por parte del administrador. En
primer lugar, se visualiza una pgina con los usuarios dados de alta (figura 49).
109
Diseo e Implementacin
110
Validacin
Cada imagen en la base de datos se compara con su propia plantilla y con las otras
49 plantillas. Si la comparacin de una huella con una plantilla del mismo dedo
resulta exitosa, se considera una autenticacin correcta, en caso contrario, estamos
ante un falso rechazo. Si se obtiene una autenticacin correcta al comparar una
huella con otra que no pertenece al mismo dedo, estamos ante lo que se denomina
una falsa aceptacin.
porcentaje de autenticacin =
num_correctas
100
num _ correctas + numero _ falsas
porcentaje de rechazo =
111
num _ rechazadas
100
50
Validacin
Usuario 1
Usuario 2
Usuario 3
Usuario 4
Usuario 5
% Autenticacin
99.9 %
99.88 %
99.65 %
99.45 %
98.94 %
% Rechazo
13.32 %
12.82 %
12.13 %
13.72 %
10.41 %
112
Conclusiones
6. Conclusiones
En este proyecto se incluye una pequea introduccin a la biometra y dentro de esta
al reconocimiento por huella digital. Quizs sera aventurarse demasiado asegurar
que dentro de unos aos la biometra estar implantada en tantos lugares que nos ser
familiar y hasta cotidiano.
Aunque parezca algo un tanto futurista, sobre todo pensando en otro tipo de
reconocimiento como los basados en sensores de calor o geometra facial, la
tecnologa avanza a pasos agigantados, sobre todo en las ltimas dcadas, y no sera
raro que se empezara por implantar en computadoras de acceso restringido y con
informacin muy crtica, como en empresas, bancos, etc. Desde ese momento, el que
cualquier persona tenga un sistema biomtrico en su computadora de sobremesa hay
un paso, o un abismo dependiendo por donde avance la tecnologa.
113
Manual de Administrador
Manual de Administrador
V1.0
Instalacin
Base de datos
Para instalar la base de datos en el sistema sobre el que va a trabajar se tiene que:
Instalacin de MySQL
Primero se debe obtener una copia de una distribucin de MySQL. Para el desarrollo
del presente proyecto se utiliz la ltima versin disponible MySQL-3.23.49.
114
Manual de Administrador
mysql help muestra todas las opciones que se le pueden pasar a mysqld en el
arranque.
Para iniciar y parar el servicio MySQL, se utilizan con los siguientes comandos
respectivamente:
(iniciar MYSQL)
(parar MYSQL)
115
Manual de Administrador
Tras instalar correctamente MySQL, se deber aadir nuestra base de datos para que
pueda ser utilizada por la aplicacin. Concretamente se trata de un directorio llamado
base que situamos en el directorio data en la ubicacin de instalacin de MySQL:
D:\mysql\data\base
Esta base de datos contiene las tres tablas que requiere nuestra aplicacin para su
funcionamiento: usuarios, huellas, administradores.
Servidor Apache
Instalacin Apache
El software de Servidor Apache est disponible en el sitio web del Grupo Apache y
en decenas de sitios mirrow de todo el mundo. Se debe obtener una distribucin
binaria gratuita de Apache, apache<versin>, disponible en su pgina web oficial
http://www.apache.org.
116
Manual de Administrador
C:\<dir_apache>\Apache.exe
(iniciar apache)
C:\<dir_apache>\Apache.exe - k shutdwon
(detener apache)
C:\<dir_apache>\Apache.exe - k restart
(reiniciar apache)
Utilizaremos la opcin reiniciar para que tenga efecto cualquier cambio realizado en
los archivos de configuracin de Apache, sin necesidad de detener y volver a iniciar
el servidor.
Instalacin SSL
Primero se deben tener los mdulos mod_ssl y OpenSSL, que podemos obtener en el
sitio http://www.modssl.org/contrib/.
Para la instalacin de SSL en Apache deberemos introducir una serie de cambios en
su fichero de configuracin httpd.conf que describimos a continuacin:
117
Manual de Administrador
Port 443
Listen 80
Listen 443
ServerName www-mi-servidor.com
Para comprobar que el puerto 443 funciona correctamente se debe escribir en nuestro
navegador http://mi-servidor.com:443/.
118
Manual de Administrador
A continuacin crear el directorio <dir-apache>\conf\ssl y mover los archivos miservidor.key y mi-servidor.cert en el. Copiar todos los archivos de la distribucin de
Apache_mod_ssl en el directorio de instalacin original de Apache.
SSLMutex sem
SSLRandomSeed startup builtin
SSLSessionCache none
SSLLog logs/SSL.log
SSLLogLevel info
<VirtualHost www.my-server.dom:443>
SSLEngine On
SSLCertificateFile conf/ssl/my-server.cert
SSLCertificateKeyFile conf/ssl/my-server.key
</VirtualHost>
119
Manual de Administrador
Iniciar el servidor desde la lnea de comandos con el propsito de ver los mensajes de
error que impiden iniciar Apache. Si algo no funciona, Apache escribe mensajes
significativos en la pantalla y, o en los archivos error.log y SSL.log en el directorio
Apache\logs.
Servidor Tomcat
Instalacin Tomcat
La instalacin de Tomcat requiere tener instalado previamente JRE (Java Runtime
Environment) conforme al JRE 1.1 o superior, incluyendo algn sistema con
plataforma Java2. Se necesita un compilador Java, como el incluido en el JDK (Java
Development Kit) 1.1 o superior.
Tras instalar este software en nuestra computadora se debe obtener el archivo binario
de versin apropiada de jakarta-tomcat<versin>. En el proyecto se utiliza
jakarta-tomcat3.3.1.
JAVA_HOME - d:\jdk
TOMCAT_HOME - d:\jakarta-tomcat
120
Manual de Administrador
D:\jakarta-tomcat\bin\startup.exe
(iniciar Tomcat)
D:\jakarta-tomcat\bin\shutdown.exe
(parar Tomcat)
Para
verificar
que
funciona
se
puede
acceder
http://localhost:[puerto]/
La aplicacin hace uso del directorio donde tenemos instalado Tomcat, por ello
introduciendo una variable que le indique este directorio, obteniendo una aplicacin
independiente del lugar donde se instale.
121
Manual de Administrador
<context-param>
<param-name>directorio</param-name>
<param-value>D:/<dir_tomcat>t/webapps/proyecto/upload/
</param-value>
</context-param>
Al
ejecutar
Tomcat,
se
crea
tomcat>\conf\tomcat-apache.conf,
automticamente
el
fichero
c:\<dir-
tomcat>\conf\mio-tomcat-apache.conf.
Esto es necesario porque vamos a modificarlo, pero Tomcat lo sobrescribe cada vez
que arranca con lo que perderamos las modificaciones si no lo renombramos.
122
Manual de Administrador
Del nuevo fichero hay que quitar todas las referencias a JServMount y cambiarlas por
JkMount (no se pueden mezclar JServ y mod_jk). Adems al principio del fichero
hay que poner las siguientes lneas:
include c:\<dir_tomcat>\conf\mio-tomcat-apache.conf
con esto indicamos a Apache las nuevas directivas para los servlets.
Ya tenemos instalado el mdulo. Arrancamos en primer lugar Tomcat y a
continuacin Apache; en este ltimo al arrancar debe de salir un mensaje que indique
que estamos utilizando mod_jk.dll (algo similar a mod_jk.dll running).
Hay que tener en cuenta que Tomcat siempre se debe arrancar antes que Apache, y si
se para, hay que parar Apache y volver a arrancat Tomcat primero.
A continuacin se describe lo que contiene cada directorio de nuestra aplicacin:
Directorio Raz
Contiene las pginas .html de nuestra aplicacin, entre las que se encuentra la pgina
de inicio.
123
Manual de Administrador
Directorio JSP
Como su propio nombre indica contiene las pginas .jsp, que junto con las pginas
.html forman la interfaz de nuestra aplicacin.
Directorio Recursos
Aqu se mantienen los archivos (imgenes, botones, iconos, etc) que se van a usar en
las pginas de la aplicacin.
Directorio Upload
Aqu es donde se transfieren las imgenes de las huellas de los usuarios. Adems
mantiene las plantillas generadas por la aplicacin a partir de las imgenes de huellas
digitalizadas.
Directorio Admin
Este es un subdirectorio de Upload y en el mantendremos las plantillas de los
administradores que tengan privilegios para gestionar la aplicacin.
Directorio WEB-INF
Aqu est el archivo descriptor de despliegue web.xml, que se utiliza para configurar
los servlets y otros recursos que forman parte de la aplicacin web.
Adems incluye dos subdirectorio, el lib y classes:
Directorio lib
Contiene los archivos .jar. Las clases de cualquier archivo .jar que se encuentre en
este directorio se ponen automticamente a disposicin del cargador de clases sin
tener que estar explcitamente listadas en la ruta de clases.
Aqu es donde situaremos las libreras de clases para el acceso al lector de huellas
(FPJni.jar) y las clases que nos permitirn acceder a MySQL desde las pginas
(mysql-connector-java-3.0.1-beta-bin.jar).
124
Manual de Administrador
Directorio classes
Este directorio contiene servlets y otras clases. Aqu se pueden ubicar los paquetes
que utilizados en la aplicacin, en nuestro caso el paquete jspSmartUpload (com) y
las clases desarrolladas para modelar la aplicacin: usuario, huella y administrador.
JspSmartUpload
Todos
los
ficheros
jspsmartUpload
vienen
en
un
fichero
comprimido
Para poder utilizar este paquete en las pginas JSP de nuestra aplicacin, se tendr
que ubicar en el directorio de la aplicacin. Concretamente la estructura de directorio
de Tomcat nos indica que hay que situarlo en el directorio WEB-INF\classes.
Lector de huellas
Para instalar el hardware de captura de huellas que se utiliza en el proyecto se
introduce el CDROM que viene con el lector y seguimos el men se instalacin,
seleccionando la opcin Development Toolkit.
125
Manual de Administrador
La API Java que se utiliza en nuestra aplicacin esta en el archivo jar FPJni.jar,
que
126
no
son
ms
que
un
conjunto
de
clases
empaquetadas.
Tabla Administradores
CREATE TABLE ADMINISTRADORES
(
ID_ADMINISTRADOR INTEGER PRIMARY KEY,
NOMBRE VARCHAR(15) NOT NULL,
PLANTILLA VARCHAR(15) NOT NULL
);
127
Tabla Usuarios
CREATE TABLE USUARIOS
(
ID_USUARIO INTEGER PRIMARY KEY,
NOMBRE VARCHAR(50) NOT NULL,
DIRECCION VARCHAR(50),
CP INTEGER,
LOCALIDAD VARCHAR(20),
PAIS VARCHAR(15),
ALTA CHAR(1)
);
Tabla Huellas
CREATE TABLE HUELLAS
(
ID_HUELLA INTEGER PRIMARY KEY,
MANO CHAR(1) NOT NULL,
DEDO CHAR(1) NOT NULL,
PLANTILLA VARCHAR(15) NOT NULL,
Id_usuario INTEGER,
CONSTRAINT FOREING KEY (Id_usuario) REFERENCES
USUARIOS(ID_USUARIO) ON DELETE CASCADE,
);
128
Bibliografa
Bibliografa
[1] Damon Hougland, Aarn Tavistock. Gua esencial JSP. Pearson Educacin
S.A, Madrid, 2002.
[4] Rich Bowen & Ken Coar, Servidor Apache al Descubierto. Pearson Educacin,
S.A. Madrid, 2000.
[5] Lemay, Laura, Aprendiendo HTML 4 para web en una semana. Prentice Hall,
Mxico, 1998.
[6] Juan Carlos Ors, Diseo de pginas Web interactivas con JavaScript. RA-MA
Editorial, Madrid, 1998.
[7] Graham Hamilton, Rick Cattell, Maydene Fisher, JDBC Database Access with
Java - A tutorial and annotated reference. Addison-Wesley, Massachussets,
1997.
[9] Agustn Froure Quintas, Java Server Pages Manual de usuario y tutorial. RAMA, Madrid, 2002
129
Bibliografa
[10] Jayson Falke, Ben Galbraith, Romin Irani, ... Fundamentos Desarrollo Web con
JSP. Anaya Multimedia, Madrid, 2002
130
Direcciones web
Direcciones web
http://desaweb.forosdelweb.com
http://www.programacion.com
http://www.javahispano.org -
Java en Castellano
http://www.programadores.com.sv -
http://www.mysql.com - MySQL
http://java.sun.com -
http://www.jspsmart.com -
http://jakarta.apache.org - Tomcat
http://www.ictnet.es/ICTnet/cv/comunidad.jsp?area=engInf&cv=biometrica
- Comunidad de Biometra
131
ndice de Figuras
ndice de figuras
Figura 1. Diagrama Sistema Reconocimiento Biomtrico .............................. 13
Figura 2. Relacin entre FAR, FRR y ERR ...................................................... 14
Figura 3. Huella dactilar con minucias ............................................................ 16
Figura 4. Huella original y huella normalizada ................................................ 24
Figura 5. Huella orientada y campos realineados ............................................ 25
Figura 6. Variaciones de la huella y regin importante ................................... 26
Figura 7. Imagen filtrada e imagen binaria .................................................... 27
Figura 8 . Imagen despus del primer filtro perfilador e imagen
despus del segundo filtro perfilador con mscara espacial ......... 28
Figura 9. Imagen despus del adelgazamiento y eliminacin de
imperfecciones y patrn de minucias despus del proceso de
eliminacin de conjuntos ................................................................... 29
Figura 10. Patrn de minucias ........................................................................... 30
Figura 11. Alineacin de la cresta de entrada y la cresta plantilla ................. 32
Figura 12. Actores del sistema ........................................................................... 40
Figura 13. Casos de uso de Administrador ...................................................... 41
Figura 14. Casos de uso Usuario ....................................................................... 44
Figura 15. Modelo EntidadRelacin ............................................................... 48
Figura 16. Modelo de servidor de documentos estticos ................................ 53
Figura 17. Contenido dinmico por secuencia de comandos CGI ................. 55
Figura 18. Aplicaciones dinmicas usando servlets, JSP y J2EE .................. 56
Figura 19. Interfaz JDBC .................................................................................. 72
Figura 20. Despliegue de la aplicacin ............................................................. 74
Figura 21. Paquetes de la aplicacin ................................................................. 75
Figura 22. Clases Auxiliares .............................................................................. 76
Figura 23. Clases del dominio ............................................................................ 77
Figura 24. Clases Interfaz .................................................................................. 78
132
ndice de Figuras
133
ndice de Tablas
ndice de Tablas
Tabla 1. Candidatos a Entidad y Relacin ....................................................... 47
Tabla 2. Porcentaje de autenticacin y porcentaje de rechazo ...................... 110
134