Almacenamiento de credenciales respaldado por hardware en Galaxy Nexus

Primero, espero elegir el intercambio de pila correcto para esa pregunta.

Android 4.3 presenta un almacenamiento de credenciales "respaldado por hardware". Si voy a Configuración-> Seguridad en el encabezado "Almacenamiento de credenciales", hay una opción (en la que no se puede hacer clic) "Tipo de almacenamiento" que está configurada como "solo software". ¿Cómo configurarlo en "Respaldado por hardware"?

Ya eliminé/restablecí el almacenamiento de credenciales y lo probé con diferentes opciones de LockScreen (Pin, Contraseña, Patrón), pero no puedo cambiar esa opción a "Respaldado por hardware". ¿No es el Galaxy Nexus capaz de habilitarlo?

Respuestas (2)

El "Almacenamiento de credenciales respaldado por hardware", también conocido como "Almacén de claves de Android", solo está respaldado por hardware cuando el hardware del dispositivo tiene los componentes de hardware necesarios. Cuando no hay disponible el hardware necesario, se recurre al almacenamiento de software.

Android ahora también es compatible con el almacenamiento respaldado por hardware para sus credenciales KeyChain, lo que brinda más seguridad al hacer que las claves no estén disponibles para la extracción. Es decir, una vez que las claves están en un almacén de claves respaldado por hardware (Secure Element, TPM o TrustZone), se pueden usar para operaciones criptográficas, pero el material de la clave privada no se puede exportar. Incluso el kernel del sistema operativo no puede acceder a este material clave. Si bien no todos los dispositivos con Android admiten almacenamiento en hardware , puede verificar en tiempo de ejecución si el almacenamiento respaldado por hardware está disponible

Desde las API de Android 4.3: almacenamiento de credenciales de hardware . Mi énfasis.

Finalmente, hay una API e incluso un campo de configuración del sistema que le permite verificar si el almacén de credenciales está respaldado por hardware (Nexus 4, Nexus 7) o solo por software (Galaxy Nexus)

Mejoras en el almacenamiento de credenciales en Android 4.3

Esta es una característica nueva, por lo que es probable que solo los dispositivos más nuevos y de gama alta tengan el hardware en ellos. Según eso, el Galaxy Nexus no tiene el hardware necesario. El Nexus 4 tiene soporte completo de hardware para esto;

Como puede saber ahora (sic), el Nexus 4 se basa en el SoC Snapdragon S4 Pro APQ8064 de Qualcomm. Al igual que los SoC ARM más recientes, está habilitado para TrustZone y Qualcomm implementa su Entorno de ejecución seguro (QSEE) encima.

Mejoras en el almacenamiento de credenciales en Android 4.3

La tecnología ARM TrustZone es análoga al hardware TPM que se usa en el hardware compatible con Intel x86 PC para proporcionar un área de almacenamiento de credenciales segura de hardware. Y al igual que TPM cuando se presentó por primera vez, está tardando un poco en llegar a todos los teléfonos nuevos.

Entonces, en el caso del Nexus 4, el 'hardware' es simplemente el ARM SoC. ¿Son posibles otras implementaciones? Teóricamente, una implementación de keymaster respaldada por hardware no necesita estar basada en TrustZone. Se puede utilizar cualquier dispositivo dedicado que pueda generar y almacenar claves de forma segura, siendo los sospechosos habituales los elementos seguros integrados (SE) y los TPM. Sin embargo, no hay dispositivos Android convencionales con TPM dedicados y los dispositivos insignia recientes han comenzado a distribuirse sin SE integrados.

Mejoras en el almacenamiento de credenciales en Android 4.3

Entonces, no, el Galaxy Nexus no es capaz de habilitar el almacenamiento de credenciales respaldado por hardware, porque no tiene el hardware necesario.

Entonces, ¿esto significa que cualquier dispositivo con un S4 Pro (Xperia Z, etc.) tiene esencialmente los requisitos de hardware? ¿Hay algún recurso que enumere los SOC habilitados para TrustZone? De todos modos, ¡tanto esta respuesta como tu nombre de usuario son excelentes!
@dotVezz También depende de que el fabricante haya configurado las cosas correctamente, por lo que es posible tener un teléfono con un SoC que tenga el hardware pero que no pueda usarlo.
al igual que el galaxynexus que tiene un SE en su chip NFC. Esto posiblemente podría cumplir con todos los requisitos de hardware, pero no se usa para eso. Gran respuesta a una historia triste de todos modos.
En realidad, el Galaxy Nexus ha tenido un almacenamiento de credenciales respaldado por hardware desde 4.1. Simplemente no está habilitado en las compilaciones de producción. Además, TrustZone es una cosa de software, no requiere nada más que un chip ARM habilitado para TZ, que son casi todos los recientes. TPM requiere chips seguros reales. Para aprovechar TZ, se debe instalar un sistema operativo seguro, junto con los controladores relevantes y una forma de vincularlo a Android. Esto requiere que el fabricante lo integre, por supuesto.
@nikolay, ¿tiene alguna referencia para eso? Y su comentario parece un poco confuso sobre qué es hardware y software. ¿Ha pensado en escribir una respuesta completa a esto para tener más espacio para explicar e incluir fuentes/referencias?
Referencia: nelenkov.blogspot.com/2012/07/… . Y sí, TZ no es un TPM.

En realidad, el Galaxy Nexus ha tenido un almacenamiento de credenciales respaldado por hardware desde 4.1. Simplemente no está habilitado en las compilaciones de producción.

Lea esto para más detalles: http://nelenkov.blogspot.com/2012/07/jelly-bean-hardware-backed-credential.html

Como esto no es compatible oficialmente, puede llevar algo de trabajo hacerlo funcionar en versiones recientes de Android. La razón por la que no se usa el controlador es que tiene un error de uso de energía que no se puede solucionar sin actualizar la banda base. Así que úsalo con precaución. Cf. este mensaje de confirmación:

https://android.googlesource.com/device/samsung/tuna/+/b74801dc22bb4945ddf79b2e12e6328a862d68c3