Un entorno de ejecución confiable ( TEE ) es un área segura de un procesador principal . Garantiza que el código y los datos cargados en el interior estén protegidos con respecto a la confidencialidad e integridad [ aclaración necesaria ] . [1] Un TEE como entorno de ejecución aislado proporciona características de seguridad como la ejecución aislada, la integridad de las aplicaciones que se ejecutan con el TEE, junto con la confidencialidad de sus activos. [2] En términos generales, el TEE ofrece un espacio de ejecución que proporciona un mayor nivel de seguridad para aplicaciones confiables que se ejecutan en el dispositivo que un sistema operativo (SO) rico y más funcionalidad que un 'elemento seguro' (SE).
Historia
La Plataforma de Terminal Móvil Abierta (OMTP) definió por primera vez a TEE en su estándar "Entorno de confianza avanzado: OMTP TR1", definiéndolo como un "conjunto de componentes de hardware y software que proporcionan las instalaciones necesarias para admitir Aplicaciones" que debían cumplir los requisitos de uno de los dos niveles de seguridad definidos. El primer nivel de seguridad, el perfil 1, se apuntó solo contra los ataques de software y, mientras que el perfil 2, se apuntó contra los ataques de software y hardware. [3]
Posteriormente se lanzaron soluciones comerciales TEE basadas en la tecnología ARM TrustZone , conforme al estándar TR1, como Trusted Foundations desarrollada por Trusted Logic. [4]
El trabajo en los estándares OMTP terminó a mediados de 2010 cuando el grupo pasó a la Comunidad de Aplicaciones Mayoristas (WAC). [5]
Los estándares OMTP, incluidos los que definen un TEE, están alojados en GSMA . [6]
Detalles
Los TEE establecen un entorno de ejecución aislado que se ejecuta en paralelo con un sistema operativo estándar, como Android y Microsoft Windows; su objetivo es defender el código y los datos confidenciales contra los ataques de software privilegiado de un sistema operativo nativo potencialmente comprometido. ARM TrustZone e Intel SGX son ejemplos de tecnologías TEE, que utilizan mecanismos híbridos de hardware y software para proteger activos sensibles. [7] [8] [9] Solo las aplicaciones confiables que se ejecutan en un TEE tienen acceso a toda la potencia del procesador principal, los periféricos y la memoria de un dispositivo, mientras que el aislamiento de hardware los protege de las aplicaciones instaladas por el usuario que se ejecutan en un sistema operativo principal. El software y el aislamiento criptográfico dentro del TEE protegen las aplicaciones confiables contenidas entre sí. [10]
Los proveedores de servicios, los operadores de redes móviles (MNO), los desarrolladores de sistemas operativos, los desarrolladores de aplicaciones , los fabricantes de dispositivos, los proveedores de plataformas y los proveedores de silicio son las principales partes interesadas que contribuyen a los esfuerzos de estandarización en torno al TEE.
Para evitar la simulación de hardware con software controlado por el usuario, se utiliza la denominada "raíz de confianza de hardware". Este es un conjunto de claves privadas que se incrustan directamente en el chip durante la fabricación; Las memorias programables de una sola vez, como los fusibles electrónicos, se utilizan generalmente en dispositivos móviles. Estos no se pueden cambiar, incluso después de reiniciar el dispositivo, y cuyas contrapartes públicas residen en una base de datos del fabricante, junto con un hash no secreto de una clave pública que pertenece a la parte confiable (generalmente un proveedor de chips) que se utiliza para firmar firmware confiable junto con los circuitos que realizan operaciones criptográficas y controlan el acceso. El hardware está diseñado de manera que evita que todo el software que no esté firmado por la clave de la parte de confianza acceda a las funciones privilegiadas. La clave pública del proveedor se proporciona en tiempo de ejecución y con hash; este hash se compara con el que está incrustado en el chip. Si el hash coincide, la clave pública se utiliza para verificar una firma digital de firmware controlado por el proveedor de confianza (como una cadena de cargadores de arranque en dispositivos Android o 'enclaves arquitectónicos' en SGX). A continuación, se utiliza el firmware de confianza para implementar la atestación remota. [11]
Cuando se certifica una aplicación, su componente no confiable carga su componente confiable en la memoria; la aplicación confiable está protegida contra modificaciones por componentes no confiables con hardware. La parte no confiable solicita un nonce del servidor del verificador y se utiliza como parte de un protocolo de autenticación criptográfica, lo que demuestra la integridad de la aplicación confiable. La prueba se pasa al verificador, que la verifica. Una prueba válida no se puede calcular en un hardware simulado (es decir, QEMU ) porque para construirla, se requiere acceso a las claves integradas en el hardware; solo el firmware de confianza tiene acceso a estas claves y / o las claves derivadas de ellas u obtenidas con ellas. Debido a que solo el propietario de la plataforma debe tener acceso a los datos registrados en la fundición, la parte verificadora debe interactuar con el servicio establecido por el proveedor. Si el esquema se implementa incorrectamente, el proveedor de chips puede rastrear qué aplicaciones se utilizan en qué chip y denegar selectivamente el servicio devolviendo un mensaje que indica que la autenticación no ha pasado.
Para simular el hardware de una manera que le permita pasar de manera ilícita la autenticación remota, un atacante tendría que extraer claves del hardware, lo cual es costoso debido al equipo y la habilidad técnica necesarios para ejecutarlo. Por ejemplo, usando haces de iones enfocados , microscopios electrónicos de barrido , microprobe y desencapsulado de chips [12] [13] [14] [15] [16] [17] o incluso imposible, si el hardware está diseñado de tal manera que se invierte -la ingeniería destruye las llaves. En la mayoría de los casos, las claves son únicas para cada pieza de hardware, por lo que una clave extraída de un chip no puede ser utilizada por otros (por ejemplo, funciones físicamente imposibles de clonar [18] [19] ).
Aunque la privación de propiedad no es una propiedad inherente de los TEE (es posible diseñar el sistema de manera que solo el usuario que ha obtenido la propiedad del dispositivo primero controle el sistema), en la práctica todos estos sistemas en electrónica de consumo son diseñado intencionalmente para permitir a los fabricantes de chips controlar el acceso a la certificación y sus algoritmos. Permite a los fabricantes otorgar acceso a TEE solo a los desarrolladores de software que tienen un acuerdo comercial (generalmente comercial) con el fabricante, y habilitar casos de uso como tivoización y DRM.
Usos
Hay varios casos de uso para el TEE. Aunque no todos los casos de uso posibles explotan la privación de propiedad, TEE se usa generalmente exactamente para esto.
Protección de contenido premium / gestión de derechos digitales
Nota: Gran parte de la literatura sobre TEE cubre este tema bajo la definición "protección de contenido premium", que es la nomenclatura preferida de muchos titulares de derechos de autor. La protección de contenido premium es un caso de uso específico de la gestión de derechos digitales (DRM) y es controvertido entre algunas comunidades, como la Free Software Foundation . [20] Es ampliamente utilizado por los titulares de derechos de autor para restringir las formas en que los usuarios finales pueden consumir contenido como películas de alta definición 4K.
El TEE es un entorno adecuado para proteger información codificada digitalmente (por ejemplo, películas o audio HD) en dispositivos conectados como teléfonos inteligentes, tabletas y televisores HD. Esta idoneidad proviene de la capacidad del TEE de privar al propietario del dispositivo de leer los secretos almacenados y del hecho de que a menudo existe una ruta de hardware protegida entre el TEE y la pantalla y / o los subsistemas de los dispositivos.
El TEE se utiliza para proteger el contenido una vez que está en el dispositivo: mientras que el contenido está protegido durante la transmisión o la transmisión mediante el uso de cifrado, el TEE protege el contenido una vez que se ha descifrado en el dispositivo, asegurando que el contenido descifrado no se expuestos al medio ambiente no aprobados por el desarrollador de la aplicación O el proveedor de la plataforma.
Servicios financieros móviles
Las aplicaciones de comercio móvil como: billeteras móviles, pagos entre pares, pagos sin contacto o el uso de un dispositivo móvil como terminal de punto de venta (POS) a menudo tienen requisitos de seguridad bien definidos. Los TEE se pueden utilizar, a menudo junto con comunicaciones de campo cercano (NFC), SE y sistemas back-end de confianza para proporcionar la seguridad necesaria para permitir que se realicen transacciones financieras.
En algunos escenarios, se requiere la interacción con el usuario final, y esto puede requerir que el usuario exponga información confidencial como un PIN, contraseña o identificador biométrico al sistema operativo móvil como un medio para autenticar al usuario. El TEE ofrece opcionalmente una interfaz de usuario confiable que se puede utilizar para construir la autenticación de usuario en un dispositivo móvil.
Autenticación
El TEE es adecuado para admitir métodos de identificación biométrica (reconocimiento facial, sensor de huellas dactilares y autorización de voz), que pueden ser más fáciles de usar y más difíciles de robar que los PIN y las contraseñas. El proceso de autenticación generalmente se divide en tres etapas principales:
- Almacenamiento de un identificador de "plantilla" de referencia en el dispositivo para compararlo con la "imagen" extraída en la siguiente etapa.
- Extraer una "imagen" (escanear la huella dactilar o capturar una muestra de voz, por ejemplo).
- Usando un motor de coincidencia para comparar la "imagen" y la "plantilla".
Un TEE es una buena área dentro de un dispositivo móvil para albergar el motor de coincidencia y el procesamiento asociado requerido para autenticar al usuario. El entorno está diseñado para proteger los datos y establecer un búfer contra las aplicaciones no seguras ubicadas en el sistema operativo móvil . Esta seguridad adicional puede ayudar a satisfacer las necesidades de seguridad de los proveedores de servicios, además de mantener bajos los costos para los desarrolladores de teléfonos.
Empresa, gobierno y nube
El TEE puede ser utilizado por gobiernos, empresas y proveedores de servicios en la nube para permitir el manejo seguro de información confidencial en dispositivos móviles y en la infraestructura del servidor. El TEE ofrece un nivel de protección contra los ataques de software generados en el sistema operativo móvil y ayuda en el control de los derechos de acceso. Lo logra al albergar aplicaciones sensibles y 'confiables' que deben aislarse y protegerse del sistema operativo móvil y de cualquier malware malicioso que pueda estar presente. Mediante el uso de la funcionalidad y los niveles de seguridad que ofrece el TEE, los gobiernos y las empresas pueden tener la seguridad de que los empleados que utilizan sus propios dispositivos lo hacen de manera segura y confiable. Asimismo, los TEE basados en servidor ayudan a defenderse de los ataques internos y externos contra la infraestructura de back-end.
Programación modular segura
Con el aumento de los activos y las reutilizaciones de software, la programación modular es el proceso más productivo para diseñar la arquitectura de software, al desacoplar las funcionalidades en pequeños módulos independientes. Como cada módulo contiene todo lo necesario para ejecutar su funcionalidad deseada, el TEE permite organizar el sistema completo con un alto nivel de confiabilidad y seguridad, al tiempo que evita que cada módulo tenga vulnerabilidades de los demás.
Para que los módulos se comuniquen y compartan datos, TEE proporciona medios para enviar / recibir cargas útiles de forma segura entre los módulos, utilizando mecanismos como la serialización de objetos, junto con proxies.
Soporte de hardware
Las siguientes tecnologías de hardware se pueden utilizar para respaldar las implementaciones de TEE:
- AMD :
- BRAZO :
- TrustZone [26]
- IBM :
- IBM Secure Service Container , [27] anteriormente zACI, se introdujo por primera vez en las máquinas de la generación IBM z13 (incluidas todas las máquinas LinuxONE) en el nivel de controlador 27. [28]
- IBM Secure Execution , [29] introducido en máquinas de generación IBM z15 y LinuxONE III el 14 de abril de 2020.
- Intel :
- Tecnología de ejecución confiable
- Extensiones de SGX Software Guard [30]
- "Silent Lake" (disponible en procesadores Atom) [31] [32] [33]
- RISC-V :
- Entorno de ejecución confiable de seguridad MultiZone ™ [34]
- Marco TEE personalizable de Keystone [35]
- TEE escalable de Penglai para RISC-V [36]
Ver también
- Plataforma de terminal móvil abierta
- Grupo de informática de confianza
- Alianza FIDO
- Tarjeta Java
- Motor de administración de Intel
- Intel LaGrande
- Extensiones de protección de software
- Procesador de seguridad de plataforma AMD
- Modulo de plataforma confiable
- ARM TrustZone
- Elemento seguro NFC
- Base informática segura de próxima generación
Referencias
- ^ "Entorno de ejecución confiable, millones de usuarios tienen uno, ¿tienes el tuyo?" . Poulpita . 2014-02-18 . Consultado el 17 de mayo de 2017 .
- ^ Ram Kumar Koppu (26 de octubre de 2013). "Los beneficios de Trusted Execution Environment (TEE)" . YouTube .
- ^ "Desfragmentación y requisitos de hardware de Omtp" (PDF) . Gsma.org . Consultado el 17 de mayo de 2017 .
- ^ [1]
- ^ "OMTP anuncia los documentos finales antes de la transición a la comunidad de aplicaciones al por mayor" . Mobileeurope.co.uk .
- ^ "Documentos OMTP" . Gsma.com . Mayo de 2012 . Consultado el 12 de septiembre de 2014 .
- ^ Sabt, M; Achemlal, M; Bouabdallah, A (2015). "Entorno de ejecución confiable: qué es y qué no es". 2015 IEEE Trustcom / BigDataSE / ISPA (PDF) . IEEE . IEEE. págs. 57–64. doi : 10.1109 / Trustcom.2015.357 . ISBN 978-1-4673-7952-6. S2CID 206775888 .
- ^ Lee, S; Lee, JH (2018). "Protocolo de establecimiento de claves de sesión basado en TEE para sistemas de información y entretenimiento seguros". Automatización de diseño para sistemas embebidos . Saltador. 22 (3): 215–224. doi : 10.1007 / s10617-018-9212-5 . S2CID 52081114 .
- ^ Pastor, C; Arfaoui, G; Gurulian, yo; Lee, R; Markantonakis, K; Akram, R; Sauveron, D; Conchon, E (2016). "Ejecución segura y confiable: pasado, presente y futuro: una revisión crítica en el contexto de la Internet de las cosas y los sistemas ciberfísicos". 2016 IEEE Trustcom / BigDataSE / ISPA (PDF) . IEEE . IEEE. págs. 168-177. doi : 10.1109 / TrustCom.2016.0060 .
- ^ "Soluciones - Trustonic- Asegurar dispositivos inteligentes y aplicaciones móviles" . Trustonic.com .
- ^ "Hacia la formalización de la atestación remota basada en la identificación de privacidad mejorada (EPID) en Intel SGX" .
- ^ https://hackaday.com/2014/04/01/editing-circuits-with-focused-ion-beams/
- ^ https://www.blackhat.com/docs/us-15/materials/us-15-Thomas-Advanced-IC-Reverse-Engineering-Techniques-In-Depth-Analysis-Of-A-Modern-Smart-Card .pdf
- ^ Encontrar los bits AES en el pajar: ingeniería inversa y SCA con contraste de voltaje por Christian Kison, Jürgen Frinken y Christof Paar - https://www.iacr.org/archive/ches2015/92930620/92930620.pdf
- ^ Cómo los descifradores de códigos descifraron los secretos de la tarjeta inteligente: https://www.theguardian.com/technology/2002/mar/13/media.citynews
- ^ https://spectrum.ieee.org/nanoclast/semiconductors/design/xray-tech-lays-chip-secrets-bare
- ^ Principios de diseño para procesadores de tarjetas inteligentes a prueba de manipulaciones por Oliver Kömmerling Advanced Digital Security y Markus G. Kuhn University of Cambridge https://www.usenix.org/legacy/events/smartcard99/full_papers/kommerling/kommerling.pdf
- ^ https://semiengineering.com/knowledge_centers/semiconductor-security/physically-unclonable-functions/
- ^ Areno, Matthew y Plusquellic, J .. (2012). Protección de entornos de ejecución de confianza con claves secretas generadas por PUF. 1188-1193. 10.1109 / TrustCom.2012.255.
- ^ "Fundación de Software Libre de Gestión de Restricciones Digitales y Computación Traicionera trabajando juntos por el software libre" . Consultado el 20 de agosto de 2019 .
- ^ "AMD Secure Processor (tecnología incorporada)" . Amd.com .
- ^ "Hardware seguro y la creación de un ecosistema de confianza abierto" (PDF) . Classic.regonline.com . Consultado el 17 de mayo de 2017 .
- ^ Chiappetta, Marco (29 de abril de 2014). "Pruebas de APU AMD Beema y Mullins Low Power 2014 - Página 2" . HotHardware . Consultado el 17 de mayo de 2017 .
- ^ "CIFRADO DE MEMORIA AMD" (PDF) . developer.amd.com . 21 de abril de 2016.
|first=
faltante|last=
( ayuda ) - ^ "AMD SEV-SNP: Fortalecimiento del aislamiento de VM con protección de integridad y más" (PDF) . Enero de 2020.
- ^ "Entorno de ejecución confiable basado en GlobalPlatform y TrustZone Ready" (PDF) . Arm.com .
- ^ "IBM Secure Service Container" . ibm.com .
- ^ "Familia 2965 + 01 IBM z13s Modelos N10 y N20" . ibm.com .
- ^ "Descripción técnica de ejecución segura para Linux en IBM Z" . ibm.com .
- ^ "Los entornos de ejecución de confianza en dispositivos móviles" (PDF) . Cs.helsinki.fi . Consultado el 17 de mayo de 2017 .
- ^ "WW46_2014_MCG_Tablet_Roadmap_ 图文 _ 百度 文库" . Wenku.baidu.com .
- ^ "CyanogenMod / android_device_asus_mofd-common" . GitHub .
- ^ "heidiao / sfp_m2_bt" . GitHub .
- ^ "Hex Five Security agrega el entorno de ejecución confiable MultiZone ™ al ecosistema de software SiFive" . hex-five.com . Consultado el 13 de septiembre de 2018 .
- ^ "Papel Keystone y TEE personalizables" . keystone-enclave.org . Consultado el 10 de junio de 2021 .
- ^ "Enclave de Penglai" . penglai-enclave.systems/ . Consultado el 10 de junio de 2021 .