Pesquisadores da NCC Group vulnerabilidades () em chips Qualcomm, que permitem determinar o conteúdo de chaves de criptografia fechadas, armazenadas em um enclave isolado Qualcomm QSEE (Qualcomm Secure Execution Environment), baseado na tecnologia ARM TrustZone. O problema se manifesta em SoC Snapdragon, que se tornaram populares em smartphones baseados na plataforma Android. As correções que resolvem o problema já foram incluídas na atualização de abril do Android e em novas versões de firmware para os chips Qualcomm. A Qualcomm levou mais de um ano para preparar a correção — as informações sobre a vulnerabilidade foram enviadas para a Qualcomm em 19 de março de 2018.
Vale lembrar que a tecnologia ARM TrustZone permite a criação de ambientes protegidos isolados por hardware, que estão completamente separados do sistema principal e são executados em um processador virtual separado com o uso de um sistema operacional especializado. O principal objetivo do TrustZone é garantir a execução isolada de manipuladores de chaves de criptografia, autenticação biométrica, dados de pagamento e outras informações confidenciais. A interação com o sistema operacional principal ocorre indiretamente através de uma interface de gerenciamento. As chaves de criptografia fechadas são armazenadas dentro de um repositório de chaves isolado por hardware, o que, quando implementado corretamente, evita seu vazamento em caso de comprometimento do sistema principal.
A vulnerabilidade está relacionada a uma falha na implementação do algoritmo de processamento de curvas elípticas, que levava ao vazamento de informações sobre o processamento de dados. Pesquisadores desenvolveram uma técnica de ataque por meio de canais laterais, que permite recuperar o conteúdo das chaves fechadas com base em vazamentos indiretos que ocorrem em um . Os vazamentos são identificados com base na análise da atividade do bloco de previsão de transições e na variação do tempo de acesso aos dados na memória. Durante o experimento, os pesquisadores demonstraram com sucesso a recuperação de chaves ECDSA de 224 e 256 bits de um repositório de chaves isolado por hardware, utilizado no smartphone Nexus 5X. Para recuperar a chave, foram necessárias aproximadamente 12 mil assinaturas digitais, levando mais de 14 horas. Para realizar o ataque, foi utilizado um conjunto de ferramentas .
A principal razão para o surgimento do problema é o uso compartilhado de componentes de hardware e o cache para cálculos no TrustZone e no sistema principal — a separação é feita em nível lógico, mas com o uso de blocos de computação compartilhados e com a persistência de vestígios de cálculos e informações sobre endereços de transição no cache do processador compartilhado. Usando o método Prime+Probe, baseado na avaliação da variação do tempo de acesso às informações em cache, é possível rastrear fluxos de dados e indícios de execução de código associado aos cálculos de assinaturas digitais no TrustZone com uma precisão bastante alta, através da verificação da presença de certos padrões no cache.
A maior parte do tempo de formação de uma assinatura digital usando chaves ECDSA nos chips Qualcomm é gasta na execução de operações de multiplicação em ciclo, utilizando um vetor de inicialização imutável para cada assinatura (). Se um atacante conseguir recuperar pelo menos alguns bits de informação sobre esse vetor, haverá a possibilidade de realizar um ataque visando à recuperação sequencial de toda a chave privada.
No caso da Qualcomm, foram identificados dois pontos de vazamento de informações desse tipo no algoritmo de multiplicação: durante a execução de operações de busca em tabelas e no código de extração condicional de dados com base no valor do último bit no vetor 'nonce'. Apesar de medidas contra vazamentos de informações por canais laterais estarem presentes no código da Qualcomm, o método de ataque desenvolvido permite contornar essas medidas e determinar alguns bits do valor do 'nonce', que são suficientes para recuperar chaves ECDSA de 256 bits.
Fonte: opennet.ru
