Este é um artigo interessante link detalha quanto tempo levaria teoricamente para brute forçar uma senha para diferentes comprimentos e conjuntos de símbolos.
Recentemente, recebi uma recomendação para definir minha senha para mais de 20 caracteres. O algoritmo usado para criptografia é o AES com uma chave primária de 256 bits. Quão segura é, digamos, uma senha de 8 caracteres contra ataques de força bruta para decifrar arquivos criptografados?
Eu sei que isso é considerado um bom tamanho de senha na maioria dos sites. Uma razão disso é que eles podem parar um ataque depois de 3 tentativas.
Este é um artigo interessante link detalha quanto tempo levaria teoricamente para brute forçar uma senha para diferentes comprimentos e conjuntos de símbolos.
Você pode indicar quem escreveu essa política em esta postagem do blog de Bruce Schneier .
É uma boa descrição de por que a força das senhas é o menor dos problemas de qualquer pessoa na Web.
Veja a resposta aceita em este post . Mostra que até mesmo uma senha de 8 caracteres usando a gama completa de caracteres pode levar ~ 10.000 anos para ser quebrada!
Se você contar o uso de tabelas de arco-íris como força bruta (as opiniões variam), então, para 8 caracteres, usando as tabelas de arco-íris que incluem todos os caracteres na senha, cerca de 10 segundos. Senha de 20 caracteres (mesmos personagens, mesmas tabelas de arco-íris), menos de 30 segundos. O problema é que leva um tempo longo para gerar as tabelas. O meu demorou cerca de um mês para gerar em uma máquina de 3GHz, processando apenas à noite. Por outro lado, você só precisa fazer isso uma vez.
A questão de tentar lembrar senhas longas é facilmente resolvida por uma combinação de substituição de caracteres e uso de uma frase. Mesmo algo tão simples como "# Fr3ddy M3rcury #" é complexo o suficiente para a maioria dos usos, mas é notavelmente fácil de lembrar.
Considere que uma senha de oito caracteres pode ser lembrada. Uma senha de 20 caracteres será anotada.
E então alguém pode ler.
Você pode estar interessado no artigo " Senhas vs Frases-Frase ". A conclusão deles é que uma senha de 9 caracteres totalmente aleatória é equivalente a uma frase secreta de 6 palavras. Mas eles sentem que uma frase de 6 palavras seria mais fácil de lembrar.
Tudo depende dos personagens que você usa, pois isso altera o número de combinações que você tem. Assumindo 8 caracteres:
palavra do dicionário:
egrep "^.{8}$" /usr/share/dict/words | wc -l 15601
Letras minúsculas: 26 8 ou 208827064576
Letras minúsculas e minúsculas: 52 8 ou 53459728531456
Inferior, superior e números: 62 8 ou 218340105584896
Adicione pontuação e outros símbolos e força bruta vai levar algum tempo.
Esses números são as combinações totais que terão que ser tentadas. Obviamente, um hacker não tentará todas as combinações depois de obter a senha, então divida por dois para obter o número médio de combinações necessárias.
Hashes mais difíceis resultam em maior tempo de CPU para calcular o hash, então o tempo total é maior. Um exemplo de john:
Benchmarking: Traditional DES [64/64 BS]... DONE Many salts: 819187 c/s real, 828901 c/s virtual Only one salt: 874717 c/s real, 877462 c/s virtual Benchmarking: BSDI DES (x725) [64/64 BS]... DONE Many salts: 29986 c/s real, 30581 c/s virtual Only one salt: 29952 c/s real, 30055 c/s virtual Benchmarking: FreeBSD MD5 [32/64 X2]... DONE Raw: 8761 c/s real, 8796 c/s virtual Benchmarking: OpenBSD Blowfish (x32) [32/64]... DONE Raw: 354 c/s real, 356 c/s virtual Benchmarking: Kerberos AFS DES [48/64 4K]... DONE Short: 294507 c/s real, 295754 c/s virtual Long: 858582 c/s real, 863887 c/s virtual Benchmarking: NT LM DES [64/64 BS]... DONE Raw: 6379K c/s real, 6428K c/s virtual Benchmarking: NT MD4 [Generic 1x]... DONE Raw: 7270K c/s real, 7979K c/s virtual Benchmarking: M$ Cache Hash [Generic 1x]... DONE Many salts: 12201K c/s real, 12662K c/s virtual Only one salt: 4862K c/s real, 4870K c/s virtual Benchmarking: LM C/R DES [netlm]... DONE Many salts: 358487 c/s real, 358487 c/s virtual Only one salt: 348363 c/s real, 348943 c/s virtual Benchmarking: NTLMv1 C/R MD4 DES [netntlm]... DONE Many salts: 510255 c/s real, 512124 c/s virtual Only one salt: 488277 c/s real, 489416 c/s virtual
É claro que tudo isso é completamente acadêmico, porque os hackers apenas telefonam para sua secretária dizendo que eles são de TI e precisam de sua senha para algo, e sua senha strong é inútil.
Eu uso senhas não-triviais para proteger
* assets that are important * stuff that's not subject to anti-hammering (lock-out after repeated attempts) * stuff that can conceivably be exposed to brute-forced/dictionary-based/hybrid attacks
Estou menos preocupado com minha conta do Gmail, já que tentativas brutais de quebrar essa senha simplesmente bloquearão a conta (e qualquer pessoa com acesso ao servidor apenas substituirá o hash por um de sua escolha, e não tentará violar a conta isso.
A melhor frase-senha é longa (> 12 caracteres) e criptograficamente aleatória. No entanto, esses são mais difíceis de lembrar. Assim, uma frase secreta que combina várias palavras com caracteres aparentemente aleatórios pode ser um bom compromisso (talvez as primeiras 1 ou 2 letras das primeiras linhas da sua música favorita).
Existe a segurança que você obtém ao comunicar cliente / servidor, por ex. como você disse, quando você é capaz de parar os invasores após 3 tentativas (quando eles atacam pela rede, como acontece com aplicativos da web). Com esse cenário, quase qualquer tamanho de senha pode ser considerado suficiente.
Se, entretanto, um usuário interno pegar esse banco de dados com senhas curtas com hash e for capaz de contornar a limitação "de três tentativas", o jogo muda.
Advertência com a limitação do número de tentativas por conta é suficiente para tentativas direcionadas em uma conta específica. Você também precisa proteger contra o ataque a todas as contas com uma determinada senha (ou permutada) - isso não acionará nenhum alarme quando você limitar o número de tentativas por conta. Dados os NAT e os botnets atuais, você não pode sequer argumentar que limitar o número de tentativas por IP é uma boa maneira de pensar a segurança.
Bons recursos para leitura já foram dados em outras respostas.