El crecimiento de las aplicaciones basadas en tarjetas inteligentes durante la pasada década de los 90 fue espectacular. Hoy en día la creciente demanda del comercio electrónico y sus necesidades en materia de seguridad prometen un gran futuro a corto y medio plazo para estos dispositivos. La tarjeta inteligente por sus cualidades puede convertirse en una de las piedras angulares (en el campo tecnológico) de la sociedad de la información. Además, con los continuos avances en microelectrónica es muy probable que el número de usos de estas tarjetas pueda pronto multiplicarse.
Este apartado tiene dos objetivos, describir y justificar la estructura de este tutorial explicando los objetivos globales e introducir al lector en el campo de las tarjetas inteligentes. El objetivo del tutorial es describir de forma instructiva qué son, cómo funcionan y para qué sirven las tarjetas inteligentes. Como se puede apreciar observando la extensión del mismo, esta descripción es muy superficial. La meta del autor es ayudar a quien no sabe nada a introducirse en éste mundo, bien sea porque estén interesados en profundizar en el tema posteriormente, bien porque quieran tener simplemente una idea de qué son y qué les pueden aportar estos dispositivos.
Para poder sacar provecho a este tutorial en toda su extensión son necesarios ciertos conocimientos en materia de tecnología de la información y de informática. Como el objetivo de los tutoriales que pretendo ir poniendo en mi página es divulgar más que formar, voy a intentar simplificar y explicar todo al máximo en esta introducción, para que aquellas personas que no dispongan de los conocimientos antes mencionados puedan satisfacer con creces toda su curiosidad. Deseo a estas personas que la lectura de esta introducción les sea del máximo provecho.
Este tutorial se dividirá fundamentalmente en dos partes. La primera de ellas, la más instructiva y es en la que realmente se introducirán las tarjetas inteligentes, qué son, cómo funcionan y para qué sirven. La segunda parte constituye un resumen de la norma ISO7816 que es la que regula las características físicas y funcionales que deben presentar este tipo de dispositivos.
La historia de las tarjetas inteligentes se remonta a 1950 cuando surgieron en Estados Unidos las primeras tarjetas plásticas. La primera tarjeta de plástico de pago que se extendió fue lanzada por Diners Club en esta fecha, pero fue con la entrada en este sector de VISA y Mastercard cuando realmente se produjo la gran expansión de esta tecnología, primero en Estados Unidos, luego en Europa y finalmente por el resto del mundo. Inicialmente la autenticidad de las tarjetas se basaba en la dificultad de reproducir su diseño (los gráficos impresos en la superficie y los textos estampados en relieve). El primer avance se produjo con la utilización de la banda magnética. Con ella no sólo se permitía la lectura de datos digitales por parte de las máquinas sino que dificulta aún más la falsificación de las mismas.
Existe mucha confusión con el término "tarjeta inteligente" ya que se suelen denominar con este nombre todas las tarjetas con contactos metálicos como pueden ser las tarjetas telefónicas convencionales. La ISO denomina a las tarjetas con contactos como "tarjetas de circuito integrado" (Integrated Circuit Cards, ICC). Pero no todas las ICC pueden considerarse como tarjetas inteligentes. De este modo vamos a proponer al lector que utilice el termino tarjetas de circuito integrado, ICC, o más coloquialmente tarjetas con chip.
El circuito integrado presente en muchas ICC, como las telefónicas, es simplemente una memoria EPROM serie. En otras palabras el chip contenido en la tarjeta sólamente sirve para almacenar datos. Además recordemos que el término EPROM significa que es una memoria que sólo se puede escribir una vez. Las tarjetas telefónicas por ejemplo, cuando están nuevas sólo tienen almacenado el número de serie y algunos datos más. Pero al final de la memoria existe una zona virgen rellena de unos ('1') que se van sobreescribiendo con ceros ('0') a medida que vamos consumiendo el crédito. Como la memoria no puede ser reescrita la tarjeta no puede ser reutilizada después de agotada.
Los datos almacenados en las tarjetas anteriores pueden ser leidos sin ningún tipo de restricciones, si bien pueden ser cifrados antes de ser escritos... pero esto ya es otro tema. Para situaciones en las que esto no sea aceptable existen tarjetas de memoria que aportan control de acceso mediante PIN (Personal Identification Number o simplemente Clave de Acceso), pero siguen siendo básicamente memorias.
Nosotros consideraremos tarjetas inteligentes, y proponemos al lector que restrinja el uso de este nombre para aquellas tarjetas que incorporen un microprocesador, coloquialmente conocidas como tarjetas microprogramadas. Al disponer de un microprocesador tienen capacidad de procesar de información, de ahí lo de inteligentes. Podemos imaginar que dentro llevan un pequeño ordenador. Aunque pueda parecer que es una exageración, nada más próximo a la realidad. Este tiepo de tarjetas son las utilizadas en GSM, y son de las tarjetas que vamos a hablar en este tutorial.
Existen además ICCs sin contactos que se comunican por radiofrecuencia, pero este es todavía un campo en investigación.
La idea detrás de las tarjetas inteligentes es que son pequeños computadores, fácilmente transportables cuya forma de actuar no puede ser modifica de ninguna manera, ni reproducida porque se desconocen datos secretos que ésta almacena en su interior y que no pueden ser deducidos a partir de su comportamiento. Esta idea es la que intentaremos argumentar a lo largo del trabajo.
Hablar de tarjetas inteligentes no es hablar sólo de tecnología. No es hablar de microelectrónica, ni de telemática, ni de criptografía. Hablar de tarjetas inteligentes es hablar, sobre todo, de las cosas que permiten hacer, de la cantidad de grandes aplicaciones que se pueden crear, utilizando como elemento de seguridad a una tarjeta inteligente. Televisión de pago, banca por internet, dinero electrónico (Visa Cash) son algunas aplicaciones que utilizan las tarjetas inteligentes como elementos de seguridad. Es evidente que la envergadura, tanto tecnológica como social, de estas aplicaciones supera con creces la simplicidad de los dispositivos que aquí tratamos. Las tarjetas inteligentes por tanto no son sólo tecnología, también tienen asociado un factor sociológico importante.
¿Qué es un transistor?. Si lo vemos como desde el punto de vista de la física diríamos que es un dispositivo semiconductor, creado generalmente a partir de un cristal de silicio que se dopa para modificar sus propiedades eléctricas. Diríamos que es un dispositivo que tiene tres terminales y cuyo comportamiento queda reflejado en un conjunto de gráficas características. Realmente esto es un transistor y existe una gran cantidad de literatura a cerca de todo ello, pero quizá el aspecto más importante de los transistores no son ni lo que son ni cómo funcionan, sino lo que se puede hacer con ellos -- entre las innumerables aplicaciones está la de ser la base de los circuitos integrados que hay dentro de las tarjetas inteligentes--. Este símil nos permite resaltar el hecho de que lo más importante de las tarjetas inteligentes no son los aspectos tecnológicos de su fabricación y funcionamiento, sino los relacionados con la enorme cantidad de aplicaciones que se pueden crear tomándolas como base.
Sin olvidar que estamos en la introducción vamos a retomar la evolución histórica de las tarjetas de plástico y vamos a ir profundizando un poco más en las prestaciones que aportan las tarjetas inteligentes. Pero antes de proceder hagamos un inciso y planteémosnos cuál es la necesidad de las tarjetas de plástico. No queremos ser catastrofistas pero tenemos que reconocer que el ser humano es susceptible de actuar de forma no-honesta. Por esta razón la anarquía es utópica, por esta razón se inventó la justicia, la policía, las cerraduras, las llaves, el dinero, etc. Las tarjetas surgieron como alternativa al dinero físico. En lugar de pagar con billetes y monedas directamente el usuario se identifica y el vendedor en lugar de cobrarle al usuario directamente cobra a través de una empresa que se dedica a este tipo de transacciones. La tarjeta sirve para que el usuario pueda demostrar que efectivamente tiene contratado dicha posibilidad con la empresa que emite la tarjeta. Pero como el ser humano no es ideal (como tampoco lo son las resistencias) existen ciertos individuos que se sienten impulsados a aprovecharse de este sistema de forma fraudulenta para lo cual intenta falsificar la tarjeta. Toda la evolución de las tarjetas en el fondo está impulsada por la necesidad de imposibilitar (o al menos dificultar todo lo posible) la falsificación de las tarjetas.
Inicialmente las tarjetas plásticas eran simplemente eso, unas tarjetas plásticas que estaban serigrafiadas con el logotipo de una cierta empresa e impresas con el nombre del propietario. La dificultad de la falsificación era la dificultad de reproducir la serigrafía de la tarjeta. Entonces surgió la idea de dotar de una banda magnética a las tarjetas. De este modo no sólo se conseguía dificultar más la falsificación sino que además se permitía almacenar datos en formato digital simplificando las operaciones de lectura de las mismas por los cajeros y los terminales de venta. Pero las bandas magnéticas tienen un problema, cualquiera puede leer y modificar la información que contienen si dispone de un lector/grabador. El hecho de que la estructura de las mismas esté estandarizada hace que la obtención de uno de estos dispositivos sea algo sencillo.
Otra variante posterior de las tarjetas magnéticas son las tarjetas de memoria, que almacenan los datos en la memoria contenida en el circuito integrado de su interior. La lectura de estos datos es bastante sencilla --aunque existen algunas a las que hay que suministrar un PIN para poderlas leer-- lo cual posibilita la creación fraudulenta de réplicas o emuladores. Las tarjetas de banda magnética y las de circuito integrado de memoria siguen siendo las más utilizadas en la actualidad.
Las tarjetas inteligentes son un paso más en el camino hacia la consecución del objetivo de imposibilitar la falsificación de las tarjetas, además de ofrecer otra serie de ventajas adicionales. La forma en que una tarjeta inteligente interactúa con el exterior está regulada por la norma ISO7816, lo que determina el funcionamiento del sistema operativo que se programa en su interior. Aun así es imposible falsificar una tarjeta inteligente si ésta está bien diseñada. Todo esto se basa en técnicas criptográficas. En general, si tuviésemos que destacar cuales son las principales utilidades de una tarjeta inteligente éstas serían las siguientes:
Todas estas utilidades serán descritas con mayor profundidad más adelante en este documento. La función más evidente es la de almacenar datos. Es lo que venían haciendo las tarjetas desde la aparición de las tarjetas con banda magnética. La tarjeta inteligente controla el acceso a dicha información. No toda la información es modificable ni legible y para poder acceder a la misma puede ser necesario el uso de códigos de seguridad (PIN). Existen técnicas de control de acceso mucho más potentes que un simple PIN disponibles. Además dada la estructuración de la información (regida por lo establecido en la norma ISO7186) una misma tarjeta puede dar soporte a múltiples aplicaciones Por ejemplo sería posible que un usuario tuviese una única tarjeta con la que podría interactuar con varias entidades bancarias, con las administraciones públicas, pagar en las cabinas telefónicas, etc.