Armazenamento de senhas no Linux
Você sabe como são armazenadas as senhas no Linux? O que é e para que serve o salt number? O que é MD5? Este artigo não pretende ir muito a fundo no mundo da criptografia, mas sim explicar os conceitos necessários para entender o arquivo de senhas, os reais ataques. Quem programa para a WEB poderá achar este artigo além de curioso, muito útil!
Parte 6: Ataques ao Sistema de HASH
Basicamente existem três ataques que podem ser feitos, sem falar do cara olhando por cima do teu ombro enquanto você digita a senha!
a) O primeiro ataque é o de força bruta. Neste o atacante tem a posse do hash, mas não sabe que senha gerou ele. Ele pode tentar todas as possibilidades até conseguir. Ai entra o esforço de milhares de anos para o MD5 que mencionei.
b) ataque do dicionário: para que realizar força bruta se os usuários colocam senhas fáceis baseadas em palavras conhecidas. Mesmo o algoritmo mais forte do mundo perecerá se o usuário colocar como senha 1234. Ou ainda, baseado em seu login (elgio08 por exemplo). Neste ataque se usa palavras do dicionário para tentar combinações que usuários comuns tentariam. É IMPRESSIONANTE como ainda hoje este ataque quebra mais de 70% de senhas de usuários.
c) ataque por comparação de hashes. Neste o atacante tem um Banco de Dados com inúmeros hashes pré-compilados. Ao ver um HASH ele consulta se já não é um hash conhecido. Existem na Internet sites que fazem isto.
O ataque de força bruta se resolve adotando um bom algoritmo como o MD5 (bom neste sentido. Não pensem que estou defendendo o MD5, só que contar as fraquezas dele vai além do objetivo deste artigo). Mesmo o jurássico DES com seus 56 bits de chave ainda é forte para resistir por meses um ataque de força bruta realizado por UM ÚNICO PC.
O ataque do dicionário não tem solução!! Sim, vai enfiar na cabecinha dos usuários que eles devem colocar uma senha difícil, com pelo menos SEIS caracteres, sem usar apenas números, etc, etc... Ou ele te ignora ou escolhe a tal senha difícil e a escreve embaixo do teclado para não esquecer. A solução passa pelo treinamento deste sersinho: o usuário!
O ataque por comparação se resolve com "salt numbers", uma lição que a Microsoft insiste em não aprender.
a) O primeiro ataque é o de força bruta. Neste o atacante tem a posse do hash, mas não sabe que senha gerou ele. Ele pode tentar todas as possibilidades até conseguir. Ai entra o esforço de milhares de anos para o MD5 que mencionei.
b) ataque do dicionário: para que realizar força bruta se os usuários colocam senhas fáceis baseadas em palavras conhecidas. Mesmo o algoritmo mais forte do mundo perecerá se o usuário colocar como senha 1234. Ou ainda, baseado em seu login (elgio08 por exemplo). Neste ataque se usa palavras do dicionário para tentar combinações que usuários comuns tentariam. É IMPRESSIONANTE como ainda hoje este ataque quebra mais de 70% de senhas de usuários.
c) ataque por comparação de hashes. Neste o atacante tem um Banco de Dados com inúmeros hashes pré-compilados. Ao ver um HASH ele consulta se já não é um hash conhecido. Existem na Internet sites que fazem isto.
O ataque de força bruta se resolve adotando um bom algoritmo como o MD5 (bom neste sentido. Não pensem que estou defendendo o MD5, só que contar as fraquezas dele vai além do objetivo deste artigo). Mesmo o jurássico DES com seus 56 bits de chave ainda é forte para resistir por meses um ataque de força bruta realizado por UM ÚNICO PC.
O ataque do dicionário não tem solução!! Sim, vai enfiar na cabecinha dos usuários que eles devem colocar uma senha difícil, com pelo menos SEIS caracteres, sem usar apenas números, etc, etc... Ou ele te ignora ou escolhe a tal senha difícil e a escreve embaixo do teclado para não esquecer. A solução passa pelo treinamento deste sersinho: o usuário!
O ataque por comparação se resolve com "salt numbers", uma lição que a Microsoft insiste em não aprender.