INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD ZACATENCO
DISEÑO DE SISTEMA DE CONTROL DE ASISTENCIA BIOMÉTRICO DACTILAR UTILIZANDO TECNOLOGÍA .NET “
QUE PARA OBTENER EL TÍTULO DE:
INGENIERO EN COMUNICACIONES Y ELECTRÓNICA
P R E S E N T A N
Jiménez Ramos Julio César Zepeda Cabezas Víctor Hugo
ASESORES: Ing. Armando Mancilla León M. en C. Genaro Zavala Mejía M. en C. Roberto Galicia Galicia
”
Escuela Superior de Ingeniería Mecánica y Eléctrica
Índice Índice de Ilustraciones _____________________________________________________ 3 Índice de Tablas __________________________________________________________ 5 Resumen ________________________________________________________________ 6 Capítulo 1. Introducción____________________________________________________ 7 1.1.
Planteamiento del Problema __________________________________________________ 8
1.2.
Justificación _________________________________________________________________ 8
1.3.
Hipótesis ___________________________________________________________________ 9
1.4.
Objetivos __________________________________________________________________ 10
1.3.1. Objetivo General ______________________________________________________________ 10 1.3.2.
Objetivos Particulares _______________________________________________________ 10
1.5.
Desarrollo de la Investigación _______________________________________________ 11
1.6.
Alcance del Trabajo _________________________________________________________ 12
Capítulo 2. Estado del Arte ________________________________________________ 13 2.1
Bases de Datos que usan algún patrón Biométrico ______________________________ 13
2.2
Hardware __________________________________________________________________ 15
Capítulo 3. Marco Teórico _________________________________________________ 19 3.1
Modelo del Proceso de Identificación Personal _________________________________ 20
3.2.
Características de un Sistema Biométrico ______________________________________ 21
3.3.
Arquitectura y Medidas de Desempeño de un Sistema Biométrico ________________ 24
3.4.
Módulo de Inscripción _______________________________________________________ 25
3.5.
Módulo de Identificación ____________________________________________________ 26
3.6.
Reconocimiento de Huella Dactilar ___________________________________________ 26
3.7.
Adquisición de Huella Dactilar _______________________________________________ 33
3.8.
Procesamiento de la Huella Dactilar __________________________________________ 33
3.9.
Estandarización de los Sistemas Biométricos __________________________________ 35
3.9.1. Asociación Mexicana de Biometría e Identidad (AMBI) ________________________________ 35 3.9.2. Norma Oficial Mexicana _________________________________________________________ 37 3.10.
C Sharp ____________________________________________________________________ 38
Página 1
Escuela Superior de Ingeniería Mecánica y Eléctrica
Capítulo 4. Diseño del Sistema de Control de Asistencia _________________________ 39 4.1.
Introducción _______________________________________________________________ 39
4.2.
Diseño de interfaz para el reconocimiento de las huellas dactilares ______________ 39
4.3.
Diseño de la Base de Datos ___________________________________________________ 54
Capítulo 5. Pruebas ______________________________________________________ 56 5.1.
Pruebas del Algoritmo _______________________________________________________ 57
I. Características del Sensor ________________________________________________ 64 II. Análisis de Costos______________________________________________________ 65 III. Código de la Aplicación_________________________________________________ 67 V. Conclusiones _________________________________________________________ 84 V. Glosario _____________________________________________________________ 86 VI. Bibliografía __________________________________________________________ 87
Escuela Superior de Ingeniería Mecánica y Eléctrica
Índice de Ílustraciones Ilustración 3- 1 Esquema de un sistema de reconocimiento de patrones ____________________________ 19 Ilustración 3- 2 Arquitectura de un Sistema Biométrico __________________________________________ 24 Ilustración 3- 3 Huella Dactilar _____________________________________________________________ 26 Ilustración 3- 4 A. Sistema Marginal, B. Sistema Nuclear, C. Sistema Basilar _________________________ 29 Ilustración 3- 5 Puntos Singulares de la Huella Dactilar. _________________________________________ 30 Ilustración 3- 6 Arco ______________________________________________________________________ 31 Ilustración 3- 7 Presilla Interna _____________________________________________________________ 31 Ilustración 3- 8 Presilla Externa _____________________________________________________________ 32 Ilustración 3- 9 Verticilo ___________________________________________________________________ 32
Ilustración 4- 1 Herramientas de Visual Studio 2012 ____________________________________________ 41 Ilustración 4- 2 Formulario de Visual Studio ___________________________________________________ 42 Ilustración 4- 3 Formulario Sistema de Control de Asistencia Biométrico Dactilar _____________________ 44 Ilustración 4- 4 Diagrama de Flujo del Formulario Principal ______________________________________ 46 Ilustración 4- 5 Formulario Secundario Ingresar Huella __________________________________________ 47 Ilustración 4- 6 Formulario Ingresar Datos de Trabajador ________________________________________ 48 Ilustración 4- 7 Diagrama de Flujo de Ingresar Huella ___________________________________________ 49 Ilustración 4- 8 Diagrama de Flujo de Ingresar Datos ___________________________________________ 49 Ilustración 4- 9 Formulario Editar Datos ______________________________________________________ 50 Ilustración 4- 10 Diagrama de Flujo de Edición de Datos _________________________________________ 51 Ilustración 4- 11 Formulario Checador _______________________________________________________ 52 Ilustración 4- 12 Formulario Verificar Huella __________________________________________________ 52 Ilustración 4- 13 Diagrama de Flujo de Checar _________________________________________________ 53
Ilustración 5- 1 Ingresando Usuario y Contraseña de Administrador _______________________________ 57 Ilustración 5- 2 Ingreso de la primera muestra de la huella _______________________________________ 58 Ilustración 5- 3 Creación del template de la huella______________________________________________ 58 Ilustración 5- 4 Llenado del formulario para el registro __________________________________________ 58 Ilustración 5- 5 Registro exitoso de trabajador _________________________________________________ 59 Ilustración 5- 6 Mensaje de U suario y Contraseña del trabajador __________________________________ 59
Página 3
Escuela Superior de Ingeniería Mecánica y Eléctrica
Ilustración 5- 7 Edición de Registro de Trabajador ______________________________________________ 60 Ilustración 5- 8 Eliminación de Registro y Usuario ______________________________________________ 60 Ilustración 5- 9 Ingresar a las características de Personal ________________________________________ 61 Ilustración 5- 10 Ingreso a la base de datos de las huellas dactilares _______________________________ 61 Ilustración 5- 11 Intento de suplantación de identidad __________________________________________ 62 Ilustración 5- 12 Verificación de huella aceptada _______________________________________________ 62 Ilustración 5- 13 Registro hecho de Entrada o Salida ____________________________________________ 63
Ilustración I- 1 Sensor Digital Persona U.are.U 4000b ...................................................................................... 64
Escuela Superior de Ingeniería Mecánica y Eléctrica
Índice de Tablas Tabla 1- 1 Diferencia entre Sistemas Biométricos _______________________________________________ 9 Tabla 1- 2 Sistemas Biométricos Internacionales _______________________________________________ 14 Tabla 1- 3 Sistemas Biom étricos Nacionales e Internacionales ____________________________________ 15 Tabla 1- 4 Características del Suprema BioStation _____________________________________________ 17 Tabla 1- 5 Características de Suprema BioStation T2 ____________________________________________ 18
Tabla 3- 1 Análisis de Características Físicas __________________________________________________ 21
Tabla II- 1 Costo de equipo para el Sistema ___________________________________________________ 65 Tabla II- 2 Costo total de implementación del Sistema __________________________________________ 66 Tabla II- 3 Salario Mensual promedio en México _______________________________________________ 66 Tabla II- 4 Costo total de desarrollo del software _______________________________________________ 66 Tabla II- 5 Costo total del Sistema de Control de Asistencia Biométrico Dactilar ______________________ 66
Página 5
Escuela Superior de Ingeniería Mecánica y Eléctrica
Resumen Hace muchos años, era viable manejar un sistema de horarios y asistencia, tan sólo con usar unas cuantas hojas de papel. Dichos días son historia, para la mayoría de las empresas, puesto que estos sistemas pueden ser catastróficos. Un sistema de asistencia, que haga uso de papel, implica un enorme gasto de tiempo al día, a la semana, al mes, etc. Del mismo modo, se requiere de muchas personas para que hagan reportes de pagos, basándose en dichos papeles. Dichos reportes pueden presentar inconsistencias debido a varias razones: por un lado, el sistema en sí se presta para eso, mientras que por otro lado, no se sabe en realidad si los empleados usan el sistema con honestidad. Con mucha frecuencia, algunos empleados tienden a colocarse más horas laboradas, a tapar retrasos y hasta a firmar por otros. Aunque los trabajadores que acuden a estas prácticas no las ven como algo grave, lo cierto es que éstas ocasionan pérdidas alarmantes en una empresa. Los sistemas modernos, para el control laboral, no sólo son mucho más precisos que sus antecesores, sino también reflejan las horas que han sido trabajadas en realidad y permiten acceder a esta información de manera más rápida y organizada. Por otra parte, los sistemas modernos hacen uso de la biometría, la cual es una práctica que identifica a las personas, al analizar sus rasgos particulares. Al basarse en estas particularidades es imposible que un trabajador reporte la asistencia de otro, porque no hay manera de prestarse las huellas digitales. Además, con estos sistemas biométricos se reducen pérdidas y se mejoran los márgenes de ganancia de una empresa.
Escuela Superior de Ingeniería Mecánica y Eléctrica
Capítulo 1. Íntroduccion Como parte de la modernización a nivel mundial, es necesario tener sistemas más fiables, por lo cual, el proyecto está enfocado en utilizar un sistema biométrico dactilar enlazado a una base de datos, para evitar errores o corrupción por terceras personas o agentes externos al control de asistencia, como el remplazo de identidad para pasar asistencia. La identidad permite distinguir a un individuo entre millones de personas, mediante rasgos fisiológicos como el rostro, conformación dental, huella dactilar, iris, voz, etc., tanto como rasgos sociales que en gran parte, son el resultado de la interacción del individuo con su medio. El uso de sistemas de identificación personal se han ocupado durante la historia de la humanidad, desde la grafología hasta el sistema de identificación ciudadana de un país, tanto para elecciones como para poder sacar un pasaporte o hacer cualquier trámite. El uso de la tecnología para la identificación de un individuo que se enfoca en los rasgos fisiológicos, se le llama Biometría Informática, por lo que la identidad construida por el sistema, se le llama Identidad Biométrica del Individuo. Un ejemplo de los sistemas biométricos informáticos, es al momento de hablar por teléfono celular, se relaciona la identidad del individuo que habla, mediante el número que registre el receptor, y en ese mismo ejemplo podemos conocer un sistema biométrico natural, como el tratar de reconocer la voz del transmisor, con la información que se ha recopilado en el transcurso de la vida, y si el cerebro encuentra las similitudes de la voz, el receptor es capaz de reconocer quién le habla. Esto puede sonar a que se crea una base de datos que va enriqueciendo día a día. Las bases de datos, se han constituido como una de las herramientas más ampliamente difundidas, en la actual sociedad de la información, utilizadas como fuentes secundarias,
Página 7
Escuela Superior de Ingeniería Mecánica y Eléctrica
en cuanto a recuperación y almacenamiento de información en todos los campos, a nivel científico, social, económico, político y cultural. “Como parte de la informática las bases de datos han sido parte primordial, pues en el
manejo de la información no se puede simplemente manejar, si no tenemos un lugar de almacenamiento.” “Las bases de datos se usan para hacer un manejo eficiente de la información”
El uso de sistemas de bases de datos automatizadas, se desarrolló a partir de la necesidad de almacenar grandes cantidades de datos, para su posterior consulta, producidas por las nuevas industrias que creaban gran cantidad de información.
1.1. Planteamiento del Problema Durante años se ha presentado una gran cantidad de problemas en los checadores a nivel general, debido a problemas físicos, simple suplantación de identidad para evitar descuentos en la nómina, o para evitar retardos y que no tengan bonos por puntualidad. En ocasiones, el personal sólo checa y se retira de su sitio de trabajo, dejando a un lado sus deberes dentro de la empresa o escuela.
1.2. Justificación Actualmente, los sistemas tradicionales para la identificación no son totalmente seguros, y no se dan abasto para la demanda de seguridad que se desea, puesto que se requiere la identificación para ingresar a diferentes partes de la empresa, o incluso sitios restringidos, que necesitan aún una mayor seguridad para controlar información de carácter personal. Por lo mismo, la necesidad de implementar sistemas que empleen la biometría, con todas su ventajas como método de identificación, e incluida una base de datos confiable y segura, donde se pueda evitar que se compartan las claves, códigos de ingreso o tarjetas de acceso e incluso, se pueda evitar la suplantación de identidad.
Escuela Superior de Ingeniería Mecánica y Eléctrica
Definitivamente, ningún sistema biométrico está exento de errores mediante suplantación, pero las diferentes características de los diversos sistemas biométricos, muestran las debilidades y las fortalezas de cada sistema, como la tabla 1-1. Ojo (Iris)
Ojo
Huella
Geometría
Escritura y
(Retina)
Dactilar
de la mano
Firma
Voz
Cara
Fiabilidad
Muy Alta
Muy Alta
Alta
Alta
Media
Alta
Alta
Facilidad de
Media
Baja
Alta
Alta
Alta
Alta
Alta
Muy Alta
Muy Alta
Alta
Alta
Media
Media
Media
Aceptación
Media
Baja
Alta
Alta
Muy Alta
Alta
Alta
Estabilidad
Alta
Alta
Alta
Media
Baja
Media
Media
uso Prevención de ataques
Tabla 1- 1 Diferencia entre Sistemas Biométricos
La tabla 1 muestra que el sistema más estable es el de huella dactilar, independientemente de que pueda ser utilizado un molde o simplemente disponer de la huella dactilar. “Encontrar un sistema infalible e inequívoc o para reconocer personas es el objetivo de la biometría.” 1
1.3. Hipótesis Cuanto mayor sea el control de asistencia en una empresa o escuela , a través de un control de asistencia por sistema biométrico apoyado por una base de datos , que contenga la información del trabajador, la suplantación de identidad al momento de marcar asistencia , se verá disminuida, por lo tanto se verá obligado a llegar a tiempo.
Página 9
Escuela Superior de Ingeniería Mecánica y Eléctrica
1.4. Objetivos 1.3.1. Objetivo General Diseñar un prototipo de un sistema con interfaz gráfica para el control de asistencia, dedicado a una empresa o escuela para impulsar una mayor eficiencia, usando un sistema biométrico que detecte huellas dactilares, y que éstas sean guardadas en una base de datos para tener un sistema ágil.
1.3.2. Objetivos Particulares Diseñar un prototipo de interfaz gráfica para la interacción Usuario-Sistema mediante la tecnología .NET. Crear una base de datos para alojar la información del control de asistencia y de los usuarios que lo ocupen. Usar un sistema biométrico que detecte huellas dactilares que sea compatible con Windows.
Escuela Superior de Ingeniería Mecánica y Eléctrica
1.5. Desarrollo de la Investigación El presente escrito, se ha desarrollado con el fin de explicar de manera detallada el desarrollo del control de asistencia por sistema biométrico dactilar, diseñado en Visual Studio 2012® en lenguaje de programación C#. Este escrito se conforma de 5 capítulos: Capítulo 1. Introducción
Plantea describir brevemente la evolución del control de asistencia, además de explicar la justificación del diseño de un control de asistencia asistido por un sistema biométrico, que reconoce huellas dactilares. Capítulo 2. Estado del Arte
Detalla cuál es el mercado en donde se ubican estos sistemas por diferentes formas de verificación, así como los avances tecnológicos que se han presentado en los últimos años. Capítulo 3. Marco Teórico
Se presentan los conceptos y explicaciones necesarias para la compresión del mecanismo de trabajo , y cuáles son los rasgos importantes de reconocimiento y verificación. Capítulo 4. Diseño
Explica de manera concisa los elementos que integran al control de asistencia, la forma en que fue diseñado, programado y relacionado entre sí, así como la consolidación del sistema de manera íntegra.
Página 11
Escuela Superior de Ingeniería Mecánica y Eléctrica
Capítulo 5. Pruebas y Resultados
Se exponen las pruebas que se llevaron a cabo durante el desarrollo del proyecto , y los resultados obtenidos una vez que fue implementado.
1.6. Alcance del Trabajo El desarrollo del control de asistencia por sistema biométrico dactilar , se limita hasta su completo diseño y pruebas de factibilidad, lo que no abarca es su implementación en los checadores de ESIME, sin embargo , se dejan las bases para que dicha implementación se pueda llevar a cabo en un futuro. En cuanto a las pruebas, se limitó trabajar con los alumnos del grupo 9CM11 -2012 para conocer la fiabilidad y velocidad que el sistema posee.
Escuela Superior de Ingeniería Mecánica y Eléctrica
Capítulo 2. Estado del Arte 2.1 Bases de Datos que usan algún patrón Biométrico Existen diversas bases de datos que utilizan sistemas biométricos para su reconocimiento, desde bases de datos para ADN hasta documentos oficiales, como Licencias, Armas y Sistemas Electorales.
En el país existen 3,045 bases de datos personales (a través del Sistema Persona). De ellos, 234 prevé algún tipo de datos biométrico (huella dactilar o iris del ojo).
Algunos sistemas, que incluyen una base de datos por sistema biométrico a nivel nacional e internacional, se muestran en la tabla 1-2 y 1-3:
Asia Pacífico
27 países de la Visa que facilita A través del I- Fotografía, región
la movilidad de 24/7 las personas de en negocios
(sistema huellas línea
de dactilares e iris
Interpol) contribuye con la Lista de Robo y Extravío de Documentos de Viaje
de
Interpol
Página 13
Escuela Superior de Ingeniería Mecánica y Eléctrica
Zona Schengen
25 países: 22 Lista biométrica
De aquellos que Fotografías
miembros de la
han
UE
algún crimen
y
3
no
y
cometido huellas dactilares
miembros de la UE Interpol
190
países Intercambio de Varias bases de ADN, fotografía,
miembros
información
a datos
huellas
través
I- biométricas
dactilares.
del
24/7 Tabla 1- 2 Sistemas Biométricos Internacionales
Países
Bases criminales
•
Sistemas migratorios
Sistema Nacional de Huellas
•
(Smart Gates)
Dactilares (NAFIS) Australia
•
Bases de Datos Nacional de Investigación
Criminal
ADN (NCIDD)
Puertas inteligentes
•
Visa
de
Negocios
(APEC)
de •
Alerta de Lista de Movimientos (MAL)
•
Sistema Integral de Operación Migratoria (SIOM)
México
•
Plataforma México
•
Sistema Integral de Administración Consular (SIAC)
•
Visa
de
Negocios
(APEC) Nueva Zelanda
•
Base Nacional de ADN
•
Puertas inteligentes
Escuela Superior de Ingeniería Mecánica y Eléctrica
•
Base de Datos de Evidencias de Crimen
•
Sistema
(Smart Gates) •
de
Huellas
Dactilares (AFIS)
Visa
de
Negocios
(APEC) •
Alerta de Lista de Movimientos (MAL)
•
España
•
•
Base de Datos Única de ADN
•
Eurodac
en materia Criminal
•
Schengen I y II
Schengen I y II
•
Sistema
de
Sistema Nacional de Huellas
Información de Visas
Dactilares
(VIS)
Tabla 1- 3 Sistemas Biométricos Nacionales e Internacionales
2.2 Hardware Existen los relojes checadores dedicados, dichos relojes como su nombre lo dice, son dispositivos que sólo tienen una función específica, la cual es almacenar la huella digital, y en forma independiente reconocer las huellas. Este tipo de reloj almacena la fecha y hora en que se reconoce una huella, para que posteriormente dicha información sea extraída por otro ordenador. Existen diversos tipos de sensores detectores de huellas dactilares modernos, pero los más reconocidos son los siguientes:
Sensores con ventana de algodón El tiempo de vida de éste depende del uso correcto al momento de hacer contacto con el dedo, debido a que tiene una capa delgada de silicón. Si la superficie que detecta sufra algún daño (rayaduras), tiene un porcentaje de probabilidad alto de que deje de funcionar en sus condiciones normales. Si su uso es el correcto, su tiempo de vida puede ser mayor a 5 años.
Sensores con ventana a prueba de rayones Página 15
Escuela Superior de Ingeniería Mecánica y Eléctrica
Este sensor óptico tiene una ventana más resistente que el vidrio y se limpia con un trapo húmedo. El tiempo de vida de éste es indefinido. Los sensores CA-8 y CA680 de la marca “Bioaxo”(1) cuentan con este sensor.
Sensor óptico multiespectral Es un sensor a prueba de rayones y utiliza luz ultravioleta, infrarroja y normal para leer la huella, es un sensor de alta precisión que puede detectar huellas borradas con el uso, pues la luz ultra violeta, la lee bajo la piel. Es una tecnología más cara, puede leer huellas de personas de edad avanzada y niños.
Algunos ejemplos de estos tipos de sensores, son los creados por Kimaldi, llamado Terminal biométrico de huella dactilar Suprema BioStation (2), con las ventajas de:
Algoritmo rápido y preciso, hasta 3,000 huellas por segundo.
Memoria para 400,000 huellas (1:1) y 1,000,000 de registros
Tecnología Dual CPU System, mayor precisión y rapidez en la identificación
Múltiples sensores: óptico, capacitivo
Fácil instalación en red: TCP/IP, RS 485
Pantalla color LCD con una interfaz gráfica muy intuitiva
Entrada USB para descarga de eventos
Múltiples modos de funcionamiento: biométrico, RFID, teclado (combinables)
Dispone de software de control de acceso.
Escuela Superior de Ingeniería Mecánica y Eléctrica
Las características principales de este sistema, son: CPU
Dual CPU (32bit RISC + 400MHz DSP)
Memoria
1GB Flash + 34 MB RAM
Pantalla
2.5" QVGA 16M Color LCD
Velocidad
identificación 1 a 3.000 huellas en 1 seg.
biométrica Capacidad de huellas
400.000 huellas (1:1), 20.000 huellas (1:N)
Capacidad de registros
1.000.000 eventos
Interfaz
Wireless LAN (opcional), TCP/IP, RS485
PC Interfaz
USB, RS232
Ranura USB
USB Host
Relé de salida
Deadbolt,
EM
lock,
door
strike,
automatic door External I/O
Wiegand I/O, 4 TTL I/O
Modos de operación
Biométrico, PIN, PIN + Biométrico
Interfono
Micrófono y altavoz para interfono
Tecla de navegación
Tecla para navegar por el menú
Tecla de función
4 teclas de función para definir funciones
Temperatura de operación
- 20℃~ 50℃
Tamaño
135 x 128 x 50mm (W x H x D) Tabla 1- 4 Características del Suprema BioStation
El software Suprema, es uno de los sistemas más confiables a nivel comercial, puesto que cuenta con grandes características , como la inclusión de una cámara, para evitar la suplantación de identidad. Y el sucesor de este sistema es su segunda versión Suprema BioStation T2, con características de hardware más completas: Página 17
Escuela Superior de Ingeniería Mecánica y Eléctrica
CPU
667MHz RISC, 533MHz DSP
Memoria
Flash 1GB, 256MB RAM
LCD
Pantalla táctil WVGA 5.0 pulgadas
Sensor de Huella
Óptico
Cámara
Detección de rostro y videoteléfono
Opciones de Tarjeta RF
EM 25KHz, Mifare 13.56 MHz
Capacidad de Huellas
400,000 (1:1), 20,000 (1:N)
Máximo de Usuarios
200,000
Capacidad de Registros
Huellas: 1,000,000 / Imágenes: 5,000
PoE (cable que reduce el consumo
Sí
de energía) Interfaces
Wireless LAN (opcional) TCP/IP Wiegand 2 canales RS485, RS232 4 x TTL E/S 2 x Relevador USB (Host y Esclavo) Entrada para tarjeta SD
Tamper
Switch
Sonido
Indicación de voz y sonido 16 bit Hi-Fi
Temperatura de Operación
- 20’C ~ 50’C
Voltaje de Operación
12 VDC
Dimensiones (mm)
155 (Ancho) x 155 (Alto) x 40 (profundidad)
Tabla 1- 5 Características de Suprema BioStation T2
Escuela Superior de Ingeniería Mecánica y Eléctrica
Capítulo 3. Marco Teo rico El reconocimiento de patrones, es la ciencia que se encarga de la descripción y clasificación de objetos, personas, representaciones, etc. Esta ciencia trabaja con base a un conjunto de patrones individuales previamente establecidos. Las aplicaciones creadas de reconocimiento de patrones es muy basto, sin embargo, las dos más importantes se relacionan con la visión y audición por parte de un sistema, haciendo una analogía de los seres humanos. Un sistema de reconocimiento de patrones (Ilustración 3-1), consta de varias etapas relacionadas.
Decisión Características
Patrón
Extractor de Características
Universo (Objetos, conceptos)
Clasificador
Sensor
Ilustración 3- 1 Esquema de un sistema de reconocimiento de patrones
El sensor tiene como propósito, hacer una representación viable del patrón que se clasificará. Es la parte crucial del sistema, ya que éste, determina de manera notable el rendimiento de todo el sistema. La extracción de las características, es la etapa que se encarga, a partir del patrón obtenido, extraer la información comprimida, eliminando información insignificante y repetida. Por último, la etapa de clasificador, es la encargada de la toma de decisiones en el sistema, asignando los patrones a una categoría apropiada.
Página 19
Escuela Superior de Ingeniería Mecánica y Eléctrica
El reconocimiento de patrones es la base teórica fundamental de la Biometría, ya que un Sistema Biométrico, es un sistema de reconocimiento de patrones por lo que la fundamentación matemática, es de gran importancia para los fabricantes de tecnología biométrica, no así para el desarrollo de este trabajo de tesis, cuyo objetivo es diseñar un Sistema de Control de Asistencia Biométrico Dactilar, con tecnología creada por “Digital Persona” para el control seguro de la asistencia en una empresa o escuela.
3.1 Modelo del Proceso de Identificación Personal El modelo del proceso de la identificación personal, insta de tres indicadores de identidad, que determinan la identificación de un individuo: 1. Posesión, lo que el individuo tiene. 2. Conocimiento, lo que sabe. 3. Característica, características físicas o conductuales, por la cual puede ser identificada.
El último indicador necesita 4 requisitos básicos para poder ser considerado como un indicador de identidad: •
Universalidad: Se define como algo que poseen todos los seres humanos o una especie en común, por lo que el indicador de identidad que se seleccione deberá estar presente en todos los individuos o especie que deseen estar dentro del sistema de reconocimiento.
•
Singularidad: Hace referencia a algo que es único en su especie, lo que quiere decir que la probabilidad de que existan dos personas o dos elementos de la especie es casi nula.
•
Estabilidad: Debe ser un rasgo o característica que debe permanecer invariable e indefinidamente en el mismo estado, situación o lugar, por lo que este rasgo debe de estar presente a lo largo de la vida del humano o miembro de su especie.
Escuela Superior de Ingeniería Mecánica y Eléctrica
•
Cuantificación: Debe ser posible medir y/o conocer, la cantidad exacta que posee el identificador de identificación que se ha seleccionado.
Estos requerimientos, sirven como criterio para descartar o aprobar alguna característica física o conductual, como indicador biométrico. Indicador
Universalidad
Singularidad
Estabilidad
Cuantificación
Cabello
No
No
No
Si
Estatura
Si
No
No
Si
Distancia entre los ojos
Si
No
Si
Si
Huella Dactilar
Si
Si
Si
Si
Peso Corporal
Si
No
No
Si
Geometría de la mano
Si
Si
Si
Si
Tabla 3- 1 Análisis de Características Físicas
Como se observa en la tabla 3-1, sólo dos características físicas del humano de 6 que se seleccionaron, cumplen con los 4 requisitos necesarios para poder ser considerados como patrones de identificación biométricos. Por lo que, tomando en cuenta el resultado de éste análisis, se puede concluir que no todos las características de los humanos pueden ser considerados como patrones de identificación biométrico, por lo que es necesario que las empresas dedicadas a la identificación de personas por algún patrón biométrico, lleven a cabo una exhaustivo estudio del patrón que deseen ocupar, para que éste pueda cumplir con el objetivo de manera correcta.
3.2. Características de un Sistema Biométrico Un sistema biométrico, es una técnica automática de identificación y verificación de un individuo, usando una o más características físicas y/o de comportamiento determinante. Éstos deben cumplir con características básicas para poder ser tomado en cuenta como un sistema estable y seguro son: desempeño, aceptabilidad y fiabilidad, con lo que puede obtener una utilidad práctica.
Página 21
Escuela Superior de Ingeniería Mecánica y Eléctrica
I.
Desempeño: Se refiere a la exactitud, rapidez y robustez alcanzada para la identificación de los individuos por parte del sistema biométrico. Otros elementos que se toman en cuenta para calificar el desempeño son:
Los recursos tecnológicos para su fabricación.
Costos asociados.
Efecto de factores ambientales y/u operacionales.
Esta característica tiene como objetivo, comprobar si el sistema es exacto, rápido y aceptable, con los recursos necesarios.
II.
Aceptabilidad: Se refiere a que tan dispuesta esta la gente en aceptar un sistema biométrico, en su vida diaria. Dicho sistema, debe de ser de fácil uso, no debe de representar algún peligro para los usuarios y debe de inspirar confianza a los usuarios. Un ejemplo de un sistema biométrico que debido a factores psicológicos puede afectar en esta característica con el dispositivo de reconocimiento, es el reconocimiento de retina debido que el usuario requiere un contacto cercano entre el dispositivo y el ojo del usuario, ya que el ojo del usuario no tiene protección frente al dispositivo.
III.
Fiabilidad: Esta característica expresa qué tan difícil es burlar al sistema. Para que un sistema biométrico sea fiable totalmente, debe de reconocer características de personas vivas, ya que es posible crear grabaciones digitales de voz, dedos de látex, prótesis de ojos, entre otros, para poder burlar la seguridad del sistema y obtener acceso a donde deseen entrar
“Recientemente, investigadores de la Universidad de Clarkson (Postdam, N.Y.), con
ayuda del financiamiento de instituciones gubernamentales de Estados Unidos,
Escuela Superior de Ingeniería Mecánica y Eléctrica
como el Departamento de Defensa y la Fundación Nacional para las Ciencias, probaron que es posible engañar a este tipo de dispositivos, con métodos relativamente sencillos. En su experimento, el equipo de investigadores creó 60 dedos falsos, que lograron engañar a los dispositivos lectores de huellas digitales, y su software correspondiente- en 9 de cada 10 intentos. De acuerdo con los especialistas, las huellas dactilares falsas pueden ser extraídas de cadáveres o de personas vivas, y ser moldeadas en plástico, o inclusive plastilina o gelatina. Los resultados de la investigación servirían para encontrar nuevos métodos, para determinar si la característica bajo estudio corresponde o no a la de una persona viva, y de esta forma impedir fraudes relacionados con los sistemas biométricos. Expertos en el área, aseguran que otra forma de evitar fraudes en este tipo de sistemas es, combinando los distintos rasgos biométricos que pueden ser utilizados, como identificadores de identidad. Por ejemplo, se pueden fabricar sistemas que reconozcan la huella dactilar, y una vez que ésta sea verificada, se proceda al reconocimiento de la voz del usuario. Otro ejemplo podría ser, la creación de sistemas que verifiquen la identidad de un individuo, escaneando su iris o retina, y que además, requieran de una contraseña que al momento de ser introducida a través de un teclado, será verificada y pasará por un análisis de velocidad de tecleo y presión ejercida sobre las teclas, es decir, se llevará a cabo el reconocimiento del patrón de tecleo del usuario. De esta forma se volverá mucho más difícil para los impostores, poder falsificar todos los rasgos biométricos utilizados en este tipo de “sistemas combinados”. No obstante, el elevado costo de
este tipo de sistemas será una desventaja, tanto para los fabricantes, como para las empresas o particulares que decidan adquirirlos, esto debido a que la cantidad de hardware y software necesarios, para que los sistemas operen como es deseado, se verá incrementado y dependerá de la cantidad de características biométricas utilizadas. ” (3) Actualmente, existen métodos que son empleados para evitar la suplantación de identidad, cómo el sistema basado en reconocimiento de iris, el cual, revisa patrones Página 23
Escuela Superior de Ingeniería Mecánica y Eléctrica
característicos en las manchas de éste y un sistema infrarrojo revisa las venas de la mano, detectando flujo de sangre. Actualmente, se ha desarrollado sistemas más fiables pero aún falta mucha investigación para desarrollar sistemas biométricos totalmente fiables.
3.3. Arquitectura y Medidas de Desempeño de un Sistema Biométrico Los sistemas biométricos poseen tres componentes esenciales: 1. El que se encarga de la adquisición análoga o digital del patrón biométrico (adquisición de la huella dactilar mediante el escáner). 2. Compresión, procesamiento, almacenamiento y comparación de los datos obtenidos. 3. Interfaz gráfica para la utilización del sistema. La arquitectura de los sistemas biométricos se pueden dividir en dos módulos: El Módulo de Inscripción y el Módulo de Identificación.
Ilustración 3- 2 Arquitectura de un Sistema Biométrico
Escuela Superior de Ingeniería Mecánica y Eléctrica
3.4. Módulo de Inscripción Éste módulo, es el encargado de adquirir y almacenar la información obtenida del indicador biométrico, con el propósito de poder verificar esta información con la que se proporcionará en ingresos posteriores al sistema. Las tareas ejecutadas por este módulo, son gracias a la acción del lector biométrico y del extractor de características. El lector biométrico se encarga de obtener los datos relativos del indicador biométrico y hacer una representación digital de éstos. El extractor, como su nombre lo indica, extrae, a partir de la salida del lector, las características representativas del patrón biométrico. En este proceso de recolección de datos, se presenta uno de los primeros problemas, las muestras, están sujetas a la calidad y características del sensor utilizado, lo que ll eva a que las características del sensor sean estandarizadas, con el fin de garantizar que las muestras obtenidas de un usuario, sean compatibles. En el almacenamiento, existen diferentes formas de almacenar los datos previamente reunidos y procesados, que al momento de almacenarse reciben el nombre de patrón (template). La organización de la estructura de los datos debe ser flexible, permitiendo su reestructuración, en un caso necesario. De este modo es posible definir entre varias formas de almacenar para los diferentes sistemas biométricos, dependiendo de sus características se pueden almacenar de las siguientes formas: 1. Sistema protegido dentro del dispositivo biométrico. 2. Base de datos convencional. 3. Token portátil, por ejemplo, una tarjeta inteligente.
Página 25
Escuela Superior de Ingeniería Mecánica y Eléctrica
3.5. Módulo de Identificación Éste módulo, es el responsable del reconocimiento de los individuos, por ejemplo, en el Sistema de Control de Acceso Biométrico Dactilar. El proceso de identificación, empieza cuando el lector biométrico, captura la característica de la persona a ser identificada, la convierte en forma digital, para que el extractor de características produzca una representación compacta, con el mismo formato del patrón. La representación de la información ingresada en e ste módulo se denomina “query”, que es enviada al comparador de características que confronta a éste, para buscar la identidad de la persona con uno o varios patrones reconocidos. Los procesos realizados por el módulo de inscripción, reciben el nombre de fase de inscripción y los procesos realizados por el módulo de identificación, se denominan como la fase operacional.
3.6. Reconocimiento de Huella Dactilar El reconocimiento de huellas dactilares, es el método de identificación más utilizado y por ende, más estudiado, debido a la facilidad de adquirir, usar y tiene una gran aceptación, por parte de los usuarios.
Ilustración 3- 3 Huella Dactilar
Escuela Superior de Ingeniería Mecánica y Eléctrica
La huella dactilar, es una característica física única en cada ser humano y la ciencia encargada del estudio se llama Dactiloscopía (de los vocablos griegos “daktilos” , que significa dedos y “skopein” , que significa examen o estudio). La Dactiloscopía es usada como un método de identificación que se basa en el estudio y clasificación de las crestas presentes en la huella dactilares, éste estudio se inicia desde la antigua China, en la cual los emperadores realizaban operaciones comerciales o de cualquier índole marcando con la huella dactilar, los documentos más importantes; a partir de entonces, diversos investigadores realizaron estudios a dichos dibujos dejados por los dedos, desde Marcelo Malpigui en 1656, el cual al investigar acerca del sentido del tacto, descubre la diversidad de formas en dichos dibujos dejados por los dedos, hasta Vúcetich, el cual realiza estudios para establecer el Sistema que lleva su nombre, el cual es utilizado actualmente en diversos países para la clasificación dactilar de diferentes organismos gubernamentales como el ejército, en el ámbito civil y penal. Los sistemas que ocupan la dactiloscopia se basan en las siguientes características de las huellas dactilares: •
Inmutabilidad de los dibujos dactilares desde que aparecen en la vida intrauterina, los cuales perduran hasta ciertos procesos avanzados de putrefacción.
•
Inalterabilidad a lo largo de la vida, a excepción de heridas profundas que produzcan alguna lesión, sin embargo, las lesiones que dejan huellas o cicatrices, son también características de elementos de identificación.
•
Diversidad Infinita, las huellas dactilares son únicas e irrepetibles, cada ser humano posee huellas dactilares con características individuales. Hasta este momento, no se ha encontrado a un par de personas con la misma huella dactilar.
A simple vista, las personas pueden observar que la piel no es totalmente lisa o uniforme, sino que está cubierta de rugosidades, protuberancias y depresiones en la dermis. Las rugosidades son las siguientes: Página 27
Escuela Superior de Ingeniería Mecánica y Eléctrica
a. Papilas: Son pequeñas protuberancias que nacen la dermis y sobresalen en la epidermis, son variadas las formas que tienen, unas son cónicas, otras hemisféricas y otras piramidales. El número de papilas agrupadas por milímetro cuadrado, son aproximadamente 36 y su tamaño es de 55 a 225 milésimas de milímetros de altura. b. Crestas: Son los bordes que sobresalen de la piel, que están formados por una continuación de papilas, estos borden siguen las ondulaciones de los surcos en todas direcciones y forman infinidad de figuras de las yemas de los dedos, son más amplios en su base que en la cúspide, dan el aspecto de una montaña en miniatura. c. Surcos: Son los espacios hundidos, se encuentran entre las papilas. También son llamados surcos interpapilares, ya que al entintar los dedos, la tinta no cubre toda la yema y al hacer la impresión de la huella sobre una superficie plana, quedan espacios en blanco. d. Poros: Son los pequeños orificios, que se encuentran situados en las cúspides de las crestas o cerca de los vértices, su función es segregar el sudor. Éstos, tienen diferentes formas, como son: circulares, ovoidales, triangulares, etc. Los dibujos o formas que se forman en los dedos, reciben el nombre de dactilogramas (deriva de los vocablos griegos: “daktylos”, que significa dedos y “grammas” que significa
escrito). Si el dactilograma proviene de algún dedo de la mano, se denomina dactilograma papilar y si proviene de un dedo del pie o de la palma de la mano, se denominan dactilogramas plantares. Los dactilogramas se pueden dividir en tres tipos: •
Dactilograma natural: Formado por las crestas papilares de forma natural.
•
Dactilograma artificial: Formado por el resultado de entintar un dactilograma natural e imprimirlo en una zona.
Escuela Superior de Ingeniería Mecánica y Eléctrica
•
Dactilograma latente: Es la huella dejada por cualquier dactilograma natural al tocar un objeto o superficie. Este dactilograma es invisible al ojo humano, para su revelación se requiere aplicar un reactivo adecuado.
Un dactilograma se puede dividir en tres partes, conocidas como: Sistema Basilar, Sistema Marginal y Sistema Nuclear.
(5)
Sistema Basilar: Está constituido por las crestas que forman la base de la última falange, limitan por la parte inferior con el pliegue de flexión, tienen una dirección transversal o ligeramente oblicua y en algunos casos
toman una dirección
ascendente formando ligeros arcos u ondulaciones. La cresta altas de este sistema se llama “Limitante Basilar” y contribuye a formar los deltas por su rama inferior. (7)
Sistema Marginal: Como su nombre lo indica, se encuentra situado en el margen o contorno del dactilograma, lo forma las crestas que parten de los costados del dibujo, paralelamente a las crestas basilares, de las cuales se separan para elevarse marginalmente describiendo curvas de convexidad hacia arriba para descender luego por el lado opuesto al de la partida y unirse o aproximarse nuevamente a las basilares. La cresta más inferior o interna de este sistema, recibe el nombre de “Limitante Marginal” y contribuye a formar el delta por so lado externo. (7)
Sistema Nuclear: Está formado por el dibujo de crestas que aparecen en el centro o núcleo del dactilograma, encerradas por las limitantes basilar y marginal, formando dibujos muy diversos y variados. La cresta más externa de este sistema se llama “Limitante Nuclear”. (7)
Ilustración 3- 4 Ilustración 3-4 A. Sistema Marginal, B. Sistema Nuclear, C. Sistema Basilar
Página 29
Escuela Superior de Ingeniería Mecánica y Eléctrica
Todos los dactilogramas coinciden que las crestas no describen formas aleatorias, sino que constituyen sistemas definidos por su orientación y figura. Se pueden distinguir cuatro grupos de configuraciones dérmicas, según la Clasificación de Henry. Antes de conocer las cuatro características, se debe de estudiar dos singularidades presentes en las huellas dactilares, llamadas Núcleo (Core) y Delta, para así conocer las características generales de un dactilograma.
Delta: Es la figura triangular, formada por la aproximación o fusión de las limitantes de los sistemas de tres crestas. Se le llama Delta, por su semejanza con la letra griega Delta (Δ).. El punto déltico está situado en el vértice de la bifurcación
de la cresta.
Núcleo: Se da el nombre de núcleo a un punto punto fijo situado aproximadamente aproximadamente en el centro de una impresión dactilar. La localización de este punto central es de c apital importancia en los los dactilogramas dactilogramas clasificados como
presillas, ya que la la
subclasificación de éstos tiene como base la cuenta de crestas entre el delta y el núcleo.
Ilustración 3- 5 Ilustración 3-5 Puntos Singulares de la Huella Dactilar.
A continuación, se detallan las cuatro clases propias de la clasificación de Henry: 1. Arco: Éstos carecen de puntos delta y núcleos. Se caracterizan debido a que al inicio, las crestas son casi rectas y paulatinamente se van arqueando, para dar la forma como un medio círculo.
Escuela Superior de Ingeniería Mecánica y Eléctrica
Ilustración 3- 6 Arco
2. Presillas Internas: Se caracterizan porque las crestas que forman su núcleo nacen en el costado izquierdo del dibujo, y hacen su recorrido a la derecha, para luego dar vuelta sobre sí mismas y regresar al mismo punto de partida. Cuentan con un punto Delta, que como se puede observar en la Ilustración 3-7, se ubica del lado derecho del observador.
Ilustración 3- 7 Presilla Interna
3. Presillas Externas: Al igual que las presillas Internas, cuentan con un punto Delta, pero éste se ubica del lado izquierdo del observador. Las crestas papilares que forman el núcleo, nacen a la derecha y su recorrido es a la izquierda, para dar vuelta sobre sí mismas y regresar al mismo punto de partida.
Página 31
Escuela Superior de Ingeniería Mecánica y Eléctrica
Ilustración 3- 8 Presilla Externa
4. Verticilo: Se denomina verticilo, debido a que sus dibujos en muchos casos son similares a las flores; su característica más importante es que cuenta con dos puntos Delta, uno del lado derecho y otro del lado izquierdo, su núcleo puede adoptar formas circulares, elípticas y espirales. Se pueden encontrar verticilos con tres deltas, llamados también trideltos, aunque esto sucede con poca frecuencia.
Ilustración 3- 9 Verticilo
Escuela Superior de Ingeniería Mecánica y Eléctrica
3.7. Adquisici Adqui sición ón de Huell H uella a Dactil Da ctilar ar Existen dos métodos de adquisición de huellas dactilares: método off-line y el método online. El primer método obtiene la huella digitalizada con una resolución espacial de 500 PPP(Puntos por pulgada), y a 256 niveles de profundidad de gris, esto según recomendaciones del FBI, mediante el escaneo de una huella impresa en papel, obtenido a partir de la operación tradicional de calcado del dedo tintado sobre papel satinado. Esta metodología de funcionamiento requiere de un costo importante de tiempo, y es la que suele usarse en aplicaciones criminalistas. En cambio el segundo método, se realiza en tiempo real mediante el escaneo directo de la huella, a través del uso de escáneres tipo inkless. Esta metodología, es la que frecuentemente se utiliza en aplicaciones civiles. Tras la captura de la huella, se realizará una valoración cualitativa de la misma, el resultado de la cual será: a) Huella apta para ser procesada. b) Huella recuperable mediante técnicas de pre-procesado digital de imagen. c) Huella inutilizable debido a la baja calidad de la adquisición.
3.8. Procesamiento de la Huella Dactilar Los pasos para el procesamiento de la huella dactilar, por un sistema automatizado de identificación de impresiones dactilares, son: 1. Mejora de la Imagen: Este proceso consiste en eliminar las zonas confusas de la imagen original (ruido), dejando sólo zonas con información de máxima fiabilidad. 2. Binarización: El objetivo de esta etapa, es pasar la imagen original en tonos de gris a blanco y negro, reconstruyendo posibles cortes y mejorando la calidad global de la imagen. 3. Adelgazamiento: Con este proceso, todas las crestas de las líneas dactilares tienen el mismo grosor (1 píxel), haciendo que los puntos característicos de la huella dactilar, se puedan identificar con más facilidad. facil idad. Página 33
Escuela Superior de Ingeniería Mecánica y Eléctrica
4. Extracción de puntos característicos: A partir de la imagen adelgazada, el sistema es capaz de detectar y extraer la posición exacta de los puntos característicos. Dentro de esta etapa cabe destacar: a) Construcción de un índice o vector: Este es el proceso final, que mediante algoritmos matemáticos completa la creación de un índice matemático, el cual constituye la esencia de la huella dactilar analizada, según las características consideradas, almacenándolo en forma de fichero (este fichero ocupa aproximadamente 300 bytes). b) Identificación y Verificación: Una vez que se tienen el índice o vector de muchas huellas, el sistema es capaz de realizar búsquedas 1:1, para verificar la identidad de una persona ó 1: N para identificarla.
La extracción de puntos característicos, es por lo tanto, el proceso final que completa la obtención de la plantilla de la huella, o patrón biométrico dactilar. La cantidad mínima de puntos característicos necesarios, para proceder a comparaciones eficaces entre i mágenes dactilares, es de 15. La extracción de puntos característicos es un área en la que la investigación es continua, y al día de hoy, se puede llevar a cabo con diversas técnicas:
Extracción de puntos característicos desde la imagen de la huella. En esta técnica se apuesta por hacer un pre-procesado de la huella, antes de detectar las características de la misma. Una vez hecho esto, se buscan los patrones a identificar sobre la huella pre-procesada, en la cual la anchura de las crestas es de un píxel. El pre-procesamiento de la huella, hace que el sistema de extracción pueda trabajar con huellas con un amplio rango de calidades. Esta es la técnica más clásica y típica, dentro de la extracción de puntos característicos de huella dactilar.
Extracción de los puntos característicos mediante un banco de filtros de Gabor. Ésta es una técnica bastante novedosa, y utiliza una extracción de los puntos característicos de las huellas dactilares, basada en un banco de filtros de Gabor.
Escuela Superior de Ingeniería Mecánica y Eléctrica
Esta técnica, es usada para capturar la información útil en las bandas de los canales de la imagen, y descomponer la información en componentes ortogonales, en términos de frecuencias espaciales. La técnica presenta buenas características de precisión, pero en cuanto a la velocidad de extracción presenta resultados pobres, siempre peores que las técnicas de extracción más clásicas.
Extracción de los puntos característicos sobre la propia imagen de la huella en escala de grises. Esta técnica se caracteriza por realizar la extracción sobre la propia huella, y no sobre la imagen adelgazada o mejorada de la misma. Esto presenta muchos inconvenientes y hace que la extracción sea más lenta, inexacta y dependiente de la calidad de la huella. Además, trabajando directamente sobre la huella en escala de grises, se detectarán un gran número de puntos característicos falsos, y habrá otros muchos auténticos que no se detecten. Debido a estos inconvenientes, la técnica no es muy utilizada.
3.9. Estandarización de los Sistemas Biométricos La falta de estandarización de los sistemas biométricos a nivel industrial, ha obstaculizado el desarrollo de algunos tipos de sistemas biométricos y por ende, el crecimiento de este sector industrial. A pesar de esto, la industria biométrica tiene un papel muy importante y activo, para la solución de la falta de estándares, creando resultados que empiezan a ser considerablemente aceptables por la industria y marcando el camino hacia el futuro, como la definición de API (Interface de Programación de Aplicaciones hasta el formato de ficheros con la información del parámetro biométrico y su encriptación e interacción con los diferentes dispositivos biométricos.
3.9.1. Asociación Mexicana de Biometría e Identidad (AMBI) Esta asociación fue creada por el ingeniero mexicano Humberto López Gallegos, en el 2007, con el propósito de promover un mejor unos de prácticas, que pudieran favorecer a lograr una mayor eficiencia y seguridad, en el uso masivo de identificaciones biométricas y
Página 35
Escuela Superior de Ingeniería Mecánica y Eléctrica
soluciones de éstas, así como posicionar el desarrollo hecho en México, en otros países, como objetivo, Estados Unidos, Europa y Latinoamérica. Un aspecto importante que el presidente de la Asociación, consideró crucial, es el marco jurídico alrededor del uso de la tecnología biométrica, debido a que no existen regulaciones en México para el uso de datos biométricos de los ciudadanos, por lo que una de las principales iniciativas de esta asociación, es la de participar activamente en la generación de estándares y normas para la identificación de las personas con esta tecnología en México y en otros países, tratando de convertir a México en un modelo estandarizado a seguir mundialmente. La AMBI, cuenta con el apoyo de compañías como: Bioscrypt, LG Iris, SAGEM, Digital Persona, Crossmatch, L1, Quometrics, HID, Kimaldi, Ingressio y Nitgeny , que tiene una
misión en común, la consolidación de la industria de la tecnología biométrica.
Los servicios que ofrece la AMBI (9), están:
Análisis de desempeño de Identificación
Certificación de Aplicaciones
Capacitación especializada por medio de cursos
Asesorías especializadas para proyectos de identificación
Sin embargo, para poder obtener estos servicios, debes ser miembro activo de la asociación. Por el momento, la AMBI no ha desarrollado algún estándar para el uso de las tecnologías biométricas en el país ni en la creación o mejora de estándares internacionales, a pesar de contar con el apoyo de las compañías mencionadas anteriormente.
Escuela Superior de Ingeniería Mecánica y Eléctrica
3.9.2. Norma Oficial Mexicana Conforme a la Ley Federal sobre Metrología y Normalización, una Norma Oficial Mexicana, es la regulación técnica de observancia obligatoria expedida por las dependencias competentes, conforme a las finalidades establecidas en el artículo 40, que establece reglas, especificaciones, atributos, directrices, características o prescripciones aplicables a un producto, proceso, instalación, sistema, actividad, servicio o método de producción u operación, así como, aquellas relativas a terminología, simbología, embalaje, marcado o etiquetado y las que se refieran a su cumplimiento o aplicación. En materia de normalización, esta ley tiene como objetivos (10):
Fomentar la transparencia y eficiencia en la elaboración y observancia de normas oficiales mexicanas y normas mexicanas.
Instituir la Comisión Nacional de Normalización, para que coadyuve en las actividades que sobre normalización corresponde realizar, a las distintas dependencias de la administración pública federal.
Establecer un procedimiento uniforme para la elaboración de normas oficiales mexicanas, por las dependencias de la administración pública federal.
Promover la concurrencia de los sectores público, privado, científico y de consumidores en la elaboración y observancia de normas oficiales mexicanas y normas mexicanas.
Coordinar las actividades de normalización, certificación, verificación y laboratorios de prueba de las dependencias de administración pública federal.
Establecer el sistema nacional de acreditamiento de organismos de normalización y de certificación, unidades de verificación y de laboratorios de prueba y de calibración.
Página 37
Escuela Superior de Ingeniería Mecánica y Eléctrica
Las normas mexicanas son realizadas por los organismos nacionales de normalización y si ésta falta, será la Secretaria de Economía la que se responsabilice de su elaboración, en los términos dispuestos por los artículos 51-A y 51-B de la Ley Federal sobre Metrología y Normalización. Las normas mexicanas son de aplicación voluntaria, salvo en los casos que las empresas manifiesten que sus productos, procesos o servicios, son adecuados y requieran de una norma oficial para poder sacarlos a la venta o para fines determinados. Estas normas pueden ser aplicadas a nivel nacional, regional o local. Existen algunos distribuidores de tecnología biométrica en México, que aseguran cumplir con la Norma Oficial Mexicana, sin embargo, no existe una NOM que abarque las reglas, especificaciones y atributos que deben cumplir estas tecnologías por separado o en conjunto.
3.10.
C Sharp
C# (C Sharp) es un lenguaje de programación de propósito general orientado a objetos, creado por Microsoft para la plataforma .NET. La creación del nombre de éste lenguaje proviene de dibujar dos signos positivos encima de los dos signos positivos de C++, queriendo innovar y evolucionar al igual que ocurrió con el salto de C a C++ Su sintaxis básica deriva de C y C++, utilizando el modelo de objetos de la plataforma .NET el cual es similar al de Java aunque incluye mejoras derivadas de otros lenguajes. La principal ventaja es el entorno de trabajo debido a que facilita la interacción entre objetos y código, dejando que interactúen para crear diversas aplicaciones. Visual Studio es la plataforma visual en la cual C# trabaja en conjunto con Visual Basic, dando aún más ventajas debido a la compatibilidad con versiones anteriores .NET.
Escuela Superior de Ingeniería Mecánica y Eléctrica
Capítulo 4. Diseno del Sistema de Control de Asistencia 4.1. Introducción Como se planteó al inicio de este trabajo, el diseño del Control de Asistencias por Sistema Biométrico Dactilar se compone de los siguientes elementos esenciales:
Aplicación de reconocimiento de huellas dactilares creada en Visual Studio 2012.
Una base de datos creada en SQL Server 2012.
El diseño del control de asistencia fue realizado de forma paralela, debido a que cada parte del Control de Asistencia representa un análisis independiente, además de que al desarrollarlo así, la atención en cada una de las etapas es centralizada, aparte de proveer mayor precisión en cuanto al manejo de la aplicación. Al final de la programación de las etapas, se procede a la unión del sistema de reconocimiento dactilar y la base de datos, para que trabajen de manera conjunta. La unión de los elementos de software, es posible puesto que SQL Server 2012 y Visual Studio 2012, son entornos de programación diferentes pero compatibles, al momento de compartir información entre aplicaciones.
4.2. Diseño de interfaz para el reconocimiento de las huellas dactilares Para el desarrollo del Control de Asistencia por Sistema Biométrico Dactilar, se desarrolló una profunda búsqueda de elementos de desarrollo de software compatible con Visual Studio 2012, que facilitara el reconocimiento de las huellas dactilares en dicha aplicación.
Página 39
Escuela Superior de Ingeniería Mecánica y Eléctrica
Después de investigar y tomar en cuenta varias opciones de apoyo al desarrollo, como librerías propias de la aplicación que han sido generadas para el reconocimiento de huellas en C#, se sometieron a evaluaciones para saber si cumplían con las características mencionadas a continuación:
Licencia Libre
Compatibilidad con Visual Studio 2012
Costo bajo de uso
Al encontrar una alternativa, al momento de adquirir el hardware de reconocimiento de huellas dactilares Digital Persona U. are U. 4000, se evaluó el SDK de éste, para conocer si era apto para su aplicación en el proyecto, se dedujo que las librerías eran aptas para aplicarlas en la aplicación. Es así que para el análisis y reconocimiento de las huellas dactilares, se ocuparon las librerías (dll) del SDK, llamadas:
DPFPDevNET
DPFPEngNET
DPFPGuiNET
DPFPShrNET
DPFPVerNET
Las librerías mencionadas anteriormente, se ocuparon para el reconocimiento y compatibilidad del hardware con Visual Studio, para la obtención de los patrones de las huellas dactilares y su visualización. La modalidad de programación que se ocupó fue la orientada a plataforma Windows Form. La ventaja primordial de ésta, es que permite crear una aplicación con entorno
gráfico y amigable para el usuario, a través de herramientas de formulario de Visual Studio 2012.
Escuela Superior de Ingeniería Mecánica y Eléctrica
El hecho de querer hacer una aplicación amigable para el usuario, es debido a la intención de facilitar la interacción Usuario-Sistema, para evitar pasos confusos con comandos que provoquen errores en el sistema, por causa de falta de capacitación para manejar comandos o elementos de programación orientada a consola. Por medio de la programación orientada a plataforma, el usuario se encuentra con un ambiente basado en botones e imágenes, con los cuales ha estado familiarizado previamente, al manejar cualquier programa o sistema operativo de diferentes plataformas. En el diseño del Control de Asistencia por Sistema Biométrico Dactilar, basta con que el usuario final se familiarice con los botones, abren la aplicación que llevan el reconocimiento e ingreso de datos y la verificación de éstos. Algunas de las herramientas de diseño implementadas en la aplicación de Control de Asistencia, se emplearon elementos de Visual Studio 2012 que se muestran en la ilustración 4-1.
Ilustración 4- 1 Herramientas de Visual Studio 2012
Estos elementos se encuentran como herramientas de uso común, en el entorno de diseño de formularios en Visual Studio 2012, en la barra de herramientas. La herramienta Etiqueta (Label), permite colocar texto como una indicación para un botón, una caja de texto ( TextBox ) o simplemente un título. Botón (Button), sirve para generar un botón dentro del formulario, previamente
programado para que lleve a cabo una tarea determinada. Página 41
Escuela Superior de Ingeniería Mecánica y Eléctrica
Caja de Texto (TextBox) , permite que el usuario pueda comunicarse con el sistema,
insertando los datos necesarios para la inserción de ellos en la base de datos o para la autentificación de los usuarios. Temporizador (Timer), genera un contador en el formulario para controlar los procesos
que necesiten un reloj, ocupando el reloj interno de la computadora. Visor de tabla de datos (Datagridview) , permite visualizar las columnas y filas que se
generan dentro de la base de datos que se desee visualizar en el formulario. Caja de Imágenes (PictureBox) , es la herramienta base para la visualización, extracción y
sustracción de las huellas dactilares en la base de datos y dentro del formulario. Botón tipo Radio (RadioButton), es una herramienta con las mismas características que la
de Button pero ésta sólo tiene un selector circular. Un “Form” o formulario (ilustración 4-2) es una ventana, que se genera al momento de crear un nuevo proyecto, que no contiene ninguna herramienta. Sobre esta ventana, se pueden insertar todo tipo de herramienta que está marcada en la barra para el diseño de los proyectos. Fuera de éstos es imposible insertar alguna herramienta. Estos formularios ayudan a los usuarios familiarizados con las aplicaciones de Windows a crear nuevas aplicaciones y aceptar de manera más fácil los controles de éstos.
Ilustración 4- 2 Formulario de Visual Studio
Escuela Superior de Ingeniería Mecánica y Eléctrica
Para la programación del Sistema de Control de Asistencia Biométrico Dactilar, se ocuparon 4 formularios base, uno destinado para la autentificación de los usuarios con permiso general o permisos de personal, uno encargado para el Registro del Personal, el tercero para el Registro de Entrada y Salida del mismo y el último para la edición de datos de los trabajadores, también se ocuparon dos formularios auxiliares, uno para el ingreso de la huella dactilar y otro para la verificación de ésta. Esta división se realizó para tener una mayor seguridad en el sistema, debido a que si no hubiera seguridad para el registro del personal, cualquier persona podría registrarse o suplantar la identidad. A cada formulario se le proporcionó un nombré afín a la función de éste, el formulario principal, donde se encuentran los botones para ingresar a los otros formularios se llama “Sistema de Control de Asistencia Biométrico Dactilar” , el formulario donde se ingresan los datos del trabajador se llama “Ingresar Datos de Trabajador”, el de edición de datos se llama “Edición de Datos” y por último donde se checa la entr ada y salida se llama “Checador”, a los formularios de ingreso y verificación de la huella dactilar se les dieron el nombre de “Ingreso de Huella” y “Verificación de Huella” respectivamente.
Formulario Sistema de Control de Asistencia Biométrico Dactilar
En el formulario “Sistema de Control de Asistencia Biométrico Dactilar” (Ilustración 4-3) se insertaron 6 Label, 2 PictureBox, 2 TextBox, 5 Button, 2 RadioButton y un Timer. Los label fueron ocupados para el título del proyecto, para poner la fecha y hora y para titular los TextBox; los PictureBox se ocuparon para poner los escudos; el del Instituto Politécnico Nacional y el de la Escuela Superior de Ingeniería Mecánica y Eléctrica; los TextBox se ocuparon para ingresar el usuario y contraseña para poder ingresar con todas las propiedades del formulario e ingresar a tu cuenta para checar la hora de entrada y salida; los Radio Button se ocuparon para ingresar a las tablas de datos, siendo administrador o de personal; los cinco botones fueron ocupados para tener acceso a los formularios mencionados anteriormente y para guardar la huella dactilar.
Página 43
Escuela Superior de Ingeniería Mecánica y Eléctrica
Ilustración 4- 3 Formulario Sistema de Control de Asistencia B iométrico Dactilar
Los 2dos TextBox son, donde se debe de ingresar el usuario y contraseña para poder ingresar a todas las propiedades del Sistema o propiedades del Personal y para validar los datos se ocupa el botón Habilitar. Los Radio Button habilitan el “query” para buscar en las tablas de la base de datos, buscando en la tabla “Usuarios” o “UsuarioPersonal”
Con el botón Habilitar, se ingresa a la base de datos para buscar si en realidad los datos ingresados son reales, por lo que dentro de la programación del botón, se ubica el siguiente código: Usuario ob = new Usuario(); ob.USUARIO = textBox1.Text; ob.CONTRASEÑA = textBox2.Text; if (textBox1.Text == "" || textBox2.Text == "") { MessageBox.Show("Un campo o ambos estan vacíos, ingresa ambos datos", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else if (ob.Buscar() == true) { MessageBox.Show(ob.Mensaje, "Sesión Iniciada, Bienvenido");
Escuela Superior de Ingeniería Mecánica y Eléctrica
Registro.Enabled = true; Modificar.Enabled = true; } else { MessageBox.Show(ob.Mensaje, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); }
Donde el objeto creado de la clase Usuario se crea para poder buscar en la base de datos, el usuario y la contraseña. Después de que se habilitan las propiedades, podemos ingresar a los formularios para la edición y para el registro de los trabajadores, tomando en cuenta que ambos botones están deshabilitados previo a la habilitación. Las instrucciones básicas para poder ingresar a los formularios restantes son: Para el botón de Modificar Datos: EditarDatos edit = new EditarDatos(); edit.Show();
Para el botón de Ingresar Nuevo: IngresarDatosTrabajador abrir=new IngresarDatosTrabajador(); abrir.Show();
Para el botón de Checar: Checar abrir=new Checar(); abrir.Show();
Para el botón de Guardar Configuración de Registro: SaveFileDialog save = new SaveFileDialog(); save.InitialDirectory = @"C:\Users\Vicho\Desktop\Enrollment\bin\Debug"; save.Filter = "Fingerprint Template File (*.fpt)|*.fpt"; if (save.ShowDialog() == DialogResult.OK) {
Página 45
Escuela Superior de Ingeniería Mecánica y Eléctrica
using (FileStream fs = File.Open(save.FileName, FileMode.Create, FileAccess.Write)) { Template.Serialize(fs); } }
Resumiendo de forma sencilla el algoritmo del formulario principal, tenemos el siguiente diagrama de flujo (Ilustración 4-4) que presenta el funcionamiento.
INICIO
Seleccionas el RadioButton llamado Personal
Ingresar Usuario y Contraseña de Administrador
No Ingresaron los 2 datos?
Si Si
No Existe en la BD?
Activa botones Ingresar Datos, Modificar Datos y Guardar Configuración de Registro
No activa botones
Ilustración 4- 4 Diagrama de Flujo del Formulario Principal
Formulario Ingresar datos del Trabajador
El diseño del formulario “Ingresar datos del Trabajador” ( Ilustración 4-6) fue más
complejo, debido a que es la parte medular del Sistema, teniendo en cuenta que previo a visualizar este formulario, se muestra uno de los formularios secundarios para el ingreso de la huella dactilar (Ilustración 4-5).
Escuela Superior de Ingeniería Mecánica y Eléctrica
Ilustración 4- 5 Formulario Secundario Ingresar Huella
Dentro de éste se agregó al formulario un PictureBox para poder visualizar la huella dactilar para posteriormente, al ingresar tu huella mediante un TextBox visualizar en la pantalla que la obtención de la huella fue satisfactoria. Cabe mencionar que el Label que aparece en la parte inferior izquierda, indica el número de muestras necesarias para crear el Template de la huella dactilar para subsiguientemente, guardarla en la base de datos. Para el formulario de “Ingresar Datos del Trabajador” (Ilustración 4-5), se ocuparon 5
TextBox y 4 ListBox, 2 Labels, 1 Timer y 1 Button; los TextBox fueron ocupados para el ingreso de los datos de Clave del Trabajador, Matrícula del Trabajador, Nombre(s), Apellido Paterno y Apellido Materno; los ListBox fueron ocupados para ingresar los siguientes datos:
Tipo de Trabajador: Base, Interino o Con Licencia
Turno: Matutino, Vespertino o Ambos
Hora de Entrada: Según el Turno aparecen las horas de cada turno( Matutino: de 7:00. a 14:00 horas; Vespertino: de 14:00 a 22:00 horas; Ambos, aparece desde las 7 hasta las 22 horas)
Hora de Salida: Al igual que el campo Hora de Entrada muestra las mismas horas para los diferentes turnos.
Página 47
Escuela Superior de Ingeniería Mecánica y Eléctrica
Los Label, junto con el Timer, se ocuparon para general la fecha y hora actual.
Ilustración 4- 6 Formulario Ingresar Datos de Trabajador
Después de ingresar todos los datos en el formulario mencionado anteriormente y dar click en el Button, se genera el query para guardar los datos en la base de datos: string sql = "insert into Registros1 (Clave,Nombres,AP,AM,TB,HoraEntrada,HoraSalida,Turno) values ('" + this.Cl.Text + "','" + this.Nm.Text + "','" + this.AP1.Text + "','" + this.AM.Text + "','" + this.comboBox1.Text + "','" + this.comboBox3.Text + "','" + this.comboBox4.Text + "','" + this.comboBox2.Text + "')"; string sql1 = "insert into UsuarioPersonal (Usuarios, Contraseña) values ('" + this.Cl.Text + "','" + this.Mat.Text + "')"; if (registro.insertar(sql) && registro.insertar(sql1)) { MessageBox.Show("Registro Hecho"); MessageBox.Show("Anota el Usuario y Contraseña\nUsuario:" + Cl.Text + "\nContraseña:" + Mat.Text + ""); Close(); } else MessageBox.Show("Error al Registrar");
Escuela Superior de Ingeniería Mecánica y Eléctrica
Simplificando lo mencionado anteriormente el diagrama de flujo de la Ilustración 4-7 muestra el funcionamiento del formulario secundario “Ingresar Huella” y el diagrama de flujo de la Ilustración 4- 8 muestra el funcionamiento de “Ingresar Datos”. INICIO
Captura las 4 huellas dactilares
Genera Template
Abre Formulario Ingresar Datos
1
Ilustración 4- 7 Diagrama de Flujo de Ingresar Huella
INICIO
Ingresar todos los datos requeridos
No Ingresaste todos los datos?
Si Si
No Se hizo el Registro en la BD?
Se guarda el registro en la base de datos
No se guarda el registro en la base de datos
FIN
Ilustración 4- 8 Diagrama de Flujo de Ingresar Datos
Página 49
Escuela Superior de Ingeniería Mecánica y Eléctrica
Formulario Edición de Datos
En el formulario “Edición de Datos” (Ilustración 4-9) se ocuparon 3 GroupBox, 1 Datagridview, 6 Label, 6 TextBox y 2 Button.
Ilustración 4- 9 Formulario Editar Datos
Los GroupBox fueron ocupados para agrupar las diferentes opciones que tiene el formulario para la edición de datos; el Datagridview se ocupó para visualizar los registros hechos en la tabla “Registros1” de la base de datos; Los Textbox fueron ocupados para
ingresar los datos para editar o para eliminar el registro deseado; los Label fueron ocupados para señalar a los TextBox; Los Button, uno para editar y otro para eliminar, se les añadieron el siguiente código: Para editar: string campos = "Turno='" + this.Turno.Text + "', TB='" + this.TT.Text + "', HoraEntrada='" + this.HE.Text + "', HoraSalida='" + this.HS.Text + "'"; string campos1 = "Usuario='" + Clave.Text + "'"; if (regis.actualizar("Registros1", campos, "Clave ='" + Clave.Text + "'") && regis.actualizar("UsuarioPersonal", campos1, "Usuarios='" + Clave.Text + "'")) MessageBox.Show("Se actualizo exitosamente la Información y el Usuario"); else MessageBox.Show("Error al actualizar, intenta de nuevo"); dataGridView1.Refresh();
Escuela Superior de Ingeniería Mecánica y Eléctrica
Para eliminar: if(regis.eliminar("Registros1"," Clave='" + Clave1.Text + "'") && regis.eliminar("UsuarioPersonal", " Usuarios='" + Clave1.Text + "'") ) MessageBox.Show("Registro y Usuario Eliminado"); else MessageBox.Show("Error al eliminar"); dataGridView1.Refresh();
Para simplificar el código que se mostró anteriormente, se muestra el diagrama de flujo (Ilustración 4-10) del funcionamiento de éste formulario.
INICIO GroupBox Consulta General de Registros
GroupBox Editar Información de Trabajador
Visualizar Registros de la Tabla Registros1
GroupBox Eliminar Registro de Trabajador
Ingresar Clave del Trabajador
Ingresar Clave del Trabajador
No
Ingresar datos a editar
La clave esta registrada en la BD?
Si No Se edita el registro
Si
La clave esta registrada en la BD?
Se elimina el registro
Ilustración 4- 10 Diagrama de Flujo de Edición de Datos
Formulario Checador
El formulario “Checador” (Ilustración 4-11) se activa después de ingresar la huella de datos
para verificar si te encuentras registrado en el Sistema en el formulario “Verificar Huella” (Ilustración 4-12).
Página 51
Escuela Superior de Ingeniería Mecánica y Eléctrica
Ilustración 4- 11 Formulario Checador
Ilustración 4- 12 Formulario Verificar Huella
En “Checador”, se ocuparon 2 Label, 2 Datagridview, 2 Button y 1 TextBox, los Label se
ocuparon para intitular los Datagridview para diferenciar entre la tabla de “ChecarEntrada” de “ChecarSalida”; los Datagridview se usaron para mostrar los datos
que se encuentran en las tablas mencionadas anteriormente; los Button se ocuparon para guardar los registros de entrada y salida a sus correspondientes tablas. El query ocupado para ambas tablas es el siguiente: string sql = "insert into ChecarEntrada (Clave, Fecha, HoraEntrada) values ('"+ Cl.Text + "','" + label11.Text + "','" + label8.Text + "')"; if (regis.insertar(sql)) MessageBox.Show("Registro Hecho");
Escuela Superior de Ingeniería Mecánica y Eléctrica
else MessageBox.Show("Error al Registrar");
El único cambio en el query para checar la salida es el nombre de la tabla. El formulario “Verificar Huella”, al igual que el formulario “Ingresar Huella”, tienen los
mismos controles con las mismas funciones, con la excepción de que “Verificar Huella” verifica en la base de datos de las huellas si coincide con la huella ingresada. Lo mencionado anteriormente se resume con el diagrama de flujo de la Ilustración 4-13.
INICIO
Seleccionas el RadioButton llamado Personal del Formulario Principal
Ingresas Usuario y Contraseña de Personal en el Formulario Principal
Si
Abre archivo de la huella del usuario en uso
No Existe en la BD?
No Existe en la BD?
Se genera un reporte de falsa indentidad
Si
Abre Formulario Ingresar Datos
Fin
Checa Entrada y Salida
Fin
Ilustración 4- 13 Diagrama de Flujo de Checar
Página 53
Escuela Superior de Ingeniería Mecánica y Eléctrica
4.3. Diseño de la Base de Datos Para el diseño de la base de datos, se optó trabajar con SQL Server 2012 (Ilustración 4-14) debido a que es un software generador de bases de datos que se acopla adecuadamente con interfaces y aplicaciones generadas en Visual Studio, además de que es fácil de adaptar a distintas plataformas y es de uso comercial.
Ilustración 4- 14 SQL Server 2012
La ventaja más significativa de SQL Server, es la utilidad LINQ (Language Integrated Query) la cual agrega consultas nativas semejantes a las de SQL a los lenguajes de la plataforma .NET, creando código que facilita el uso de herramientas como el DataGridView, ListBox, etc. Para determinar cuáles serían las tablas de datos necesarias para almacenar la información de la plantilla del personal, se realizó un pequeño estudio para conocer los datos necesarios para mantener un adecuado control de asistencia, así como los datos básicos del personal. Después del estudio generado en el checador del edificio 1 de ESIME Zacatenco, se decidió generar tres tablas que contienen los datos esenciales para mantener estable y funcional el sistema, las tablas son:
Tabla de Registros1: En esta tabla se almacenará la información básica del personal.
Tabla ChecarEntrada: En esta tabla se almacenará la fecha y la hora de entrada del personal.
Tabla para ChecarSalida: En esta tabla se almacenará la fecha y la hora de salida del personal.
Escuela Superior de Ingeniería Mecánica y Eléctrica
Tabla Seguridad: En ésta, se crean los usuarios y contraseñas de los administradores.
Tabla UsuarioPersonal: En ésta se generan los usuarios y contraseñas del personal para poder checar su salida y entrada con la huella dactilar.
En la Ilustración 4-15 se muestra el diagrama entidad relación de las tablas que conforman la base de datos del Sistema de Control de Asistencia Biométrico Dactilar.
Ilustración 4- 15 Diagrama de Tablas de la base de datos generada
Página 55
Escuela Superior de Ingeniería Mecánica y Eléctrica
Capítulo 5. Pruebas Para llevar a cabo la valoración adecuada sobre el funcionamiento del Sistema de Control de Asistencia Biométrico Dactilar, se llevaron a cabo pruebas con alumnos del grupo 9CM11 del año 2012, creando 11 templates de huellas dactilares. Para llevar a cabo las pruebas necesarias, se crearon los templates de las huellas dactilares de 11 alumnos del salón 9CM11 del año 2012, guardándose en una carpeta con seguridad de administrador para tener una seguridad contra la suplantación de identidad en la base de datos. Para determinar los posibles escenarios de prueba, se consideraron los siguientes casos:
Cuando el administrador ingresa su usuario y contraseña.
Cuando se hace un nuevo registro.
Cuando se modifica y elimina un registro.
Cuando un trabajador ingresa su usuario y contraseña.
Cuando se intenta suplantar la identidad.
Cuando se verifica la huella.
Cuando se checa.
Escuela Superior de Ingeniería Mecánica y Eléctrica
5.1. Pruebas del Algoritmo Para mostrar el funcionamiento del algoritmo de Control de Asistencia Biométrico Dactilar, se dividió el conjunto de pruebas realizadas en los siete casos que se describieron al inicio de este capítulo.
1.
Caso 1: Cuando el administrador ingresa su usuario y contraseña.
Para poder acceder a las opciones de ingresar nuevo, modificar datos y guardar configuración de registro, es necesario seleccionar la opción Administrador para después, ingresar el usuario y contraseña del administrador (Ilustración 5-1).
Ilustración 5- 1 Ingresando Usuario y Contraseña de Administrador
1.
Caso 2: Cuando se hace un nuevo registro
Después de acceder a las opciones de Administrador, damos clic en el botón “Ingresar Nuevo”, aparecerá el formulario para ingresar la huella dactilar 4 veces
(Ilustración 5-2 e Ilustración 5-3).
Página 57
Escuela Superior de Ingeniería Mecánica y Eléctrica
Ilustración 5- 2 Ingreso de la primera muestra de la huella
Ilustración 5- 3 Creación del template de la huella
2.
Después de ingresar la huella, se abre el formulario para el registro de los datos del trabajador y genera un aviso de que se ha hecho el registro exitoso (Ilustración 5-4 e Ilustración 5-5).
Ilustración 5- 4 Llenado del formulario para el registro
Escuela Superior de Ingeniería Mecánica y Eléctrica
Ilustración 5- 5 Registro exitoso de trabajador
3.
Después de dar aceptar al mensaje de “Registro Hecho” se genera otro mensaje
donde nos indica que se ha creado el usuario y contraseña del trabajador (Ilustración 5-6), el cual le servirá para checar su entrada y salida.
Ilustración 5- 6 Mensaje de Usuario y Contraseña del trabajador
1.
Caso 3: Cuando se modifica y elimina un registro.
Ya que podemos ingresar a las opciones de Administrador, damos clic en el botón “Modificar”, aparecerá el formulario para la edición y eliminación de registros
(Ilustración 5-7), donde primero, se editara el registro que se creó en los casos anteriores.
Página 59
Escuela Superior de Ingeniería Mecánica y Eléctrica
Ilustración 5- 7 Edición de Registro de Trabajador
2.
Ahora procederemos a eliminar el registro (Ilustración 5-8).
Ilustración 5- 8 Eliminación de Registro y Usuario
Escuela Superior de Ingeniería Mecánica y Eléctrica
1.
Caso 4: Cuando un trabajador ingresa su usuario y contraseña.
Primero seleccionamos la opción para poder ingresar a las características para el personal, después ingresamos el usuario y contraseña que se creó al momento de ingresar los datos del trabajador (Ilustración 5-9).
Ilustración 5- 9 Ingresar a las características de Personal
1.
Caso 5: Cuando se intenta suplantar la identidad.
Se ingresa el usuario y contraseña como se hizo en la Ilustración 5-9 para poder verificar la huella dactilar y así poder checar (Ilustración 5-10).
Ilustración 5- 10 Ingreso a la base de datos de las huellas dactilares
Página 61
Escuela Superior de Ingeniería Mecánica y Eléctrica
2.
Después aparecerá el formulario para verificar la huella y se abrirá el formulario para checar si es que la huella coincide con la que está en la base de datos, si no es la huella, se crea un aviso de intento de suplantación de identidad (Ilustración 5-11).
Ilustración 5- 11 Intento de suplantación de identidad
1.
Caso 7: Cuando se verifica la huella.
Al igual que en el caso 6, se ingresa el usuario y contraseña (véase Ilustración 5-10) para después dar clic en checar y verificar la huella (Ilustración 5-12).
Ilustración 5- 12 Verificación de huella aceptada
Escuela Superior de Ingeniería Mecánica y Eléctrica
1.
Caso 8: Cuando se checa.
Después de verificar la huella (véase Ilustración 5-12), se abre el formulario para checar para después, dar clic en Checar Entrada o Salid, según sea el caso (Ilustración 5-13).
Ilustración 5- 13 Registro hecho de Entrada o Salida
Página 63
Escuela Superior de Ingeniería Mecánica y Eléctrica
Í. Características del Sensor El sensor utilizado en la aplicación de Sistema de Control de Asistencia Biométrico Dactilar, es el modelo U.are.U 4000b (Ilustración II.1) de la marca Digital Persona.
Ilustración I- 1 Sensor Digital Persona U.are.U 4000b
La decisión fue tomada debido a sus características generales como:
Tamaño compacto (79 mm X 49 mm X 19 mm) Excelente calidad Encriptación de huella dactilar para su uso en base de datos Reconoce las huellas de dedos con humedad, secas o con superficie áspera Compatibilidad con Windows 98/2000/ME/XP/7 y Windows Server 2000/2003
Y sus especificaciones técnicas:
Resolución de pixel: 512 PPP Área de Captura: 14.6 mm (ancho) y 18.1 mm (largo) Trabaja con imágenes en escala de grises (8 bits) Compatible con USB 1.0, 1.1 y 2.0 Voltaje: 5V Corriente (Modo Activo): 190 mA. Corriente (Modo Ocioso): 140 mA. Corriente (Modo de Suspensión): 1.5 mA.
Escuela Superior de Ingeniería Mecánica y Eléctrica
ÍÍ. Analisis de Costos Para la adecuada realización del Sistema de Control de Asistencia Biométrico Dactilar, se requiere una inversión de capital mínima, si comparamos el costo total del proyecto, con el precio de un Sistema Biométrico Dactilar comercial, puesto que el precio de este tipo de sistemas oscila entre los $15 000 a $ 30 000 por cada hardware y software instalado. Para desarrollar el sistema, no fue necesario invertir en paquetería de software, ya que se puede obtener la paquetería de Visual Studio y Sql Server 2012 gratuitamente desde la página de Microsoft. El equipo básico para desarrollar el sistema son dos, una computadora que trabajará como cliente y el sensor óptico para el reconocimiento de huellas dactilares. Equipo
Costo
Computadora de escritorio marca Acer
$3 400
modelo Aspire Revo R1600 Sensor Óptico Digital Persona U.areU.
$700
4000b Tabla II- 1 Costo de equipo para el Sistema
Teniendo en cuenta todos los gastos necesarios para instalar y que el Sistema de Control de Asistencia Biométrico Dactilar trabaje adecuadamente, se tienen los siguientes resultados: Elementos Requeridos
Costo
Computadora de escritorio marca Acer
$3 400
modelo Aspire Revo R1600 Sensor Óptico Digital Persona U.areU.
$700
4000b Total
$4100 Página 65
Escuela Superior de Ingeniería Mecánica y Eléctrica
Tabla II- 2 Costo total de implementación del Sistema
Los costos anteriores son para implementar este sistema en un solo lugar, si se requiere implementar en más lugares sólo se debe de duplicar el costo total de la tabla II.2. Para determinar el pago de honorarios a los desarrolladores de software, se tomó como base el salario mensual establecido para “Programadores de Software” en el portal de
Empleo del gobierno de la República Mexicana (8): Puesto
Salario Mensual (m/n)
Desarrollador de Software
$ 7 500 Tabla II- 3 Salario Mensual promedio en México
El tiempo del desarrollo del Sistema de Control de Asistencia Biométrico Dactilar, es de dos meses, garantizando su integridad y buen funcionamiento, por lo que el costo total para el desarrollo del software se muestra en la tabla II.4. Puesto
Costo por el desarrollo del Sistema
Desarrollador de Software y base de datos
$ 7 500
Desarrollador de Software y base de datos
$ 7 500
Total
$ 15 000 Tabla II- 4 Costo total de desarrollo del software
Haciendo la suma de los elementos necesarios, para la programación y funcionamiento del sistema, así como el pago a los diseñadores es el que se muestra en la tabla II.5. Puesto
Costo por el desarrollo del Sistema
Pago a programadores
$ 15 000
Material Requerido
$ 4 100
Total
$ 19 100
Tabla II- 5 Costo total del Sistema de Control de Asistencia Biométrico Dactilar
Escuela Superior de Ingeniería Mecánica y Eléctrica
ÍÍÍ. Codigo de la Aplicacion La programación se hizo en Visual Studio 2012 con el SDK de Digital Persona, ocupando 5 de sus librerías. Para hacer la programación más óptima se crearon 3 clases para ayudar al sistema a comunicarse con SQL Server 2012 //////////////////////////////////////////Clase BD//////////////////////////////////////////// using using using using using
System; System.Collections.Generic; System.Linq; System.Text; System.Data.SqlClient;
namespace Sistema_de_Control_de_Asistencia { class BD { public string cadenaconexion; protected string sql; protected int resultado; protected SqlConnection cnn; protected SqlCommand comandosql; protected string mensaje; public BD() { cadenaconexion = (@"Data Source=VICHO-PC\CASB;Initial Catalog=Control de Acceso por Sistema Biométrico Dactilar; integrated security=true"); cnn = new SqlConnection(this.cadenaconexion); } public string Mensaje { get { return this.mensaje; } } } }
///////////////////////////////////////Clase Registro///////////////////////////////////////// using System; using System.Collections.Generic; using System.Linq;
Página 67
Escuela Superior de Ingeniería Mecánica y Eléctrica
using using using using
System.Text; System.Threading.Tasks; System.Data; System.Data.SqlClient;
namespace Sistema_de_Control_de_Asistencia { class Registro { private string cadena = @"Data Source=VICHO-PC\CASB;Initial Catalog=Control de Acceso por Sistema Biométrico Dactilar; integrated security=true"; public SqlConnection cnn; private SqlCommandBuilder cmb; public DataSet ds = new DataSet(); public SqlDataAdapter da; public SqlCommand comando; private void conectar() { cnn = new SqlConnection(cadena); } public Registro() { conectar(); } //CONSULTAR public void consultar(string sql, string tabla) { ds.Tables.Clear(); da = new SqlDataAdapter(sql, cnn); cmb = new SqlCommandBuilder(da); da.Fill(ds, tabla); } //ELIMINAR public bool eliminar(string tabla, string condicion) { cnn.Open(); string sql = "delete from" + tabla + "where" + condicion; comando = new SqlCommand(sql, cnn); int i = comando.ExecuteNonQuery(); cnn.Close(); if (i > 0) return true; else return false; } //ACTUALIZAR public bool actualizar(string tabla, string campos, string condicion) { cnn.Open(); string sql = " UPDATE " + tabla + " SET " + " WHERE " + condicion; comando = new SqlCommand(sql, cnn); int i = comando.ExecuteNonQuery(); cnn.Close(); if (i > 0)
Escuela Superior de Ingeniería Mecánica y Eléctrica
return true; else return false; } //CONSULTAR2 public DataTable consultar2(string tabla) { string sql = "select * from" + tabla; da = new SqlDataAdapter(sql, cnn); DataSet dts = new DataSet(); da.Fill(dts, tabla); DataTable dt = new DataTable(); dt = dts.Tables[tabla]; return dt; } //INSERTAR public bool insertar(string sql) { cnn.Open(); comando = new SqlCommand(sql, cnn); int i = comando.ExecuteNonQuery(); cnn.Close(); if (i > 0) return true; else return false; } } }
///////////////////////////////////////Clase Usuario////////////////////////////////////////// using using using using using
System; System.Collections.Generic; System.Linq; System.Text; System.Data.SqlClient;
namespace Sistema_de_Control_de_Asistencia { class Usuario : BD { private string usuario; private string contraseña; public Usuario() { usuario = string.Empty; contraseña = string.Empty; this.sql = string.Empty; } public string USUARIO { get { return usuario; } set { usuario = value; } }
Página 69
Escuela Superior de Ingeniería Mecánica y Eléctrica
public string CONTRASEÑA { get { return contraseña; } set { contraseña = value; } } public bool Buscar() { bool Resultado = false; cnn.Open(); this.sql = string.Format(@"SELECT Usuario FROM Seguridad WHERE Usuario='{0}' AND Contraseña='{1}'", this.USUARIO, this.CONTRASEÑA); this.comandosql = new SqlCommand(sql, cnn); SqlDataReader Reg = null; Reg = this.comandosql.ExecuteReader(); if (Reg.Read()) { Resultado = true; this.mensaje = "Bienvenido " + USUARIO; } else { this.mensaje = "El usuario o contraseña no son válidos"; } this.cnn.Close(); return Resultado; } } }
////////////////////////////////////////Formulario Principal////////////////////////////////// using using using using using using using using
System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Text; System.Windows.Forms; System.IO;
namespace Enrollment { delegate void Function(); public partial class MainForm : Form { public MainForm() { InitializeComponent();
Escuela Superior de Ingeniería Mecánica y Eléctrica
if (Administrador.Checked) VerifyButton.Enabled = false; else VerifyButton.Enabled = true; } private void EnrollButton_Click(object sender, EventArgs e) { EnrollmentForm Enroller = new EnrollmentForm(); Enroller.OnTemplate += this.OnTemplate; Enroller.ShowDialog(); Ingresar_Datos ingresa = new Ingresar_Datos(); ingresa.ShowDialog(); } private void VerifyButton_Click(object sender, EventArgs e) { VerificationForm Verifier = new VerificationForm(); Verifier.Verify(Template, textBox1.Text); } private void OnTemplate(DPFP.Template template) { this.Invoke(new Function(delegate() { Template = template; VerifyButton.Enabled = (Template != null); if (Template != null) { MessageBox.Show("La huella esta lista .", "Base de Datos de Huellas"); } else MessageBox.Show("La huella no esta lista .Repite el paso anterior", "Base de Datos de Huellas"); })); } private DPFP.Template Template; private void MainForm_Load(object sender, EventArgs e) { } private void timer1_Tick(object sender, EventArgs e) { label1.Text = DateTime.Now.ToString("dd-MM-yyyy"); label4.Text = DateTime.Now.ToString("hh:mm:ss"); } private void button1_Click(object sender, EventArgs e) {
Página 71
Escuela Superior de Ingeniería Mecánica y Eléctrica
Usuario ob = new Usuario(); ob.USUARIO = textBox1.Text; ob.CONTRASEÑA = textBox2.Text; if (Administrador.Checked) { if (textBox1.Text == "" || textBox2.Text == "") { MessageBox.Show("Un campo o ambos estan vacíos, ingresa ambos datos", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); textBox1.Text = ""; textBox2.Text = ""; } else if (ob.Buscar() == true) { MessageBox.Show(ob.Mensaje, "Sesión Iniciada, Bienvenido"); EnrollButton.Enabled = true; Modificar.Enabled = true; GuardarHuella.Enabled = true; textBox1.Text = ""; textBox2.Text = ""; } else { MessageBox.Show(ob.Mensaje, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); textBox1.Text = ""; textBox2.Text = ""; } } if (Personal.Checked) { EnrollButton.Enabled = false; Modificar.Enabled = false; GuardarHuella.Enabled = false; if (textBox1.Text == "" || textBox2.Text == "") { MessageBox.Show("Un campo o ambos estan vacíos, ingresa ambos datos", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else if (ob.BuscarPersonal() == true) { MessageBox.Show(ob.Mensaje, "Sesión Iniciada, Bienvenido"); EnrollButton.Enabled = false; Modificar.Enabled = false; textBox2.Text = ""; OpenFileDialog open = new OpenFileDialog(); open.FileName = textBox1.Text+".fpt"; FileStream fs = File.OpenRead(open.FileName); DPFP.Template template = new DPFP.Template(fs); OnTemplate(template);
Escuela Superior de Ingeniería Mecánica y Eléctrica
} else { textBox2.Text = ""; MessageBox.Show(ob.Mensaje, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void VerifyButton2_Click(object sender, EventArgs e) { } private void Modificar_Click(object sender, EventArgs e) { EditarDatos edit = new EditarDatos(); edit.Show(); } private void label1_Click(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { SaveFileDialog save = new SaveFileDialog(); save.InitialDirectory = @"C:\Users\Vicho\Desktop\Enrollment\bin\Debug"; save.Filter = "Fingerprint Template File (*.fpt)|*.fpt"; if (save.ShowDialog() == DialogResult.OK) { using (FileStream fs = File.Open(save.FileName, FileMode.Create, FileAccess.Write)) { Template.Serialize(fs); } } } public Stream fs { get; set; } private void Administrador_CheckedChanged(object sender, EventArgs e) { } private void textBox1_TextChanged(object sender, EventArgs e) { } } }
Página 73
Escuela Superior de Ingeniería Mecánica y Eléctrica
///////////////////////////////CAPTURAR HUELLA DACTILAR///////////////////////////// using using using using using using using
System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Text; System.Windows.Forms;
namespace Enrollment { public partial class clave : Form, DPFP.Capture.EventHandler { public clave() { InitializeComponent(); } Registro registro = new Registro(); protected virtual void Init() { try { Capturer = new DPFP.Capture.Capture(); if ( null != Capturer ) Capturer.EventHandler = this; else SetPrompt("No se puede iniciar la captura!"); } catch { MessageBox.Show("No se puede iniciar la captura!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } protected virtual void Process(DPFP.Sample Sample) { DrawPicture(ConvertSampleToBitmap(Sample)); } protected void Start() { if (null != Capturer) { try { Capturer.StartCapture(); SetPrompt("Pon tu dedo en el dispositivo para ingresar tu huella."); } catch {
Escuela Superior de Ingeniería Mecánica y Eléctrica
SetPrompt("No se puede iniciar la captura!"); } } } protected void Stop() { if (null != Capturer) { try { Capturer.StopCapture(); } catch { SetPrompt("No se pudo terminar la captura!"); } } } private void CaptureForm_Load(object sender, EventArgs e) { BD ob = new BD(); Init(); Start(); } private void CaptureForm_FormClosed(object sender, FormClosedEventArgs e) { Stop(); }
public void OnComplete(object Capture, string ReaderSerialNumber, DPFP.Sample Sample) { MessageBox.Show("Retira el dedo."); SetPrompt("Pon tu dedo otra vez."); Process(Sample); } public void OnFingerGone(object Capture, string ReaderSerialNumber) { //MakeReport("Se ha quitado el dedo del scanner"); } public void OnFingerTouch(object Capture, string ReaderSerialNumber) { //MakeReport("El dispositivo esta listo para leer"); } public void OnReaderConnect(object Capture, string ReaderSerialNumber) { //MakeReport("El dispositivo esta conectado");
Página 75
Escuela Superior de Ingeniería Mecánica y Eléctrica
} public void OnReaderDisconnect(object Capture, string ReaderSerialNumber) { //MakeReport("El dispositivo esta desconectado"); } public void OnSampleQuality(object Capture, string ReaderSerialNumber, DPFP.Capture.CaptureFeedback CaptureFeedback) { if (CaptureFeedback == DPFP.Capture.CaptureFeedback.Good) MakeReport("La calidad de la muestra es buena."); else MakeReport("La calidad de la muestra es pobre."); } protected Bitmap ConvertSampleToBitmap(DPFP.Sample Sample) { DPFP.Capture.SampleConversion Convertor = new DPFP.Capture.SampleConversion(); Bitmap bitmap = null; Convertor.ConvertToPicture(Sample, ref bitmap); return bitmap; } protected DPFP.FeatureSet ExtractFeatures(DPFP.Sample Sample, DPFP.Processing.DataPurpose Purpose) { DPFP.Processing.FeatureExtraction Extractor = new DPFP.Processing.FeatureExtraction(); DPFP.Capture.CaptureFeedback feedback = DPFP.Capture.CaptureFeedback.None; DPFP.FeatureSet features = new DPFP.FeatureSet(); Extractor.CreateFeatureSet(Sample, Purpose, ref feedback, ref features); if (feedback == DPFP.Capture.CaptureFeedback.Good) return features; else return null; } protected void SetStatus(string status) { this.Invoke(new Function(delegate() { StatusLine.Text = status; })); } protected void SetPrompt(string prompt) { this.Invoke(new Function(delegate() { Prompt.Text = prompt; })); }
Escuela Superior de Ingeniería Mecánica y Eléctrica
protected void MakeReport(string message) { this.Invoke(new Function(delegate() { StatusText.AppendText(message + "\r\n"); })); } private void DrawPicture(Bitmap bitmap) { this.Invoke(new Function(delegate() { Picture.Image = new Bitmap(bitmap, Picture.Size); })); } private DPFP.Capture.Capture Capturer; private void EditarDatos_Click(object sender, EventArgs e) { EditarDatos mostrar = new EditarDatos(); mostrar.Show(); } } } /////////////////////////////////INGRESAR using using using using using using using using using
REGISTROS/////////////////////////////////
System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; System.IO;
namespace Enrollment { public partial class Ingresar_Datos : Form { public Ingresar_Datos() { InitializeComponent(); comboBox1.Items.Add("Base"); comboBox1.Items.Add("Temporal"); comboBox1.Items.Add("Con Licencia"); comboBox2.Items.Add("Matutino"); comboBox2.Items.Add("Vespertino"); comboBox2.Items.Add("Ambos"); } Registro registro = new Registro();
Página 77
Escuela Superior de Ingeniería Mecánica y Eléctrica
private void timer1_Tick(object sender, EventArgs e) { label7.Text = DateTime.Now.ToString("dd-MM-yyyy"); label8.Text = DateTime.Now.ToString("hh:mm:ss"); }
private void button1_Click(object sender, EventArgs e) { string sql = "insert into Registros1 (Clave,Nombres,AP,AM,TB,HoraEntrada,HoraSalida,Turno) values ('" + this.Cl.Text + "','" + this.Nm.Text + "','" + this.AP1.Text + "','" + this.AM.Text + "','" + this.comboBox1.Text + "','" + this.comboBox3.Text + "','" + this.comboBox4.Text + "','" + this.comboBox2.Text + "')"; string sql1 = "insert into UsuarioPersonal (Usuarios, Contraseña) values ('" + this.Cl.Text + "','" + this.Mat.Text + "')"; if (registro.insertar(sql) && registro.insertar(sql1)) { MessageBox.Show("Registro Hecho"); MessageBox.Show("Anota el Usuario y Contraseña\nUsuario:" + Cl.Text + "\nContraseña:" + Mat.Text + ""); Close(); } else MessageBox.Show("Error al Registrar"); } private void Ingresar_Datos_Load(object sender, EventArgs e) { } private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox2.SelectedIndex == 0) { comboBox3.Items.Clear(); comboBox4.Items.Clear(); comboBox3.Items.Add("7:00"); comboBox3.Items.Add("8:00"); comboBox3.Items.Add("9:00"); comboBox3.Items.Add("10:00"); comboBox3.Items.Add("11:00"); comboBox3.Items.Add("12:00"); comboBox3.Items.Add("13:00"); comboBox3.Items.Add("14:00"); comboBox4.Items.Add("7:00"); comboBox4.Items.Add("8:00"); comboBox4.Items.Add("9:00"); comboBox4.Items.Add("10:00"); comboBox4.Items.Add("11:00"); comboBox4.Items.Add("12:00"); comboBox4.Items.Add("13:00"); comboBox4.Items.Add("14:00");
Escuela Superior de Ingeniería Mecánica y Eléctrica
} if (comboBox2.SelectedIndex == 1) { comboBox3.Items.Clear(); comboBox4.Items.Clear(); comboBox3.Items.Add("14:00"); comboBox3.Items.Add("15:00"); comboBox3.Items.Add("16:00"); comboBox3.Items.Add("17:00"); comboBox3.Items.Add("18:00"); comboBox3.Items.Add("19:00"); comboBox3.Items.Add("20:00"); comboBox3.Items.Add("21:00"); comboBox3.Items.Add("22.00"); comboBox4.Items.Add("14:00"); comboBox4.Items.Add("15:00"); comboBox4.Items.Add("16:00"); comboBox4.Items.Add("17:00"); comboBox4.Items.Add("18:00"); comboBox4.Items.Add("19:00"); comboBox4.Items.Add("20:00"); comboBox4.Items.Add("21:00"); comboBox4.Items.Add("22.00"); } if (comboBox2.SelectedIndex == 2) { comboBox3.Items.Clear(); comboBox4.Items.Clear(); comboBox3.Items.Add("7:00"); comboBox3.Items.Add("8:00"); comboBox3.Items.Add("9:00"); comboBox3.Items.Add("10:00"); comboBox3.Items.Add("11:00"); comboBox3.Items.Add("12:00"); comboBox3.Items.Add("13:00"); comboBox3.Items.Add("14:00"); comboBox3.Items.Add("15:00"); comboBox3.Items.Add("16:00"); comboBox3.Items.Add("17:00"); comboBox3.Items.Add("18:00"); comboBox3.Items.Add("19:00"); comboBox3.Items.Add("20:00"); comboBox3.Items.Add("21:00"); comboBox3.Items.Add("22.00"); comboBox4.Items.Add("7:00"); comboBox4.Items.Add("8:00"); comboBox4.Items.Add("9:00"); comboBox4.Items.Add("10:00"); comboBox4.Items.Add("11:00"); comboBox4.Items.Add("12:00"); comboBox4.Items.Add("13:00"); comboBox4.Items.Add("14:00"); comboBox4.Items.Add("15:00"); comboBox4.Items.Add("16:00");
Página 79
Escuela Superior de Ingeniería Mecánica y Eléctrica
comboBox4.Items.Add("17:00"); comboBox4.Items.Add("18:00"); comboBox4.Items.Add("19:00"); comboBox4.Items.Add("20:00"); comboBox4.Items.Add("21:00"); comboBox4.Items.Add("22.00"); } } } } //////////////////////////////GUARDAR HUELLA DACTILAR/////////////////////////////// SaveFileDialog save = new SaveFileDialog(); save.InitialDirectory = @"C:\Users\Vicho\Desktop\Enrollment\bin\Debug"; save.Filter = "Fingerprint Template File (*.fpt)|*.fpt"; if (save.ShowDialog() == DialogResult.OK) { using (FileStream fs = File.Open(save.FileName, FileMode.Create, FileAccess.Write)) { Template.Serialize(fs); } } //////////////////////////////////EDITAR using using using using using using using using using
REGISTROS//////////////////////////////////
System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; System.Data.SqlClient;
namespace Enrollment { public partial class EditarDatos : Form { public EditarDatos() { InitializeComponent(); } Registro regis = new Registro(); private void groupBox2_Enter(object sender, EventArgs e) { } private void EditarDatos_Load(object sender, EventArgs e) { regis.consultar("select Clave,Nombres,AP,AM,TB,Turno,HoraEntrada,HoraSalida from Registros1", "Registros1"); this.dataGridView1.DataSource = regis.ds.Tables["Registros1"]; dataGridView1.Refresh();
Escuela Superior de Ingeniería Mecánica y Eléctrica
} private void Eliminar_Click(object sender, EventArgs e) { if(regis.eliminar("Registros1"," Clave='" + Clave1.Text + "'") && regis.eliminar("UsuarioPersonal", " Usuarios='" + Clave1.Text + "'") ) MessageBox.Show("Registro y Usuario Eliminado"); else MessageBox.Show("Error al eliminar"); dataGridView1.Refresh(); } private void Editar_Click(object sender, EventArgs e) { string campos = "Turno='" + this.Turno.Text + "', TB='" + this.TT.Text + "', HoraEntrada='" + this.HE.Text + "', HoraSalida='" + this.HS.Text + "'"; string campos1 = "Usuario='" + Clave.Text + "'"; if (regis.actualizar("Registros1", campos, "Clave ='" + Clave.Text + "'") && regis.actualizar("UsuarioPersonal", campos1, "Usuarios='" + Clave.Text + "'")) MessageBox.Show("Se actualizo exitosamente la Información y el Usuario"); else MessageBox.Show("Error al actualizar, intenta de nuevo"); dataGridView1.Refresh(); } } } //////////////////////////////CHECAR HUELLA DACTILAR/////////////////////////////// using using using using using using using using using using using
System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; System.Data.SqlClient; Microsoft.Office.Interop.Excel; System.Reflection;
namespace Enrollment { public partial class Checar : Form { private string clave; public Checar(string clave) { InitializeComponent(); this.clave = clave; Cl.Text = clave; }
Página 81
Escuela Superior de Ingeniería Mecánica y Eléctrica
private void timer1_Tick(object sender, EventArgs e) { label11.Text = DateTime.Now.ToString("dd-MM-yyyy"); label8.Text = DateTime.Now.ToString("hh:mm:ss"); } Registro regis = new Registro(); private void Editar_Click(object sender, EventArgs e) { string sql = "insert into ChecarEntrada (Clave, Fecha, HoraEntrada) values ('"+ Cl.Text + "','" + label11.Text + "','" + label8.Text + "')"; if (regis.insertar(sql)) MessageBox.Show("Registro Hecho"); else MessageBox.Show("Error al Registrar"); } private void ChecarSalida_Click(object sender, EventArgs e) { string sql = "insert into ChecarSalida (Clave, Fecha, HoraEntrada) values ('" + Cl.Text + "','" + label11.Text + "','" + label8.Text + "')"; if (regis.insertar(sql)) { MessageBox.Show("Registro Hecho"); } else MessageBox.Show("Error al Registrar"); } private void Checar_Load(object sender, EventArgs e) { regis.consultar("select Clave,Día,Fecha,HoraEntrada from ChecarEntrada", "ChecarEntrada"); ChecEnt.DataSource = regis.ds.Tables["ChecarEntrada"]; ChecEnt.Refresh(); regis.consultar("select Clave,Día,Fecha,HoraSalida from ChecarSalida", "ChecarSalida"); ChecSal.DataSource = regis.ds.Tables["ChecarSalida"]; ChecEnt.Refresh(); } private void ExportarDataGridViewExcelEntrada(DataGridView ChecEnt) { SaveFileDialog fichero = new SaveFileDialog(); fichero.Filter = "Excel (*.xls)|*.xls"; if (fichero.ShowDialog() == DialogResult.OK) { Microsoft.Office.Interop.Excel.Application aplicacion; Microsoft.Office.Interop.Excel.Workbook libros_trabajo; Microsoft.Office.Interop.Excel.Worksheet hoja_trabajo; aplicacion = new Microsoft.Office.Interop.Excel.Application(); libros_trabajo = aplicacion.Workbooks.Add(); hoja_trabajo = new Microsoft.Office.Interop.Excel.Worksheet();
Escuela Superior de Ingeniería Mecánica y Eléctrica
libros_trabajo.Worksheets.get_Item(1); for (int i = 0; i < ChecEnt.Rows.Count - 1; i++) { for (int j = 0; j < ChecEnt.Columns.Count; j++) { hoja_trabajo.Cells[i + 1, j + 1] = ChecEnt.Rows[i].Cells[j].Value.ToString(); } } libros_trabajo.SaveAs(fichero.FileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal); libros_trabajo.Close(true); aplicacion.Quit(); } } private void ExportarDataGridViewExcelSalida(DataGridView ChecEnt) { SaveFileDialog fichero = new SaveFileDialog(); fichero.Filter = "Excel (*.xls)|*.xls"; if (fichero.ShowDialog() == DialogResult.OK) { Microsoft.Office.Interop.Excel.Application aplicacion; Microsoft.Office.Interop.Excel.Workbook libros_trabajo; Microsoft.Office.Interop.Excel.Worksheet hoja_trabajo; aplicacion = new Microsoft.Office.Interop.Excel.Application(); libros_trabajo = aplicacion.Workbooks.Add(); hoja_trabajo = new Microsoft.Office.Interop.Excel.Worksheet(); libros_trabajo.Worksheets.get_Item(1); //Recorremos el DataGridView rellenando la hoja de trabajo for (int i = 0; i < ChecSal.Rows.Count - 1; i++) { for (int j = 0; j < ChecSal.Columns.Count; j++) { hoja_trabajo.Cells[i + 1, j + 1] = ChecSal.Rows[i].Cells[j].Value.ToString(); } } libros_trabajo.SaveAs(fichero.FileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal); libros_trabajo.Close(true); aplicacion.Quit(); } } private void Cl_TextChanged(object sender, EventArgs e) { } } }
Página 83
Escuela Superior de Ingeniería Mecánica y Eléctrica
V. Conclusiones El desarrollo del Sistema de Control de Asistencia Biométrico Dactilar utilizando tecnología .NET, ha sido una gran experiencia y un gran acervo cultural para nuestra formación como estudiantes de Ingeniería en la Escuela Superior de Ingeniería Mecánica y Eléctrica, ya que nos ha ayudado a utilizar los conocimientos que hemos adquirido día a día en clase, además que nos ha ayudado a trabajar en equipo y resolver problemas más hábilmente. El Sistema de Control de Asistencia Biométrico Dactilar utilizando tecnología .NET, es un proyecto que se ha generado para resolver mediante su diseño, la falta de control de asistencia de trabajadores docentes y personal en los edificios de la Escuela Superior de Ingeniería Mecánica y Eléctrica; las principales ventajas de este proyecto son: 1. No es necesario que una persona esté al tanto del reloj checador, debido a que el programa tiene su propio reloj y no puede ser vulnerado ya que trabaja con el reloj interno de la computadora. 2. El desarrollo del sistema en Visual Studio 2012, permite que el programa diseñado sea propiedad de los diseñadores de él, ya que Microsoft cede el uso de las propiedades de sus herramientas de diseño como las de Visual Studio a quienes tienen una licencia de sus programas o como en este caso obtienen los derechos vía internet así, evitando problemas de patentes. 3. Las aplicaciones realizadas con entorno de gráficos Windows, tienen una gran aceptación a nivel industrial o personal, debido a su fácil uso y su gran flexibilidad de ejecutarse en diferentes plataformas de sistemas operativos al momento de crearse la aplicación ejecutable. 4. SQL Server es una herramienta potente que brindan una gran seguridad para el resguardo de información de las bases de datos ya que se pueden obtener respaldos de la información.
Escuela Superior de Ingeniería Mecánica y Eléctrica
5. Las características del Sistema, lo hacen competente para ser aplicado en lugares diferentes, pudiéndose adaptar a las necesidades del lugar, siendo que su diseño es flexible y pueden aumentarse sus características. A través del Sistema de Control de Asistencia Biométrico Dactilar utilizando tecnología .NET, se ha tratado de implementar los conocimientos adquiridos en nuestra estancia en ESIME Zacatenco, por medio de la tecnología más novedosa en cuanto a programación, por lo que la estructura y diseño de éste ha sido un gran reto, al tener que actualizarnos diariamente y en el que al desarrollar el sistema nos hemos encontrado con problemas que no han sido totalmente explorados debido a que aún no tienen una solución determinada, por lo que debieron ser hallados por los programadores. Sin duda, el resultado de la realización de este Sistema ha sido satisfactorio como se ha demostrado a lo largo del trabajo, el Sistema de Control de Asistencia Biométrico Dactilar utilizando tecnología .NET, representa para nosotros el máximo logro que hemos tenido como estudiantes de la Ingeniería en Comunicaciones y Electrónica en la especialidad de Computación.
Página 85
Escuela Superior de Ingeniería Mecánica y Eléctrica
V. Glosario Activo: Son reactivos que se usan para revelar huellas latentes, son fórmulas únicas, cada una con un propósito específico y para un tipo específico de superficie. Dermis: La dermis es la capa de la piel situada bajo la epidermis y firmemente conectada a ella. La cara interna de la membrana basal de la epidermis se le une a la dermis. Desempeña una función protectora, representa la segunda línea de defensa contra los traumatismos (su grosor es entre 20 y 30 veces mayor que el de la epidermis). Dll (Dynamic-link library ): Es el término con el que se refiere a los archivos con código ejecutable que se cargan bajo demanda de un programa por parte del sistema operativo. Esta denominación es exclusiva para los sistemas operativos Windows. Epidermis: La epidermis es la barrera más importante del cuerpo al ambiente externo hostil. Hardware: Elementos físicos de un sistema informático. PPP (Puntos por pulgada): Es una unidad de medida para resoluciones de impresión, concretamente,
el
número
de
puntos
individuales
de
tinta
que
una impresora o tóner puede producir en un espacio lineal de una pulgada. Query: Es una búsqueda, inserción, actualización o eliminación de datos almacenados en una base de datos. Software: Conjunto de programas e instrucciones asociadas a una computadora. Es la parte intangible de un sistema informático, puede ser modificada con faci lidad. Template (Plantilla): Plantilla creada de la huella dactilar que se ingresa, se extraen sus características, se codifica y se guarda en un archivo .fpt (fingerprint template file).