Autorizzazione dell'uso di app da un negozio pubblico senza alcun servizio di back-end

3

Ho un progetto in cui sono coinvolto in cui è necessario distribuire un'app mobile a un pubblico specifico. A causa delle restrizioni normative nel mercato di destinazione, solo a questo segmento di pubblico è consentito accedere ai dati all'interno dell'app, ma sarà servito da app store pubblici (sono previste più piattaforme).

Sto cercando pensieri su un metodo di autorizzazione che non dipende da un servizio di back-end come una struttura di registrazione. Tutti i dati nell'app sono autosufficienti e una volta scaricata l'app non ci si aspetta (e in molti casi, nessuna possibilità) di connettività internet.

Un'opzione sarebbe un singolo codice di "sblocco" che potrebbe essere fornito ai destinatari target dell'app, ma si teme che, se questo fosse ridistribuito, ovvierebbe ovviamente al controllo dell'accesso per chiunque avesse ottenuto il codice. Ovviamente c'è anche il rischio che qualsiasi codice contenuto nell'app possa essere decodificato ma di nuovo, così come i dati che stiamo cercando di proteggere in primo luogo.

In definitiva ho bisogno di trovare un equilibrio tra sicurezza e praticità. I dati protetti non sono commercialmente sensibili, ma i controlli di accesso sono dovuti a obblighi normativi, quindi l'obbligo di proteggerli è più di implementare "misure sufficienti" piuttosto che puntare a bulletproof.

Qualcuno può condividere alcune idee su come l'app può essere servita da un app store pubblico e sbloccata senza il rischio di un singolo segreto come un codice di accesso ridistribuito?

    
posta Troy Hunt 22.03.2013 - 00:41
fonte

2 risposte

4

Sembra che tu stia cercando di rendere entrambi i dati disponibili al pubblico e di limitarli a un numero limitato di persone, il che è una contraddizione in termini.

Se sei solo dopo il controllo dell'accesso a livello di interfaccia utente nell'app, potresti inventare uno schema ridicolo, ma qualcuno potrebbe estrarre i dati dall'app con probabilmente poco più di un'utilità di decompressione, a seconda dei dati e come è memorizzato.

Se è possibile utilizzare una singola password, è possibile utilizzare la derivazione della chiave per decrittografare i dati crittografati memorizzati nell'app, tuttavia si è già scontato un "codice" di sblocco singolo. A meno che tu non abbia un elenco di codici, ma ciò non risolve il problema che hai delineato.

L'unica opzione che riesco a pensare che soddisfi tutti i requisiti elencati sarebbe a due fattori: una whitelist ID dispositivo in combinazione con la derivazione di chiavi e la crittografia. Non c'è quasi nessun modo per superare Apple e Microsoft.

Non mi sembra particolarmente fattibile.

    
risposta data 22.03.2013 - 00:55
fonte
3

I tuoi requisiti sembrano essere abbastanza contraddittori. Ho intenzione di suggerire uno schema che potrebbe essere o meno attuabile per voi. Decidi tu.

Suggerisco che l'app che invii agli app store pubblici non contenga alcuna informazione sensibile. Invece, l'applicazione dovrebbe fornire un mezzo per scaricare i dati dai propri server di back-end in modo sicuro. L'app può salvare i dati nella memoria del dispositivo in modo che il download debba avvenire una sola volta. Puoi fornire a ogni utente legittimo un codice distinto che consente all'applicazione di scaricare quei dati una volta . Ciò offre due vantaggi: consente di confermare chi sta scaricando i dati dal server e fornisce un mezzo per aggiornare l'app con nuovi dati.

Per proteggere i dati in caso di furto del dispositivo, è necessario utilizzare la crittografia. Non c'è modo di aggirarlo. La crittografia lato client con una chiave derivata da una password scelta dall'utente che utilizza una funzione di derivazione della chiave strong dovrebbe essere sufficiente. Questo soddisfa anche il tuo requisito di non permettere che i dati vengano sbloccati con un codice a pass singolo che viene ridistribuito, poiché ogni utente avrà la sua password.

Non avendo dimestichezza con le regole degli app store Apple o Microsoft, non sono sicuro che autorizzeranno tali app nel sistema.

    
risposta data 22.03.2013 - 05:28
fonte

Leggi altre domande sui tag