O que é um ataque de dicionário?

Para se autenticar em um site, você precisa fornecer um nome de usuário e senha. O site então verifica os detalhes de autenticação que você forneceu, comparando-os com os detalhes armazenados em seu banco de dados. Se os detalhes corresponderem, o acesso será concedido. Se os detalhes não corresponderem, o acesso será negado.

Infelizmente, as violações de dados são uma ocorrência relativamente comum. As violações de dados podem ser um grande problema porque um dos bits de dados mais comumente visados ​​são os dados do usuário, especificamente a lista de nomes de usuário e senhas. Se as senhas forem armazenadas como estão, em texto sem formatação, qualquer pessoa com acesso ao banco de dados poderá acessar a conta de qualquer outro usuário. É como se tivessem recebido um chaveiro com a chave de todas as portas de um prédio de apartamentos.

Embora muito esforço seja feito para evitar violações de dados em primeiro lugar, recomenda-se uma estratégia de defesa em profundidade. Especificamente, o conselho de segurança afirma que as senhas devem ser hash, com apenas o hash da senha sempre armazenado. Uma função hash é uma função unidirecional que sempre converte a mesma entrada na mesma saída. Mesmo uma pequena mudança na entrada, no entanto, produz uma saída totalmente diferente. Criticamente, não há como reverter a função e transformar o hash de saída de volta na entrada original. O que você pode fazer, no entanto, é hash uma nova entrada e ver se a saída corresponde ao hash armazenado no banco de dados. Em caso afirmativo, você sabe que a senha corresponde, sem nunca saber a senha real.

Felizmente, isso também significa que, se um invasor violar o banco de dados, ele não obterá uma lista de senhas imediatamente úteis, mas obterá hashes. Para poder usar esses hashes, eles precisam ser quebrados.

Quebrando hashes de senha com inteligência

Decifrar um hash de senha é o processo de descobrir qual é a senha original que o hash representa. Porque não tem como reverter a função hash e transformar o hash em senha. A única maneira de quebrar um hash é adivinhar a senha. Um método é usar um ataque de força bruta. Isso envolve literalmente tentar todas as senhas possíveis. Isso significa começar pelo “a”, tentando cada letra, em ambos os casos, e cada número e símbolo. Em seguida, o invasor precisa tentar todas as combinações de dois caracteres, combinações de três caracteres e assim por diante. O aumento nas combinações possíveis de caracteres é exponencial cada vez que você adiciona um personagem. Isso torna difícil adivinhar senhas longas com eficiência, mesmo quando algoritmos de hash rápido são usados ​​com equipamentos poderosos de quebra de GPU.

Algum esforço pode ser economizado observando os requisitos de senha do site e não tentando senhas que seriam muito curtas para serem permitidas ou que não apresentam um número, por exemplo. Isso economizaria algum tempo e ainda se encaixaria na classe de um ataque de força bruta tentando todas as senhas permitidas. Os ataques de força bruta, embora lentos, irão - se deixados por tempo suficiente com muito poder de processamento - eventualmente quebrar qualquer senha, pois todas as combinações possíveis serão tentadas.

O problema dos ataques de força bruta é que eles não são muito inteligentes. Um ataque de dicionário é uma variante muito mais direcionada. Em vez de apenas tentar qualquer senha possível, ele tenta uma lista de senhas especificadas. O sucesso desse tipo de ataque depende da lista de senhas e do dicionário em questão.

Fazendo palpites educados

Dicionários de senha normalmente são criados a partir de senhas previamente quebradas de outras violações de dados. Esses dicionários podem conter milhares ou milhões de entradas. Isso se baseia no conceito de que as pessoas são ruins em criar senhas exclusivas. Evidências de violações de dados mostram que esse também é o caso, infelizmente. As pessoas ainda usam variações da palavra “senha”. Outros tópicos comuns são times esportivos, nomes de animais de estimação, nomes de lugares, nomes de empresas, odiar seu trabalho e senhas baseadas na data. Este último tende a acontecer especificamente quando as pessoas são forçadas a alterar regularmente suas senhas.

O uso de um dicionário de senhas reduz enormemente o número de suposições que precisam ser feitas em comparação com um ataque de força bruta. Os dicionários de senhas também tendem a conter senhas curtas e longas, o que significa que podem ser tentadas algumas senhas que não seriam alcançadas mesmo com anos ou adivinhação de força bruta. A abordagem também é bem-sucedida. As estatísticas variam com base na violação de dados e no tamanho e qualidade do dicionário usado, mas as taxas de sucesso podem exceder 70%.

As taxas de sucesso podem ser aumentadas ainda mais com algoritmos de mistura de palavras. Esses algoritmos pegam cada palavra no dicionário de senhas e as modificam um pouco. Essas modificações tendem a ser substituições de caracteres padrão e adição de números ou símbolos à direita. Por exemplo, é comum as pessoas substituirem a letra “e” por “3” e “s” por “$” ou adicionarem um ponto de exclamação no final. Algoritmos de confusão de palavras criam duplicatas de cada entrada no dicionário de senhas. Cada duplicata tem uma variação diferente dessas substituições de caracteres. Isso aumenta significativamente o número de senhas para adivinhar e também aumenta a taxa de sucesso, em alguns casos acima de 90%.

Conclusão

Um ataque de dicionário é uma variação direcionada de um ataque de força bruta. Em vez de tentar todas as combinações de caracteres possíveis, um subconjunto de combinações de caracteres é testado. Este subconjunto é uma lista de senhas que foram encontradas anteriormente e, se necessário, quebradas em violações de dados anteriores. Isso reduz enormemente o número de suposições a serem feitas ao cobrir senhas que foram usadas antes e, em alguns casos, vistas com frequência. Um ataque de dicionário não tem uma taxa de sucesso tão alta quanto um ataque de força bruta. Isso, no entanto, pressupõe que você tenha tempo e poder de processamento ilimitados. Um ataque de dicionário tende a obter uma taxa de sucesso decentemente alta muito mais rápido do que um ataque de força bruta. Isso porque não perde tempo com combinações extremamente improváveis ​​de personagens.

Uma das principais coisas que você deve fazer ao criar uma senha é garantir que ela não apareça em uma lista de palavras. Uma maneira de fazer isso é criar uma senha complexa, outra é criar uma senha longa. Geralmente, a melhor opção é criar uma senha longa com poucas palavras. É importante que essas palavras não formem uma frase real, pois isso pode ser adivinhado. Eles devem ser completamente independentes. É recomendável escolher uma senha com mais de 10 caracteres, sendo 8 o mínimo absoluto.



Como clonar um disco rígido

Como clonar um disco rígido

Na era digital moderna, onde os dados são um bem valioso, a clonagem de um disco rígido no Windows pode ser um processo crucial para muitos. Este guia completo

Como consertar o driver WUDFRd que falhou ao carregar no Windows 10?

Como consertar o driver WUDFRd que falhou ao carregar no Windows 10?

Você está enfrentando a mensagem de erro ao inicializar o computador, informando que o driver WUDFRd falhou ao carregar no seu computador?

Como corrigir o código de erro NVIDIA GeForce Experience 0x0003

Como corrigir o código de erro NVIDIA GeForce Experience 0x0003

Você está enfrentando o código de erro 0x0003 da experiência NVIDIA GeForce em sua área de trabalho? Se sim, leia o blog para descobrir como corrigir esse erro de forma rápida e fácil.

Noções básicas de impressão 3D: adesão à base da impressora

Noções básicas de impressão 3D: adesão à base da impressora

Aprendendo sobre impressão 3D? Aqui está o que você precisa saber sobre a adesão da base da impressora.

Como remover uma GPU do Windows PC em 2023

Como remover uma GPU do Windows PC em 2023

Você precisa remover a GPU do seu PC? Junte-se a mim enquanto explico como remover uma GPU do seu PC neste guia passo a passo.

Como instalar um SSD NVMe em um desktop e laptop

Como instalar um SSD NVMe em um desktop e laptop

Comprou um novo SSD NVMe M.2, mas não sabe como instalar? Continue lendo para saber como instalar um SSD NVMe em um laptop ou desktop.

O que é uma bomba lógica?

O que é uma bomba lógica?

Uma bomba lógica é um incidente de segurança em que um invasor configura uma ação atrasada. Continue lendo para saber mais.

O que é Stuxnet?

O que é Stuxnet?

O Stuxnet era um worm autopropagado. Foi o primeiro uso de uma arma cibernética e a primeira ocorrência de malware.

O que é um hacker ético?

O que é um hacker ético?

Um hacker ético é um hacker que age dentro das restrições da lei. Continue lendo para saber mais sobre o assunto.

O que é criptografia simétrica?

O que é criptografia simétrica?

Existem muitas partes diferentes da criptografia. Se você deseja criptografar alguns dados, existem dois tipos de algoritmos que você pode usar: simétrico