Recovering a Full AES-128 Key Across Tenant Boundaries via DDR4 Row-Buffer Timing on Cloud FPGAs
Este artigo demonstra que um co-inquilino totalmente não privilegiado em um FPGA de nuvem compartilhado pode recuperar uma chave mestra AES-128 completa de uma vítima ao explorar canais laterais de tempo de buffer de linha DDR4, superando a limitação de "um slot por banco" através de mapeamento de banco reengenheirado e agregação estatística através de múltiplas criptografias.
Artigo original sob licença CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
No mundo digital moderno, frequentemente imaginamos que nossos dados privados estão guardados em um cofre seguro, separados dos olhos curiosos de outros por camadas de software e paredes digitais. Esta é a promessa da computação em nuvem: que diferentes usuários possam compartilhar o mesmo hardware poderoso sem nunca ver o trabalho uns dos outros. No entanto, a realidade física de como os computadores armazenam informações conta uma história diferente. Quando um computador realiza um cálculo, ele frequentemente precisa procurar valores em uma lista grande, muito parecido com consultar um dicionário para encontrar uma definição. Para fazer isso rapidamente, o computador abre uma seção específica de sua memória, conhecida como buffer de linha (row buffer), para manter essa lista pronta. Se o computador precisar procurar um item diferente na mesma seção, ele deve fechar a lista atual e abrir uma nova, um processo que leva uma fração de segundo a mais. Essa diferença de tempo, embora minúscula, deixa um rastro. Assim como uma pegada na areia molhada revela por onde alguém caminhou, o tempo que leva para acessar a memória pode revelar quais dados estavam sendo usados. Por décadas, especialistas em segurança sabiam que essas pequenas pistas de tempo poderiam ser usadas para roubar segredos de um único computador, mas a questão permanecia se esse truque poderia funcionar através das fronteiras invisíveis que separam diferentes usuários em um servidor de nuvem compartilhado.
Pesquisadores da Universidade do Norte da Carolina em Charlotte demonstraram agora que é de fato possível roubar uma chave secreta completa de um vizinho em um servidor de nuvem compartilhado, usando nada além do tempo de acesso à memória. Eles focaram em um tipo específico de hardware de nuvem chamado Matriz de Portas Programáveis em Campo, ou FPGA, que é um chip reconfigurável usado para acelerar tarefas complexas. Em uma configuração típica de nuvem, múltiplos usuários são colocados no mesmo cartão físico para economizar dinheiro. Embora o software garanta que o Usuário A não possa ler diretamente os arquivos do Usuário B, ambos os usuários compartilham os mesmos chips de memória físicos fora do processador principal. Os pesquisadores mostraram que um usuário sem privilégios especiais, sem acesso aos dados da vítima e sem conhecimento da chave secreta, poderia ainda recuperar toda a chave de criptografia usada por um vizinho. Eles alcançaram isso medindo cuidadosamente quanto tempo levava para o seu próprio computador ler da memória enquanto o vizinho estava simultaneamente realizando uma criptografia.
O desafio era muito mais difícil do que simplesmente ouvir a atividade do vizinho. Em um cache de computador padrão, cada pedaço de dado deixa sua própria pegada única, permitindo que um atacante veja todas as dezesseis partes de uma chave secreta de uma só vez. No entanto, os chips de memória usados nesses servidores de nuvem se comportam de forma diferente. Eles possuem uma limitação estrutural onde cada seção de memória só consegue lembrar do último item que abriu. Quando uma vítima criptografa uma mensagem, ela procura dezesseis valores diferentes em uma linha. Como a seção de memória só pode manter um item aberto por vez, as quinze primeiras consultas são imediatamente sobrescritas pela décima sexta. No momento em que o atacante tenta ouvir, a evidência das primeiras quinze partes do segredo já desapareceu, deixando apenas a última parte visível. Isso criou uma barreira que tornou as técnicas de hacking padrão inúteis, pois o atacante poderia ver apenas um byte dos dezesseis bytes da chave, o que não é suficiente para quebrar a criptografia.
Para superar isso, os pesquisadores criaram uma estratégia inteligente que explorava o fato de que o chip de memória contém dezesseis seções independentes, cada uma com seu próprio buffer de memória. Em vez de tentar ouvir todas as dezesseis partes em uma única seção, eles reorganizaram os dados secretos para que cada uma das dezesseis partes da chave vivesse em uma seção de memória diferente. Dessa forma, quando a vítima procurava todos os dezesseis valores, ela abria todas as dezesseis seções simultaneamente, e nenhuma delas sobrescrevia as outras. O atacante então construiu uma ferramenta personalizada que podia verificar rapidamente cada uma das dezesseis seções para ver qual delas ainda estava aberta. Ao repetir esse processo com muitas mensagens de teste diferentes, o atacante poderia reunir pistas suficientes para reconstruir a chave secreta completa. Os pesquisadores testaram este método em uma placa Xilinx Alveo U250, um hardware comum usado em centros de dados. Eles descobriram que, ao executar seu próprio programa ao lado do programa de criptografia de uma vítima, podiam recuperar a chave mestra inteira em todas as dezenove chaves testadas, mesmo quando a vítima estava executando um processo de criptografia completo de dez rodadas.
O sucesso deste ataque dependeu de duas descobertas principais. Primeiro, os pesquisadores tiveram que descobrir exatamente como o controlador de memória decidia qual seção de memória usar para um dado específico. Esse mapeamento não é óbvio e é diferente para cada tipo de hardware. A equipe fez engenharia reversa deste mapa cronometrando quanto tempo levava para acessar diferentes endereços, efetivamente mapeando o layout da memória de fora para dentro. Segundo, eles tiveram que provar que o sinal que estavam detectando era real e não apenas ruído aleatório. A diferença de tempo entre um acesso bem-sído e um acesso falho era incrivelmente pequena, durando apenas cerca de quatro ciclos de clock, ou aproximadamente trinta e dois nanossegundos. Apesar desse sinal minúsculo, os pesquisadores mostraram que, ao tirar a média dos resultados ao longo de muitas tentativas, o padrão tornava-se claro. Em seu teste mais realista, onde o atacante e a vítima executavam programas completamente separados sem qualquer coordenação, o atacante recuperou com sucesso a chave completa de uma vítima que estava criptografando dados com um algoritmo de criptografia padrão verificado.
Este trabalho não significa que toda a computação em nuvem seja atualmente insegura, mas revela uma vulnerabilidade específica na forma como o hardware compartilhado é gerenciado. Os pesquisadores observaram que a maioria das instâncias de nuvem comercial hoje é dedicada a um único usuário, o que previne este tipo de ataque. No entanto, à medida que a indústria avança para um hardware compartilhado mais eficiente para reduzir custos, o risco aumenta. O estudo destaca que o isolamento lógico, que mantém o software separado, não é suficiente para proteger os recursos físicos. Os próprios chips de memória retêm um histórico do que foi acessado, e esse histórico pode ser lido por um vizinho. Os pesquisadores sugerem várias maneiras de corrigir isso, como manter dados secretos na memória rápida e privada dentro do chip, em vez da memória externa compartilhada, ou randomizar onde os dados são armazenados para que as pistas de tempo se tornem sem sentido. Eles também propõem que os provedores de nuvem possam monitorar padrões de acesso à memória para detectar quando um usuário está tentando espionar outro.
As implicações desta pesquisa estendem-se para além de apenas um tipo de criptografia. O método usado para roubar a chave baseia-se na forma fundamental como a memória funciona, o que significa que poderia potencialmente ser aplicado a outros algoritmos de guarda de segredos que utilizam tabelas de busca semelhantes. Os pesquisadores enfatizaram que suas descobertas são baseadas em experimentos reais de hardware, não em simulações de computador, o que confere aos resultados um alto grau de confiabilidade. Eles testaram o ataque contra cinquenta chaves aleatórias diferentes e dezenove cenários de criptografia diferentes, e funcionou todas as vezes. O processo inteiro de recuperação da chave levou apenas segundos após a configuração inicial estar concluída, tornando-o uma ameação prática para qualquer ambiente de nuvem futuro que permita a múltiplos usuários compartilhar a mesma memória física.
Em última análise, este estudo serve como um aviso de que o mundo físico do hardware de computador tem suas próprias regras que o software nem sempre consegue sobrepor. Assim como duas pessoas compartilhando um quarto podem ouvir os passos um do outro mesmo que não possam vê-lo, dois usuários compartilhando um servidor de nuvem podem ser capazes de ouvir o tempo de acesso à memória um do outro. Os pesquisadores mostraram que, com paciência suficiente e as ferramentas certas, esses ecos tênues podem ser amplificados em uma imagem clara de um segredo. À medida que os provedores de nuvem continuam a compactar mais usuários em menos chips para melhorar a eficiência, compreender esses canais laterais físicos será essencial para projetar sistemas que sejam verdadeiramente seguros. A solução não reside em construir paredes digitais mais altas, mas em compreender o comportamento físico da memória abaixo delas e garantir que o histórico das ações de um usuário não possa ser lido por outro.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.