secure wallet API con accesso pubblico accessibile da dispositivi mobili

-3

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:

  1. Apri app portafoglio
  2. Tocca su aggiungi nuova carta
  3. Fornisci informazioni come PAN e data di scadenza
  4. Convalida con un codice temporale
  5. 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?

    
posta user1563721 26.02.2018 - 21:53
fonte

1 risposta

2

I would like to avoid accessing the API by anyone to prevent DoS attacks and similar.

È necessario negoziare una chiave per l'autenticazione, in modo che sia la parte protetta sia la parte precedente siano esposte. La parte protetta elabora le transazioni solo se sei registrato e hai un token. Anche il DoS non è la tua principale preoccupazione, la gente ruba i soldi. I DoS degli utenti non autenticati sono protetti principalmente a livello di rete.

If the application contains some keys, then they are provided in a application package and can be restored by reverse engineering.

Sì, questo è il motivo per cui il token di pagamento non viene inserito nell'applicazione, solo l'identità del server di pagamento, e puoi scaricare una copia dell'applicazione senza intaccare la chiave ogni volta. Riceverai un token dall'API. L'autenticazione verrà probabilmente eseguita con crittografia asimmetrica e schemi di negoziazione delle chiavi in modo da poter accettare in modo sicuro una chiave online. Guarda in Diffie-Hellman per avere un'idea di questo.

Ti incoraggio strongmente a utilizzare un servizio esterno (come Google / Apple Pay) se i meccanismi di autenticazione sono una novità per te. È molto importante che il denaro delle persone che lo usano sia sicuro, e c'è molto che potrebbe andare storto.

    
risposta data 27.02.2018 - 13:57
fonte

Leggi altre domande sui tag