Investigadores del Grupo NCC
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.
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 (
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