Pesquisadores do Grupo NCC
Lembremos que a tecnologia ARM TrustZone permite criar ambientes protegidos isolados por hardware que são completamente separados do sistema principal e executados em um processador virtual separado usando um sistema operacional especializado separado. O principal objetivo do TrustZone é fornecer execução isolada de processadores para chaves de criptografia, autenticação biométrica, dados de pagamento e outras informações confidenciais. A interação com o SO principal é realizada indiretamente através da interface de despacho. As chaves de criptografia privadas são armazenadas em um armazenamento de chaves isolado por hardware, que, se implementado corretamente, pode evitar seu vazamento se o sistema subjacente for comprometido.
A vulnerabilidade se deve a uma falha na implementação do algoritmo de processamento de curva elíptica, que levou ao vazamento de informações sobre o andamento do processamento dos dados. Os pesquisadores desenvolveram uma técnica de ataque de canal lateral que permite usar vazamentos indiretos existentes para recuperar o conteúdo de chaves privadas localizadas em um local isolado por hardware.
A principal causa do problema é o compartilhamento de componentes de hardware comuns e cache para cálculos no TrustZone e no sistema principal – o isolamento é realizado em nível de separação lógica, mas utilizando unidades computacionais comuns e com rastros de cálculos e informações sobre ramificação endereços sendo depositados no cache comum do processador. Utilizando o método Prime+Probe, baseado na avaliação de alterações no tempo de acesso à informação cache, é possível, através da verificação da presença de determinados padrões na cache, monitorizar fluxos de dados e sinais de execução de código associados aos cálculos de assinaturas digitais em TrustZone com precisão bastante alta.
A maior parte do tempo para gerar uma assinatura digital usando chaves ECDSA em chips Qualcomm é gasto realizando operações de multiplicação em um loop usando um vetor de inicialização que permanece inalterado para cada assinatura (
No caso da Qualcomm, foram identificados dois locais onde tais informações vazaram no algoritmo de multiplicação: ao realizar operações de pesquisa em tabelas e no código de recuperação de dados condicional com base no valor do último bit do vetor “nonce”. Apesar de o código da Qualcomm conter medidas para neutralizar o vazamento de informações por meio de canais de terceiros, o método de ataque desenvolvido permite contornar essas medidas e determinar vários bits do valor “nonce”, que são suficientes para recuperar chaves ECDSA de 256 bits.
Fonte: opennet.ru