This article is an automated machine-translation of an article in English. We know the translation isn't perfect, but we hope it's useful for people who don't read English.

SHA-1 ataque de força bruta aparado por 21% - de papel a partir de Oslo conferência senha hackers

Filed Under: Featured

Dois meses atrás, escrevi sobre a conclusão da Concorrência algoritmo de hash criptográfico NIST .

O vencedor foi Keccak - agora oficialmente chamado SHA-3.

Apesar da ratificação formal desta nova norma, hashes anteriores NIST permanecer comumente usados. Na verdade, podemos esperar para ver o SHA-1 e SHA-2 na selva por anos - possivelmente até mesmo por décadas.

SHA-1 esquemática iteração interior laço SHA-1, em particular, é ainda largamente encontrados no hashing de senha.

Hash da senha é o lugar onde você usa uma função hash de criptografia em alguma parte do seu sistema de senhas de arquivo para criar uma função só de ida.

A função one-way é um processo que é fácil de calcular em uma direção, mas complexa - ou, melhor ainda, computionally inviável - para trabalhar em sentido inverso.

Então, se você armazenar hashes de senha de mão única, em vez das senhas reais, os atacantes que roubam seu banco de dados não pode diretamente recuperar essas senhas. Eles têm que tentar senha após senha si, até que tenha sorte.

→ Usando uma função só de ida para armazenar senhas não é uma substituição para manter seu banco de dados de senha segura. É mais segurança que oferece um toque de defesa em profundidade, apenas no caso de o servidor não ficar arrombada.

Porque funções de sentido único não pode ser computado em sentido inverso, quebrar senhas criptograficamente hash é, inevitavelmente, um assunto de força bruta. Isso significa computar uma função one-way e outra vez.

Como resultado, os especialistas de quebra de senha colocar um grande esforço para melhorar o desempenho de algoritmos de hash amplamente utilizados senha, incluindo nomeadamente, SHA-1.

Em junho de 2012, por exemplo, pesquisadores magnum e JimF (Jim Fougeron) contribuiu código para a senha biscoito João Ripper que impulsionou-primas velocidades SHA-1 hashing de senha em 80%.

E, para a mesma versão, Tavis Ormandy, veio com uma implementação otimizada oferecendo uma melhora de desempenho de 115%, embora limitado a senhas com menos de 15 caracteres.

Biscoitos Senha → são facilmente abusado. Você provavelmente vai querer controlar o seu uso dentro de sua organização. Mas eles têm um propósito legítimo de defesa: encontrar higiene senha pobres em sua própria rede antes de os bandidos fazem.

Agora, Jens Steube, autor do pasword ferramentas de quebra no hashcat família, contribuiu para as otimizações contra o SHA-1, quando quebrar senhas.

Steube descreveu seu trabalho em um artigo na recente Senhas ^ 12 conferências em Oslo, Noruega.

^ 12 senhas conferência de imprensa

Melhorias Steube de quebra de senha reduzir em 21% o número de instruções de computador necessários para computar um hash SHA-1. Isto pode permitir que as optimizações anteriores - tais como aqueles que os descritos acima - ser mexido ainda mais para a velocidade adicional.

Steube notou que "circuito interno" SHA-1 pode ser útil se você emagreceu são repetidamente calcular hashes de dados de entrada em que apenas a palavra primeira entrada (32 bits, ou quatro bytes) muda a cada vez.

Para um ataque de senha, isso pode ser facilmente arranjado.

Muito simplificada, o algoritmo SHA-1 consome sua entrada em blocos de 16 palavras de 32 bits (512 bits, ou 64 bytes), misturando cada bloco em um hash acumulado de cinco palavras de 32 bits (160 bits, ou 20 bytes).

para o bloco em blocos () fazer
   para i = 17 a 80 ¿
      - Cada passo aqui a entrada 16 estende-se a palavra-original
      - Bloqueia a 80 palavras, adicionando uma palavra feito misturando 
      - Juntos quatro dos últimos 16 palavras.     
      bloco [i] = minimixtogether (bloco, i)
   final
   
   para i = 1 a 80 ¿
      - Cada passo aqui se mistura uma das palavras da palavra-80
      - "Bloco estendida" para o acumulador de cinco bytes de hash
      hash = giantmixtogether (bloco, i)
   final
final

O giantmixtogther () função que embaralha a entrada estendida no hash usa uma variedade de diferentes operações, incluindo NOT, AND, OR, XOR, ADD e ROL (rodar para a esquerda).

Mas o minimixtogether () usada para condicionar a entrada de dados usa apenas XOR e ROL. Devido à sua relativa simplicidade, Steube encontrou uma maneira de pular o minimixtogether () loop, e para calcular o "expandido" bloco de entrada valores [17] loop para bloquear [80] diretamente dentro do giantmixtogether ().

Método de Steube ainda precisa de alguns precalculation, mas várias avaliações separadas hash pode compartilhar esses dados pré-calculados se apenas o primeiro bloco (ou seja, os primeiros quatro caracteres) da entrada mudou.

Se você foi uma série de hash aleatoriamente selecionado de arquivos, por exemplo, isso você não é bom.

Mas ao realizar um ataque de força bruta contra senhas, é uma simples questão de colocar a sua entrada em uma seqüência adequada para que os primeiros quatro caracteres mudar mais rapidamente, seguido pelo resto da senha. (Imaginem uma odômetro do carro com os dígitos invertidos.)

Se você puder fazer isso, então implemeting ajustes Steube vai fazer o seu código executar 25% mais rápido. Só isso.

E aí está: mais um lembrete de que a segurança é uma corrida armamentista.

You might like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

About the author

Paul Ducklin is a passionate security proselytiser. (That's like an evangelist, but more so!) He lives and breathes computer security, and would be happy for you to do so, too. Paul won the inaugural AusCERT Director's Award for Individual Excellence in Computer Security in 2009. Follow him on Twitter: @duckblog