TICA: Dispositivo de Control de Acceso Mediante Java y Tarjetas Inteligentes

TICA: Access Control Device using Java and SmartCards

H. Martínez, F. García, G. López, J. Tavira, J. P. Cánovas, B. Ubeda

Resumen

En este trabajo presentamos una solución al problema del Control de Presencia y Acceso utilizando una infraestructura de servicios seguros distribuidos, basada totalmente en JAVA. A tal efecto se ha hecho uso de unos dispositivos físicos llamados TICA, desarrollados y construidos en la Universidad de Murcia. Los TICAs, que cuentan con un lector de tarjetas inteligentes ISO 7816 y una conexión Ethernet a la red de la Universidad de Murcia, se sitúan a la entrada de los distintos edificios y/o departamentos. Todos los TICAs se comunican con un servidor central para anotar incidencias, horas de fichaje, y consultar permisos usando una infraestructura de comunicaciones segura. Además, el sistema es robusto en cuanto a problemas temporales de conexión y/o caídas de red. El sistema de TICAs está actualmente operativo en la Universidad con más de 30 terminales, sus empleados utilizan sus tarjetas personalizadas para fichar la entrada y salida del trabajo, y para la apertura de puertas.

Palabras clave: Control de Acceso, Sistemas Seguros Distribuidos, SSL, JAVA, Tarjetas Inteligentes.


Summary

In this work we present a solution to the Access and Presence Control problem making use of a secure distributed services infrastructure, which is based completely on Java. In this case we use a series of physical devices called TICA that have been developed and built by the University of Murcia. These TICAs, which include a ISO 7816 smartcard reader and an Ethernet link to the university network, are located at the entrances of the different buildings and/or departments. All TICAs communicate with a central server to annotate incidences, register work times, and consult grants using a secure communications infrastructure.

Moreover, the system is robust in case of temporary connection problems and/or networks failures. The TICA system is currently operative in the University of Murcia with more than 30 terminals, where employees use their personalised cards to register starting and finishing work times and to open doors.

Keywords: Access Control, Secure Distributed Systems, SSL, JAVA, SmartCards.


1.- Objetivos

Conjuntamente entre el Dept. de Informática, Inteligencia Artificial y Electrónica y el Servicio de Informática de la Universidad de Murcia se ha desarrollado un dispositivo llamado Terminal Inteligente de Control de Acceso (TICA)[1], cuyo software está íntegramente desarrollado en JAVA [1] hacen uso de un sistema operativo Linux donde se ejecuta la máquina virtual Java. Sobre dicha máquina virtual define una aplicación que hace uso de las siguientes tecnologías:

  • JavaComm: tecnología JAVA para la comunicación mediante los puertos serie o paralelo con los distintos componentes hardware. De esta forma una aplicación Java se puede comunicar con otros dispositivos que no están conectados una red.
  • OCF (Open Card Framework): framework JAVA para un acceso estructurado a las tarjetas inteligentes independientemente del dispositivo [3]. Los dispositivos TICA permiten así el uso tanto de las tarjetas inteligentes ISO/IEC7816 o tarjetas basadas en tecnología JavaCard. Además, OCF permite el uso de distintos lectores de tarjetas con el único requisito de disponer un driver OCF. Para los TICAs se han desarrollado drivers para los lectores de C3PO y Towitoko.
  • SSL: protocolo de seguridad empleado en todas las transacciones realizadas entre los dispositivos TICA y los servidores de aplicación, garantizando los requisitos básicos de seguridad en las comunicaciones (autenticación, integridad y confidencialidad). Este protocolo está sustentado en la infraestructura de clave pública (PKI) de la Universidad de Murcia.

Una de las características principales de los TICA es la seguridad de las comunicaciones que realizan con el servidor (o servidores) de aplicación. Dichas comunicaciones, en las cuales se hace uso de un modelo de autenticación de cliente, están basadas en la utilización de claves privadas y claves públicas, estas últimas certificadas por la infraestructura de clave pública de la Universidad de Murcia.

En una primera aproximación, cada vez que se pone en marcha un nuevo dispositivo TICA se pide al Director Informático del proyecto que genere una clave privada y un certificado para este dispositivo.

Dicho certificado tiene que ser firmado por la Autoridad de Certificación de la Universidad de Murcia. Una vez que el certificado ha sido firmado y publicado en el servidor de directorio por parte de la CA de la Universidad de Murcia, se habilitarán mecanismos para hacer llegar de forma segura la clave privada y el certificado a los responsables del proyecto TICA. Todos los dispositivos TICA cuando actúan como clientes firman todas las comunicaciones con el servidor, al igual que hace el servidor cuando se comunica con ellos. Tanto el dispositivo TICA como el servidor deberán de verificar en todo momento tanto la firma que se les presenta como el certificado que la acompaña.

2.1.- Estructura y funcionalidades de los dispositivos TICA

Los dispositivos TICA (Figura 1) se componen de diversos elementos para poder interactuar con el entorno, con el usuario, y con la aplicación remota. El módulo de proceso está basado en un i486DX4 a 133 MHz en formato SBC y una placa de control e interfaz basada en el PIC-16F877 a 20 MHz. Los elementos que están interconectados en un dispositivo TICA son los siguientes

  • Puerto Ethernet para conectar a la red de la Universidad de Murcia.
  • Lector de tarjetas compatible con tarjetas inteligentes (ISO/IEC 7816) y tarjetas que ejecutan código Java (JavaCards).
  • Teclado matricial 4x4 para introducción de comandos y PIN.
  • Display LCD 4 x 20 para mostrar mensajes de la aplicación.
  • Zumbador para feed-back de operaciones de usuario.
  • Puertos para sensores (temperatura, switches, etc.) y actuadores (relés).

Entre las distintas funcionalidades que ofrecen, cabe citar que pueden abrir puertas, comprobar si dicha puerta está abierta o cerrada, detectar la apertura de la carcasa del propio dispositivo, y comprobar la temperatura interna. Además, quedan libres puertos adicionales para futuras expansiones.

2.2.- Estructura y funcionalidades de las aplicaciones

El modelo de procesamiento de las aplicaciones TICA se basa en un sistema distribuido (Figura 2), cuyas comunicaciones hacen uso del protocolo seguro SSL, donde se distinguen tres tipos de elementos:

  • Aplicación cliente, que se aloja en los dispositivos TICA.
  • Aplicación servidora, que se aloja en estaciones de trabajo.
  • Aplicación de administración, que se aloja en ordenadores personales.

La aplicación cliente reside directamente en los TICAs. Se ha desarrollado íntegramente en JAVA, se ejecuta en la placa SBC bajo sistema operativo Linux, y se comunica con la placa de control e interfaz por medio de un puerto serie. Así se consigue un sistema multiplataforma basado en JAVA, donde se están reutilizando desarrollos que se han realizado en otros proyectos de seguridad dentro de la Universidad. Cabe destacar como características importantes de la aplicación la tolerancia a fallos, con la posibilidad de registro off-line en casos de caída de la red de datos, estableciendo un caché de transacciones, así como la sincronización horaria de los TICAs con respecto al servidor de tiempo de la Universidad de Murcia, aspecto importante a la hora de tener fichajes consistentes. La aplicación servidora reside en estaciones de trabajo con sistema operativo Solaris, y se ha desarrollado íntegramente en JAVA. Esta aplicación está conectada directamente con distintas bases de datos ORACLE, donde reside la información de personal, y donde se almacenan los marcajes

horarios para así poder después realizar informes personalizados por trabajador. Además, esta aplicación está encargada de gestionar la política de control de accesos de forma distribuida, permitiendo que los centros puedan definir sus reglas de acceso de forma dinámica. La aplicación de administración reside en ordenadores personales, con cualquier sistema operativo que pueda ejecutar Java (UNIX, Windows o MacOS), e igualmente se ha desarrollado íntegramente en JAVA. Entre sus características más importantes destaca la posibilidad de monitorizar en tiempo real del estado de los TICAs, mostrando los parámetros operativos más relevantes: estadísticas de utilización, estado de las alarmas, estado de las puertas, etc. Además, también permite el cambio de parámetros de los TICAs de forma remota.

En este proyecto se ha conseguido, tras una fase piloto, que se establezca un sistema robusto para realizar tareas de control de acceso y presencia en la Universidad de Murcia. En este caso, todo el personal de Administración y Servicios está haciendo uso de la infraestructura de TICA, algunos de los cuales hace media de más de 100 ticajes diarios. En la actualidad se están abordando una serie de desarrollos encaminados a poder ampliar las funcionalidades del sistema, y potenciar las herramientas de monitorización. Para ello se han realizado pruebas con una plataforma prototipo basada en la tecnología JINI, que permita la conexión de dispositivos TICA de forma transparente.

Además se está estudiando la sustitución del actual sistema procesador basado en un i486 por otro basado en chips JAVA (chip MAJC).

4.- Referencias

  1. El desarrollo TICA, http://ants.dif.um.es/kronos


  2. La tecnología Java, http://www.java.sun.com


  3. El framework OCF, http://www.opencard.org


Humberto Martínez, Félix García
dirección de correo humberto [at] um [dot] es,dirección de correo fgarcia [at] dif [dot] um.es
Gabriel López, Javier Tavira,
dirección de correo gabilm [at] dif [dot] um.es, dirección de correo jhidalgo [at] um [dot] es
Juan Pedro Cánovas, Benito Ubeda
dirección de correo juanpe [at] dif [dot] um.es,dirección de correo bubeda [at] um [dot] es
Dept. de Informática, Inteligencia Artificial y Electrónica Universidad de Murcia