Encontrei alguns sites que limitam o tamanho que permitem que as senhas sejam e / ou não permitem certos caracteres. Isso me limita, 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 estar fazendo hash.
Existem boas razões para definir um tamanho superior ou excluir caracteres nas senhas?
Respostas:
Não
Não há boas razões.
EDIT: Não posso provar que não há boas razões, porque não se pode provar um negativo. Não consigo pensar em boas razões para isso - como outros apontaram, o hash terá o mesmo tamanho, independentemente do tamanho da entrada, e a eliminação de caracteres válidos (do contexto da pergunta) apenas reduz o espaço de estados. A resposta parece óbvia em seu rosto: não há boas razões. Pode haver um grande número de razões que parecem boas ou que parecem boas, mas não são. Se fossem, alguém já os teria postado aqui, ou se não estiver aqui, certamente no security.stackexchange.com, e essa resposta não teria sido tão fortemente votada.
fonte
Limitar o comprimento pode ser uma medida para limitar o tempo de execução do hash, bem como limitar a largura de banda (e ambos são realmente marginais de qualquer maneira). Fora isso, não há uma boa razão, especialmente do ponto de vista da segurança.
Alguém poderia dizer: “As pessoas esquecerão senhas mais longas com mais facilidade” - mas isso é realmente uma afirmação estúpida e não chega ao ponto.
Quanto aos caracteres, desde que você esteja ciente de possíveis problemas de codificação com transferência e / ou migração de dados no futuro (por exemplo, você passará de ASCII para UTF-8 em 2 anos), permitindo que mais caracteres sejam bons apenas para a força das senhas.
fonte
Sim , há uma razão para caracteres especiais.
Desabilitar caracteres especiais é mais uma questão de usabilidade, em vez de relacionada à segurança. Antes de tudo, eles podem ser mutilados por problemas de codificação. Segundo, mesmo se você garantir sempre usar a mesma codificação, ainda há o problema do dispositivo de entrada. Você dependeria de ter o teclado completo (o que elimina a maioria dos dispositivos móveis), com o mesmo layout de teclado. Posteriormente, 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:
√Ω≈ç∫∞§…¬å∑±
.fonte
Houve um pouco de controvérsia no mundo da segurança alguns anos atrás, quando os clientes do Chase descobriram que suas senhas não diferenciam maiúsculas de minúsculas. Acontece que a página da Web era apenas uma interface para um sistema de back-end do OS / 400 de 30 anos, que tinha uma limitação técnica que ignorava o caso. Consertar isso aparentemente custaria milhões de dólares.
O ponto é que pode haver razões legadas caras para não permitir senhas com um determinado comprimento.
(Observe que não estou desculpando essa desculpa ...)
fonte
A maioria dos bancos, departamentos de TI etc. que impõem restrições máximas de senha não o fazem por motivos técnicos. Eles estão perfeitamente cientes de como o hash de senha funciona e de como armazenar senhas complexas. Eles impõem essas limitações porque reduzem o número de chamadas de suporte para pessoas que esqueceram suas senhas. Essa é uma boa razão para impor esse tipo de limitação? De jeito nenhum. Mas, no entanto, é a principal razão.
fonte
valid Business reason
(Pessoalmente, eu realmente não acredito que há uma correlação)Nem todos os dispositivos de entrada (em termos de hardware) geralmente possuem todos os caracteres que um teclado completo possui ou da mesma forma. Se alguém não estiver usando um gerenciador de senhas, poderá encontrar problemas ao digitar essa senha, não? E o Unicode ainda está muito longe (muito longe) de ser um padrão.
fonte
Vou adivinhar e dizer que algumas dessas restrições se devem à filtragem de caracteres no site (
& < > #
) para manter os hackers afastados. Enquanto outras são idéias idiotas que saem de comitês de chefes de cabelos pontudos.Eu me deparei com várias decisões realmente estúpidas (na minha opinião) "segurança". Como exemplo, uma grande empresa de investimento lida com minhas contas de IRA e com minha pensão. Para fazer qualquer contato com a pensão, é necessário que eu digite minha senha no telefone (você não pode contatá-la). Minha conta de corretagem / IRA usa letras (maiúsculas e minúsculas) e algumas pontuações - nenhum desses caracteres aparece em um teclado numérico. Se você não conseguir fazer login com a senha pelo telefone, ele permitirá que você redefina a senha da sua conta de corretagem para algo que possa ser digitado pelo telefone.
Meu sistema de folha de pagamento (para a empresa de consultoria em que trabalho) exige números e apenas números - isso permite que eles usem o mesmo banco de dados, independentemente de o usuário ligar (nunca fiz isso) ou usar a interface da Web (apenas uso isso) .
Dito isto, é hora de mudar minha senha no escritório. Eles têm restrições tão loucas que eu acredito que levará cerca de meio dia para encontrar uma senha aceitável pelo sistema: pelo menos 2 letras maiúsculas, pelo menos 2 letras minúsculas, pelo menos 2 dígitos (que não podem ser +/- 1 das senhas anteriores), pelo menos 2 caracteres não alfabéticos / não numéricos, não podem corresponder a nenhuma das últimas 24 senhas, não podem conter nenhuma sequência (para frente ou para trás) que seja uma palavra (com três ou mais letras) em inglês ( também algumas outras línguas que não tenho autorização para conhecer). Eu acho que o tamanho mínimo é de 10 a 11 caracteres.
fonte
Uma razão para limitar caracteres seria devido à forma como a senha é então 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 através de uma caixa suspensa.
Eles fazem isso, presumivelmente, para que os keyloggers não possam detectar o pressionamento de teclas e, portanto, conheçam [caracteres da] sua senha. Embora eu saiba que existem muitas outras maneiras pelas quais essas medidas podem ser contornadas, por exemplo, captura de tela; ainda é eficaz contra keyloggers.
Se eles tivessem que permitir todos os caracteres, o comprimento da caixa suspensa se tornaria complicado e também permitiria confusão entre caracteres com aparência semelhante.
fonte
Não permitir caracteres especiais como tab seria válido. Você pode fazer logon ou alterar sua senha com um caractere de tabulação no modo de texto, mas não pode usá-la em uma GUI ou ambiente da web. Um caractere de barra invertida também apresentará alguns problemas de plataforma cruzada.
As senhas longas não são senhas - são senhas. Seu usuário médio não consegue se lembrar de 2Z8d!% G # x, mas pode lembrar 'o nome do meu animal de estimação é fido the dog'. O texto mais longo é mais difícil de decifrar por força bruta e tem muito menos probabilidade de ser escrito em uma nota anexada à tela.
fonte
Quando as pessoas digitam, cometem erros, chamados "erros de digitação". Normalmente as pessoas veem seus erros e os corrigem. Para entrada de senha, geralmente você não pode ver o que digitou e, portanto, não pode corrigir seus erros de digitação. Você comete erros sem perceber, envia sua senha e ela volta como "senha inválida". Então você tenta novamente. Então você tenta novamente.
Você pode pensar nisso como "três pequenos erros de digitação e então você é indistinguível de um ataque de força bruta". Como os sistemas se defendem contra ataques de força bruta? Uma resposta explícita " Muitas tentativas, vá embora, você não será capaz de fazer login, mesmo que faça isso corretamente "? Aumento exponencial de atrasos na entrada de senha, causando o tempo limite do navegador quando o atraso é muito longo, tornando impossível tentar efetuar login novamente? As abordagens variam, mas sempre há uma consequência em um sistema bem projetado.
Você pode pensar nisso como "três pequenos erros de digitação e então obtém algum tipo de negação de serviço".
À medida que o comprimento da senha aumenta, aumenta o risco de erros de digitação (e, portanto, o risco de negar o acesso de uma pessoa autorizada). Qualquer coisa com mais de 20 caracteres será digitada incorretamente com frequência (a menos que o usuário seja esperto / preguiçoso e armazene sua senha em algum lugar para que possa "copiar e colar" sem se preocupar com erros de digitação, como um bom arquivo de texto simples em sua área de trabalho chamado " senhas .txt ").
fonte