¿Está el FDE de Android seguro frente a los ataques sin conexión?

4

Android proporciona FDE, pero usa un pin de bloqueo de pantalla, que es (al menos en mi caso) bastante débil (como un PIN de 4 dígitos). ¿Significa que mi FDE podría romperse fácilmente con un ataque fuera de línea?

¿O tal vez la clave maestra se almacena en TPM y todo el cifrado se realiza allí? En ese caso, podría limitar los ensayos o incluso cerrarse después de cierto número de ellos.

Encontré este artículo en source.android.com (énfasis mío):

  

La clave cifrada se almacena en metadatos criptográficos . El respaldo de hardware se implementa mediante el uso de la capacidad de firma de Trusted Execution Environment (TEE). Anteriormente, ciframos la clave maestra con una clave generada al aplicar scrypt a la contraseña del usuario y al archivo salt. Para que la clave sea resistente a los ataques fuera de la caja, extendemos este algoritmo firmando la clave resultante con una clave TEE almacenada . La firma resultante se convierte luego en una clave de longitud adecuada por una aplicación más de scrypt. Esta clave se utiliza para cifrar y descifrar la clave maestra. Para almacenar esta clave:

Sin embargo, no explican si este proceso de firma está de algún modo limitado o protegido por otros medios.

    
pregunta joozek 19.03.2015 - 16:17
fuente

2 respuestas

4

Lo importante a tener en cuenta es que las claves de cifrado reales para el volumen se almacenan en el chip del Entorno de Ejecución Confiable (TEE), que está diseñado para proporcionar un almacenamiento de claves seguro. El objetivo del dispositivo es actuar como un oráculo de encriptación: le das algunos datos, los encripta o desencripta, luego te da el resultado. Esto significa que si saca el chip flash y trata de leerlo directamente, solo obtendrá datos encriptados.

De forma predeterminada, no hay una autenticación directa del usuario al TEE que protege contra un atacante simplemente solicitando que los datos se descifren. Aquí es donde le ayuda agregar un PIN o una frase de contraseña a su teléfono: actúa como un mecanismo de autenticación para el TEE para garantizar que no pueda simplemente pedir que se descifren los datos sin "demostrar" quién es usted.

La frase clave alrededor de la limitación de velocidad es esta:

  

La firma resultante se convierte luego en una clave de longitud adecuada por una aplicación más de scrypt.

El KDF scrypt está diseñado para ser lento y lo suficientemente duro como para que sea difícil de poner en paralelo en plataformas de cómputo comunes (por ejemplo, CUDA). Observe también que dijeron "una aplicación más de scrypt"; el DEK ya se ha transformado a través de scrypt, por lo que no es factible intentar "descifrar" el DEK derivándolo repetidamente contra contraseñas candidatas.

    
respondido por el Polynomial 19.03.2015 - 17:12
fuente
0

El pasaje que cita explica cómo la clave FDE está protegida contra ataques sin conexión: se deriva de un componente secreto (la clave de firma) que se almacena en un TEE. Un TEE (Trusted Execution Environment) ¹ es un coprocesador seguro (generalmente uno virtual, pero sin embargo está protegido del acceso por el normal Sistema operativo) que tiene acceso exclusivo a algunas claves secretas. Si bien el almacenamiento de Android se puede clonar copiando la memoria flash, las claves TEE se almacenan en una memoria separada dentro del chip que no se puede copiar fuera del dispositivo (al menos no sin ataques físicos en el procesador).

Por lo tanto, en una instalación de Android donde la clave de cifrado está respaldada por TEE (¡muchos no lo están!), no puede descifrar los datos incluso si conoce el PIN, a menos que tenga acceso al dispositivo original (o de alguna manera he logrado extraer las claves del TEE).

La protección

contra en línea es un asunto diferente. Con un PIN de 4 dígitos, incluso la regulación no es suficiente; debe bloquear el dispositivo (y normalmente requiere un código de seguridad más largo para desbloquearlo). Esto es lo que sucede con las tarjetas de crédito (basadas en chip) y las SIM de los teléfonos, por ejemplo. Por lo que sé, Android no requiere ningún mecanismo específico de bloqueo o bloqueo, por lo que depende de las implementaciones individuales de TEE (cada fabricante tiene su propia) si la clave de cifrado sigue siendo vulnerable a los ataques en línea.

¹ Que, por cierto, no es lo mismo que un TPM.

    
respondido por el Gilles 01.01.2016 - 21:58
fuente

Lea otras preguntas en las etiquetas