2012-06-19 10 views
7

Voglio creare un portafoglio di google come l'applicazione in Android. Si dice che "tutte le credenziali di pagamento sono memorizzate in un chip chiamato Secure Element contenuto nel telefono". Come posso accedere a questo elemento sicuro e memorizzare le credenziali della mia carta al suo interno. Il mio obiettivo è usare il mio telefono (Nexus) al banco cassa invece della mia carta.Come memorizzare i dati in Secure Element in Android

Quindi quello che voglio è memorizzare alcuni dati nel chip Secure Element e accedere ai dati quando tocco un lettore NFC.

Grazie in anticipo.

+0

Questi due articoli del blog spiegano entrambi come è possibile utilizzare l'elemento Secure. http://randomoracle.wordpress.com/2013/01/09/using-the-secure-element-on-an-android-device-13/ e http://nelenkov.blogspot.ca/2012/08/accessorio -embedded-secure-element-in.html Controlla anche questo post StackOverFlow: http://stackoverflow.com/questions/10494726/secure-element-access-control-on-ics-4-0-4 –

risposta

6

Se si seleziona la Google Wallet FAQ trovi la seguente:

  • Le credenziali di pagamento sono memorizzati in un chip chiamato Secure Element contenuta all'interno del vostro telefono. Secure Element è isolato dal sistema operativo principale del tuo telefono e dall'hardware. Solo i programmi autorizzati come Google Wallet possono accedere a Secure Element per avviare una transazione.

  • Anche Google Wallet per sé ha un accesso molto limitato al sicuro elemento, e non è in grado di leggere o scrivere i dati dalla sua memoria. Esistono più livelli di protezione per i dati archiviati su Secure Element ed è protetto a livello hardware dallo snooping o dalla manomissione.

Quindi, in pratica ... non hanno accesso a questo SecureElement. Forse parlare con i produttori del telefono per darti accesso/modi per accedere allo SecureElement ti consentirà di farlo ... ma penso che questo non sia il tuo scopo.

EDIT: Una soluzione alternativa può essere l'archiviazione dei dati in un database SQLite, e anche l'uso encryption su quel database, ad esempio AES ... o quello che preferite. Dovrai comunque prestare attenzione a come mantenere/distribuire lo encryption/decryption keys.

Se si è preoccupati del caso in cui qualcuno perde il telefono e il "fondatore" tenta di rubare i dati, è possibile implementare anche una protezione con password sul proprio Application e se la password viene digitata errata per 3 volte consecutive, rilasciare il database SQLite in cui sono memorizzati i dati.

+0

Grazie per il tuo riproduzione rapida. Puoi suggerire un metodo alternativo per ottenere ciò che voglio, cioè salvare le credenziali della carta in un luogo sicuro? –

+2

Se si memorizzano le credenziali della carta in sqlite db, prima o poi verrà violato. Certo, il telefono deve essere rubato e radicato per primo. Ma non sarà difficile per gli hacker esperti capire la chiave di crittografia se è archiviata nell'app stessa.Potresti invece memorizzare le informazioni sulle credenziali sul server. – azgolfer

0

Non è possibile archiviare nulla nel chip di crittografia di sicurezza, poiché l'hardware di progettazione è separato dal sistema operativo.

+1

Bene, gli elementi sicuri sono in genere collegati al processore dell'applicazione (è quello che esegue il sistema operativo Android). Si tratta di una connessione tramite il modem in banda base (per elementi di sicurezza basati su UICC), una connessione tramite IO del filesystem per elementi sicuri basati su microSD o una connessione tramite il controller NFC per elementi di sicurezza incorporati. Btw. a partire da Android 4+ la maggior parte dei dispositivi Android NFC fornisce anche API (parzialmente non documentate) per accedere a elementi protetti. Tuttavia, per archiviare applicazioni e dati su un elemento sicuro, occorrono le chiavi che lo proteggono. –

Problemi correlati