Senhas são talvez o elo mais fraco em qualquer sistema de segurança. Nem sempre o administrador, que tem conhecimento de questões relacionadas à segurança da informação pode acompanhar o usuário e garantir que ele faça uma escolha de senha segura. Muitas vezes, nem mesmo quando se define regras para senhas pode-se ter 100% de certeza que uma senha segura será definida.Por exemplo, imagine que você definiu uma regra que obriga o usuário a escolher uma senha de no mínimo 8 caracteres, números, letras maiúsculas e minúsculas. Se o seu usuário escolher algo como “Maria123″ você continuará a ter uma senha insegura (fraca).
Mas o pior de tudo isso é que o atacante também sabe que senhas são inseguras e muito frequentemente se aproveita desse fato para ganhar acesso ilegal ao seu sistema. A técnica mais simples utilizada por usuários maliciosos é o brute-force.
Traduzindo ao pé da letra, brute force significa “força bruta“. O uso mais comum deste ataque é para descobrir senhas testando todas as possibilidades possíveis (combinando todos os caracteres existentes). Caso o atacante descubra algum padrão nas senhas, isso pode facilitar um pouco a vida dele pois assim poderá gerar senhas que seguem esse padrão definido pelo alvo. Neste contexto, quanto mais curta e simples a senha, mais rápido ela será descoberta (adivinhada). Mas vale ressaltar que este método chamado “força bruta”, é um processo lento e extremamente demorado dependendo da complexidade da senha e de outros fatores que possam vir a ter alguma influencia na transmissão da informação.
Para “garantir” a complexidade da sua senha a primeira providência que você precisa tomar é garantir que todos os seus usuários estejam utilizando uma senha forte. Uma senha pode ser considerada forte quando tem pelo menos 8 caracteres, símbolos especiais (como !, #, @, etc), letras maiúsculas e minúsculas e números. Também é interessante que a senha seja aleatória pois caso alguma informação pessoal sua seja utilizada na senha (como número de conta bancária, nome de sua esposa, cidade natal, etc) fica mais fácil para o atacante descobri-la. Logo abaixo temos algumas opções para gerar senhas aleatórias:
Gerador de senha aleatória em PHP:
<?php while ($n < 8) { $caracteres = 'abcdxywzABCDZYWZ0123456789-=)(*&$#@'; $senha = strlen($caracteres)-1; $password = null; for($i=0; $i < 8; $i++) { $password .= $caracteres{mt_rand(0, $senha)}; } echo $password . “<br />”; $n++; } ?>
Gerador de senha aleatória (pwgen) para ambiente GNU/Linux:
O primeiro passo é instalar o pwgen:
# aptitude install pwgen
Se você utilizar somente o comando abaixo irá gerar senhas de 8 caracteres:
$ pwgen -y
Para especificar o número de caracteres basta adicionar o parâmetro (-n quantidade_de_caracteres):
$ pwgen -y -n 16
Segue dois geradores de senha aleatória para ambiente Windows:
Password tools bundle (http://www.baixaki.com.br/download/password-tools-bundle.htm)
Password Inventor (http://www.baixaki.com.br/download/password-inventor.htm)
Segue link para dois geradores de senha aleatória online:
http://www.basfas.com.br/on-line/gerador-de-senhas
http://www.meuscript.com.br/gerador-de-senhas