Smma ar rtt CCarrddss SSeeccuuriittyy · Obviamente para su interacción con los sistemas externos,...

15
Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com Smart Cards Security Por Claudio B. Caracciolo Mayo 2007

Transcript of Smma ar rtt CCarrddss SSeeccuuriittyy · Obviamente para su interacción con los sistemas externos,...

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com

SSmmaarrtt CCaarrddss SSeeccuurriittyy PPoorr CCllaauuddiioo BB.. CCaarraacccciioolloo

Mayo 2007

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com

Smart Cards Security Por Claudio Bernardo Caracciolo

Senior Security Specialist

CEH/MCSE/ASE/CATE

Introducción

Uno de los principales elementos recomendados hoy en día por los especialistas referente a los

problemas de autenticación, hacen mención a la utilización de Smart Cards (también conocidas como

Tarjetas Inteligentes). Estos dispositivos salieron al mercado en diversas formas y con diferentes

funcionalidades, pero obviamente también con diversos riesgos de seguridad. Es entonces seguro o no

lo es? Eso es lo que intentaremos abordar en este paper, pero obviamente, para poder explicar los

riesgos asociados debemos conocerlo primero, así que comenzaremos por saber de que estamos

hablando.

Que son las Smart Cards?

Estos dispositivos son a simple vista una tarjeta plástica como una Tarjeta de Crédito, pero con la

particularidad de traer un chip electrónico insertado capaz de almacenar y realizar transacciones de

datos de sus usuarios. Estos datos pueden ser procesados por el chip de la tarjeta o bien por un

microprocesador externo. Obviamente para su interacción con los sistemas externos, necesitan de un

Lector (Smart Card Readers) que se encargara de tomar la información de la tarjeta y transmitirla al

sistema que luego procesará la información para el fin destinado (por ejemplo el login de un usuario a

un sistema operativo). El chip por lo general, se encuentra ubicado debajo de una especie de

superficie cuadrada y dorada en uno de los lados de la Tarjeta (en reemplazo de la banda magnética

que poseen las tarjetas de crédito), pero esta no es una condición esencial y por lo tanto suceder que no

se encuentre visible.

La utilización de un microprocesador en estos dispositivos, tiene su fundamento en la Seguridad de la

Información que ellos contienen, ya que fueron desarrollados para reemplazar a las tarjetas de banda

magnética las cuales, podían ser afectadas en su disponibilidad borrando la información con

simplemente acercarles un campo magnético, o bien en su confidencialidad o integridad con equipos

de un costo no muy elevado que permitían leer y escribir sobre dichas tarjetas. Básicamente, el

microprocesador asegura el acceso a los datos de la tarjeta, ya que solo permiten un set muy pequeño

de instrucciones mayormente ligados a aplicaciones relacionadas a criptografía. A partir de lo antes

dicho podemos presuponer entonces que los Smart Cards tienen algún sistema operativo que los

administra, lo cual es cierto y se lo conoce como COS (Card Operating System) y se encuentra en la

ROM y cuyas funciones extendidas de Criptografía se encuentran en la EEPROM, pero como veremos

a continuación no sucede en todos los tipos de dispositivos.

En el siguiente grafico podemos observar como es el esquema general de una Smart Card y en el

mismo podemos llegar a observar como es el acceso a las áreas de memoria solo pueden ser logrados

por la unidad de entrada/salida y de la CPU (que por lo general es de 8 bits). Desde este punto de vista

la seguridad del dispositivo es bastante buena.

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com

El Software de las Smart Cards esta dividada básicamente en dos categorías, la tradicional y la

moderna. Basicamente, las diferencias entre una y otra son:

Software de Smart Cards Tradicional

Se encuentra en la ROM y no puede actualizarse

Es desarrollado por el proveedor de las Smart Cards

Es escrito principalmente en lenguaje C, C++ o Assembler

Una Tarjeta posee solo una función

Software de Smart Cards Modernas (Java Card, MultOS)

Es desarrollado en un subset de instrucciones de Java sobre los API estándares

Es desarrollado tanto por los fabricantes de las Smart Cards como también por terceros para dar más

funcionalidades

Permite Post-issuance para la descarga de aplicaciones (cardlets).

Las Tarjetas pueden trabajar en múltiples aplicaciones controlando la información compartida

Las Smart Cards han ido evolucionando de manera tal (sobre todo en la última década) que cada vez

existen más implementaciones donde su uso es recomendable, pero básicamente se utilizan junto a los

Card Readers para transacciones u operaciones que necesiten de un proceso de autenticación seguro,

como ser por ejemplo Home Banking, E-Commerce, Hospitales, Seguridad en Redes de Datos y

Sistemas de Computadoras, Seguridad en Redes Inalámbricas, Tarjetas de Crédito, Tarjetas de Pago

Electrónico para autenticar a un usuario al sistema o implementar SSL en una transacción a través de

internet entre otras cosas, o hasta incluso para el Acceso Físico a zonas restringidas. Hoy es tan

común su uso que muchos dispositivos ya traen incorporados los Card Reader, como es el caso de las

computadoras portátiles (notebooks), teléfonos celulares, PDA`s y otros dispositivos.

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com

Tipos de Smart Cards

Las Smart Cards pueden clasificarse en según:

1) Como los datos de la tarjeta son guardados y leídos

2) Como es implementado el chip y cuáles son sus capacidades.

Básicamente, la clasificación más utilizada y sobre la que nos basaremos depende de la siguiente

estructura:

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com

Contact Cards

La gran mayoría de las implementaciones están relacionadas a este tipo de dispositivos, que utiliza un

contacto eléctrico comúnmente ubicado en uno de los lados de la tarjeta y que basa su funcionamiento

en el contacto físico con el Card Reader a partir que la tarjeta es insertado en el.

Memory Cards

Este tipo de tarjetas no es capaz de manejar dinámicamente los archives ni tampoco es capaz

de controlar de manera eficiente la energía eléctrica utilizada. Las tarjetas utilizan protocolos

sincrónicos para la comunicación con los lectores y una de las principales características es que

en estos dispositivos, siempre se lee y escribe en una dirección de memoria fija de la tarjeta.

Las Memory Cards pueden encontrarse en 3 formas principales:

1. Straight Memory Cards

Son solo capaces de almacenar información pero no de procesarla. Obviamente, son la

de costo más bajo en el mercado.

2. Protected / Segmented Memory Cards

Poseen una lógica incorporada con el fin de controlar el acceso a la memoria de la

tarjeta, pueden ser utilizadas para proteger contra escritura determinadas partes de la

memoria o bien el array completo. En algunas implementaciones incluso podría

protegerse contra lectura determinadas áreas en arquitecturas multi-aplicaciones, de

manera que una misma tarjeta sea utilizada en varias aplicaciones y que mientras este

en uso en una aplicación A, no pueda accederse a la información de la aplicación B que

se encuentre en la tarjeta.

3. Stored Value Memory Cards

En este caso particular, el diseño tiene un propósito específico, almacenar valores o

créditos. Estas tarjetas se pueden reutilizar y poseen medidas de seguridad permanentes

desde su fabricación como ser el caso de contraseñas o alguna lógica hard-coded en el

chip. Prácticamente no tienen espacio para que se inserten otras instrucciones o

funciones. La implementación mas común es la de las tarjetas de teléfonos públicos,

donde la tarjeta posee alrededor de 60 celdas de memoria que a medida que utilizamos

el teléfono se van llenando con un dato, cuando se completa el total, la tarjeta ya no

puede ser utilizada hasta que vuelva a recargarse

CPU/MPU Microprocessor Multifunction Cards Poseen la capacidad de procesar dinámicamente la información, asignan memoria en secciones independientes para implementaciones multi-funciones o asignan archivos a funciones o aplicaciones específicas. Maneja las estructuras de los archivos mediante un sistema operativo proprio de la tarjeta (COS o Card Operating System) controlando el acceso a la memoria del usuario y permitiendo que diferentes aplicaciones y funciones se encuentren en la tarjeta diversificando su funcionamiento y abaratando costos en las empresas que implementen estas soluciones. Un ejemplo de esto sería una tarjeta que me permita ingresar en el Centro de Cómputos de mi Empresa y que además me valida en el servidor de Correo Electrónico pero manera encriptado sin que la información de mi cuenta pueda ser vista por alguna aplicación

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com

maliciosa al momento de identificarme en la puerta del Centro de Cómputos. Es incluso implementar este tipo de tarjetas en sistemas de infraestructura PKI

Contactless Cards

Típicamente son las tarjetas que podemos encontrar implementadas a través de la tecnología conocida

como Radio Frequency Identification (RFID) entre la tarjeta y el lector a utilizar sin tener la necesidad

de tener que insertar la tarjeta en ningún dispositivo. Implementación que encontramos típicamente en

estaciones de Peajes, en los molinetes de los Subtes, en tarjetas de aperturas de puertas en edificios e

incluso en Centros de Cómputos (en los casos que las tarjetas se implemente para permitir el acceso,

las tarjetas por lo general se encuentran en modo read-only, mientras que en otras implementaciones,

pueden ser utilizadas para lectura y escritura).

Tienen como desventaja la limitación de las funciones de criptografías implementadas y el uso de

memoria equiparada con el microprocesador de la tarjeta, sin embargo, representan una mayor ventaja

a la hora de utilizarlas ya que no necesitan el contacto físico, permitiendo agilizar los procesos de

operación.

Un cuadro muy interesante respecto al costo por tipo de dispositivos es el que encontraremos mas

abajo, destacando que solo un pequeño porcentaje es lo que representa la compra de Smart Cards en

una compania, ya que la mayor inversion se relacionara a la infraestructura que soporte la

implementacion, y a la capacitacion de los usuarios involucrados.

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com

La Seguridad en Smart Cards

Uno de los puntos centrales a analizar es como maneja la Seguridad desde la Smart Card. Bueno,

básicamente como dijimos antes el COS se encuentra en la ROM pero agrega funciones de criptografía

en las Tarjetas a través de la EEPROM quien utiliza algoritmos de cifrado como RSA o Triple DES y

funciones de Hash en MD5 o SHA1. El criptoprocesador brinda soporte a estas tareas realizando

operaciones RSA con claves criptográficas entre los 512 y 1024 bits. Algunos diseños de Tarjetas han

decido incluir al diseño un generador de números randomico (aleatorio) a fin de mejorar los

mecanismos de protección interna. Es así entonces que cuando un usuario introduce la Smart Card en

un host (con el Lector de Smart Cards), lo primero que sucederá es que ambos dispositivos se

identificaran entre si utilizando un protocolo simétrico (ambos deben conocer la misma clave)

eliminando la posibilidad de que Tarjetas de la Compañía A sean leídos por lectores de la Compañía

B, una vez sucedido esto, y recién en ese momento es leída la identificación del usuario (ID) y se le

pide al mismo que inserte su contraseña (PIN) dándose lugar al proceso de chalenge-response (se

envía el ID al Host y éste desafía a la Tarjeta, que responde al desafío utilizando una clave personal

del usuario (PK, Personal Key). Si la respuesta es correcta, el host ha identificado la tarjeta y el

usuario obtiene acceso al recurso pretendido).

Pero bien, no son estas todas las consideraciones de seguridad relativas a las Implementaciones de

Smart Cards. Debido a la característica de este tipo de dispositivos, nos encontramos que para hablar

de Seguridad en ellos debemos hablar entonces de Seguridad en cada uno de los niveles viéndolo

como un sistema único:

1. Hardware, que involucra desde los canales de comunicación hasta las tarjetas, lectores,

servidores y demás dispositivos que puedan estar involucrados

2. Software, tanto los sistemas operativos de las Smart Cards (COS) como el de los sistemas que

los soportan, y hasta las mismas aplicaciones con las que interactúan.

3. Datos, para el caso de la información almacenada en la tarjeta o en los sistemas a los que con

ella accede

4. Personas, tanto los usuarios finales, como los administradores y los implementadores del

sistema.

Por lo antedicho, podemos observar que la Seguridad de las Smart Cards interactuará en diferentes

momentos con diferentes elementos por lo cual si analizamos que podría afectarse, deberíamos

trabajar sobre las siguientes cuestiones:

1. Data Integrity

2. Authentication

3. Non-Repudiation

4. Confidentiality

5. Authorization and Delegation

6. Auditing and Logging

7. Management

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com

En el siguiente grafico vemos de forma genérica como es entonces la Seguridad de Punta a Punta en

un sistema genérico de Smart Cards:

Básicamente, la Seguridad en lo que respecta a las Smart Cards, debe ser parametrizada en cada nivel,

para lo cual se definen en grandes rangos dos métodos: host-based y card-based.

Host-Based

Tiene por finalidad tratar a las tarjetas como un simple medio más por donde la información sensible

puede circular. Este esquema esta pensado sobre todo para las Straight Memory Cards ya que pueden

ser implementadas a costos muy bajos, y principalmente se déjà que toda la protección quede del lado

de las computadoras donde se procesaran, encriptando (o no) la información en la tarjeta.

Debilidad: la transmisión entre la tarjeta y el host, no esta encriptado, viaja en texto claro, por

lo cual un atacante podría interceptar dicha información.

Mitigación: uno de los métodos utilizados es el de sincronización, por lo que es utilizar una

Key en texto claro que contenga datos como la fecha y hora, por lo que cuando la tarjeta es re

grabada en su utilización, el host modificara las referencias de esa Key. Sin embargo esta

forma de mitigar, obliga a mantener esa Key (o parte de ella) en texto claro permitiendo a un

atacante poder accederla y analizarla utilizando cualquiera de las técnicas de sniffing

conocidas para luego ingresar a la memoria principal.

Card-Based

Utilizado en las Smart Cards que poseen microprocesadores, y esencialmente considera a cada tarjeta

como si fuera igual a un dispositivo común queriéndose conectarse a otro, es decir, que lo que

intentaran hacer intercambiar información entre el host y la tarjeta con el fin de determinar si la tarjeta

esta o no autorizada para ser utilizada en el sistema, encriptar el canal de comunicación y luego recién

allí intercambiar las credenciales de identificación y autenticación del usuario de la tarjeta. Inclusive,

podría implementarse soluciones donde la tarjeta demande parámetros para validar al host y si son los

adecuados, realizar el resto de las acciones. Lo interesante de la Seguridad en un Sistema Card-Based

es que el acceso a la información es controlado por el COS y por los permisos seteados en los

archivos.

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com

Amenazas a la Seguridad

Sin ningún lugar a dudas, la Seguridad de los sistemas basados en Smart Cards deben ser tenidos en

cuenta desde el diseño de la arquitectura ya que como mencionamos antes existen muchos factores a

considerar como por ejemplo:

- Los datos de la Tarjeta están encriptados?

- La transmisión de los datos, se realiza a través de protocolos seguros?

- El sistema Host, almacena los datos en forma encriptada?

- El sistema operativo de las tarjetas y del host, poseen vulnerabilidades conocidas,

backdoors o cover channels?

- Existe la posibilidad de auditar las transacciones de las tarjetas?

- Los algoritmos de encripción utilizados son lo suficientemente fuerte?

- Si un atacante obtiene una tarjeta puede leer su información?

- Como almacena el fabricante de tarjetas la información almacenada en ellas?

- Como se segmenta la información?

- Que sucede si una tarjeta esa expuesta a Diferencias de Potencial o de Temperaturas?

- Qué pasa si los usuarios comparten sus contraseñas?

- El PIN asignado puede ser adivinado fácilmente?

- Si un atacante destruye una tarjeta, el usuario pierde su única forma de autenticarse?

Como pueden ver, son muchas las preguntas que debemos hacernos al considerar la Seguridad, a

veces, al ordenar de alguna manera las vistas posibles que queremos considerar se facilitan los análisis,

básicamente, la forma propuesta de análisis para estos casos se basan en ataques internos y externos

(usuarios que no pertenecen a la organización).

Los Riesgos relacionados a la arquitectura basada en applets se basan en que si bien podemos realizar

descargas de Post-issuance de cardlets, si bajáramos un cardlet malicioso podríamos encontrarnos con

grandes problemas de Seguridad como por ejemplo:

1) Modificar o destruir la información de la tarjeta o del sistema (afectar la integridad)

2) Revelar la información sensible (afectar la confidencialidad)

3) Generar que las aplicaciones u otras Smart Cards funcionen incorrectamente o no funcionen

(afectar la disponibilidad)

Por ejemplo el siguiente código provocaría un volcado de la memoria completa de la Smart Card al

host donde se la conecte:

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com

class Cardlet {

public void process(APDU a) {

for (short i = 0; i <= 0xFFF8; i += 2) {

byte [] b = (byte []) i;

send_byte((byte) (b.length >> 8));

send_byte((byte) (b.length & 0xFF));

}

}

}

En el siguiente codigo por ejemplo tendremos un desarrollo cuyo objetivo es provocar que de repente

el explorador web (Netscape) del usuario que inserte esta Smart Card se abra e intente conectarse a un

web server:

class SocketServer {

protected final void implAccept(Socket socket) {

try {

// aceptar conexiones de red y asociarlo a un socket

securityManager.checkAccept(socket.getHostAddress(), socket.getPort());

} catch (SecurityException e) {

socket.close();

}

}

class EvilSocket extends Socket {

public void close() { // no hacer nada}

}

Sin embargo, a menos que el usuario pierda su tarjeta o la ingrese directamente en la maquina del

atacante, no existe una amenaza para los usuarios acerca de que sus Tarjetas sean crackeadas.

Es entonces que muchos fabricantes han decidido que una forma de mitigar este riesgo es implementar

Firmas Digitales sobre los cardlets (Digital signatures), pero si bien es una forma de mitigar el

problema, no es la solución completa ya que la Firma Digital solo garantiza el origen del cardlet pero

no si el contenido es malicioso o no.

Los riesgos de ataques físicos sobre las Smart Cards son muy distintos a los ataques de otros tipos de

dispositivos, porque los Smart Cards estarán físicamente en la mayoría de los casos en las manos del

atacante. Es así que el atacante puede utilizar ataques con el fin de leer la información secreta,

descubrir las Key de encripción, garantizar permisos o bien causar daños o mal funcionamiento, tales

como:

1) Observación: observan el consumo y las emisiones electromagnéticas en función del tiempo

2) Invasión: se implanta en el chip de la Smart Card, micro-electrodos a fin de leer los datos

3) Perturbaciones Temporarias: exponen el chip a altas radiaciones de energía, o bien le

conectan energía eléctrica o un clock externo.

4) Modificaciones Permanentes: eliminan los transistores y los conectores (saltar los fusibles

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com

Vemos en los cuatro puntos anteriores que muchos de los riesgos físicos están relacionados a temas

que involucran exposición a altas energías, pero para entenderlo mejor citaremos algunos estudios:

1) Los tres desarrolladores de Bellcore, Boneh, DeMillo y Lipton afirmaron en su publicación que

si un atacante lograra introducir errores computacionales sobre las Smart Cards, el atacante

podría llegar a deducir luego, cual es la llave de Criptografía utilizada y ocultada en ella. Pero

lo más importante de todo es que eso puede lograrse sin la necesidad de que el atacante

controle la naturaleza del error, que significa? Que solo es necesario formar el error

computacional para luego comparar el resultado de la encripción errónea con el de la

encripción correcta sobre una misma información de origen, y a partir de ello “aprender” cuál

es la llave de encripción correcta, ya que la información será suficiente como para poder

analizarla. Para que este error se genere, solo es necesario cualquier ataque capaz de causar

una fluctuación en el voltaje del chip de la Smart Card.

2) A partir de los resultados obtenidos por Investigadores de Cryptography Research, Inc.,

liderados por Paul Kocher publicaron un ataque a las Smart Cards utilizando una técnica

denominada Differential Fault Analysis (DPA), que puede ser utilizada en la mayoría de las

Smart Cards que se encuentran en producción hoy en día. Es una forma de ataque complicada

que se basa en interferencias de energía estática modificando las medidas de consumos de

energía durante el procesamiento de la Smart Card. Si bien el equipamiento utilizado es

sencillo, modificar el Lector de Tarjetas y analizar los algoritmos es bastante complejo por lo

cual, si necesitan mas detalle pueden leerlo en la publicación original

http://theory.stanford.edu/~dabo/papers/faults.ps.gz. El chip en la tarjeta utiliza diferentes

cantidades de energía según realiza las diferentes operaciones, es por ellos que conectando la

Tarjeta a un osciloscopio puede llegar a obtenerse un patrón del consumo de energía para luego

intentar reproducirlo externamente a través del estudio de los picos de los consumos de tensión

permitiendo descubrir cuál es la Secret Key e incluso el PIN utilizados durante la encripción

del sistema. Aunque a veces con algunas transacciones puede deducirse cual es la Secret Key,

la mayor parte de las veces hace falta realizar cientos de transacciones para poder obtener el

patrón utilizado.

La solución a este problema utilizada por algunos fabricantes es el enmascaramiento del

consumo de energía agregando alguna especie de ruido digital randomicamente de manera tal

que no se pueda calcular el patrón de consumo. Incluso otra solución utilizada para este

problema es alterar aleatoriamente el orden de los cálculos computacionales desarrollados por

el chip de manera que la obtención del patrón no pueda reproducirse porque siempre será una

función distinta.

Cabe mencionar que este ataque es considerado riesgoso en casos de sospechas de fraude

interno, porque para que este fraude suceda el atacante debe tener la tarjeta por lo que, o se la

roba a un usuario autorizado o bien es un usuario autorizado que quiere cometer un fraude

contra su empresa

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com

3) Anderson y Kuhn, publicaron en un paper respecto a la alteración de la resistencia de las Smart

Cards (www.cl.cam.ac.uk/users/cm213/Publications/tamper.html), donde mencionan que un

atacante amateur podría llevar a cabo este tipo de ataques con recursos limitados.

Básicamente, este ataque se refiere a la manipulación de las temperaturas de exposición del

chip, la exposición a UV y hasta incluso la remoción del chip de la Tarjeta. La investigación

de Anderson y Kuhm se baso en que los chips son microcontroladores como cualquier otro, y

que estos de por si deben interactuar para poder ejecutar sus rutinas. En estos casos, es

entonces cuando debe pensarse en cuales son los mecanismos para cargar un nuevo código en

el chip, y como vimos antes, uno de estos mecanismos son los cardlets, sin embargo no es la

única forma. Es entonces que la medición de la resistencia del chip a las distintas condiciones

comienza a tomar valor, ya que lo que Anderson y Kuhn realizaron en su estudio denominado

protocol attack fue encontrar la llave de encripción (secret key) por medio de fuerza bruta

probando todas las variaciones posibles comparando los resultados de las operaciones.

http://www.smartcardbasics.com/images/panel8_lrg.gif

4) Otro ataque conocido es el Chip rewriting attacks el cual consiste en identificar la celda de

memoria exacta de la ROM y/o de la EEPROM y luego modificar su contenido con un laser,

basándose en la teoría que dice que un simple BIT puede ser modificado en la ROM con un

laser de corte microscópico, mientras que en la EEPROM ya conocemos muchos métodos…

Sin duda alguna este ataque suele ser muy complejo ya que conlleva un estudio del

microprocesador muy laborioso pero es altamente efectivo. Esta era una de las técnicas

utilizadas en los ataques relacionados a los fraudes a las tarjetas de teléfonos públicos, donde

uno utilizaba la tarjeta hasta que se consumiera la totalidad y luego la recargaba regrabando la

celda de memoria correcta (para ello hace un tiempo atrás podíamos conseguir incluso

dispositivos muy caseros para este tipo de fraude).

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com

5) Un ataque también muy particular es conocido con el nombre de memory remanence attacks,

que básicamente se apoya en que cuando un valor es almacenado en una memoria de una

computadora por un largo periodo de tiempo, es casi virtualmente imposible eliminar esa

información sin dejar rastros magnéticos (como es el caso de los discos rígidos cuando

queremos recuperar la información robada). Es así que existen muchos bancos que utilizan en

sus cajeros ATM un modelo de seguridad basado en key-encrypting (master) keys, de manera

tal que estas Key, se utilizan para encriptar el PIN y otras llaves de encripción como por

ejemplo las utilizadas para comunicar con otros bancos, si suponemos que el modelo de

seguridad fuera tomado por las manos incorrectas podría borrar el master key para tomar

posesión de la información y luego utilizar las técnicas de recuperación conocidas para volver

a restaurar el valor del master key “borrado”. Este tipo de ataque es más experimental que real

ya que para que pudiera ocurrir debería darse la situación en que un host tendría almacenada la

misma información en el mismo lugar por un largo periodo de tiempo).

6) Ataques de Terminal, en todos los casos anteriores, vimos los ataques directos sobre las

Smart Cards, pero no debemos olvidar que las Tarjetas forman parte de una infraestructura por

lo cual los problemas de terminal pueden ser condicionantes para la seguridad de la

implementación, y curiosamente, la utilización de las Smart Cards suelen darse porque la

seguridad de las computadoras no está asegurada. En resumen, debemos tener presente los

ataques que puedan darse desde el host como sería el caso en que un atacante realice un

tampering de nuestro Web Browser utilizando técnicas comunes contra nuestra PC, entonces el

atacante podría robar las PIN almacenados, información confidencial, prívate keys, etc tanto de

la Smart Card como de la PC. El Web browser podría entonces solicitar acciones que lleven a:

a) Que la Smart Card solicite el PIN antes de ser utilizado (el browser realiza la

solicitud y luego de ingresa, da un mensaje de error y envía el PIN al atacante)

b) Que la PC se utilice como medio para realizar un ataque al protocolo de encripción

de la Smart Card utilizando fuerza bruta en una especie de capture/replay attacks

c) Que la PC robe la prívate key de la Smart Card y sea utilizada “legalmente”

representada por la Firma Digital.

7) En el caso de las Straight Memory Cards, uno de los problemas asociados es que este tipo de

Tarjetas no tienen la capacidad de identificarse con el lector, siendo asi que el sistema host

tiene que saber qué tipo de tarjeta se está insertando en un lector. Representando esto, el riesgo

de duplicar las tarjetas y presentarse en lector como si fuera el original. Es en los casos de las

Smart Cards utilizadas para proximidad (las que utilizan RFId) uno de los ataques utilizados se

basaba en el concepto de Man in The Middle donde una persona siguiendo al portador de la

Smart Cards (que normalmente la lleva enganchada en su cinturón) y aproximándose lo

suficientemente cerca (por ejemplo en un viaje en subterráneos), esta persona podría tomar la

señal emitida por la Tarjeta con un falso lector de Smart Cards conectado a un teléfono, para

que este ultimo a su vez lo transfiera vía GPRS a una falsa tarjeta que tendrá un cómplice del

atacante posicionado delante del verdadero Lector que permitirá el acceso o la operación a la

tarjeta. Este tipo de ataque se debe a que como mencionamos antes, estos dispositivos

mayormente no autentifican los extremos a pesar que si utilizan encripción. Vemos en este

caso como la encripción no es modificada porque en este caso el atacante junto a su cómplice

simplemente captan la señal de un dispositivo y la retransmiten al otro.

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com

Conclusión

Las Smart Cards aportan gran flexibilidad y sobre todo cierta tranquilidad a la hora de utilizar sistemas

de autenticación confiables. Sin embargo, como siempre decimos, no existe ningún sistema 100%

seguro y siempre hay quienes dedicaran un gran esfuerzo a la búsqueda de debilidades. No siempre

los métodos son los convencionales, y en este documento lo hemos observado en la diversidad de los

ataques, y hasta podríamos pensar que quizás es un ataque demasiado pretencioso para nuestras

empresas por ser costoso y requerir elevados conocimientos por parte del atacante, pero esa justamente

es nuestra misión, presentar los riesgos, saber cuáles son las vulnerabilidades, presentarlas y

clasificarlas para que el Comité de Seguridad decida si aceptará los riesgos o no.

Que un ataque sea complejo para la mayoría de la gente, como es el caso del ataque DPA, no implica

que debamos descartarlo, en muchos ámbitos de seguridad, este riesgo es suficiente como para

inclinarse a otra tecnología que permita autenticar usuarios.

Pero es más aun importante el entendimiento respecto a que los riesgos de las Smart Cards no se

refieren solo a la Tarjeta en sí, sino al sistema completo, desde su algoritmo, su capacidad de descargar

cardlets, la separación de la información interna, la seguridad de los Readers, los sistemas Host donde

se conectan los Readers, etc, etc.

El objetivo de este documento era informar a los usuarios porque como sabemos, los ataques se

dirigen cada vez más hacia ellos, y en ciertos momentos, los que trabajamos en seguridad también

somos usuarios cuando nos venden algún producto, por eso debemos estar bien informados, tener

capacidad de análisis para tomar decisiones correctas y actuar en consecuencia. Porque no existe un

sistema perfecto, y debemos estar atentos y preparados, de eso se tratan los planes de contingencia,

saber que puede pasar y saber cómo actuar si eso sucede superando nuestros métodos de prevención.

“Que un ataque sea costoso o que requiera altos conocimientos de un atacante, no significa que no

deba ser considerados por quienes estén a cargo de la seguridad de una organización. Nuestra

misión es evaluar los riesgos y advertirlos junto con las contramedidas posibles, las decisiones serán

tomadas en función de nuestro asesoramiento y de las necesidades del negocio”

Referencias

http://theory.stanford.edu/~dabo/papers/faults.ps.gz

http://www.securingjava.com/chapter-eight/chapter-eight-5.html

http://www.uc3m.es/uc3m/serv/GPC/articsmartcards.html

www.cl.cam.ac.uk/users/cm213/Publications/tamper.html

http://www.smartcardbasics.com/

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com

A propuesta:

Perú 440 piso 7 Depto. T - Capital Federal, Buenos Aires // Tel. (+5411) 5218-2858/2859 // www.root-secure.com