Documente Academic
Documente Profesional
Documente Cultură
3.1 INTRODUCCIÓN
En ese capítulo se introduce el concepto de la smart card (tarjeta inteligente), se
hará una descripción de las características de las smart cards en cuanto a hardware,
sofware y protocolo de comunicación. Se analizarán las ventajas que nos ofrece la
utilización de las smart cards así como sus campos de aplicación
Una tarjeta inteligente (smart card), es cualquier tarjeta del tamaño de un bolsillo
con circuitos integrados incluidos. Véase Figura 1.
Aunque aún es una tecnología en crecimiento, las smart cards llevan con
nosotros más de 20 años. Las siguientes fechas muestran la evolución en el desarrollo
de la tecnología smart card.
1970: Dr. Kunitaka Arimura de Japón registra la patente del concepto de las
smart cards.
1974: Roland Moreno de Francia registra la patente original para las IC cards
(tarjetas de circuito integrado), más tarde adoptada por las smart card.
1982: La prueba de campo de las tarjetas de teléfono con memoria serie tuvo
lugar en Francia – La primera y mayor prueba de IC cards del mundo.
1999: The U.S. Government's General Services Administration (GSA) has been
involved in the Smart Access Common ID Project. The Smart Access Common ID Card
program established a contract vehicle for use by all Federal agencies to acquire a
standard, interoperable employee identification card, from one or more vendors, capable
of providing both physical and logical (system/network) access to all Federal
employees.
2000-2001: By the year 2000, Data Monitor predicts that over 3 billion cards
will be in circulation worldwide - with over 15% of the total in use in the United States
and Canada.
2004: Se extiende el uso de las smart cards para su uso en el transporte público.
Se implanta en ciudades como Chicago, Londres, Boston…
El interés en las smart cards se debe a las ventajas que aportan. Una ventaja es su
potencia computacional. La seguridad, la portabilidad, y la facilidad de uso, son otras de
las ventajas clave que aportan.
Otra ventaja de las smart cards es su portabilidad. Se puede llevar una smart card
en la cartera de la misma forma en que se llevan las tarjetas bancarias.
Las smart cards son también muy prácticas. Para comenzar una transacción, se
inserta la tarjeta en un dispositivo, y se retira del dispositivo cuando el trabajo ya se ha
realizado.
Las primeras smart cards producidas en grandes cantidades fueron las tarjetas
con memoria. Las tarjetas con memoria no son inteligentes porque no contienen un
microprocesador. Estas tarjetas incluyen un chip de memoria o un chip de memoria con
lógica no programable.
Normalmente, las tarjetas con memoria pueden contener entre 1kbytes y 4kbytes
de datos. Se suelen usar como tarjetas de prepago para teléfonos públicos u otros bienes
o servicios.
Como las tarjetas con memoria no tienen una CPU para procesar datos, el
procesado de datos se lleva a cabo mediante un circuito simple capaz de ejecutar unas
pocas instrucciones preprogramadas. Tal circuito tiene funciones limitadas y no puede
ser reprogramado. Por lo tanto, las tarjetas con memoria no se pueden reutilizar. Cuando
se consume el valor de la tarjeta, la tarjeta se tira.
Por otro lado, están las tarjetas con microprocesador, que como el nombre
indica, contienen un procesador. Ofrecen un grado de seguridad mayor y capacidad de
soportar múltiples funciones. Con una tarjeta con microprocesador, los datos nunca
están directamente accesibles a las aplicaciones externas. El microprocesador controla
el tratamiento de los datos, el acceso a la memoria de acuerdo a un conjunto de
condiciones (contraseñas, codificaciones...) y las instrucciones dadas por las
aplicaciones externas. Muchos modelos actuales de microprocesador para tarjetas,
presentan soporte criptográfico. Tales tarjetas son particularmente útiles para
aplicaciones que necesitan conseguir seguridad en los datos.
En general, el término smart card se refiere tanto a tarjetas con memoria como a
tarjetas con microprocesador. Sin embargo, algunas publicaciones prefieren llamar
smart card a las tarjetas con microprocesador, debido a la inteligencia provista por el
procesador. El término chip cards se usa para designar a las tarjetas con memoria y a las
tarjetas con microprocesador.
Dentro de las tarjetas con microprocesador, a las que llamamos smart card,
podemos encontrar 2 tipos diferentes.
Sin embargo, las tarjetas sin contactos tienen sus inconvenientes. Las tarjetas sin
contactos deben estar a una cierta distancia para intercambiar datos con el dispositivo de
aceptación de tarjetas. Como la tarjeta puede salirse rápidamente del rango de cobertura,
solo se puede transmitir una cantidad limitada de datos. También es posible que las
transacciones sean interceptadas sin que el titular de la tarjeta lo sepa. Además, las
tarjetas sin contactos son actualmente más caras que las tarjetas de contactos.
A menudo, las smart cards son llamadas chip cards, o integrated circuit (IC)
cards. El circuito integrado se incorpora en un sustrato de plástico del tamaño de una
tarjeta de crédito. Este circuito integrado contiene elementos que se usan para la
transmisión de datos, almacenamiento y procesado. La siguiente figura ilustra la
apariencia física de una smart card:
Introducción a las Java Cards Página 20
Una smart card tiene puntos de contacto en la superficie del sustrato de plástico,
una unidad central de proceso empotrada en el sustrato de plástico y varios tipos de
memorias. Algunas smart cards también vienen con coprocesadores para cálculos
matemáticos.
Una smart card tiene ocho puntos de contacto, la funcionalidad de cada uno se
muestra en la ilustración siguiente. Las dimensiones y localización de los contactos se
encuentran especificadas en la parte 2 de la ISO 7816.
El punto Vcc (3 ó 5 voltios) suministra energía al chip. Vcc suele tener un valor
de 3 ó 5 voltios, con una desviación máxima del 10%. Las smart cards de los teléfonos
móviles usan una Vcc de 3 voltios.
El punto RST se usa para enviar una señal de reset al microprocesador. A esto se
le llama reset en caliente. Un reset en frío se hace apagando y encendiendo la fuente de
alimentación (por ejemplo, extrayendo e insertando la tarjeta del CAD).
Introducción a las Java Cards Página 21
El punto CLK provee un reloj externo al chip. De este reloj externo se deriva el
reloj interno (ya que las smart cards no poseen un generador de reloj interno).
El punto I/O se usa para transferir datos y comandos entre la smart card y el
mundo exterior en modo half-duplex. Esto significa que los comandos o los datos solo
se pueden transmitir en una sola dirección en un determinado instante.
Las smart cards que están diseñadas para su uso en aplicaciones de seguridad
suelen tener un coprocesador. Un coprocesador criptográfico es un circuito integrado
especial que sirve para realizar cálculos, en particular, cálculos de enteros largos. Tales
cálculos se requieren para llevar a cabo ciertas operaciones criptográficas, como en el
algoritmo RSA. La inclusión de un coprocesador suele afectar al coste del chip.
Las smart cards suelen contener tres tipos de memoria: memoria persistente no
modificable; persistente y modificable; y no persistente y modificable. ROM, EEPROM
y RAM son las memorias más usadas para estas tres clases de memorias.
RAM (Random Access Memory): se usa como espacio temporal de trabajo para
guardar y modificar datos. La RAM no es una memoria persistente, es decir, la
información que contiene no se puede preservar cuando la fuente de alimentación se
apaga. A la memoria RAM se puede acceder un número ilimitado de veces y ninguna de
las restricciones de la EEPROM son aplicables a la RAM. Una celda de RAM suele
ocupar cuatro veces el espacio de una celda de memoria de EEPROM.
Por otra parte, los terminales son verdaderos ordenadores. Un terminal integra
un lector de smart cards como uno de sus componentes. Los cajeros automáticos de los
bancos, son otra forma de terminal. Además de tener la funcionalidad de un lector de
tarjetas, un terminal tiene la capacidad de procesar los datos intercambiados con la
tarjeta. Por ejemplo, un cajero automático que acepte smart cards, puede añadir o quitar
dinero de una aplicación de monedero que se encuentre en la tarjeta.
En el caso 2, no hay datos transferidos hacia la tarjeta, pero si que hay datos
procedentes de la tarjeta. El cuerpo de la C-APDU contiene un solo byte (el campo Le,
que especifica el número de bytes de datos de la correspondiente R-APDU).
En el caso 4, los datos son transferidos a la tarjeta, y también hay datos que
proceden de la tarjeta como resultado del proceso del comando. El cuerpo de la C-
APDU incluye el campo Lc, el campo de datos, y el campo Le. La R-APDU contiene
los datos y las palabras de estado.
Las estructuras usadas en los protocolos T=0 y T=1 son diferentes. Toda la
información relativa al protocolo de transporte, se puede consultar en la norma ISO
7816-3.
3.2.4.5 ATR
Los sistemas operativos de las smart cards no tienen nada que ver con los
sistemas operativos como UNIX, Windows o DOS. Los sistemas operativos de las
smart cards soportan una colección de instrucciones sobre las que las aplicaciones
Introducción a las Java Cards Página 26
Las smart cards definidas en ISO 7816-4 pueden tener un sistema de archivos
con estructura jerárquica. El sistema de archivos ISO 7816-4 soporta tres tipos de
archivos: el archivo maestro o raíz (MF), el archivo dedicado (DF), y el archivo
elemental (EF). Cada archivo se especifica por un identificador de 2 bytes o un nombre
simbólico de más de 16 bytes llamado FID (File Identifier).
Los sistemas de smart card, son sistemas distribuidos que constan de dos partes:
el sistema host, residente en un ordenador conectado al lector o a un terminal y el
sistema de la tarjeta, contenido en una smart card.
La mayoría del software para smart cards, incluido el software del sistema y las
aplicaciones de usuario, corren en el lado del host. El software del sistema reconoce un
tipo específico de smart card y arbitra la comunicación entre la aplicación de usuario y
la tarjeta. El software del sistema también provee soporte para la infraestructura smart
card, tales como la gestión de la tarjeta, seguridad y gestión de claves. Las aplicaciones
de usuario implementan funciones que funcionan con una tarjeta específica o una
aplicación específica de la tarjeta. Una simple aplicación de usuario es la única que
soporta y maneja un conjunto de APDU’s intercambiadas con la tarjeta, pero la mayoría
de las aplicaciones de usuario tienen un rico juego de funciones. El software del host
suele estar escrito en un lenguaje de alto nivel como Java, C ó C++.
Java Card ofrece una plataforma única en la que las aplicaciones del lado de la
tarjeta se pueden escribir en Java y se pueden ejecutar en cualquier smart card que
soporte el entorno de ejecución de Java Card.
La ISO 7816, es el estándar más importante que define las características de los
chips de las smart cards que poseen contactos eléctricos. La ISO 7816 comprende varios
aspectos de las smart cards:
Parte 4: comandos.
3.2.7.2 GSM
GSM 11.14: especificación del SIM Application Toolkit para la interfaz SIM-
ME (mobile equipment).
Java para desarrollar aplicaciones GSM que se ejecutan en la plataforma Java Card. La
API es una extensión de la API de Java Card 2.1.
3.2.7.3 EMV
En esencia, OCF está diseñado para el uso de una smart card en una red de
ordenadores, y además está implementado en el lenguaje de programación Java.
Introducción a las Java Cards Página 30
3.2.7.6 PC/SC
PC/SC y OCF tienen conceptos muy similares. Cuando corren bajo una
plataforma Windows, OCF puede acceder a los CAD’s a través del gestor de recursos
PC/SC instalado.
Terminales informáticos.
Software.
Secciones de control.
Identificación
Sitios seguros.
Estadios deportivos.
Instalaciones hoteleras.
Acceso físico
Complejos hoteleros.
Aparcamientos.
Centros deportivos.
Introducción a las Java Cards Página 31
Mantenimiento de equipos.
Registros de inspección.
Transporte de datos
Expedientes militares.
Expedientes académicos.
Tarjeta de maternidad.
Televisión de pago.
Prepago
Pagos del comedor.
Peajes de autopistas.
Finanzas
Dinero electrónico.
Cheques electrónicos.
Cajeros automáticos.
Postpago
Pagos de pensiones.
La tecnología Java Card ofrece un camino para superar los obstáculos que
entorpece la aceptación de las smart cards. Permite que las tarjetas inteligentes y otros
dispositivos con restricciones de memoria, ejecuten aplicaciones (llamadas applets)
escritas en el lenguaje de programación Java. Esencialmente, la tecnología Java Card
define una plataforma segura, portable y multiaplicación, que incorpora muchas de las
ventajas del lenguaje Java.
3.3.2.2 Seguridad
La seguridad es uno de los asuntos más importantes cuando se trabaja con las
tarjetas inteligentes. El sistema de seguridad de Java, se ajusta bien al entorno de las
smart cards. Por ejemplo, el nivel de acceso a todos los métodos y variables está
estrictamente controlado y no hay manera de que los punteros habiliten programas
maliciosos que puedan fisgonear dentro de la memoria. Además los applets en la
plataforma Java Card están separados por el applet firewall. Así el sistema puede
protegerse contra aplicaciones hostiles que puedan dañar otras partes del sistema.
Una smart card puede contener múltiples applets, tales como programas de
monederos electrónicos, de autenticación y cuidados médicos, todos ellos de diferentes
proveedores. Esto es debido a que con el mecanismo de firewall de Java Card, los
applets no pueden acceder a otro a menos que se le permita hacerlo.
Una vez que se adquiere la tarjeta, se pueden descargar más applets a la tarjeta.
La funcionalidad de las tarjetas se puede mejorar continuamente, con applets nuevos o
actualizados, sin necesidad de adquirir una tarjeta diferente.
3.4 CONCLUSIONES
En este capítulo se ha mostrado lo que es una smart Card o tarjete inteligente. Se
han visto cuales son sus características hardware y cuales sus funcionalidades.