2011-08-09 17 views
8

Compartamos en un lugar común ideas sobre el desarrollo, la tecnología de NFC ... Agradezco cualquier comentario que pueda tener sobre el SDK de Android o Symbian o sobre la NFC en general.Preguntas y respuestas sobre desarrollo móvil Android y Symbian NFC (preguntas frecuentes)

Desde mi punto de vista, la pregunta general es qué podemos desarrollar, es decir, qué tipo de aplicaciones podemos traer al mercado con la tecnología NFC? ¿Y cómo podemos, los desarrolladores, ganar dinero y beneficiarnos de la NFC?

Creo que existe la expectativa de que la NFC abra la puerta a numerosos servicios y posibilidades para los desarrolladores, pero ¿es eso cierto? La diferencia entre el NFC y otras tecnologías inalámbricas (BT, WiFi) es que ya viene con casos de uso principales: pago, boletos de transporte y llaves (acceso al edificio). Pero para todos estos casos de uso necesita un elemento seguro, que es

  • , ya sea controlado por el fabricante del teléfono, p. Google - ver Google Wallet, que utiliza exclusivamente el incorporado NXP SecureMX en Nexus S (y esto es algo que puede ser muy difícil cambiar si no queremos poner en peligro la seguridad),
  • o accesibles a través UICC en la tarjeta SIM (en el teléfono Android y Symbian/y MeeGO/también); aquí el trato tiene que hacerse con los operadores.

Pero teniendo 3 o 4 operadores en un país, ¿qué tan probable será para una empresa de tamaño mediano que permitan ejecutar sus applets en tarjetas SIM? ¿Y qué hay de más soluciones en todo el mundo? Todos los servicios/casos de uso mencionados anteriormente requieren una gran coordinación de todos los jugadores y un ecosistema bien establecido (bancos, MNO, productores de chips NFC, fabricantes de teléfonos, TSM ...).

todavía son opciones para las aplicaciones P2P, etiquetas de lectura - pero muchos funcionalidad estará ya incorporados en el teléfono, así que esto no se ve como mina de oro ...

Creo que las posibilidades pueden ser mayores si el teléfono incluirá el NFC-WI(S2C) - tener esta interfaz (especificada por ECMA) y las tarjetas micro SD con soporte NFC-WI (ya especificado por la asociación de tarjeta SD) posiblemente permitirán comprar las tarjetas SD con elementos seguros para una empresa arbitraria ... Pero es no en el mercado y no parece que nada aparecerá pronto.

¿Cuál es su visión y experiencia con el desarrollo de NFC y teléfonos móviles?

Respuesta

14

Con el fin de ser un poco más práctico y no sólo teórico, me han publicado algunos parches en xda-developers a habilitar el modo de emulación de tarjeta de en el teléfono androide actualmente único soporte NFC (el Nexus S). Usted y otros podrían estar interesados ​​en jugar con el modo de emulación de tarjetas por ustedes mismos. Tenga en cuenta que esto es solo para fines experimentales.

Se aplican a gingerbread versión 2.3.4_r1 de las fuentes AOSP. Permiten:

  • Activación del modo de emulación de la tarjeta NFC en el Nexus S. Este modo siempre está habilitado.
  • Desactivando el modo lector, permitiendo que la emulación de la tarjeta sea la única que funcione.
  • Selección de un elemento seguro externo (en UICC) en lugar del integrado (en el chip SmartMX).
  • Aunque no está relacionado, elimina el límite de tiempo para la opción de detección de bluetooth.

Lo que he descubierto sobre la emulación de tarjetas NFC en Android hasta el momento:

emulación de tarjeta
  • está desactivado por defecto en imágenes y requieren una modificación del firmware. La alteración de la aplicación del sistema Nfc y la biblioteca del sistema libnfc-nxp son los lugares a los que hay que prestarle atención.
  • El chip SmartMX integrado dentro de Nexus S se presenta como una tarjeta inteligente doble. Un programable (que permite la instalación de cardlets en él) y un 4K Mifare uno.
  • La tarjeta 4K Mifare tiene teclas predeterminadas, por lo que se puede escribir/leer desde un lector externo.
  • Se supone que la tarjeta programable es compatible con GP, pero nadie excepto Google puede jugar con ella ya que las claves de acceso no son públicas.
  • Nexus S admite SWP y permite operar con un elemento seguro ubicado dentro de una UICC.
  • Las aplicaciones no pueden acceder directamente a ningún contenido de los elementos de seguridad. Por un lado, el SE incrustado es inaccesible porque no conocemos las claves. Por otro lado, el elemento externo es accesible externamente mediante SWP (que se conecta al controlador NFC) pero no internamente porque AFAIK la ranura SIM no está conectada por otros medios al controlador NFC. Esto nos deja con un solo camino, el procesador de banda base. Sin embargo, el firmware BB es propietario y controlado por los fabricantes. Samsung no ha implementado el 3GPP TS 27.007 Technical Specification para interactuar con él en su firmware BB.
  • El acceso OTA a SE externo debería ser posible, esto está en manos de MNO. Algunos de ellos pueden ofrecer servicios de TSM para permitir el acceso de terceros a SE dentro de UICC.

Por cierto, la tecnología que menciona (NFC-WI) ya se utiliza en el Nexus S para interconectar el controlador NFC con el elemento seguro incorporado.

Upate

Para resumir contesto preguntas de Sten:

Puesto que el área de Mifare 4K tiene claves por defecto, cualquier persona con el lector externo NFC puede cambiar las claves y almacenar de forma segura los valores allí - ¿Es correcto? ¿Lo intentaste? ¿Esto viene con alguna dificultad?

Respuesta corta , hice el acceso Mifare 4K desde un lector externo. Pude modificar las teclas predeterminadas también. Las dificultades provienen de la modificación de las fuentes del sistema y de la creación de un firmware personalizado.

es el uso del lector de NFC externa la única manera de cómo acceder al espacio Mifare?

Teóricamente no. La otra alternativa sería enviar APDU a la SIM, que contiene los comandos Mifare para ejecutar en la tarjeta Mifare.

Can.gz. la aplicación instalada en el teléfono Android lee/escribe algunos datos de a Mifare 4K usando algún API (sobre el controlador NFC y la ruta NFC-WI )? Puede, por ej. ¿Buscar ayuda de Android allí?

Por el momento no. Aunque modifiques las fuentes AOSP con parches de búsqueda para Android (lo hice yo mismo), tu aplicación simplemente se bloqueará con los teléfonos comunes. El motivo es que no han implementado el 3GPP TS 27.007 Technical Specification, que permite que el procesador de la aplicación envíe APDU directamente a la SIM (UICC).

Sin embargo, podría haber algo de luz antes del túnel, ya que el proyecto citizy en Francia ya usa el modo de elemento seguro de tecnología NFC con teléfonos Android, tomando el enfoque de elemento seguro UICC. De hecho, hay un modelo modificado Samsung Galaxy SII en uso y el nuevo Acer Liquid Express también estará pronto disponible para integrarse en la ciudad. Esos teléfonos están obligados a tener la especificación requerida TS 27.007 implementada en su firmware de procesador de banda base. Cuando se trata de un procesador de aplicaciones, no sé si tomaron SEEK-for-android desde G & D path o OpenNFC desde Insecure. Siendo francés apostaría all-in por el último.

+0

Hola, contribución bonito: Así que en breve - no se puede acceder al Mifare 4K a menos que el Google compartirá las claves de la compañía respectiva o alquilar un espacio a través de TSM - Creo que esto puede ser teóricamente posible para algunas compañías, ya que todavía debería haber muchos sectores libres disponibles (a menos que Goolge Wallet ocupe todos los 3440 bytes). Pero no estoy seguro de cómo en ese caso (es decir, incluso con el permiso de Google) se pueden instalar cardlets en el teléfono SmartMX integrado, ¿es posible a través de OTA? _Para continuar_ – STeN

+0

La otra opción es la tarjeta SIM: existe la manera de acceder a ella a través de NFC a través de SWP o directamente (BB) a través de USB o similar, pero para cargar el programa en la tarjeta SIM existen las mismas restricciones que para en elemento seguro ... Esto nos dejó con tarjetas micro SD, creo. – STeN

+1

Bueno, no puede acceder a Mifare 4K desde el teléfono, pero puede hacerlo desde un lector de RFID externo (las teclas tienen valores predeterminados). Si se refiere a OTA normal MNO OTA, no creo que se pueda acceder de esa manera, ya que OTA está destinado a acceder a SIM, no Phone internals. –

2

Para continuar con la discusión lo resumiré: El microcontrolador NXP SmartMX consta de dos elementos de seguridad independientes. El primero es programable, ejecuta algún sistema operativo (por ejemplo, MULTOS o Sm @ rtCafe u otro) y una JavaCard VM, pero está bloqueado y las teclas de acceso de producción están en manos de Google o TSM solamente. No hay forma de instalar la aplicación JavaCard para realizar pruebas aquí, ya que no es posible desbloquear el elemento seguro para fines de prueba.

Además, no hay forma de cómo utilizar la tarjeta SIM, ya que incluso si esto puede ser técnicamente posible, para el trato de aplicación comercial con MNO es necesario. Vamos a parar por un momento con el Mifare 4K, que parece ser el más prometedor:

Dado que el área Mifare 4K tiene teclas predeterminadas, cualquier persona con el lector NFC externo puede cambiar las claves y almacenar valores de forma segura allí - es correcto ? ¿Lo intentaste? ¿Esto viene con alguna dificultad?

¿El uso del lector NFC externo es la única manera de acceder al espacio Mifare? Puede, por ej. ¿La aplicación instalada en el teléfono Android lee/escribe algunos datos en Mifare 4K usando alguna API (a través de un controlador NFC y una ruta NFC-WI)? Puede, por ej. ¿Buscar ayuda de Android allí?

Gracias Sten

+0

Dudo que este es un formato que nos gusta, en un sitio de preguntas y respuestas. (¡No es un foro de discusión!) – Arjan

+2

El Mifare4K es un callejón sin salida porque ningún controlador NFC junto a la familia NXP admite esta etiqueta. No es requerido por el estándar NFC y NXP quiere licencia para su algoritmo Crypto-1 roto. Por lo tanto, todos los chips NFC emergentes que conozco no son compatibles con las etiquetas clásicas de Mifare. –