2012-02-20 18 views
12

Estoy desarrollando una aplicación NFC. Mi aplicación procesará información secreta y quiero almacenar esa información en la tarjeta SIM. ¿Es posible, y si es posible, cómo puedo hacer esto? La versión de Android de mi teléfono es Android 2.3.5.Cómo almacenar datos de aplicaciones de Android en la tarjeta SIM usando NFC?

+0

+1 para su pregunta, pero por favor use solo las etiquetas de código para el código, no para acrónimos como "NFC" –

Respuesta

15

tl; dr - actualmente no es posible sin un esfuerzo enorme.

Desea utilizar la tarjeta SIM como el elemento seguro en el modo de emulación de tarjeta: este es el enfoque preferido por GSM Association. Para acceder al Elemento seguro (en SIM o Chip integrado), debe usar un Trusted Service Manager (TSM). En su caso, el TSM enviará datos a su tarjeta SIM utilizando mensajes SMS binarios. El problema es que es muy temprano para NFC en teléfonos móviles. La lectura/escritura de etiquetas es bastante simple pero el acceso al elemento seguro no lo es. Existen pruebas muy limitadas de NFC SmartPhones que usan SIM como elemento seguro para Emulación de tarjetas, y las pruebas están actualmente limitadas a un operador de red móvil (MNO) específico en países específicos.

Si desea hacer esto, necesita read the specifications, escriba un TSM y luego obtenga los contratos necesarios con los MNO para poder usar sus SIM.

¡Buena suerte!

+0

gracias, me enteré de que no es posible. –

+0

Gracias. ¿Esta respuesta sigue siendo confiable? – Abraham

+1

@Abraham - Más o menos, sí. Pero la emulación de tarjeta de host (agregada en Android KitKat 4.4) puede ser útil, dependiendo de sus requisitos. https://developer.android.com/guide/topics/connectivity/nfc/hce.html – Kevin

1

Tengo un requisito similar. Mi enfoque es no utilizar la tarjeta SIM del operador GSM. Pero estoy trabajando para encontrar la manera de que el operador GSM use mi tarjeta SIM. Luego tendré mis propios mecanismos de acceso para almacenar mis artículos seguros en la tarjeta.

Yasin Yilmaz

3

Al igual que Kevin dice, no es posible sin mucho esfuerzo.

Una forma de hacerlo, podría ser utilizar un TSM. Pero es ineficiente para lo que está tratando de lograr y requiere estar "en línea". Envía información al servidor de TSM y luego envía algunos datos a su tarjeta SIM.

== Phone == |     | == TSM == 
Application | ---- Network ----> | Server 
SIM card | <----------------- | 

Y TSM no es suficiente. También necesitará las credenciales de la tarjeta SIM. Sin esas credenciales, no podrá actualizar los datos de la tarjeta SIM desde el TSM. Esas credenciales están controladas por su operador de telefonía móvil. Finalmente, un TSM no es obligatorio en absoluto.

Con el esquema anterior, vemos una forma más obvia de hacerlo estableciendo un enlace: Aplicación -> Tarjeta SIM. Esta vez funciona incluso si no tienes red. Pero Android está concebido de alguna manera, no hay contacto directo entre las aplicaciones y la tarjeta SIM. Hay alguna solución, si está interesado, es bien explicar in that article.

Éstos son algunos requisitos:

  • Es posible que necesite para reparar la capa RIL
  • tienes que parchear el código fuente de Android
  • Es necesario tener credenciales de la tarjeta SIM (UICC) (Puede comprar una tarjeta SIM de desarrollador, pero no podrá conectarse a la red porque no contiene las credenciales de su operador)
  • Necesita saber cómo desarrollar software para tarjeta SIM (generalmente Javacard)
  • ...

La forma más fácil de almacenar datos secretos, de una manera segura, sin dolor de cabeza para muchos será el uso de una tarjeta especial SD como un elemento seguro. No es necesario parchar nada, no es necesario tener acceso de administrador, no es necesario tener credenciales de tarjeta SIM. Es posible que aún tenga que desarrollar su propio "software" de tarjeta SD para alojar allí sus datos.

La seguridad se trata del nivel de amenaza en comparación con el nivel de protección. Es probable que Secure Element trabaje demasiado para proteger sus datos. Dependiendo de los datos que intente proteger, puede usar el mecanismo incorporado de Android que será lo suficientemente seguro.

Cuestiones relacionadas