Hace más de veinte años un periodista francés llamado Roland Moreno
patentaba la integración de un procesador en una tarjeta de plástico; sin
duda, no podía imaginar el abanico de aplicaciones de seguridad que ese
nuevo dispositivo, denominado chipcard, estaba abriendo. Desde entonces,
cientos de millones de esas tarjetas han sido fabricadas, y son utilizadas a
diario para fines que varían desde las tarjetas monedero más sencillas
hasta el control de accesos a instalaciones militares y agencias de
inteligencia de todo el mundo; cuando a las chipcards se les incorporó
un procesador inteligente nacieron las smartcards, una gran revolución
en el ámbito de la autenticación de usuarios.
Desde un punto de vista formal ([GUQ92]), una tarjeta inteligente (o
smartcard) es un dispositivo de seguridad del tamaño de una tarjeta de
crédito, resistente a la adulteración, que ofrece funciones para un
almacenamiento seguro de información y también para el procesamiento de
la misma en base a tecnología VLSI. En la práctica, las tarjetas
inteligentes poseen un chip empotrado en la propia tarjeta que puede implementar
un sistema de ficheros cifrado y funciones criptográficas, y además puede
detectar activamente intentos no válidos de acceso a la información
almacenada ([MA94]); este chip inteligente es el que las diferencia de
las simples tarjetas de crédito, que sólamente incorporan una banda
magnética donde va almacenada cierta información del propietario de la
tarjeta.
Figura 8.1:
Estructura genérica de una smartcard.
|
En la figura 8.1 se muestra la estructura más generalista de una
tarjeta inteligente; en ella podemos observar que el acceso a las áreas de
memoria sólamente es posible a través de la unidad de entrada/salida y de
una CPU (típicamente de 8 bits), lo que evidentemente aumenta la seguridad
del dispositivo. Existe también
un sistema operativo empotrado en la tarjeta - generalmente en ROM, aunque
también se puede extender con funciones en la EEPROM - cuya función es
realizar tareas criptográficas (algoritmos de cifrado como RSA o Triple
DES, funciones resumen...); el criptoprocesador apoya estas tareas ofreciendo
operaciones RSA con claves de 512 a 1024 bits. Un ejemplo de implementación
real de este esquema lo constituye la tarjeta inteligente CERES, de la Fábrica
Nacional de Moneda y Timbre española ([Pit00]); en ella se incluye
además un generador de números aleatorios junto a los mecanismos de
protección internos de la tarjeta.
Cuando el usuario poseedor de una smartcard desea autenticarse necesita
introducir la tarjeta en un hardware lector; los dos dispositivos se
identifican entre sí con un protocolo a dos bandas en el que es necesario
que ambos conozcan la misma clave (CK o CCK, Company Key o Chipcard
Communication Key), lo que elimina la posibilidad de utilizar tarjetas de
terceros para autenticarse ante el lector de una determinada compañía;
además esta clave puede utilizarse para asegurar la comunicación entre
la tarjeta y el dispositivo lector. Tras identificarse las dos partes, se lee
la identificación personal (PID) de la tarjeta, y el usuario teclea su
PIN; se inicia entonces un protocolo desafío-respuesta: se envía
el PID a la máquina y ésta desafía a la tarjeta, que responde al
desafío utilizando una clave personal del usuario (PK, Personal
Key). Si la respuesta es correcta, el host ha identificado la tarjeta y
el usuario obtiene acceso al recurso pretendido.
Las ventajas de utilizar tarjetas inteligentes como medio para autenticar
usuarios son muchas frente a las desventajas; se trata de un modelo ampliamente
aceptado entre los usuarios, rápido, y que incorpora hardware de alta
seguridad tanto para almacenar datos como para realizar funciones de cifrado.
Además, su uso es factible tanto para controles de acceso físico como
para controles de acceso lógico a los hosts, y se integra fácilmente
con otros mecanismos de autenticación como las contraseñas; y en caso de
desear bloquear el acceso de un usuario, no tenemos más que retener su
tarjeta cuando la introduzca en el lector o marcarla como inválida en una
base de datos (por ejemplo, si se equivoca varias veces al teclar su PIN, igual
que sucede con una tarjeta de crédito normal). Como principal
inconveniente de las smartcards podemos citar el coste adicional que
supone para una organización el comprar y configurar la infraestructura de
dispositivos lectores y las propias tarjetas; aparte, que un usuario pierda
su tarjeta es bastante fácil, y durante el tiempo que no disponga de ella
o no puede acceder al sistema, o hemos de establecer reglas especiales que
pueden comprometer nuestra seguridad (y por supuesto se ha de marcar como
tarjeta inválida en una base de datos central, para que un potencial atacante
no pueda utilizarla). También la distancia lógica entre la smartcard y
su poseedor - simplemente nos podemos fijar en que la tarjeta no tiene
un interfaz para el usuario - puede ser fuente de varios problemas de
seguridad ([BF99], [GSTY96]).
Aparte de los problemas que puede implicar el uso de smartcards en
sí, contra la lógica de una tarjeta inteligente existen diversos
métodos de ataque, como realizar
ingeniería inversa - destructiva - contra el circuito de silicio (y los
contenidos de la ROM), adulterar la información guardada en la tarjeta o
determinar por diferentes métodos el contenido de la memoria EEPROM. Sin duda
una de las personas que más ha contribuido a incrementar la seguridad de las
smartcards gracias a sus estudios y ataques es el experto británico
Ross J. Anderson ([And97], [AK96]...); en su página web personal, http://www.cl.cam.ac.uk/users/rja14/, podemos encontrar
todos sus artículos sobre este tema9.1, demasiados como para citarlos
aquí uno a uno.
© 2002 Antonio Villalón Huerta