Devo forçar meus usuários a alterar senhas a cada n dias / semanas / mês?

19

A pergunta já diz tudo. Estamos projetando um sistema em que a segurança é muito importante. Uma das idéias que alguém teve foi forçar os usuários a alterar senhas a cada 3 meses. Minha opinião é que, embora seja mais seguro porque a senha muda frequentemente, também força nossos usuários a se lembrarem de sempre mudar as senhas e torna mais possível que eles simplesmente anotem em algum lugar para ajudar a lembrar.

Na mesma idéia, é realmente bom forçar os usuários a usar uma senha super difícil de adivinhar. Force-os a usar?% &% E letras maiúsculas em minúsculas. Eu sei que é um grande aborrecimento inventar essa senha e depois lembrá-la.

Então, novamente, não queremos ninguém usando 12345.

Tão. Existe algum white paper sobre esse assunto? Boa prática?

Estou falando de um site criado com PHP. MySQL em um ambiente de lâmpada, se isso mudar alguma coisa.

Iznogood
fonte
Vejo alguém votando no fechamento deste tópico. Eu acho que o gerenciamento de senhas é muito pertinente à programação. Mas se a comunidade resolver, deve fechá-la bem, onde devo perguntar isso? Superusuário?
Iznogood
1
Honestamente, considero a segurança do cliente a sua preocupação. Por todos os meios, use SSL e outras coisas para manter a criptografia para que não possa ser detectada, mas se ele quiser usar "0" para uma senha, isso é culpa dele.
Tente criar interfaces que permitam injetar implementações do que você decidir posteriormente. Um método para verificar a força da senha (ou dizer o que há de errado com a senha), um método para avaliar se é hora de alterá-la ou quando será, e assim por diante. Por enquanto, retorne "ok" e "não precisa alterar" :) Mais tarde, quando você obtiver sua resposta do serverfault, você terá as portas para abrir ...
helios
2
@mathepic - "mas se ele quiser usar" 0 "como senha, isso é culpa dele." - Concordo em conceito, mas, na realidade, o proprietário do site tem alguma responsabilidade. Se você usar "0" no seu banco e sua conta estiver limpa, eles serão devolvidos, certo?
precisa saber é o seguinte
2
@mathepic Eu discordo completamente. Talvez para o hotmail seja culpa dos usuários, mas quando é um sistema privado cheio de informações privadas, o problema da empresa é comprometido, porque algum idiota escolheu "0".
Iznogood

Respostas:

28

Acho que posso estar em minoria nisso (com base na minha experiência limitada em lidar com os departamentos de TI da escola e do trabalho), mas acho que as políticas obrigatórias de alteração de senha com base no tempo são inúteis na melhor das hipóteses e prejudiciais na pior. As pessoas tendem a ser muito ruins ao escolher boas senhas e mantê-las em segredo. As políticas de expiração de senha são projetadas para atenuar isso, limitando a quantidade de tempo que uma senha pode ser quebrada / projetada socialmente / roubada; no entanto, eles não conseguem isso na prática, principalmente porque forçam os usuários a reaprender sua senha continuamente. Ao tornar mais difícil para o usuário comprometer suas senhas na memória, você acaba fazendo com que muitos deles escolham senhas mais fracas e / ou escreva suas senhas em algum lugar onde olhos curiosos possam encontrá-las.

Além disso, quando forçado a alterar sua senha regularmente, muitos usuários escolhem senhas que seguem um padrão muito reconhecível, como [base string][digit]. Digamos que um usuário queira usar o nome do gato Fluffy como senha. Eles podem começar com uma senha de fluffy, em seguida, alterá-lo para fluffy1, fluffy2, fluffy3e assim por diante. Nesse caso, a política realmente não ajuda a segurança; mesmo que o usuário escolha uma string base mais segura do que fluffy, e mesmo que mantenha sua senha memorizada com segurança, o caractere de sufixo único que muda a cada poucos meses faz muito pouco para mitigar ataques de crack ou de engenharia social.

Veja também: Expiração de senha considerada prejudicial , um pequeno artigo (não escrito por mim) que acho que fornece uma boa introdução a esses problemas.

bcat
fonte
2
Você pode impedir seu segundo ponto em sua política de senha exigindo diversificação de senhas históricas.
Warner
@ Warner: Como você implementaria isso de maneira segura? Você quase nunca deve armazenar senhas sem hash-las primeiro e fluffy1deve ter um hash totalmente diferente fluffy2. É fácil o suficiente para impedir que os usuários reutilizem exatamente a mesma senha, mas acho que é tudo o que você pode fazer.
BCAT
Não poderia concordar mais ...
Antoine Benkemoun
1
@bcat, você certamente pode verificar se a nova senha é uma permutação fácil da senha antiga. No caso do sufixo de número incremental, simplesmente diminua e aumente o sufixo das novas senhas (se for um numeral) e compare seu hash com os hashes armazenados anteriormente para esse usuário. Você também pode colocar outras verificações de transformação simples. Tudo sem armazenar senhas em texto simples.
mmcdole 25/08/10
1
@bcat: O Linux emprega esse tipo de verificação via PAM (módulo de autenticação conectável) e os utilitários que permitem aos usuários alterar suas senhas no sistema solicitam sua senha atual primeiro, para que possam ser julgados com base na nova senha.
precisa
14

Minha grande organização (mais de 15.000 usuários) implementou "alterações de senha" a cada 120 dias no outono de 2009. É uma enorme dor de cabeça de TI e desperdício de recursos de suporte. Toda vez que a janela de 120 dias aparece, milhares de usuários são obrigados a alterar sua senha ... o que muitos deles fazem de maneira incorreta e bloqueiam sua conta ... ou esquecem no dia seguinte. Nosso serviço de assistência é inundado com chamadas de senha, mesmo que tentemos fazer o máximo possível de autoatendimento.

Se você deseja que seus usuários / clientes o odeiem ... e sua equipe de TI da linha de frente o queimar em efígie todas as chances que tiverem ... implemente alterações de senha.

As políticas de alteração de senha são uma caixa de seleção em alguns manuais de instruções do gerente de TI em algum lugar ... e foi escrita há 15 anos. Ninguém nas trincheiras que realmente implementa ou apóia a política jamais dirá que é uma boa idéia.

Argumentei aqui por "frases secretas" em vez de senhas ... muita coisa boa que fez ... aquela luz no fim do túnel era um trem que se aproximava. :)

Uma frase secreta é uma string longa e quase impossível de lembrar, muito fácil de lembrar, como "MyCatIsFromSpainAndICallHimElGato". Ou talvez uma frase de um poema ou música.

Se você quiser dificultar muito o crack ... mexa no case, adicione alguma pontuação, mude alguns para ells, ohs para zeros, a para @, etc ... Mas mantenha-o lembrável ... . essa é a chave. Existem até maneiras de escolhê-los para que fluam facilmente dos seus dedos para o teclado ... para que você não fique pulando entre as mãos ou com SHIFTs e pontuações estranhas.

Tão...

  • Use "frases secretas" longas.
  • Teste-os internamente quanto à força.
  • Implemente o "logon único" em toda a infraestrutura, para que os clientes precisem usá-la apenas uma ou duas vezes por dia.
  • Nunca force-os a mudar isso.
  • E educar, educar, educar sobre o uso adequado.

Matt

EDIT: 24/08/2011 XKCD concorda e disse que melhor do que eu.

Matt Mencel
fonte
Parece um bom argumento para não falhar na educação do usuário, não necessariamente em relação às políticas de senha. Não foi um fracasso de sua parte - alguém no departamento de TI estragou tudo, porque as idéias que você listou deveriam ter sido algo que todos os funcionários colocaram à sua frente para cada solicitação de alteração de senha.
Kara Marfia 24/08/10
O logon único realmente deve ser o primeiro ponto, é a cenoura que dá aos usuários um motivo para aprender a senha. Além disso, o tempo de expiração deve basear-se na frequência com que o usuário usa a senha. A expiração de 30 dias não é razoável para um sistema usado diariamente, mas em um empregador anterior o aplicativo de despesas (não SSO) (um aplicativo que apenas a maioria das pessoas logado uma vez por mês) tinha uma política de expiração de 30 dias, todos que eu conhecia acabavam ligando para o helpdesk toda vez que o usavam!
precisa saber é o seguinte
O logon único é incrivelmente útil. Isso ajuda a reduzir drasticamente a quantidade de senhas que um usuário precisa saber.
Anthony Giorgio
10

Não. Minha opinião pessoal é que é desnecessário e até contraproducente . Eu falei no meu blog, mas você pode caçar isso se estiver interessado.

Em suma, tudo se resume a duas razões:

1. Forçar um usuário a alterar constantemente sua senha leva a senhas ruins.

Não haverá escassez de evidências anedóticas sobre isso, mas faz sentido que se eu for forçado a lembrar de uma coisa nova a cada x dias, tornarei essas coisas fáceis de lembrar e provavelmente relacionadas umas às outras.

É muito mais provável que os usuários escolham senhas "possíveis de adivinhar", como "Jan2010" ou "Password05", se souberem que precisará mudar em breve. A imposição de uma política estrita de caracteres provavelmente resultará apenas em um ponto de exclamação adicionado ou um nome com ortografia completa, em vez de uma abreviação. Há uma grande diferença entre uma senha tecnicamente complexa e uma que não será adivinhada.

2. Forçar alterações regulares de senha não evita ataques, apenas reduz o risco (e não muito)

Pense nisso - se sua senha for adivinhada ou descoberta de alguma forma, quanto tempo levaria um invasor para usar essas informações? Coloque-se no lugar do atacante. Você acabou de descobrir uma senha. Você não efetuaria login e extrairia todas as informações que pudesse imediatamente, caso alguém descobrisse? Dentro de 30 dias, você já terá tudo o que deseja.

Minha recomendação:

  • Forçar uma política de senha extremamente rigorosa (como 15 caracteres com caracteres superior, inferior, números e caracteres especiais, sem palavras em inglês> 3 caracteres)
  • Nunca faça o usuário alterar sua senha. Se eles tiverem que escrever a senha em um pedaço de papel e mantê-la na carteira, tudo bem. As pessoas são boas em proteger pedaços de papel, mas não tão boas em lembrar seqüências aleatórias de caracteres.
Damovisa
fonte
+1 - Concordo na maior parte, apesar de gostar de 120 ou 180 dias de validade. Boa sorte em manter viva uma política de senha "extremamente rigorosa" em uma organização política.
precisa saber é o seguinte
"As pessoas são boas em proteger pedaços de papel" - sério? você deve conhecer pessoas muito melhores do que eu! Quando eu costumava dar suporte à área de trabalho, você podia facilmente acessar o PC de um usuário quando ele não estava por perto, apenas pegando o diário de papel que havia deixado na mesa, voltando para a página de trás e digitando a palavra mais recente em a caixa da senha.
precisa saber é o seguinte
Eu acho que depende do pedaço de papel e da opinião deles sobre a importância. Essas mesmas pessoas deixariam notas de 50 dólares em cima da mesa? Os cartões de crédito deles? :)
Damovisa
4

Do ponto de vista de um usuário, ter que alterar minha senha é incrivelmente inconveniente. Eu absolutamente odeio ter que fazer isso, e usarei de má vontade sites que eu absolutamente preciso se eles exigirem que eu mude minha senha.

Também houve discussões sobre se essa é realmente uma boa prática, pois algumas pessoas acabam tendo que escrever suas senhas para lembrá-las.

Você pode implementar um desses widgets que mostra às pessoas o quão forte (ou fraca) sua senha é enquanto a preenche - acho que elas são (meio que) úteis, embora não saiba se elas realmente resultam em mais forte senhas.


fonte
Bem, neste caso, é um site privado, sem ficha de inscrição. Os usuários são funcionários, então eles precisam usar o sistema que ele usa. Dito isto, não concordo necessariamente com uma segurança muito alta. Mas eu não começa a decidir tudo que você vê ..
Iznogood
3

Como usuário de um ambiente de política de senha bastante rigoroso ("senhas super difíceis de adivinhar" e alteração de senha igualmente), minha opinião é que apenas a senha é necessária. Embora demore um pouco para seus usuários se acostumarem (especialmente se forem do tipo 12345), eles deverão ser capazes de se lembrar e digitar facilmente dentro de uma semana.

No entanto, posso prever usuários desconfortáveis ​​se você tiver senhas tão fortes E forçá-las a mudar.


fonte
3

Do ponto de vista da administração de TI, sua melhor opção é investigar a possibilidade de permitir que seu aplicativo use os recursos de logon único do esquema de autenticação existente que seus clientes estão usando. Obviamente, o Active Directory é um grande participante, mas se o seu aplicativo funcionar com a política que a TI local já configurou, você não precisará se preocupar em reinventar a roda.

Como surgiu um grande debate sobre se uma alteração forçada da senha é uma boa ideia (embora eu ache que isso foi secundário à sua pergunta principal), achei que você poderia aproveitar algumas das idéias e links aqui . Para a maioria das situações, se você não forçar uma complexidade de senhas e agendar alterações, é possível que você não tenha senhas - mas a maneira como ela é implementada (treinamento, suporte de gerenciamento etc.) é mais importante do que posso enfatizar.

Kara Marfia
fonte
2

A alteração de senhas geralmente pode levar o usuário a anotá-las. O que não é uma má idéia, de acordo com Bruce Schneier ( http://www.schneier.com/blog/archives/2005/06/write_down_your.html ).

Eu diria até que ter a segurança atrapalhando a usabilidade pode às vezes ser uma coisa boa, apenas porque lembra o usuário de agir com segurança. Por exemplo, no banco em que trabalho, muitas das medidas de segurança adotadas são de segurança (por exemplo, reconhecimento de rosto na porta, mas o funcionário da segurança abrirá a porta para você se o reconhecimento falhar). Embora essas medidas não melhorem a segurança por si mesmas, elas sempre estão lá para nos lembrar que a segurança é uma preocupação importante no trabalho, que há alguma quantidade de registros e verificações em andamento e que, se você for pego fazendo algo "inseguro" estará com problemas.

Obviamente, isso se aplica à segurança dos funcionários de um banco; pode não se aplicar aos usuários do seu site ...

Guillaume
fonte
1

Você deve forçar seus usuários a mudar a cada n dias, se sua política de segurança exigir. Eu trabalho para uma agência do Estado, e esse é um requisito imposto pelo escritório do Auditor Estadual. Não posso fazer nada a respeito, então tenho que forçar mudanças.

Se você não está sujeito à regulamentação para forçar alterações de senha, não as force. Verifique se as senhas definidas atendem a certos requisitos mínimos de complexidade. O comprimento supera a complexidade da maioria dos sistemas de senhas; portanto, um padrão variável é o melhor caso, na minha opinião. Tal como:

  • Nenhuma senha deve ter menos de 10 caracteres.
  • Senhas entre 10 e 25 caracteres exigirão pelo menos três conjuntos de caracteres.
  • Senhas entre 25 e 40 caracteres exigirão pelo menos 2 conjuntos de caracteres.
  • Senhas com mais de 40 caracteres podem usar um único conjunto de caracteres.

Os esquemas de complexidade internos para coisas como o Active Directory não oferecem suporte a esse tipo de sistema em camadas. Se você criar seu próprio ambiente de alteração de senha, poderá fazer coisas assim. Como cada uso da tecla Shift aumenta a probabilidade de um evento de dedo gordo, senhas longas com vários conjuntos de caracteres são MUITO mais propensas a ocorrerem eventos de login com falha, especialmente durante os estágios de aprendizado. Se você possui um sistema de bloqueio de conta, isso pode ser um grande problema. Para a pessoa que usa a terceira linha do seu poema favorito (63 caracteres!) Como frase secreta, não precisar h @ x0r, torna a entrada rápida e eficiente.

Se a tecnologia ou o ambiente de risco mudarem significativamente e agora suas senhas não forem tão complexas quanto deveriam, coloque uma maneira de expirar as senhas por um período de tempo. As pessoas vão reclamar da necessidade, principalmente se você nunca forçou uma mudança antes, mas isso ajudará você a manter sua postura de segurança.

sysadmin1138
fonte
Tenho a sorte de não ser limitado por nada disso. Obrigado!
Iznogood
0

Senhas difíceis de adivinhar são uma coisa boa. Impor níveis de complexidade que resultem em usuários esquecendo suas senhas ou tendo que anotá-las é uma coisa ruim, porque qualquer segurança obtida com a complexidade é completamente perdida no processo. Em um mundo ideal (que infelizmente não é o local onde vivemos), deve haver um equilíbrio entre a complexidade e a usabilidade. É claro que pessoas diferentes verão esse ponto de equilíbrio em lugares diferentes.

A lógica por trás da alteração regular de senhas em X dias está um pouco perdida para mim. A razão pela qual costumo ouvir isso é limitar a utilidade de uma senha roubada, à qual respondo que qualquer dano real quase certamente será causado nas primeiras horas de qualquer maneira. por exemplo, Fred "familiariza-se com" a senha de Mary. A menos que isso aconteça quase ao mesmo tempo em que Mary está alterando essa senha, que diferença faz se for alterada amanhã ou no próximo mês? É realmente provável que Fred espere mais uma ou duas semanas antes de usar a senha (assumindo que essa foi a intenção o tempo todo)?

Obviamente, alterar as senhas se houver algum motivo ou suspeita de que seja necessário é outra questão.

John Gardeniers
fonte
0

Se o aplicativo precisar de um nível de segurança tão alto, você já pensou em usar algo como tokens SecurID? Isso significa que o usuário recebe uma nova senha a cada 60 segundos; você não precisa se preocupar com eles usando a escrita de senhas. No entanto, estes custam dinheiro. Quão segura deve ser a solução?

Mitch Miller
fonte
bastante seguro, mas imaginando se ele precisa ser tão seguro. Verificando o link obrigado !!
Iznogood
0

Eu acho que essas informações são importantes para os usuários. Explique a eles como criar uma senha e como é importante não usar a mesma senha duas vezes. Uma maneira fácil de criar uma senha é usar uma frase, pegar a primeira letra de cada palavra e adicionar alguns números.

Ex. Eu gosto de governar o mundo = Iltrw99

Não os force a mudar a senha, apenas os confundirá.

NiklasS
fonte
0

Embora eu não concorde com a alteração de senhas a cada três meses, isso é um requisito se sua empresa for negociada publicamente e faz parte de ser compatível com SOX. Nota lateral: Sarbanes-Oxley é uma merda.

Supercereal
fonte
0

Algo que eu não vi mencionado é o acesso externo a recursos.

Costumo concordar que, se você escolher uma política de senha sensata, a menos que alguém a anote, é provável que ninguém adivinhe essa senha.

No entanto, digamos que você tenha acesso ao webmail fora do local, agora você pode ter os usuários digitando suas credenciais em "qualquer PC antigo" e IMO, o que aumenta o risco para os dados da sua empresa causados ​​por spyware / malware / trojans e assim por diante, que podem detectar / roubar essas senhas .

flutuar
fonte
Muito bom insight, obrigado! Gostaria de saber como podemos nos proteger disso. Vamos aplicar o Firefox / chrome e bloqing IE6-7-8, então é isso.
111110 Iznogood
-1

Se as pessoas escrevem senhas simples, o que faz você pensar que elas não escreverão uma frase secreta enorme ou uma senha super complicada. O que as alterações incrementais de senha realizam é ​​uma limpeza dos IDs do usuário que não estão mais em uso automaticamente e permite que o usuário individual tenha alguma responsabilidade em tudo isso. As pessoas serão pessoas, procurando o caminho mais fácil para realizar algo; senhas repetidas e senhas alteradas de forma incremental podem ser detectadas e negadas. Os requisitos de complexidade podem ser reforçados; as alterações forçadas de senha também podem abrir os olhos de usuários que não são de TI para a sua responsabilidade em tudo isso. A maioria dos usuários que reclamam sobre a alteração da senha é a preguiçosa que finge alterar sua senha é como uma cirurgia cardíaca aberta. Pare de reclamar, seja responsável e pare de tentar encontrar uma rua fácil,

Tai
fonte
Acho uma "frase secreta enorme" muito, muito mais fácil de lembrar do que uma "senha simples". Existe até uma famosa história em quadrinhos do xkcd sobre isso, então tenho certeza de que não estou sozinha.
Michael Hampton