Existe algum motivo válido para desautorizar caracteres e limitar o tamanho das senhas?

39

Encontrei alguns sites que limitam o tamanho que permitem que as senhas sejam e / ou desautorizam certos caracteres. Isso é limitante para mim, pois quero ampliar e aumentar o espaço de pesquisa da minha senha. Também me dá uma sensação desconfortável de que eles podem não ser hash.

Existem boas razões para definir um comprimento superior ou excluir caracteres em senhas?

    
por chris 27.06.2011 / 17:56
fonte

10 respostas

26

Não

Não há razões boas .

EDITAR: Não posso provar que não há boas razões, porque não se pode provar negativo. Não consigo pensar em nenhuma boa razão para isso - como outros apontaram, o hash será do mesmo tamanho, independentemente do tamanho da entrada, e a eliminação de caracteres válidos (do contexto da questão) apenas reduz o espaço de estados. A resposta parece óbvia: não há boas razões. Pode haver um grande número de razões que pareçam boas ou que pareçam boas, mas não são. Se eles estivessem, alguém os teria postado aqui já, ou se não estiver aqui, certamente em security.stackexchange.com, e essa resposta não teria sido tão strongmente votada.

    
por 27.06.2011 / 18:05
fonte
25

Limitar o comprimento pode ser uma medida para limitar o tempo de execução do hashing, bem como limitar a largura de banda (e ambos são realmente marginais, de qualquer forma). Além disso, não há uma boa razão, especialmente do ponto de vista da segurança.

Pode-se dizer: "As pessoas esquecerão as senhas mais longas com mais facilidade" - mas isso é realmente uma declaração estúpida e não chega ao ponto em tudo.

Quanto aos caracteres, desde que você esteja ciente dos potenciais problemas de codificação com transferência de dados e / ou migração no futuro (por exemplo, você mudará de ASCII para UTF-8 em 2 anos) permitindo que mais caracteres só sejam bons para pontos strongs de senhas.

    
por 27.06.2011 / 18:05
fonte
17

Sim , há um motivo para caracteres especiais.

A proibição de caracteres especiais é mais uma questão de usabilidade do que de segurança. Primeiro de tudo, eles podem ser mutilados por problemas de codificação. Segundo, mesmo que você garanta sempre usar a mesma codificação, ainda há o problema do dispositivo de entrada. Você estaria dependendo de ter o teclado completo (o que elimina a maioria dos dispositivos móveis), com o mesmo layout de teclado. Mais tarde, diferem não apenas entre idiomas, mas também entre sistemas operacionais, layouts para Windows, Linux e OSX podem ser um pouco diferentes. Então eu vejo uma boa razão para não permitir senha como: √Ω≈ç∫∞§…¬å∑± .

    
por 27.06.2011 / 21:48
fonte
13
Houve uma controvérsia no mundo da segurança alguns anos atrás, quando os clientes do Chase descobriram que suas senhas eram insensíveis a maiúsculas e minúsculas. Descobriu-se que sua página da Web era apenas uma interface para um sistema de back-end OS / 400 de 30 anos de idade, que tinha uma limitação técnica que ignorava o caso. Consertar isso aparentemente custaria milhões de dólares.

O ponto é, pode haver motivos legados caros para não permitir senhas ao longo de um determinado período.
(Note que eu não estou desculpando essa desculpa ...)

    
por 28.06.2011 / 00:57
fonte
8

A maioria dos bancos, departamentos de TI, etc. Quem impõe restrições máximas de senha não o faz por motivos técnicos. Eles estão perfeitamente cientes de como funciona o hashing de senha e como armazenar senhas complexas. Eles impõem essas limitações porque reduzem o número de chamadas a serem suportadas por pessoas que esqueceram suas senhas. Essa é uma boa razão para impor esse tipo de limitação? De jeito nenhum. Mas, no entanto, é o principal motivo.

    
por 27.06.2011 / 18:54
fonte
7

Nem todos os dispositivos de entrada (em termos de hardware) geralmente têm todos os caracteres que um teclado completo possui, ou da mesma forma. Se alguém não estiver usando um gerenciador de senhas, pode se encontrar em apuros ao digitar essa senha, não? E o Unicode ainda está longe (muito longe) de ser um padrão.

    
por 27.06.2011 / 18:47
fonte
7

Are there good reasons for either setting an upper length or excluding characters in passwords?

Vou adivinhar e dizer que algumas dessas restrições se devem à filtragem de caracteres em seu site ( & < > # ) para manter os hackers fora. Enquanto outros são as idéias com cabeça de osso que saem de comissões de chefes de cabelos pontudos.

Eu me deparei com várias decisões de "segurança" realmente estúpidas (na minha opinião). Por exemplo, uma grande empresa de investimentos lida com minhas contas IRA e minha pensão. Para fazer qualquer contato com a pensão, é necessário que eu digite minha senha no telefone (você não poderá acessá-la de outra forma). Minha conta de corretagem / IRA usa letras (maiúsculas e minúsculas), bem como alguma pontuação - nenhum desses caracteres aparece em um teclado numérico de telefone. Se você não conseguir fazer login com a senha pelo telefone, ele poderá redefinir a senha da sua conta de corretagem para algo que você possa digitar pelo telefone.

Meu sistema de folha de pagamento (para a empresa de consultoria para a qual trabalho) exige números e apenas números - isso permite que eles usem o mesmo banco de dados se o usuário chamar (nunca fiz isso) ou usar a interface da Web usa isto).

Dito isto, é hora de mudar minha senha no escritório. Eles têm restrições tão loucas que eu estimo que levará cerca de meio dia para encontrar uma senha aceitável para o sistema: pelo menos 2 letras maiúsculas, pelo menos 2 letras minúsculas, pelo menos 2 dígitos (o que não pode ser +/- 1 da senha anterior), pelo menos 2 caracteres não alfa / não numéricos, não podem corresponder a nenhuma das últimas 24 senhas, não pode conter nenhuma sequência (para frente ou para trás) que seja uma palavra (3 ou mais letras) em inglês ( também algumas outras línguas que eu não tenho autorização para saber). Eu acho que o comprimento mínimo é de 10 a 11 caracteres.

    
por 27.06.2011 / 19:28
fonte
5

Um motivo para a limitação de caracteres seria devido a como a senha é inserida.

Vários bancos, por exemplo, com seus sites de Internet Banking, solicitam caracteres específicos de uma senha e você seleciona os caracteres apropriados por meio de uma caixa suspensa.

Eles fazem isso, presumivelmente, para que os keyloggers não consigam detectar o pressionamento de tecla e, assim, saber [os caracteres de] sua senha. Embora eu saiba que existem muitas outras maneiras de tais medidas serem contornadas, e. captura de tela; ainda é eficaz contra keyloggers.

Se eles tivessem que permitir todos os caracteres, o comprimento da caixa suspensa se tornaria pesado e também permitiria confusão entre caracteres parecidos.

    
por 28.06.2011 / 00:40
fonte
2

Não é permitido usar caracteres especiais como a guia. Você pode fazer logon ou alterar sua senha com um caractere de guia no modo de texto, mas não pode usá-lo em uma interface gráfica ou ambiente da web. Um caractere de barra invertida também apresentará alguns problemas de plataforma cruzada.

entre senhas longas não são senhas - elas são senhas. Seu usuário médio não consegue se lembrar de 2Z8d!% G # x, mas eles podem lembrar "o nome do meu animal de estimação é fido o cachorro". Texto mais longo é mais difícil de decifrar pela força bruta e é muito menos provável que seja escrito em uma nota anexada à tela.

    
por 28.06.2011 / 15:09
fonte
0

Quando as pessoas digitam, cometem erros, chamados "erros de digitação". Normalmente as pessoas vêem seus erros e as corrigem. Para entrada de senha geralmente você não pode ver o que você digitou e, portanto, você não pode corrigir seus erros de digitação. Você comete erros sem perceber, envia sua senha e volta como "senha inválida". Então você tenta de novo. Então você tenta de novo.

Você pode pensar nisso como "3 pequenos erros de digitação e, em seguida, você é indistinguível de um ataque de força bruta". Como os sistemas defendem contra ataques de força bruta? Uma tentativa explícita " Muitas tentativas, vá embora, você não conseguirá fazer login mesmo que acerte "? Aumentar exponencialmente os atrasos na entrada de senhas, levando a tempos limite do navegador quando o atraso for muito longo, impossibilitando fazer logon novamente? As abordagens variam, mas sempre há uma consequência em um sistema bem projetado.

Você pode pensar nisso como "3 pequenos erros de digitação e, em seguida, você recebe algum tipo de negação de serviço".

À medida que o tamanho da senha aumenta, aumenta o risco de erros de digitação (e, portanto, o risco de negar o acesso de uma pessoa autorizada) aumenta. Qualquer coisa mais do que cerca de 20 caracteres será mal digitado com freqüência (a menos que o usuário seja inteligente / preguiçoso e armazene sua senha em algum lugar para que eles possam "copiar e colar" sem se preocupar com erros de digitação, como um arquivo de texto simples em sua área de trabalho chamado "< em> passwords.txt ").

    
por 01.05.2017 / 11:39
fonte