Este site é traduzido automaticamente para vários idiomas usando software desenvolvido por Kohei Koyanagi. Consulte o original em inglês para maior precisão.

Como Protegemos Suas Senhas

A Splync Nunca Armazena Sua Senha em Texto Plano

Nos artigos anteriores, exploramos como o HTTPS protege o caminho entre seu app e nosso servidor, e como o SSH protege o próprio servidor. Agora é hora de olhar dentro do servidor — como a Splync mantém sua senha segura quando chega lá. Se alguém obtivesse sua senha, essa pessoa poderia acessar sua conta e informações sensíveis, incluindo registros de despesas. Por isso, a Splync nunca armazena senhas em texto plano. Em vez disso, cada senha é transformada em uma versão criptografada antes de ser salva no banco de dados. O que isso significa exatamente? Criptografia é uma conversão de mão única — uma vez transformada, não pode ser revertida para a senha original. Este método é padrão na internet, de bancos a grandes serviços de nuvem, mas muitos não sabem como realmente funciona. Vamos explorá-lo com um exemplo simples do dia a dia.

Noções Básicas de Criptografia: Um Liquidificador que Sempre Mistura da Mesma Forma

Para entender como a proteção de senha funciona, vamos começar com um método simples de criptografia chamado SHA-256. Pense nele como um liquidificador que sempre mistura os ingredientes da mesma forma. Se você colocar a mesma senha no liquidificador e apertar o botão, sempre obterá o mesmo smoothie único — uma mistura embaralhada de letras e números. A ideia principal é que o processo não pode ser revertido. Assim como não dá para pegar um smoothie e separá-lo de volta em banana e leite originais, não é possível pegar o hash embaralhado e recuperar a senha original.

Exemplo de SHA-256: Como Verificar Senhas sem Conhecê-las

SHA-256 é um dos algoritmos de criptografia mais comuns. Por exemplo, ele transforma a senha "splync1234" em “9cdafa20d069ecfb202e5f0bc937c73071cc6cd85634cc2d95d30ddcf2a71d41”. Em milissegundos, toda vez que um usuário existente insere uma senha de login, o SHA-256 produz sempre a mesma senha criptografada. O app simplesmente criptografa a senha inserida novamente e verifica se coincide com o hash armazenado. Em nenhum momento o sistema conhece a senha original do usuário. Mas e se um invasor pré-calcular uma lista de senhas comuns e seus hashes (conhecido como ataque de tabela arco-íris) para adivinhar rapidamente as senhas dos usuários? Essa preocupação é real. Por isso, sistemas modernos, incluindo a Splync, não dependem apenas do SHA-256.

A Splync Criptografa Senhas com bcrypt — Mais Forte que SHA-256

O bcrypt usa um salt aleatório por usuário e codifica esse salt (e o fator de custo) diretamente na string de hash armazenada. Pense no bcrypt como um liquidificador com um tempero secreto (salt) e um motor lento (fator de trabalho) — ele torna cada mistura única e mais difícil de copiar. Porque o salt tem 128 bits (≈3×10³⁸ possibilidades), a mesma senha pode corresponder a um número astronomicamente grande de hashes armazenados diferentes. Isso torna as tabelas arco-íris pré-calculadas inúteis em grande escala. Durante o login, a Splync lê o salt e o custo da string bcrypt salva, executa novamente o bcrypt na senha inserida com esses parâmetros e compara o resultado com o hash armazenado. Se eles coincidirem, a senha está correta — mas porque o bcrypt é intencionalmente lento e os salts são únicos, ataques de força bruta se tornam muito mais caros para um invasor.

Um Exemplo Fácil com bcrypt

Vamos ver como isso funciona na prática. Se você criptografar a senha "splync1234" com bcrypt (usando custo 12), pode obter uma string assim: `$2b$12$gBeouKYdue9uvvuV0HtGgeVPymnrojMqP/wcRw28HFlGEGIQbyw7O`. Nesta string bcrypt, `$2b` marca a versão do algoritmo, `$12` mostra o fator de custo (quantas vezes a senha é processada), `gBeouKYdue9uvvuV0HtGgeV` é o salt aleatório único, e `PymnrojMqP/wcRw28HFlGEGIQbyw7O` é a senha final criptografada. Como o próprio hash contém o salt e o custo, a Splync pode reproduzir o mesmo processo de criptografia para verificação extraindo esses valores da string armazenada e comparando o resultado. Por outro lado, se um invasor não conhece o salt e o custo, não pode construir uma única tabela arco-íris que funcione para todos os usuários.

Senhas Criptografadas Oferecem Dupla Proteção

Essa abordagem tem outra vantagem importante. Como a Splync nunca armazena senhas em texto plano, mesmo que o banco de dados seja vazado ou roubado, os usuários não estão imediatamente em risco. Invasores não podem fazer login diretamente com os dados roubados, pois o que têm são apenas strings embaralhadas. Esse design oferece aos usuários uma camada extra de proteção, além das salvaguardas já existentes em torno do servidor. A criptografia de senhas não é exclusiva da Splync; é o padrão na indústria de tecnologia, usada por gigantes como Google, Apple e Amazon. A Splync foi construída de forma muito segura, e continuará ficando mais segura à medida que melhoramos a segurança com recursos como verificação de e-mail, proteção contra força bruta e monitoramento contínuo.