Una de las principales
ventajas de este tipo de tarjetas frente a otras es el nivel de seguridad
que pueden alcanzar. Para conseguir esta seguridad es necesario establecer
mecanismos de protección desde dos enfoques:
A continuación se describen
los planteamientos de ambos enfoques.
3.1. Seguridad Hardware.
Para proteger el
microprocesador de una tarjeta inteligente existen métodos de dos clases:
-
Soluciones pasivas.
No es necesario que la tarjeta este alimentada. Estas soluciones intentan
proteger los elementos de la tarjeta de un análisis externo y para
conseguirlo el proceso de fabricación es fundamental.
-
Soluciones activas.
Se necesita la alimentación de la tarjeta. Se basan en la incorporación de
una serie de sensores activos que detectan ataques externos específicos.
Ataques y mecanismos de protección pasivos.
El objetivo de este tipo de ataques es la
memoria EEPROM, donde se encuentra toda la información. La lectura de la
memoria permite, por ejemplo, leer el PIN (Personal Identification Number)
cifrado y descifrarlo utilizando la función de cifrado que también hay en
memoria. Veamos algunas opciones para llevar a cabo estos ataques:
-
Cambio de estado de la
tarjeta.
Si el microprocesador pasa a modo test, utilizado en el proceso de
fabricación, se permite el acceso a toda el memoria EEPROM sin ningún
control. Para impedir el paso a modo test de modo inapropiado se utilizan 2
fusibles:
-
fusible físico. Fundido en la última etapa del proceso de fabricación.
Este fusible es el que realmente permite el paso a modo test y teóricamente
puede ser cortocircuitado.
-
fusible lógico. Por esto aparece una zona en la EEPROM que permite
complementar la tarea del fusible. Esta zona de la EEPROM funciona como un
fusible lógico.
Para acceder a la memoria es necesaria la desactivación de ambos fusibles y
como el lógico se encuentra en la propia EEPROM se bloquea el paso a modo
test del microprocesador.
-
Acceso directo a la memoria.
Básicamente se puede hacer de 2 maneras:
-
Extrayendo la superficie de silicio. Lo cual requiere maniobrar
con gran delicadeza para evitar romper el circuito. La actual escala de
integración imposibilita un ataque directo sobre los bits de la memoria.
-
Accediendo directamente a las pistas. El acceso a las pistas que
conectan los componentes de la tarjeta permite leer ROM y EEPROM sin
necesidad de alimentación. Las técnicas micromecánicas que posibilitan este
ataque están poco desarrolladas, por lo tanto es poco probable.
También existe la posibilidad de leer el
contenido de la memoria ROM utilizando un microscopio óptico. Para evitar
este riesgo la memoria ROM no se encuentra en la capa superior del circuito.
-
Generación de números
aleatorios.
La utilización de números aleatorios es básica para establecer
mecanismos de autentificación entre la tarjeta y el y terminal. Se trata de
conseguir la individualización de un diálogo entre una tarjeta y un
terminal. Posibles ataques son:
-
Forzar a la tarjeta a generar una secuencia de números
suficientemente grande que llegue a ser predecible. Para solucionar esto el
generador de números aleatorios posee un periodo mayor que la longevidad de
la tarjeta.
-
También es posible bloquear el generador de números
aleatorios para que siempre genere el mismo número.
Ataques y mecanismos de protección activos.
Existen la posibilidad de incorporar varios sensores
activos a una tarjeta inteligente, algunos de los más destacados son:
-
Sensor de la envoltura.
Los circuitos suelen poseer un recubrimiento de una envoltura de material
pasivo para protegerlos contra oxidación u otros procesos químicos. Para
manipular el circuito es necesario retirar la envoltura. Y esta se
encuentra controlada por un sensor capaz de bloquear el circuito si
detecta que la envoltura no está.
-
Regulador de la tensión.
Con el fin de asegurar que los voltajes son los adecuados, ya que si se
superan los límites se podría cambiar el valor de ciertas zonas como el
contador de programa y originar un funcionamiento aleatorio.
-
Regulador de la frecuencia de reloj.
Con este sensor se impide una frecuencia de reloj inadecuada que
podría permitir un detallado análisis del funcionamiento de la tarjeta.
El circuito definitivo depende en gran medida del campo
de aplicación.
3.2. Seguridad Software.
En este nivel de seguridad se hace referencia a los mecanismos utilizados
por la tarjeta para imposibilitar un acceso a la memoria no deseado.
Una posible clasificación de los ataques más comunes es la siguiente :
-
Funcionamiento interno.
El hecho de que las nuevas tarjetas inteligentes permitan incluir
código objeto en la memoria EEPROM para el desarrollo de tareas
específicas de una aplicación hace que se puedan incluir "caballos de Troya" que
modifiquen el contenido de la tarjeta.
Dos posibles soluciones son:
-
Código de detección de errores.
Las zonas con información de uso reservado para el sistema operativo se
protegen por un código de detección de errores. Si se modifica el valor de
algunas de estas zonas sin la correspondiente actualización del código,
esto es fácilmente detectable calculando el código de la zona.
-
Encapsulando la memoria.
La encapsulación de la memoria accesible por una aplicación hace que el
acceso a cualquier otra zona de memoria sea detectado e impedido por el
gestor de ficheros.
-
Manipulación del diálogo.
La tarjeta se comunica con el mundo exterior a través de uno de sus
contactos, el contacto I/O. Si se pudiera alterar el flujo de datos se
podrían introducir ordenes que alteraran el contenido de la memoria.
Para solucionar esto se suelen utilizar técnicas de Control de I/O,
que están formadas por diferente elementos del sistema operativo, donde
destaca el Gestor de Transporte que se encarga de la verificación
de que el diálogo entre el terminal y la tarjeta es válido.
- Emulación de la tarjeta o del terminal.
Un posible ataque consiste en emular alguno de los elementos del diálogo.
-
Emulación de la tarjeta.
De esta manera se pueden conocer las operaciones que solicita el terminal
y por lo tanto analizarlas para posteriormente realizar una tarjeta que
responde a estas ordenes.
Este problema desaparece en el proceso de autentificación ya que la
tarjeta sabe responder al terminal pero no conoce las claves relativas a
dicho proceso.
-
Emulación del terminal.
Permite verificar el juego de instrucciones de la tarjeta, conocer el
rango válido de los parámetros y otras instrucciones no documentadas.
También se pueden deducir claves relativas al proceso de autentificación
mediante el control del coste temporal del descifrado del mensaje.
Esto se evita implementando los procesos de descifrado de tal forma que el
coste es independiente de la clave y el mensaje. Como complemento se puede
añadir también un contador que controle el número de errores en la
autentificación.
- Seguridad de las aplicaciones.
El sistema de protección que lleva a cabo el sistema operativo contra
ataques externos puede ser insuficiente, por esto es necesario definir
otro tipo de seguridad al nivel de la aplicación. Las medidas de seguridad
más utilizadas a nivel de aplicación son:
-
Utilizar un conjunto de tarjetas cuyo número de serie
sea único.
-
Incluir ficheros de protocolo asociados a las
aplicaciones en el que aparezcan las incidencias asociadas a una sesión.
Así se mantiene la integridad de la información de almacenada en la
tarjeta.
-
El cifrado de la información es un elemento básico que
debe usarse en la transmisión de claves y el proceso de autentificación
pero con limitaciones, ya que un uso abusivo puede ralentizar el
funcionamiento de la tarjeta.
3.3. Identificación del Usuario.
Los métodos más usuales de identificación entre personas suelen recurrir a
la incorporación de una foto y/o una firma sobre una tarjeta. En el ámbito
de la tecnología no existe una persona que identifique por lo tanto se
requieren otras técnicas para resolver dicho problema. Algunas de las
técnicas más utilizadas son las siguientes:
-
Memorización de información.
El número personal de identificación ó PIN permite identificar al usuario
pero no hay ningún control sobre el terminal en el que se introduce.
Esto se ha resuelto mediante el proceso de autentificación. Una posible
implementación sería la siguiente:
-
El usuario guarda un código
secreto en un fichero de la tarjeta.
-
Al introducirse en el
terminal se desarrolla la autentificación.
-
Posteriormente el terminal
accede al fichero donde se encuentra el código secreto y lo visualiza.
-
Cuando el usuario observa el
código en la pantalla del terminal lo reconoce como válido e introduce el
PIN.
-
Métodos biométricos.
Estos métodos permiten al usuario que no tenga que memorizar ningún
número pero también presentan varios inconvenientes:
-
Alto coste computacional.
Para resolver esto es necesario mejorar las prestaciones del terminal, que se
encarga del procesamiento adecuado de la señal.
-
Menor seguridad en la medida.
Si se quiere mejorar la seguridad deben mejorarse las técnicas actuales para
mejorar el nivel de certeza.
Los procesos de medida por definición presentan cierta incertidumbre
inherente que debe considerarse. La incertidumbre es proporcional a la
complejidad del proceso de medida, y en el caso de la medición de las
características humanas suele ser bastante alta.
La solución se basa en la toma de varias mediciones a partir de las cuales
obtener un valor de referencia. Posteriormente se produce la
identificación comparando una medida con el valor de referencia. En
dicha comparación se admiten como correctas las medidas con un cierto nivel
del error debido a la incertidumbre de la medida. Por lo tanto es necesario
definir un umbral que en la mayoría de casos es ajustable.
-
Aceptación del usuario.
La aceptación por parte del usuario es uno de los problemas básicos en los
métodos biométricos. Se deben utilizar métodos que incluyan el consentimiento
expreso por parte del usuario.
Las técnicas biométricas se fundamentan en la utilización de una
característica biológica que debe cumplir con las siguientes condiciones:
-
Identificar de modo único a una persona.
-
Su falsificación resulta imposible.
-
El envejecimiento de la persona no modifica su valor
-
Su evaluación es viable, en el coste computacional y monetario.
-
La cantidad de datos generados no debe sobrepasar los pocos cientos de
bytes.
-
El método y la característica seleccionados serán adecuados para
usuarios futuros.
Las características biológicas se pueden agrupar en:
-
Características Fisiológicas.
Son las relacionadas con el cuerpo humano y no se corresponden a un patrón
de comportamiento consciente. Algunas de las posibles características son:
Características faciales.
La imagen de la cara de una persona puede variar pero aún así puede ser
válida como característica identificativa si se utilizan técnicas
específicas (como redes neuronales) y ordenadores de altas prestaciones para
el procesamiento de la imagen. Puede demostrarse que la fotografía de una
persona puede generar parámetros que la identifiquen de modo único. A pesar
de todo, en la actualidad su uso no está muy extendido debido a que las
técnicas todavía no son lo suficientemente seguras.
Características de la retina.
La estructura de vasos sanguíneos de la retina es única para cada
persona. Puede medirse incidiendo un rayo infrarrojo sobre la retina y
midiendo la radiación reflejada con una cámara específica. El método es muy
fiable pero cuenta con poca aceptación y además la utilización de lentes de
contacto modifica los valores de la medida obtenida.
Utilización de iris.
Al igual que ocurre con la retina es una medida única y por tanto muy
válida. Presenta una mayor aceptación que la anterior porque permite medir a
mayor distancia, pero al igual que antes la utilización de lentes de
contacto modifica el resultado obtenido.
Geometría de la mano.
Se obtiene una medida única para cada persona realizando mediciones de
diferentes características tridimensionales de la mano. Con apenas 5 medidas
es suficiente para obtener un identificador único. Esto hace que el
procesamiento de las medidas sea sencillo y rápido. Debido a la sencillez
del método su aceptación es muy elevada.
Huellas digitales.
Su uso está muy extendido en varios campos, de hecho es una de las
características más utilizadas. El aparato de medida consta de un lector
óptico que graba la huella y una serie de sensores que aumentan la
fiabilidad. Un ejemplo de sensor puede ser el de temperatura y de pulso que
evita la identificación válida de dedos amputados. La aceptación del método
es muy alta a pesar de presentar cierto rechazo por su uso en el ámbito
policial.
-
Características de Comportamiento.
Se refieren al comportamiento consciente y por tanto pueden variar dentro
unos límites. Esta variación debe considerarse al desarrollar la técnica
para poder identificar a la persona aún cuando se han producido ciertos
cambios. Se consideran las siguientes características:
Ritmo de escritura.
Se basa en el hecho de que cada persona escribe de modo distinto sobre un
teclado. La diferencia fundamental se encuentra en las pausas producidas
cuando se presionan diferentes teclas. La utilización de esta técnica no
requiere modificar el hardware del terminal, tan solo es necesario que el
usuario introduzca una cadena y el terminal mide las pausas.
Características de la voz.
La voz humana es un sonido que puede ser tratado como una señal y aplicarle
un análisis de Fourier. El resultado de este análisis es un espectro
característico para cada persona que se puede almacenar en la tarjeta para
una posterior identificación. Esta es una técnica con un nivel de aceptación
muy alto por parte del usuario, a pesar de ello si se quiere corresponder
con esta aceptación y ser ampliamente utilizada todavía deben mejorarse
ciertos aspectos.
Firma Dinámica.
Para poder utilizar la firma como medio de identificación son necesarios
ciertos elementos en el terminal como lápices especiales o plantillas
sensitivas para medir aspectos tales como la forma de la firma, la velocidad
y la aceleración de la escritura, la presión ejercida sobre la plantilla o
el tiempo de realización de la firma. La técnica consiste, igual que en el
caso anterior, en almacenar ciertos valores de referencia en la tarjeta que
se comparan con los obtenidos en el proceso de identificación.
3.4. Autentificación.
Este proceso se refiere a la
identificación de la tarjeta o del terminal, y se fundamenta en un
intercambio de información entre ambos. La clasificación de estos procesos
es muy diversa, algunos de los criterios más utilizados son los siguientes.
-
En función del valor de los
datos transmitidos se obtienen dos clases:
- Estático, si los datos no cambian.
- Dinámico, cuando el valor de los datos es variable.
-
Por los participantes que
son identificados:
- Unidireccional, si solo se identifica a uno de los participantes.
- Bidireccional, si se identifican ambos.
-
Si el criterio utilizado es
el sistema de cifrado se obtiene:
- Simétrico, cuando se utiliza un sistema simétrico.
- Asimétrico, al utilizar sistemas asimétricos.
Los procesos más comunes son descritos a continuación.
Simétrico Unidireccional.
La metodología empleada es la siguiente:
-
La parte que quiere identificarse genera un número aleatorio y
lo envía.
-
La otra parte cifra el número y lo envía.
-
El valor recibido es descifrado y comparado con el original.
La seguridad del método se encuentra en la clave empleada. Para proteger la
clave, se emplean claves individuales para cada tarjeta y normalmente
la clave puede ser calculada por el terminal utilizando el número de serie
de la tarjeta que es único.
Simétrico Bidireccional.
El proceso se resume así:
- El terminal:
- obtiene el número de serie de la tarjeta para calcular su clave.
- genera un número aleatorio, n1, y solicita un número aleatorio de la
tarjeta, n2.
- cifra la concatenación de n1 y n2, y envía el resultado a la tarjeta.
- La tarjeta:
- descifra el mensaje y compara el valor de n2 con el valor local de n2.
- cifra la concatenación de n2 y n1 y envía al terminal el resultado.
- El terminal:
- descifra el mensaje y compara el valor de
n1 con su valor inicial.
Asimétrico Estático.
El funcionamiento es el siguiente:
-
Se almacena en la tarjeta una información y su
cifrado mediante un sistema asimétrico.
-
El terminal es capaz de leer ambos valores y
verificar la validez de ambos utilizando para ello una clave pública.
Este sistema plantea varios problemas:
-
Puede ser reproducido por lo que se reduce el
nivel de seguridad.
-
Si siempre se utiliza la misma clave pública y
la clave privada asociada es descubierta, todo el sistema es descubierto.
Por lo tanto, es mejor utilizar pares de claves distintos para cada tarjeta.
Asimétrico Dinámico.
En este caso se sigue el siguiente
procedimiento:
El terminal inicia el proceso generando un
número aleatorio que envía a la tarjeta.
La tarjeta cifra dicho número con su clave
privada y lo envía al terminal.
El terminal descifra el mensaje con la clave
pública correspondiente y compara el resultado con el número que él había
generado.
Este sistema puede implementarse tanto si existe
una pareja de claves única como si existe una pareja de claves asociada a
cada tarjeta.
3.5. Gestión de claves.
El uso de claves es fundamental en los sistemas
de cifrado y la seguridad de éstas es básica por lo que es necesario
desarrollar técnicas que aumenten la seguridad de las claves. Las técnicas
más utilizadas para mantener la privacidad de las claves son las siguientes:
-
Claves derivadas.
Existe la posibilidad de analizar la tarjeta descubriendo un conjunto de
claves y en el caso de que la tarjeta posea una clave maestra el análisis
puede ser muy productivo. Por esto la clave maestra aparece en el terminal
y no en la tarjeta, de este modo las claves se obtienen a partir de la
clave maestra y de información propia de la tarjeta como el número de
serie. Para calcular las claves se suelen utilizar los algoritmos de
cifrado DES o tripe DES.
-
Múltiples claves y
versiones de claves.
Con la multiplicación de claves se asigna una clave para cada proceso que
utiliza sistemas de cifrado y normalmente, para aumentar la seguridad,
cada clave se obtiene de una clave maestra. Debe tenerse en cuenta que la
privacidad de una clave maestra no es eterna por lo que resulta
fundamental la actualización de su valor.
-
Claves dinámicas.
El valor de las claves puede variar en cada sesión. Un método común es
calcular una clave como el cifrado de un número aleatorio utilizando una
clave derivada. Así se consiguen las ventajas de claves derivadas pero
personalizadas a una única sesión.
-
Datos de las claves.
La gran variedad de claves existentes en un sistema hace necesaria la
utilización de una serie de parámetros que permitan identificar una
determinada clave. Normalmente los sistemas operativos permiten enumerar
las claves de acuerdo con su posterior utilización. También es interesante
incluir una versión de la clave para permitir una correcta identificación.
Controlar el número de errores que se producen en la presentación de una
clave es fundamental para evitar análisis basados en sistemas de prueba y
error. Este control se hace mediante un contador de errores, inicializado
a cero cuando la clave se introduce correctamente, y un número máximo de
errores de manera que si el contador alcanza un valor igual a este la
tarjeta se bloquea.
|