Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

TEE de confianza

Trusty es un sistema operativo (SO) seguro que proporciona un entorno de ejecución confiable (TEE) para Android. El sistema operativo Trusty se ejecuta en el mismo procesador que el sistema operativo Android, pero Trusty está aislado del resto del sistema tanto por hardware como por software. Trusty y Android funcionan en paralelo. Trusty tiene acceso a toda la potencia del procesador principal y la memoria de un dispositivo, pero está completamente aislado. El aislamiento de Trusty lo protege de aplicaciones maliciosas instaladas por el usuario y vulnerabilidades potenciales que pueden descubrirse en Android.

Trusty es compatible con procesadores ARM e Intel. En los sistemas ARM, Trusty utiliza Trustzone ™ de ARM para virtualizar el procesador principal y crear un entorno de ejecución seguro y confiable. También se encuentra disponible un soporte similar en las plataformas Intel x86 que utilizan la tecnología de virtualización de Intel.

Figura 1 . Diagrama de descripción general de Trusty.

Trusty consta de:

  • Un pequeño núcleo de sistema operativo derivado de Little Kernel
  • Un controlador de kernel de Linux para transferir datos entre el entorno seguro y Android
  • Una biblioteca de espacio de usuario de Android para comunicarse con aplicaciones confiables (es decir, tareas / servicios seguros) a través del controlador del kernel

Nota: Trusty y Trusty API están sujetos a cambios. Para obtener información sobre la API de Trusty, consulte la Referencia de la API .

¿Por qué Trusty?

Otros sistemas operativos TEE se suministran tradicionalmente como blobs binarios por proveedores externos o se desarrollan internamente. El desarrollo de sistemas TEE internos o la licencia de un TEE de un tercero puede resultar costoso para los proveedores de System-on-Chip (SoC) y los OEM. El costo monetario combinado con sistemas de terceros poco confiables crea un ecosistema inestable para Android. Trusty se ofrece a sus socios como una alternativa de código abierto confiable y gratuita para su entorno de ejecución confiable. Trusty ofrece un nivel de transparencia que simplemente no es posible con sistemas de código cerrado.

Android admite varias implementaciones de TEE, por lo que no está restringido a usar Trusty. Cada sistema operativo TEE tiene su propia forma única de implementar aplicaciones confiables. Esta fragmentación puede ser un problema para los desarrolladores de aplicaciones confiables que intentan garantizar que sus aplicaciones funcionen en todos los dispositivos Android. El uso de Trusty como estándar ayuda a los desarrolladores de aplicaciones a crear e implementar aplicaciones fácilmente sin tener en cuenta la fragmentación de múltiples sistemas TEE. Trusty TEE proporciona a los desarrolladores y socios transparencia, colaboración, capacidad de inspección del código y facilidad de depuración. Los desarrolladores de aplicaciones de confianza pueden converger en torno a herramientas y API comunes para reducir el riesgo de introducir vulnerabilidades de seguridad. Estos desarrolladores tendrán la confianza de que pueden desarrollar una aplicación y reutilizarla en varios dispositivos sin más desarrollo.

Aplicaciones y servicios

Una aplicación Trusty se define como una colección de archivos binarios (ejecutables y archivos de recursos), un manifiesto binario y una firma criptográfica. En tiempo de ejecución, las aplicaciones Trusty se ejecutan como procesos aislados en modo sin privilegios bajo el kernel Trusty. Cada proceso se ejecuta en su propia caja de arena de memoria virtual utilizando las capacidades de la unidad de administración de memoria del procesador TEE. La compilación del hardware cambia el proceso exacto que sigue Trusty, pero, por ejemplo, el kernel programa estos procesos utilizando un programador de turnos basado en prioridades impulsado por un temporizador seguro. Todas las aplicaciones de Trusty comparten la misma prioridad.

Figura 2 . Descripción general de la aplicación Trusty.

Aplicaciones Trusty de terceros

Actualmente, todas las aplicaciones de Trusty son desarrolladas por una sola parte y empaquetadas con la imagen del kernel de Trusty. El gestor de arranque firma y verifica toda la imagen durante el arranque. El desarrollo de aplicaciones de terceros no es compatible con Trusty en este momento. Aunque Trusty permite el desarrollo de nuevas aplicaciones, hacerlo debe realizarse con sumo cuidado; cada nueva aplicación aumenta el área de la base informática confiable (TCB) del sistema. Las aplicaciones de confianza pueden acceder a los secretos de los dispositivos y pueden realizar cálculos o transformaciones de datos con ellos. La capacidad de desarrollar nuevas aplicaciones que se ejecutan en el TEE abre muchas posibilidades de innovación. Sin embargo, debido a la propia definición de TEE, estas aplicaciones no se pueden distribuir sin algún tipo de confianza adjunta. Por lo general, esto se presenta en forma de una firma digital de una entidad en la que confía el usuario del producto en el que se ejecuta la aplicación.

Usos y ejemplos

Los entornos de ejecución de confianza se están convirtiendo rápidamente en un estándar en los dispositivos móviles. Los usuarios confían cada vez más en sus dispositivos móviles para su vida diaria y la necesidad de seguridad es cada vez mayor. Los dispositivos móviles con TEE son más seguros que los dispositivos sin TEE.

En los dispositivos con una implementación de TEE, el procesador principal a menudo se denomina "no confiable", lo que significa que no puede acceder a ciertas áreas de RAM, registros de hardware y fusibles de escritura única donde se encuentran datos secretos (como claves criptográficas específicas del dispositivo). almacenado por el fabricante. El software que se ejecuta en el procesador principal delega cualquier operación que requiera el uso de datos secretos al procesador TEE.

El ejemplo más conocido de esto en el ecosistema de Android es el marco DRM para contenido protegido. El software que se ejecuta en el procesador TEE puede acceder a las claves específicas del dispositivo necesarias para descifrar el contenido protegido. El procesador principal solo ve el contenido cifrado, lo que proporciona un alto nivel de seguridad y protección contra ataques basados ​​en software.

Hay muchos otros usos para un TEE, como pagos móviles, banca segura, autenticación multifactor, protección de restablecimiento del dispositivo, almacenamiento persistente protegido contra reproducción, procesamiento seguro de PIN y huellas dactilares e incluso detección de malware.