Por que jK8v!ge4D não é uma boa senha

Views: 427
0 0
Read Time:7 Minute, 3 Second

Dê uma olhada nessas duas senhas:

  1. jK8v!ge4D
  2. greenelephantswithtophats

Qual senha você acha que leva mais tempo para um computador quebrar? E qual senha você acha que é a mais fácil de lembrar? A resposta para ambas as perguntas é a senha número 2. No entanto, as pessoas são encorajadas a criar senhas que se parecem com o número 1. As pessoas foram ensinadas a escrever senhas que são difíceis de lembrar para os humanos, sem nenhuma razão real.

Vamos falar sobre isso.

Há muitas coisas bizarras nos padrões da internet. A validação é uma delas. Como desenvolvedor front-end, espera-se que valide a entrada que os usuários inserem nos chamados campos de entrada. Estes são os campos que você usa quando digita seu nome de usuário, seu e-mail, seu endereço residencial, seu número postal e assim por diante. É dever de um desenvolvedor front-end garantir que o usuário não insira nada malicioso ou algo indevidamente formatado nesses campos.

Por exemplo, um campo que solicita um número postal geralmente só permite espaços e números, e se soubermos em que país o usuário vive, também podemos limitá-lo a um certo número de caracteres. Os números de telefone podem muitas vezes incluir números, um sinal de mais (apenas no início) e um traço, talvez alguns parênteses também se estamos nos sentindo liberais. Os endereços de e-mail são difíceis de validar, porém uma prática comum é que eles devem incluir um sinal de entrada (@) seguido de um período, embora um endereço de e-mail perfeitamente válido possa realmente ter nenhum desses atributos. Alguns sites tentam validar nomes forçando as pessoas a manter seus nomes dentro de um determinado comprimento ou forçando as pessoas a usar apenas certos caracteres, embora tais validações nunca funcionem realmente, pois os nomes das pessoas podem ser quase qualquer coisa.

A validação é implementada por várias razões. Uma delas são as preocupações de segurança. A validação impede que os usuários inseram código scary nos campos que podem alterar o banco de dados ou executar outras ações maliciosas. Outra é forçar um certo tipo de dados. Se um campo é composto apenas por números, o engenheiro de banco de dados pode ter configurado uma coluna de banco de dados que só permite números, o que significa que um símbolo que não é um número causaria um erro.

Mas a principal razão, na verdade, é ajudar o usuário a evitar cometer erros.

Forçando suas senhas

Por alguma razão, espera-se que os desenvolvedores front-end sejam babás dos usuários para que entrem no que é tradicionalmente concebido para ser uma boa senha. Deve ter pelo menos oito caracteres longos, incluem caracteres maiúsculos e minúsculos, um número, e se estamos nos sentindo realmente detestável, ele deve até incluir um personagem especial, como um ponto de exclamação.

Aqui está um exemplo do que é geralmente considerado como uma senha sólida: jK8v!ge4D. Considerando o fato de que muitas vezes você é solicitado a digitar uma senha como esta, seria justo de sua parte assumir que consideraríamos esta uma boa senha.

Não, não é. Isso é estúpido. É uma senha ruim.

Em primeiro lugar, como alguém deve se lembrar disso? O que acaba acontecendo é que os usuários não se lembram, então eles escrevem as senhas em algum lugar. Como em uma nota post-it. E então eles acabam sendo “hackeados”.

Em segundo lugar, os usuários acabam usando a mesma senha para diferentes serviços, porque é detestável manter o controle de um monte dessas senhas complexas. Quando você cria uma conta para um site decente, algum código mágico nos bastidores transforma sua senha em um hash (comumente e incorretamente referido como criptografia). Sua senha acaba parecendo algo assim no banco de dados: k5ka2p8bFuSmoVT1tzOyyuaREkkKBcCNqoDKzYiJL9RaE8yMnPgh2XzzF0NDrUhgrcLwg78xs1w5pJiypEdFX. Mesmo que o banco de dados seja hackeado, o hacker não pode realmente fazer nada com essas informações. É possível descobrir a senha original se a senha é bastante comum e o algoritmo é bastante simples, embora com uma senha um pouco decente que foi devidamente hashed, é geralmente bastante seguro.

O problema é que nem todos os serviços têm as senhas de seus usuários. Se você usar a mesma senha para muitos serviços, você pode acabar usando um serviço mal programado que realmente salva sua senha em texto simples em seu banco de dados. Se eles acabam ficando comprometidos, o hacker de repente tem sua senha para todas as suas contas onde você usa a mesma senha. Isso é assustador, e acontece muito mais vezes do que se pode pensar.

É por isso que você deve usar senhas diferentes para diferentes sites. No entanto, os usuários de hoje têm contas em toneladas e toneladas de sites. Como é que eles se lembram de todas as senhas? Os usuários de energia podem usar uma ferramenta de senha, mas você não pode esperar que o usuário médio faça isso.

Bem, há uma maneira melhor.

Quanto tempo leva para quebrar?

Dê uma olhada nesta seqüência de caracteres: gtypohgt. São oito caracteres aleatórios, todos minúsculos. Não leva mais do que um par de minutos para um computador moderno forçar seu caminho através dele. Substitua alguns caracteres por alguns números, e você está olhando para uma senha que levará até uma hora para quebrar (g9ypo3gt). Faça alguns caracteres maiúsculos, e a senha levará dias para quebrar (g9YPo3gT). Jogue um sinal especial lá, e pode levar até um mês (g9Y!o3gT).

g9Y!o3gT é tecnicamente uma senha decente. Nenhuma pessoa será capaz de adivinhar, não está em nenhuma lista de senhas comuns, e os computadores levarão um tempo razoável para decifrá-lo. A questão é que essa senha é difícil para um humano lembrar — sem nenhuma razão real.

Agora dê uma olhada nessa beleza: elefantes verdescomchapéus (elefantes verdes com cartolas). São 24 caracteres, todos minúsculos. Sem números, sem caracteres aleatórios, sem travessuras. No entanto, esta senha levará milhares e milhares de anos para quebrar. Veja, para cada personagem que você adiciona, o tempo que leva para um computador quebrar aumenta muito. greenelephantswithtophats não está em qualquer lista curta de senhas comuns, e nenhum humano será capaz de adivinhar isso também.

Essa é uma boa senha

Faça uma senha que conte uma história. Precisa de uma senha do Facebook? Que tal afaceforabookbutapizzaforahorse (um rosto para um livro, mas uma pizza para um cavalo)? Visualizá-lo. Nossa memória espaçada é nossa memória mais forte. De repente, você tem uma senha imensamente poderosa que é fácil de lembrar e única para um site em particular. A senha deve ser algo que mesmo as pessoas que te conhecem muito bem não podem adivinhar. Você não fala sobre tartarugas com freqüência, não é? Você já viu uma tartaruga roxa? Não? Visualizá-lo. Você tem, agora. Tudo bem mentir em suas senhas: ioncesawapurpleturtleiswear (uma vez vi uma tartaruga roxa eu juro). Esse levará milhões de anos para um computador moderno quebrar, e nem mesmo sua irmã será capaz de adivinhar.

Essas senhas são fáceis de imaginar. carros voadoresque não podevoarnãovoando. applesmaybegreatbutpearsarelikeheaven. cabrascomsapatosdesfrutartrainsonrainydays. Ninguém vai adivinhar isso.

No entanto, alguns sites também não permitirão essas senhas. Eles vão reclamar que você não adicionou um número ou um personagem maiúsculo ou que é muito longo, ou alguma outra razão não-técnica sem sentido.

Então você poderia enganar o sistema um pouco. Adicione A1! até o fim de qualquer uma das senhas acima, e elas serão aceitas por qualquer sistema que não as chame por muito tempo. Agora você tem um personagem maiúsculo, um número e um sinal especial. Mesmo que esses três sejam os mesmos em todas as suas senhas, o resto da senha vai compensar isso. ioncesawapurpleturtleiswear e ioncesawapurpleturtleiswearA1! são impossíveis para um computador quebrar, o que significa que não é nada além de um inconveniente que você é obrigado a inserir esses caracteres no final.

A intenção dos desenvolvedores é benigna. As pessoas digitam senhas ruins. Os gerentes de sites não querem escândalos, então eles tentam forçar os usuários a digitar senhas decentes, por mais complicadas que acabem sendo.

Lembre-se desta técnica da próxima vez que precisar criar uma senha. Faça um que seja difícil para os computadores quebrarem e fácil para você lembrar — não o contrário.

Ah, mas mesmo que não, apenas prometa ficar longe de qualquer variação de 123456, senha123, e qwerty. Na verdade, são senhas ruins.

Bem, acho que é por isso que te forçamos a escrever algo como este jK8v!ge4D.

Círculo completo.

FONTE: TOWARDS DATA SCIENCE

POSTS RELACIONADOS