Punindo usuários por senhas inseguras [fechado]


13

Estou pensando em limitar os direitos dos usuários que escolhem senhas inseguras (insegurança de uma senha sendo determinada pelo tamanho, quantos tipos de caracteres (maiúsculas / minúsculas, números, símbolos etc.) são usados ​​e se podem ser localizado em uma tabela arco-íris) para limitar quanto dano sua conta pode causar se comprometida.

Ainda não tenho um aplicativo para essa idéia, mas digo que estou escrevendo um fórum ou algo assim: os usuários que usam 1234 como senha podem precisar preencher um captcha antes de postar ou estar sujeitos a rigorosas medidas anti-spam, como como tempos limite ou filtros bayesianos que rejeitam seu conteúdo. Se este fórum for muito hierárquico, permitindo a "promoção" de moderadores ou qualquer outra forma, isso os impediria de obter privilégios ou dizer-lhes que têm privilégios, mas não permitiria exercitá-los sem alterar a segurança. senha.

Obviamente, essa não poderia ser a única medida de segurança, mas poderia ir bem ao lado de boas práticas de segurança.

O que você acha? Isso é exagerar, desviar o foco das práticas de segurança mais importantes ou é uma boa maneira de limitar os riscos e incentivar os usuários a usar senhas mais seguras (e convencer as pessoas de que você está usando boas práticas de segurança)?


24
Qual é o benefício disso quando você já pode restringir os usuários com senhas impróprias, mesmo acessando seu sistema?
Pete

12
A maioria das pessoas provavelmente continuará usando "letmein", independentemente das restrições que você impõe a elas. Imponha as regras de senha ao criar / alterar uma senha ou não.
31411 John Straka

3
@Carson Myers: Não se você o usa com o cabo Cat6, não é: D
Piskvor deixou o prédio

13
Primeiro, usuários de quê? Estou cansado de sites que exigem login para ver uma imagem postada em um fórum e exigem que a senha seja de 10 caracteres com letras maiúsculas e minúsculas com dígitos e caracteres especiais e SEM sublinhados e o número 1. Torne os requisitos de senha proporcionais ao valor de dados protegidos.
SF.

6
Na Flórida, as pessoas que estavam atrasadas no pagamento de suas contas de TV a cabo às vezes ficavam limitadas a um canal. CSPAN. Funcionou para eles. <shrug>
Mike Sherrill 'Cat Recall'

Respostas:


35

YAGNI , KISS , DRY , a regra dos 10 segundos e o fato de que "os usuários não se importam com VOCÊ" provavelmente devem reduzi-la a uma solução: não.

  • É mais trabalho de desenvolvimento que precisaria de muitos testes para ser confiável e seguro.
  • Provavelmente reduz a segurança do site da maneira que você o vê. A chance de algum bug levar à escalação de privilégios com uma senha terrível é muito grande.
  • Aumenta a complexidade para o desenvolvedor, testador, mantenedor, DBA, sysadmin e usuário.
  • Quanto mais complexidade, mais difícil é evitar se repetir de alguma maneira.
  • Os usuários não têm atenção para ler suas informações e acompanhá-las. Eles estão acostumados a ajustar o formulário de registro até que ele aceite a entrada, não até atingirem o nível ideal.
  • Os usuários simplesmente não se importam.

pontos fortes, todos, exceto, talvez, SECO. Por que seco? Além disso, não precisa ser tão complicado, toda a "promoção para MOD" etc. foram apenas alguns exemplos extras. Como a maioria dos sites já detecta senhas inseguras, e muitas plataformas comuns (o Wordpress vem à mente) já permitem que você se registre com senhas inseguras, a adição de captchas para esses usuários gera todas essas preocupações? Pode ser irritante, mas as outras alternativas são afastar os usuários completamente ou deixá-los entrar e arriscar mais spam. Por exemplo.
Carson Myers

3
+1 Para o link usá-lo. Bom site é bom. Ironicamente feio para um site de UI / UX.
StuperUser

4
+1 Para os usuários não se importam com você. Se for algum blog bobo / site de perguntas e respostas e eu tiver que me lembrar de uma combinação complexa de nome de usuário / senha, simplesmente não a usarei.
ElGringoGrande

@ElGringoGrande Não estou necessariamente propondo isso por algo tolo, mas como um meio termo entre "permitir todas as senhas" e "rejeitar todas as senhas ruins", onde existem muitos sites que empregam cada método. Não está se saindo bem no entanto, haha
Carson Myers

13

Force uma senha segura na alteração do registro ou use um OpenId (Jeff Atwood 2c: http://www.codinghorror.com/blog/2010/11/your-internet-drivers-license.html ). Em seguida, concentre-se em funcionalidades mais interessantes.

Por um lado, os usuários estão acostumados a criar senhas seguras ou a usar seu OpenId, por isso é simples para eles.


Concordo que o OpenId é ótimo para esse tipo de coisa, mas acho que você pode ser tendencioso ao pensar que a maioria dos usuários está acostumada a uma dessas coisas. A maioria das pessoas que eu conheço nunca ouviu falar do OpenId e ainda mais usa senhas inseguras
Carson Myers

1
Bom ponto. Eu não usei o OpenId antes do SE, mas tive senhas rejeitadas devido à falta de complexidade. Se é entre manter algo simples e seguro, a segurança vem primeiro, mesmo que a responsabilidade de educar seus usuários seja sua. Você precisaria se esforçar para educá-los sobre suas responsabilidades com base na complexidade de suas senhas. Parece melhor usá-lo para educá-los em segurança / promover um login comum.
StuperUser

um login comum é ideal, mas se o aplicativo não for de natureza técnica, boa parte dos usuários optará por usar apenas a mesma senha (ou sair se não estiver disponível). No meu exemplo, estou me perguntando se deveria se afastar os usuários (rejeitando sua senha) ou fornecendo-lhes uma experiência visual (não podemos permitir que você faça isso porque não sabemos se sua senha incorreta tem começado sua conta comprometida) para mostrar-lhes os problemas criados pela senhas ruins
Carson Myers

A maioria dos usuários terá uma conta no Facebook ou hotmail ou Gmail (é necessária uma conta de e-mail para recuperação de credenciais em muitos sites), deixando claro como usá-las para inscrição / login pode ser útil.
StuperUser

Eu acho que eu esqueci Facebook Connect etc.
Carson Myers

12

Por que permitir senhas que você considera ruins em primeiro lugar? Interromper o problema na fonte economizará muito tempo de design, tentando descobrir quais classes de senhas são mapeadas para quais funções. Como um administrador, por definição, teria todos os direitos, você já precisaria de funcionalidade para garantir que ele não digite uma senha que o restringisse.

Minha resposta realmente se resume ao KISS .


1
Isso não é uma solução, porque isso tende a levar o usuário a adotar medidas defensivas que quebram ainda mais a política de segurança.
Deadalnix

@deadalnix como assim? Acho que ele está apenas dizendo a renunciar a toda a idéia e apenas rejeitar senhas ruins, enquanto fornece um exemplo de por que minha idéia pode causar mais irritação do que o necessário
Carson Myers

@deadalnix o que você quer dizer? Que contramedidas contra uma senha segura um usuário adotaria?
StuperUser

7
@StuperUser: Isso, principalmente: alternar uma vulnerabilidade para outra.
Piskvor saiu do prédio

1
@StupidUser: se um usuário estiver reutilizando a mesma senha para todos os sites e for informado que "minha senha" não é aceitável porque não contém números, há uma chance muito boa de que ele insira "minha senha"
minha

7

Como usuário, isso provavelmente me convenceria a não usar seu site. Quero dizer, sério, meu banco me diz que um código de 6 dígitos é perfeitamente seguro para transações bancárias on-line, mas quando quero escrever um comentário em algum blog menos conhecido, devo lembrar uma senha única contendo pelo menos 8 - e caracteres minúsculos, um dígito, um caractere especial e um símbolo grego ou cirílico que só podem ser inseridos se você conhecer a sequência unicode de cor. E mude isso regularmente.

Não me interpretem mal, a segurança é importante. Mas se você não deve incomodar seus usuários, a menos que tenha motivos realmente fortes para acreditar que alguém tentará decifrar suas senhas para obter acesso ao seu site. Se o seu site fornecer acesso VPN à rede do FBI, vá em frente, irrite. Mas se é um fórum de usuários em que qualquer pessoa com um endereço de e-mail pode se inscrever, qual é o sentido?


Bem, por exemplo, se estamos falando de um site da comunidade, o spam pode ser um problema (e realmente está em algum projeto em que participei). Na IMO, afastaria mais usuários para rejeitar completamente sua senha e, se mitigarmos o spam usando captchas (não incomum), melhor para colocar esse aborrecimento nos usuários que provavelmente causam isso, não?
Carson Myers

Além disso, eu acho que é um equívoco comum que seja raro obter tentativas de invasão se você for pequeno. Estive envolvido em algumas comunidades online pequenas e médias e sempre foi um problema. Esta questão ServerFault parece apoiar isso .
Carson Myers

5
por que os spammers usariam senhas mais curtas? Por que eles tentam decifrar as senhas de outras pessoas, se podem apenas criar uma nova conta? Não vejo a vantagem de senhas longas aqui.
Nikie

Eu não tenho idéia, eu só vim com ele há pouco tempo e decidiu ver como ele se levantou ao escrutínio :) não bem, parece ...
Carson Myers

1
Gosto muito da sua resposta, porque ela aponta a bobagem de pensar em implementar essa idéia: criar segurança desnecessária para sites que contêm dados não seguros.
Tundey 12/07/11

6

Melhor solução: carinhas felizes.

Estou falando sério! Ler livros de economia comportamental como "Nudge: Improving Decisions About Health, Wealth, and Happiness" me convenceu de algumas coisas:

  1. Você não pode forçar todos a tomar decisões sábias.
  2. As pessoas gostam de ser livres para escolher, mas não gostam de muitas opções.
  3. No entanto, você pode influenciar significativamente suas escolhas para melhor com truques simples.

Vejo que esses princípios se aplicam à sua situação assim:

  1. Restringir usuários com base em senhas inseguras provavelmente os frustrará e os confundirá ... especialmente para a maioria das pessoas que não lêem as explicações cuidadosamente escritas nas caixas de diálogo e simplesmente liga para o Helpdesk para dizer: "Isso não acontece". trabalhos."
  2. Ao criar senhas, os usuários não precisam ver uma lista de todas as possibilidades de caracteres especiais e, portanto, eles podem usar. Melhor mostrar a eles um pop-up sugerindo que eles adicionem alguma complexidade apenas se a entrada deles não atender aos requisitos.
  3. As pessoas são fortemente influenciadas por sinais sociais - mesmo os pequenos, como rostos felizes, mostrando que aprovamos seu comportamento, ou rostos carrancudos, se não o fazemos. Alguns sites melhor projetados mostram uma barra de progresso colorida que muda de vermelho para Não é bom o suficiente :( para verde para Bom trabalho! :) , à medida que o usuário digita sua senha (proposta) e confirmação. Essa interface do usuário dá a eles alguma pressão social para atender aos padrões - fazer com que a barra fique verde ou transformar a testa franzida em um sorriso - conforme eles descobrem por si mesmos como criar senhas mais seguras com a ajuda do feedback imediato do mudanças de cor.

2
Meu pensamento inicial foi que você estava sugerindo que os usuários usassem carinhas felizes em suas senhas.
aslum

4
@ aslum: Na verdade, carinhas felizes em senhas não é uma má idéia. Quase todos eles são compostos de caracteres não alfanuméricos; portanto, apenas um :) ao final de uma senha fraca tornaria significativamente mais forte o simples aumento do espaço de pesquisa.
afrazier 12/07/11

@afrazier: a menos que isso se torne prática comum, e eles possam ser adicionados à lista de caracteres, certo?
serv-inc

4

Para não empilhar, mas pensei em outro motivo para registrar isso em "Bad Idea" que ainda não vi mencionado - suporte ao cliente.

Se este é um produto que terá representantes de suporte ao cliente, eles não vão gostar muito disso. Uma das suposições subjacentes do suporte é que eles entendem e podem prever a experiência do usuário - se estiverem ajudando um usuário comum, a Página 1 deverá ter links para as Páginas 2, 3 e 4, onde eles podem executar X, Y, Z etc.

Agora, você está dando a eles outra variável que eles precisam acompanhar. Se o usuário não vê o link para a Página 4, é porque fez algo estúpido? Ou é porque a senha deles é péssima e seu sistema os está punindo, negando o acesso a eles? Espere ... porcaria, está negando acesso a um dos castigos por uma senha incorreta ou estou pensando em Page 5? Deixe-me procurar, apenas um momento ... ok, ele diz que, para uma senha que não combina letras maiúsculas e minúsculas, o acesso a páginas pares é permitido, mas restrito a somente leitura ... ok, senhor, sua senha, consiste em todas as letras maiúsculas ou minúsculas? Caso. Quando você apenas digita a letra, é minúscula; quando você usa turno, é quando está em maiúscula. Você misturou os casos na sua senha? A senha que você usou para fazer login no sistema. O que você acabou de usar. Ok, vá para Editar, selecione Preferências e Segurança. Selecione "Senhas salvas" ... não, senhor, não consigo ver suas senhas daqui ....

Sim. Não faça isso.


2

Restrinja senhas ou informe aos usuários os riscos de senhas fracas. Acho que se um usuário não se importa com os dados, você pode restringir o acesso a outros. Talvez os usuários se sintam mais confiantes se aqueles que seguem práticas de senha descuidadas são eliminados. Qual é o sentido de exigir uma senha mais forte se ela acabar com uma nota adesiva embaixo do teclado ou colada no laptop (não é possível inventar essas coisas; eu já vi isso acontecer).


Parte da minha pergunta era limitar a influência dos usuários um sobre o outro quando eles usavam senhas ruins, para que você não os mandasse embora, mas certifique-se de não transformar suas más práticas no sofrimento dos outros. Após essa longa discussão, parece que não vale a pena. Ainda assim, uma idéia divertida, eu acho.
Carson Myers

2

e se ele pode ser localizado em uma mesa arco-íris

Eu acho que você quer dizer dicionário e não tabela de arco-íris. O ataque do dicionário funciona apenas para testar todas as palavras do dicionário, se elas corresponderem à senha. Esse ataque pode ser corrigido por 5 tentativas e bloqueado por x minutos ...

Uma tabela arco-íris só será usada se você fizer o hash da senha e o invasor souber o hash. Do que ele poderia encontrar o hash na tabela do arco-íris se fosse apenas "12345" ou algo semelhante.

Apenas para completar a viagem de ida e volta: para tornar inútil uma tabela de arco-íris, salve as senhas. E use um sal unqiue para cada senha e não apenas uma para todos. Se você fizer isso, o atacante precisará criar uma tabela arco-íris com o sal exclusivo para cada conta que ele deseja acessar. Inteligente ao seu lado, você pode incrementar o hash com o algoritmo de múltiplos hash de concatenação, para que uma geração possa demorar meio segundo. Se você fez isso, o acesso a uma conta em seu site deve valer dias, provavelmente um mês para gerar hashes para encontrar uma correspondência com essa conta ... Não consigo pensar em um invasor que tentará obter todas as senhas quando quiser. demora tanto.

Para o tempo de hash: Pense em 500ms de tempo de espera para um mecanismo de login. Eu acho que é aceitável ... (um lembrete: quase um segundo leva um aperto de mão para SSL)


Sim, eu quis dizer um dicionário, obrigado. E você é certamente certo que outras formas de segurança são necessárias
Carson Myers
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.