|
Por Francisco Ginel La naturaleza cambiante de los Medios de Pago se está viendo acelerada en estos últimos años por la introducción de nuevas tecnologías que van a cambiar drásticamente el modo en que nos relacionamos, operamos e interactuamos en general con nuestro entorno. Estas nuevas tecnologías y, concretamente, las tarjetas inteligentes e Internet, están abriendo nuevos entornos de productos pero, al mismo tiempo, introducen nuevos riesgos (o niveles de riesgos) en el sistema. En el caso de las tarjetas inteligentes nos encontramos ante una tecnología que, con productos diseñados e implantados de la manera apropiada, nos puede proporcionar una oportunidad incomparable para mitigar y, potencialmente, eliminar algunos de los problemas de fraude con los que actualmente nos enfrentamos. Hay dos puntos de vista diametralmente opuestos acerca de la seguridad de las tarjetas con microprocesador: que son inherentemente seguras y que se "rompen" fácilmente. Ninguno de los dos es correcto. Hay algunos casos, que han sido objeto de gran atención por parte de la prensa, en los que se habla de tarjetas inteligentes que han sido "rotas", pero si la tarjeta ha sido diseñada con el objetivo de mantener la seguridad puede ser muy difícil de atacar. Todos podemos asegurarnos de que nuestra tarjeta está al nivel adecuado si comprendemos cuales son las amenazas y tomamos las medidas necesarias para contrarrestarlas. Susceptibilidades de la Tarjeta Inteligente No hay nada seguro al 100%, si se dispone de los recursos necesarios para el ataque. Incluso microprocesadores extremadamente sofisticados son objeto de ingeniería inversa de manera rutinaria, ésta es la razón por la que existen clones y por lo que los diseñadores de estos "chips" trabajan continuamente para mejorarlos en la siguiente generación. Nos encontramos con la carrera permanente entre el líder del mercado y los competidores que tratan de alcanzarle - y lo consiguen después de algún tiempo. Desde el punto de vista de seguridad, la manera de asegurarte que alguien te atacará con éxito es estar convencido de que nadie puede hacerlo. Algunas tarjetas son más susceptibles a los ataques que otras. Hay una serie de medidas de seguridad perfectamente conocidas que pueden añadirse a los microprocesadores de las tarjetas "chip" o a las aplicaciones, pero no siempre son utilizadas o activadas. Los "chips" que han sido utilizados tradicionalmente en las tarjetas inteligentes fueron diseñados en su origen como microcontroladores incrustados y además son utilizados in una amplia variedad de aplicaciones donde la seguridad no es un problema. De hecho, la seguridad puede ser innecesaria en estas otras aplicaciones, porque fueron diseñadas para entornos de alta fiabilidad. Esto quiere decir que si algo va mal, el "chip" tratará de solventar el problema y continuará "haciendo lo que ha sido diseñado para hacer". Pero en una tarjeta inteligente, ese problema puede ser un signo de que un "hacker" está intentando obtener información confidencial de la tarjeta. Lo que necesitamos de ese "chip" es que "falle" limpiamente con un "reset" o un bloqueo total, dependiendo del tipo y la gravedad del ataque. No hay manera de garantizar la seguridad, pero la mejor manera de asegurarse un nivel alto de seguridad es tener el diseño evaluado y el producto final probado. Dado que las capacidades de análisis y prueba mejoran constantemente, es imposible prever todos los ataques que alguien pueda imaginar. Diseñar con la seguridad en mente agrega complejidad y costo a los "chips". En algunas aplicaciones de alta seguridad, el riesgo de que alguien pueda obtener una información puede ser lo suficientemente alto como para necesitar asegurarse de que todas las medidas de seguridad posibles han sido implantadas. En un mundo ideal las tarjetas de servicios financieros serían una de estas aplicaciones. Pero la industria financiera es muy sensible a los costes. Las tarjetas de banda magnética funcionan bastante bien para su uso actual y, si las tarjetas inteligentes van a sustituirlas en algún momento, el precio debe ser tan bajo como sea posible. La pregunta no tiene que ser "¿Cómo puede ser de segura una tarjeta inteligente?" sino "¿Cuál es el nivel de seguridad más rentable para el uso del que van a ser objeto estas tarjetas?". En Visa creemos que la seguridad no debería ser un arma competitiva en la industria de las tarjetas financieras. Todos perderíamos si se hiciera público un problema de seguridad importante, independientemente de quién fuera el emisor o la institución financiera involucrada. Es una cuestión de credibilidad y de confianza general, y nuestro objetivo es que todo el mundo sea consciente de los problemas potenciales de seguridad. Esta es la razón por la que nos encontramos hoy en esta conferencia. Objetivos de Seguridad Hay unas cuantas cosas que todos podemos hacer para asegurar un nivel adecuado de seguridad. Lo primero es establecer un objetivo de seguridad apropiado. La seguridad es un problema de más o menos, no de presente o ausente. Tenemos que pensar en varios niveles de objetivos o modelos de seguridad - analizar qué estamos tratando de proteger y cuáles son las amenazas potenciales. La meta debería ser siempre llegar a una situación en la que el coste o el esfuerzo del ataque fuera significativamente mayor al beneficio que comportaría si tuviese éxito.Si alguien quiere gastar 1.000.000 de Ptas. para romper una tarjeta desechable de $2.000 Ptas., y esto sólo le da acceso a esa única tarjeta, la amenaza no es muy grande. Cuanto mayor es el valor del bien a proteger y más sencillo el ataque, más crece la amenaza del mismo. Una vez se ha definido el nivel de seguridad requerido, tiene que haber un proceso de verificación del mismo. Un principio básico debería ser que quién diseña un sistema no está capacitado para evaluarlo. Cuando este principio no se cumple, normalmente nos encontramos con que el "evaluador" se ha ocupado más de resaltar las brillantes ideas que tuvo que de encontrar puntos débiles. Validaciones Hay una variedad de estándares internacionales que algunos pueden pensar que garantizan la seguridad de las tarjetas inteligentes financieras. Sin embargo, muchos de ellos, como ISO 7816, se refieren a la funcionalidad de las tarjetas más que a su seguridad. No se puede depender únicamente de estos estándares para garantizar ningún nivel de seguridad en particular. ITSEC (Information Technology Security Evaluation Criteria) es un sistema europeo desarrollado para validar aspectos de seguridad en las tecnologías de la información. ITSEC se ocupa de verificar aquello que ha sido declarado por el fabricante del producto, a través de laboratorios independientes y licenciados. Sin embargo, las declaraciones no están estandarizadas. Así, si un producto tiene una calificación ITSEC, esto no nos indica por sí mismo que ha sido declarado y validado en su totalidad. La validación puede haberse realizado únicamente en una parte del sistema, por ejemplo el generador de números aleatorios. Aunque tener un buen generador de números aleatorios es una característica de seguridad importante en un "chip", esto no nos dice nada acerca de otras características que pueden conllevar vulnerabilidades significativas. ITSEC es un paso en la dirección correcta, pero no es suficiente en sí mismo. Existe asimismo una variedad de estándares de seguridad gubernamentales en diversos países, pero no son consistentes entre sí. Algunos gobiernos requieren que todos los sistemas de monedero electrónico sean auditables, otros no. Algunos requieren cifrado DES en determinados puntos, otros 3-DES, tecnologías de clave pública o cualquier otra forma de cifrado específica. Cualquier certificación de que una tarjeta inteligente en particular cumple los estándares de seguridad de un gobierno, no significa necesariamente que sea aceptable en cualquier otro lugar. El esfuerzo que se está llevando a cabo bajo el nombre "Common Criteria" (Common Criteria for Information Security Technology) tiene un enorme interés. A pesar de ello, no incluye a todos los países con cierta significación en la industria (entre ellos España), y precisa de algunos ajustes operativos para satisfacer no sólo las necesidades de los fabricantes sino también las de los usuarios. De nuevo, es un paso en la dirección correcta, pero aún queda trabajo por hacer. Los requerimientos de la industria financiera son algo diferentes de los del resto. Las tarjetas telefónicas, por ejemplo, GSM o prepagadas, están diseñadas para ser usadas siempre en conexión, mientras que las tarjetas financieras necesitan en determinadas circunstancias operan fuera de línea. Estas diferencias se traducen en diferentes requerimientos de seguridad y diferentes mecanismos de protección. Los requerimientos de la televisión de pago son también diferentes. La industria del cable estima que una parte significativa de su beneficio potencial se pierde a causa de los "piratas" que roban la señal sin pagar por ella. Pero siempre se trata de una pérdida de beneficio potencial, no real. Un sistema de tarjeta inteligente que capture incluso una pequeña proporción de este beneficio potencial es una ganancia neta para su sistema, con un pequeño coste adicional. En cambio, cada vez que una tarjeta bancaria es utilizada, hay una transferencia de fondos. Alguien tiene que responder por cada transacción fraudulenta; conlleva una perdida de ganancia real, no potencial. Las amenazas, requerimientos de seguridad y mecanismos de auditoría del sistema son, por consiguiente, diferentes. En el otro extremo, las tarjetas utilizadas para proteger bienes extremadamente valiosos, como redes de seguridad nacionales, pueden diseñarse para autoborrarse al detectar el menor signo que indique un potencial ataque exterior. Eso tampoco funcionaría con una tarjeta financiera, con la que no se puede dejar a un viajero tirado lejos de casa sin medios para pagar comida, alojamiento y otras necesidades. En ambos casos hay procedimientos de respaldo para proteger el acceso del usuario a sus fondos, pero las situaciones son muy diferentes. En un sistema financiero la tarjeta es parte de un sistema más grande que incluye simultáneamente debilidades y medidas de protección adicionales. En transacciones de crédito y débito existe un extracto mensual que el titular puede revisar para detectar errores. Los establecimientos comerciales que cometen "errores" con excesiva frecuencia pueden ser incluidos en una lista de alertas y educados o corregidos de diversas maneras. El sistema puede tolerar errores aislados porque aún pueden manejarse de manera razonable y rentable. Ciertas aplicaciones de seguridad nacional, en cambio, no pueden tolerar ni un solo error. La mayoría de los sistemas de telecomunicaciones, por otro lado, no pueden depender de un extracto mensual para detectar y corregir errores. Cada industria y cada aplicación tiene sus propios requerimientos de seguridad, así que es difícil que exista un estándar de seguridad único. Lo que es importante es comprender el rol que juega la tarjeta en la globalidad del sistema al que pertenece, y diseñar la seguridad que es adecuada y apropiada para ese rol. El sistema de validación de Visa Visa realiza revisiones de seguridad en 4 niveles: especificaciones, plataforma, sistema operativo y diseño de aplicaciones, e implantación final. Cada especificación de Visa está diseñada por nuestros expertos y posteriormente enviada a expertos externos para que revisen su seguridad. Estamos convencidos de que nuestros diseñadores se encuentran entre los mejores del mundo, pero nadie puede revisar adecuadamente su propio trabajo. "Especificaciones" quiere decir aquí cualquiera de las relativas a productos de tarjeta inteligente que han sido publicadas por nuestra compañía. Son habitualmente especificaciones funcionales que indican cómo debería trabajar una aplicación. La plataforma "chip" en la cual la especificación va a ser desarrollada es objeto asimismo de una revisión de seguridad independiente. Las tarjetas "chip" de Visa utilizan componentes de las mejores compañías de semiconductores. Aunque tenemos absoluta confianza en la calidad de su trabajo, ninguno puede revisar de manera adecuada su propio trabajo. No hay sustituto posible para una revisión independiente. Cada "chip" puede tener uno o más sistemas operativos. La documentación del sistema operativo se revisa con el objetivo de conocer cuales son sus fortalezas y sus debilidades. Cada sistema operativo está diseñado para diferentes tipos de aplicaciones, así uno pensado para una aplicación de telefonía GSM puede tener características diferentes de otro especialmente diseñado para la industria financiera. Cada "chip" y cada sistema operativo pueden tener múltiples aplicaciones, sea en forma de distintas tarjetas monoaplicación o combinadas en tarjetas multiaplicación. Las especificaciones funcionales que Visa provee son convertidas en especificaciones de diseño detalladas por los suministradores de tarjetas. Estas especificaciones de diseño detalladas están hechas a la medida del "chip" y del sistema operativo en los que van a ser utilizadas, mientras que las especificaciones funcionales de Visa no lo están. Nosotros llevamos a cabo una revisión de seguridad del sistema operativo y de las especificaciones de diseño detalladas, así como de las especificaciones funcionales del "chip". Pero la pregunta clave no es si estos elementos son adecuadamente seguros en sí mismos, sino si son capaces de trabajar juntos adecuadamente para producir una tarjeta final que sea tan segura como se necesita. Por eso el paso final es llevar la implantación final en la tarjeta y hacer una revisión de seguridad con ella. Entonces la sometemos a una serie de ataques del modo en que lo haría un "hacker" experimentado para asegurarnos de que no es susceptible a ninguno de los métodos de ataque conocidos. No creemos que exista ninguna tarjeta absolutamente segura. Por eso no pedimos a los laboratorios que nos digan si la tarjeta es segura o no. Lo que les pedimos es que nos digan cuánto esfuerzo y qué recursos se necesitan para comprometerla. Asumimos que todas las tarjetas pueden romperse. Metodología de valoración Categorizamos los recursos que se necesitan para comprometer una tarjeta de diversas formas. Los recursos primarios son conocimientos, capacidad e inversión. Distintos tipos de ataques requieren distintas capacidades por parte del atacante. Los ataques al "hardware" requieren un cierto grado de ingeniería inversa del "chip". Todo lo que ha sido diseñado en ingeniería puede ser objeto de ingeniería inversa y existen herramientas y técnicas específicas para hacerlo. Estas herramientas son equipo estándar en los laboratorios de desarrollo de semiconductores, donde las utilizan generalmente para probar y eliminar errores en nuevos "chips". Por supuesto, se requiere un cierto nivel de conocimientos de ingeniería para hacerlo, y también cierta capacidad y experiencia en el manejo del equipo y las técnicas requeridas. Afortunadamente, estas capacidades y conocimientos requieren un cierto grado de especialización. Tal vez no todos los ingenieros de telecomunicaciones serán capaces de hacerlo, pero muchos pueden. Las herramientas necesarias son a menudo muy caras, pero a veces pueden encontrarse de segunda mano o alquilarse a un coste muchísimo más reducido que su precio de compra. Muchas escuelas técnicas y universidades ponen estos equipos a disposición de los estudiantes y personal con relativamente escasa supervisión. "Hackers" y académicos tienen acceso a ellos, y los criminales potenciales pueden matricularse en escuelas como el resto del mundo. Los ataques al "software" requieren otro tipo de conocimientos: cálculo, diseño de protocolos y seguridad informática. También requieren una capacidad especial, pero hay muchísima más gente que la tiene. Las tarjetas inteligentes dependen generalmente de la criptografía para al menos parte de su seguridad. Los conocimientos de criptografía y la capacidad para la misma son diferentes de los requeridos para el "hardware" y el "software". La criptografía requiere un talento especial. Para llevar a cabo el tipo de evaluaciones de seguridad que necesitamos, a veces necesitamos enviar tarjetas a diferentes laboratorios para distintos tipos de pruebas. Sólo cuando las hemos probado contra todas las posibilidades de ataque que conocemos sabemos si contamos con el nivel de seguridad que necesitamos. Además de esto, preguntamos cuantos componentes (tarjetas) se necesitan para generar un ataque que pueda comprometer a un volumen de tarjetas significativo. Algunos tipos de ataque requieren destruir la tarjeta, pero en su desarrollo se pueden adquirir valiosos conocimientos que permitan que el siguiente ataque sea mucho más sencillo y menos destructivo. En consecuencia, un ataque que requiere muchas tarjetas resulta menos amenazador que uno que pueda realizarse con una sola tarjeta. También necesitamos conocer cuanto tiempo se requiere para comprometer una tarjeta. Se han hecho estimaciones del tiempo requerido para buscar todas las claves posibles de un esquema criptográfico, utilizando ordenadores de gran potencia; esto es lo que se conoce como un ataque de "fuerza bruta". Cualquier análisis que dijera que serían necesarios 100 ordenadores potentes haciendo cálculos durante un año sería muy tranquilizador. Un ataque que tuviera una probabilidad razonable de éxito utilizando un PC Pentium durante una semana sería mucho más preocupante. Por último, necesitamos conocer el valor de lo comprometido. Los requerimientos de seguridad para una tarjeta desechable de bajo valor son inferiores a los de una tarjeta monedero recargable. Una tarjeta diseñada para proteger unos saldos de cientos de miles de Ptas. tendrá mayores exigencias, pero aún así menores que otra tarjeta diseñada para proteger varios millones de Ptas. Es importante recordar que el objetivo es que el coste y el esfuerzo requeridos para un ataque con éxito sean significativamente superiores al beneficio del mismo. Y esto no podemos evaluarlo hasta que no sepamos cual puede ser el beneficio. Una vez conocidos los niveles de capacidad y experiencia, conocimientos, capital o inversión, tiempo y número de componentes requeridos para llegar a comprometer una tarjeta que protege ciertos valores, podemos decidir si la seguridad es o no la apropiada. De cualquier modo, las herramientas analíticas mejoran continuamente, los ordenadores son más y más potentes, los criminales y los "hackers" aprenden igual que lo hacemos nosotros. Por eso, los resultados de las evaluaciones no pueden ser "para siempre". Esto es sensiblemente diferente de una evaluación funcional, en la cual la tarjeta o ha implantado o no ha implantado adecuadamente una especificación. Las evaluaciones de seguridad son válidas por un período de tiempo limitado, generalmente de 1 a 3 años. Después de este período necesitamos re-examinar las tarjetas a la luz de los cambios acontecidos en el mismo. Si no se han producido cambios significativos, la validez de la evaluación puede extenderse. Pero si han aparecido ataques nuevos o más efectivos, deberá ser repetida. Las Directrices de Visa Visa produjo en 1997 una Guía o serie de directrices para los diseñadores de microprocesadores y tarjetas inteligentes. Son recomendaciones que se refieren a las características de seguridad que generalmente nos gustaría encontrarnos en las evaluaciones que efectuamos. No son requerimientos y, ciertamente, no son requerimientos aplicables a cualquier tarjeta inteligente Visa ya que estos varían dependiendo de la aplicación. La Guía contiene 35 directrices de especificaciones de diseño, 45 directrices de diseño del circuito integrado, 60 directrices para el software, 46 directrices para la implantación y 21 "tests" o pruebas específicas para ser llevadas a cabo. Muchas de ellas dicen lo que debería hacerse, pero no necesariamente como hacerlo. Nuestra intención era y es animar a los diseñadores a reconocer y solucionar estos problemas de seguridad, pero no queremos imponer ninguna solución determinada para los mismos. Estamos convencidos de que la industria sale más beneficiada animando a los diseñadores y programadores a ejercitar su creatividad para que aparezcan diferentes aproximaciones a las soluciones de los problemas. La Guía de directrices ha estado disponible en todo momento para cualquiera que tuviera un interés legítimo en ella. Conclusiones En nuestro sistema, un "aprobado" significa que el ratio coste / beneficio para comprometer el valor protegido por la tarjeta es alto. No hay ninguna tarjeta inteligente absolutamente segura. Todo "aprobado" tiene fecha de caducidad. El tipo de pruebas que realizamos requiere un alto nivel de conocimientos y experiencia. Hay pocos lugares en el mundo donde pueden realizarlas. Hemos contratado con varios laboratorios y estamos buscando otros nuevos. Las pruebas son caras y requieren tiempo. A medio plazo, queremos que sean los suministradores quienes se evalúen a sí mismos contra un estándar en el que todos nos podamos reconocer, aunque el trabajo siga siendo realizado por laboratorios independientes. Nosotros nos limitaríamos a revisar los resultados o hacer alguna confirmación o prueba adicional con nuevos ataques, ya que continuaríamos nuestra labor de I+D. No podemos abdicar de nuestra responsabilidad ante nuestros más de 21.000 Entidades Miembros. Nuestra recomendación es que todo usuario de tarjetas inteligentes piense cuidadosamente qué es un nivel de riesgo admisible para él, desarrollar unos conocimientos en como las tarjetas pueden ser atacadas y tener revisiones de seguridad independientes que confirmen que posee un nivel de seguridad adecuado para sus aplicaciones. Publicado en el Boletín del Criptonomicón #47 y #49. Francisco Ginel es director de Gestión de Riesgos y Seguridad de Visa Internacional.
Puedes consultarlos por temas, o también por orden de aparición en el boletín.
Si consideras que este artículo puede interesarle a alguien que conozcas, puedes enviárselo por correo electrónico. No tienes más que indicar la dirección del destinatario, el asunto y tu nombre. Copyright © 1997-2000 Gonzalo Álvarez Marañón, CSIC. Todos los derechos reservados. Criptonomicón es un servicio ofrecido libremente desde el Instituto de Física Aplicada del CSIC. Para información sobre privacidad, por favor consulte la declaración de política sobre privacidad. Para sugerencias, comentarios o quejas, acuda al libro de visitas. Para contribuir al Criptonomicón, lea la página de contribuciones. |