Neste artigo vou falar um pouco sobre segurança e como quebrar senhas (num nível bem iniciante) usando a linguagem VB .NET. |
O objetivo deste artigo é bem despretensioso e visa apresentar algumas técnicas comuns de quebra de senhas e quais contramedidas podemos implementar para proteger os nossos sistemas contra tais ataques. Naturalmente eu vou apenas introduzir o assunto e nem de longe vou abordar todas as possibilidades envolvidas.
Qual é a força da senha ?
A força da senha é a medida da eficiência de uma senha para resistir a
ataques de quebra de senha. De forma resumida , a força de uma senha é
determinada por :
Vamos
agora ver um exemplo prático. Vamos usar três senhas simples classificadas
conforme abaixo:
1. password - muito fraca
2. password1 - fraca
3. #password1$ - moderada
Quando maior a força da senha mais difícil será quebrar a senha e mais forte ela será.
Podemos listar alguns exemplos de senhas que são fáceis de serem quebradas:
Somente com números;
Somente com letras;
Totalmente com letras maiúsculas ou minúsculas;
Nomes próprios;
Palavras de dicionário;
Senhas curtas (menor que oito caracteres);
Assim, as suas senhas serão mais seguras se você evitar senhas com essas características.
Agora vamos usar uma ferramenta on-line que pode ser acessada neste link - md5convertor - para criptografar as senhas cimas usando a criptografia MD5.
Basta acessar o link : www.md5-creator.com e informar a senha e clicar no botão Create Md5 para obter a senha criptografada conforme abaixo:
Gerando a senha criptografada para cada uma das senhas acima teremos:
Senha | Hash MD5 | Indicador de Força da Senha |
---|---|---|
password | 5f4dcc3b5aa765d61d8327deb882cf99 | muito fraca |
password1 | 7c6a180b36896a0a8c02787eeafb0e4c | fraca |
#password1$ | 29e08fb7103c327d68327f23d8d9256c | moderada |
Muito bem...
Agora vamos acessar o endereço https://hashkiller.co.uk/md5-decrypter.aspx e obter o hash de cada uma das senhas acima:
1 | |
2 | |
3 |
Observe que cada uma das senhas foi descriptografada usando uma ferramenta gratuita. Mesmo a senha indicada como moderada foi quebrada em 99 milisegundos.
Conclusão : O MD5 é uma técnica fraca para geração de hash. Não se iluda, mesmo para uma senha mais longa e complexa o Hash gerado pode ser quebrado facilmente.
Técnicas de quebra de senha
Existem diversas técnicas que podem ser usadas para quebrar senhas.
Descreveremos as mais simples e as mais usadas :
1- Ataque de dicionário
Esse método envolve o uso de uma lista de palavras para comparar com senhas de usuários.
2- Ataque da força bruta
Este método é semelhante ao ataque de dicionário. Ataques de força bruta usam algoritmos que combinam caracteres alfanuméricos e símbolos para criar senhas para o ataque. Neste método tenta-se várias combinações de caracteres até achar a senha correta.
3- Ataque Rainbow table
Esse método usa hashes pré-calculados. Suponhamos que temos um banco de dados que armazena senhas como hashes md5. Podemos criar outro banco de dados que tenha hashes md5 de senhas comumente usadas. Podemos então comparar o hash da senha que temos com os hashes armazenados no banco de dados. Se uma correspondência for encontrada, então temos a senha.
4- Adivinhação
Esse método envolve adivinhação. Senhas como qwerty, password, admin, etc. são comumente usadas ou configuradas como senhas padrão. Se elas não foram alterados ou se o usuário é descuidado ao selecionar senhas, elas podem ser facilmente comprometidos.
5- Spidering
A maioria das organizações usa senhas que contêm informações da empresa. Essas informações podem ser encontradas nos sites da empresa, nas mídias sociais, como no Facebook, no Twitter, etc. A Spidering reúne informações dessas fontes para criar listas de palavras. A lista de palavras é usada para executar ataques de dicionário e de força bruta.
6- Ataques passivos on-line
Esse método usa ataques que são realizados somente aguardando e ouvindo, neste caso, através da tecnologia, usando ferramentas de sniffing como o Wireshark, ataques man-in-the-middle, etc.
Ferramentas para quebra de senhas
Vejamos agora algumas ferramentas que podem ser usadas para quebrar senhas
John the Ripper
Essa ferramenta usa o prompt de comando para quebrar senhas. Isso faz com
que seja adequado para usuários avançados que estão confortáveis
trabalhando com comandos. Ele usa a lista de palavras para quebrar senhas.
O programa é gratuito, mas a lista de palavras deve ser comprada. Tem listas
de palavras alternativas gratuitas que você pode usar. Acesse o site do
programa neste link:
https://www.openwall.com/john/
Caim e Abel
Essa ferramenta roda no Windows sendo usada para recuperar senhas de contas
de usuários, recuperação de senhas do Microsoft Access; sniffing de rede,
etc. Ao contrário da ferramenta anterior ela usa uma interface. É muito
comum entre novatos e iniciantes em script por causa de sua simplicidade de
uso. Acesse a ferramenta neste link:
https://www.softpedia.com/get/Security/Decrypting-Decoding/Cain-and-Abel.shtml
Ophcrack
Esta ferramenta é um cracker de senha do Windows multiplataforma que usa tabelas de arco-íris para quebrar senhas. Ele é executado no Windows, Linux e Mac OS. Também possui um módulo para ataques de força bruta, entre outros recursos. Visite o site da ferramenta aqui: http://ophcrack.sourceforge.net/
Brutus
Essa ferramenta é muito usada para quebrar senhas dos protocolos FTP, HTTP, IMAP, POP3, SMTP e Telnet. Site do Brutus : http://www.hoobie.net/brutus/brutus-aet2.zip
Essas são algumas das ferramentas mais conhecidas mas você pode encontrar centenas iguais a elas na web.
Para concluir você pode tomar algumas medidas básicas para dificultar a quebra de senha. Veja abaixo:
-
Evite usar senhas curtas e previsíveis
-
Evite usar senhas com padrões previsíveis, como 11552266.
- Evite usar datas de nascimento, casamento e outros dados pessoais em
senhas;
- As senhas armazenadas no banco de dados devem sempre ser criptografadas
usando um algorítimo forte.
- Procure sempre ter um indicativo da senha que esta usando.
O site http://testedesenha.com.br/ permite que você obtenha uma indicação da força de uma senha.
Veja abaixo um exemplo de utilização onde verificamos a força da senha #password$1:
Note que precisamos usar letras maiúsculas em nossa senha par torná-la mais forte.
Na segunda parte do artigo veremos um programa VB .NET que usa a força bruta para quebrar senhas bem simples.
"Eu sou o Alfa e o
Ômega, o princípio e o fim, diz o Senhor, que é, e que era, e que há de vir,
o Todo-Poderoso. "
Apocalipse 1:8
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net
VB .NET - O Calculando o CheckSum para um arquivo - Macoratti
C# - Login com SQL Server Compact e Hash com SHA256 - Macoratti
Mini-Curso : Criptografia na plataforma .NET - Aula 1 - Macoratti