Download Smart Cards Security

Document related concepts
no text concepts found
Transcript
Smart Cards Security
Por Claudio B. Caracciolo
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
Depto.
T - Capital
Federal,
Buenos
AiresAires
// Tel.//(+5411)
5218-2858/2859
// www.root-secure.com
Perúpiso
440 7piso
7 Depto.
T - Capital
Federal,
Buenos
Tel. (+5411)
5218-2858/2859
// www.root-secure.com