Pregunta

Estoy desarrollando una aplicación NFC. Mi aplicación procesará información secreta y quiero almacenar esos datos 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.

¿Fue útil?

Solución

TL; DR - Actualmente no es posible sin un esfuerzo enorme.

Desea usar la tarjeta SIM como elemento seguro en el modo de emulación de tarjeta; este es el enfoque favorecido por Asociación GSM. Para acceder al elemento seguro (en SIM o chip integrado), debe utilizar un administrador de servicio de confianza (TSM). En su caso, el TSM enviaría 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 la etiqueta es bastante simple, pero acceder al elemento seguro no lo es. Hay pruebas muy limitadas de teléfonos inteligentes NFC que utilizan SIM como elemento seguro para la emulación de tarjetas, y las pruebas se limitan actualmente a un operador de red móvil específica (MNO) en países específicos.

Si quieres hacer esto, necesitas Lea las especificaciones, escriba un TSM y luego obtenga los contratos necesarios con los MNO para que se le permita usar sus Sims.

¡Buena suerte!

Otros consejos

Como dice Kevin, no es posible sin mucho esfuerzo.

Una forma de hacerlo, podría ser Use un TSM. Pero es ineficiente para lo que estás tratando de lograr y requiere estar "en línea". Envía alguna información al servidor 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 del TSM. Esas credenciales son controladas por su operador móvil. Finalmente, un TSM no es obligatorio en absoluto.

Con ese esquema anterior, vemos una forma más obvia de hacerlo estableciendo un enlace: aplicación -> Simcard. Esta vez funciona incluso si no tiene red. Pero Android se concibe de alguna manera, no hay contacto directo entre las aplicaciones y la tarjeta SIM. Hay alguna solución, si está interesado, Está bien explicar en ese artículo.

Aquí hay algunos requisitos:

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

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

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

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

Yasin Yilmaz

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top