Sto implementando un'applicazione wallet mobile pubblica in cui l'utente può aggiungere la propria scheda, come Android Pay o Samsung Pay su dispositivo Android.
Il modo standard di funzionamento iniziale di queste applicazioni è il seguente:
- Apri app portafoglio
- Tocca su aggiungi nuova carta
- Fornisci informazioni come PAN e data di scadenza
- Convalida con un codice temporale
- Utilizza l'app per il pagamento
Inizialmente non esiste un'autenticazione, quindi presumo che l'applicazione debba comunicare con qualche API pubblica.
Quindi, come vengono protette queste API? Vorrei evitare l'accesso all'API da parte di chiunque per prevenire attacchi DoS e simili.
Se l'applicazione contiene alcune chiavi, vengono fornite in un pacchetto di applicazioni e possono essere ripristinate mediante il reverse engineering. Quando viene installata inizialmente l'applicazione da Google Play, come può proteggere l'API pubblica per non essere accessibile a tutti senza l'autenticazione dell'utente prima di aggiungere i dati della carta?