Toda conta deve ter uma senha associada a ela. Para fins de segurança, essas senhas não devem ser facilmente dedutíveis. Porém, infelizmente a maioria dos usuários não respeitam esse princípio e insistem em manter suas senhas vulneráveis, usando datas de aniversário, nomes de pessoas próximas, números de documentos, etc. Cabe ao administrador, além de todas as outras tarefas de sua responsabilidade, zelar pela segurança das senhas dos usuários do sistema.
Com a finalidade de auxiliar os administradores de rede a manterem as senhas de seus usuários menos vulneráveis, existem várias ferramentas usadas para quebrar senhas em sistemas
GNU/Linux. Tais programas usam o mecanismo que chamamos de "força bruta".
Os tipos de criptografia de senhas que existe atualmente nos sistemas GNU/Linux (DES, MD5, etc) são praticamente inquebráveis se tentarmos obter a senha original a partir da sua corresponde criptografada. Ou seja, tendo a senha criptografada, é praticamente impossível desencriptá-la utilizando o algoritmo inverso ao que foi aplicado para criptografá-la.
Isso ocorre porque esse algoritmos inversos possuem complexidade computacional exponencial e, para reverter o processo de encriptação, seria necessários milhões de anos executando um algoritmo dessa natureza, mesmo contanto com as máquinas mais modernas da atualidade.
O que programas de "força bruta" fazem é gerar senhas, criptografá-las usando o mesmo algoritmo de criptografia utilizado nos sistemas Linux (que são algoritmos computacionalmente simples) e comparar tais senhas criptografadas com uma senha criptografada existente no sistema.
Mas o grande trunfo de tais programas é o fato de que as senhas geradas por ele não são aleatórias. São senhas baseadas em dicionários (ou "wordlists") pré-determinados, ou seja, dicionários que contém as expressões que são mais usadas em senhas, tais como datas, nomes, etc.
O mais famoso desses programas de força bruta para GNU/Linux é o
John the Ripper, que pode ser encontrado em:
Vários dicionários para diversos idiomas e para diversos temas diferentes podem ser encontrados na internet. Uma dica é o site:
Pelas razões expostas acima, é preciso ter extremo cuidado com os arquivos que armazenam as senhas do sistema:
/etc/passwd e
/etc/shadow. É necessário sempre verificar que toda conta tenha uma senha associada, para evitar que usuários tenham acesso ao sistema sem necessidade de senha.
Existem várias ferramentas para checar a existência de problemas nos arquivos de senha, mas aqui está uma forma extremamente simples de verificar, por exemplo, se existe algum usuário com senha nula:
# perl -F: -ane 'print if not $F[1];' /etc/shadow