Senhas e credenciais são a primeira linha de defesa na segurança da informação. No entanto, práticas inadequadas de gerenciamento podem transformá-las em um elo fraco. Nesta aula, exploraremos como armazenar senhas de forma segura, definir políticas que equilibrem usabilidade e segurança, aplicar rotação de credenciais sem sobrecarregar usuários, e utilizar gerenciadores de senhas para facilitar a adoção de boas práticas.

Entender esses conceitos é essencial para qualquer profissional de TI, pois senhas comprometidas são a causa raiz de muitos incidentes de segurança. Vamos mergulhar em cada tópico com exemplos práticos e recomendações baseadas em padrões da indústria.

Armazenamento seguro

Armazenar senhas de forma segura é o pilar da proteção de credenciais. Nunca armazene senhas em texto claro; em vez disso, utilize funções hash criptográficas combinadas com salt. Hash é uma função unidirecional que transforma a senha em uma sequência de caracteres de tamanho fixo, e salt é um valor aleatório adicionado à senha antes do hash para evitar ataques de rainbow tables.

Funções modernas como bcrypt, scrypt ou Argon2 são recomendadas por serem intencionalmente lentas, dificultando ataques de força bruta. Além disso, utilize um salt único para cada senha e armazene-o junto com o hash. Exemplo de conceito (pseudocódigo):

salt = gerar_salt_aleatorio()
hash = bcrypt(senha + salt)
armazenar(hash, salt)

No banco de dados, a tabela de usuários deve conter colunas como username, hash e salt. Ao verificar a senha, recupere o salt, calcule o hash da entrada fornecida e compare com o hash armazenado. Evite usar funções como MD5 ou SHA-1 para senhas, pois são rápidas demais e vulneráveis.

Políticas

Políticas de senhas definem regras para criação, uso e gerenciamento de senhas. Uma boa política equilibra segurança e usabilidade. Requisitos comuns incluem: comprimento mínimo (pelo menos 12 caracteres), complexidade (maiúsculas, minúsculas, números e símbolos), e evitar palavras comuns ou informações pessoais.

No entanto, estudos mostram que políticas excessivamente complexas podem levar a práticas inseguras, como anotar senhas. Recomenda-se incentivar o uso de frases longas (passphrases) e permitir que usuários criem senhas mais longas sem exigir muitos tipos de caracteres. Exemplo de política:

- Comprimento mínimo: 12 caracteres
- Deve conter pelo menos 3 das 4 categorias: maiúsculas, minúsculas, números, símbolos
- Não pode conter partes do nome de usuário
- Não pode ser igual às últimas 5 senhas

Além disso, implemente autenticação multifator (MFA) sempre que possível, pois adiciona uma camada extra de segurança mesmo se a senha for comprometida.

Rotação

Rotação de senhas é a prática de alterar senhas periodicamente. Antigamente, recomenda-se trocar a cada 30-90 dias, mas pesquisas atuais indicam que isso pode ser contraproducente, pois usuários tendem a escolher senhas mais fracas ou previsíveis. A abordagem moderna é focar em rotação apenas quando há suspeita de comprometimento ou após um incidente.

Para contas privilegiadas (administradores, service accounts), a rotação regular ainda é recomendada, mas com senhas fortes e únicas. Automatize o processo usando ferramentas como CyberArk ou HashiCorp Vault. Exemplo de política de rotação:

- Senhas de usuário: rotação apenas mediante suspeita de vazamento
- Contas administrativas: rotação a cada 90 dias
- Chaves SSH: rotação a cada 180 dias
- Service accounts: rotação automática via gerenciador de segredos

Implemente notificações para usuários sobre mudanças e evite reutilização de senhas recentes.

Password managers

Gerenciadores de senhas são ferramentas que armazenam e gerenciam senhas de forma segura, permitindo que usuários utilizem senhas complexas e únicas para cada serviço sem precisar memorizá-las. Eles funcionam como um cofre criptografado, acessado por uma senha mestra.

Benefícios incluem: geração de senhas fortes, preenchimento automático, sincronização entre dispositivos e relatórios de segurança. Exemplos populares: LastPass, 1Password, Bitwarden (open source). Para empresas, soluções como Keeper ou Dashlane Business oferecem controle centralizado. Ao escolher um gerenciador, verifique se ele usa criptografia de ponta a ponta e oferece autenticação multifator.

Recomenda-se que organizações forneçam treinamento sobre o uso de gerenciadores de senhas e, idealmente, subsidiem licenças para funcionários. Isso reduz significativamente o risco de senhas fracas ou reutilizadas.

Boas práticas e observações finais

Além dos tópicos abordados, algumas práticas adicionais fortalecem a segurança de credenciais: nunca compartilhe senhas por e-mail ou mensagens não criptografadas; utilize single sign-on (SSO) para reduzir o número de senhas; implemente bloqueio após tentativas falhas de login; e monitore logins suspeitos. Lembre-se: a segurança de senhas é uma responsabilidade compartilhada entre TI e usuários.

Referências

Exercícios

  1. Explique por que é importante usar um salt único para cada senha ao armazenar hashes.

    ✓ Resposta: O salt único impede que senhas iguais gerem o mesmo hash, protegendo contra ataques de rainbow tables e dificultando a descoberta de senhas comuns. Mesmo que dois usuários tenham a mesma senha, os hashes serão diferentes devido aos salts distintos.
  2. Descreva três requisitos comuns em uma política de senhas e justifique cada um.

    ✓ Resposta: 1. Comprimento mínimo de 12 caracteres: aumenta o espaço de busca, tornando ataques de força bruta mais demorados. 2. Exigir maiúsculas, minúsculas, números e símbolos: aumenta a complexidade e reduz a probabilidade de senhas previsíveis. 3. Não permitir reutilização das últimas 5 senhas: evita que o usuário alterne entre senhas antigas, mantendo a segurança.
  3. Qual a recomendação atual sobre rotação periódica de senhas para usuários comuns? Por quê?

    ✓ Resposta: A recomendação atual é evitar rotação forçada periódica para usuários comuns, a menos que haja suspeita de comprometimento. Isso porque a rotação frequente leva a senhas mais fracas e previsíveis, além de aumentar o cansaço do usuário. A segurança é melhor alcançada com senhas fortes e MFA.
  4. Cite duas vantagens de usar um gerenciador de senhas e um exemplo de ferramenta open source.

    ✓ Resposta: Vantagens: 1. Gera e armazena senhas fortes e únicas para cada serviço, reduzindo o risco de reutilização. 2. Preenchimento automático de login, aumentando a conveniência e evitando keyloggers. Exemplo open source: Bitwarden.
  5. Você precisa armazenar senhas de usuários em um sistema. Que função hash você escolheria e por quê?

    ✓ Resposta: Escolheria bcrypt, scrypt ou Argon2. Essas funções são intencionalmente lentas e resistentes a ataques de hardware, além de incluírem salt automaticamente. Argon2 é o vencedor da competição PHC e é considerado o mais seguro atualmente.