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?
- ¿Cómo funcionan los pagos NFC?
- android nfc configuración toggle oyente
- Personaje extraño en la carga útil del registro NDEF de Android
- ¿Es posible cambiar el intervalo de exploración de etiquetas Android NFC?
- KitKat: Cómo enrutar las APDU a la tarjeta SIM
- ¿Cómo encuesta de Android para dispositivos NFC
- NFC NdefFormatable class connect () lanza IOException
- Emparejamiento Bluetooth sin confirmación del usuario
- Comunicación P2P NFC entre Galaxy S3 y ACR122
- NfcAdapter.getDefaultAdapter (this) devuelve null en el emulador
- ¿Existe una API NFC para el Smartwatch 3 (SWR50)
- Cómo permitir sólo la interacción NFC con dispositivos que tienen la misma aplicación / actividad en ejecución
- ¿Cómo puedo enviar una cadena a través de NFC mientras Screen-Pinning?
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
- ¿Cuál es la diferencia entre "minifyEnabled" y "useProguard" en el complemento de Android para Gradle?
- Eliminar margen en el icono de la barra de herramientas de Android