Esta é a política de senha que recebi da UPS (apenas para verificação do status do pacote):
Sua senha deve ter entre 8 e 26 caracteres. Ele deve conter pelo menos três dos seguintes tipos de caracteres: letras minúsculas, maiúsculas, numerais, caracteres especiais ou espaços. A senha pode não conter seu ID de usuário, seu nome ou seu endereço de email. (SSO_1007)
Na verdade, tenho que arruinar meu cérebro para gerar essa senha, mas não apenas isso, o mais importante, tenho certeza de que, após três dias, esquecerei o que é essa senha. Os usuários não serão tão felizes. A redefinição de senha pode ser frequente. Acho que os usuários tentarão evitar o uso do site, a menos que precisem.
O que é uma política de senha razoável e segura ao configurar um site? Acho que algumas empresas podem temer que alguns hackers tentem senhas um milhão de vezes ou mais, então adicionam todos esses requisitos para "caracteres especiais, letras minúsculas, maiúsculas", mas não será razoável desligar a conta ou simplesmente desativar o senha e exigir uma redefinição de senha, se um usuário tentou 30 vezes ou 100 vezes? Ou adicione um atraso de 5 segundos cada vez após o usuário tentar 30 vezes? Nesse caso, esses caracteres especiais não serão tão necessários.
Respostas:
Para ser sincero, acho que ter requisitos estritos de senha é um aborrecimento e não um benefício. Eu diria que, em regra, o mais razoável é apenas especificar um comprimento, talvez caracteres especiais + alfanuméricos. Algo mais é pedir que as pessoas anotem sua senha, o que anula todo o propósito de ter senhas seguras. Eu também odeio ter que mudar sua senha a cada x dias com o conjunto ridículo de regras habitual (por exemplo, não é possível reutilizar as últimas 25 senhas) - novamente tudo o que faz é forçar as pessoas a escrever a coisa para que não se esqueçam, em Nesse ponto, você também pode não solicitar uma senha.
fonte
Minha opinião é que as senhas devem ter apenas um requisito de comprimento. Você não quer que alguém coloque "a" como senha. E, como mostra a resposta xkcd, uma senha extremamente difícil de lembrar nem sempre é tão segura. Sempre permita que as pessoas alterem sua senha também. E esqueça a porcaria "você não pode usar nenhum dos caracteres contidos na sua senha anterior".
Criar uma política de senha obscena fará mais mal do que bem. Na faculdade, fui para a política de senhas semelhante à política da UPS E você tinha que alterá-la a cada 2 semanas E não podia usar as 50 senhas anteriores usadas. Portanto, o que meus professores recomendaram ao configurar as contas é usar nossa senha regular que esteja em conformidade com as regras, adicionar um contador ao final e colocar na sua senha a dica de qual é o número do contador.
Além disso, uma política estrita de senha não fará nada sempre que seu banco de dados de texto sem formatação for invadido por um bug de injeção SQL ... ou você enviar senhas por e-mail para seus usuários e elas forem interceptadas.
Basicamente, não torne seu sistema de senhas um aborrecimento para seus usuários ou isso os incentivará a fazer coisas inseguras para que eles possam contornar isso. Por exemplo, minha empresa ao obter um servidor dedicado de um data center, eles nos definiram senhas com 20 caracteres. Eles eram muito seguros para serem enviados por e-mail e precisavam ser enviados por fax. Não foi possível alterar as senhas, apenas solicite a geração de uma nova senha de 20 caracteres. E era assim para todos os usuários ... então, acabamos fazendo um documento de texto em nossas áreas de trabalho com a senha. Além disso, não os usamos mais porque, por toda a "segurança" que eles tinham, eram realmente bastante inseguros.
fonte
Certifique-se de permitir espaços. Todos que eu conheço podem digitar frases curtas mais rapidamente do que a primeira letra de cada palavra na frase. Por exemplo, tente digitar
Bird in a Tree
e depoisBiaT
. Isto tem a vantagem de que se você escrever uma frase trabalho adequado vagamente comopick Up milk
ouMeetings all day
em uma nota pegajosa, não é, obviamente, uma senha.Eu não sou um grande fã das regras "você deve ter números e símbolos", mas se você aplicá-las consistentemente (por exemplo, i é sempre 1, a é sempre @), então você ainda pode escrever a frase em inglês no adesivo, aplicar as regras conhecidas apenas para você falar e entre
B1rd in @ tree
na caixa de diálogo da senha. Do ponto de vista da segurança, os números e símbolos não agregam muito, mas não precisam deixar você louco como usuário.Sites com tamanho máximo de senha me irritam se minha frase legal for considerada "muito longa". 26 parece razoável. Eu entendo que alguém tem que projetar a largura da coluna, mas 12 é estupidamente curto.
fonte
Seguro x conveniente
A política de segurança de uma senha deve ser apropriada para o custo do comprometimento. Se o seu site estiver na minha conta financeira, eu gostaria de uma proteção rigorosa por senha. Se é um site de fãs de nicho sobre Autobots, você não precisa de muita proteção.
As regras da UPS são razoáveis, com exceção de:
Não vi a redefinição após um número X de tentativas nas regras citadas, acho que isso é bobagem na maioria dos casos. Acho melhor você bloquear alguém por um período de tempo, em vez de forçar uma redefinição. Isso implica um certo nível de segurança. Se isso não for necessário, não será, e o bloqueio / redefinição é um ponto discutível.
Existem muitas regras de diretiva de senha que oferecem benefícios marginais de segurança na melhor das hipóteses. No entanto, também existem regras que trazem benefícios reais e tangíveis à segurança da sua senha.
Regras (e os motivos):
Impede uma tentativa combinatória e ataque de erro que quebrará rapidamente uma senha muito curta.
Isso evita ataques de dicionário.
Isso aumenta o espaço médio de ataque.
Todos esses motivos podem ser rastreados para minimizar o viés do usuário na escolha de senhas. A maioria dos usuários tem tendência a criar senhas mais curtas e fáceis de lembrar. Infelizmente, isso geralmente torna a senha mais fácil de atacar. O que a maioria dos usuários precisa é de instruções sobre como criar senhas seguras e memoráveis ou uma senha longa.
Senhas memoráveis seguras
Quando preciso criar uma senha com um limite de comprimento, sempre começo com uma frase para criar um mnemônico incorporado. Pego a frase e obtenho o mesmo caractere posicional de cada palavra. Agora tenho uma sequência de apenas caracteres. Eu então escolho maiúsculas, algumas baseadas em nomes próprios da frase ou por padrão (primeira e última, todas as outras letras, etc.). Depois adiciono pontuação e números com base em alguma regra ou padrão arbitrário. (ou seja, todos os 'j's são 7, usando' & 'onde há um' e 'na frase etc.).
Frase fornecida por Queen
Depois de digitar algumas vezes, ao pensar na frase, nunca mais terei problemas em lembrar.
fonte
real
segurança (elas aumentam apenas a percepção de segurança) e podem realmente prejudicar a segurança.Mama, just killed a man.
A senha mínima com 8 caracteres é um legado do Lan Manager. O Lan Manager hash senhas, dividindo-as em 2 cadeias de 7 caracteres e, em seguida, hash. Ao exigir 8 caracteres no mínimo, eles garantiram que a 2ª palavra não era a mesma que para uma senha em branco (não havia sal, portanto, todas as instâncias de 7 espaços em branco foram processadas com o mesmo resultado).
Eu desisti, as regras são tão tolas e ridículas que as escrevo agora. Todos, exceto os poucos que uso em sites. Meu empregador atual também controla as últimas 24 senhas usadas para que não possam ser recicladas, nem pode conter nenhuma palavra em inglês com mais de 3 caracteres (para frente ou para trás). Ele também garante que você não use uma palavra anterior e incremento de algum número como parte dela (por isso, se
P4ssw0rd1
foram usados, você não poderia usarP4ssw0rd2
, nemP4ssw0rd0
).Aprendi minha lição da maneira mais difícil no escritório, quando tive que alterar uma senha. Demorou 45 minutos para o sistema aceitar uma substituição. Em seguida, esqueci prontamente o que eu havia inventado e tive que restaurá-la e desperdiçar mais 45. minutos tentando obter algo que eu pudesse lembrar que era suficientemente complexo para atender aos requisitos (alguns dos requisitos estão listados acima, outros não e outros que não sei). Não é muito divertido tentar criar algo que atenda às regras que você não tem permissão para conhecer. Pelo menos em jogos como Mastermind, você recebe dicas de como está perto. No escritório, algumas pessoas usam um cartão inteligente , eu não sou um deles.
fonte
Usar o bcrypt ao armazenar a senha é um bom primeiro começo, simplesmente porque inviabiliza as tentativas de invasão por força bruta.
fonte
Razoável e Seguro são mutuamente exclusivos. São duas pontas de uma vara. Encontrar um equilíbrio no meio será o melhor. Para garantir a segurança e as pessoas, anote as senhas ou use o recurso de desbloqueio de senha totalmente não seguro.
O exemplo acima parece estar mais voltado para a segurança do que para o razoável. Eu já vi coisas piores.
Eu prefiro me inclinar para o razoável. A chave é se inclinar para o seguro em seu back-end. Armazene o mínimo possível de uso de sais etc. Todos os métodos recomendados mais recentes para codificar as senhas no seu banco de dados e também de uma maneira. Em seguida, mantenha seu banco de dados e seu código seguros. Treine também qualquer pessoa que possua direitos de administrador em seu sistema e que precise usar uma senha segura exclusiva. Foi demonstrado recentemente que reunir várias palavras do dicionário é mais seguro do que arrastar caracteres e maiúsculas e minúsculas. Exigia correspondências compostas de dicionário que realmente aumentam o tempo dos hackers, no entanto, essas ainda são memoráveis para os usuários.
fonte
Não é uma palavra do dicionário ou uma variação trivial dela. É isso aí. Um conjunto de duas palavras do dicionário é praticamente invencível. Um substituto de uma letra para um caractere que não é um substituto óbvio (0-O, 1-I, 5-S) também.
Além disso, se você limitar o tempo de resposta - senha aceita / negada após 1s e não forem permitidas duas tentativas paralelas para o mesmo login - uma deve terminar (OK ou erro) antes de tentar outra, qualquer letra não minúscula de 6 letras em minúsculas A senha de caracteres especiais levará 9 anos para ser quebrada.
fonte
A complexidade dos requisitos de senha deve ser equilibrada com o conteúdo dos seus sites. Um banco deve exigir uma senha altamente complexa (maiúscula, minúscula, número e caracteres especiais). No entanto, se o conteúdo for trivial, como pesquisas salvas e números de rastreamento, o requisito de senha deverá ser relaxado. O comprimento mínimo de 6 caracteres deve ser suficiente. Caso contrário, isso simplesmente irritará seu público e impedirá que eles criem um login.
fonte