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:
- aplicación de billetera abierta
- Toca para agregar una nueva tarjeta
- Proporcione información como PAN y fecha de caducidad
- Validar contra un código de tiempo
- 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?