Limited Entropy Dot Com Not so random thoughts on security featured by Eloi Sanfèlix

19Dec/071

Smart cards: clasificación de ataques

Seguimos con la serie de smart cards. Tras introducir el tema y hablar de los estándares al respecto, la idea inicial era seguir explicando la evolución de los SOs para estas tarjetitas (que es muy similar a lo que pasó con computadoras y ordenadores personales 😉 ) e introducir JavaCard, pero creo que resultará más interesante meternos en posibles ataques a este tipo de dispositivos seguros.

En este primer post sobre ataques vamos a definir una clasificación de los ataques y nombrar los más comunes, y en unos días dedicaré algún post a varios de estos ataques.

Antes de la clasificación, definiremos un par de conceptos que como no sé cómo traducir al español (no encuentro una traducción que me guste) nombraré en inglés:

  • Se dice que un dispositivo es tamper-resistant cuando no se pueden realizar modificaciones del dispositvo ( to tamper with the device ) de manera no autorizada.
  • Se dice que un dispositivo es tamper-evident cuando deja señales de que ha sido modificado de manera no autorizada.

En base a estos conceptos, vamos a definir los ataques como invasivos y no invasivos. Un ataque no invasivo no modifica el dispositivo, y por tanto es capaz de violar las propiedades de tamper-resistance y tamper-evidence. En cambio, un ataque invasivo deja evidencias del mismo, por tanto únicamente viola la propiedad de tamper-resistance.

Dentro de ataques de tipo no invasivo podemos encontrar:

  • Ataques lógicos, explotando fallos en el software o los protocolos empleados
  • Ataques de tipo Side channel analysis (¿análisis del canal adyacente?) que se basan en analizar fugas de información por canales diferentes al bus serie de comunicación de las tarjetas ( consumo de potencia, radiación EM, tiempos...).
  • Ataques con fault injection, que introducen fallos en la tarjeta ( modificando la alimentación, el reloj...).

En cuanto a ataques invasivos nombramos los siguientes:

  • probing, consistente en conectar agujas de medida sobre algunas líneas de la tarjeta, por ejemplo el bus de datos.
  • fibbing, realizado con un focus ion beam (FIB), de ahí el nombre. Permite observar y realizar cambios en la tarjeta, añadiendo puntos de conexión, cables, etc.
  • Ingeniería inversa óptica, para reconocer las partes del circuito e incluso con algunas técnicas obtener el contenido de la memoria.
  • Algunos tipos de fault injection son invasivos.

Obviamente, los ataques dependen mucho del tipo de atacante. Cualquiera con pocos medios (un lector de tarjetas y poco más) puede intentar estudiar el protocolo e inducir fallos lógicos, mientras que para realizar side channel analysis se necesita equipamiento algo más caro, y para los ataques invasivos generalmente se necesita equipamiento muy especializado.

Existen laboratorios que realizan este tipo de ataques para sus clientes, por ejemplo aquí en Holanda Riscure (donde voy a hacer el PFC finalmente) y Brighsight (que visitaremos el 29 de enero) realizan este tipo de análisis de seguridad, ambos en Delft.

Además, Riscure (que es el que conozco un poco) realiza análisis de Set Top Boxes para PayTV, analizó el sistema IPTV de Microsoft y está acreditado por Mastercard para realizar auditorías mediante el programa de certificación CAST.

Esto es todo de la descripción, próximamente algún ejemplo de Side Channel Analysis y enlaces a documentos interesantes al respecto 🙂

Posted by Eloi Sanfèlix

Comments (1) Trackbacks (0)

Leave a comment

No trackbacks yet.