SMARTCARDS
Una Smart-Card no es mas que una tarjeta plástica a la que se le han incorporado diversos componentes electrónicos tales como:
Dependiendo de la funcionalidad que se le pretenda dar a la tarjeta, se emplearan unos dispositivos u otros, así por ejemplo podremos encontrar tarjetas que dispongan únicamente de un circuito lógico diseñado específicamente para servir de identificación en una determinada empresa por ejemplo.
También podremos encontrar tarjetas que dispongan de una memoria, en este caso nos encontramos con las tarjetas telefónicas que nos permiten realizar llamadas desde cabinas preparadas para leer este tipo de tarjetas, normalmente la memoria contenida en estas tarjetas es de un solo uso de forma que una vez modificado el valor que contenía este ya no puede ser modificado.
En último caso nos encontramos las tarjetas con procesador, que normalmente también suelen incluir una memoria para almacenar cierta información, este tipo de tarjetas son especialmente idóneas para emplearse en el sector bancario ya que permiten un nivel de seguridad muy superior que los dos modelos de tarjetas anteriormente mencionados.
La gente suele hablar de “tarjetas inteligentes” en lugar de Smart-Cards pero realmente este calificativo de tarjetas inteligentes solo tiene realmente sentido cuando hablamos de las tarjetas con procesador ya que son las únicas capaces de tratar la información, de hecho estas tarjetas tienen un funcionamiento similar al de un ordenador personal, ya que disponen de memoria, un procesador para tratar la información y ejecutar aplicaciones almacenados en la memoria, un bus de datos para realizar las operaciones de E/S, e incluso de un sistema operativo propio que facilita la gestión de las tarjetas, eso sí, con la ventaja de ser totalmente portables.
Aunque algunas de estas tarjetas son totalmente independientes, la mayoría necesitan de un dispositivo con el que interactuar, este dispositivo encargado de interactuar con la tarjeta se denomina terminal, en el caso de las tarjetas GSM el terminal es el propio teléfono móvil.

Las Smart-Cards también pueden clasificarse según el método empleado para comunicarse con el terminal, en:

Las tarjetas con contactos son las más comunes y sus usos son muy diversos, tales como tarjetas telefónica, tarjetas GSM para telefonía móvil, tarjetas de crédito etc...
Según los estándares ISO definidos para las Smart-Cards, las tarjetas con contactos disponen de 8 contactos agrupados en 4 filas, cada uno de estos contactos tiene una determinada función, como muestra el siguiente gráfico.

Las Smart-Cards sin contactos suelen realizar la comunicación con el terminal a través del acoplamiento inductivo, este método se basa en las propiedades electromagnéticas de las bobinas, a través de este método, es el terminal el que suministra la energía necesaria para la comunicación.

Existen otros métodos para establecer la comunicación entre este tipo de tarjetas y el terminal, pero este es el más empleado debido a las características físicas de las tarjetas.

A causa de los graves problemas de seguridad que han dejado de manifiesto los robos mediante las tarjetas magnéticas, el uso de tarjetas inteligentes se ha extendido muy rápidamente dado el gran interés que muestran las entidades bancarias al respecto.

Las tarjetas con procesador son actualmente muy empleadas como tarjetas de crédito o monedero electrónico, aunque también se ha extendido su uso a ámbitos en los que es necesario un control exhaustivo de la identidad y donde la seguridad es un elemento fundamental.

Además del procesador estas tarjetas incorporan unas zonas de memoria donde almacenar datos. El tipo de memoria empleado para almacenar datos suele ser EEPROM, ya que esta memoria permite que los datos se queden almacenados en ella aunque la memoria no esté alimentada por una corriente externa.

Sin embargo este tipo de memoria sufre una limitación importante en cuanto a la cantidad de veces que se puede escribir en ella, lo que lleva a pensar en la inclusión de otros tipos de memorias que no tengan este problema para realizar las operaciones mas comunes que no necesiten de un almacenamiento permanente.

La EEPROM necesita de una tensión de 17 voltios para poder realizar las operaciones, tanto de lectura como de escritura, debido a esto las tarjetas incluyen un circuito llamado “charge pump”, que les permite conseguir esta tensión aunque el voltaje suministrado a las tarjeta sea inferior. Anteriormente esta tensión era suministrada a la tarjeta por el terminal, a través del contacto 6 de la tarjeta aunque actualmente está en desuso.

Debido al problema que supone el aprovechamiento de la vida útil de la EEPROM, y a que el tiempo de acceso a los datos en esta memoria es bastante alto para este tipo de dispositivos, esta memoria se emplea a modo de Disco Duro donde se almacena generalmente información relevante, de igual modo, se emplean las memorias volátiles que generalmente son más rápidas, para realizar las operaciones necesarias y almacenar información de forma temporal.

El origen de las Smart-Cards se fundamenta en funciones de seguridad, así que muchas aplicaciones de estas tarjetas están relacionadas directamente con aspectos de seguridad. Respecto a estos aspectos, estas tarjetas cuentan con muchos elementos que hacen que su falsificación o modificación sea realmente compleja, a continuación se detallan algunos de los sistemas de protección incluidos en este tipo de tarjetas así como sistemas de autenticación tanto del usuario como del propio terminal.

MECANISMOS DE PROTECCIÓN

Los mecanismos de protección de las smart-cards se pueden ser vía software o vía hardware.

PROTECCIÓN SOFTWARE

Los principales mecanismos de protección software están relacionados con el sistema operativo de la tarjeta. Ya que la mayoría de estas protecciones pretenden evitar el acceso a información en la EEPROM de la tarjeta.
El mecanismos de protección mas elemental de una smart-card es la utilización de un código o (PIN) que “teóricamente” solo el dueño de la tarjeta conoce, este número consta de 4 cifras para facilitar que el usuario pueda memorizarlo, además el número de reintentos en caso de que el usuario se equivoque al introducir el número está limitado, de modo que si la tarjeta cae en malas manos, si se intenta averiguar el PIN mediante el método de prueba y fallo la tarjeta se bloquea automáticamente.
Las tarjetas pueden contener archivos de aplicaciones que pueden ser ejecutados, esta funcionalidad puede permitir la aparición de “caballos de Troya” que accedan al contenido de la tarjeta. Para evitar que estos programas accedan a zonas de memoria que no les pertenecen se incluye en las tarjetas un sistema de gestión de memoria rudimentario que impide que la aplicación acceda a otra zona de memoria que no tiene asignada.
Existen técnicas de protección llamadas técnicas de control de I/O mediante los que se intenta evitar que el dialogo entre la tarjeta y el terminal sea manipulado de alguna forma. Para ello se emplea el Gestor de Transporte que se encarga de verificar que el dialogo es válido.

El incremento de consumo por parte de la tarjeta cuando se desea acceder a la EEPROM es detectable mediante la inclusión de una simple resistencia sobre el contacto de alimentación de la tarjeta. Sabiendo esta información seria posible averiguar cuando la tarjeta está accediendo a la memoria para modificar el contador de Errores en la introducción del PIN y podría ser bloqueada antes de que modificara este valor, de esta forma se podrían hacer infinidad de intentos para conseguir el PIN, esto se puede evitar modificando el valor del contador antes de comprobar el PIN y incrementarlo de nuevo una vez ha sido verificado.

PROTECCIÓN HARDWARE

Los mecanismos de protección hardware pretenden impedir que la tarjeta pueda ser analizada e impedir a su vez que se tenga acceso a la información “segura” de la tarjeta.
Son mecanismos estandarizados en este tipo de tarjetas y su uso aumenta la confianza que se deposita en este tipo de dispositivos. Los mecanismos de protección hardware pueden ser activos o pasivos, dependiendo de si es necesario que la tarjeta esté alimentada o no.
En el caso de los métodos pasivos, se pretende evitar que una manipulación externa de la tarjeta pueda revelar los secretos que esta contiene.
Una protección de este tipo pretende evitar que el procesador de la tarjeta pueda pasar a un modo de test en el que se puede acceder a toda la memoria EEPROM sin problemas, para que esto no pase, el paso del procesador a modo test se controla a través de un fusible en la tarjeta, este fusible se funde una vez se ha comprobado durante el proceso de fabricación que la tarjeta está en buenas condiciones, el problema es que este fusible “teóricamente” puede cortocircuitarse, para evitarlo se incluye un mecanismo (una especie de fusible lógico) en la memoria EEPROM que evita que el procesador pase a modo de test, como no es posible acceder a la EEPROM sin eliminar ambas comprobaciones, no es posible acceder mediante este ataque a la memoria EEPROM de la tarjeta.
En el caso de los métodos activos, se dota a la tarjeta de sensores que detectan cualquier cambio en el estado de la tarjeta causado por una manipulación externa.

En este sentido los circuitos suelen recubrirse con una capa de un material que los protege de la oxidación pero a su vez esta capa es controlada por unos sensores que verifican la resistencia que genera esta capa, de modo que si esta capa es retirada el procesador se bloquea automáticamente.

También se incluyen mecanismos de control de la frecuencia de reloj del procesador y mecanismos de regulación de la tensión para evitar que se pueda realizar un análisis pormenorizado de la tarjeta incluyendo su consumo, ya que de este modo se podría predecir su funcionamiento.

SEGURIDAD DE LA INFORMACIÓN Y DE LA COMUNICACIÓN

Los objetivo de cualquier aplicación de seguridad pueden ser los siguientes:
  1. Confidencialidad
  2. Autenticación del usuario
  3. Autenticación de la aplicación o del terminal
  4. Autenticación de una transacción
  5. No-Repudio
Para conseguir estos objetivos es necesario que las Smart-Cards sean capaces de cifrar información, pero estas operaciones suelen tener un coste temporal muy alto, así que se suelen incluir elementos que ayuden a resolver este tipo de problemas tales como Coprocesadores o circuiteria especifica para cifrar información.
Los algoritmos empleados por lar tarjetas para cifrar información pueden ser simétricos (se emplea una única clave en la comunicación) o asimétricos también llamados de llave pública (donde en el proceso intervienen 2 llaves, una pública a la que tiene acceso cualquiera, y otra privada que permanece oculta). El uso de elementos que ayuden a realizar estas operaciones es aun más necesario cuando los algoritmos empleados para cifrar son asimétricos ya que el coste de estos algoritmos es muy superior a los de clave simétrica.
El algoritmo simétrico mas empleado suele ser el DES o 3DES en su forma CBC y en el caso de los algoritmos asimétricos o de llave pública existen muchos algoritmos de este tipo pero los más empleados suelen ser el Rivest Shamir Adleman (RSA) o el Elliptic Curve Cryptography (ECC) pero la elección del algoritmo depende mucho del nivel de seguridad deseado.
Para emplear métodos simétricos de cifrado, tanto el terminal como la tarjeta necesitan saber la clave que se está empleando en la comunicación y por este motivo este método empleado tal cual sufre un gran problema ya que algún intruso podría apoderarse de la clave empleada por el terminal y tendría acceso a todo el sistema.
Los algoritmos asimétricos no sufren este problema ya que el emisor emplea la clave pública para cifrar información que solo podrá descifrar el receptor con su llave privada y esta llave privada siempre permanece oculta y en muchas ocasiones cifrada con un algoritmo simétrico de clave privada como el 3DES.

A causa de estos problemas de seguridad empleando algoritmos simétricos o de clave privada, resulta más interesante emplear algoritmos asimétricos, pero como anteriormente se comentaba estos algoritmos son muy lentos debido a que se basan en operaciones matemáticas muy costosas, lo que nos hace pensar en una alternativa. La alternativa seria emplear conjuntamente ambos métodos de cifrado, tanto simétrico como asimétrico.

Para esto, primero se realizaría un método de autentificación mediante los algoritmos asimétricos y posteriormente se continuaría la comunicación cifrada mediante algoritmos simétricos.

Dependiendo de cómo se empleen los algoritmos asimétricos o de llave pública, se pueden conseguir diferentes objetivos.

Mediante el método de las Firmas Digitales, se consigue determinar la autenticidad de una información. Para realizar esta operación, el emisor debe adjuntar la firma a la información que desea enviar, para ello deberá calcular la firma, que no es mas que aplicar una función de resumen a la información original que se desea enviar y posteriormente cifrar este pequeño resumen con la llave privada del emisor.

El resumen obtenido debe cumplir la propiedad de que su tamaño no varia en función del mensaje original sino que siempre es el mismo, con lo cual el tiempo que se tarda en cifrarlo no depende del tamaño del mensaje original. 

Proceso de Firma Digital

El receptor para recuperar la información deberá calcular el resumen del mensaje y emplear la llave pública del emisor para comprobar que el resumen es el correcto.

Cuando además de asegurar la autenticidad pretendemos asegurar la seguridad del mensaje el emisor deberá cifrar el mensaje original una vez firmado con la llave pública del receptor. En este caso el receptor deberá descifrar la información con su llave privada para obtener el mensaje original y la firma.

El coste de establecer una comunicación cifrada mediante algoritmos asimétricos es demasiado alto, lo que nos lleva a emplearlos únicamente en el proceso de autenticación, es decir, el emisor genera un numero aleatorio y cifra con ese número el mensaje que desea enviar mediante un algoritmo simétrico (a este número se le denomina llave de sesión), cifra posteriormente ese número con la llave pública del receptor mediante un algoritmo asimétrico y envía los 2 paquetes juntos al receptor. Cuando el receptor recibe el paquete, utiliza su llave privada para recuperar la llave de sesión, posteriormente utiliza esa llave para descifrar el mensaje adjunto. Al número aleatorio se le denomina llave de sesión porque solo se emplea durante esta comunicación, luego se descarta.

A este método se le denomina Sobre digital.

Comunicación mediante Sobre Digital

 

IDENTIFICACIÓN DEL USUARIO

Los métodos de identificación de usuario pueden ser muy diversos, pero el principal es el de identificación mediante la introducción del PIN, esto requiere que el usuario memorice este código numérico y además es susceptible de ser robado. Existen diversas técnicas que permiten que la identificación del usuario se realice a través de métodos biométricos, estos métodos consisten en almacenar una cierta cantidad de información en la tarjeta referente a características bien sean fisiológicas o del comportamiento que sean únicas para cada usuario, de este modo los usuarios no tienen que memorizar la clave, ya que esta ya no es necesaria para realizar el proceso de identificación.
Algunos de los métodos biométricos serian la identificación por las características de la retina del usuario, o por su geometría de la mano.
El principal problema de estos métodos a la hora de ser implantados es el alto coste de algunos de los dispositivos de medición, aunque también es importante señalar que no todos los métodos biométricos gozan de una gran aceptación entre el público, además estos métodos necesitan de un tiempo de procesamiento de datos bastante elevado lo que también dificulta su implantación en determinadas aplicaciones.