Una
Smart-Card no es mas que una tarjeta plástica a la que se le han
incorporado diversos componentes electrónicos tales como:
-
Circuitos
diseñados para tareas especificas (Lógica cableada).
-
Memoria
para almacenar información.
-
Un
procesador para procesar datos, que pueden
o no estar en la tarjeta.
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:
-
Tarjetas
con
contactos.
-
Tarjetas
sin
contactos.
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:
-
Confidencialidad
-
Autenticación
del usuario
-
Autenticación
de la aplicación o del terminal
-
Autenticación
de una transacción
-
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.