Criptografia Informante: como quebrar dispositivos invioláveis

Gonzalo Álvarez Marañón    8 febrero, 2021
Criptografia Informante: como quebrar dispositivos invioláveis

A chave de segurança Titan do Google ou yubikey da Yubico é o grito final na segurança de autenticação multifatorial. De acordo com a própria página do Google:

«As chaves possuem um chip de hardware com firmware projetado pelo Google para verificar se ninguém as adulterou. Esses chips são projetados para resistir a ataques físicos que buscam extrair firmware e material secreto da chave.»

Em outras palavras, uma chave Titan ou YubiKey armazena sua chave privada e deve ser impossível extraí-la do seu dispositivo. Deve. Porque você pode, você pode, como vários pesquisadores do NinjaLab demonstraram em janeiro em um trabalho titânico (ok, sim, foi uma piada ruim). Usando um ataque de canal lateral.  

Como funcionam os ataques de canais laterais

O que acontece quando algoritmos matemáticos deixam quadros de criptógrafos e são programados dentro de chips do Mundo Real™? No mundo físico bruto, longe de corpos platônicos ideais, um pouco não tem escolha a não ser ser representado como uma corrente elétrica passando («1») ou não passando («0») através de um transistor. E, por mais sutil que circule, uma corrente elétrica inevitavelmente produz efeitos ao seu redor: uma pequena radiação eletromagnética, uma pequena variação de temperatura, um pequeno aumento no consumo de energia, um pequeno deslocamento de ar, um som imperceptível, …

Se você é capaz de medir esses efeitos, você é capaz de ler chaves, estados intermediários, memória, em suma, extrair informações suficientes para contornar o algoritmo matemático. Não importa o quão segura seja a sua criptografia, se a implantação de hardware permitir um ataque de canal lateral, ela será deixada em nada.

Ilustração 1. Modelo criptográfico tradicional (ideal), versus modelo criptográfico de canal lateral (real)

Os criptoanadistas descobriram desde o início da criptografia mecânica que cada dispositivo criptográfico está «gritando» sobre o que está acontecendo lá dentro. Em vez de atacar algoritmos, ataques de canais laterais atacam a implementação de algoritmos. Resumindo: se houver hardware envolvido, haverá um canal lateral filtrando informações. É física pura. Vamos ver com um exemplo.

O ataque de análise de energia na RSA

Em um artigo anterior, expliquei os ataques matemáticos contra o popular algoritmo de criptografia de chaves públicas da RSA, aunque solo mencioné de pasada la posibilidad de los ataques de canal lateral. Como você bem sabe, para criptografar com RSA a seguinte operação é realizada com a chave pública, e e n:

c = me mod n

enquanto para descriptografar você usar a chave privada, d:

m = cd mod n

O objetivo do atacante é extrair esta chave privada, d,dodispositivo. Como você pode ver, como a RSA funciona é baseada na operação de exponenciação. Como a RSA usa inteiros muito, muito grandes, os matemáticos procuraram atalhos para fazer o cálculo dessas operações rapidamente. Especificamente, o algoritmo de exponentição binária, também conhecido como quadrado emultiplicação, é frequentemente usado. É muito simples de entender. Para calcular 34 = 11100 puedes hacer las siguientes operaciones:

  • 32 = 9 (quadrado)
  • 92 = 81 (quadrado)

Para calcular este resultado ha bastado con elevar al cuadrado dos veces seguidas. Veamos qué pasa con otro exponente. Para 35 = 11101 el algoritmo funciona así:

  • 32 = 9 (quadrado)
  • 92 = 81 (quadrado)
  • 81 × 3 = 243 (Multiplicação)

En este caso, se han realizado dos cuadrados y una multiplicación. Finalmente, considera 312 = 111100:

  • 32 = 9 (quadrado)
  • 9 × 3 = 27 (Multiplicação)
  • 272 = 729 (quadrado)
  • 2792 = 531.441 (quadrado)

Até agora, você já deve ter notado como o algoritmo funciona: depois de ignorar o primeiro «1» do expoente, se você encontrar um «1», faça um quadrado e uma multiplicação; se você chegar a um «0», faça apenas um quadrado. Não importa o tamanho da base e do expoente, ela pode ser sempre exposta usando essas duas operações de forma extraordinariamente eficiente. Em suma, é sempre ao quadrado e só multiplicado se a broca expoente que está sendo processada for 1.

Agora, como você pode imaginar, quadrado e multiplicação são duas operações que vão demorar muito mais do que apenas quadrado. Se você pudesse ver quanto tempo está demorando para um circuito operar, você deduziria qual operação está realizando e, portanto, o que é o expoente privado, d. E a realidade é que é tão simples quanto observar o consumo do dispositivo, como mostra a figura a seguir:

Ilustração 2. Análise do consumo de um chip operando com RSA (fonte: Understanding Cryptography: A textbook para studantes).

Figura 1. Análise do consumo de um chip operando com RSA (fonte: Understanding Cryptography: A textbook para studantes).

A partir da observação do traço, segue-se que a chave secreta é:

Operações: S SM SM S SM S S SM SM SM S SM …

chave privada: 0 1 1 0 1 0 0 1 1 1 0 1 …

Claro, este ataque funciona para chaves de qualquer comprimento. Da mesma forma, outros algoritmos de criptografia filtram informações de outras maneiras, mas infelizmente todos filtram algo. E quando a análise de energia não filtra as informações buscadas, há muitos outros ataques.

Tipos de ataques de canais laterais

Além do ataque de canal lateral baseado no consumo de energia, os pesquisadores têm descoberto muitas outras maneiras de obter informações de um dispositivo de hardware em operação:

  • Ataque de cache: o cache é uma memória de atalho quase instantânea, usada para armazenar dados e instruções amplamente utilizados. Quando os dados são armazenados pela primeira vez (falha de cache) ocorre um atraso, ao contrário de quando os dados já estão armazenados em cache (cachehit), cujo acesso é instantâneo. Essa diferença nos tempos de acesso filtra informações valiosas que podem ser usadas por um adversário para obter dados confidenciais da memória. O devastador Meltdown e Spectre são exemplos desse tipo de ataque.
  • Ataque de tempo: realizado medindo o tempo que leva para diferentes instruções em um algoritmo criptográfico para ser executado de acordo com vários parâmetros. As variações de tempo permitem extrair informações da chave.
  • Ataque de monitoramento de consumo: nem todas as operações realizadas por um algoritmo são tão complexas quanto. Em geral, quanto mais complexo, mais consumo. Ao medir essas variações de consumo você pode extrair informações sobre os argumentos do algoritmo, como no exemplo visto para RSA.
  • Ataque eletromagnético: cada dispositivo eletrônico filtra radiação eletromagnética, que pode fornecer diretamente o conteúdo de informações confidenciais. Essas medidas podem ser usadas para inferir chaves criptográficas usando técnicas equivalentes a técnicas de análise de energia ou podem ser usadas em ataques não criptográficos, como o TEMPEST, que permitem que informações de monitor sejam reproduzidas de outra sala.
  • Sound Attack: Você pode deduzir o funcionamento do processador de um dispositivo e quebrar sua criptografia ouvindo com um smartphone convencional  ao som de seus capacitores e bobinas ao operar. Existem também ataques não criptográficos que exploram o som emitido pelas teclas do teclado ao inserir uma senha ou ruído das cabeças de uma impressora a jato de tinta ao imprimir.
  • Análise diferencial de falhas: quando o hardware é intencionalmente induzido a falhar, respostas inesperadas de uma execução de algoritmo podem ser usadas para obter informações sobre seus dados. Os ataques padding oracle contra RSA ou ataque de extensão de comprimento são muito famosos, com base nesta técnica.

A criptografia não é executada no papel, mas no hardware

Por mais seguro que seja um algoritmo no papel, ao funcionar no hardware a porta é aberta para ataques de canal lateral. Embora se conhecessem desde o início do século XX, eles passaram relativamente despercebidos porque exigem a proximidade física do atacante para realizá-los. Mas graças a smartphones e drones é fácil hoje implantar microfones e sensores em qualquer lugar para lançar ataques de canais laterais contra vítimas. Com o tempo, esses ataques se tornarão mais fáceis e baratos. Mesmo a distribuição de chaves quânticas não é livre de ataques de canais laterais.  

Além dos mencionados acima, novos ataques são continuamente descobertos: início frio, baseado em software, mensagens de erro, óptica, etc. Existem muitas contramedidas que podem ser adicionadas aos designs de hardware para neutralizar esses ataques: injetar aleatoriedade, adicionar ruído, apagar dados, etc. Esta é uma corrida em que os atacantes estão sempre um passo à frente dos engenheiros e que, infelizmente, não tem fim à vista.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *