As palavras-passe têm sido usadas há milhares de anos como meio de nos identificarmos aos outros e em tempos mais recentes, aos computadores. É um conceito simples – uma peça de informação partilhada, mantida em segredo entre indivíduos e usada para “provar” a identidade.
Palavras-passe num contexto de TI surgiram nos anos 60 com computadores mainframe – grandes computadores operados centralmente com “terminais” remotos para acesso do usuário. São agora utilizadas para tudo, desde o PIN que introduzimos num ATM, até ao login nos nossos computadores e vários websites.
Mas porque é que precisamos de “provar” a nossa identidade aos sistemas a que acedemos? E por que as senhas são tão difíceis de acertar?
O que faz uma boa senha?
até relativamente recentemente, uma boa senha pode ter sido uma palavra ou frase de apenas seis a oito caracteres. Mas agora temos diretrizes de comprimento mínimo. Isto é devido a “entropia”.
Quando se fala em senhas, entropia é a medida da previsibilidade. A matemática por trás disso não é complexa, mas vamos examiná-la com uma medida ainda mais simples: o número de senhas possíveis, às vezes chamado de “espaço de senha”.
Se uma senha de um caractere contém apenas uma letra minúscula, existem apenas 26 senhas possíveis (“a” a “z”). Ao incluir letras maiúsculas, aumentamos nosso espaço de senhas para 52 senhas em potencial.
O espaço para senhas continua a expandir à medida que o comprimento é aumentado e outros tipos de caracteres são adicionados.
Olhando para as figuras acima, é fácil entender porque somos encorajados a usar senhas longas com letras maiúsculas e minúsculas, números e símbolos. Quanto mais complexa for a senha, mais tentativas são necessárias para adivinhá-la.
No entanto, o problema de depender da complexidade da senha é que os computadores são altamente eficientes em repetir tarefas – incluindo adivinhar senhas.
No ano passado, foi estabelecido um recorde para um computador tentando gerar todas as senhas concebíveis. Ele atingiu uma taxa mais rápida que 100.000.000.000 de tentativas por segundo.
Alavancando esse poder computacional, os criminosos cibernéticos podem invadir sistemas bombardeando-os com o maior número possível de combinações de senhas, em um processo chamado de ataques por força bruta.
E com a tecnologia baseada em nuvem, adivinhar uma senha de oito caracteres pode ser alcançada em apenas 12 minutos e custar apenas US$25,
Também, porque as senhas são quase sempre usadas para dar acesso a dados sensíveis ou sistemas importantes, isso motiva os cibercriminosos a procurá-los ativamente. Também impulsiona um mercado lucrativo de venda de senhas online, algumas das quais vêm com endereços de e-mail e/ou nomes de usuário.
Como são armazenadas as senhas em websites?
Senhas de websites são geralmente armazenadas de forma protegida, usando um algoritmo matemático chamado hashing. Uma senha hashed é irreconhecível e não pode ser transformada novamente na senha (um processo irreversível).
Quando você tenta fazer o login, a senha que você digita é hashed usando o mesmo processo e comparada com a versão armazenada no site. Este processo é repetido cada vez que você faz login.
Por exemplo, a senha “Pa$$w0rd” recebe o valor “02726d40f378e716981c4321d60ba3a325ed6a4c” quando calculada usando o algoritmo de hashing SHA1. Tente você mesmo.
Quando confrontado com um arquivo cheio de senhas de hashed, um ataque de força bruta pode ser usado, tentando cada combinação de caracteres para um intervalo de comprimentos de senha. Isto se tornou uma prática tão comum que existem sites que listam senhas comuns junto com seu valor de hashed (calculado). Você pode simplesmente procurar pelo hash para revelar a senha correspondente.
O roubo e venda de listas de senhas é agora tão comum, um site dedicado – haveibeenpwned.com – está disponível para ajudar os usuários a verificar se suas contas estão “na natureza”. Isto cresceu para incluir mais de 10 bilhões de detalhes de contas.
Se o seu endereço de e-mail está listado neste site, você deve definitivamente mudar a senha detectada, bem como em quaisquer outros sites para os quais você usa as mesmas credenciais.
É mais complexidade a solução?
Você pensaria que com tantas violações de senha ocorrendo diariamente, teríamos melhorado nossas práticas de seleção de senhas. Infelizmente, a pesquisa anual de senhas SplashData do ano passado mostrou pouca mudança em cinco anos.
A medida que as capacidades computacionais aumentam, a solução parece ser de maior complexidade. Mas, como humanos, não somos capazes de (nem motivados a) lembrar senhas de alta complexidade.
Também já passamos do ponto em que usamos apenas dois ou três sistemas que precisam de uma senha. Agora é comum acessar inúmeros sites, sendo que cada um deles requer uma senha (muitas vezes de comprimento e complexidade variáveis). Uma pesquisa recente sugere que existem, em média, 70-80 senhas por pessoa.
A boa notícia é que existem ferramentas para resolver estes problemas. A maioria dos computadores agora suporta o armazenamento de senhas no sistema operacional ou no navegador da Web, geralmente com a opção de compartilhar informações armazenadas em vários dispositivos.
Exemplos incluem o Keychain iCloud da Apple e a capacidade de salvar senhas no Internet Explorer, Chrome e Firefox (embora menos confiável).
Gerenciadores de senhas como o KeePassXC podem ajudar os usuários a gerar senhas longas e complexas e armazená-las em um local seguro para quando elas forem necessárias.
Embora esse local ainda precise ser protegido (geralmente com uma “senha mestre” longa), usar um gerenciador de senhas permite que você tenha uma senha única e complexa para cada website que visitar.
Isso não impedirá que uma senha seja roubada de um website vulnerável. Mas se ela for roubada, você não terá que se preocupar em mudar a mesma senha em todos os seus outros sites.
É claro que também existem vulnerabilidades nestas soluções, mas talvez isso seja uma história para outro dia.