Ataque de canal lateral – Wikipédia, a enciclopédia livre

Tentativa de decodificar bits de chave RSA usando análise de energia. O pico à esquerda representa as variações de energia da CPU durante a etapa do algoritmo sem multiplicação, o pico à direita (mais amplo) – etapa com multiplicação, permitindo que um atacante leia os bits 0, 1.

Em segurança da computação, um ataque de canal lateral é qualquer ataque baseado em informações adicionais que podem ser reunidas devido à forma fundamental como um protocolo de computador ou algoritmo é implementado, ao invés de falhas no design do protocolo ou algoritmo em si (por exemplo, falhas encontradas em uma criptoanálise de um algoritmo criptográfico) ou erros menores, mas potencialmente devastadores, na implementação. (A criptanálise também inclui a busca por ataques de canal lateral.) Informações de temporização, consumo de energia, vazamentos eletromagnéticos e som são exemplos de informações adicionais que podem ser exploradas para facilitar ataques de canal lateral.

Alguns ataques de canal lateral exigem conhecimento técnico da operação interna do sistema, embora outros, como a análise diferencial de potência, sejam eficazes como ataques de caixa preta. O surgimento de aplicativos Web 2.0 e software como serviço também aumentou significativamente a possibilidade de ataques de canal lateral na web, mesmo quando as transmissões entre um navegador da web e o servidor são criptografadas (por exemplo, por meio de HTTPS ou criptografia Wi-Fi), segundo pesquisadores da Microsoft Research e da Indiana University.[1]

Tentativas de quebrar um criptossistema enganando ou coagindo pessoas com acesso legítimo geralmente não são consideradas ataques de canal lateral: veja engenharia social e criptoanálise de mangueira de borracha.

As classes gerais de ataques de canal lateral incluem:

  • Ataque de cache — ataques baseados na capacidade do atacante de monitorar os acessos ao cache feitos pela vítima em um sistema físico compartilhado, como em um ambiente virtualizado ou um tipo de serviço em nuvem.
  • Ataque de temporização — ataques baseados na medição do tempo que várias computações (como, por exemplo, comparar a senha fornecida por um atacante com a senha desconhecida da vítima) levam para serem realizadas.
  • Ataque de monitoramento de energia — ataques que fazem uso da variação do consumo de energia pelo hardware durante a computação.
  • Ataque eletromagnético — ataques baseados em vazamentos de radiação eletromagnética, que podem fornecer diretamente textos simples e outras informações. Tais medições podem ser usadas para inferir chaves criptográficas usando técnicas equivalentes às da análise de potência ou podem ser usadas em ataques não criptográficos, por exemplo, ataques TEMPEST (também conhecidos como van Eck phreaking ou monitoramento de radiação).
  • Criptoanálise acústica — ataques que exploram o som produzido durante uma computação (semelhante à análise de potência).
  • Análise diferencial de falha — na qual segredos são descobertos introduzindo falhas em uma computação.
  • Persistência de dados — na qual dados sensíveis são lidos após supostamente terem sido excluídos (por exemplo, ataque de inicialização a frio [Cold boot attack]).
  • Ataques iniciados por software — Atualmente, uma classe rara de canais laterais, Row hammer é um exemplo no qual a memória fora dos limites pode ser alterada acessando a memória adjacente com muita frequência (causando perda de retenção de estado).
  • Lista de permissões — ataques baseados no fato de que os dispositivos de lista branca se comportarão de maneira diferente ao se comunicar com dispositivos permitidos (enviando de volta as respostas) e dispositivos não permitidos (não respondendo aos dispositivos). Um canal lateral baseado em lista branca pode ser usado para rastrear endereços MAC do Bluetooth.
  • Óptico - no qual segredos e dados sensíveis podem ser lidos por gravação visual usando uma câmera de alta resolução ou outros dispositivos que possuam tais capacidades (veja exemplos abaixo).

Em todos os casos, o princípio subjacente é que os efeitos físicos causados pela operação de um sistema criptográfico (ao lado) podem fornecer informações adicionais úteis sobre segredos no sistema, como a chave criptográfica, informações parciais de estado, textos simples completos ou parciais e assim por diante. O termo criptofthora (degradação secreta) é às vezes usado para expressar a degradação de material de chave secreta resultante do vazamento de canal lateral.

Exemplos[editar | editar código-fonte]

Um ataque de cache de canal lateral funciona monitorando operações críticas de segurança, como a entrada da tabela AES[2][3][4] ou exponenciação modular ou multiplicação ou acessos à memória.[5] O atacante então é capaz de recuperar a chave secreta dependendo dos acessos feitos (ou não feitos) pela vítima, deduzindo a chave de criptografia. Além disso, ao contrário de alguns outros ataques de canal lateral, esse método não cria uma falha na operação criptográfica em andamento e é invisível para a vítima.

Em 2017, foram descobertas duas vulnerabilidades da CPU (denominadas Meltdown e Spectre), que podem usar um canal lateral baseado em cache para permitir que um atacante vaze o conteúdo da memória de outros processos e do próprio sistema operacional.Um ataque de temporização observa o movimento de dados para dentro e para fora da CPU ou memória no hardware que executa o criptossistema ou algoritmo. Apenas observando variações no tempo que leva para realizar operações criptográficas, pode ser possível determinar toda a chave secreta. Tais ataques envolvem análise estatística de medidas de temporização e foram demonstrados em redes.[6]

Um ataque de análise de potência pode fornecer informações ainda mais detalhadas observando o consumo de energia de um dispositivo de hardware, como CPU ou circuito criptográfico. Esses ataques são categorizados de forma aproximada em análise de potência simples (SPA) e análise de potência diferencial (DPA). Um exemplo é o Collide+Power, que afeta quase todas as CPUs.[7][8][9] Outros exemplos usam abordagens de aprendizado de máquina.[10]

Flutuações na corrente também geram ondas de rádio, permitindo ataques que analisam medidas de emissões eletromagnéticas (EM). Esses ataques geralmente envolvem técnicas estatísticas semelhantes às dos ataques de análise de potência.

Um ataque de canal lateral baseado em aprendizado profundo,[11][12][13] utilizando informações de potência e EM em vários dispositivos foi demonstrado com o potencial de quebrar a chave secreta de um dispositivo diferente, mas idêntico, em tão pouco quanto um único traço.

Análogos históricos aos ataques modernos de canal lateral são conhecidos. Um documento recentemente desclassificado da NSA revela que, já em 1943, um engenheiro da Bell Telephone observou picos decifráveis em um osciloscópio associados à saída descriptografada de um determinado teletipo criptografante.[14] Segundo o ex-oficial do MI5, Peter Wright, o Serviço de Segurança Britânico analisou as emissões do equipamento cifrado francês na década de 1960.[15] Na década de 1980, suspeitava-se que espiões soviéticos (KGB) haviam plantado dispositivos de escuta dentro de máquinas de escrever IBM Selectric para monitorar o ruído elétrico gerado quando a esfera da máquina girava e se inclinava para atingir o papel; as características desses sinais poderiam determinar qual tecla foi pressionada.[16]

O consumo de energia dos dispositivos causa aquecimento, que é compensado por efeitos de resfriamento. Mudanças de temperatura criam estresse mecânico termicamente induzido. Esse estresse pode gerar emissões acústicas de baixo nível de CPUs em operação (cerca de 10 kHz em alguns casos). Pesquisas recentes de Shamir et al. sugerem que informações sobre a operação de criptossistemas e algoritmos podem ser obtidas dessa maneira também. Isso é um ataque de criptoanálise acústica.

Se a superfície do chip da CPU, ou em alguns casos a embalagem da CPU, puder ser observada, imagens infravermelho também podem fornecer informações sobre o código sendo executado na CPU, conhecido como ataque de imagem térmica.

Exemplos de ataques de canal lateral óptico incluem obter informações do indicador de atividade do disco rígido[17] até a leitura de um pequeno número de fótons emitidos por transistores à medida que mudam de estado.[18]

Também existem canais laterais baseados em alocação e se referem às informações que vazam da alocação (em oposição ao uso) de um recurso, como largura de banda de rede, para clientes que estão solicitando simultaneamente o recurso disputado.[19]

Contramedidas[editar | editar código-fonte]

Como os ataques de canal lateral dependem da relação entre as informações emitidas (vazadas) por meio de um canal lateral e os dados secretos, as contramedidas se enquadram em duas categorias principais: (1) eliminar ou reduzir a liberação de tais informações e (2) eliminar a relação entre as informações vazadas e os dados secretos, ou seja, tornar as informações vazadas não relacionadas, ou melhor, "não correlacionadas", aos dados secretos, geralmente por meio de alguma forma de randomização do texto cifrado que transforma os dados de maneira reversível após a operação criptográfica (por exemplo, descriptografia) ser concluída.

Na primeira categoria, displays com blindagem especial para reduzir as emissões eletromagnéticas, diminuindo a suscetibilidade a ataques TEMPEST, estão agora disponíveis comercialmente. A condicionamento e filtragem da linha de energia podem ajudar a dissuadir ataques de monitoramento de energia, embora tais medidas devam ser usadas com cautela, uma vez que até mesmo correlações muito pequenas podem permanecer e comprometer a segurança. Invólucros físicos podem reduzir o risco de instalação sorrateira de microfones (para combater ataques acústicos) e outros dispositivos de micro-monitoramento (contra ataques de consumo de energia da CPU ou imagem térmica).

Outra contramedida (ainda na primeira categoria) é saturar o canal emitido com ruído. Por exemplo, um atraso aleatório pode ser adicionado para desencorajar ataques temporizados, embora os adversários possam compensar esses atrasos fazendo a média de várias medições (ou, mais geralmente, usando mais medições na análise). Quando a quantidade de ruído no canal lateral aumenta, o adversário precisa coletar mais medições.

Outra contramedida na primeira categoria é usar software de análise de segurança para identificar certas classes de ataques de canal lateral que podem ser encontrados durante as etapas de design do próprio hardware subjacente. Ataques temporizados e ataques de cache podem ser identificados por meio de certas plataformas de software de análise de segurança disponíveis comercialmente, que permitem testar a vulnerabilidade ao ataque em si, bem como a eficácia da mudança arquitetônica para contornar a vulnerabilidade. O método mais abrangente para empregar essa contramedida é criar um Ciclo de Vida de Desenvolvimento Seguro para hardware, que inclui a utilização de todas as plataformas de análise de segurança disponíveis em suas respectivas fases do ciclo de vida de desenvolvimento do hardware.[20]

No caso de ataques temporizados contra alvos cujos tempos de computação são quantizados em contagens de ciclos de relógio discretos, uma contramedida eficaz é projetar o software para ser isócrono, ou seja, executar em uma quantidade exatamente constante de tempo, independentemente de valores secretos. Isso torna os ataques temporizados impossíveis.[21] Tais contramedidas podem ser difíceis de implementar na prática, uma vez que até mesmo instruções individuais podem ter temporizações variáveis em algumas CPUs.

Uma contramedida parcial contra ataques simples de energia, mas não contra ataques diferenciais de análise de energia, é projetar o software de modo que seja "seguro para o contador de programa" no "modelo de segurança do contador de programa". Em um programa seguro para o contador de programa, o caminho de execução não depende de valores secretos. Em outras palavras, todos os ramos condicionais dependem apenas de informações públicas. (Esta é uma condição mais restritiva do que o código isócrono, mas menos restritiva do que o código sem branches). Mesmo que as operações de multiplicação consumam mais energia do que NOP (código) em praticamente todas as CPUs, usar um caminho de execução constante impede que diferenças de energia dependentes de operações (diferenças de energia ao escolher um ramo em vez de outro) vazem informações secretas.[21] Em arquiteturas onde o tempo de execução da instrução não é dependente de dados, um programa seguro para o contador de programa também é imune a ataques de temporização.[22][23]

Outra maneira pela qual o código pode ser não isócrono é que as CPUs modernas têm um cache de memória: acessar informações raramente utilizadas incorre em uma grande penalidade de temporização, revelando algumas informações sobre a frequência de uso dos blocos de memória. O código criptográfico projetado para resistir a ataques de cache tenta usar a memória de maneira previsível (como acessar apenas os dados de entrada, saída e do programa, e fazer isso de acordo com um padrão fixo). Por exemplo, buscas de tabela dependentes de dados devem ser evitadas porque o cache poderia revelar qual parte da tabela de busca foi acessada.

Outras contramedidas parciais tentam reduzir a quantidade de informações vazadas devido a diferenças de energia dependentes de dados. Algumas operações usam energia correlacionada ao número de bits 1 em um valor secreto. O uso de um código de peso constante (como o uso de portas Fredkin ou codificação de trilho duplo) pode reduzir o vazamento de informações sobre o peso de Hamming do valor secreto, embora correlações exploráveis provavelmente permaneçam a menos que o balanceamento seja perfeito. Esse "design equilibrado" pode ser aproximado no software manipulando tanto os dados quanto seu complemento juntos.[21]

Vários "CPUs seguros" foram construídos como CPUs assíncronas; eles não têm uma referência de temporização global. Embora essas CPUs tenham sido destinadas a tornar os ataques de temporização e energia mais difíceis,[21] pesquisas subsequentes descobriram que variações de temporização em circuitos assíncronos são mais difíceis de eliminar.[24]

Um exemplo típico da segunda categoria (decorrelação) é uma técnica conhecida como [embaralhamento (criptografia)|embaralhamento]. No caso de descriptografia RSA com exponente secreto e correspondente exponente de criptografia e módulo , a técnica é aplicada da seguinte forma (por simplicidade, a redução modular por m é omitida nas fórmulas): antes de descriptografar, ou seja, antes de calcular o resultado de para um dado texto cifrado , o sistema escolhe um número aleatório e o criptografa com o exponente público para obter . Em seguida, a descriptografia é feita em para obter . Como o sistema de descriptografia escolheu , ele pode calcular sua inversa módulo para cancelar o fator no resultado e obter , o resultado real da descriptografia. Para ataques que requerem coleta de informações de canal lateral de operações com dados controlados pelo atacante, o embaralhamento é uma contramedida eficaz, pois a operação real é executada em uma versão randomizada dos dados, sobre a qual o atacante não tem controle ou conhecimento.

Uma contramedida mais geral (pois é eficaz contra todos os ataques de canal lateral) é a contramedida de mascaramento. O princípio do mascaramento é evitar a manipulação direta de qualquer valor sensível , mas manipular um compartilhamento dele: um conjunto de variáveis (chamadas "compartilhamentos") tal que (onde é a operação XOR). Um atacante deve recuperar todos os valores dos compartilhamentos para obter qualquer informação significativa.[25]

Recentemente, a modelagem de caixa branca foi utilizada para desenvolver uma contramedida genérica de baixo custo em nível de circuito [26] contra ataques de canal lateral tanto de EM quanto de energia. Para minimizar os efeitos das camadas de metal de nível superior em um CI atuando como antenas mais eficientes,[27] a ideia é incorporar o núcleo criptográfico com um circuito de supressão de assinatura,[28][29] roteado localmente dentro das camadas de metal de nível inferior, levando à imunidade contra ataques de canal lateral tanto de energia quanto de EM.

Ver também[editar | editar código-fonte]

Referências[editar | editar código-fonte]

  1. Shuo Chen; Rui Wang; XiaoFeng Wang; Kehuan Zhang (maio de 2010). «Vazamentos de Canal Lateral em Aplicações Web: uma Realidade Hoje, um Desafio Amanhã» (PDF). IEEE Symposium on Security & Privacy 2010. Microsoft Research 
  2. Ashokkumar C.; Ravi Prakash Giri; Bernard Menezes (2016). «Algoritmos Altamente Eficientes para Recuperação de Chave AES em Ataques de Acesso ao Cache». 2016 IEEE European Symposium on Security and Privacy (EuroS&P). [S.l.: s.n.] pp. 261–275. ISBN 978-1-5090-1751-5. doi:10.1109/EuroSP.2016.29 
  3. Gorka Irazoqui; Mehmet Sinan Inci; Thomas Eisenbarth; Berk Sunar, Espera aí! Um ataque rápido entre máquinas virtuais no AES (PDF), consultado em 7 de janeiro de 2018 
  4. Yuval Yarom; Katrina Falkner, Flush+Reload: um Ataque de Canal Lateral de Alta Resolução, Baixo Ruído no Cache L3 (PDF), consultado em 7 de janeiro de 2018 
  5. Mehmet S. Inci; Berk Gulmezoglu; Gorka Irazoqui; Thomas Eisenbarth; Berk Sunar, Ataques ao Cache Possibilitam a Recuperação em Massa de Chaves na Nuvem (PDF), consultado em 7 de janeiro de 2018 
  6. David Brumley; Dan Boneh (2003). «Ataques remotos de temporização são práticos» (PDF) 
  7. Kovacs, Eduard (1 de agosto de 2023). «Quase Todas as CPUs Modernas Vazam Dados para Novo Ataque de Canal Lateral Collide+Power». SecurityWeek (em inglês). Consultado em 2 de agosto de 2023 
  8. Claburn, Thomas. «Outra falha de vazamento de dados na CPU encontrada. Felizmente, é impraticável». www.theregister.com (em inglês). Consultado em 2 de agosto de 2023 
  9. Collide+Power, Institute of Applied Information Processing and Communications (IAIK), 1 de agosto de 2023, consultado em 2 de agosto de 2023 
  10. Lerman, Liran; Bontempi, Gianluca; Markowitch, Olivier (1 de janeiro de 2014). «Ataque de análise de potência: uma abordagem baseada em aprendizado de máquina». International Journal of Applied Cryptography. 3 (2): 97–115. ISSN 1753-0563. doi:10.1504/IJACT.2014.062722 
  11. Timon, Benjamin (28 de fevereiro de 2019). «Ataques de Canal Lateral Baseados em Aprendizado Profundo não Perfis com Análise de Sensibilidade». Transações IACR sobre Hardware Criptográfico e Sistemas Embarcados: 107–131. ISSN 2569-2925. doi:10.13154/tches.v2019.i2.107-131. Consultado em 19 de novembro de 2021 
  12. "X-DeepSCA: Ataque de Canal Lateral com Aprendizado Profundo entre Dispositivos" por D. Das, A. Golder, J. Danial, S. Ghosh, A. Raychowdhury e S. Sen, na 56ª Conferência de Projeto Automatizado ACM/IEEE (DAC) 2019.
  13. "Abordagens Práticas para Ataque de Canal Lateral de Energia com Aprendizado Profundo entre Dispositivos" por A. Golder, D. Das, J. Danial, S. Ghosh, A. Raychowdhury e S. Sen, no IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 27, Edição 12, 2019.
  14. «Documento da NSA desclassificado revela a história secreta do TEMPEST». Wired. Wired.com. 29 de abril de 2008 
  15. «Uma Introdução ao TEMPEST» 
  16. Church, George (20 de abril de 1987). «A Arte da Espionagem de Alta Tecnologia». Time. Consultado em 21 de janeiro de 2010. Cópia arquivada em 4 de junho de 2011 
  17. Eduard Kovacs (23 de fevereiro de 2017), «LED do Disco Rígido Permite Roubo de Dados de PCs Isolados», Security Week, consultado em 18 de março de 2018 
  18. J. Ferrigno; M. Hlaváč (setembro de 2008), «Quando AES pisca: introduzindo canal lateral óptico», IET Information Security, 2 (3): 94–98, doi:10.1049/iet-ifs:20080038 
  19. S. Angel; S. Kannan; Z. Ratliff, «Alocadores de Recursos Privados e Suas Aplicações» (PDF), Proceedings of the IEEE Symposium on Security and Privacy (S&P), 2020. 
  20. Tortuga Logic (2018). «Identificação de Problemas de Isolamento em Arquiteturas Modernas de Microprocessadores». Consultado em 23 de fevereiro de 2018. Cópia arquivada em 24 de fevereiro de 2018 
  21. a b c d "Uma Arquitetura Assíncrona Baseada em Rede para Dispositivos Criptográficos" por Ljiljana Spadavecchia 2005 nas seções "3.2.3 Contramedidas", "3.4.2 Contramedidas", "3.5.6 Contramedidas", "3.5.7 Contramedidas de Software", "3.5.8 Contramedidas de Hardware" e "4.10 Análise de Canal Lateral de Arquiteturas Assíncronas".
  22. "The Program Counter Security Model: Automatic Detection and Removal of Control-Flow Side Channel Attacks" de David Molnar, Matt Piotrowski, David Schultz, David Wagner (2005).
  23. "The Program Counter Security Model: Automatic Detection and Removal of Control-Flow Side Channel Attacks" apresentação do trabalho em andamento da USENIX
  24. Jeong, C.; Nowick, S. M. «Optimization of Robust Asynchronous Circuits by Local Input Completeness Relaxation». 2007 Asia and South Pacific Design Automation Conference. [S.l.: s.n.] pp. 622–627. ISBN 978-1-4244-0629-6. doi:10.1109/ASPDAC.2007.358055 
  25. "Mascaramento contra Ataques de Canal Lateral: Uma Prova Formal de Segurança" por Emmanuel Prouff, Matthieu Rivain em Avanços em Criptologia - EUROCRYPT 2013.
  26. "EM and Power SCA-Resilient AES-256 in 65nm CMOS Through >350× Current-Domain Signature Attenuation" por D. Das et al., na Conferência Internacional de Circuitos de Estado Sólido da IEEE (ISSCC), 2020,
  27. "STELLAR: A Generic EM Side-Channel Attack Protection through Ground-Up Root-cause Analysis" por D. Das, M. Nath, B. Chatterjee, S. Ghosh e S. Sen, na Conferência Internacional da IEEE sobre Segurança e Confiança Orientadas por Hardware (HOST), Washington, DC, 2019.
  28. "ASNI: Attenuated Signature Noise Injection for Low-Overhead Power Side-Channel Attack Immunity" por D. Das, S. Maity, S.B. Nasir, S. Ghosh, A. Raychowdhury e S. Sen, na IEEE Transactions on Circuits and Systems I: Regular Papers, 2017, Vol. 65, Edição 10.
  29. "High efficiency power side-channel attack immunity using noise injection in attenuated signature domain" por D. Das, S. Maity, S.B. Nasir, S. Ghosh, A. Raychowdhury e S. Sen, na Conferência Internacional da IEEE sobre Segurança e Confiança Orientadas por Hardware (HOST), Washington, DC, 2017.

Leitura adicional[editar | editar código-fonte]

Livros[editar | editar código-fonte]

Ambrose, Jude; et al. (2010). Power Analysis Side Channel Attacks: The Processor Design-level Context. [S.l.]: VDM Verlag. ISBN 978-3-8364-8508-1 

Artigos[editar | editar código-fonte]

[1], Análise Diferencial de Energia, P. Kocher, J. Jaffe, B. Jun, apresentado em CRYPTO'99. [2], Ataque de canal lateral: uma abordagem baseada em aprendizado de máquina, 2011, L Lerman, G Bontempi, O Markowitch. [3], Ataques temporizados em implementações de Diffie-Hellman, RSA, DSS e outros sistemas, P. Kocher. [4], Introdução à Análise Diferencial de Energia e ataques relacionados, 1998, P Kocher, J Jaffe, B Jun. Nist.gov, uma nota de cautela sobre a avaliação de candidatos AES em cartões inteligentes, 1999, S Chari, C Jutla, J R Rao, P Rohatgi DES e Análise Diferencial de Energia, L Goubin e J Patarin, em Proceedings of CHES'99, Lecture Notes in Computer Science Nr 1717, Springer-Verlag Grabher, Philipp; et al. (2007). «Cryptographic Side-Channels from Low-power Cache Memory». In: Galbraith, Steven D. Cryptography and coding: 11th IMA International Conference, Cirencester, UK, December 18-20, 2007: proceedings, Volume 11. [S.l.]: Springer. ISBN 978-3-540-77271-2 

  • Kamal, Abdel Alim; Youssef, Amr M. (2012). «Fault analysis of the NTRUSign digital signature scheme». Cryptography and Communications. 4 (2): 131–144. doi:10.1007/s12095-011-0061-3 

Daniel Genkin; Adi Shamir; Eran Tromer (18 de dezembro de 2013). «Extração de Chave RSA via Criptoanálise Acústica de Baixa Largura de Banda». Universidade de Tel Aviv. Consultado em 15 de outubro de 2014 

Ligações externas[editar | editar código-fonte]