Pergunta

Ao criar um mecanismo de "esqueceu a senha", que pode querer criar uma senha tempory para o usuário que é armazenado usando SHA1 (sinta-se livre para sugerir outro mecanismo C # Cryptography).

Quanto tempo devemos fazer a senha tempory? Muito curto, poderia ser ataque de força bruta. Muito tempo e o comprimento desnecessário é redundante uma vez que a seqüência é hash de qualquer maneira? (Desde há 20 caracteres e 50 caracteres de string resulta em um hash do mesmo comprimento de qualquer maneira)

Atualizar
Desculpe se isso foi enganosa. Claro que podemos escolher um número fora do ar, mas eu queria saber se havia uma boa razão matemática para escolher 13 em vez de 12.

Foi útil?

Solução

Eu acho que isso é um bom conselho sobre senhas temporários:

O guia definitivo para o site com base em formulário de autenticação

Ele fala sobre como evitar gerá-los em favor de chegar ao ação real o usuário quer.

Outras dicas

Eu geralmente ir com 10 caracteres. Nenhuma razão especial para isso, apenas algo que eu acho que está acima de comprimento médio de uma senha escolhida por um usuário.

Apenas pelo fato de que ele é gerado aleatoriamente, provavelmente vai ser mais seguro e mais difícil de força bruta do que qualquer coisa escolhida por seus usuários. Pessoas pegar senhas estúpidas como myspace1, stackoverflow1, 12.341.234 etc.

Se a senha estiver em caracteres alfanuméricos você só tem cerca de 6 bits de dados utilizáveis ??por caractere e, portanto, você está errado, que não há sentido fazer uma senha mais de 20 caracteres.

Parece que você está preocupado sobre como fazer a senha temporária mais forte do que a senha do usuário ... quando, na realidade, algo como uma base-64 de 10 caracteres (ou similar - pontuação etc) vai ser muito difícil de crack e muito mais forte do que a senha que o usuário irá gerar ....

Faça-lhe um tamanho variável, bem como (dizer 8-12 caracteres) que irá tornar mais difícil a força bruta ... se o atacante sabe que retornar uma senha de caráter X todos eles têm de fazer é tentar todas as senhas com N. .. assumindo N é grande ele vai ser impraticável, mas variando o tamanho do N, pelo menos, torná-lo muito mais difícil para eles.

Steve Gibson criou uma "senha Ultra Alta Segurança Generator ".
Nessa página, ele gera 3 senhas diferentes em cada exibição da página:

  • 64 caracteres hexadecimais aleatórios (0-9 e A-F)
  • 63 aleatórios caracteres ASCII imprimíveis
  • 63 caracteres alfa-numéricos aleatórios (A-Z, A-Z, 0-9)

Ele também explica as razões por trás disso. É uma leitura agradável. Espero que isso ajude.

Vá para qualquer comprimento seu site especifica como recomendado para os usuários. Ao gerar uma seqüência aleatória de caracteres base64, eu iria dormir com segurança à noite com senha de 8-char. Mas é claro que eu iria limitar o login tentativas de uma vez a cada X segundos e desativar temporariamente conta após Y falhou tentativas.

E lembre-se de adicionar um único sal por usuário antes de hashing, para frustrar ataques baseados em banco de dados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top