As palavras-passe são a nossa primeira linha de defesa contra o acesso interdito às nossas contas ou ficheiros online. Estas auxiliam na proteção dos dados contra ataques informáticos. Quanto mais complexa seja uma palavra-passe, mais protegidas estão as informações.
Neste artigo vamos perceber as diferentes formas de como os hackers conseguem descobrir as nossas palavras-passe e de que forma nos conseguimos proteger.
- Hackers e Palavras-passe
- Ataque de Força Bruta
- Ataque Dicionário
- Ataque de Tabela Arco-Íris
- Salt
- Validar se a Palavra-passe não foi comprometida
Hackers e Palavras-passe
Os hackers, normalmente, realizam ataques offline, onde primeiramente obtêm uma lista de hashes de palavras-passe comprometidas. Estes hashes podem ter vindo de bancos de dados de empresas ou a partir de sistemas.
Um Hash consiste num algoritmo matemático para a criptografia, na qual ocorre uma transformação dos dados (como um arquivo, palavra-passe ou informações) para um conjunto alfanumérico com comprimento fixo de caracteres.

(conversão de uma palavra-passe em hash)
Devido ao aumento de complexidade dos sistemas (como por exemplo o limite de logins), um ataque deste tipo à plataforma, tornou-se irrealizável. Por esta razão, os atacantes normalmente realizam ataques offline, onde primeiramente obtêm uma lista de hashes das palavras-passe (estas listas muitas vezes são devido a fugas de informação) e posteriormente prosseguem com o ataque contra a lista.
Só iremos falar destes métodos, pelo facto de serem os mais comuns e, caso os utilizadores sejam informados e seguirem as recomendações de segurança, podem evitar este tipo de ataques.
Ataque de Força Bruta
Um hacker pesquisa manualmente todo o cumprimento da palavra-passe até encontrar uma palavra-passe que corresponda com um dos hash obtidos.
Este ataque é normalmente automatizado, dado ao grande número de tentativas necessárias.
O ataque pode ser dificultado, criando uma password mais comprida e com alguma complexidade.

(exemplo de um ataque de força bruta)
Ataque Dicionário
O ataque dicionário surge como uma das variações do ataque anterior.
Um hacker utiliza um dicionário pré-compilado de palavras e frases conhecidas e faz hash de cada uma delas até que seja feito um match. Este tipo de ataque pode ser automatizado, forçando os hashes com uma lista de palavras personalizada e regras de manipulação.

(exemplo de lista de palavras de um ataque dicionário)
Estes dicionários são facilmente descarregados da internet e possuem as passwords mais comuns e/ ou que já foram comprometidas.
No entanto, estes dicionários também podem ser facilmente gerados pelo atacante, baseando-se em dados remetentes ao utilizador e/ou empresa a que o ataque se destina. Por esta razão, é importante evitar utilizar informação que remetem ao utilizador, ao site e à empresa.

( exemplo de um script, baseado com dados do utilizador/ empresa.)
Alguns padrões comuns que os utilizadores costumam usar para criarem as suas passwords, podem ser facilmente contornados com listas de regras genéricas e/ou personalizadas do lado do atacante, que pode simplificar o processo de descoberta da password.
Enumeramos alguns exemplos
Capitalizar o primeiro caracter:

Primeiro caracter minúsculo e o resto maiúsculo:

Inverter:

Espelhar:

Com Shift ativo:
Shift cada um dos caracteres direita/esquerda, do teclado:

l33t speak:

Adicionar o caracter 1 ao final de uma palavra:

Adicionar carateres especiais em posições aleatórias nas palavras:

Este tipo de ataque pode ser dificultado. Para isso as passwords não devem:
- Ser comuns;
- Conter informações referentes ao utilizador e ou ao site em questão;
- Ser passwords previamente descobertas em alguma fuga de dados;
- Utilizar uma regra para a criação da palavra.

(exemplo de um ataque dicionário)
Ataque de tabela Arco-Íris
A partir de uma abordagem calculada, um hacker calcula antecipadamente os hashes de todas as palavras-passe possíveis e guarda numa tabela de pesquisa, que mapeia os hashes para as palavras-passe correspondentes. Desta forma, a partir de uma lista de hashes partilhadas, apenas tem que se encontrar um hash que corresponda com a tabela, para se obter uma lista de palavras-passe possíveis.
Este tipo de ataque é muito similar ao ataque dicionário, a única diferença é que o ataque dicionário apresenta um poder computacional baixo, face ao necessário para calcular cada hash, em cada tentativa.
Já o ataque arco-íris, face ao anterior, necessita de mais espaço para armazenar todas as hash.

(Ataque arco-íris)

(exemplo de um ataque arco-íris)
Salt
Existem contramedidas que podem ser aplicadas (por parte do servidor) que dificulta estes tipos de ataques.

(exemplo de um senha convertida em hash com e sem salt)
Em criptografia, salt é um dado aleatório que é utilizado como uma entrada adicional no hashing da palavra-passe.
O salt é utilizado para proteger as palavras-passe armazenadas na base de dados.
Antigamente as palavras-passe eram armazenadas em texto simples, mas com o tempo, medidas adicionais foram desenvolvidas para proteger as credencias, e o salt é um desses métodos.
Esta técnica permite defender contra ataques dicionário ou o seu equivalente em hash, o ataque pré-computado de tabela arco-íris.

(exemplo de um ataque em hash com e sem salt)
Usar o mesmo salt para todas as senhas é perigoso porque uma tabela pré-computada que simplesmente contabiliza o salt, irá tornar o salt inútil. A geração de tabelas pré-computadas para bancos de dados com salts exclusivos para cada senha não é viável, devido ao custo computacional de fazê-lo. Mas se um salt comum for usado para todas as entradas, a criação de tal tabela (que representa o salt) torna-se um ataque viável e possivelmente bem-sucedido.

Se um salt for muito curto, um invasor poderá pré-calcular uma tabela de todos os salts possíveis anexados a cada possível palavra-passe. Usar um sal longo garante que tal tabela seja proibitivamente grande.

Validar se a sua Palavra-passe foi comprometida
Muitas vezes, as informações roubadas incluem palavras-passe dos utilizadores, o que significa que as suas contas podem estar em risco. Mas como pode saber se os seus dados estão incluídos nas informações roubadas?
Através do site “Have I Been Pwned”, poderá pesquisar pelas suas contas nas bases de dados de vários sites que foram alvo de roubo de informação, e cujas informações roubadas foram disponibilizadas publicamente.
Desta forma, ficará a saber se os seus dados foram comprometidos.
Alguns gestores de passwords também têm esta funcionalidade embutida.
À medida que o mundo digital se torna mais complexo e inseguro, os ataques informáticos vão evoluindo, a importância de uma palavra-passe complexa só aumenta. Como foi possível observar no artigo, as palavras-passe não são apenas uma sequência aleatória de números e letras, mas uma proteção. Desta forma, da próxima vez que tiver que criar uma nova palavra-passe, lembre-se da importância da mesma.