M. Bordoy, M. Cabrer, X. Pons y A. Sola
El desarrollo cuya descripción es el objetivo básico de este artículo surge como consecuencia de la necesidad de implantar en la Universitat de les Illes Balears (UIB) un sistema centralizado de gestión del parque microinformático que reduzca al máximo su mantenimiento. Este sistema debería de cumplir los siguientes requisitos:
La solución que finalmente se adoptó fue el sistema de arranque remoto por red BpBatch [1] que se caracteriza por su política de licencia GNU y por una mayor funcionalidad respecto a otros sistemas de arranque remoto. Sin embargo, el sistema de autenticación de usuarios que ofrece no se ajusta al nivel de seguridad requerido. Por este motivo, la UIB ha desarrollado e implementado un módulo de seguridad basado en tarjetas inteligentes (en adelante, TI) que se ha integrado en el núcleo de este sistema BpBatch. El presente artículo pretende describir este módulo de seguridad y la infraestructura microinformática que se ha implantado en la UIB.
La finalidad principal del sistema BpBatch consiste en permitir a los ordenadores de una red efectuar su proceso de arranque de forma remota desde un servidor, del cual descargan una imagen del sistema operativo y aplicativo según el perfil del usuario identificado. Su configuración básica únicamente requiere de los siguientes componentes:
El propósito de este artículo no trata de exponer en detalle el funcionamiento de este sistema. Como se puede deducir de las referencias [1] y [2], que contienen información detallada al respecto, esta solución cumple con los requerimientos planteados inicialmente y se caracteriza por una gran flexibilidad. No obstante, el método de autenticación de usuarios que ofrece no cumple el nivel de seguridad requerido.
La seguridad que ofrece BpBatch únicamente consiste en comprobar, en tiempo de arranque, la validez del Username/Password que el usuario ha tecleado. Para superar esta carencia se decidió integrar en este sistema la tecnología de la TI. Para acceder al equipo no será suficiente el conocimiento de una pareja Username/Password correcta, sino que además el usuario deberá de disponer de la correspondiente TI con dicha información grabada en su chip. Esta integración presenta la problemática siguiente:
Otra problemática de seguridad que no puede solucionar BpBatch surge una vez iniciada la sesión de trabajo. Si el usuario debe abandonar su equipo, el nivel de seguridad que se ha garantizado hasta el momento queda en entredicho. Esta continuidad en la seguridad se garantizará con un software protector desarrollado por la UIB en colaboración con la empresa DaisySoft SL. El usuario sólo podrá trabajar si su TI se encuentra insertada en el dispositivo lector. Si el usuario desea proteger su sesión de trabajo, es suficiente con retirar su tarjeta. De esta forma, el protector se activará imposibilitando el acceso de cualquier posible intruso a su información personal. Cuando vuelva a introducir su tarjeta, el protector se desactivará y le permitirá seguir trabajando en el mismo punto donde había interrumpido su sesión.
Con el objetivo de incorporar al entorno BpBatch unos comandos para gestionar la comunicación con los terminales lectores de TI y con las mismas tarjetas inteligentes, se han definido los siguientes submódulos:
Para lograr el nivel de abstracción deseado, las funciones que proporcionará el sistema BpBatch se han definido de forma totalmente genérica, sin particularizar con ningún tipo de dispositivo lector y ningún tipo de tarjeta inteligente. Sólo será necesaria la existencia de unas variables de entorno que informen del puerto serie donde se encuentra conectado el lector y del tipo de dispositivo lector utilizado. Si en un futuro se desea ampliar el desarrollo a otros terminales lectores o a otros tipos de TIs, únicamente se deberá seguir la estructura y nomenclatura ya definida y completar las funciones de carácter general que contiene el código del citado módulo.
Los comandos que ofrece esta capa de seguridad al intérprete BpBatch, se presentan clasificadas en los tres niveles vistos anteriormente:
Abre el puerto serie de comunicaciones y configura sus parámetros según el tipo de dispositivo lector de tarjetas.
scardstop
Cierra el puerto serie abierto previamente con la función scardinit. Estas dos funciones nos permiten iniciar y finalizar una sesión con el terminal lector.
Espera la inserción de una tarjeta en el lector hasta <timeout> segundos. Función que permite crear un ciclo de espera a la inserción de una tarjeta.
scardprepare timeout
Empieza la sesión de trabajo con la TI que se encuentra insertada en el lector. Consiste en dar alimentación a la tarjeta y en preparar el lector para la recepción de comandos que debe redirigir de forma transparente hacia la tarjeta.
scardunprepare timeout
Finaliza la sesión de trabajo con la TI. Se retira la alimentación de la tarjeta y se sitúa el lector en su estado inicial. Estas dos últimas funciones nos permiten iniciar y finalizar una sesión con la tarjeta insertada en el lector.
Selecciona el fichero <file> con el modo <mode>. Función a ejecutar antes de leer o escribir datos en el fichero. Posibilita el moverse por los diferentes ficheros de la tarjeta.
scardread mode start length timeout data
Lee <length> bytes del fichero seleccionado a partir de la posición inicial <start> y devuelve los datos leídos en <data>.
scardupdate mode offset numbytes data timeout
Actualiza el fichero seleccionado con <numbytes> de datos <data> a partir de la posición inicial <offest>. El objetivo de estas dos últimas funciones consiste en recuperar y almacenar información en la tarjeta.
scardcreatefile key vi file length timeout
Crea el fichero <file> con un cuerpo de tamaño <length> bytes. Función útil para crear ficheros en cualquier zona disponible de la tarjeta, que podrán ser usados con la finalidad de almacenar información.
scardreqrandnum timeout randnum
Solicita a la tarjeta la generación de un número aleatorio de 8 bytes.
scarddivkey key datdiv1 datdiv2 keydiv
Diversifica la clave DES <key> usando <datdiv1> y <datdiv2> como datos diversificadores.
scardkeyver key file keynum timeout
Verifica la clave DES <key>, número <keynum>, del fichero de claves <file>. Estas tres últimas rutinas están dedicadas a procesos de autenticación que requieren ciertas operaciones con la smartcard. Destacar que también se ha implementado el algoritmo criptográfico DES CBC en el mismo BpBatch debido a que éste sólo incluía el modo ECB.
Este conjunto de comandos permitirá explotar en el mismo sistema BpBatch gran parte de las posibilidades que nos ofrece la tecnología de la TI. Por último, comentar que debido a las necesidades de nuestra propia Universidad, este módulo de seguridad se ha desarrollado para lectores de la compañía alemana CHERRY [5] y de la española C3PO [6], y para la tarjeta inteligente TIBC (Tarjeta Inteligente de Bancos y Cajas).
El primer colectivo en el que se ha introducido este sistema es el PAS de nuestra Universidad. La infraestructura informática que se ha instalado consiste en:
Esta infraestructura se basa en una red de comunicaciones Ethernet/FastEthernet totalmente conmutada cuyo núcleo está basado en la tecnología Gigabit Ethernet (GE). Para obtener mayores prestaciones, el servidor de boot y el servidor de ficheros trabajan con una tarjeta de red Gigabit Ethernet..
Desde el punto de vista del usuario, el funcionamiento de esta nueva plataforma informática sigue las siguientes fases:
En su primera aplicación real esta solución se ha caracterizado por una buena aceptación tanto por parte de los usuarios como por parte del administrador. Desde el punto de vista del administrador, destacar que este sistema BpBatch resulta óptimo en entornos homogéneos y "estables" donde el software de las imágenes y el hardware de los equipos clientes no se modifica muy frecuentemente. En caso contrario, la actualización de las imágenes y la creación de los ficheros personalizados de configuración hardware de los equipos clientes, puede resultar para el administrador una tarea muy tediosa e inacabable.
Las futuras líneas de trabajo que seguirán a la realización de este proyecto son:
No podemos finalizar este artículo sin antes agradecer la colaboración prestada al Centro de Cálculo de la Universidad de Granada, a la compañía alemana CHERRY y, especialmente, a David Clerc y Marc Vuilleumier del proyecto BpBatch.