Executando verificação de segurança...
4
Minik
1 min de leitura ·

Senhas aleatórias são realmente tão seguras?

Estava lendo um artigo que afirmava que, em algumas situações, uma senha mais fácil de lembrar pode ser mais segura do que uma senha completamente aleatória, especialmente quando você não utiliza um gerenciador de senhas. Isso acontece porque uma senha que precisa ser trocada constantemente ao acessar um site pode acabar perdendo parte de sua eficácia. Entretanto, durante minha pesquisa, encontrei várias discussões em fóruns que apresentavam uma perspectiva oposta. Muitos argumentam que uma senha gerada aleatoriamente, como por exemplo: "ZHaJXPxLWG7" criada pelo Bitwarden (com 84% de entropia), pode ser ainda mais segura do que uma senha criada com base em uma frase, como: "@EuAdoro1Maça", apesar desta última possuir 100% de entropia, o que leva a uma aparente contradição.

Gostaria de saber a opinião de vocês sobre essa questão, visto que, uma senha não óbvia já não vai estar na lista de senhas mais usadas e que o computador vai testar e às vezes uma senha não tão aleatória pode ser tão forte quanto uma aleatória e muito mais fácil de se decorar.

Todas essa discussão está feita com base na suposição de que a pessoa não use um gerenciador de senhas,visto que, é onde se enquadra a grande maioria das pessoas, inclusive as que saem digitando vários caracteres aleatórios e acham que estão seguras, quando às vezes fazem isso sem nem bater 8 dígitos direito.

Carregando publicação patrocinada...
3

Primeiro, entropia não é uma porcentagem, é um número dado pela fórmula abaixo (assumindo que a escolha dos caracteres foi aleatória):

E = \log_2(R^L)

Sendo que R é a quantidade de caracteres possíveis (por exemplo, se a senha só pode ter letras minúsculas sem acentos, o valor seria 26), e L é o tamanho da senha.

Outro detalhe é que a entropia leva em conta o processo de geração da senha, e não a senha em si (por exemplo, obrigar pelo menos uma letra maiúscula e uma minúscula muda o cálculo). Por isso não dá pra afirmar muita coisa sobre as senhas que vc usou de exemplo, porque não sabemos o valor de R e nem o processo que as gerou.

Tem também uma série de outras coisas pra levar em conta, sugiro que leia aqui para mais detalhes.

Dito isso...


Segurança é um assunto bem complexo, e tem muito achismo Internet afora. Eu não me atrevo a dar uma explicação mais detalhada, sob o risco de falar bobagem.

Por isso é melhor ler o que profissionais da área tem a dizer a respeito:

Um detalhe interessante citado nos links acima é que temos que levar em conta dois fatores: o computacional e o humano. Muitas vezes a gente cria senhas tecnicamente complexas, difíceis de adivinhar (ou seja, consideramos o fator computacional), mas que também são difíceis de lembrar (ou seja, desconsideramos o fator humano). O resultado é que o tiro pode sair pela culatra: a senha é tão difícil que os usuários começam a deixar ela anotada em post-it e colado no monitor, ou em arquivo texto no desktop, pra ficar mais fácil dar copy-paste.

Tem também muitos outros detalhes, leia os links indicados (e siga outros citados nas respostas) para mais informações. É muita coisa, até hoje não consegui absorver tudo, pois o assunto é extenso, profundo e complexo.

Obs: como bônus, um dos links citados discute o XKCD obrigatório sobre o assunto:

linked and maintained alt-text

2

Pra mim, vai do tamanho do prejuízo ao perder a senha.
Ex: se o tabnews pedisse login constantemente, eu usaria uma senha fácil de lembrar.
Já a senha da financeira por onde faço investimento, seria mais complexa, mesmo que eu tivesse mais dificuldade de digitar toda vez que fosse acessar.

De qualquer forma eu uso sempre o BitWarden mesmo que eu vá utilizar uma senha muito fácil pela simples comodidade de dar 2 clicks para preencher todo o usuário e senha ao invés digitar.

Uso no navegador e no celular, então muito raramente preciso digitar uma senha.

E ainda que seja de boa usar uma senha "decorável", não é nada seguro utilizar a mesma senha em tudo que é sistema, então mesmo assim se torna difícil lembrar qual a senha de determinado serviço. Tem técnicas como usar um prefixo igual pra todas as senhas e utilizar o nome do próprio serviço como sufixo (ex: 1maS3nh4Mu1t0L0k4@facebook), mas ainda assim, basta o hacker descobrir uma que vai saber que vc usa essa técnica em todas.

1

Entendo, eu também uso o Bitwarden e, em um mundo ideal, todos usariam gerenciadores de senha, mas não é o que acontece e acho que as próprias redes sociais podem causar um estrago tão grande quanto a senha do seu banco se forem vazadas. Pois, por mais que isso venha a ser completamente desaconselhável, existem pessoas que compartilham informações extremamente delicadas, como fotos íntimas, sem nem se preocupar com a questão da senha e de uma autenticação de dois fatores.Mas você levantou um ponto que não havia pensado, que é o fato da pessoa ter contas em varios lugares diferentes

2

No meu ver, o problema de senhas "decoráveis" é vc acabar expondo ela em algum momento, sem nem perceber (tipo numa conversa, ou reutilizando ela num serviço de teste do seu trabalho e ver que ela não foi codificada no banco de dados, ficando exposta para todos os devs da empresa e eventuais invasores).

1

O que importa no final do dia não é o valor da senha em si e sim a quantidade de opções por caractere e o algotimo de hash dessa senha (um bcrypt da vida):

Tanto um @EuAdoroAbacax1 e o bd2!Ar^56*eJnHZ tem o mesmo peso das quantidades de opções por posição de letra:

  • 15 caracteres
  • A à Z / a à z:
    • 26 maiusculas e 26 minusculas: 52 opções
  • 0 à 9:
    • 10 opções
  • simbolos:
    • não entram todos, mas usam os mais comuns e permitidos: ~`!@#$%^&*()_-+={[}]|:;"'<,>/.?
    • 32 opções

Em uma continha de padaria, são 15 posições elevado a quantidade de opções, ou seja, 94 opções, o que daria uns 35.000.000.000..(+100 zeros).
O ponto é, o valor não muda a quantidade de combinações possíveis para se ter uma senha forte nesses pré-requisitos que são bem comuns: minúscula, maiúscula, número e caractere especiais.
Se quiser ter uma senha mais forte, é só aumentar as posições: @Eu-Adoro-Muito-Abacax1-S0u-Louc0-P0r-Voc3 - daí tu estoura o limite e o servidor chora 🤣, mas com certeza será mais forte que uma senha aleatória de 8 posições apenas.


Agora, pra quem usa um gerenciador de senhas, a história é outra...

Criar uma passphrase fácil de guardar, mas grande o suficiente para chegar perto do limite aceitável da senha no gerenciador, já é aceitável. Usar coisas que só você sabe que realmente gosta para composição de uma senha, com um acréscimo de números de emergência, é mais seguro que ficar guardando passphrases curtas na cabeça.

1

Acho que nada é tão seguro. Uma vez eu ouvi o Gabriel Pato falando que o mais próximo do ideal seria utilizar um gerador de senhas, como o proposto pelo Bitwarden, e utilizar um prefixo ou sufixo que só você saiba. Nesse caso o prefixo ou sufixo não podem ser tão faceis, logo devem estar anotados em meio físico em um lugar acessível somente por você para evitar que você o esqueça e perca o acesso.
Eu particularmente acho que a melhor forma de se manter seguro.

1

Na minha opinião, mais importante do que a qualidade da senha, é a segurança adicional da autenticação.

Autenticação de 2 fatores, throttling (um throttling bem feito impossibilita brute force), um fail2ban bem implementado.

Cerca geografica também ajuda bastante dependendo do serviço.

Por exemplo alguns bancos costumam bloquear se você costuma acessar sempre de Fortaleza, e repentinamente acessa em São Paulo.

1
1

Eu prefiro ultilizar senha aleatórias, geradas pelo betwarden, porém eu pego senha extremamente grandes, entre 60 e 80 caracteres, assim fica praticamente impossível quebrar minha senha

1
1

Eu fiquei curioso pra saber como chegou no cálculo de entropia para as senhas ZHaJXPxLWG7 e @EuAdoro1Maça, mas já dá pra ver a principal diferença aqui que é o uso de caracteres especiais, números e letras não tão convencionais em senhas "ç".

Mas se você for analisar, existem 3 palavras comuns nessa senha: Eu, Adoro, Maça... o que vejo com isso é a facilidade de um brute force chegar nesta combinação e descobrir a verdadeira senha.

Ao meu ver, vale mais a pena ter uma senha lembrável "EuAdoroMaça", mas que seja maior, "EuAdoroMaçaNoCafeDaManha", que tenha mais de um número espalhado, "EuAdoro1MaçaNoCafeDaManha5", que tenha mais de um caracter especial, "@EuAdoro1MaçaNoCafeDaManha5#"... isso um brute force vai demorar, ah mais vai demorar de achar.

O cuidado de ter senha grande e específica é evitar escorregar disponibilizando ela por aí, é dificultar o brute force, enfim.

Senhas complicadas são boas também, mas não adianta nada eu ter uma sequência do tipo "jdqwejknfwuerhiqehuiqwueqweqwhjdasjdoijerjksdfnjhasd" que as possibilidades de encontrar são grandes... apesar que uma senha deste tamanho aja tentativa e erro pra chegar nela ein, eu simplesmente bati no meu teclado e saiu ela kkkkkkkkkkkk

Ou seja, ao meu ver, não importa se você tem uma senha difícil de lembrar ou não, o importante é se proteger com ela, para ela te proteger!

1

Depende, como diria baki hanma "aleatorio não significa meia boca". Existem serviços que fazem a geração de maneira realmente aleatoria porem insegura. Eu acredito que para uma senha ser segura de fato ela precisa de pelo menos uma boa alternancia entre numeros, caracteres minusculos e maiusculos, simbolos e etc. Afinal, se fosse para ter uma senha aleatorio com caracteres parecidos eu bateria a mão no teclado.

1

Gostaria de comentar sobre ter dito que 'uma senha não óbvia já não vai estar na lista de senhas mais usadas', muitos hackers e programas já possuem imensos banco de dados contendo senhas incomuns ou vazadas, que até podem ser encontradas à venda em sites da deep web, então, acredito que hoje em dia seja extremamente fácil quebrar senhas que não são tão óbvias.

Recentemente assisti um vídeo extremamente interessante do Fábio Akita que comenta um pouco sobre a segurança e senhas em geral, vou deixar aqui como recomendação de vídeo, https://www.youtube.com/watch?v=s7ldn31OEFc.