Ho creato una bella API REST / JSON che viene utilizzata da altre aziende (i nostri clienti) come servizio B2B. Ciascuno dei nostri clienti ha una coppia nome utente / password e facciamo anche HTTPS e convalidiamo l'IP sorgente delle richieste di assistenza. L'utilizzo del servizio costa denaro e il cliente viene fatturato mensilmente per il suo utilizzo del servizio.
Ora, alcuni clienti stanno costruendo applicazioni mobili che distribuiscono ai loro utenti (B2C - utenti finali). Non tutti questi utenti finali del nostro servizio hanno server e desiderano utilizzare il servizio direttamente dallo smartphone (che tecnicamente non è un grosso problema essendo JSON / REST).
Il problema è che non sono sicuro su come proteggere il servizio dalle frodi. Cosa impedirà a uno sviluppatore di terze parti di disassemblare un'applicazione mobile del cliente e copiare il suo nome utente / password / le credenziali di sicurezza e usarlo nella sua applicazione? Ciò gli permetterebbe di consumare il servizio e addebitare l'utilizzo a uno dei nostri legittimi clienti!
Sono abbastanza sicuro che non esiste una soluzione crittografica perfetta per questo problema, a meno che gli utenti finali non siano obbligati ad autenticarsi su alcuni server. Ma non è sempre così.
Come ultima risorsa suppongo di poter distribuire una libreria offuscata per Android / IPhone, che almeno darebbe l'illusione della sicurezza ...
EDIT (chiarimento):
Fammi provare a semplificare lo scenario.
- Ho un server web non hackerabile che fornisce un'API JSON REST.
- I client mobili accedono direttamente alla mia API. I loro IP non possono essere convalidati. Hanno un sistema operativo standard (Android / IOS).
- Non ci sono altri server coinvolti.
- Non riesco ad accedere al telefono IMEI (è considerato privato), né questo mi aiuterebbe perché non conosco gli utenti finali.
- Esistono diverse applicazioni mobili legali, sviluppate da diverse società che accedono alla nostra API.
- La sicurezza corrente (nome utente / password) è facilmente hackerabile da una società canaglia. Detta società canaglia disassembla un'applicazione mobile legittima e copia il nome utente / password per la loro applicazione illegale. Distribuiscono questa applicazione e profitto (l'utilizzo dell'API viene addebitato alla società da cui hanno rubato le credenziali).
Può essere fermato?