Diferencia entre revisiones de «Tarjeta inteligente»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Logix16 (discusión · contribs.)
Logix16 (discusión · contribs.)
Deshecha la edición 30429022 de Logix16 (disc.)
Línea 119: Línea 119:




== Referencias de fabricantes de tarjetas y lectores ==
== Manufacturer == cards and readers
  * [Http: / / www.iris.com.my IRIS]
* [http://www.iris.com.my IRIS ]
  * [Http: / / www.sandisk.com Sandisk (Microelectronics)]
* [http://www.sandisk.com Sandisk (Microelectronica)]
  * [[Gemplus]]
* [[Gemplus]]
  * [[Schlumberger]]
* [[Schlumberger]]
  * [[Bull]]
* [[Bull]]
  * [[Oberthur]]
* [[Oberthur]]
  * [[Body]]
* [[Orga]]
  * [[Solaic]]
* [[Solaic]]
  * De La Rue ([[Philips]])
* De la Rue ([[Philips]])
  * Fabrica Nacional de Moneda y Timbre ([[Mint]])
* Fábrica Nacional de Moneda y Timbre ([[FNMT]])

  * [Http: / / www.cardlogix.com Cardlogix]
* [Http: / / www.c3po.es C3PO, SA]
* [http://www.c3po.es C3PO, S.A. ]
  * [A3M Auto-ID http://www.a3m.eu S.L. ]
* [http://www.a3m.eu A3M Auto-ID S.L. ]
  * [2000 S.L. Akrocard http://www.akrocard.com]
* [http://www.akrocard.com Akrocard 2000 S.L. ]


== Bibliografía de referencia ==
== Bibliografía de referencia ==

Revisión del 22:33 8 oct 2009

Archivo:Smartcard3.png
Tarjeta de crédito con microchip

Una tarjeta inteligente (smart card), o tarjeta con circuito integrado (TCI), es cualquier tarjeta del tamaño de un bolsillo con circuitos integrados que permiten la ejecución de cierta lógica programada. Aunque existe un diverso rango de aplicaciones, hay dos categorías principales de TCI. Las Tarjetas de memoria contienen sólo componentes de memoria no volátil y posiblemente alguna lógica de seguridad. Las tarjetas microprocesadoras contienen memoria y microprocesadores.

La percepción estándar de una tarjeta inteligente es una tarjeta microprocesadora de las dimensiones de una tarjeta de crédito (o más pequeña, como por ejemplo, tarjetas SIM o GSM) con varias propiedades especiales (ej. un procesador criptográfico seguro, sistema de archivos seguro, características legibles por humanos) y es capaz de proveer servicios de seguridad (ej. confidencialidad de la información en la memoria).

Las tarjetas no contienen baterías; la energía es suministrada por los lectores de tarjetas.

Aplicaciones comerciales

Las tres aplicaciones fundamentales de las tarjetas inteligentes son:

  • Identificación del titular de la misma.
  • Pago electrónico de bienes o servicios mediante dinero virtual.
  • Almacenamiento seguro de información asociada al titular.

Las aplicaciones de las tarjetas inteligentes incluyen su uso como tarjeta de crédito, SIM para telefonía móvil, tarjetas de autorización para televisión por pago, identificación de alta seguridad, tarjetas de control de acceso y como tarjetas de pago del transporte público.

Las tarjetas inteligentes también son muy utilizadas como un monedero electrónico. Estas aplicaciones disponen normalmente de un fichero protegido que almacena un contador de saldo y comandos para decrementar e incrementar el saldo (esto último sólo con unas claves de seguridad especiales, obviamente). Con esta aplicación, el chip de la tarjeta inteligente puede ser 'cargado' con dinero los que pueden ser utilizados en parquímetros, máquinas expendedoras u otros mercados. Protocolos criptográficos protegen el intercambio de dinero entre la tarjeta inteligente y la máquina receptora.

Cuando las tarjetas son criptográficas las posibilidades de identificación y autenticación se multiplican ya que se pueden almacenar de forma segura certificados digitales o características biométricas en ficheros protegidos dentro de la tarjeta de modo que estos elementos privados nunca salgan de la tarjeta y las operaciones de autenticación se realicen a través del propio chip criptográfico de la tarjeta.

De un modo más particular, las aplicaciones más habituales son:

  • Identificación digital: este tipo de aplicaciones se utilizan para validar la identidad del portador de la tarjeta en un sistema centralizado de gestión.
  • Control de acceso: este tipo de aplicaciones se utilizan para restringir o permitir el acceso a una determinada área en función de distintos parámetros que pueden estar grabados en la tarjeta o pueden ser recuperados de un sistema central de gestión a partir de la identidad grabada en la tarjeta. Este tipo de aplicaciones suelen estar ligadas a puertas o tornos automatizados que permiten/impiden el paso físico de una persona a una determinada área, si bien también tiene sentido este servicio en el ámbito de la autenticación en sistemas informáticos (webs, sistemas operativos, etc.). En este último caso, la frontera entre las aplicaciones de identificación y de control de acceso es difusa.
  • Monedero electrónico (Electronic Purse o Electronic Wallet (ePurse' y eWallet): esta aplicación se utiliza como dinero electrónico. Se puede cargar una cierta cantidad de dinero (en terminales autorizados que dispongan de las claves de seguridad oportunas) y luego, sobre esta cantidad de dinero se pueden realizar operaciones de débito o consulta de modo que puede ser utilizado para el pago o cobro de servicios o bienes.
  • Firma Digital: este tipo de aplicaciones permiten almacenar un certificado digital de forma segura dentro de la tarjeta y firmar con él documentos electrónicos sin que en ningún momento el certificado (y más concretamente su clave privada) salgan del almacenamiento seguro en el que están confinados. Con estas aplicaciones se abre todo un abanico de posibilidades en el campo de la Administración electrónica.
  • Fidelización de clientes: Este tipo de aplicación sirve a las empresas que ofrecen servicios o descuentos especiales para clientes que hacen uso de la tarjeta para poder validar la identidad del cliente, y para descentralizar la información. Suponiendo que se tiene un sistema de puntos acumulables canjeables por bienes o servicios, en el cual participan varias empresas, esto simplifica mucho el tratamiento de los datos, evitando tener que compartir una gran base de datos o tener que realizar réplicas de las distintas bases (los puntos se podrían guardar en la propia tarjeta).
  • Sistemas de Prepago: En estos sistemas, un cliente carga su tarjeta con una cierta cantidad de servicio su tarjeta, la cual va siendo decrementada a medida que el cliente hace uso del servicio. El servicio puede variar desde telefonía móvil hasta TV por cable, pasando por acceso a sitios web o transporte público.
  • Tarjetas sanitarias: En algunos hospitales y sistemas nacionales de salud ya se está implementando un sistema de identificación de pacientes y almacenamiento de los principales datos de la historia clínica de los mismos en tarjetas inteligentes para agilitar la atención. Actualmente la capacidad de almacenamiento es muy limitada, pero en un futuro quizás se podría almacenar toda la historia dentro de la tarjeta. Es el caso de la tarjeta ONA de Osakidetza, en el País Vasco.

Nótese, en cualquier caso, que todos estos servicios pueden ser derivados de los tres puntos planteados inicialmente (identificación, pago y almacenamiento seguro).

Estructura de una tarjeta inteligente microprocesada

Internamente, el chip de una tarjeta inteligente microprocesada se compone de:

  • CPU (Central Processing Unit): el procesador de la tarjeta; suelen ser de 8 bits, a 5 MHz y 5 voltios. Pueden tener opcionalmente módulos hardware para operaciones criptográficas.
  • ROM (Read-Only Memory): memoria interna (normalmente entre 12 y 30 KB) en la que se incrusta el sistema operativo de la tarjeta, las rutinas del protocolo de comunicaciones y los algoritmos de seguridad de alto nivel por software. Esta memoria, como su nombre indica, no se puede reescribir y se inicializa durante el proceso de fabricación (véase apartado siguiente).
  • EEPROM: memoria de almacenamiento (equivalente al disco duro en un ordenador personal) en el que está grabado el sistema de ficheros, los datos usados por las aplicaciones, claves de seguridad y las propias aplicaciones que se ejecutan en la tarjeta. El acceso a esta memoria está protegido a distintos niveles por el sistema operativo de la tarjeta.
  • RAM (Random Access Memory): memoria volátil de trabajo del procesador.

Proceso de fabricación

La fabricación de tarjetas inteligentes abarca normalmente los siguientes pasos:

  1. Fabricación del chip, o muchos chips en una oblea. Varios miles de chips de circuito integrado se fabrican a la vez en la forma de obleas de silicio con aproximadamente 3.000 a 4.000 unidades.
  2. Empaquetado de los chips individuales para su inserción en una tarjeta. Una vez que se termina una oblea, cada chip se prueba individualmente, se divide la oblea y se realizan las conexiones eléctricas del chip.
  3. Fabricación de la tarjeta. La tarjeta está compuesta de cloruro de polivinilo o de un material similar. Las características químicas y las dimensiones de la tarjeta y sus tolerancias son reguladas por estándares internacionales. El material de la tarjeta se produce en una hoja grande, plana del grosor prescrito. Para muchos tipos de tarjetas producidas en serie, estas hojas entonces se imprimen con los elementos gráficos comunes a todas las tarjetas. Las tarjetas individuales entonces se cortan de esta hoja plana y los bordes de cada tarjeta se lijan.
  4. Inserción de el chip en la tarjeta. Una vez que el chip y la tarjeta estén preparados, los dos se unen: se hace un agujero en la tarjeta, y el chip se pega en él con pegamento.
  5. Pre-personalización. Una vez la tarjeta está completa, la mayoría de los usos inteligentes de la misma requieren que ciertos ficheros de los programas o de datos estén instalados en cada chip (tarjeta) antes de que la tarjeta se pueda personalizar para un titular específico. Esta preparación general del software o de los archivos en la tarjeta se hace con una operación llamada la pre-personalización, que se hace a través de los contactos del chip y por lo tanto puede proceder solamente a la velocidad proporcionada por esa interfaz.
  6. Personalización. El procedimiento de la personalización implica el poner de la información tal como nombres, perfiles o números de cuenta en la tarjeta; a partir de la realización de este proceso la tarjeta está asignada a una persona en particular. Normalmente esta personalización será gráfica (estampando o troquelando datos personales del titular sobre la superficie plástica de la tarjeta) y/o eléctrica (grabando información personal del titular en algún fichero de la tarjeta).


Seguridad

La seguridad es una de las propiedades más importantes de las tarjetas inteligentes y se aplica a múltiples niveles y con distintos mecanismos. Cada fichero lleva asociadas unas condiciones de acceso y deben ser satisfechas antes de ejecutar un comando sobre ese fichero.

En el momento de personalización de la tarjeta (durante su fabricación) se puede indicar qué mecanismos de seguridad se aplican a los ficheros. Normalmente se definirán:

  • Ficheros de acceso libre
  • Ficheros protegidos por claves: Pueden definirse varias claves con distintos propósitos. Normalmente se definen claves para proteger la escritura de algunos ficheros y claves específicas para los comandos de consumo y carga de las aplicaciones de monedero electrónico. De ese modo la aplicación que intente ejecutar comandos sobre ficheros protegidos tendrá que negociar previamente con la tarjeta la clave oportuna.
  • Ficheros protegidos por PIN: El PIN es un número secreto que va almacenado en un fichero protegido y que es solicitado al usuario para acceder a este tipo de ficheros protegidos. Cuando el usuario lo introduce y el programa se lo pasa a la operación que va a abrir el fichero en cuestión el sistema valida que el PIN sea correcto para dar acceso al fichero.

Finalmente, indicar que la negociación de claves se realiza habitualmente apoyándose en un Módulo SAM, que no deja de ser otra tarjeta inteligente en formato ID-000 alojada en un lector interno propio dentro de la carcasa del lector principal o del TPV y que contiene aplicaciones criptográficas que permiten negociar las claves oportunas con la tarjeta inteligente del usuario. Operando de este modo se está autenticando el lector, la tarjeta y el módulo SAM involucrados en cada operación.


Modelos de programación

Al aproximarse a la programación de tarjetas inteligentes hay que distinguir dos ámbitos claramente diferenciados:

  • Programación de aplicaciones para el chip de la tarjeta, es decir, de aplicaciones que se almacenan y ejecutan dentro del chip de la tarjeta cuando ésta recibe alimentación eléctrica de un lector.
  • Programación de aplicaciones para los sistemas en los que se utiliza la tarjeta, esto es, aplicaciones que se ejecutan en ordenadores (en un sentido genérico, ya que pueden ser TPVs empotrados, cajeros automáticos, PCs de escritorio, etc.) a los que se conecta un lector de tarjetas en el que se inserta (o aproxima si es un lector sin contactos) una tarjeta inteligente. Estas aplicaciones se comunican con el lector, el cual se comunica con la tarjeta y sus aplicaciones.


Programación de aplicaciones para el chip de la tarjeta

Este tipo de programación es de muy bajo nivel y depende normalmente del tipo y proceso de fabricación de las propias tarjetas. En la mayoría de las tarjetas inteligentes el sistema operativo de la tarjeta y las aplicaciones que van dentro del chip se cargan en el propio proceso de fabricación y no pueden ser luego modificadas una vez que la tarjeta ha sido fabricada.

Una excepción clara a este caso pueden ser las Java Cards, que son tarjetas que en el proceso de fabricación incorporan un sistema operativo y una máquina virtual Java específica para este entorno. Una vez fabricada la tarjeta, los desarrolladores pueden implementar mini-aplicaciones (applets) Java para ser cargadas en la tarjeta (mediante un procedimiento que garantice la seguridad del sistema).


Programación de aplicaciones para los sistemas en los que se utiliza la tarjeta

Existen varias APIs de programación estandarizadas para comunicarse con los lectores de tarjetas inteligentes desde un ordenador. Las principales son:

  • PC/SC (Personal Computer/Smart Card), especificado por el PC/SC Workgroup. Existe una implementación para Microsoft Windows y también el proyecto MUSCLE [1] proporciona una implementación casi completa de esta especificación para los sistemas operativos GNU Linux-UNIX.
  • OCF (OpenCard Framework), especificado por el grupo de empresas OpenCard. Este entorno intenta proporcionar un diseño orientado a objetos fácilmente extensible y modular. El consorcio OpenCard publica el API y proporciona una implementación de referencia en Java. Existe un adaptador para que OCF trabaje sobre PC/SC.

En ambos casos, el modelo de programación que utilizan las tarjetas inteligentes está basado en protocolos de petición-respuesta. La tarjeta (su software) expone una serie de comandos que pueden ser invocados. Estos comandos interactúan con los ficheros que subyacen a cada aplicación de la tarjeta y proporcionan un resultado. Desde el terminal se invocan estos comandos a través de cualquiera de las APIs antes descritas componiendo APDUs (Application Protocol Data Unit - comandos con parámetros) que son enviados a la tarjeta para que ésta responda.





Referencias de fabricantes de tarjetas y lectores

Bibliografía de referencia

  • Smart Card Application Development Using Java [2]
  • Programmazione Delle Smart Card [3]
  • Smart Card Handbook [4]
  • Smat Card Developers Kit [5]


Véase también

Enlaces externos