Analytics

lunes, 7 de enero de 2013

Tarjetas de débito/crédito: Una breve visión de su seguridad

Las tarjetas de pago son elementos con los que actualmente estamos muy familiarizados. Estas tarjetas nos hacen la vida más fácil, ya que nos permiten realizar transacciones monetarias sin llevar dinero encimo y prácticamente todos disponer de, al menos, una que usamos a diario.
Pero, ¿Somos conscientes de los riesgos asociados a su uso? ¿Conocemos los controles de seguridad que se implementan? ¿Sabemos si estos controles presentan debilidades?

Un poco de historia

La forma de realizar transacciones ha ido evolucionando a lo largo de la historia. Lo que en un principio era el intercambio de cosas (cabras por madera, sal por pimientos, huevos por tomates,…) ha ido evolucionando con el paso del tiempo. Primero inventamos el dinero, universalizando el intercambio a un único elemento, y posteriormente inventamos las tarjetas, que se convertirían en uno de los elementos determinantes en el impulso económico.

Al contrario de lo que muchos podemos pensar, las tarjetas de pago no nacen en los bancos, sino en negocios como restaurantes o gasolineras, que en la década de 1920 publican sus tarjetas de pago y fidelización. No fue hasta 1946 que un banco emitió su primera tarjeta de crédito y desde entonces han ido evolucionando hasta lo que conocemos hoy en día.

Actualmente coexisten las tarjetas de pago y fidelización que permiten operar en negocios concretos con las tarjetas de pago bancarias que permiten pagar en cualquier tipo de negocio a través de diversos medios. Las tarjetas más entendidas pertenecen a VISA, Mastercard y American Express.

Los actores y los datos de un pago

Las tarjetas de pago actuales pueden ser utilizadas a través de diversos medios. Una misma tarjeta nos va a servir para pagar cara-a-cara en un comercio, pagar a través de Internet o pagar telefónicamente, pero los actores que intervienen en un pago o transacción son siempre los mismos:
  • Cardholder: Propietario de la tarjeta (El que paga).
  • Merchant: El comercio (El que cobra).
  • Issuer bank / Merchant bank: Los intermediarios.
Para que la transacción se pueda realizar es necesario que el cardholder y el merchant pongan a disposición de los bancos los siguientes datos:
  • PAN (Personal Account Number): El número de la tarjeta.
  • Merchant ID: El identificador del comercio.
  • Amount: Cantidad monetaria.
Actualmente la mayoría de las transacciones se realizan proporcionando más información, cuyo objetivo es establecer controles de seguridad que eviten el fraude.

Los controles de seguridad

Debido a su naturaleza las tarjetas de pago se convierten rápidamente en un objetivo para los criminales y las mafias que ven en ellas una gran oportunidad para cometer fraude. Para tratar de evitarlo se establecen dos controles de seguridad:
  • Card Authentication: Evalúa la autenticidad de una tarjeta, con el objetivo de evitar que alguien pueda crear tarjetas falsas.
  • Cardholder Verification: Evalúa que la persona que presenta una tarjeta es el auténtico propietario, con el objetivo de evitar que alguien pueda hacer uso de una tarjeta que no es suya (por ejemplo una tarjeta robada).
Estos controles de seguridad pueden implementarse en modo offline y modo online. En el modo offline la tarjeta es capaz de realizar los controles de forma completamente autónoma sin la necesidad de que haya comunicación con otros elementos externos, mientras que en el modo online intervienen otros elementos del backend bancario. En el modo online el TPV (Terminal Punto de Venta) puede comunicarse con dicho backend para realizar verificaciones, mientras que en el modo offline no.

Generación tras generación

Desde su creación, las tarjetas de pago han ido evolucionando y mejorando, dando lugar a diversas generaciones.
La primera generación de tarjetas de pago eran tarjetas de papel o plástico que tenían un número apuntado (en ocasiones a bolígrafo). Para facilitar la toma de datos y evitar que fuera necesario apuntar los números cada vez se empezaron a usar tarjetas con relieve en los números de manera que estos podrían ser calcados con facilidad usando máquinas específicas.

Inicialmente no existía ningún tipo de card authentication más allá de que el número fuera válido cumpliendo una serie de checksums, pero más adelante se incorporaron algunos elementos como los hologramas.

Para verificar la identidad del propietario se usaba algún elemento identificativo, como puede ser el DNI, y la firma correspondiente. No es necesario ser un genio para darse cuenta de que los controles de seguridad establecidos eran excesivamente pobres y que cometer fraude no conllevaba ninguna dificultad, pues bastaba con crear una tarjeta de papel o plástico idéntica a la original y falsear la firma en el momento de hacer el pago.

Para la segunda generación de tarjetas se incorporan las bandas magnéticas, cuyo objetivo es acelerar los pagos facilitando la obtención de los datos mediante un lector de banda magnética.

Además posibilita que, si se desea, el número no esté escrito y no sea visible, algo que se desestima por temas de compatibilidad con los lectores calcadores antiguos.

Para evitar la falsificación de tarjetas se mantienen los controles anteriores y se añade a la banda magnética un CVC (Card Verification Code) que no es visible. Con esto evitan que conociendo un número de tarjeta sea posible crear una banda magnética válida, sin embargo no evita el clonado de bandas magnéticas.

La verificación del propietario sigue haciéndose mediante el DNI y la firma, aunque en algunos casos se incorpora a la tarjeta una foto facial del propietario.

Esta generación coincide con la aparición de los cajeros automáticos que interactúan con este tipo de tarjetas y con el boom del crédito, por lo que su uso aumenta de manera significativa, convirtiéndose en auténticos objetivos para los defraudadores y las mafias.

A continuación se presentan algunos de los escenarios de ataque posibles a esta generación de tarjetas:
  • Provocar un fallback inhabilitando la banda magnética de la tarjeta, por ejemplo mediante un imán. En algunos comercios seguirán operando como si las tarjetas fueran de primera generación mediante el calcador o apuntando los números.
  • Clonar tarjetas es muy sencillo, basta con leer una tarjeta original y plasmar la información bit-a-bit en otra tarjeta. Las formas de leer tarjetas ajenas puede variar: lectores falsos en cajeros automáticos, camareros de restaurantes con lectores, etc.
  • El fraude en Internet es relativamente sencillo, pues basta con conocer el número de tarjeta, la fecha de caducidad (datos visibles y contenidos en la banda magnética), y en algunos casos (cada vez más) un CVC2 visible en el dorso de la tarjeta.
Debido al aumento exponencial del fraude para la tercera generación se adopta el uso de tarjetas inteligentes o smartcards, que gracias a su capacidad de procesamiento permiten implementar controles de seguridad más sofisticados. El funcionamiento de este tipo de tarjetas y sus controles de seguridad quedan definidos en el estándar EMV (Europay Mastercard and Visa) mantenido por EMVco.

El estándar EMV es muy amplio y se caracteriza por su flexibilidad a la hora de configurar las tarjetas. Se definen tres métodos distintos para autenticar la tarjeta y varios métodos para verificar al propietario.

Los métodos para autenticar las tarjetas son:
  • SDA (Static Data Authentication): Mediante un sistema de PKI se firman todos los datos contenidos en la tarjeta. La verificación de que los datos son correctos puede hacerse online y offline.
  • DDA (Dynamic Data Authentication): Mediante criptografía y un sistema de clave asimétrica se genera una firma dinámica de los datos. Es importante, y EMV obliga a ello, que entre los datos firmados se incluya un número no predecible generado por el terminal. La verificación de los datos puede hacerse online y offline.
  • CDA (Combined Data Authentication): Al igual que con el método DDA se genera una firma dinámica de los datos, pero además se incluye la generación de uno o varios criptogramas (generalmente uno para autenticar la tarjeta y otro para validar la transacción).
Los métodos para verificar el propietario son (algunos de puede combinarse entre ellos):
  • PIN online: Se solicita el PIN al propietario y éste se valida online.
  • PIN offline cifrado: Se solicita el PIN al propietario y éste se valida offline contra la propia tarjeta enviándolo cifrado.
  • PIN offline sin cifrar: Se solicita el PIN al propietario y éste se valida offline contra la propia tarjeta enviándolo en texto plano.
  • Firma: Se solicita al propietario que se identifique (mediante el DNI) y que firme un resguardo.
  • No requerido: No se solicita verificación. Actualmente es usado, sobre todo, en micro-pagos contactless.
Gracias a los controles de seguridad establecidos el fraude se reduce considerablemente, sin embargo siguen existiendo ataques a realizar en algunos casos:
  • Sigue siendo posible provocar un fallback inhabilitando el chip y forzando el uso de la banda magnética.
  • Las tarjetas que implementan el mecanismo autenticación SDA son vulnerables a ataques de replay, ya que los datos usados para autenticar son siempre iguales y no cambia en cada petición.
  • La verificación de PIN offline puede evadirse usando hardware específico (por ejemplo SmartCard Detective) que, colocándose en medio de la comunicación entre la tarjeta y el terminal, responden siempre OK a la introducción de un PIN aunque este sea inválido.
  • Si el número no predecible usado por los métodos de autenticación DDA y CDA es predecible (como se ha comprobado que ocurre en algunos cajeros automáticos) es posible atacar al criptograma en lo que se conoce como ataques de preplay.
  • Otros: Está en proyecto la ampliación de métodos, por ejemplo con autenticación biométrica, obtención de autenticación de elementos externos (como un teléfono móvil), etc.
Existe una generación impás que podríamos llamar tercera generación y media que consiste, básicamente, en cambiar la interfaz física de comunicación para que ésta se realice sin contacto a través de NFC. Son las tarjetas llamadas que el ámbito comercial se han hecho llamar contactless.

Estas tarjetas pueden ser interrogadas colocando un lector NFC en el radio de acción, que suelen ser unos pocos centímetros (entre 3 y 5). Se sigue utilizando el estándar EMV pero con algunas modificaciones que permiten acelerar el proceso simplificando la comunicación y sacrificando, en parte, la seguridad:

En el caso de CDA no es posible generar los dos criptogramas en el tiempo en que la tarjeta está expuesta al lector, por lo que se genera un sólo criptograma que pretende hacer las dos funcionalidades; autenticar la tarjeta y autorizar la transacción.

También con el objetivo de acelerar el proceso de pago se ha optado por omitir la verificación del propietario  en micropagos (normalmente inferiores a 20€), por lo que no se solicitará el PIN.
Todo esto ocasiona que a los riesgos ya comentados se le añadan algunos nuevos, algunos de los cuales tienen impacto directo sobre el fraude y otros únicamente sobre la confidencialidad de los datos:
  • Es más complicado controlar quien interactúa con una tarjeta. A través de NFC cualquiera que esté lo suficientemente cerca puede interrogarla y obtener diversos datos entre los que se encuentran: PAN, fecha de caducidad, nombre completo del propietario, etc.
  • Un TPV podría interactuar con una tarjeta y tramitar un micro-pago sin la intervención del propietario de la tarjeta. Por ejemplo el propietario de un comercio podría entrar con él en el metro y realizar cobros a la gente cercana.
  • Las comunicaciones entre la tarjeta y el terminal no van cifradas, ya que ni EMV ni NFC lo implementa, por lo que alguien que disponga de un hardware específico puede llegar a interceptar una comunicación si se encuentra lo suficientemente cerca.
  • Una tarjeta robada puede ser usada para realizar micro-pagos, ya que no se verifica la identidad del propietario
La mayoría de los riesgos que pueden ocasionar fraude pueden quedar mitigados por controles de seguridad implementados en backend, que es lo que hacen la mayoría de los bancos. Por ejemplo; limitando el la cantidad de micro-pagos sin PIN que se pueden hacer consecutivamente (si se supera el límite pedirá el PIN aunque se trate de un micropago).

Sin embargo debemos considerar que los problemas de confidencialidad también pueden desencadenar fraude, ya que existen numerosas páginas web (entre las que se encuentra Amazon) que no solicitan el CVC2 al realizar un pago con tarjeta de crédito. Basta con disponer del PAN y la fecha de caducidad, datos que pueden ser obtenidos interrogando la tarjeta.

La cuarta generación de tarjetas de crédito no son realmente tarjetas de crédito. Estamos entrando en una era en la que los teléfonos móviles son capaces de hacer de todo; navegar por internet, recibir correo electrónico, mensajería instantánea, juegos y aplicaciones de todo tipo, etc. Y como no podía ser menos; pagar usando la interfaz NFC con la que se ha dotado a algunos de los teléfonos.

Existen diversas aplicaciones que pretenden convertir un móvil con NFC en una tarjeta de crédito: Google Wallet, CaixaWallet, etc. Lo que hacen estas aplicaciones es emular el funcionamiento de una smartcard y EMV a través de la interfaz NFC del teléfono.

Su uso aún está poco extendido pero el 2013 podría ser el año de su consolidación, que vendrá acompañada de diversos riesgos:
  • Una tarjeta smartcard puede trabajar en entornos hostiles gracias a sus controles de seguridad vía hardware. Algunos teléfonos actuales proporcionan un mecanismo de Secure Environment que puede ser usado por los wallet, pero este no está tan auditado y analizado como las smartcard.
  • Las tarjetas de pago están diseñadas para un uso específico, sin embargo el uso de los teléfonos móviles es mucho más generalista. En el mismo entorno que el wallet se ejecutan juegos, se accede al correo electrónico, se navega por internet, etc. Aplicaciones malintencionadas podrían tratar de comprometer el wallet para obtener datos sensibles o cometer fraude.


Autor: Albert Puigsech - CEH, CEI, OPST, PCI ASV
Departamento de Auditoría