Criptografia Numaboa

Criptoanálise acústica

Seg

26

Jan

2009


00:00

  • Imprimir
(4 votos, média 2.50 de 5) 


A criptoanálise acústica é um ataque de canal lateral que se aproveita de sons, audíveis ou não, produzidos durante processamentos ou operações de entrada e saída smile

Introdução

Em 2004, Dmitri Asonov e Rakesh Agrawal do IBM Almaden Research Center revelaram que teclados de computador e teclados numéricos usados em telefones e máquinas automáticas (ATMs) são vulneráveis a ataques baseados na identificação do som produzido pelas diferentes teclas. Usaram uma rede neural para reconhecer as teclas pressionadas e, analisando os sons gravados, conseguiram recuperar o texto digitado. Atacantes que usam dispositivos de escuta clandestina podem utilizar esta técnica para obter senhas, frases-senha, PINs (personal identification number) e outras informações relacionadas à segurança de dados.

Antes de prosseguir com este assunto, dois esclarecimentos. Um ataque de canal lateral é um tipo de ataque que depende de informações obtidas das implementações físicas de um criptossistema, ou seja, vai bisbilhotar apenas o hardware, não levando em conta possíveis fraquezas dos algoritmos utilizados. Exemplos deste tipo de ataque são consumo de tempo (timing), vazamentos eletromagnéticos, vazamentos de som e consumo de energia. Redes neurais, em termos práticos, são ferramentas de modelagem estatística de dados não-lineares. Podem ser usadas para modelar relações complexas entre entradas e saídas para encontrar padrões nos dados analisados. Como sabemos, achou um padrão... achou uma porta de entrada!

Voltando à criptoanálise acústica, também em 2004, Adi Shamir e Eran Tromer demonstraram que é possível dirigir ataques de consumo de tempo contra uma CPU que esteja processando operações criptográficas analisando a variação do seu "zumbido". Aliás, o artigo publicado pelos dois, Acoustic cryptanalysis - On nosy people and noisy machines (Criptoanálise acústica - Sobre pessoas curiosas e máquinas barulhentas), é a base deste artigo.

Em 2005, cientistas da Universidade de Berkeley, baseados no trabalho de Asonov e Agrawal, alimentaram um computador com várias gravações de 10 minutos com sons de teclado e, com a ajuda de um algoritmo apropriado, conseguiram recuperar até 96% dos caracteres digitados. A grande novidade foi o algoritmo empregado - ele pode ser "treinado", ou seja, quanto mais for usado, mais "aprende".

Este papo de zumbido, ruído, barulhinho, téc-téc de teclado, etc não é coisa nova. No seu livro Spycatcher, Peter Wright, espião aposentado do MI5, discute o uso de um ataque acústico contra máquinas de cifragem Hagelin em 1956. Para os mais curiosos, o ataque recebeu o nome em código "ENGULF".

FAQ

Estas perguntas mais frequentes (FAQ) respondidas por Adi Shamir e Eran Tromer são muito elucidativas. Não custa traduzir...

Zum zum zum

Um dos métodos para se obter informações de sistemas supostamente seguros são os ataques de canal lateral, que são técnicas criptoanalíticas que dependem de vazamentos não previstos de informações provenientes de dispositivos computacionais. A maioria das pesquisas sobre ataques de canal lateral tratam de emanações eletromagnéticas (TEMPEST), consumo de energia e, mais recentemente, luz visível difusa de monitores CRT. O canal de "bisbilhotagem" mais antigo, o das emanações acústicas, foi quase que esquecido. Nossa análise preliminar das emanações acústicas provenientes de computadores pessoais mostram que são uma fonte surpreendentemente rica de informação sobre a atividade da CPU.

Pergunta 1 - Qual é a informação que vaza?

Depende do hardware do computador. Testamos diferentes computadores desktop e laptop e, em todos os casos, foi possível distinguir uma CPU ociosa (isto é, estado "HLT" no 80x86) de uma CPU em atividade. Em alguns computadores também foi possível distinguir vários padrões de operação e acesso à memória. Isto pode ser observado em casos artificiais (por exemplo, loops de várias instruções da CPU) e em casos reais (por exemplo, decifração RSA). A resolução do tempo geralmente é da ordem de milissegundos. Em alguns contextos, esta informação pode ser usada para revelar chaves secretas.

Pergunta 2 - Como uma fonte acústica de baixa frequência (KHz) contém informação de uma CPU muito mais rápida (GHz)?

De duas formas. Primeiro, quando a CPU está executando uma operação longa, ela pode criar uma assinatura espectral acústica característica. Por exemplo, logo abaixo mostramos como a assinatura/decifração do RSA soa diferente para diferentes chaves secretas. Em segundo lugar, obtemos informação temporal sobre a duração de cada operação e isto pode ser usado para montar ataques de tempo (veja a pergunta 10), especialmente quando o atacante puder afetar a operação de input (isto é, num cenário de ataque por texto cifrado escolhido).

Pergunta 3 - O ataque não pode ser prejudicado pelo ruído de uma ventoinha, multitarefa ou pela presença de vários computadores na mesma sala?

Provavelmente não. Os sinais acústicos interessantes, na sua maioria, estão acima de 10KHz. Por outro lado, ruídos típicos da ventoinha do computador e ruídos do ambiente se concentram em frequências mais baixas que podem ser filtradas por equipamentos adequados. Em sistemas multitarefa, as diferentes tarefas podem ser diferenciadas através das suas assinaturas espectrais acústicas. Quando há vários computadores, eles podem ser diferenciados através das suas assinaturas acústicas porque estas dependem do hardware, da temperatura dos componentes e de outras condições do ambiente.

Pergunta 4 - Quais são as medidas de proteção existentes?

Uma medida óbvia é o uso de equipamentos de redução de ruído, como caixas "à prova de som", projetados para atenuar todas as frequências relevantes. Por outro lado, uma fonte suficientemente forte com uma larga faixa de ruídos pode mascarar sinais importantes. Esta alternativa, no entanto, é pouco atrativa devido a problemas ergonômicos (ninguém quer ficar surdo!).

Componentes eletrônicos de alta qualidade e projetos cuidadosos provavelmente podem reduzir as emanações. Por outro lado, pode-se empregar conhecidas técnicas algorítmicas para reduzir o vazamento de informações úteis para atacantes. Estas técnicas garantem que o comportamento do algoritmo, a grosso modo, seja independente do input que receba. Elas geralmente penalizam um pouco o desempenho, mas já são aplicadas com frequência para bloquear outros ataques de canal lateral.

Pergunta 5 - Existem outros ataques acústicos?

A espionagem de teclados já foi muito discutida - as teclas podem ser identificadas pelo tempo ou, como proposto recentemente por Asonov e Agrawal, pelos diferentes sons que produzem ao serem pressionadas. Este ataque pode ser aplicado para obter dados entrados manualmente (como senhas), mas não é apropriado para dados secretos maiores como, por exemplo, chaves RSA.

Outra fonte acústica é a procura feita pelos cabeçotes de discos rígidos. Esta fonte, no entanto, não é muito útil na presença de caching, gravações com retardo e multitarefa.

Antes dos computadores modernos a espionagem acústica já era praticada. Vale lembrar a técnica "ENGULF" do MI5, recontada por Peter Wright no livro Spycatcher, onde foi obtida a chave secreta de uma máquina de cifragem Hagelin no embaixada do Egito através de uma escuta telefônica.


Pergunta 6 - Porque se incomodar com ataques acústicos se já existem os ataques TEMPEST e de análise do consumo de energia?

Ataques de canal lateral baseados em emanações eletromagnéticas são muito poderosos e largamente discutidos. É justamente por este motivo que já existem dispositivos de segurança, como gaiolas de Faraday e fontes com isolamento, para evitar estes ataques. Estas medidas, no entanto, podem ser transparentes para radiações acústicas. Além disto, equipamentos de gravação de áudio digital são universais e isto cria novos cenários de ataque: por exemplo, um laptop comprometido pode ser levado para uma sala de segurança e pode gravar valiosas informações acústicas sem o conhecimento do dono do laptop. Outro cenário é um programa de gravação rodando num computador onde outros programas estejam sendo executados - os limites de segurança do sandbox são rompidos ou sistemas do tipo NGSCB ficam comprometidos. Finalmente, técnicas conhecidas de espionagem, como a detecção da vibração de vidraças pelo seu efeito sobre fontes de laser refletidas, podem propiciar cenários adicionais de ataques.

Pergunta 7 -

Não consta ou foi retirada do texto original.

Pergunta 8 - O que existe de tão especial na instrução "HLT" e porque é importante detectá-la?

Apesar de não ser a única detectável, a instrução 80x86 HLT é a mais fácil de ser detectada acusticamente. Esta instrução coloca a CPU num estado especial de baixo consumo que perdura até a próxima chamada de interrupção do hardware. Em CPUs modernas, este estado desliga temporariamente muitos dos circuitos on-chip, o que reduz drasticamente o consumo de energia e altera as emissões acústicas por um período de tempo relativamente longo. Experimentalmente, a diferença entre computação ativa (que normalmente nunca envolve instruções HLT) e uma CPU ociosa (onde o kernel executa instruções HLT no seu loop de ociosidade) usualmente é bastante evidente. Se o único programa que estiver rodando for um aplicativo criptográfico, então isto já é suficiente para se detectar quando o programa "acorda" para manipular inputs e quando ele termina suas tarefas criptográficas - esta informação pode ser usada para montar ataques de tempo. É claro que detalhes acústicos adicionais mais sutis fornecerão ainda mais informações.

Pergunta 9 - O que há de tão especial em operações criptográficas?

Nossas experiências sugerem que, na maioria dos computadores, cada tipo de operação possui uma assinatura acústica - um som característico. Isto se aplica a qualquer operação, criptográfica ou de qualquer outro tipo. Focamos as operações criptográficas porque estas são projetadas para proteger informações, portanto, vazamentos de informação nestes casos podem ser críticos. Por exemplo, a recuperação de uma simples chave de decifração pode comprometer o sigilo de todas as mensagens enviadas através do canal de comunicação correspondente.

Pergunta 10 - Como funcionam os ataques de tempo?

Ataques de tempo pertencem à classe de ataques que tiram vantagem de informações auxiliares de canal lateral. Exploram o fato de que muitas operações computacionais variam no tempo dependendo dos inputs da operação. Neste caso, medindo-se o tempo que cada operação dura, pode-se verificar alguma coisa sobre seus inputs. Por exemplo, considere o criptossistema RSA. Neste sistema, a decifração de um texto cifrado c é feita tratando c como um número grande elevado à potência d, onde d é a chave secreta. O algoritmo mas simples (apesar de ineficiente) para calcular esta exponenciação é multiplicar c por ele mesmo d vezes. Isto demora um tempo proporcional a d. Assim, medindo-se este tempo, pode-se obter uma boa estimativa de d. Os algoritmos usados na prática ("elevar ao quadrado e multiplicar" e suas variações) são muito mais eficientes, mas possuem propriedades parecidas se não forem projetados para frustrar este tipo de ataque. Combinando várias medidas que correspondem a diferentes propriedades da chave, as possibilidades podem ser limitadas cada vez mais até que a chave seja recuperada. Este tipo de ataque de tempo foi apresentado por Kocher {quickdown:6} e demonstrado na prática por Boneh e Brumley {quickdown:5}

Experiências práticas

Inicialmente pensei em parar por aqui a tradução do artigo de Shamir e Tromer, mas vi que era uma pena não mostrar os resultados até certo ponto surpreendentes publicados pelos autores. Bem, então vamos lá.

Logo a seguir há vários exemplos mostrados como espectrogramas e arquivos WAV. Os espectrogramas foram criados com o software de análise de sinais Baudline rodando no GNU/Linux. O eixo horizontal mostra a frequência (0 a 48 KHz), o vertical é o tempo e a intensidade é determinada pela janela potência por frequência (quanto mais verde, mas intenso). Todas as gravações foram equalizadas (a grosso modo -10dB abaixo de 1KHz e +10dB acima de 10KHz) usando o equalizador rudimentar embutido no software.

As gravações abaixo foram feitas usando equipamento de baixo custo: um microfone condensador Røde NT3 (US$170), um mixer Alto S-6 (US$55) servindo de amplificador e equalizador rudimentar e uma placa de som Creative Labs Audigy 2 (US$70) para gravações num computador separado. As gravações abaixo foram feitas em condições perto das ideais: o microfone foi colocado a 20 cm do computador gravado, o gabinete do PC foi aberto e as ventoinhas barulhentas foram desligadas (onde possível).

Resultados comparáveis foram obtidos em condições mais realistas (isto é, o computador alvo fica intacto e colocado 1 a 2 metros longe do microfone) usando um equipamento de áudio mais caro. Por exemplo, um equalizador analógico de alta qualidade pode ser usado para atenuar fortes zumbidos de baixa frequência produzidos pelas ventoinhas e ruídos de fundo, permitindo a amplificação de sinais interessantes antes da quantização analógico-para-digital.

Exceto onde especificado de outra forma, o computador que foi gravado é um sem marca usando uma placa-mãe PC Chips M754LMR, CPU Intel Celeron 666MHz e fonte Astec ATX200-3516. Este computador foi escolhido devido às suas emanações acústicas particularmente intensas, mas em hipótese alguma é um caso especial: todos os computadores que testamos mostraram uma correlação significante entre o espectro acústico e as atividades da CPU e, em cerca da metade dos casos, o efeito pôde ser ouvido naturalmente quando padrões apropriados de atividade de CPU foram usados.

O som de assinaturas GnuPG RSA

Esta é a gravação do GnuPG 1.2.4 assinando uma mensagem curta usando uma chave RSA randômica precalculada de 4096 bits. A assinatura é feita duas vezes, ambas precedidas por uma parada (instrução HLT), manisfestando-se como ruído de banda larga. Para a assinatura, o GnuPG usa exponenciação baseada em CRT e isto é visível no espectrograma: a duração de cada assinatura é particionada em dois estágios parecidos mas distintos, correspondentes à exponenciação módulo p e módulo q.

GnuPG
Assinatura GnuPG

Acústico ou eletromagnético?

Como podemos ter certeza de que estamos captando um sinal acústico real e não apenas emanações eletromagnéticas com o microfone ou seu cabo atuando como uma antena? Em primeiro lugar, uma diferença audível pode ser percebida por uma pessoa atenta. Para uma evidência mais conclusiva, aqui a experiência anterior foi repetida, só que desta vez com o microfone envolto num lenço de tecido não condutor:

Lenço
Assinatura GnuPG com microfone isolado

Se desligarmos o microfone (usando seu interruptor), mas o deixarmos conectado a um amplificador ligado, o sinal desaparece:

Desligado
Assinatura GnuPG com microfone desligado
Assinaturas sonoras de assinaturas

Esta é a gravação do GnuPG 1.2.4 assinando uma mensagem fixa usando várias chaves RSA diferentes de 4096 bits geradas anteriormente. Cada assinatura é precedida por uma breve parada (estado HLT). Uma equalização curva-X é aplicada para atenuar as frequências baixas. Você pode ver claramente que cada assinatura (e efetivamente cada módulo p e q) possui uma assinatura espectral única.

Várias chaves
GnuPG usando várias chaves diferentes
Loops de operações da CPU

A seguir vamos para uma experiência mais controlada, tentando distinguir espectros característicos de diferentes operações da CPU. Escrevemos um programa simples que executa loops contendo uma das seguintes instruções x86: HLT, MUL, FMUL, acesso à memória desprezando os caches L1 e L2 e REP NOP. Abaixo executamos cada um destes loops homogênenos e depois os executamos uma segunda vez. É aplicada uma equalização curva-X.

Loops
Loops de operações da CPU

Aqui está a mesma experiência (apesar da diferença na escala do tempo) efetuada num IBM ThinkPad T21 movido por baterias. Surpreendentemente suas emanações acústicas são diferentes (e fornecem menos informações) quando alimentado por uma fonte AC.

IBM
Loops no ThinkPad movido a baterias
Fonte de emanações acústicas

A placa-mãe PC Chips M754LMR tem um banco de capacitores de 1500µF perto da CPU e do conector de energia. Aqui está o efeito de aplicar uma dose generosa de spray Quick-Freeze (não condutor, não inflamável, "congela pequenas áreas em -48°C") nestes capacitores enquanto a CPU está executando um loop de instruções MUL:

Congelando
Loop de operações MUL com capacitores congelados
Referências
Vadim Logofet Sberbankсковорода wokотзывы никас сотрудников акция ноутбукотзывы полигонзавод купитьMFX Broker