Vulnerabilidad en chips Qualcomm que permite extraer claves privadas del almacenamiento TrustZone

Investigadores del Grupo NCC descubierto detalles vulnerabilidades (CVE-2018-11976) en chips Qualcomm, que permite determinar el contenido de claves de cifrado privadas ubicadas en un enclave aislado Qualcomm QSEE (Qualcomm Secure Execution Environment), basado en la tecnología ARM TrustZone. El problema se manifiesta en mas Snapdragon SoC, que se ha generalizado en los teléfonos inteligentes basados ​​​​en la plataforma Android. Las soluciones que solucionan el problema ya están incluido en la actualización de Android de abril y nuevos lanzamientos de firmware para chips Qualcomm. Qualcomm tardó más de un año en preparar una solución; la información sobre la vulnerabilidad se envió inicialmente a Qualcomm el 19 de marzo de 2018.

Recordemos que la tecnología ARM TrustZone le permite crear entornos protegidos aislados por hardware que están completamente separados del sistema principal y se ejecutan en un procesador virtual independiente utilizando un sistema operativo especializado independiente. El objetivo principal de TrustZone es proporcionar ejecución aislada de procesadores para claves de cifrado, autenticación biométrica, datos de pago y otra información confidencial. La interacción con el sistema operativo principal se realiza indirectamente a través de la interfaz de despacho. Las claves de cifrado privadas se almacenan dentro de un almacén de claves aislado por hardware que, si se implementa correctamente, puede evitar su filtración si el sistema subyacente se ve comprometido.

La vulnerabilidad se debe a una falla en la implementación del algoritmo de procesamiento de curva elíptica, lo que provocó una fuga de información sobre el progreso del procesamiento de datos. Los investigadores han desarrollado una técnica de ataque de canal lateral que permite utilizar filtraciones indirectas existentes para recuperar el contenido de claves privadas ubicadas en un lugar aislado por hardware. Almacén de claves de Android. Las fugas se determinan basándose en el análisis de la actividad del bloque de predicción de rama y los cambios en el tiempo de acceso a los datos en la memoria. En el experimento, los investigadores demostraron con éxito la recuperación de claves ECDSA de 224 y 256 bits del almacén de claves aislado de hardware utilizado en el teléfono inteligente Nexus 5X. Recuperar la clave requirió generar alrededor de 12 mil firmas digitales, lo que tomó más de 14 horas. Herramientas utilizadas para llevar a cabo el ataque. captura de caché.

La causa principal del problema es compartir componentes de hardware comunes y caché para los cálculos en TrustZone y en el sistema principal: el aislamiento se realiza en el nivel de separación lógica, pero utilizando unidades informáticas comunes y con rastros de cálculos e información sobre la sucursal. direcciones que se depositan en la memoria caché del procesador común. Utilizando el método Prime+Probe, basado en la evaluación de cambios en el tiempo de acceso a la información almacenada en caché, es posible, al verificar la presencia de ciertos patrones en la caché, monitorear los flujos de datos y los signos de ejecución de código asociados con los cálculos de firmas digitales en TrustZone con una precisión bastante alta.

La mayor parte del tiempo para generar una firma digital utilizando claves ECDSA en chips Qualcomm se dedica a realizar operaciones de multiplicación en un bucle utilizando un vector de inicialización que no cambia para cada firma (nuncio apostólico). Si el atacante puede recuperar al menos algunos bits con información sobre este vector, será posible llevar a cabo un ataque para recuperar secuencialmente toda la clave privada.

En el caso de Qualcomm, se identificaron dos lugares donde se filtró dicha información en el algoritmo de multiplicación: al realizar operaciones de búsqueda en tablas y en el código de recuperación de datos condicional basado en el valor del último bit en el vector “nonce”. A pesar de que el código de Qualcomm contiene medidas para contrarrestar la fuga de información a través de canales de terceros, el método de ataque desarrollado permite eludir estas medidas y determinar varios bits del valor "nonce", que son suficientes para recuperar claves ECDSA de 256 bits.

Fuente: opennet.ru

Añadir un comentario