Como gerar uma password segura segundo as recomendacoes oficiais?
Em Portugal, a CNPD (Comissao Nacional de Protecao de Dados) emite orientacoes sobre medidas tecnicas de seguranca ao abrigo do RGPD. No Brasil, a ANPD (Autoridade Nacional de Protecao de Dados) e o CERT.br (Centro de Estudos, Resposta e Tratamento de Incidentes de Seguranca) publicam guias praticos para usuarios e organizacoes.
As recomendacoes do CERT.br para passwords:
- Minimo 12 caracteres para contas com mecanismo de bloqueio apos tentativas falhadas
- Minimo 16 caracteres para acessos sem bloqueio automatico
- 20 caracteres ou mais para contas criticas (email principal, VPN, administracao de sistemas)
- Completamente aleatoria, sem palavras do dicionario, sem nomes, sem datas
- Unica por servico, reutilizar uma password transforma uma brecha em multiplas comprometimentos
O CERT.br recomenda explicitamente o uso de gestores de passwords como solucao padrao para utilizadores individuais e organizacoes. O artigo 46 da LGPD exige que os responsaveis pelo tratamento adotem "medidas tecnicas e administrativas aptas a proteger os dados pessoais".
A mudanca periodica forcada de passwords nao e mais recomendada quando nao ha suspeita de comprometimento, pois favorece padroes fracos e previsiveis.
O que torna uma password genuinamente dificil de descobrir?
Os atacantes nao tentam passwords letra por letra. Utilizam:
- Ataques de dicionario: listas de palavras comuns, nomes e passwords conhecidas de fugas (a lista "rockyou" contem 14 milhoes de entradas)
- Credential stuffing: pares utilizador-password de uma brecha sao testados noutros servicos
- Forca bruta: todas as combinacoes possiveis, so praticavel contra passwords curtas
Uma password de 16 caracteres, completamente aleatoria e unica por conta, resiste aos tres tipos de ataque. As regras de complexidade (maiuscula, numero, simbolo) importam muito menos do que o comprimento e a aleatoriedade.
A LGPD (Lei 13.709/2018, Brasil) e o RGPD estabelecem que o responsavel pelo tratamento deve aplicar "medidas tecnicas adequadas" para proteger os dados pessoais. Uma politica de passwords deficiente pode ser considerada incumprimento e resultar em sancoes da ANPD ou da CNPD.
Como verificar se os seus dados apareceram numa fuga?
Se um servico que utiliza for comprometido, o seu email e password (como hash ou, em servicos mal geridos, em texto simples) podem ser vendidos em foruns criminosos. Verificar se o seu email aparece em fugas conhecidas indica quais passwords mudar com prioridade.
Have I Been Pwned (haveibeenpwned.com) e o servico de referencia: cataloga milhares de milhoes de pares de credenciais de milhares de fugas. Introduzir o seu email mostra em que brechas apareceu e que dados foram expostos.
Se o seu email aparecer numa fuga: mude imediatamente a password do servico afetado, verifique se reutilizou essa password noutros sitios e ative a autenticacao em dois fatores onde estiver disponivel. O CERT.br recomenda esta verificacao periodica como parte das boas praticas de higiene digital.
Como o hashing protege as passwords armazenadas?
Quando um servico armazena a sua password corretamente, nunca guarda o texto simples. Passa a password por uma funcao de hash, uma operacao matematica unidirecional que produz uma saida de comprimento fixo chamada hash ou resumo.
Ao iniciar sessao, o servico aplica hash ao que escreveu e compara com o hash armazenado. Se coincidirem, a autenticacao e bem-sucedida sem que o servidor alguma vez tenha conhecido a password real.
Propriedades fundamentais do hashing criptografico:
- Unidirecional: nao e possivel obter a entrada original a partir do hash
- Determinista: a mesma entrada produz sempre o mesmo hash
- Resistente a colisoes: duas entradas diferentes nao devem produzir o mesmo hash
Para armazenar passwords, algoritmos lentos sao melhores: bcrypt, scrypt e Argon2 sao computacionalmente exigentes por design, tornando os ataques de forca bruta impraticaveis mesmo que a base de dados seja roubada. SHA-256 e SHA-512 sao rapidos (adequados para verificacao de integridade de ficheiros) mas demasiado rapidos para passwords, uma GPU moderna pode testar milhares de milhoes de hashes SHA-256 por segundo.
O artigo 46 da LGPD e o artigo 32 do RGPD exigem "medidas tecnicas adequadas" para os dados pessoais armazenados. O uso de MD5 ou armazenamento em texto simples pode resultar em sancoes da ANPD (Brasil) ou da CNPD (Portugal). O CERT.br recomenda especificamente bcrypt ou Argon2 para armazenamento de passwords em aplicacoes web.
O Base64 e uma forma de encriptacao ou protecao?
Nao. O Base64 e uma codificacao, nao encriptacao. Converte dados binarios numa cadeia de texto usando 64 caracteres ASCII imprimiveis. O resultado parece ilegivel, mas qualquer ferramenta, incluindo a consola de programador do navegador, consegue revertelo instantaneamente sem qualquer chave.
O Base64 serve para transportar dados binarios por sistemas que so processam texto: imagens incorporadas em emails HTML, tokens JWT, cargas uteis binarias de API.
Nunca use Base64 para ocultar dados sensiveis. Uma codificacao nao e uma protecao. Uma password ou chave API armazenada em Base64 esta praticamente armazenada em texto simples. Protecao real requer encriptacao real (AES-256 ou equivalente).
O que e a autenticacao em dois fatores e porque e importante?
A autenticacao em dois fatores (2FA) adiciona uma segunda verificacao para alem da password. Mesmo que um atacante tenha a sua password correta (por uma fuga, phishing ou adivinhacao), nao consegue entrar sem o segundo fator.
Os tres tipos comuns de 2FA, do menos ao mais seguro:
- App de autenticacao (Google Authenticator, Authy, Microsoft Authenticator), gera um codigo de 6 digitos que muda a cada 30 segundos. Resiste a maioria dos ataques de phishing standard.
- Chave de seguranca hardware (YubiKey, passkey FIDO2), dispositivo fisico que se liga ou aproxima. A opcao mais segura; a chave esta vinculada ao site especifico, pelo que ataques de phishing nao conseguem interceptar o codigo.
- Codigo por SMS, melhor do que nao ter 2FA, mas vulneravel a ataques de SIM swapping.
O CERT.br e a CNPD recomendam ativar 2FA primeiro nas contas de email (que sao o mecanismo de recuperacao de quase todas as outras contas), depois na banca online e nos acessos profissionais.
Para programadores: implemente TOTP (Time-based One-Time Password, RFC 6238). Existem bibliotecas em todas as linguagens principais. A ANPD inclui a autenticacao multifator nas suas recomendacoes de seguranca ao abrigo do artigo 46 da LGPD.
Lista de verificacao pratica
- Passwords: 12 caracteres minimo (CERT.br), 16+ recomendado, completamente aleatorias, unicas por servico
- Armazenamento: gestor de passwords (Bitwarden e gratuito e de codigo aberto)
- Verificar fugas: pesquisar o email em haveibeenpwned.com
- Responsabilidade do programador: usar bcrypt ou Argon2, nunca MD5 nem texto simples
- 2FA: ativar no email, banca e qualquer conta com dados pessoais ou de pagamento
- Base64 nao e seguranca, use AES-256 para o que precisar de protecao real