Le migliori pratiche in materia di sicurezza nelle applicazioni mobili [chiusa]

4

Di recente un amico mi ha chiesto informazioni sulle applicazioni mobili e sulla sicurezza che le circonda. Dato che desidera creare un'app mobile che gestisca informazioni molto sicure come i numeri delle carte di credito, stavo iniziando a interrogarmi sulla questione della sicurezza che circonda questi dispositivi. Sembra ragionevole archiviare informazioni sensibili all'interno di un'app mobile? Mi domando perché ho visto dex di classe per i decompilatori java online e immagino che su qualsiasi dispositivo mobile non ci sia garanzia che i dati nelle posizioni protette siano così sicuri come vorrebbero che tu credessi .

Ma non sono un esperto in queste cose; Mi sento un estraneo quando si tratta del meraviglioso mondo della sicurezza. Ecco perché ti chiedo questo, qual è il modo migliore per archiviare in modo sicuro i dati? È possibile archiviare in modo sicuro informazioni / password / file di carta di credito su un dispositivo mobile? In tal caso, quali sono i metodi da adottare per garantire agli utenti che sono state adottate le migliori misure possibili per archiviare in modo sicuro le loro informazioni. In caso contrario, qual è una buona alternativa per memorizzare tutte le informazioni sensibili? Anche allora, con le storie nelle notizie sui dati degli utenti memorizzati nei siti Web che vengono compromessi, quali misure dovrebbero essere prese per garantire che i dati memorizzati siano anche sicuri?

    
posta Bob 19.10.2011 - 03:04
fonte

3 risposte

3

Non puoi realisticamente sperare di proteggere i dati da qualcuno che ha il possesso fisico del dispositivo. Ci sono API che possono farlo in linea di principio, come portachiavi su iOS e i dati privati dell'applicazione su Android (o portachiavi nelle versioni recenti), ma questi non resistono al jailbreak. E anche sui dispositivi Apple, con gli sforzi di Apple per rendere difficile il jailbreak, viene scoperto un nuovo buco e la maggior parte dei nuovi dispositivi viene jailbreak in poche settimane.

A parte le persone in possesso fisico (cioè l'utente, il suo entourage ei ladri di telefoni cellulari), l'altra parte di cui bisogna fare attenzione è altre applicazioni. Gli utenti installano tipicamente molte applicazioni speciali di dubbia provenienza (in pratica non ci sono controlli sul mercato Android, non molto su Apple Store, e gli utenti possono installare applicazioni da altri posti). In questo caso, la soluzione migliore è utilizzare lo spazio di archiviazione per applicazione consigliato della piattaforma e informare gli utenti di mantenere aggiornati i propri dispositivi. Sfortunatamente, questo è spesso non fattibile con Android . L'utilizzo di API standard ha un doppio vantaggio economico: sarà il produttore di sistemi operativi a subire il peso della colpa quando viene scoperto un buco di sicurezza e non sprecare risorse per sviluppare il proprio meccanismo (che con ogni probabilità ha vinto ") essere più sicuro comunque)

Il modo migliore per mantenere riservati i dati non è archiviarli affatto e, in effetti, non gestirli affatto. Se è possibile memorizzare tutti i dati come le carte di credito sul lato server, è meglio; in linea di principio, il lato server può essere protetto. Quindi il link più debole sarà la password dell'utente sul server, che probabilmente memorizzerà sul dispositivo, perché digitare una password ogni volta che si accede a un sito Web su un telefono cellulare non è un'esperienza utente realistica.

Ricorda che se sei un commerciante che gestisce i dati della carta di credito, devi rispettare PCI DSS .

Qualche lettura consigliata su Scambio pila sicurezza :

risposta data 07.11.2011 - 00:16
fonte
2
  1. Non codificare le informazioni sensibili nel codice dell'app. Se lo fai, sarà banale per qualcuno estrarlo attraverso il reverse engineering. Mai password hardcode, chiavi private, ecc.

  2. È ragionevole memorizzare informazioni sensibili come numeri di carte di credito o la maggior parte delle password sulla memoria privata dell'applicazione. Ad esempio, su Android, utilizza l'archiviazione privata dell'applicazione. Non conservarlo sulla scheda SD; qualsiasi altra app con autorizzazione della scheda SD (ad esempio, quasi tutte le app) potrebbe leggerla.

  3. Se stai memorizzando la password di un utente su un servizio web esistente (ad es., la loro password Google), cerca gli schemi di autorizzazione e autenticazione che non richiedono la richiesta e la memorizzazione della password. Ad esempio, molti servizi Google supportano OAuth e puoi usarlo per evitare di chiedere e archiviare la password Google dell'utente (vedi anche qui ).

  4. Se stai parlando di archiviare informazioni altamente sensibili, come un banking online o una password Paypal, ci penserei due volte. Queste situazioni richiedono un'attenzione speciale e probabilmente vorrai fare una domanda a parte su di loro se ti trovi in quella situazione.

  5. Se si trasmettono queste informazioni su una rete o se le si archivia nel cloud, assicurarsi di crittografare correttamente. Suggerisco di utilizzare SSL / TLS (per le comunicazioni di rete) o il formato di file OpenPGP (per i dati a riposo). Tieni presente che molti utenti di smartphone sono spesso connessi tramite Wifi aperto, che è insicuro e molto vulnerabile alle intercettazioni, quindi la crittografia è particolarmente importante nelle impostazioni mobili.

risposta data 06.11.2011 - 22:23
fonte
0

Scarica solo app da app store aziendali affidabili. Tuttavia, McRee afferma che non è nemmeno sicuro al 100%. Le aziende dovrebbero presumere che gli utenti di app di terze parti mobili sconosciute non debbano essere considerati attendibili. Le aziende dovrebbero limitare l'uso dei servizi di sincronizzazione e distribuire app specifiche per l'organizzazione da uno store di applicazioni mobile dedicato.

Crittografa dati in transito. Questo è un passaggio semplice ma che viene spesso trascurato, Frank Kim, fondatore della società di consulenza per la sicurezza delle applicazioni mobili ThinkSec, dice a TechTarget. "Nella fretta di fornire app mobili, gli sviluppatori stanno commettendo molti degli stessi errori che hanno commesso con le prime app Web.

    
risposta data 31.07.2013 - 14:47
fonte

Leggi altre domande sui tag