Eramoss.

Digital Security

Author
By Eramoss ·

Falando um pouco sobre sua segurança digital

Sem conhecimento em computação ou até mesmo trabalhando na área, você usa a mesma senha para tudo? Anota senhas em um arquivo de texto em um Google Drive da vida? Baixa instalador de Photoshop pirata? Recebe código de autenticação de dois fatores (Two Factor Authentication) via SMS? Não tenho boas notícias para você.

Se você já é programador, já deveria saber: como de fato as aplicações guardam e gerenciam informações sigilosas como senhas? Qual é a diferença entre um SHA-256 e um Bcrypt? Quais aplicativos você deveria usar para gerenciar essas coisas? Vamos entender um pouco melhor o que é de verdade a segurança digital pessoal e como funciona um pouco disso por trás. Este texto vai apresentar uma introdução para quem já tem informação técnica, mas também serve muito bem para quem quer apenas aprender a se proteger na internet.

Nota: É impossível estar sempre 100% protegido.

Como se guardam senhas em bancos de dados? Vendo além da Matrix

Para entender como os ataques funcionam e como se proteger deles, precisamos entender qual é a fraqueza. Resumindo bastante, uma aplicação JAMAIS guarda suas senhas em texto aberto no banco de dados (infelizmente, ainda existem alguns que sim). Em vez disso, guardamos algo como uma assinatura digital da sua senha, um número grande que identifica sua senha, mas que não permite recuperar sua senha a partir desse número. Se você tem apenas esse número, não tem como obter o texto que o gerou inicialmente. Parece uma boa técnica, certo? Mas só usar esse identificador não é o suficiente (veremos como quebrá-lo em breve). Para programadores, existem diferenças entre usar um simples SHA-256 (algoritmo do tal identificador) e o Bcrypt, que é um gerador de chave baseado na sua senha. Sem entrar em muitos detalhes (se quiser estudar mais, procure a documentação de Bcrypt e Argon2), um gerador de chave baseado em senha tem duas características que o fazem ser bom para isso:

  1. Mesmo que as chaves sejam baseadas na mesma senha, elas são diferentes, dificultando a vida de um possível hacker. Mesmo que ele descubra uma senha, ele não sabe que existem outras iguais no banco de dados, diferente de um identificador.
  2. O algoritmo é desenhado para ser demorado de calcular, então um hacker tentando quebrar sua senha não teria tempo computacional suficiente para fazer isso.

Então, por que senhas fortes e diferentes?

Se o que é guardado no banco de dados não é nossa senha de fato, não precisamos nos preocupar em criar senhas fortes e diferentes para cada conta, certo? Errado.
Ainda assim, existem maneiras de quebrá-las com várias técnicas, uma delas é criar uma tabela com senhas possíveis, com o Bcrypt do exemplo já pré-calculado. E todas essas técnicas incluem senhas que já são conhecidas, como trocar "cachorro" por "c4ch0rr012&". Se sua senha é derivada de uma palavra ou data, é muito provável que já esteja em uma dessas tabelas.

Por isso, a melhor recomendação para criar senhas é sempre ter o maior número de caracteres possíveis, combinações diferentes, números, símbolos especiais, tudo que o campo de senha permitir, e principalmente, SENHAS ALEATÓRIAS. Assim, caso ocorra um roubo ou um site mal feito que guarde suas senhas de forma inadequada, você não expõe todas as suas outras contas.

Gerenciadores de senha e passphrase

"Mas como decorar a senha se ela é aleatória?" Este é o ponto, não deve ser possível decorar. Para isso, temos coisas como geradores de senhas. Existem os mais conhecidos, como os integrados diretamente no navegador, como Google Chrome ou Firefox, que são melhores que nada. Se você usava senhas iguais ou minimamente diferentes, eles já serão de grande ajuda. Mas também temos coisas como Bitwarden e outros aplicativos que fazem esse trabalho para você. Eles geram uma senha completamente aleatória e a guardam para você. O problema disso é que suas senhas estão guardadas em algum lugar. Então, para proteger esses gerenciadores, infelizmente, temos que decorar uma senha. Mas não uma password que seria fácil de quebrar, já que esta guarda todas as suas outras senhas; essa senha tem que ser uma passphrase, longa e difícil de adivinhar, com no mínimo uns 40 caracteres. Mas é a única que precisamos lembrar.

Autenticação em dois fatores (Two Factor Authentication - 2FA)

Esses aplicativos também vêm com sistemas de autenticação em dois fatores, que é aquele código que recebemos para verificar se somos nós mesmos mexendo no dispositivo. Em segurança, falamos de 3 fatores:

  1. Algo que você sabe (sua senha)
  2. Algo que você tem (um celular, geralmente, para enviar um código)
  3. Algo que você é (biometria)

O segundo fator é interessante; você provavelmente já recebeu um código de 2FA para acessar uma conta. Mas o problema é: e se você perder seu celular? E se alguém roubar seu número de telefone? Isso é extremamente fácil de ocorrer, e na pior das hipóteses, você pode acabar perdendo muitas contas. Por isso, é recomendado usar esses gerenciadores, pois, como eles também possuem sistemas de 2FA, ficar sem seu celular não é mais um problema. Se quiser entender um pouco mais sobre como esses algoritmos funcionam, todos os links estão no final.

Extra: Ransomware e encriptação de drive

Um extra para quem se preocupa um pouco mais é a encriptação de drives (HD). Se você tem dados importantes no seu computador, isso é essencial. Aquela senha que você tem no seu Windows não serve de muito quando falamos da segurança dos seus arquivos; é muito simples vasculhar o HD sem iniciar o Windows. No Mac, então, é ainda pior; pode-se simplesmente ligá-lo em modo externo e não iniciar o macOS, logo, não precisamos da senha para vasculhar o HD.

Por isso, existem coisas como VeraCrypt, LUKS e outros algoritmos para criptografar seu HD (não tente fazer sem estudar antes, é muito fácil estragar tudo). Mas essas tecnologias são uma faca de dois gumes, pois o malware mais conhecido hoje é o ransomware (nome bonitinho para criptografar seus arquivos), só que agora quem está com a chave de descriptografia não é você, e sim o hacker. Se você baixa coisas como instaladores piratas, sai clicando em PDFs no e-mail sem se preocupar muito, este é um problema sério. No momento em que se baixa um ransomware, o vírus começa a criptografar seus arquivos aos poucos. Às vezes, demora 1 mês, e depois tenta extorquir você pedindo uma certa quantia em Bitcoin para lhe enviar a chave (eles nunca enviam). Mas como se proteger disso? Duas coisas principais:

  1. Não baixe .exe da internet de forma desconhecida e não clique em links ou arquivos enviados via e-mail de spam;
  2. Faça backup constantemente do seu drive.

Se você pegar o vírus, já não há mais o que fazer, apenas recupere seu backup e torça para ele não estar infectado também.