¿Hay un equivalente de un cryptochip de Apple en dispositivos Android?

6

Apple tiene un cryptochip que, además de administrar las claves de cifrado, autentica los túneles y proporciona una regulación de fallos intentos, así como la capacidad de desencadenar un borrado del dispositivo después de varios intentos fallidos de autenticación. Esto permite una seguridad razonable utilizando un PIN de 4 dígitos.

No encontré ninguna información sobre la existencia de dicho mecanismo hardware en dispositivos basados en Android. El más cercano podría ser el TEE (Entorno de ejecución de confianza)

  

El TEE es un área segura del procesador principal en un teléfono inteligente (o   cualquier dispositivo conectado). Asegura que los datos sensibles se almacenan,   procesado y protegido en un entorno aislado y de confianza

Entiendo que esto es esencialmente una implementación de un TPM , que solo protege las claves de cifrado, y específicamente no manejar la autentificación en si misma.

En ese caso, ¿cómo garantiza Android que la limitación de los intentos de autenticación fallidos no se supere durante un ataque sin conexión?

Específicamente:

  • no es posible descifrar un disco desnudo extraído del dispositivo (la clave generada por el TEE es robusta)
  • el descifrado de un disco en el dispositivo con la ayuda del TEE debe protegerse - mediante la limitación o el borrado después de un número determinado de intentos.

Una descripción de la implementación de este último es lo que estoy buscando.

Nota : soy consciente de que hay errores de seguridad que ayudan a evitar una configuración de seguridad. Esto sucede en todas partes y en todos los dispositivos y es de esperar que se solucione con parches. Este no es el tema de mi pregunta. Estoy especialmente interesado en los mecanismos de hardware diseñados para protegerse contra mecanismos de autenticación aparentemente inseguros (de los cuales sería un PIN de 4 dígitos, en ausencia de estos sistemas).

EDITAR: también vea esta respuesta sobre el propio TEE (como complemento de la pregunta anterior)

    
pregunta WoJ 28.10.2015 - 17:19
fuente

2 respuestas

3
  

¿Cómo garantiza Android que no se superan los intentos de autenticación fallidos durante un ataque sin conexión?

Android KeyStores puede estar basado en hardware o software anterior a Android N, lo que ha hecho que el hardware KeyStore a DEBE en el CTS.

EDIT : A continuación, uso el término ataque en línea como algo relacionado con la propiedad

  

Las entidades en línea pueden realizar verificaciones de seguridad adicionales para hacer que un protocolo sea más seguro. Por ejemplo, una entidad en línea puede regular el número y la velocidad de los intentos de inicio de sesión (de otro SO q )

... en lugar de realizarse a través de una red remota. Tal vez no lo esté usando de la manera común, pero para mí, la propiedad interesante sobre los ataques en línea es que hay una capa entre el atacante y los datos que se atacan, que no está bajo el control de los atacantes. Si esta capa es un servidor web remoto o algún hardware local no hace mucha diferencia en este caso, ya que ambos pueden realizar una limitación de velocidad, a menos que el chip físico sea atacado / inspeccionado, lo que sería una clase de ataque completamente diferente.

Esta SO respuesta en realidad tiene una definición más cercana a la que estoy usando

  

Un ataque en línea intenta rutinas automatizadas que proporcionan información a un sistema legítimo. No buscan crear una vulnerabilidad en la funcionalidad, sino abusar de la funcionalidad esperada.

     

Un ataque sin conexión intenta emular el cifrado / hash y requiere una salida conocida de ese proceso (es decir, no ataca el sistema, ya tiene la contraseña cifrada / cifrada)

Si se basa en hardware, las claves privadas deben ser extraíbles del KeyStore sin un ataque físico sofisticado (tal vez un microscopio electrónico o alguna caja negra expuesta por el TEE / TPM. Este es un online ataque. Esperaría que el TEE / TPM implemente una regulación.

EDIT : Acabo de probar el nexus 6p KeyStore impl y no se produce una regulación para las operaciones generales de Cipher (estaba viendo si un oráculo de relleno fue expuesto para RSA). Sin embargo, no he probado KeyStore rate-limit para el desbloqueo principal.

Si el software se basa en root, el KeyStore blob se puede levantar y forzar con fuerza bruta. Este es un ataque sin conexión y no se puede llevar a cabo una regulación.

En respuesta a su pregunta, no puede garantizar la aceleración de un ataque fuera de línea, por su propia naturaleza.

    
respondido por el Dori 27.05.2016 - 13:57
fuente
1

Lo más cercano que conozco es bóveda de proyectos de Google . Es un sistema que tiene una CPU secundaria dentro de una tarjeta SD bloqueada que realiza todos los procesos confidenciales y el manejo de claves. Google espera cocinar el sistema en las API de Android para que cualquier dispositivo Android con un lector de tarjetas SD pueda usar el chip.

Algunas empresas afirman que están haciendo lo mismo, pero como los investigadores siguen encontrando fallas en esos sistemas, esta parece ser la vía más prometedora para brindar una sólida seguridad para Android hasta ahora.

    
respondido por el codykochmann 28.10.2015 - 22:27
fuente

Lea otras preguntas en las etiquetas