Integración de un módulo de seguridad basado en tarjeta inteligente para un entorno PC de boot remoto

M. Bordoy, M. Cabrer, X. Pons y A. Sola


1.- Introducción

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:

  • Gestionar de forma centralizada la instalación y actualización de software (sistema operativo y aplicativo) de la totalidad del parque microinformático.
  • Ofrecer un sistema de copias de seguridad transparente a los usuarios y que no afecte al tráfico normal de la red.
  • Centralizar el mantenimiento de los equipos en caso de problemas software como pudiera ser un virus u otro tipo de error.
  • Eliminar por completo la dependencia Usuario-Equipo para permitir al usuario trabajar exactamente de la misma forma en cualquiera de los equipos de la red.
  • Diseñar una solución genérica que también sea válida para todos los ámbitos de la Universidad: PAS, Aulas Informáticas y PDI.
  • Integrar un sistema de seguridad de control de acceso a estos recursos informáticos, tanto a nivel de acceso a los equipos como a nivel de protección de información personal.
  • Proponer una solución que se caracterice por su flexibilidad en cuanto a futuros cambios tecnológicos.

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.

2.- Problemática del sistema de boot remoto BpBatch

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:

  • Ordenadores PC clientes con disco duro y tarjeta de red que incluya una boot ROM del tipo Bootix TCP/IP [2] o del tipo PXE [4].
  • Servidor de boot donde residen las diferentes imágenes que debe distribuir a sus clientes.
  • Servidor de ficheros que mantiene los directorios donde cada usuario almacena sus documentos personales.

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:

  • BpBatch es el único código que se ejecuta en el cliente cuando éste realiza la validación del usuario. Si queremos tratar con TIs la única opción posible consiste en incluir este módulo de seguridad en el propio kernel de BpBatch.
  • La gran variedad de TIs (en cuanto a su sistema operativo residente) así como la diversidad de terminales lectores (especificación de su protocolo de comunicación y de su autómata de estados) existentes en el mercado y las grandes expectativas de futuro de esta tecnología, nos obliga a desarrollar esta capa de seguridad con el máximo nivel de abstracción posible. De esta forma, su código permanecerá completamente abierto a la incorporación de nuevos desarrollos que permitan integrar otros lectores y otros tipos de TIs.

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.

3.- Especificación del módulo de seguridad

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:

  • Gestión del puerto serie de comunicaciones. Nivel cuyo objetivo consiste en proporcionar la interface necesaria que permite la comunicación a través del puerto serie RS-232 con el dispositivo lector de tarjetas.
  • Gestión del dispositivo lector de TI. Implementa las funciones necesarias para poder gestionar el terminal lector a través de su propio protocolo de comunicación y de su autómata de estados.
  • Gestión de la TI. La funcionalidad de este nivel superior es la de interactuar con el sistema operativo residente en el chip de la TI para poder tratar con su información almacenada.

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:

Gestión del puerto serie de comunicaciones:

scardinit

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.

Gestión del dispositivo lector de TI:

scardinsert timeout

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.

Gestión de la TI:

scardselect file mode timeout

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).

4.- Implantación en la UIB

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:

  • Servidor PC de boot remoto con sistema operativo Linux.
  • Servidor de ficheros y de autenticación basado en un PC con sistema operativo Windows NT Server.
  • Equipos clientes basados en el habitual PC con las siguientes peculiaridades:
    • Teclado con lector de TI integrado modelo G83-6700 de CHERRY.
    • Tarjeta de red 3COM modelo 3C905B-TX-MBA con boot ROM PXE incorporada y con tecnología Wake On LAN [3].

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:

  1. Al arrancar su equipo, el usuario debe insertar su TI y teclear el password que le solicita el entorno BpBatch.
  2. Validado correctamente el usuario, si éste decide realizar un arranque local se aprovechará el sistema presente en su disco duro. En caso de seleccionar un arranque remoto (se formatea el disco antes de cargar el nuevo sistema), se obtendrá la imagen del sistema, de la cache de imágenes del disco local (si coincide con la del servidor) o del servidor remoto (si el administrador la ha actualizado).
  3. Se cargará el sistema operativo Windows y a continuación el usuario podrá iniciar su sesión de trabajo teniendo en cuenta que debe almacenar sus documentos en el directorio que tiene habilitado en el servidor de ficheros.

5.- Conclusiones

Se han cumplido todos los objetivos planteados inicialmente implantando una plataforma informática:

  • Fácil de mantener

  • De gestión totalmente centralizada

  • Flexible en todos los aspectos

  • Segura respecto al control de acceso a los equipos

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.

6.- Líneas de futuro

Las futuras líneas de trabajo que seguirán a la realización de este proyecto son:

  • Integración de la tarjeta inteligente CECA (Confederación Española de Cajas de Ahorros), basada en el modelo WG10 de GEMPLUS, en el módulo de seguridad desarrollado.
  • Implantación de esta infraestructura en las Aulas Informáticas de la UIB.
  • Ampliar el módulo de seguridad desarrollado con técnicas de identificación biométrica como la huella digital.
  • Integración en otras aplicaciones universitarias (como las de tele-educación) con la finalidad de conseguir un mayor control del trabajo de los alumnos y mejorar la gestión del tiempo de utilización de los equipos.

7.- Agradecimientos

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.

8.- Enlaces de interés

  1. Página Web principal del sistema de boot remoto BpBatch. www.bpbatch.org
  2. "Linux Remote-Boot mini-HOWTO: Configuring Remote-Boot Workstations with Linux, DOS, Windows 95/98 and Windows NT". Marc Vuilleumier Stückelberg, David Clerc cui www.unige.ch/info/pc/remote-boot/howto.html
  3. Tecnología de 3COM para NICs capacitadas para boot remoto www.3com.com/technology/key_net/dynamic/dyn_manpc.html
  4. Introducción y especificación del standard Pre-boot eXecution Environment de Intel. developer.intel.com/ial/wfm/
  5. Información del teclado de CHERRY con lector de smartcards integrado www.cherry.de/uk/uk_fs_ta.html
  6. Empresa española C3PO fabricante de terminales lectores de smartcards www.c3po.es.


Miquel Bordoy Marcó
dirección de correo scimbm [at] clust [dot] uib.es
Miguel Cabrer González
dirección de correo scimcg [at] clust [dot] uib.es
Xavier Pons Pons
dirección de correo scixpp [at] clust [dot] uib.es
Antonio Sola Venteo
dirección de correo sciasv [at] clust [dot] uib.es
Servei de Càlcul i Informatització
Universitat de les Illes Balears