2012-06-19 30 views
7

Quiero crear una aplicación como google wallet en android. Se dice que "todas las credenciales de pago se almacenan en un chip llamado Elemento seguro contenido en el teléfono". ¿Cómo puedo acceder a este elemento seguro y almacenar mis credenciales de tarjeta en él. Mi objetivo es usar mi teléfono (Nexus) en el mostrador de caja en lugar de mi tarjeta.Cómo almacenar datos en Elemento seguro en android

Lo que quiero es almacenar algunos datos en el chip de Elemento seguro y acceder a los datos cuando toco un lector de NFC.

Gracias de antemano.

+0

Estos dos artículos de blog explican cómo puede usar el elemento Seguro. http://randomoracle.wordpress.com/2013/01/09/using-the-secure-element-on-an-android-device-13/ y http://nelenkov.blogspot.ca/2012/08/accessing -embedded-secure-element-in.html Consulte también esta publicación de StackOverFlow: http://stackoverflow.com/questions/10494726/secure-element-access-control-on-ics-4-0-4 –

Respuesta

6

Si marca la Google Wallet FAQ que se encuentran los siguientes:

  • Sus credenciales de pago se almacenan en un chip llamado el elemento seguro contenido en su teléfono. El Elemento seguro está aislado del hardware y del sistema operativo principal de su teléfono. Solo los programas autorizados como Google Wallet pueden acceder al elemento seguro para iniciar una transacción.

  • Incluso Google sí Monedero tiene un acceso muy limitado a la Elemento seguro, y no puede leer o escribir datos de su memoria. Existen múltiples niveles de protección para los datos almacenados en el Elemento seguro y está protegido en el nivel de hardware de la intrusión o la manipulación.

Así que básicamente ... que no tienen acceso a esta SecureElement. Tal vez hablar con los fabricantes de teléfonos para darle acceso/formas de acceder al SecureElement le permitirá hacer esto ... pero creo que esto estaría fuera de su alcance.

EDIT: Una solución alternativa se pueden almacenar sus datos en una base de datos SQLite, y también utilizar encryption en esa base de datos, tales como AES ... o lo que usted prefiere. Aún tendrá que prestar atención a la forma en que mantiene/distribuye el encryption/decryption keys.

Si usted está preocupado por el caso cuando alguien pierde su teléfono, y el "fundador" intenta robar los datos, se puede implementar también una protección por contraseña en el Application y si la contraseña se escribe erróneo 3 veces consecutivas, gota la base de datos SQLite donde se almacenan los datos.

+0

Gracias por su repetición rápida. ¿Puede sugerirme algún método alternativo para lograr lo que quiero, es decir, guardar las credenciales de la tarjeta en un lugar seguro? –

+2

Si almacena las credenciales de la tarjeta en sqlite db, tarde o temprano será pirateado. De acuerdo, el teléfono tiene que ser robado y rooteado primero. Pero no será difícil para los hackers expertos descubrir la clave de encriptación si está almacenada en la propia aplicación.Considere almacenar la información de las credenciales en el servidor. – azgolfer

0

No se puede almacenar nada en el chip de cifrado de seguridad, ya que es un hardware de diseño separado del sistema operativo.

+1

Bueno, los elementos seguros generalmente están conectados al procesador de aplicaciones (ese es el que ejecuta el sistema operativo Android). Esto es una conexión a través del módem de banda base (para elementos seguros basados ​​en UICC), una conexión a través del sistema de archivos IO para elementos seguros basados ​​en microSD o una conexión a través del controlador NFC para elementos seguros incorporados. Por cierto. a partir de Android 4+, la mayoría de los dispositivos con Android NFC incluso proporcionan API (parcialmente indocumentadas) para acceder a elementos seguros. Sin embargo, para almacenar aplicaciones y datos en un elemento seguro, necesitaría las claves que lo protegen. –

Cuestiones relacionadas