¿Qué es .htpasswd?
.htpasswd es un archivo plano utilizado por el servidor web Apache HTTP para almacenar nombres de usuario y contraseñas con el fin de autenticación básica HTTP. El archivo fue implementado por primera vez en el servidor NCSA HTTPd, predecesor de Apache. Cada línea contiene un nombre de usuario, seguido de dos puntos y la contraseña hasheada con un algoritmo como bcrypt, SHA-1 o MD5.
En Apache 2.4 se agregó soporte para bcrypt, el único algoritmo que sigue considerándose seguro hoy en día. El archivo se referencia desde la configuración .htaccess y puede proteger directorios completos o archivos específicos.
Algoritmos disponibles
- Bcrypt: Recomendado. Utiliza un salt automático y permite configurar el costo computacional. Es resistente a ataques de fuerza bruta.
- SHA-1: Genera hashes SHA-1. Compatible con la mayoría de sistemas legacy, pero considerado obsoleto para almacenamiento de contraseñas.
- MD5: Solo para compatibilidad legacy. Muy rápido y no resistente a ataques. Solo usar si el sistema lo requiere.
Casos de uso comunes
- Protección de directorios administrativos: Restringir el acceso al panel de administración o áreas sensibles de un sitio web mediante autenticación básica.
- Entornos de staging y desarrollo: Bloquear el acceso público a versiones de preproducción o sitios en desarrollo con una capa adicional de seguridad.
- Repositorios privados en servidores web: Limitar la descarga de archivos o documentación solo a usuarios autorizados.
- Autenticación simple sin base de datos: Implementar un sistema básico de inicio de sesión sin necesidad de una base de datos o infraestructura adicional.
Herramientas relacionadas
Splitter de PEM
Divide un bundle PEM con múltiples certificados o claves en bloques individuales.
Generador de Passphrases
Genera frases de contraseña tipo Diceware con entropía
Generador de Hash CSP
Genera hashes SHA-256/384/512 para scripts y estilos inline en Content Security Policy.
Generador SRI
Genera hashes Subresource Integrity (SHA-384) para verificar recursos CDN.