API de billetera orientada al público segura a la que se accede mediante dispositivos móviles

-3

Estoy implementando una aplicación de billetera móvil pública donde el usuario puede agregar su propia tarjeta, como Android Pay o Samsung Pay en un dispositivo Android.

La forma estándar en que funcionan inicialmente estas aplicaciones es la siguiente:

  1. aplicación de billetera abierta
  2. Toca para agregar una nueva tarjeta
  3. Proporcione información como PAN y fecha de caducidad
  4. Validar contra un código de tiempo
  5. Utilice la aplicación para el pago

Inicialmente no hay autenticación, por lo que asumo que la aplicación debe estar comunicándose con alguna API pública.

Entonces, ¿cómo se aseguran estas APIs? Quisiera evitar el acceso a la API por parte de cualquiera para evitar ataques DoS y similares.

Si la aplicación contiene algunas claves, se proporcionan en un paquete de aplicación y se pueden restaurar mediante ingeniería inversa. ¿Cuándo se instala inicialmente la aplicación desde Google Play, cómo puede asegurar que la API pública no sea accesible para todos sin autenticación de usuario antes de agregar datos de la tarjeta?

    
pregunta user1563721 26.02.2018 - 21:53
fuente

1 respuesta

2
  

Me gustaría evitar el acceso a la API por parte de cualquier persona para evitar ataques DoS y similares.

Debe negociar una clave para autenticarse, por lo que tanto la parte segura como la parte anterior están expuestas. La parte segura solo procesa las transacciones si está registrado y tiene un token. Además, DoS no es su principal preocupación, las personas que roban el dinero lo son. El DoS realizado por usuarios no autenticados está protegido principalmente en un nivel de red.

  

Si la aplicación contiene algunas claves, se proporcionan en un paquete de aplicación y se pueden restaurar mediante ingeniería inversa.

Sí, es por eso que su token de pago no se coloca en la aplicación, solo la identidad del servidor de pago, y puede descargar una copia de la aplicación sin tener que insertar la clave cada vez. Recibirás un token de la API. Su autenticación probablemente se realizará con cifrado asimétrico y esquemas de negociación de claves para que pueda aceptar una clave en línea de manera segura. Mire a Diffie-Hellman para tener una idea de esto.

Le recomiendo que utilice un servicio externo (como Google / Apple pay) si los mecanismos de autenticación son algo nuevo para usted. Es muy importante que el dinero de las personas que lo usan sea seguro, y hay muchas cosas que podrían salir mal.

    
respondido por el J.A.K. 27.02.2018 - 13:57
fuente

Lea otras preguntas en las etiquetas