Skip to main content
CheckTown
Dev Tools

htpasswd Generator: Apache and Nginx Basic Authentication

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 Autenticacao 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 autenticacao completo.

O utilitario htpasswd era originalmente parte do projeto Apache HTTP Server, mas o formato de arquivo tornou-se um padrao 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 seguranca.

Como funciona a geracao 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 forca do hash resultante depende do algoritmo e da sua configuracao.

  • bcrypt ($2y$) — a opcao mais segura, utiliza um fator de custo configuravel (padrao 10) que controla o custo computacional de cada hash, tornando ataques de forca bruta impraticaveis
  • SHA-1 ({SHA}) — produz um digest SHA-1 codificado em Base64 com prefixo {SHA}; mais rapido 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 nao recomendado para novas implantacoes devido a fraquezas conhecidas

Experimente gratuitamente — sem cadastro

Gerar entrada htpasswd →

Utilizacoes comuns de htpasswd

A autenticacao baseada em htpasswd e amplamente utilizada para controlo de acesso leve onde um sistema de autenticacao completo seria excessivo.

  • Protecao de ambientes de staging — restringir o acesso a ambientes de pre-producao para que apenas membros da equipa e partes interessadas possam ver o trabalho em andamento
  • Seguranca do painel de administracao — adicionar uma camada extra de autenticacao em frente a paineis de administracao CMS, ferramentas de gestao de bases de dados ou dashboards de monitorizacao
  • Acesso ao ambiente de desenvolvimento — proteger servidores de desenvolvimento locais ou partilhados contra acesso nao 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 forca bruta. SHA-1 e MD5 sao funcoes hash rapidas nao projetadas para palavras-passe — podem ser quebradas ordens de magnitude mais rapido 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 localizacao comum e /etc/apache2/.htpasswd ou /etc/nginx/.htpasswd. Depois referencie-o na configuracao do servidor com AuthUserFile (Apache) ou auth_basic_user_file (Nginx). Nunca o coloque num diretorio acessivel publicamente.

A autenticacao HTTP Basic e suficientemente segura para producao?

A autenticacao Basic envia credenciais codificadas em Base64 (nao encriptadas) com cada pedido, por isso deve ser sempre utilizada sobre HTTPS. Mesmo com HTTPS, faltam-lhe funcionalidades como gestao de sessoes, limitacao de taxa e bloqueio de conta. E adequada para cenarios de baixo risco como sites de staging ou ferramentas internas, mas a autenticacao de utilizadores em producao deve usar um sistema com sessoes baseadas em tokens.

Ferramentas relacionadas