Elemento seguro de control de acceso en ICS 4.0.4

He actualizado mi teléfono Android a 4.0.4 y me di cuenta de que un nuevo archivo nfcee access.xml apareció en la carpeta del sistema. La idea del archivo en la medida en que he entendido es el mantener una lista de firmas, y permitir el acceso a la SE y relacionados sólo se propone a los paquetes que están firmados con una de estas firmas. Hasta ahora en esta lista es, por supuesto, la firma de Google Wallet.

¿Alguien sabe cómo sería el proceso en el futuro para entrar en esta lista? ¿Necesita pedir permiso directamente a Google?

Si root el teléfono, puede modificar el archivo. El archivo contiene la lista de firmas y nombres de paquetes que tienen acceso al Elemento seguro (SE). Las firmas son un certificado hexadecimal X.509. Para crear uno, simplemente incluya la etiqueta <debug /> en el archivo e imprimirá a logcat la firma codificada en hexadecimal de las aplicaciones a las que se les deniega el acceso a SE, para que sea fácil cortar y pegar en este archivo.

Para crear una aplicación que pueda acceder al SE, debe agregar este permiso al manifiesto:

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

Para acceder al SE, necesitas acceder a una API oculta importando com.android.nfc_extras :

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

La forma más sencilla de hacerlo posible es compilar su aplicación en el árbol de código fuente de Android colocándolo en packages/apps y construyéndolo desde allí. Android.mk agregar la siguiente línea al Android.mk makefile de Android.mk para obtener acceso a la API de SE:

 LOCAL_JAVA_LIBRARIES := com.android.nfc_extras 

Las funciones en com.android.nfc_extras permiten habilitar y deshabilitar el SE, enviar comandos a él y recibir respuestas de él (comparable a IsoDep.transceive() ).

Esto es interesante. Si al introducir el certificado y el nombre del paquete en este archivo es todo lo que se necesita, no necesitará hablar con Google, sólo tendrá que incluirlo en el que esté construyendo la ROM (usted mismo si tiene una ROM personalizada o una compañía particular). El problema más grande es, ¿con quién necesita hablar para obtener las claves de CardManager? Si es el portador, también puede hacer que preinstalen su applet, por lo que es posible que no necesite las claves en tiempo de ejecución (a menos que desee utilizar un canal seguro en su applet).

Actualización: aquí hay un resumen de la compatibilidad de SE en Android y más información sobre cómo usar la incorporada. En resumen, funciona, pero sólo puede consultar cosas por supuesto. Se ejecuta JavaCard y GP 2.1.1 es compatible, utiliza las teclas 3DES para el canal seguro.

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

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

BTW, aquí está el CERT actualmente permitido en mi GN 4.0.4. Un paquete no se especifica, por lo que cualquier aplicación firmada con él tendrá acceso a la 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 

Con cavets: Si puede obtener su aplicación en la lista nfcee_access, puede hacer lo siguiente:

  • Active la UICC (tarjeta SIM) y active el elemento seguro incorporado (si está presente)
  • Abrir un canal de comunicación al elemento seguro incorporado e intercambiar datos
  • Recibe los datos de transacción de la UICC (tarjeta SIM) si la UICC desea enviarle datos (sólo será receptor).

Usted puede hacer todo esto si usted root su teléfono. No hay necesidad de hackear la lista nfcee_access para hacerlo, sólo puede interceptar todo el tráfico a la nfc-chip a tan tan.

Lo que no puedes hacer, incluso con un teléfono con raíces:

  • Instalar los applets en la UICC / eSE
  • Log / Monitor / influyen en la transferencia de datos entre el elemento seguro incorporado / UICC y un lector externo, por ejemplo, sistemas de pago de hack.

Advertencia: Usted puede hacer casi todo si, y sólo si tiene el conocimiento y las claves de acceso seguro para acceder al SE incorporado. Sin embargo, si tiene esta información no le preguntará sobre desbordamiento de pila. Todos los derechos reservados

Este conocimiento es un secreto bien guardado y nadie le dirá este secreto a menos que usted es una empresa tan grande como google, mastercard, visa, American Express y similares.

La respuesta es simplemente NO, no puedes hacer nada con el elemento seguro. Sólo el propietario o emisor de SE puede permitir el acceso a la SE, es decir, Google, o puede ser First Data (http://www.firstdata.com/en_us/products/merchants/mobile-commerce/trusted-service-manager -solution.html), pero creo que esta empresa es responsable sólo de Google Wallet en sí, no de la dirección de SE – esto podría hacer por SK C & C – No tengo ni idea …

Tome también de esa manera – la condición previa para el uso de elemento seguro incorporado es que usted está ofreciendo un excelente servicio y usted es socio de Google u otro socio fabricante de teléfonos (a menos que sea de Facebook o empresa similar ahorrar su tiempo y no intentarlo). Esto no es fácil y 99.99% de los servicios no pueden estar allí.

En cuanto a elemento seguro ahora puede esperar hasta SWP y tarjetas SIM se convertirá en una solución más popular y aceptable, ya que podría ser capaz de obtener un contrato con MNO a nivel nacional más fácil o esperar en NFC-WI y tarjeta SD solución o ir con pegatinas o externa Accesorios como iCarte para iPhone.

BR STeN

  • ¿Es posible iniciar una aplicación cuando se escanea una etiqueta NFC?
  • ¿Qué afecta en el rango de lectura NfcTag? ¿Qué puedo hacer para hacerlo más amplio?
  • Acaba de leer una etiqueta NFC
  • Posibilidad de lanzamiento de falsos NFC (Near Field Communication)
  • Cómo depurar la implementación NFC de Android?
  • ¿Qué tipo de ancho de banda proporciona NFC?
  • ¿Cómo lees el ID único de una etiqueta NFC en android?
  • ¿Cómo bloqueo permanentemente páginas de datos específicas en una etiqueta MIFARE Ultralight C?
  • NFC y MIME TYPE sensible a mayúsculas y minúsculas
  • ¿Cómo detectar el pago NFC en la aplicación?
  • ACS ACR122 SDK Android Peer-to-Peer apoyo?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.