3. Seguridad en Smart Cards.

 

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:

  • hardware
  • software

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:

    1. El usuario guarda un código secreto en un fichero de la tarjeta.

    2. Al introducirse en el terminal se desarrolla la autentificación.

    3. Posteriormente el terminal accede al fichero donde se encuentra el código secreto y lo visualiza.

    4. 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:

  1. La parte que quiere identificarse genera un número aleatorio y  lo envía.

  2. La otra parte cifra el número y lo envía.

  3. 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í:

  1. 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.
  2. 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.
  3. El terminal:
    • descifra el mensaje y compara el valor de n1 con su valor inicial.


Asimétrico Estático.

El funcionamiento es el siguiente:

  1. Se almacena en la tarjeta una información y su cifrado mediante un sistema asimétrico.

  2. 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:

  1. El terminal inicia el proceso generando un número aleatorio que envía a la tarjeta.

  2. La tarjeta cifra dicho número con su clave privada y lo envía al terminal.

  3. 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.