sábado, 29 de octubre de 2016

Primera aproximación a Apple Pay





¡Hola de nuevo! En esta entrada os traigo información relacionada con Apple Pay, la cual me he tenido que trabajar para unas de las actividades propuestas de un curso online que estoy realizando a través de INCIBE relacionado con Ciberseguridad en dispositivos móviles. Y quería compartirla. Los que me conocéis, sabéis que no soy “muy de la gente de cupertino”, pero para sucesivas entradas trataremos los detalles de su “homónima” en Android que en un alarde de imaginación se llama…Sí, Android Pay. También me he tenido que informar acerca de Android Pay para poder identificar las diferencias principales de ambas tecnologías que expondré al final, pero no al detalle de Apple Pay. En líneas generales son dos sistemas muy parecidos en conceptos, aunque difieren en la forma de implementación de los mismos.
Apple Pay es un sistema de pago “contactless” desarrollado por Apple para promover el pago a través de sus dispositivos anunciada en Septiembre de 2014. Dicho sistema  permite el pago en tiendas físicas a través de NFC, pero también facilita el pago a través de apps que lo permitan así como a través de la web. Proporcionado todo ello un sistema fácil, cómodo y seguro para el usuario aunque todo ello con matices. Aun así, estos métodos de pagos ya sea por desconfianza del usuario, por el lento despliegue de estos sistemas de pagos, etc lo cierto es que aún no es un sistema común de pagos en España.
Es un sistema de pago seguro en principio, asumiendo que no existe la seguridad al 100%. Se basa en un sistema de “tokenización” en el que en ningún caso se almacena en el dispositivo ni en los servidores de Apple información alguna relativa a las tarjetas con las que el usuario lleva a cabo las transacciones.  Apple Pay no recoge información de ninguna transacción, dichas transacciones son entre el usuario, el comerciante y la entidad emisora de la tarjeta.
Por otra parte, Apple no proporciona información de las tarjetas a los vendedores.
Apple Pay se basa en un chip aislado denominado Secure Element en el que una vez validada la tarjeta del usuario se genera, se asigna, se cifra y se guarda un número de cuenta de dispositivo, no un número de cuenta bancario.
Los componentes principales de Apple Pay son:

  • Secure Element: chip aislado utilizado para almacenar de forma cifrada el número de cuenta de dispositivo y generar para cada compra un código aleatorio para la generación de un número de pago.
  • Controlador NFC (Near Field Communication), es el encargado de gestionar los protocolos y poner en contacto a Secure Element y el TPV del vendedor.
  • Wallet: es una app encargada de añadir,gestionar y almacenar las tarjetas que usará el sistema Apple Pay.
  • Secure Enclave: se encarga del proceso de autenticación y habilitar el pago si procede. Almacena el resumen de los datos en los que se basará Touch ID para verificar la identidad del usuario.
  • Apple Pay Servers: gestionan  el estado de las tarjetas en Wallet y el Número de cuenta del dispositivo. Comunicando el dispositivo con la red de servidores de pagos. También es responsable del recifrado de las credenciales de pagos para los pagos dentro de las apps.


Dispositivos compatibles

Los dispositivos compatibles son iPhones desde iPhone 6, Apple Watch, iPad Air 2, iPad Mini 3 y 4, y los iPad Pro de 9,7 y 11,9 pulgadas. Para que la funcionalidad sea completa y poder pagar con el terminal en un TPV en una tienda, el dispositivo además de Secure Element debe contener tecnología NFC, si sólo se dispone de Secure Element sólo se podrá comprar a través de apps y vía web.



Fases y funcionamiento general del sistema

  • Se dan de alta las tarjetas que deseemos utilizar como medio de pago en Wallet. Para ello se disponen de las siguientes opciones:
    • Se introducen los datos directamente en Wallet
    • Fotografiando la tarjeta
    • Pasando a Wallet las tarjetas definidas en una cuenta de iTunes.
  • Una vez se introducen las tarjetas Wallet llevará a cabo un proceso de verificación de las mismas y si ese proceso es exitoso se darán de alta. En ese momento se genera, se asigna, se cifra y se guarda un número de cuenta de dispositivo en Secure Element.
  • Cuando se lleva a cabo una compra acercando el dispositivo al TPV del establecimiento se debe seleccionar a través de Wallet la tarjeta con la que se pagará. La transacción se llevará a cabo cifrada a través de NFC, Secure Element generará un número de pago mediante un token aleatorio de un solo uso y un código de seguridad (CVV) dinámico que cambiará con cada compra.
  •  Tras confirmar el importe a pagar, con Touch ID se garantiza la identidad del usuario.
  •  En caso de perdida y/ o robo a través de la app Find My Phone se puede bloquear el terminal y se inhabilitarán los pagos.



Mecanismos de seguridad utilizados

  • Cifrado de la información (número de cuenta del dispositivo) en el dispositivo mediante el estándar AES.
  • Localización segura en Secure Element, el cual es un chip aislado.
  • Comunicaciones cifradas tanto en el proceso de alta de las tarjetas a través de ssl como en las transacciones a través de NFC.
  • Sistema de identificación mediante Touch ID.
  • Utilización sistema de tokenización de un solo uso y aleatorio para crear e identificar los pagos.
  • Utilización de un código de seguridad dinámico.
  • No utilización de la información de las tarjetas en las transacciones.
  • No exposición ni de las tarjetas ni de la información de la misma durante el proceso de compra.
  • Apple Pay no guarda información de las tarjetas en los servidores ni en el dispositivo.



Posibles amenazas en su uso

La principal amenaza que puede sufrirse es la suplantación, propiciada por la vulneración de algún proceso en el que se apoya Apple Pay.
  • Utilización de tarjetas robadas incluidas en Wallet. Este problema no es tanto técnico como de metodología a la hora de comprobar la titularidad de las mismas en las correspondientes entidades bancarias. Se establece una cadena de confianza a favor de la facilidad de uso debilitándose el proceso de autenticación. La verificación adicional debería ser obligatoria, mediante un segundo factor de autenticación como usuario clave, sms al móvil con un código, tarjetas de coordenadas, etc establecidas previamente con la entidad bancaria.
  • Problemas derivados no del sistema en sí sino durante el proceso de comunicación entre el dispositivo y los servidores de Apple Pay durante el registro de las tarjetas. Posible interceptación de las comunicaciones. Los usuarios deben favorecer escenarios y comportamientos seguros a la hora realizar las comunicaciones.
  • Suplantación del usuario legítimo por la exposición del código del dispositivo y no utilización del Touch ID como método de autenticación durante el proceso de compra y tras haber perdido el control sobre el terminal por pérdida o robo. Esta circunstancia es heredada de las tarjetas usuales, en el momento en el que se detecta la perdida hay que bloquear el dispositivo para inhabilitar los posibles pagos.



Diferencias respecto a Android Pay

Al margen del número de entidades bancarias adheridas a cada una de ellas, la cantidad de dispositivos que los puedan soportar, etc las diferencias principales de estas dos tecnologías de pago se centran en:
  • Lugar de creación del token para llevar a cabo el número de pago.
o   Apple Pay lo genera en local en un chip denominado Secure Element
o   Android Pay hace uso de Host Card Emulation (HCE) servidor en la nube para la generación de los token.
  • La característica anterior condiciona a que con Android Pay necesita tener conexión a Internet para llevar a cabo la transacción (con los riesgos adicionales derivados de dicha comunicación), mientras que con Apple Pay al generarse en local no necesita de conexión a Internet.

Espero os haya resultado al menos interesante, a mí me lo ha parecido. Es importante saber cómo funcionan las cosas. Como siempre os animo que con vuestros comentarios completemos la información, la corrijamos etc. Además me encantaría que compartiéramos las experiencias de uso si las habéis tenido.
¿Nos leemos en la próxima?



Enlaces

https://www.apple.com/business/docs/iOS_Security_Guide.pdf
https://developer.apple.com/apple-pay/
https://www.android.com/pay/
https://developers.google.com/android-pay
https://support.apple.com/en-us/HT203027
 

Radar COVID

Tras largo tiempo sin publicar una entrada en el Blog, me he animado a escribir acerca de una App que podría llegar a ser muy útil en el con...