Skip to main content
CheckTown
Ferramentas dev

Gerador htpasswd: Autenticação básica Apache e Nginx

Publicado 5 min de leitura
Neste artigo

O que e htpasswd?

Um arquivo htpasswd e uma base de dados em arquivo simples utilizada pelos servidores web Apache e Nginx para armazenar nomes de utilizador e palavras-passe em hash para Autenticação HTTP Basic. Cada linha contem um nome de utilizador e um hash de palavra-passe separados por dois pontos, como admin:$2y$10$abc... O arquivo fornece uma forma simples de proteger recursos web sem necessitar de um sistema de autenticação completo.

O utilitario htpasswd era originalmente parte do projeto Apache HTTP Server, mas o formato de arquivo tornou-se um padrão de facto suportado por muitos servidores web, proxies reversos e ferramentas de desenvolvimento. Os geradores htpasswd modernos suportam multiplos algoritmos de hash incluindo bcrypt, SHA-1 e MD5, sendo o bcrypt a escolha recomendada para segurança.

Como funciona a geração de htpasswd

Gerar uma entrada htpasswd envolve fazer hash de uma palavra-passe em texto simples com um algoritmo escolhido e formata-la junto ao nome de utilizador. A força do hash resultante depende do algoritmo e da sua configuração.

  • bcrypt ($2y$) — a opção mais segura, utiliza um fator de custo configuravel (padrão 10) que controla o custo computacional de cada hash, tornando ataques de força bruta impraticaveis
  • SHA-1 ({SHA}) — produz um digest SHA-1 codificado em Base64 com prefixo {SHA}; mais rápido que bcrypt mas significativamente mais fraco contra ataques GPU modernos
  • MD5 ($apr1$) — variante MD5 personalizada do Apache com sal aleatorio; formato legado ainda suportado mas não recomendado para novas implantações devido a fraquezas conhecidas

Experimente gratuitamente — sem cadastro

Gerar entrada htpasswd →

Utilizações comuns de htpasswd

A autenticação baseada em htpasswd e amplamente utilizada para controlo de acesso leve onde um sistema de autenticação completo seria excessivo.

  • Proteção de ambientes de staging — restringir o acesso a ambientes de pre-produção para que apenas membros da equipa e partes interessadas possam ver o trabalho em andamento
  • Segurança do painel de administração — adicionar uma camada extra de autenticação em frente a paineis de administração CMS, ferramentas de gestão de bases de dados ou dashboards de monitorização
  • Acesso ao ambiente de desenvolvimento — proteger servidores de desenvolvimento locais ou partilhados contra acesso não autorizado sem configurar OAuth ou LDAP

Perguntas frequentes

Devo usar bcrypt, SHA-1 ou MD5 para htpasswd?

Use sempre bcrypt quando possivel. O bcrypt e projetado especificamente para hash de palavras-passe com um fator de custo configuravel que o torna resistente a ataques de força bruta. SHA-1 e MD5 sao funções hash rapidas não projetadas para palavras-passe — podem ser quebradas ordens de magnitude mais rápido que bcrypt.

Onde devo colocar o arquivo htpasswd no meu servidor?

Armazene o arquivo htpasswd fora da raiz web para evitar que seja servido aos visitantes. Uma localização comum e /etc/apache2/.htpasswd ou /etc/nginx/.htpasswd. Depois referencie-o na configuração do servidor com AuthUserFile (Apache) ou auth_basic_user_file (Nginx). Nunca o coloque num diretório acessivel publicamente.

A autenticação HTTP Basic e suficientemente segura para produção?

A autenticação Basic envia credenciais codificadas em Base64 (não encriptadas) com cada pedido, por isso deve ser sempre utilizada sobre HTTPS. Mesmo com HTTPS, faltam-lhe funcionalidades como gestão de sessões, limitação de taxa e bloqueio de conta. E adequada para cenarios de baixo risco como sites de staging ou ferramentas internas, mas a autenticação de utilizadores em produção deve usar um sistema com sessões baseadas em tokens.

Ferramentas relacionadas