Ok, vamos dividir como estimar o tempo que levaria um computador para quebrar uma senha de 4 caracteres.
suposições que precisamos fazer: *
conjunto de caracteres: O fator mais crucial é o que os caracteres são permitidos na senha. Vamos considerar alguns cenários comuns:
*
apenas letras minúsculas (a-z): 26 personagens possíveis.
*
letras minúsculas e maiúsculas (a-z, a-z): 52 caracteres possíveis.
*
letras e números (a-z, a-z, 0-9): 62 caracteres possíveis.
*
Cartas, números e símbolos (A-Z, A-Z, 0-9 e ~!@#$%^&* () _+=-`): Isso pode variar dependendo dos símbolos específicos permitidos, mas vamos assumir cerca de 95 caracteres.
*
ataque de força bruta: Estamos assumindo que o computador tenta todas as combinações possíveis em sequência. Este é o ataque mais básico.
*
Velocidade de quebra de senha: A velocidade com que um computador pode experimentar as senhas varia muito, dependendo do hardware (CPU, GPU), do software de cracking usado e do algoritmo usado para hash a senha. Estimaremos uma variedade de velocidades. Vamos considerar operações por segundo:
*
lento: 1.000 senhas/segundo (um sistema muito antigo ou fraco)
*
Moderado: 1.000.000 senhas/segundo (uma CPU moderna decente)
*
rápido: 10.000.000.000 de senhas/segundo (uma poderosa configuração da GPU)
cálculos 1.
Combinações totais possíveis: O número de senhas possíveis é calculado como:
`Tamanho do conjunto de caracteres ^ comprimento da senha`
Então:
* Minúsculo (26):26
4
=456.976
* Cartas (52):52
4
=7.311.616
* Cartas e números (62):62
4
=14.776.336
* Cartas, números e símbolos (95):95
4
=81.450.625
2.
Tempo médio para quebrar: Em um ataque de força bruta, o computador, em média, encontrará a senha correta no meio da lista de possibilidades. Então, dividimos o número total de combinações em 2 e depois dividimos pela velocidade de rachaduras.
`Tempo médio =(Combinações totais / 2) / velocidade de rachadura`
Resultados (em segundos): | Conjunto de caracteres | Combinações totais | Lento (1.000/s) | Moderado (1.000.000/s) | Rápido (10.000.000.000/s) |
| ------------------------- | ------------------ | -------------------- | ----------------------- | ------------------------ |
| Minúsculo (26) | 456.976 | 228 seg | 0,228 seg | 0,0000228 seg |
| Cartas (52) | 7.311.616 | 3656 seg | 3,65 seg | 0,000365 seg |
| Cartas e números (62) | 14.776.336 | 7388 seg | 7.38 seg | 0,000738 seg |
| Cartas, etc. (95) | 81.450.625 | 40725 seg | 40,72 seg | 0,00407 seg |
convertendo para unidades mais compreensíveis * Segundos / 60 =minutos
* Minutos / 60 =horas
* Horas / 24 =dias
| Conjunto de caracteres | Lento (1.000/s) | Moderado (1.000.000/s) |
| ------------------------- | ------------------ | ------------------------- |
| Minúsculo (26) | 3,8 minutos | 0,228 milissegundos |
| Cartas (52) | 1,01 horas | 3,65 microssegundos |
| Cartas e números (62) | 2,05 horas | 7.38 Microssegundos |
| Cartas, etc. (95) | 11,3 horas | 40.72 Microssegundos |
Considerações importantes: *
algoritmos de hash: O tipo de algoritmo de hash usado para armazenar a senha afeta significativamente o tempo de rachaduras. Algoritmos de salga e hash fortes como BCRYPT, ARGON2 ou SCRYPT tornam as rachaduras muito mais difíceis, mesmo com hardware poderoso. Os cálculos acima assumem que o invasor pode testar diretamente as senhas. Se a senha for bem cheia, eles deverão executar o cálculo de hash para cada palpite, o que diminui drasticamente as coisas.
*
ataques de dicionário: Em vez de forçar bruto, os invasores geralmente tentam palavras, nomes e padrões comuns primeiro. Isso pode ser muito mais rápido.
*
Tabelas de arco -íris: Tabelas de hashes pré-computadas podem acelerar a rachadura, especialmente para algoritmos de hash mais fracos.
*
Limitação da taxa: Muitos sistemas implementam limitação da taxa, que restringe o número de tentativas de senha permitidas em um determinado período de tempo. Isso efetivamente diminui os ataques de força bruta.
em conclusão: Uma senha de 4 caracteres pode ser quebrada muito rapidamente com hardware moderno, especialmente se usar um pequeno conjunto de caracteres (como apenas letras minúsculas) e/ou se o hash de senha for fraco. Uma senha com um conjunto maior de caracteres (incluindo números e símbolos) levará mais tempo, mas ainda pode ser vulnerável. É por isso que as recomendações modernas de senha são para senhas muito mais longas e o uso de algoritmos fortes e bem salgados de hash.