Onde encontrar uma lista de senhas ruins?

5

Eu preciso implementar uma "lista de parada" para impedir que usuários selecionem senhas comuns em um novo serviço on-line.

Alguém pode me indicar essa lista on-line em algum lugar?

Editado: Note que estou apenas tentando eliminar as senhas mais comuns, não um dicionário completo. E, claro, isso complementa uma política de senha razoavelmente strong (tamanho, uso de caracteres não alfa, etc.)

Obrigado.

    
por Steve Morgan 19.11.2009 / 21:39

11 respostas

10

Se for uma exigência do cliente checar uma lista de senhas incorretas conhecidas, provavelmente pedirei que forneçam a lista de senhas que consideram ruins. Se eles não puderem fornecer a lista, eu usarei as regras de complexidade de senha, conforme sugerido por outras pessoas.

    
por 19.11.2009 / 22:04
3

A antiga ferramenta "crack" do Unix não vem com uma lista de senhas comuns? Eu acredito que tem força bruta e métodos de dicionário.

    
por 19.11.2009 / 22:05
3

Eu acho que esse cliente precisa ser espancado um pouco. :)

A coisa chata é que eu posso entender e até mesmo empatizar de onde eles estão vindo. Mas esse requisito só causará sofrimento e complicações a longo prazo (vejo, por exemplo, um requisito futuro para que a lista de "senhas comuns conhecidas" seja atualizada em uma base anual - ou até mais frequente). Sabe-se que os requisitos de complexidade de senha funcionam no campo e até mesmo o requisito de complexidade mais básico (como qualquer 3 de maiúscula, minúscula, numérica ou símbolo) excluirá automaticamente a grande maioria das palavras do dicionário.

Outro problema é que muitas pessoas usarão as coisas com as quais estão familiarizadas como senha. Um número de previdência social, por exemplo, pode atender a um requisito de complexidade (números, letras e um hífen, talvez) e, com certeza, nunca estaria em qualquer lista hipotética de "senhas comuns conhecidas", mas também ser inseguro, pois é uma das coisas que um cracker potencial tentaria (assumindo que eles sabiam ou tinham os meios para obtê-lo).

Um serviço on-line que usei uma vez a segurança de senha medida medindo uma combinação de fatores: quantos de cada tipo de caractere estava na senha e por quanto tempo a senha geral estava. Um feedback instantâneo foi dado para que você pudesse ter uma boa noção de se sua senha foi considerada boa ou não com base em suas métricas. Tal abordagem parece muito preferível para mim.

Também seria atraente usar um serviço como o OpenID ou o Microsoft Passport (ou o que quer que ele seja chamado essa semana) em vez de implementar o seu próprio. Sou muito suspeito de serviços que exigem que um usuário tenha um logon separado para tudo o que acessa. O maior risco é que o usuário tenha tantos combos de nome de usuário / senha para lembrar que eles acabarão por escrevê-los, e também que eles usarão o mesmo nome de usuário e senha para todos eles, de modo que se leva é um - fica comprometido, todos eles são efetivamente comprometidos. A regra de elo mais fraco se aplica aqui com botões. Ir com um fornecedor especializado nesta área é uma coisa boa (você é livre para se concentrar em detalhes do seu serviço, você tem um mecanismo de autenticação que é bem conhecido, etc).

    
por 20.11.2009 / 01:37
2

A maioria das pessoas usa listas de palavras do dicionário para esse tipo de coisa. Não posso garantir o quanto essas listas são boas ... mas aqui estão algumas

Se você acabou de pesquisar no Google "listas de palavras do dicionário", deverá obter vários resultados.

    
por 19.11.2009 / 21:44
2

Por que não apenas aplicar políticas de boa senha? Algo como pelo menos 8 caracteres, casos mistos, pelo menos 1 número e 1 caractere não alfanumérico. Além disso, há vários bons dicionários para comparar senhas.

    
por 19.11.2009 / 21:46
2

Não use uma lista estática. Considere executar o John the Ripper para ver se o pw é simples demais.

João, o Estripador

    
por 19.11.2009 / 21:47
2

Concordo que apenas ter uma política de senha strong é provavelmente uma ideia melhor.

Se eu realmente quisesse implementar o que você disse, acho que você precisará encontrar alguns bons dicionários. Você desejará gerar todos os hashes das variações desse dicionário e, em seguida, verificar seu hash nessa lista. Isso é chamado de tabela de arco-íris e, no mundo de ataque, é conhecido como troca de memória de tempo. Se você não fizer isso dessa maneira, a verificação no servidor realmente levará muito tempo.

Melhor ainda, pode ser usar uma ferramenta que gere um monte de senhas ruins a partir das informações que elas preenchem o formulário. Veja CUPP como um programa python de exemplo que faz isso.

    
por 19.11.2009 / 21:52
1

Em vez de tentar trabalhar com uma lista de senhas incorretas, é melhor usar qualquer método disponível no sistema para forçar a complexidade da senha, se possível. Se você ainda quiser listas de senhas ruins, busque as listas de dicionários usadas pelos crackers de senhas.

    
por 19.11.2009 / 21:47
1

Uma história triste, mas a minha melhor lista de senhas é uma que recebi ao examinar um servidor meu que ficou comprometido.

    
por 20.11.2009 / 04:15
0

L0phtcrack eu acredito que veio enviado w / a lista de senhas que ele tentou primeiro, da mesma forma, você poderia olhar para algumas análises do Conficker.B que também tinha uma lista, embora um curto, de senhas.

    
por 20.11.2009 / 02:06
0

Ignorando o fato de que não é uma solução de segurança muito boa (como afirmam os outros em suas respostas), responderei o que você pediu (uma lista de senhas comuns e ruins).

Eu acho essa lista de ' 500 senhas comuns ' perspicaz.

Você pode obter a lista de palavras com este script, exceto por uma senha duplicada '0'. Não consigo deixar de analisar:

curl -s http://www.whatsmypass.com/the-top-500-worst-passwords-of-all-time | sed -n -e '/\(^<td>\(1\?[0-9]\?[0-9]\)<\/td>\|NO\|Top.*\)/d' -e 's/^<td>\(.*\)<\/td>//p'
    
por 26.04.2010 / 18:10

Tags