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