2012-05-08 14 views
9

Ho aggiornato il mio telefono Android alla 4.0.4 e ho notato che un nuovo file nfcee access.xml è apparso nella cartella di sistema. L'idea del file per quanto ho capito è mantenere una lista di firme e consentire l'accesso alla SE e relativa intenzione solo ai pacchetti che sono firmati con una di queste firme. Finora in questo elenco è ovviamente la firma di Google Wallet.Secure Access Control su ICS 4.0.4

Qualcuno sa come sarebbe il processo in futuro per inserire questo elenco? Hai bisogno di chiedere l'autorizzazione direttamente a Google?

risposta

6

Questo è davvero interessante. Se inserisci il tuo certificato e il nome del pacchetto in questo file è tutto ciò che è necessario, non dovresti aver bisogno di parlare con Google, ma chiedi a chiunque stia costruendo la ROM (te stesso se personalizzato ROM o un particolare gestore) per includerlo. Il problema più grande è, , con cui devi parlare per ottenere le chiavi CardManager. Se è il corriere, è anche possibile pre-installare l'applet, quindi potrebbe non essere necessario utilizzare le chiavi in ​​fase di esecuzione (a meno che non si desideri utilizzare un canale sicuro per l'applet).

Aggiornamento: ecco un riepilogo del supporto per SE in Android e altre informazioni su come utilizzare quello incorporato. In breve, funziona, ma si può solo interrogare le cose, naturalmente. Funziona con JavaCard ed è compatibile con GP 2.1.1, utilizza le chiavi 3DES per il canale sicuro.

http://nelenkov.blogspot.com/2012/08/accessing-embedded-secure-element-in.html

http://nelenkov.blogspot.com/2012/08/android-secure-element-execution.html

BTW, ecco il CERT attualmente consentito sul mio GN 4.0.4. Un pacchetto non è specificato, in modo che qualsiasi applicazione firmato con otterrà l'accesso alla SE:

Certificate: 
    Data: 
     Version: 3 (0x2) 
     Serial Number: 
      a8:cd:17:c9:3d:a5:d9:90 
     Signature Algorithm: sha1WithRSAEncryption 
     Issuer: C=US, ST=California, L=Mountain View, O=Google Inc., OU=Android, CN=Google NFC 
     Validity 
      Not Before: Mar 24 01:06:53 2011 GMT 
      Not After : Aug 9 01:06:53 2038 GMT 
     Subject: C=US, ST=California, L=Mountain View, O=Google Inc., OU=Android, CN=Google NFC 
+0

Sono d'accordo sul fatto che il problema reale sono le chiavi di gestione della carta, ma se Google offre in futuro il servizio TSM questo potrebbe consentire ad altre parti di utilizzare anche la SE. La mia opinione è che se Google non si apre un po 'di più, le carte SIM o la scheda MicroSD diventeranno molto presto la SE preferibile. Volevo solo sapere se qualcuno conosce i piani futuri di Google in questa direzione. –

+0

Beh, non posso parlare dei piani di Google, ma dal momento che Google Wallet non sta facendo particolarmente bene, forse si apriranno per consentire ad altri/simili/concorrenti servizi di pagamento NFC di lavorare con il SE su dispositivi Nexus. –

0

La risposta è semplicemente non si può fare nulla con il Secure Element. Solo il proprietario o l'emittente SE può autorizzare l'accesso all'SE, ad esempio Google o i primi dati (http://www.firstdata.com/en_us/products/merchants/mobile-commerce/trusted-service-manager -solution.html), ma penso che questa società sia responsabile solo per Google Wallet stesso, non per la gestione SE - questo potrebbe essere fatto da SK C & C - Non ne ho idea ...

Prendilo anche quello modo: la condizione preliminare per l'utilizzo di elementi sicuri incorporati è che si offre un servizio eccellente e si è partner di Google o di altri produttori di telefoni (a meno che non si tratti di Facebook o di un'azienda simile per risparmiare tempo e non provarlo). Questo non è facile e il 99,99% dei servizi non può essere lì.

Per quanto riguarda l'elemento sicuro ora è possibile attendere fino a quando SWP e le schede SIM diventeranno la soluzione più popolare e accettabile, poiché è possibile ottenere un contratto con MNO a livello nazionale più semplice o sperare in soluzioni NFC-WI e SD card o andare con adesivi o accessori esterni come iCarte per iPhone.

BR Sten

+0

Questa affermazione si basa sulla politica/fatti attuale o stai solo indovinando qui? 'la precondizione per l'utilizzo di elementi sicuri incorporati è che stai offrendo un servizio eccellente e tu sei Google' –

+0

Ciao, credo in base alla mia esperienza.Conosci altri servizi, quindi Google Wallet per Sprint? Se controlli cosa sta accadendo nel settore NFC è "battaglia di SE", perché se controlli la SE partecipi alle entrate. Lo spazio su SE è prezioso e verrà utilizzato principalmente per soluzioni di pagamento, app MNO e grandi servizi come Oyster. È per le aziende di fiducia, a meno che l'intero ecosistema non cambi. Quindi l'idea che tu abbia una bella soluzione che ti assicurerà la serratura della porta e vorresti eseguire quel servizio in SE embedded è come penso Utopia. Ovviamente potrei sbagliarmi ... – STeN

+1

Per me è chiaro che al momento l'elemento sicuro integrato non è disponibile per nessun'altra persona oltre a Google. Ma ho appena detto che questo ultimo cambiamento nel NFCService è un'indicazione che Google entra in una direzione che consentirà in futuro a terze parti di avere applicazioni che utilizzano la SE. Ovviamente dopo l'approvazione di Google. Qualcosa come RIM sta facendo al momento con il loro elemento sicuro. –

16

Se sradicare il telefono, è possibile modificare il file. Il file contiene l'elenco di firme e nomi di pacchetti a cui è consentito l'accesso a Secure Element (SE). Le firme sono un certificato X.509 con codifica esadecimale. Per crearne uno, includere semplicemente il tag <debug /> nel file e stamperà su logcat la firma con codifica esadecimale delle applicazioni a cui viene negato l'accesso SE, per un facile inserimento e incolla in questo file.

Per creare un app che possono accedere alla SE, è necessario aggiungere questa autorizzazione per il manifesto:

<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 

Per accedere in realtà la SE, è necessario accedere a un API nascosta importando com.android.nfc_extras:

import com.android.nfc_extras.NfcAdapterExtras; 
import com.android.nfc_extras.NfcAdapterExtras.CardEmulationRoute; 
import com.android.nfc_extras.NfcExecutionEnvironment; 

Il modo più semplice per rendere ciò possibile è compilare la tua app nell'albero del codice sorgente Android inserendola in packages/apps e costruendola da lì. È necessario aggiungere la seguente riga alla Android.mk makefile per ottenere l'accesso alle API SE:

LOCAL_JAVA_LIBRARIES := com.android.nfc_extras 

Le funzioni in com.android.nfc_extras permettono attivazione e disattivazione di SE, inviando comandi ad esso e ricevere risposte da esso (paragonabile a IsoDep.transceive()).

+1

Eeeek !!! +1. Non sapevo della api nascosta. Ad ogni modo, conosci qualche link su questo? O una procedura passo passo per iniziare? –

+1

Dai un'occhiata a [questo post del blog] (http://nelenkov.blogspot.nl/2012/08/accessing-embedded-secure-element-in.html) di @NikolayElenkov –

2

Con cavets: Se è possibile ottenere l'applicazione sulla lista nfcee_access si possono fare le seguenti cose:

  • Attivare l'UICC (sim card) e attivare l'elemento di sicuro incorporato (se presente)
  • Aprire un canale di comunicazione verso l'elemento protetto incorporato e scambiare dati
  • Ricevere i dati della transazione dalla UICC (scheda SIM) se l'UICC desidera inviarti dati (sarai solo ricevente).

Si può fare tutto questo se si effettua il root del telefono. Non c'è bisogno di hackerare la lista di nfcee_access per farlo, puoi solo intercettare tutto il traffico verso il chip nfc per farlo.

Quello che non si può fare, anche con un telefono radicata:

  • Installare applet sulla UICC/ESE
  • Log/Monitor/influenza il trasferimento dei dati tra l'elemento/UICC sicuro embedded e un lettore esterno, ad es sistemi di pagamento mod.

Caveat: Si può fare quasi everthing se, e solo se si hanno le conoscenze e l'accesso-chiavi sicure per accedere al SE incorporato. Tuttavia, se si dispone di queste informazioni non si chiederebbe su stack-overflow. :-)

Questa conoscenza è un segreto ben tenuto e nessuno ti dirà questo segreto a meno che tu non sia un'azienda grande come Google, Mastercard, Visa, American Express e simili.

Problemi correlati