3

Se você é dev, você já deveria estar utilizando um gerenciador de senhas

Introdução

Desde que comecei a estudar programação eu ouço falar sobre medidas de segurança eu recebo instruções sobre segurança.

Inicialmente é algo mais a nível de usuário, coisas como:

  • Usar senhas longas com letras, números e símbolos
  • Não utilizar senhas óbvias
  • Não clicar em links suspeitos
  • Ataques mais comuns (trojan, ransomware, engenharia social, força bruta, etc...)
  • Não reutilizar a mesma senha várias vezes
  • etc...

E posteriormente, quando você vai estudar sobre segurança a nível de desenvolvedor, acaba vendo coisas como:

  • Algoritmos de Criptografia (DES, AES, RSA, MD5, SHA256...)
  • Criptografia Simétrica vs. Assimétrica
  • Algoritmos de Hashing
  • Derivação de Chaves (KDFs), como Argon2 e PBKDF
  • Conceitos de Entropia, Confusão e Difusão
  • Criptanálise
  • etc...

E mesmo que nós (devs) já saibamos sobre as boas práticas de segurança, as vezes você está se cadastrando na pressa em algum sistema (as vezes durante alguma outra tarefa importante) e acaba reutilizando uma senha que você já utiliza ou cadastrando alguma senha fraca.

Imagino que isso seja algo comum na verdade.


Mas aí os gerenciadores de senhas entram na história.

Você ouve falar sobre os gerenciadores de senhas e sobre como eles funcionam, qual seu propósito e todas essas coisas.

Mas será que todo mundo que sabe o que um gerenciador de senhas faz de fato usa um gerenciador de senhas?

Eu mesmo só comecei a utilizar gerenciadores de senhas ano passado, mesmo já sabendo como eles funcionavam.

O meu objetivo com esse post é justamente de convencer de que começar a utiliza-los realmente vale a pena, pois as vezes mesmo sabendo que existe a gente não usa por receio ou por preguiça.

Gerenciadores de Senhas

Gerenciadores de senhas são ferramentas que:

  • Guardam todas as tuas senhas em um único lugar;
  • Geram senhas fortes automaticamente;
  • Completam suas senhas na hora de fazer login;

Eles permitem que você não precise memorizar várias senhas e possa centralizar tudo em um único sistema. Oferecendo diversas vantagens:

  • Não precisar lembrar de todas as senhas de todos os sistemas. Tudo que você precisa fazer é lembrar da senha do próprio gerenciador, tornando tudo mais simples;
  • Geram senhas longas e fortes pra você, evitando que você fique muito tempo pensando em uma nova senha, use uma mesma senha em diversos sistemas ou então utilize senhas muito fracas;
  • Não precisa digitar a senha, a ferramenta já conta com um plugin de navegador que completa os formulários de login/registro, te ajudando tanto a gerar senhas fortes na hora do cadastro quanto a inserir as senhas na hora do login.

"Ah, mas as senhas geradas são difíceis de lembrar"

De fato. Isso é proposital, o objetivo não é lembrar de todas, o plugin já completa elas no sistema justamente por causa disso.

"Ah, mas o meu navegador já tem gerenciador de senhas embutido"

Na maioria das vezes o gerenciador de senhas do teu browser é mais fraco e menos prático de utilizar que gerenciadores de senhas dedicados.

Mas de fato, o gerenciador de senhas do navegador é melhor que nada.

"Se descobrirem a senha do meu gerenciador descobrem tudo"

Sim, isso é verdade. Isso reforça a necessidade de proteger uma única senha. Além disso, ainda nesse post eu vou oferecer uma possível solução para este mesmo problema.

Minha recomendação de gerenciador de senhas

Hoje em dia existem diversas opções de gerenciadores de senhas disponíveis para você explorar, desde os gratuitos até os pagos.

O que eu utilizo (e que também é minha recomendação pessoal para você) é o BitWarden.

Eu recomendo BitWarden porque:

  • É um gerenciador grátis e open-source, com o seu plano free incluindo todas as funcionalidades que você vai precisar de fato;
  • Oferece um serviço multi-plataforma que permite acessar o gerenciador de senhas de qualquer dispositivo;
  • Possui uma versão self-hosted para usuários que preferem manter suas senhas no próprio computador, sem nenhum servidor de terceiros;

Como EU utilizo o BitWarden para minha segurança

Além da própria ferramenta é interessante utilizar algumas outras estratégias para garantir que a ferramenta está sendo utilizada da maneira correta.

O que eu faço, hoje em dia é:

1. Utilize uma senha forte no BitWarden

Considerando que ao utilizar um gerenciador de senhas você só precisa se preocupar em lembrar e manter segura uma única senha, é óbvio que precisamos garantir que nossa senha do BitWarden seja forte.

Certifique-se de utilizar uma pass-phrase ao invés de uma pass-word.

Isso é: utilize uma frase longa que só você saiba ao invés de alguma palavra.

Memorizar uma frase não é algo muito difícil. Talvez seja mais fácil memorizar uma frase comum do que uma senha com caracteres especiais e números.

A quantidade total de senhas que algoritmos de força bruta testam é de charset ^ password_size (charset elevado a password_size).

charset é o conjunto de caracteres que são utilizados para testar a sua senha. Em um charset de digitos numéricos, o algoritmo só vai conseguir adivinhr senhas numéricas mas também vai rodar muito mais rápido.

Quando observamos a fórmula charset ^ password_size fica fácil de entender que a caracteristica mais importante de uma senha é o seu comprimento.

Cada caractere extra na sua senha aumenta exponencialmente a dificuldade de quebrar a sua senha por força bruta.

2. Troque todas as suas senhas por senhas seguras geradas automaticamente

Qualquer senha que você possa pensar vai ser dezenas de milhares de vezes mais fraca que as senhas que um gerenciador de senhas te entrega.

Minha sugestão é que você pegue todas as suas senhas que ainda não foram geradas automaticamente e troque elas por senhas geradas.

O gerador de senhas pode de entregar senhas gigantescas e completamente aleatórias, o que garante segurança contra algoritmos de força bruta.

3. Gere uma senha diferente para cada site

Você certamente já escutou isso antes e provavelmente já faz isso.

Utilizar a mesma senha para todos os serviços que você se cadastra e ter essa senha descoberta é o pior erro que você poderia cometer.

As vezes o atacante descobre tua senha de um site tosco (como algum blog ou jogo) e descobre que pode utilizar a mesma senha para acessar seu banco, conta do gov.br, Google e diversos outros serviços.

Além disso: não confie sempre no OAuth.

Eu sempre fui muito acostumado a utilizar o OAuth do Google para fazer login sempre que possível, pela praticidade.

Os sites que permitem OAuth quase sempre possuem um sistema de login tradicional também. Garanta que você tenha uma senha no próprio sistema e não apenas utilize OAuth.

Aliás, o OAuth oferece um grande risco considerando que se sua senha Google vazar o hacker entra em qualquer sistema via OAuth.

Garanta, além do gerenciador de senhas, que a sua conta Google tenha 2FA, bloqueio por geolocalização e biometria habilitados por segurança.

4. Gere senhas com o maior tamanho possível

Como conversado antes, o tamanho aumenta exponencialmente a segurança da senha. Por isso sempre use a maior quantidade possível de caracteres.

O tamanho máximo permitido pelos sites geralmente é de 72, 100 ou 128 caracteres.

Lembre-se que você não vai decorar a senha. Ao invés disso, você vai deixar o plugin auto-completar ela.

5. Utilize prefixos em conjunto com a senha gerada

O gerenciador de senhas por si só é bastante seguro. Mas como conversmos anteriormente, há o risco de alguém descobrir a senha do próprio gerenciador de senhas e ler todas as suas senhas.

A maneira simples de resolver isso é:

Concatenar um prefixo ou sufixo na senha gerada.

Essa foi uma dica que o Gabriel Pato deu em uma entrevista no Flow Podcast há alguns anos atrás.

E de fato, faz bastante sentido.

Você gera uma senha automaticamente, como por exemplo: Adfd9fsdfs99d&@*($#(adfa*as31)aspaaAO001(814jAldfdMNka e o que vai estar salvo no gerenciador é essa senha aleatória.

Então quando você for fazer registro/login você deixa o auto-complete dessa senha acontecer, mas coloca um prefixo no começo da senha. Algo como: foobar#2-.

Dessa forma, a senha que você realmente vai usar pra fazer login é: foobar#2-Adfd9fsdfs99d&@*($#(adfa*as31)aspaaAO001(814jAldfdMNka. O gerenciador de senhas só te dá a parte aleatória disso.

Dessa forma, mesmo que alguém invada seu gerenciador de senhas e tenha acesso a todas elas, você ainda garante que ele não vá conseguir invadir sua conta instantaneamente.

Carregando publicação patrocinada...
4

Eu faço uso do Bitwarden já faz mais de 2 anos e digo que é o melhor gerenciador de senhas que já usei até hoje. O que me motivou a usar um gerenciador de senhas foi quando percebi que não poderia mais confiar no meu cérebro para lembrar de todos os meus padrões de senhas que costumo usar.
Tem só mais um motivo que eu adicionaria em relação ao porque escolher o Bitwarden em relação aos outros: é um dos únicos que não houve um vazamento dos cofres da nuvem até o momento. Se observar todos os problemas que o Bitwarden teve até hoje, foram em ferramentas que acessam o cofre, como a extensão para navegadores e o CLI de linha de comando.

Sei que não é o assunto da publicação, mas fica também a recomendação de segurança de usar passkey sempre que possível. O Bitwarden inclusive tem suporte a passkeys.

3

Depois que manterem as senhas seguras, também é essencial ativar a autenticação de dois fatores para ter uma camada a mais de proteção. Recomendo o método de TOTP inicialmente e no futuro é de se pensar em usar também pra uma passkey.

O TOTP (Time-Based One-Time Password ou Senha de Uso Único Baseada em Tempo) é um algoritmo de segurança usado na autenticação de dois fatores (2FA). Ele gera um código numérico temporário (geralmente de 6 dígitos) que muda automaticamente a cada 30 segundos

Minha recomendação para isso é o Ente Auth, tem versão Mobile, Web e Desktop e é open source. Além de ser totalmente grátis.

2

Uso o ProtonPass já faz algum tempo e não tenho do que reclamar. E ele ainda gera as senhas não memorizáveis que eu conseguia antes no Firefox ou outro serviço.
E como ele mantém tudo sincronizado, acesso praticamente qualquer site/serviço tanto no PC quanto no celular.

2

meu gerenciador de senha é minha própria cabeça. Eu nunca coloco a mesma senha, mesmo para coisas mais simples e todas são aleatórias. De alguma forma eu consigo me lembrar delas.

1
1

Para que complicar o que é simples? A verdadeira 'bala de prata' da segurança digital é a caderneta de papel. Zero conexão com a internet, zero servidores de terceiros na nuvem para serem invadidos, vulnerabilidade remota inexistente.

Confiar todas as chaves da sua vida a uma única ferramenta (que você não controla) é criar, por pura preguiça, o maior ponto central de falha possível!!!!

0

Olá, clacerda! Obrigado pelo comentário!

Vou comentar acerca de alguns pontos que achei interessantes no teu comentário e dizer o que eu penso exatamente:

Para que complicar o que é simples?

Esse é um pensamento muito interessante.

Por vezes as pessoas tem receio em utilizar por "parecer complicado", eu também pensava isso (não estou dizendo que é o seu caso).

A realidade é que são ferramentas extremamente simples e convenientes de usar além de te trazer ótimos benefícios de segurança.

Na verdade, acredito que pelo fato de você não precisar pensar em uma senha forte da própria cabeça, usa-las se torna até mais simples do que escrever todas as senhas manualmente.

A verdadeira 'bala de prata' da segurança digital é a caderneta de papel.

Bem, querendo ou não é um recurso de segurança e sua lógica realmente faz sentido.

Entretanto, anotar suas senhas em um meio físico, além de oferecer algumas limitações traz também alguns riscos e definitivamente não é uma abordagem para todo mundo.

Imagine que você é um estudante e precisa levar essa caderneta para todo lado no caso de precisar acessar alguma conta nos computadores da universidade (não é o ideal, mas por vezes é uma necessidade).

Não seria incomum em algum momento tu perder essa caderneta (esquecer em algum lugar) ou mesmo algum dos teus colegas pegar ela para ler.

Mesmo pessoas próximas podem estar mal-intencionadas.

Alguns outros pontos importantes para se atentar ao trabalhar com papel:

  • Fragilidade do objeto: papel queima, molha, suja e rasga fácil. Qualquer possível dano físico a ele te faz perder essas credenciais anotadas;
  • Falta de praticidade: no papel quem escreve, atualiza, lê e garante a segurança da senha é você mesmo, de forma totalmente manual;
  • Possibilidade de furto;
  • Necessidade de portabilidade: ter que carregar o caderno para um lado e para o outro se quiser acessar algo fora de casa (dependendo da pessoa) e correr o risco de não conseguir acessar se não estiver em casa;
  • O papel te induz a escrever senhas fracas por não ter nenhuma restrição (claro que se você souber o que está fazendo está tudo certo);

Papel não tem criptografia.

Mas claro, tudo depende do teu perfil. As vezes o que serve para um não serve para outros.

Eu friso os gerenciadores de senhas para devs, em particular, porque muitas vezes ao por sua própria conta em risco o dev acaba fudendo os outros por tabela kkkk.

[...] zero servidores na nuvem para serem invadidos [...]

Aqui você toca em um ponto muito importante, e que de fato pode ser considerada uma possível ameaça quando estamos falando de gerenciadores de senhas: a possibilidade de um vazamento em massa de todas as suas contas.

Mas aí tenho dois pontos importantes que garantem uma maior segurança em relação a isso:

  1. O BitWarden até hoje nunca teve vazamentos em massa registrados, o que por si só reforça a robustez e confiabilidade do sistema.

  2. O BitWarden é completamente open-source além de oferecer recursos para self-hosting no seu app desktop. Se você quiser evitar um servidor em núvem com todas as suas senhas, você pode apenas rodar o BitWarden na tua LAN de casa mesmo.

Era isso. Novamente, obrigado pelo comentário e tenha um bom dia!