logo
Contato | Sobre...        
rebarba rebarba

Rodrigo Strauss :: Blog


Mais problemas com o HyperThreading

Pesquisando mais sobre HyperThreading e as implicações do cache compartilhado, cheguei à um artigo que já saiu a um bom tempo: Hyper-Threading Considered Harmful (pdf). Nesse artigo, o autor explica mais um problema sobre o cache compartilhado, só que dessa vez uma falha de segurança.

Como eu já disse no post anterior, os caches L1 e L2 dos processadores HT são compartilhados entre os núcleos lógicos. Sendo assim, em um processador HT, duas threads rodam ao mesmo tempo e usando o mesmo cache (isso não acontece em dois processadores, porque apesar das threads rodarem ao mesmo tempo, cada processador tem seu cache). Isso posibilita que uma thread consiga pegar dados de outra thread quando eles são colocados no cache. Junte isso com a possibilidade da primeira thread estar lendo - e consequentemente colocando no cache - uma chave de criptografia, e pronto, está criada a falha de segurança.

Apesar de não ser possível pegar todos os dados da outra thread, algumas partes de uma chave de criptografia é muito melhor do que nada, e isso muito mais perigoso quando uma chave é usada constantemente, dando à thread espiã a possibilidade de tentar pegar a chave por pedaços a cada vez que a chave de criptografia é usada.


Em 16/11/2005 03:07, por Rodrigo Strauss


  
 
 
Comentários
rebarba rebarba
  ::::