Mi sono imbattuto in una situazione difficile ... Sto sviluppando un'applicazione mobile che utilizza un server per varie cose. Una parte è che memorizza una coppia id / chiave relativa all'accesso e all'elaborazione delle informazioni sulle transazioni per account specifici. Questo ID / chiave per account specifici viene deciso dinamicamente in base a ciò che accade al client e a quale account deve accedere all'interno del codice sul lato client. Tuttavia, poiché si accede a tutte le informazioni per l'app tramite un'API su HTTP (S), l'id / chiave potrebbe potenzialmente essere pubblicamente disponibile per le persone con cattive intenzioni ..
Sono estremamente paranoico delle violazioni della sicurezza di queste informazioni, ma ho bisogno di trovare un modo per farlo arrivare al cliente in modo sicuro senza possibilità di intercettazione.
Ho pensato ad alcuni modi, ma non ho ideato nulla che sembra a prova di tutto, e non sono sicuro che ci sia qualcosa di garantito dal momento che anche un valore cifrato di questa coppia di id / chiavi può essere acquisito con le credenziali API.
La mia idea principale era una sorta di autenticazione dinamica client / server che è generata in modo univoco e identificabile tra entrambe le entità, insieme a una crittografia a 2 vie salata di questo id / chiave che viene passata al client? Anche se questo potrebbe essere violato se qualcuno è riuscito a scavare nel codice compilato e vedere come viene generata questa autenticazione / sale dinamico.
Ovviamente, è meglio al 100% non dover trasmettere queste informazioni al cliente, ma sfortunatamente in questa situazione specifica non c'è modo di aggirarlo.
Data la delicatezza di queste informazioni, la soluzione qui deve essere solida.