image

Accede a bootcamps ilimitados y a más de 650 cursos

50
%OFF
Article image
João Carvalho
João Carvalho03/05/2025 08:06
Compartir

Como Criar uma Palavra-passe Forte e Medir a sua Segurança com Matemática Simples

    Criar uma palavra-passe pode parecer um grande desafio, principalmente quando estamos motivados a construir a palavra-passe mais segura possível. Porém, muitos de nós enfrentamos uma dura realidade:

    Não sabemos como estimar a força de uma palavra-passe e, consequentemente, não somos capazes de formar palavras-passe seguras.

    Se essa é a sua realidade, acompanhe-me, pois vou ensinar-lhe como criar uma palavra-passe forte e estimar a sua força usando conceitos matemáticos, como o Princípio Fundamental da Contagem, Probabilidade e Entropia (medida da aleatoriedade, em bits). Por favor, não se assuste com o nome das ferramentas matemáticas mencionadas — são mais simples do que parecem. Vamos lá!

    Princípio Fundamental da Contagem

    O Princípio Fundamental da Contagem, também chamado de Princípio Multiplicativo, nos permite contar o número total de possibilidades (ou combinações) a partir da quantidade de opções de cada etapa de um processo.

    Por exemplo, se você usa PIN (número de identificação pessoal) para desbloquear o seu smartphone ou computador, já deve ter percebido que, na maioria das vezes, ele é formado por 4 campos (ou posições para dígitos), cada um com 10 opções possíveis (os dígitos de 0 a 9). Agora, aplicando o princípio fundamental da contagem, teremos:

    10 × 10 × 10 × 10 = 10000 combinações possíveis.

    Agora que conhecemos o número total de combinações possíveis para o tipo de autenticação conhecido como PIN, podemos usar um pouquinho de probabilidade para sabermos quais são as chances de uma pessoa digitar o PIN correcto, por meio de um mero palpite, em uma única tentativa. Mas antes, vamos abordar algumas noções de probabilidade.

    Probabilidade

    A probabilidade é um conceito matemático que permite determinar o quanto é provável que um evento ocorra, ou seja, quais as chances de um evento ocorrer. Ele nos permite listar um conjunto de possibilidades, chamado de espaço amostral (definido aqui como espaço de busca), do qual podemos calcular as chances de uma delas ocorrer. Podemos, por exemplo, determinar a chance de obtermos cara na face superior de uma moeda após o seu lançamento. Sabendo que em uma moeda temos duas faces, então o nosso espaço amostral possui duas possibilidades: cara e coroa.

    Matematicamente representamos como S = (cara, coroa). Dentre as duas faces, apenas uma estará no topo após o lançamento, portanto a chance de obtermos cara na face superior da moeda é de:

    Probabilidade = (1 / 2) × 100% = 50%.

    Agora já podemos aplicar a probabilidade ao contexto de palavras-passe, ou mais especificamente, aos métodos de autenticação.

    Para determinar a probabilidade de alguém adivinhar o seu PIN correctamente em uma única tentativa, basta considerar o facto de que só podemos usar um PIN por vez e, consequentemente, uma entre 10000 combinações de dígitos possíveis.

    Portanto:

    Probabilidade = (1 / 10000) * 100% = 0,01%

    É... Se for só por mero palpite é extremamente improvável que alguém vá acertar o PIN do seu smartphone (se acertar, então ele é um... 👹), mas lembre-se, isso não é impossível.

    Note que este cálculo representa um ataque por força bruta em uma única tentativa sem bloqueios, o que não reflete todos os cenários reais (muitos dispositivos bloqueiam após 3 a 5 tentativas).

    Agora, tratando-se, por exemplo, da sua palavra-passe do Facebook, considere os seguintes factores, pois eles têm um grande impacto na força da sua palavra-chave.

    Factores a Considerar Durante o Processo de Construção de uma Palavra-passe

    1. Número de Caracteres (ou posições): Quanto maior a quantidade de caracteres, maior será a força da palavra-passe. Hehehe... Também é mais provável que você vá esquecer-se dela com facilidade, por isso, tenha cuidado ao definir o número de caracteres ou dígitos da sua palavra-passe.
    2. Combinação de Letras Maiúsculas e Minúsculas: Aumenta significativamente o espaço de busca, ou seja, o total de combinações possíveis.
    3. Caracteres Especiais: Os símbolos como @, #, $, %, etc. aumentam o grau de entropia (ou aleatoriedade) tornando a palavra-passe resistente contra sistemas automáticos de descoberta de palavras-passe.

    A entropia mede o quanto uma palavra-passe é imprevisível; quanto maior ela for, mais difícil será adivinhá-la.

    1. Números: A inclusão estratégica de números reforça ainda mais a segurança.
    2. Sinais de Pontuação: Também aumentam o grau de aleatoriedade (ou entropia).

    Cada um dos factores anteriormente destacados amplia o conjunto de caracteres que podem ser usados em cada posição da palavra-passe.

    Agora, vamos calcular as chances de uma pessoa digitar correctamente a sua palavra-passe do Facebook em uma única tentativa, sendo que a palavra-passe possui as seguintes características:

    • Comprimento (ou número de posições): 12
    • Letras maiúsculas: 26 possibilidades;
    • Letras minúsculas: 26 possibilidades;
    • Números: 10 possibilidades;
    • Caracteres especiais e sinais de pontuação (como !@#$%^&*()-_=+[]{}): Cerca de 32, dependendo do teclado.

    Logo, temos aproximadamente:

    26 + 26 + 10 + 32 = 94 possibilidades de caracteres para cada posição da palavra-passe.

    94 × 94 × 94 × 94 × 94 × 94 × 94 × 94 × 94 × 94 × 94 × 94 = 94^12. 😲

    Esse número é gigantesco! Para ajudá-lo a perceber isso, vamos escrevê-lo usando a base 10 e listar três factos interessantes sobre ele:

    94^12 ~ 4,7 × 10^23 combinações possíveis. 🫨

    • 4,7 × 10^23 é muito, muito mais do que o número de grãos de areia no planeta.
    • 4,7 × 10^23 é aproximadamente a quantidade de estrelas estimadas no universo inteiro.
    • Se esperasses 4,7 × 10^23 segundos, terias de esperar mais de 1,08 milhões de vezes a idade actual do universo (a idade actual do universo é de 13,8 mil milhões de anos).

    Assim, a chance de alguém adivinhar correctamente a sua palavra-passe em uma única tentativa é de:

    Probabilidade = (1 / (4,7 × 10 ^ 23)) × 100%= 0,000000000000000000021%,

    o que é praticamente zero.

    Por fim, vamos, de facto, estimar a força teórica de uma palavra-passe usando a entropia aplicada aos bits. Primeiro, vamos calcular a força de uma palavra-passe previsível (ou não aleatória) e a seguir a força de uma palavra-passe imprevisível (ou aleatória). Vamos lá!

    Como Estimar a Força de uma Palavra-passe Específica

    Palavra-passe Previsível: "SenhaForte2024!".

    Características:

    • 14 caracteres.
    • Mistura letras maiúsculas, minúsculas, números e símbolos.

    Padrões reconhecíveis:

    • Palavra em português ("SenhaForte").
    • Ano ("2024").
    • Símbolo final ("!").

    Cálculo da Entropia:

    Assumindo-se que a parte inicial ("SenhaForte") é uma frase comum ("Senha" + "Forte") e considerando-se que há 100000 palavras comuns e e 1000 adjectivos, teremos 10000 × 1000 = 100000000 combinações possíveis.

    Na segunda parte da palavra-passe, podemos perceber facilmente que ela se trata de ano. Podemos assumir que há aproximadamente 300 anos plausíveis (1850 a 2150).

    Na terceira e última parte, temos um símbolo comum (!) e podemos assumir que há aproximadamente 5 símbolos frequentes, como !, @, #, $ e porcentagem.

    Para realizar o cálculo aproximado da entropia, podemos usar a seguinte fórmula:

    log2(N^L)

    onde, N é a quantidade de caracteres possíveis em cada posição da palavra-passe e L é o número de posições da palavra-passe.

    Nota: A entropia é calculada usando logaritmos na base 2, que medem a quantidade de informação em bits. Porém, o que estamos prestes a usar é mais próximo da entropia semântica, que leva em conta padrões previsíveis, do que de entropia de Shannon que é baseada em aleatoriedade pura.

    É importante notar que estaremos usandos a entropia para estimar bits de segurança (log2(N^L)), mas para obtermos o seu logaritmando, N^L, usaremos o princípio multiplicativo para podermos determinar o total de combinações possíveis, ou seja, o espaço de busca.

    Logo, a entropia total pode ser calculada da seguinte maneira:

    Entropia = log2(10^8 × 300 × 5) ~ 37,13 bits

    Nota: Esse valor é uma estimativa grosseira, pois não é baseada no tamanho total do alfabeto, mas sim nas escolhas limitadas de palavras e padrões. Assim como foi anteriormente referido, estamos usando um modelo simplificado baseado em padrões previsíveis para este cálculo e não aleatoriedade pura.

    Agora, vamos calcular o tempo que um computador, cujo poder de processamento é de mil milhões de cálculos por segundo, levaria para descobrir essa palavra-passe. Para fazer isso, podemos usar a seguinte fórmula:

    Tempo médio = (2^entropia) / (2 × taxa de tentativas por segundo)

    Então, a máquina levará:

    tempo médio = (2 ^ (37,13) / 2 × (10 ^ 9)) ~ 75,2 segundos, ou seja, 75,2 / 60 ~ 1,3 minutos.

    Considerando que, em média, a palavra-passe correcta será encontrada na metade do espaço de busca, o tempo médio seria metade desse valor.

    Assim fica claro que essa não é uma boa palavra-passe. Vamos à palavra-passe com uma entropia significativamente maior.

    Palavra-passe Imprevisível "g$7qM !2pLz9R"

    Características:

    • 12 caracteres.
    • Todos os caracteres foram escolhidos de modo aleatório.

    Cálculo da Entropia:

    • Conjunto de 94 símbolos (letras, números, caracteres especiais).

    Entropia = log2(94^12) ~ 78,66 bits.

    Vale ressaltar que uma palavra-passe é considerada forte quando atinge pelo menos 40 bits de entropia (para uso geral); para máxima segurança, recomenda-se 80 bits ou mais.

    tempo = (2 ^ (78,66) / (2 × (10 ^ 9))) ~ 2,4 × 10^(14) segundos.

    Ou seja, o computador que levaria apenas 1,3 minutos para calcular a palavra-passe anterior, levaria 2.4 × (10^14) / (60 × 60 × 24 × 365) ~ 7,61 milhões de anos. Observando que a diferença de tempo para a descoberta das duas palavras-passe é de mais de 7 milhões de anos e meio, fica fácil perceber a diferença de imprevisibilidade entre as duas palavras-passe.

    Essas estimativas assumem um cenário idealizado de força bruta contínua, o que nem sempre se aplica a todos os sistemas, especialmente os que bloqueiam tentativas múltiplas. Então, recomendo fortemente que antes de estimar a força da sua palavra-passe leve em consideração as políticas de segurança da plataforma em que se deseja criar uma palavra-passe, isto é, caso você decida fazer isso manualmente.

    Conclusão e Recomendações de Segurança

    Utilizando o princípio fundamental da contagem, conseguimos facilmente entender que a força de uma senha depende principalmente da quantidade de caracteres e do tamanho do conjunto de símbolos disponíveis e que por meio da entropia em bits podemos ter uma noção do quão segura ela é ou quanto tempo um computador, cujo poder de cálculo é conhecido, levaria para descobrir a palavra-passe correcta.

    Portanto, quanto maior for a palavra-passe e mais variado o conjunto de caracteres utilizados, mais segura ela será. Por isso, é recomendável evitar o uso de senhas previsíveis, como por exemplo, Senha123!, Palavra_passeIzE%, a combinação do nome e idade do seu animal de estimação, etc. Importa destacar que a força teórica de uma palavra-passe não leva em conta factores como vazamentos de dados, phishing ou ataques de dicionário. Então, recomendo que, sempre que você terminar de compor a sua palavra-passe use websites, como o Have I Been Pwned [https://haveibeenpwned.com] para descobrir se a mesma palavra-passe está presente em algum vazamento de dados. Ao fazer isso, tente usar uma palavra-passe próxima a sua, mas nunca insira a sua palavra-passe real.

    Quando estimamos a força da palavra-passe consideramos todas as combinações possíveis, mas você deve evitar ao máximo fazer uso de palavras-passe previsíveis, pois os sistemas automáticos de descoberta de palavras-passe usam dicionários, heurísticas e outros recursos que permitem descobrir a lógica por trás da composição de uma palavra-passe.

    No intuito de evitar que, ao longo do tempo, você esqueça as palavras-passe que criou por serem muito imprevisíveis, recomendo fortemente que você use algum Gestor de Palavra-passe (do inglês “Password Manager”), como o Bitwarden ou o 1Password para gerar e armazenar palavras-passe complexas sem risco de esquecimento. Além disso, como reforço adicional é ideal fazer o uso da autenticação em dois factores (2FA).

    Desafio

    Agora que você conhece o princípio fundamental da contagem e o conceito mais básico de probabilidade e entropia em bits, lanço-lhe o desafio de calcular a força de uma palavra-passe com 8 posições e 94 possibilidades para cada. Crie uma palavra-passe, determine as chances de alguém digitar ela correctamente por mero palpite em uma única tentativa, calcule a sua entropia e tente descobrir quanto tempo um computador capaz de realizar dez bilhões de cálculos por segundo levaria para descobri-la. E aí? Consegue encarar esse desafio? 😏

    Se sim, deixe a sua resposta nos comentários!

    Compartir
    Recomendado para ti
    Microsoft 50 Anos - Prompts Inteligentes
    Microsoft 50 Anos - GitHub Copilot
    Microsoft 50 Anos - Computação em Nuvem com Azure
    Comentarios (0)