Ataque de força bruta

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
A EFF DES cracker de US$250.000 continha mais de 1.800 chips customizados que podiam quebrar uma chave DES por meio da força bruta em questão de dias. A fotografia mostra uma placa de circuito do DES Cracker preenchida em ambos os lados com 64 Deep Crack chips.

Em criptografia, um ataque de força bruta, ou busca exaustiva da chave, é um ataque criptoanalítico que, em teoria, pode ser usado contra qualquer dado encriptado [1] (exceto por dados encriptados através de um esquema de segurança informação-teórica). Este ataque pode ser utilizado quando não há possibilidades de tirar vantagem de nenhuma outra fraqueza de um sistema de encriptação (se alguma existir) de modo a tornar o ataque mais fácil. Ele consiste de uma checagem sistemática de todas as possibilidades de chaves ou senhas até a correta ser encontrada. No pior caso, isto implicaria em percorrer todo o espaço de busca.

Quanto a encontrar senhas, este método é muito rápido quando usado para checar todas as senhas curtas, mas para senhas longas, outros métodos são usados, como o ataque do dicionário, por causa do tempo que o ataque de força bruta pode levar.

Quanto a encontrar chaves, o tamanho de chave é usado na cifra para determinar a viabilidade prática da aplicação do ataque de força bruta, pois chaves mais longas são exponencialmente mais difíceis de quebrar que as chaves curtas. Uma cifra com a chave de n bits pode ser quebrada em seu pior caso em um tempo proporcional a 2^n e um tempo médio de metade disto.

Um ataque de força bruta pode ser menos efetivo através da ofuscação do dado a ser codificado, algumas vezes feita para tornar mais difícil para o atacante reconhecer quando o código foi quebrado. Uma das medidas de resistência de um sistema de criptografia é o quão longo seria um ataque de bruta bem sucedido aplicado nele pelo melhor atacante.

Ataques de força bruta são uma aplicação da busca por força bruta, a técnica de resolução de problemas geral que consiste em enumerar todos os candidatos possíveis a solução e verificar cada um deles.

O termo "força bruta" não é o único termo que nomeia este tipo de ataque. Ele também pode ser chamado de "bruta força", "busca por exaustão", ou apenas "brute" (que é um nome comum de programas que realizam ataques de força bruta).

Limites teóricos[editar | editar código-fonte]

O recurso necessário para realizar um ataque de força bruta cresce exponencialmente com o aumento do tamanho da chave, não linearmente. Embora os regulamentos de exportação dos EUA restringiram historicamente o tamanho das chaves para chaves simétricas (por exemplo: DES), essas restrições não estão mais em vigor, portanto algoritmos simétricos modernos tipicamente usam chaves computacionalmente mais fortes que 128-256 bits.

Há um argumento físico para que chaves simétricas com tamanho de 128 bits sejam computacionalmente seguras contra ataques de força bruta. O chamado princípio de Landauer implicado pelas leis da física definem um limitante inferior para a energia necessária para a execução de um cálculo de kT · ln 2 por bit apagado em uma computação, onde T é a temperatura do dispositivo em kelvins, k é a constante de Boltzmann, e o logaritmo natural de dois é aproximadamente 0,693. Mesmo em princípio [2], nenhum dispositivo de computação irreversível pode usar menos energia do que isso. Então, para percorrer todos os possíveis valores de uma chave simétrica de 128 bits (ignorando o calculo real para checá-la) seriam teoricamente necessárias 2^{128}-1 inversões de bit em um processador convencional. Se for assumido que este calculo ocorre  próximo da temperatura ambiente (~300k), o limitante de Von Neumann-Landauer pode ser aplicado para estipular que a energia requerida seria em torno de 10^{18} joules, o que equivale a consumir 30 gigawatts de energia por ano. Isto é igual a (valor que significará mais que 1/100-ésimo da energia produzida pelo mundo) 30*10^9(W)*360*24*3600(s)=9.46*10^{17} J ou 262.7 TWh. O cálculo completo - checando se cada chave é a solução - consumiria muitas vezes mais que este montante. Além disto, esta é simplesmente a energia necessária para atravessar o espaço de busca da chave; a quantidade de tempo que cada bit leva para ser invertido não é considerado, o que certamente seria maior que 0 (esta notação refere-se ao Bremermann's limit).

No entando, esta argumentação assume que os valores de registro são alterados usando o conjunto convencional de e claro de operações que inevitavelmente gera entropia (para entender o conceito de entropia em computação, veja teoria da informação). Isto tem mostrado que hardwares podem ser projetados para não confrontar esta obstrução teórica (veja mais em computação reversível), embora nenhum destes computadores tenham sido construídos.[carece de fontes]

GPUs modernas são bem adaptadas a tarefas repetitivas e podem ser associadas a quebra de senhas baseadas em hardware

Como os sucessores comerciais da solução governamental ASICs se tornaram disponíveis, também se tornou conhecido o ataque de hardware customizável. Atualmente duas tecnologias emergentes tem provado sua capacidade no ataque de força bruta de certas cifras. Uma é a tecnologia de unidade de processamento gráfico[3] (GPU), a outra é Arranjo de Portas Programável em Campo (do inglês, field-programmable gate array, sigla: FPGA). Os benefícios da GPUs são sua larga disponbilidade e bom custo-benefício, já as FPGAs são boas em economizar energia por operação criptográfica. Ambas as tecnologias tentam transportar os benefícios do processamento paralelo para os ataques de força bruta. No caso das GPUs são alguns centenas de processadores, no caso da FPGA são alguns milhares de unidades de processamento tornando-os muito mais adequados a quebra de senhas que os processadores convencionais. Várias publicações no campo da análise criptográfica tem provado que a eficiência energética atual da tecnologia FPGA, como por exemplo, o computador COPACABANA FPGA Cluster consome a mesma energia que um único PC (600 W), mas tem uma performance de aproximadamente 2.500 PCs para certos algoritmos. Há firmas que provém soluções de análise criptográfica através de placas FPGA PCI Express até computadores FPGA dedicados [carece de fontes]. Encriptações WPA e WPA2 também tem tido sucesso na redução do trabalho necessário a ataque de força bruta num fator de 50 em comparação com os CPUs convencionais[4][5] e em algumas centenas no caso das FPGAs.

AES permitem o uso de chaves com 256 bits. Quebrar um sistema simétrico de chaves com 256 bits através da força bruta requer 2^{128} vezes mais poder computacional que uma chave de 128 bits. 50 supercomputadores que com um bilhão de bilhão (10^{18}) de chaves AES por segundo (se tal dispositivo poder ser feito um dia) demoraria, em teoria, 3*10^{51} anos para exaurir o espaço de busca de uma chave com 256 bits.

Um pressuposto intrínseco de um ataque de força bruta é que o espaço de busca é completamente usado pelo gerador de chaves, algo que repousa sobre as propriedades do gerador de números aleatórios, que assume-se que não haver defeitos em seu algoritmo ou implementação. Por exemplo, há sistemas que foram originalmente pensados para serem impossíveis de quebrar por força bruta que, ainda sim, foram quebrados. Isto porque verificou-se que o espaço de busca da chave era muito menor do que o que se pensava inicialmente por causa de falta de entropia em seu gerador de números pseudo-aleatórios. Estes incluem a implementação do Netscape da SSL (que teve uma quebra famosa em 1995 executada por Ian Goldberg e David Wagner [6]) e uma edição Debian/Ubuntu do OpenSSL foi descoberta falha em 2008[7]. A mesma falta de implementação de entropia levou a quebra do código Enigma[8][9].

Reciclagem de credencial[editar | editar código-fonte]

Reciclagem de credencial refere-se a prática de hacking de reusar uma combinação de nome de usuário e senhas encontrados em ataques de força bruta anteriores. Uma forma especial de reciclagem de credencias é a passagem de hash (do inglês, pass the hash), em que uma credencial de hash sem sal é roubada, de sessões anteriores ou outros meios, e reutilizada sem a necessidade de iniciar-se um novo ataque de força bruta

Códigos inquebráveis[editar | editar código-fonte]

Certos tipos de encriptações, por suas propriedades matemáticas, não podem ser quebradas por força bruta. Um exemplo disto é o one-time pad criptográfico, onde cada bit purotexto tem um bit de chave correspondente vinda de uma sequencia de chaves binárias verdadeiramente aleatórias. Uma mensagem de 140 caracteres resultante da encriptação através do one-time pad terá cada uma das possibilidades de mensagens com 140 caracteres reveladas eventualmente, inclusive a resposta correta - mas de todas as respostas dadas, é impossível descobrir qual a correta. Derrotar este tipo de sistema, como foi feito no projeto Venona, geralmente se não baseia apenas em pura criptografia, mas também em erros de implementação, como por exemplo, fraqueza no gerador de números pseudo-aleatório[10].

Contramedidas[editar | editar código-fonte]

No caso de um ataque offline, onde o atacante tem acesso ao material encriptado, ele pode tentar livremente tantas combinações de chaves quanto quiser sem correr o risco de ser descoberto ou ter interferências. No entanto, administradores de bando de dados ou diretórios podem usar contramedidas contra ataques de força bruta online, exemplos: limitar o número de tentativas para acertar uma senha; introduzir tempo de espera entre tentativas seguidas; aumentar a complexidade de resposta através do requerimento de CAPTCHA ou enviando um código de verificação via telefone; e/ou trancando a conta após uma certa quantidade de tentativas malsucedidas[11]. Administradores de websites podem prevenir um endereço de IP particular de fazer mais que um predeterminado número de tentativas de entrar com senhas malsucedidas independente de qual seja a conta, bloqueando-o.

Ataque de força bruta reverso[editar | editar código-fonte]

Em um ataque de força bruta reverso, uma única (normalmente comum) senha é tentada com múltiplos nomes de usuários ou arquivos encriptados[13]. O processo pode ser repetido para uma pequena seleção de senhas. Nesta estratégia, o atacante geralmente não tem um alvo em específico. Este ataque pode ser amenizado estabelecendo-se políticas que não proíbam senhas comuns, como por exemplo, obrigar que a senha tenha pelo menos um número e um caractere especial.

Softwares que executam ataques de força bruta[editar | editar código-fonte]

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

Notes[editar | editar código-fonte]

  1. Paar 2010, p. 7.
  2. Landauer 1961, p. 183-191.
  3. Graham 2011.
  4. Kingsley-Hughes 2008.
  5. Kamerling 2007.
  6. Viega 2002, p. 18.
  7. CERT-2008.
  8. Ellis.
  9. NSA-2009.
  10. Reynard 1997, p. 86.
  11. Burnett 2004.
  12. Ristic 2010, p. 136.
  13. http://www.infosecpro.com/applicationsecurity/a11.htm

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

Links externos[editar | editar código-fonte]