O que é um requisito de senha razoável e seguro para o registro do usuário?

10

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.

falta de polaridade
fonte
11
se você redefinir a senha após 30 tentativas, você apenas oferece uma grande possibilidade de incomodar outros usuários para as pessoas más (hackers / script-kiddys), que tornariam tudo ainda pior.
Oezi 12/10/11
@ oezi você quer dizer, os hackers podem incomodar as pessoas boas fazendo login apenas 30 vezes com algumas senhas falsas? E o atraso de 5 segundos após 30 vezes de tentativa que acabei de adicionar?
nonopolarity
14
Sem mencionar que não posso levar a sério o comprimento máximo de uma senha quando ela não permite "Corrigir grampos da bateria do cavalo".
David Thornley 12/12
6
Que tal o segundo método abaixo nesta história em quadrinhos do Xkcd ?
Robert Harvey
6
Olá, provavelmente é uma pergunta melhor para um site irmão, o IT Security , mas já foi feita e respondida de várias formas. Confira perguntas como esta ou, para obter mais informações sobre o contexto do comentário de Robert Harvey, dê uma olhada nessa questão .

Respostas:

15

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.

Wayne Molina
fonte
4
Escrever senhas não anula o objetivo. Se eu tiver uma senha realmente complicada escrita em um post-it preso no monitor, a única maneira de alguém acessar minha conta é se invadiu minha casa e se sentou à minha mesa em meu escritório. Nessa situação, tenho um problema muito, muito maior do que alguém capaz de rastrear minhas entregas de UPS.
Qwerky
2
E se for uma política da empresa e um colega de trabalho encontrar a senha de alguém? Os danos ainda podem ser causados, e a suposta política de senha segura ajuda muito se for tão complexa que a maioria das pessoas simplesmente publica no seu monitor para que qualquer pessoa que passe por lá possa encontrar sua senha para os dados da empresa.
Wayne Molina
2
+1, concordo plenamente com Wayne. Uma grande parte das ameaças à segurança, se não a maior, vem de "dentro". As políticas que forçam os usuários a escreverem senhas completamente anulam o objetivo.
GrandmasterB
11
Sem mencionar o fato de que você pode incomodar os usuários se eles precisarem pensar em uma senha muito complicada para se adequar às regras.
Mavrik 12/12
11
@mouviciel Confio o suficiente para colocar coisas como minha carteira e telefone, que valorizo ​​mais do que quase todas as contas on-line que tenho.
Qwerky 13/10/11
13

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.

Earlz
fonte
Sem mencionar que, se você criar uma senha difícil o suficiente para lembrar, seus usuários recorrerão ao bloco de anotações em sua mesa. Uma senha "segura" que deixa todos pateticamente abertos à engenharia social não é segura.
Fomite 13/10/11
4

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 Treee depois BiaT. Isto tem a vantagem de que se você escrever uma frase trabalho adequado vagamente como pick Up milkou Meetings all dayem 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 @ treena 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.

Kate Gregory
fonte
11
Isso é muito inteligente. Use uma frase espaçada de cada dia ... Inteligente. Embora eu permaneça no meu sistema com uma senha forte comum com número e letra adicionais, dependendo do serviço em que estou efetuando login. Só sei como formar essas informações e é sempre a mesma, mas é provável que a senha resultante seja diferente (não sempre diferente, mas não me importo muito com essas raras cópias).
Robert Koritnik 13/10
11
A largura de qual coluna? As caixas de texto geralmente têm rolagem interna e, se você estiver armazenando a senha de texto sem formatação no banco de dados, está fazendo algo errado.
22411 Peter
Dbs são baratos agora. Com uma boa criptografia também, se você permitir senhas de 50 caracteres, a largura da db será 110 no máximo (102 para ser preciso). Mas eu faria 150 varchar ... um bom design de banco de dados deve significar que nenhuma tabela possui mais de 20 colunas, portanto isso não apresentará nenhum problema.
precisa saber é
2

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:

  • O comprimento máximo é muito pequeno. Você deve facilitar o uso de frases secretas que sejam mais fáceis de lembrar e possam ser mais seguras.

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):

  • Comprimento mínimo

Impede uma tentativa combinatória e ataque de erro que quebrará rapidamente uma senha muito curta.

  • proscrição contra o uso de uma única palavra em inglês (ou qualquer outro idioma)

Isso evita ataques de dicionário.

  • inclusão forçada de diferentes categorias (ou seja, caso misto, números, pontuação)

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.).

Mama, acabei de matar um homem. Coloque uma arma na cabeça dele. Puxou meu gatilho, agora ele está morto.

Frase fornecida por Queen

  1. mjkampagahhpmtnhd - primeira letra de cada palavra
  2. MjkamPagahhPmtnhd - caixa corresponde à caixa da frase
  3. Mjk0mP0g0hhPmtnhd - alterado 'a' para 0
  4. Mjk0mP0g0 () Pmtnhd - mudou 'sua cabeça' para ()

Depois de digitar algumas vezes, ao pensar na frase, nunca mais terei problemas em lembrar.

dietbuddha
fonte
11
O verdadeiro problema é que a conta da UPS será usada por uma dúzia de pessoas na empresa. Prendê-los todos para fora porque Fred no transporte digitado incorretamente causará 1, o caos 2, as pessoas para mudar para Fedex
Martin Beckett
2
Acho que o problema é que as políticas antipáticas de senha não aumentam a realsegurança (elas aumentam apenas a percepção de segurança) e podem realmente prejudicar a segurança.
Martin York
@Martin Beckett: 1) Para ambientes que usam uma política de bloqueio, deve haver, e geralmente existem maneiras alternativas de desbloquear imediatamente sua senha. 2) Cada pessoa deve ter sua própria conta. que não precisam usar senhas.
dietbuddha
@Loki Astari: Sim, bem, isso é verdade para uma política desagradável, a questão é quais regras tornam a política desagradável, considerando seu contexto. Por exemplo, acho que podemos concordar que um requisito de comprimento mínimo é razoável. Definitivamente, concordo que qualquer requisito que inclua manter o histórico de suas senhas seja desagradável, pois não aumenta a segurança.
dietbuddha
3
Suas idéias acima parecem lógicas, mas na realidade você está se derrotando xkcd.com/936 . Discordo basicamente de três dos seus quatro pontos e sugeriria que todos eles levam a senhas mais fáceis de krack. (Comprimento sendo o único positivo). A melhor senha seria:Mama, just killed a man.
Martin York
1

Sua senha deve ter entre 8 e 26 caracteres

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).

Estou certo de que, depois de três dias, esquecerei qual é essa senha.

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 P4ssw0rd1foram usados, você não poderia usar P4ssw0rd2, nem P4ssw0rd0).

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.

Tangurena
fonte
1

Usar o bcrypt ao armazenar a senha é um bom primeiro começo, simplesmente porque inviabiliza as tentativas de invasão por força bruta.

Formiga
fonte
0

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.

Bill Leeper
fonte
11
Razão e segurança não são conceitos opostos. Eles podem entrar em conflito, mas geralmente é possível encontrar algo razoavelmente seguro e razoavelmente utilizável. Pode exigir um pouco de pensamento criativo e não pode ser medido adequadamente em uma lista de verificação, e pode ser por isso que não é visto dessa maneira em muitos lugares.
David Thornley 12/12
Há muita história em que razoável e segurança estão em extremos opostos. Você pode permitir que os usuários tenham senhas razoáveis ​​(sem verificações, vale tudo) e essa é provavelmente a menos segura, ou talvez nenhuma senha ainda menos segura. A Microsoft aprendeu isso da maneira mais difícil. As pessoas queriam melhores emails, então decidiram que vamos permitir scripts como no word e depois vieram os vírus. Tem sido uma batalha desde então. Você não pode ter web habilitado e-mail (razoável), sem abrir-se aos riscos de segurança
Bill Leeper
Claro, é fácil ter facilidade de uso e segurança diametralmente opostas, se você não fizer boas escolhas. Muitas opções da Microsoft, talvez em 2005 e antes, foram feitas aparentemente sem olho para a segurança.
David Thornley 13/10
Por favor, dê um exemplo em que você tem facilidade de uso E segurança. Já trabalhei em muitos lugares e implementei muitos sistemas seguros e ainda não vi isso. E isso seria um aplicativo Web comum, não algo como usar uma tecla .ssh para acessar um sistema remoto. Minha avó tem de ser capaz de fazer isso em seu sistema Windows Vista :-)
Bill Leeper
Considere frases secretas, como o xkcd recente. Mais seguro do que a maioria das senhas, geralmente mais fácil de lembrar do que as boas e com mais de 26 caracteres permitidos pelo site.
David Thornley
0

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.

SF.
fonte
0

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.

Jeson Martajaya
fonte